Repository navigation
Lemma A of #484: the realization of paid wrappers and spectators, proved in Lean 4 - #516
Conversation
…375517e-3 Both E8 suppliers of CrocSwap#434 keep their local words. Whole dirty-helper residuals move from bank streams onto pending idle-advance coordinates of data families that are untouched between the hosting invocation and the advance. Bit c 1.239085e-3, complex b 1.267453e-3, kappa 618775866623647/5e17 (+9.22% over CrocSwap#434). Fresh CrocSwap#434 replay, independent audit with nine mutation controls, two exact moments, fresh invoices and all 47 outer inequalities.
…rance gauges on whole-residual hosting Adds research/e8-complex-gauge-kernel (on PR442's tree) and its CI workflow. Conditional on Lemma G (reduced to CrocSwap#425 + CrocSwap#471/CrocSwap#458 plus a schedule lemma) and CrocSwap#458's paid adapters. Independent audit and light checks passed; heavy full replays pending. Prepared by DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ions) The Lemma G summary pinned sha256 of runtime-written .gz files, whose container bytes depend on the zlib bundled with the Python in use, so the Python 3.12 full run failed EXPECTED while 3.14 passed. Hash the decompressed JSON instead (keys without .gz); regenerate those 8 EXPECTED fields and MANIFEST.json. Full fresh-copy runs pass on Python 3.14 (--all --discover-check) and 3.12 (--all). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
research/e8-lemma-g-lean/: the abstract core of Lemma G (common-frame conjugation for labelled event streams, matrix form of the scalar shadow, schedule emitter for the compensation segment and centre phase, telescoping accounting, bit-side entrance identities) proved in Lean 4.21.0 + Mathlib v4.21.0 for every semiring, module and invertible label family; the instance hypotheses stay checked by CrocSwap#484's Python stage plus a new extended-label check (adapters and wrappers read as relabel events). verify.py builds the package, scans for sorry/axiom/native_decide and checks #print axioms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, wording)
- check_extended_labels.py: a source must convert exactly once (entry adapter
only from ('pre', i)); identity adapters pinned to frame 0 / FULL; wrappers
keyed by the start frame; unknown events rejected; new mutant (duplicated
source entry adapter); adapter mutants now also run on the anchor.
- code/check_adapters.py (new): CrocSwap#433's data-adapter identities on all 512
columns of every port (H6), 0 failures on all four words.
- verify.py --instances: confirms CrocSwap#484's own checks passed on inputs equal to
CrocSwap#484 EXPECTED.json, runs both instance checks; CrocSwap#484 files it imports are
pinned in MANIFEST (external_files).
- PROOF/README: explicit H2 bridge and C-linearity, H6, exact statement of
CrocSwap#484's endpoint imprecision (mid-stream adapters are identities), "every
input" qualified by its inherited facts, semiring wording.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… proved in Lean 4 research/e8-lemma-a-lean/: the realization part of Lemma A (assumed from CrocSwap#458 s3 in CrocSwap#484) as a general theorem over any semiring, modules, charts and stage count: one owner + whole invocation + no other actor + Lemma G's exact endpoint + the checked factorization C_[w] x I => the helper's family ends as chart^-1 (C x id) chart of itself, spectators untouched; necessity of the one-owner rule; disjoint-block residuals commute and gather into the idle child; CrocSwap#505's asynchronous borrowing as a proved window variant. Reuses the Lemma G package (Lake path dependency, same Mathlib pin). New instance check code/check_owners.py (literal owner injectivity on the emitted templates). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Model: units are physical streams (family, cover class) as in CrocSwap#442/CrocSwap#458 and the template's route_semantics. New LemmaA/Streams.lean: streamOwner_injective(_of_disjoint), sweep_unique, lemmaA_streams (one owner per stream from disjoint footprints on shared families); plus lemmaA_piece and lemmaA_async (Lemma A feeding CrocSwap#505's window variant). - code/check_owners.py rewritten for stream units (data wires alone, disjoint footprints on shared families, centre copies in distinct private slots, atomic calls; 3 mutants): all four CrocSwap#484 words pass, including the 32 gauge80 / 16 kernel79 slot-sharing calls and the anchor. - code/check_windows.py (new, independent): every hosted block inside its pending child's open window, blocks disjoint, family-group windows disjoint (2 mutants); all four words and CrocSwap#505's emitted async template. - verify.py: runs Lemma G's check_extended_labels.py ((F) is read in the extended labels), fails on a missing LEMMA-A.json, checks I-helper counts against EXPECTED, prints the owner and window results; --async T.json.gz. - Docs: unit model stated, coverage per word, CrocSwap#505 replay results and what is not re-run, commutative-semiring wording, credits CrocSwap#433/CrocSwap#442/CrocSwap#500. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e, nits) - M1: the stream model is sourced to CrocSwap#442 section 2 (distinct slots -> distinct physical classes, sequential co-ownership across cover classes); CrocSwap#458 section 3 is cited only for g = d sigma^-1 and the fixed-route bijection, and its one-helper rule is stated as CrocSwap#458's case. Lemma A is proved in CrocSwap#442's stream model, which is inherited. - M2: CrocSwap#505 coverage stated for the template emitted by replaying CrocSwap#505 (4ee769c) here, which does not hash-match CrocSwap#505's EXPECTED (aa741871 vs 276b69e3); (E), (F), per-replica order, prefix bound and invoice not re-checked. - Nits: hne for data wires and centre copies; loop_order check is declarative; checker layout assumptions stated; commute_of_not_mem axiom probe (24 named results); anchor coverage rests on this package's checkers; CrocSwap#512 rests on its own report. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Note: Proof. The checker decodes a family id as Fix (logic unchanged). Derive the layout from the template: NPORT = len(t['port_restriction']['new_to_old']) if 'port_restriction' in t else 120
FPR = t['live'] // len(allreps); assert FPR == 8 * NPORT, (FPR, NPORT)
orep, ps, port = f // FPR, (f % FPR) // NPORT, f % NPORTWith this change:
Scope. This PR's claims (#484's four words and the #505 template) all use the 960/120 layout, so they are unaffected. The fix only matters for running DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code. |
|
Integrated into published main at The Lemma A stream-model proofs build in Lean 4.21.0, with 24 named axiom reports and owner/window/extended-label checks on the four freshly reconstructed words. The scoped review and pinned execution receipts record the exact coverage and remaining assumptions. This strengthens specific interfaces and preserves useful research; it does not change the selected κ or establish the complete multiplication theorem. Local checks passed; fresh Linux CI was queued at publication. |
…kernel A - The certificate's fresh invoice pins WRAPPER-CHECKS.json's bytes (now bound and recorded); the gap is that no chain code reads its status, and exactness comes only from the producer's own generation and decoding (re-run in the cold replay, verify_slots.py:103). - Overlap: CrocSwap#1697 covers 0:1000..0:1003 as hyperplane cases, CrocSwap#1611 tied 2:999 to Exact.lean pair 3; only the 22 FULL-ended records were producer-only. Byte-identical example corrected. - Kernel B's monomial and F_w are checked against kernel A on every column before evaluation; RESULT records per-kernel counts; dead adjoint removed. - Controls: width -1 and +1; residual events must be pre/post only; exact record field sets. 17 tests. - Credits: Lemma A (CrocSwap#516), producer hpe_adapters_local.py (DreamingOfClouds), PR425 (jacklightChen).
Lemma A of #484 has two parts:
S_E = L_E (C_[w] ⊗ I) R_Eon every entrance frame;This PR proves the realization part as a general theorem. It also proves the asynchronous variant that #505 needs.
The PR is stacked on #509 (→ #484 → #442). The new commits here are f71a4bb, 871b1c5 and 1c6b6ff. They touch only
research/e8-lemma-a-lean/. The package reuses the Lemma G package's event semantics through a Lake path dependency.Model and coverage
Units are physical streams
(family F, cover class g ∈ O(73,2)), as in #442 §2. Sources:cover,loop_orderandroute_semantics("physical cover class d*Pi(slot)^(-1)");g = dσ⁻¹and "for a fixed family, d → g is a bijection".Lemma A is proved in #442's stream model. That the model describes the machine is inherited from #442, like the compiler.
#458 §3 states the one-helper rule as required, and rejects same-call packing into disjoint slots. Its case is the single-owner calls. The sharing calls rest on #442's model, which needs atomic invocations.
At cover class
d, registerrlives on the stream(F_r, d·σ_r⁻¹). The theorem needs one owner per stream. That holds whenever registers sharing a family have pairwise disjoint footprints, which covers:On #484's words, every call of all four words satisfies the hypotheses:
Every hosted block lies inside its window.
The anchor is not pinned to EXPECTED and has no wrappers. Its (O′) and windows are checked by this package's checkers alone.
What is proved (Lean 4.21.0 + Mathlib v4.21.0, the pin of
formal/leanon main)The theorem holds over any commutative semiring, for any modules, charts and number of stages. Suppose:
C ⊗ id.The last hypothesis is read in Lemma G's extended labels, where
T_{λ¹}T_{λ⁰}⁻¹ = L_E⁻¹ S_E R_E⁻¹. #484's I-helper check verifies it, and Lemma G'scheck_extended_labels.py(run here) verifies the reading.Then, after the complete invocation, the helper's stream holds
chart⁻¹ (C ⊗ id) chartof its own initial value. The spectators are untouched.The other Lean results:
streamOwner_injective(_of_disjoint): distinct routes, or disjoint footprints, give distinct streams.sweep_unique: the cover sweep visits each stream once per route.realize_run: with one owner per unit, the physical execution read through the charts is the local run.one_owner_needed: within the model, sharing a unit already breaks this with a single event.whole_invocation,endpoint_indep,lemmaA_piece: the invocation acts on the helper's unit as a single-unit piece that no other unit reads.pieces_commuteandpieces_product: pieces on disjoint blocks of one pending child commute and multiply back to the child.lemmaA_async,async_windowandgather: a borrowed piece moves to its child's deadline past every commuting action, and the gathered pieces give the child. This needs three scheduling conditions:There is no instance enumeration and no
decide/native_decide.#print axiomsreports onlypropext,Classical.choiceandQuot.soundfor all 24 named results.verify.pybuilds this package and the Lemma G package from source, scans both forsorry/axiom/native_decide, and checks every axiom report.What is checked
adapters_gk.pyand I-helper; Lemma Gcheck_extended_labels.pyloop_order)code/check_owners.py(3 mutants rejected)code/check_windows.py, written independently of #484's and #505's audits (2 mutants rejected)#505 and #512
#505. I replayed #505's own
verify.pyhere, offline under Python 3.14.EXPECTED.jsonfails. The audit's owner, sigma-stream, profile and κ records equal its shipped evidence..gitattributesthat its MANIFEST lists, so I dropped that entry from a scratch copy of the manifest.On the emitted asynchronous template:
check_owners.py: one register per family in 72/72 calls;check_windows.py: all 40,320 hosted blocks lie strictly inside their owner child's open window, with blocks disjoint.So Variant A′'s owner and window hypotheses hold on the template emitted by replaying #505 (4ee769c) here. That template does not hash-match #505's
EXPECTED.json(template_sha256 aa741871… vs 276b69e3…). The sigma-stream digest, owner, profile and κ records equal #505's shipped evidence.Not re-checked here:
#512 (the current frontier) lists "#484 Lemma A spectator realization" as a retained condition. It reports 800 distinct physical owners per invocation and builds on #505's asynchronous machinery and #507's factory. Its invocations meet the hypotheses on that report, and its borrowing is Variant A′ under the same conditions. #512's word is not checked here; this rests on #512's own report.
Reproduce
Credits
formal/leanon main and [Lean] Verification of selected 1320-port bijection, κ=0.000661885549259598 #487/[Lean] Verification of binary input preparation, κ=0.000661885549259598 #488 (jamesyc): the Lean conventions.Prepared by DreamingOfClouds with Claude Opus 5.5 (Anthropic), via Claude Code.
🤖 Generated with Claude Code