Skip to content

Dirty-host gauge binding: entry/exit gauges and credit <= H_end for hosted pending factors - #1837

Merged
Mister-Meeseeks merged 2 commits into
CrocSwap:mainfrom
navinor:research/agent-31-dirtyhost-gauge-ea2e148a
Oct 15, 2026
Merged

Mister-Meeseeks merged 2 commits into
CrocSwap:mainfrom
navinor:research/agent-31-dirtyhost-gauge-ea2e148a

Conversation

@navinor

@navinor navinor commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Result

Scoped interface receipt, no kappa claim: what a hosted pending factor may claim credit for. It answers the explicit open request in the handoffs thread (#1166 (comment)) and open next questions 1-2 of #1664 (research/dirty-host-cutrank-audit/): bind a hosted residual's claimed credit to exact host entry/exit gauges and to the history-span endpoint term H_end, on the smallest complete instances.

Package: research/dirty-host-gauge-binding-seedea2e/. The model is PR 1664's scalar common-frame transport model (its PROOF.md sections 4-5) applied to the idle-axis hosted-residual mechanism (research/idle-axis-hosting/PROOF.md).

Finding 1 (operator gauges, exact; sufficient hypotheses). The hosting move leaves the complete operator unchanged whenever the moved factor is the advance's own factor on the hosted block S', no touch of the host occurs strictly between the residual application and the advance (more generally, every such touch commutes with the moved factor), and hosted blocks are disjoint (each useful pending factor counted once). These are sufficient legality hypotheses of the inherited hosting interface, not a necessary condition for operator equality, and no necessity claim is proved for any class. Exact 3x3 counterexample over Q (R = I + E01, T = I + E12, T^{-1} = I - E12; regression control cancellation-equality-not-rejected in verify.py): both T and T^{-1} fail to commute with R, yet T^{-1} T R = R T^{-1} T = R, so cancellation-based routes remain open and are not closed by this receipt. Each dropped gauge still has a smallest counterexample as composed linear maps (3x3 shears): escaping block, a single out-of-window non-commuting touch, exhibited overlapping order-dependent blocks; these show the hypotheses cannot simply be deleted, not that any of them is necessary. The tiny cut examples (including the 156 regions below) and the selected no-touch hosting rule remain valid as they stand. Wording corrected after review comment #1837 (comment).

Finding 2 (credit binding, smallest complete instances first). With hosts restored and the clean scatter Y' = Y + S X demanded at height 0 (PR 1664 section 5.1's contract), the exact per-cut demand identity sum_j need_j = q*rank(S) + H_end holds on all 156 enumerated tiny regions (every binary t x m scatter matrix, m,t <= 2, w <= 2, host motions (a,b) in {(1,0),(2,0),(2,1)}). The smallest double-duty borrow (one host row d descending 1 -> 0 carrying d+x while both y'=y+x and a restored d are demanded) is refuted at cut 1 by exactly one direction, both by the count (D_j = 1 < 2) and by span feasibility. So a hosted factor's creditable mass is exactly its host's displacement H_end: the scatter term cannot be hosted away while hosts are restored, and the double-credit loop is the smallest refuted instance. This instantiates PR 1664's "show that the claimed hosting credit is H_end" affirmatively for the toy class.

Finding 3 (the only free route is a contract change). A host crossing may deliver a hosted direction at zero extra mass only if the host's own prescribed endpoint absorbs that direction and no separate target or restoration demand survives — i.e. only by dropping PR 1664's clean-scatter/restoration obligations, an endpoint-contract change that must be charged against the data endpoint. That is the precise accounting interface between "hosting credit" and "unpaid coordinate", the quantity the coverage-law line (#1587) changes. A pre-positioned copy of the host dirt below the cut earns no credit (PR 1664 section 7 instantiated as a machine check).

Evidence and reproduction

python3.12 -B research/dirty-host-gauge-binding-seedea2e/verify.py
python3.12 scripts/research_package.py --package research/dirty-host-gauge-binding-seedea2e --check-only
python3.12 scripts/research_package.py --package research/dirty-host-gauge-binding-seedea2e

All three pass locally (Python 3.12.14, stdlib only); the registered replay ends PASS_REGISTERED_RESEARCH_PACKAGE research/dirty-host-gauge-binding-seedea2e outcome=completed. Exact rational arithmetic throughout; entry rows are an identity basis, so row equality covers arbitrary dirty inputs by linearity. Smallest falsifying instances run first, with three gauge failure controls, a PR 1664 section 5.2 canonical-arithmetic fixture (M=8 = H_end + q*r) and an M<=6 mutant that is refused.

Also run and passing: python3.12 -B -m unittest discover -s tests -p 'test_research_*.py' (42 tests OK, including the metadata/pin checks).

Scope, limits, obligations

  • Track recursive-interfaces, card persistent-boundary, scope changed (reason in TASK.json): the drawn consecutive dirty-connector object is covered by open concurrent Add rank-one connector transition across source updates #1739 and the adjacent-call centre-fanout claim in CLAIM: can the centre path be hosted on idle coordinates like helper residuals? (ctoth, expires 05:00Z) #1516 (2026-10-14T11:11Z); this takes the handoff request instead, keeping the card's method-2 shape (a lower bound on the compulsory transitions of one proposed typed interface). Claim/receipt: Handoffs and requests for independent checks #1166 (comment).
  • Not established: bank-tile physics (the eliminated bank write/clear mass is not modeled; credit is compared through the shape w*|a-b| per host row), wrappers/spectators/gauge charts (PR 1664's non-nested-frame warning stays open here), physical and production admission, any selected-word application (including the separate 88-by-8 scatter receipt), and any kappa, supplier or frontier change. Finite toy checks do not certify the universal written statements of PR 1664 or idle-axis hosting. The whole-construction budget and the a < D/E diagnostic are not applicable to an interface receipt.
  • Workflow friction on this host: make is not installed, so make selected-record-check / make frontier1094-verify were not run; the selected-record pin is instead validated inside research_package.py --check-only.

Credit

Prepared by Aaron Wang, with help from opencode (substantial AI assistance, disclosed in TASK.json).

Predecessors (read, not modified): Andrey Mas / an664's #1664 (research/dirty-host-cutrank-audit/, including its GPT-6 Pro review) and the handoff #1166 (comment); ctoth's dirty-host implication and branching-tree bound in #1516; DaysSky's research/idle-axis-hosting; and the lineage recorded in PR 1664's SOURCES.json (icekylinx, DreamingOfClouds, jeremykothe2, rohanarun, Dennis / @antunishdPursuit). Complementary, not competing: #1739 (consecutive-call connector patches) and the centre-sharing pricing/panel work (#1748, #1791). No merge or frontier change is requested.

Aaron Wang, with help from opencode. Scoped interface receipt answering
an664's handoff (discussions/1166#discussioncomment-18916098) and PR 1664's
open next questions 1-2: exact entry/exit gauges for the idle-axis hosted
residual move and a per-cut credit allocation showing credit <= H_end for
restored hosts, verified on 156 complete toy regions with exact rational
arithmetic and four failure controls. No kappa claim; scope changed from the
drawn persistent-boundary object (covered by concurrent PR 1739).
@Mister-Meeseeks

Copy link
Copy Markdown
Contributor

The finite cut/credit replay passes, but Finding 1 states an operator-level “exactly when” that the examples do not establish. Absence of individually noncommuting touches is sufficient, not necessary for equality of the complete composition.

Over Q take R=I+E01, T=I+E12, and T⁻¹=I−E12. Both T and T⁻¹ fail to commute with R, yet moving R across the consecutive touches T,T⁻¹ preserves the complete operator: T⁻¹ T R = R T⁻¹ T = R. I checked these 3×3 matrices exactly. Similarly, disjointness is a sufficient legality premise of the inherited hosting interface, rather than an unrestricted necessary condition for operator equality.

Please state the inherited interface as sufficient hypotheses, or explicitly restrict the necessity claim and prove it in that class. This does not invalidate the useful tiny cut examples or suggest a defect in the selected no-touch hosting rule. The distinction matters because the current wording would incorrectly close cancellation-based future routes.

…hen"

Aaron Wang, with help from opencode. Reviewer follow-up on
CrocSwap#1837 (comment
CrocSwap#1837 (comment)):
Finding 1's operator-level "exactly when" was not established by the examples.
Reproduced the reviewer's exact 3x3 counterexample over Q (R = I + E01,
T = I + E12, T^{-1} = I - E12: both touches fail to commute with R, yet
T^{-1} T R = R T^{-1} T = R) and added it as the regression control
cancellation-equality-not-rejected in verify.py, which the now sufficient-only
condition must not reject. README.md, TASK.json and VERIFY.json state the
inherited interface conditions (own factor on S', no intervening host touch,
disjoint hosted blocks) as sufficient legality hypotheses for operator
equality; no necessity claim is made, and cancellation-based routes stay open.
The tiny cut examples and the selected no-touch hosting rule are unchanged and
remain valid. All package checks pass: PASS_DIRTY_HOST_GAUGE_BINDING,
PASS_REGISTERED_RESEARCH_PACKAGE research/dirty-host-gauge-binding-seedea2e
outcome=completed, 42 tests OK.
@navinor

navinor commented Oct 14, 2026

Copy link
Copy Markdown
Contributor Author

Follow-up: Finding 1 corrected to sufficient hypotheses (Aaron Wang, with help from opencode)

Verified the review comment (#1837 (comment)) before changing anything: its counterexample is exact, and the "exactly when" wording was wrong. Correction pushed in commit navinor@313dca9 on this PR's branch.

Reproduced counterexample (exact, two independent scripts)

Over Q, with E_ij the matrix unit, reproduced with stdlib fractions in a standalone script and again with the package's own composed-linear-map machinery (verify.py, controls cancellation-touches-noncommuting and cancellation-equality-not-rejected):

R     = I + E01 = [[1,1,0],[0,1,0],[0,0,1]]
T     = I + E12 = [[1,0,0],[0,1,1],[0,0,1]]
T^-1  = I - E12 = [[1,0,0],[0,1,-1],[0,0,1]]

T R    = [[1,1,0],[0,1,1],[0,0,1]]   !=   R T    = [[1,1,1],[0,1,1],[0,0,1]]
T^-1 R = [[1,1,0],[0,1,-1],[0,0,1]]  !=   R T^-1 = [[1,1,-1],[0,1,-1],[0,0,1]]

T^-1 T = T T^-1 = I
T^-1 T R = [[1,1,0],[0,1,0],[0,0,1]] = R = R T^-1 T

Both T and T^-1 fail to commute with R, yet moving R across the consecutive touches T, T^-1 preserves the complete operator: T^-1 T R = R T^-1 T = R. So absence of individually noncommuting touches is sufficient, not necessary, for equality of the complete composition.

Old vs new wording

Finding 1, old: "The hosting move leaves the complete operator unchanged exactly when the moved factor is the advance's own factor on S', no non-commuting touch of the host occurs strictly between the residual application and the advance, and hosted blocks are disjoint (order preserved)."

Finding 1, new (README.md, TASK.json, VERIFY.json, and this PR's description, corrected in place): "The hosting move leaves the complete operator unchanged whenever the moved factor is the advance's own factor on S', no touch of the host occurs strictly between the residual application and the advance (more generally, every such touch commutes with the moved factor), and hosted blocks are disjoint (order preserved)." The hypotheses are now explicitly stated as the inherited hosting interface's sufficient legality hypotheses, not a necessary condition for operator equality, with no necessity claim proved for any class.

Disjointness premise, old: presented as a conjunct of the "exactly when", with the control message "overlapping hosted blocks are order-dependent: disjointness (count each pending factor once) is required for an order-free composition".

Disjointness premise, new: "the exhibited overlapping hosted blocks are order-dependent; disjointness (count each pending factor once) is the inherited interface's sufficient premise for an order-free composition." Disjointness is a sufficient legality premise of the inherited hosting interface, not an unrestricted necessary condition for operator equality.

What the corrected hypotheses do and do not close

They do close: they certify operator equality of the hosting move whenever they hold, and none can simply be deleted from the sufficient set — the three smallest counterexamples remain as controls (escaping block gives a different endpoint; a single out-of-window noncommuting touch breaks the composition; the exhibited overlapping blocks are order-dependent).

They do not close: necessity. Cancellation-based routes remain open. The T, T^-1 instance above is a genuine equality (the touches cancel as a composite) and the corrected sufficient-only condition accepts it; it is now a regression control (cancellation-equality-not-rejected) so a future wording cannot silently reject it. No necessity claim is made even in a restricted class; any such claim would have to name a class and prove it there, and the class would have to provably exclude cancellation composites like this one.

Unchanged and still valid: the tiny cut examples (the double-duty-borrow and absorbed-endpoint-with-separate-target falsifiers at cut 1, the section 5.2 fixture of #1664 with its M<=6 mutant, and all 156 enumerated restored-host regions with sum_j need_j = q*rank(S) + H_end) and the selected no-touch hosting rule. The correction is to the logical status of the operator gauges only.

Remaining obligations

  • The package's three open next questions stand unchanged: bind the gauges on the pinned selected replay (hosted slots of the selected 480-helper word), non-nested frame gauges (d(L_A,L_B) versus endpoint displacement), and whether a legal data endpoint can absorb a hosted direction without leaving a coordinate unadvanced (the coverage-law question of CLAIM: where does the one unpaid coordinate per live family come from, and is it forced? (ctoth, expires 07:30Z) #1587).
  • Any future necessity statement needs a stated class plus a proof that excludes cancellation composites; this package supplies neither and claims neither.
  • No numbers, citations or reproduction commands changed.

Checks on the corrected tree

python3.12 -B research/dirty-host-gauge-binding-seedea2e/verify.py
python3.12 scripts/research_package.py --package research/dirty-host-gauge-binding-seedea2e --check-only
python3.12 scripts/research_package.py --package research/dirty-host-gauge-binding-seedea2e

All pass on commit navinor@313dca9: PASS_DIRTY_HOST_GAUGE_BINDING, PASS_PACKAGE_METADATA_AND_PINS, and PASS_REGISTERED_RESEARCH_PACKAGE research/dirty-host-gauge-binding-seedea2e outcome=completed. Test suite python3.12 -B -m unittest discover -s tests -p 'test_research_*.py': 42 tests OK.

@Mister-Meeseeks
Mister-Meeseeks merged commit 1884c50 into CrocSwap:main Oct 15, 2026
14 of 61 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants