diff --git a/.github/workflows/d5-reconciliation.yml b/.github/workflows/d5-reconciliation.yml new file mode 100644 index 000000000..4ae0bb8b4 --- /dev/null +++ b/.github/workflows/d5-reconciliation.yml @@ -0,0 +1,64 @@ +name: D5 reconciliation checks + +'on': + pull_request: + paths: + - 'reviews/d5_reconciliation_20260929/**' + - '.github/workflows/d5-reconciliation.yml' + - 'reviews/d5_*/**' + - 'frontiers/intermediate_window_20260928/**' + - 'frontiers/remote_window_20260924/**' + - 'frontiers/remote_collision_20260928/**' + - 'frontiers/rn_annulus_bridge_20260925/**' + workflow_dispatch: + +permissions: + contents: read + +jobs: + exact-and-probe: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 + with: + persist-credentials: false + - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 + with: + python-version: '3.11.16' + - name: Verify sources, replay both modes, reject mutants + env: + PYTHONDONTWRITEBYTECODE: '1' + run: | + set -euo pipefail + python -B -S - <<'PY' + import hashlib, json, pathlib, subprocess, sys + root = pathlib.Path('reviews/d5_reconciliation_20260929').resolve() + manifest = json.loads((root / 'SOURCE_FILES.json').read_text())['files'] + present = sorted(p.name for p in root.iterdir()) + expected_names = sorted([e['path'] for e in manifest] + ['SOURCE_FILES.json']) + if present != expected_names: + raise ValueError('packet tree differs from manifest: ' + repr(present)) + for entry in manifest: + path = root / entry['path'] + if pathlib.PurePosixPath(entry['path']).name != entry['path'] or path.is_symlink(): + raise ValueError('flat regular source required: ' + entry['path']) + data = path.read_bytes() + if len(data) != entry['bytes'] or hashlib.sha256(data).hexdigest() != entry['sha256']: + raise ValueError('source identity mismatch: ' + entry['path']) + script = str(root / 'reconciliation_check.py') + expected = (root / 'RESULTS.json').read_bytes() + mutants = ['optional-continuum', 'allow-symlink', 'no-hash', 'drop-dependency', 'drop-edge', 'stale-fingerprint', 'drop-collar', 'close-c6'] + for flags in (['-B', '-S'], ['-B', '-O', '-S']): + out = subprocess.run([sys.executable, *flags, script], + check=True, capture_output=True, timeout=300).stdout + if out != expected: + raise RuntimeError('output differs from RESULTS.json under ' + ' '.join(flags)) + for m in mutants: + rc = subprocess.run([sys.executable, *flags, script, '--mutant', m], + capture_output=True, timeout=300).returncode + if rc != 1: + raise RuntimeError('mutant ' + m + ' not rejected') + print(json.dumps({'scientific_effect': 'NONE', 'mathematical_acceptance': False})) + PY + git diff --exit-code diff --git a/reviews/d5_reconciliation_20260929/PROPOSED_TRANSITIONS.json b/reviews/d5_reconciliation_20260929/PROPOSED_TRANSITIONS.json new file mode 100644 index 000000000..d928969e0 --- /dev/null +++ b/reviews/d5_reconciliation_20260929/PROPOSED_TRANSITIONS.json @@ -0,0 +1,506 @@ +{ + "schema": 1, + "object": "D5-RECONCILIATION-20260929-v2.1", + "scientific_effect": "NONE", + "disposition": "PROPOSAL_FOR_A_NON_CLAUDE_LANE", + "status_rows": [ + { + "id": "D5", + "current": "NOT_ACCEPTED", + "proposed": "ACCEPT_SCOPED_FIRST_MOMENT", + "scope": "D5-a..D5-f of RECONCILIATION.md section 2", + "uses_P2": true, + "required": [ + "reviews/d5_local_collar_20260928/PUNCTURED_PIN_PROOF.md", + "reviews/d5_punctured_pin_nonauthor_20260928/REVIEW.md", + "reviews/d5_punctured_pin_continuum_claude_20260929/REVIEW.md", + "reviews/d5_punctured_pin_continuum_claude_20260929/pp_continuum_check.py", + "reviews/d5_local_collar_20260928/COLLAR_PROOF.md", + "reviews/d5_collar_count_20260928/REVIEW.md", + "frontiers/rn_annulus_bridge_20260925/PROOF.md", + "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md", + "frontiers/intermediate_window_20260928/PROOF.md", + "reviews/d5_i5_planar_f_20260928/REVIEW.md", + "reviews/d5_intermediate_window_claude_20260928/REVIEW.md", + "frontiers/remote_window_20260924/PROOF.md" + ], + "graph_node": "math.d5-pin-neighborhood-first-moment" + }, + { + "id": "D5-collision (catalog C6)", + "current": "ABSENT", + "proposed": "OPEN", + "scope": "torus-wide second factorial moment; lower obstruction only", + "uses_P2": false, + "required": [ + "reviews/d5_offpin_second_moment_20260928/REVIEW.md" + ] + } + ], + "graph": [ + { + "node": "math.rn-region.pin-collision", + "current": "OPEN_ACTIVE", + "proposed": "PROVED_REVIEWED", + "scope": "D5-a, D5-b, D5-d", + "uses_P2": true, + "required": [ + "reviews/d5_local_collar_20260928/PUNCTURED_PIN_PROOF.md", + "reviews/d5_punctured_pin_nonauthor_20260928/REVIEW.md", + "reviews/d5_punctured_pin_continuum_claude_20260929/REVIEW.md", + "reviews/d5_punctured_pin_continuum_claude_20260929/pp_continuum_check.py", + "reviews/d5_local_collar_20260928/COLLAR_PROOF.md", + "reviews/d5_collar_count_20260928/REVIEW.md" + ] + }, + { + "node": "math.rn-region.mesoscopic-scaled-annulus", + "current": "OPEN_ACTIVE", + "proposed": "PROVED_REVIEWED", + "scope": "D5-d with R >= B (covers the reviewed fixed annulus)", + "uses_P2": true, + "required": [ + "reviews/d5_local_collar_20260928/PUNCTURED_PIN_PROOF.md", + "reviews/d5_punctured_pin_nonauthor_20260928/REVIEW.md", + "reviews/d5_punctured_pin_continuum_claude_20260929/REVIEW.md", + "reviews/d5_punctured_pin_continuum_claude_20260929/pp_continuum_check.py", + "reviews/d5_local_collar_20260928/COLLAR_PROOF.md", + "reviews/d5_collar_count_20260928/REVIEW.md", + "frontiers/rn_annulus_bridge_20260925/PROOF.md", + "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md" + ] + }, + { + "node": "math.rn-region.intermediate-r-to-rho", + "current": "OPEN_ACTIVE", + "proposed": "PROVED_REVIEWED", + "scope": "D5-e (I3/I4, window I_r)", + "uses_P2": false, + "required": [ + "frontiers/intermediate_window_20260928/PROOF.md", + "reviews/d5_i5_planar_f_20260928/REVIEW.md", + "reviews/d5_intermediate_window_claude_20260928/REVIEW.md" + ] + }, + { + "node": "math.rn-region.witness-collision", + "current": "OPEN_ACTIVE", + "proposed": "OPEN_ACTIVE", + "scope": "catalog C6", + "uses_P2": false, + "required": [ + "reviews/d5_offpin_second_moment_20260928/REVIEW.md" + ] + } + ], + "proposed_graph_nodes": [ + { + "id": "math.d5-pin-neighborhood-first-moment", + "layer": "D5", + "kind": "candidate", + "classification": "PROVED_REVIEWED", + "controlling": false, + "scope": "D5-a..D5-f of RECONCILIATION.md section 2; existential constants; fixed T; compact marks with k >= k_- > 0; d = 2", + "source": "reviews/d5_reconciliation_20260929/RECONCILIATION.md" + }, + { + "id": "math.d5-component.punctured-pin-proof", + "layer": "D5", + "kind": "reading_rule_component", + "classification": "PROVED_REVIEWED", + "controlling": false, + "component_of": "math.d5-pin-neighborhood-first-moment", + "component_role": "proof", + "author_provider": "OpenAI", + "fingerprint": "f972e50bc07674ebce9d971d1a1bd4dba2f8036dde37ecb57d8a44a35650f76a", + "source": "reviews/d5_local_collar_20260928/PUNCTURED_PIN_PROOF.md", + "review_basis": [ + { + "review": "#111", + "provider": "xAI", + "verdict": "ACCEPT algebra; continuum HOLD", + "depth": "algebraic" + }, + { + "review": "d5_punctured_pin_continuum_claude_20260929", + "provider": "Anthropic", + "verdict": "ACCEPT existential", + "depth": "full" + } + ] + }, + { + "id": "math.d5-component.punctured-pin-review-111", + "layer": "D5", + "kind": "reading_rule_component", + "classification": "PROVED_REVIEWED", + "controlling": false, + "component_of": "math.d5-pin-neighborhood-first-moment", + "component_role": "review_record", + "author_provider": "xAI", + "fingerprint": "668d74825f156c929177bc1a3481cf421de4dd7874e7b25b2aece6c10aa7dc0e", + "source": "reviews/d5_punctured_pin_nonauthor_20260928/REVIEW.md" + }, + { + "id": "math.d5-component.punctured-pin-continuum-review", + "layer": "D5", + "kind": "reading_rule_component", + "classification": "PROVED_REVIEWED", + "controlling": false, + "component_of": "math.d5-pin-neighborhood-first-moment", + "component_role": "review_record", + "author_provider": "Anthropic", + "fingerprint": "124c472cc064ba24021cb4bb8da1002836a4ce26c8df506228f5c20609f6575a", + "source": "reviews/d5_punctured_pin_continuum_claude_20260929/REVIEW.md" + }, + { + "id": "math.d5-component.punctured-pin-continuum-check", + "layer": "D5", + "kind": "reading_rule_component", + "classification": "PROVED_REVIEWED", + "controlling": false, + "component_of": "math.d5-pin-neighborhood-first-moment", + "component_role": "review_checker", + "author_provider": "Anthropic", + "fingerprint": "57bc87d11271b47ebccec6ea73abf823fa90e3a8c3c7d7cd2165bdc6f7e4175c", + "source": "reviews/d5_punctured_pin_continuum_claude_20260929/pp_continuum_check.py" + }, + { + "id": "math.d5-component.collar-proof", + "layer": "D5", + "kind": "reading_rule_component", + "classification": "PROVED_REVIEWED", + "controlling": false, + "component_of": "math.d5-pin-neighborhood-first-moment", + "component_role": "proof", + "author_provider": "OpenAI", + "fingerprint": "794babe0fd039c3a93c401c0b8978316331af009fad45f953e63fbe7e1e31aab", + "source": "reviews/d5_local_collar_20260928/COLLAR_PROOF.md", + "review_basis": [ + { + "review": "d5_collar_count_20260928", + "provider": "not named in record", + "verdict": "ACCEPT existential", + "depth": "full" + }, + { + "review": "Math-#105 comment 5872932723 (external)", + "provider": "Anthropic", + "verdict": "CONFIRMED", + "depth": "full" + } + ] + }, + { + "id": "math.d5-component.collar-review", + "layer": "D5", + "kind": "reading_rule_component", + "classification": "PROVED_REVIEWED", + "controlling": false, + "component_of": "math.d5-pin-neighborhood-first-moment", + "component_role": "review_record", + "author_provider": "not named in record", + "fingerprint": "8c8c30cc3b19601a7421341d5da8cb6c982fbc1fcc5ae4791acafa11cc81ee4e", + "source": "reviews/d5_collar_count_20260928/REVIEW.md" + }, + { + "id": "math.d5-component.annulus-proof", + "layer": "D5", + "kind": "reading_rule_component", + "classification": "PROVED_REVIEWED", + "controlling": false, + "component_of": "math.d5-pin-neighborhood-first-moment", + "component_role": "proof", + "author_provider": "OpenAI", + "fingerprint": "d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05", + "source": "frontiers/rn_annulus_bridge_20260925/PROOF.md", + "review_basis": [ + { + "review": "pr28_annulus_bridge_nonauthor_20260925", + "provider": "xAI", + "verdict": "ACCEPT R1-R7", + "depth": "full" + } + ] + }, + { + "id": "math.d5-component.annulus-review", + "layer": "D5", + "kind": "reading_rule_component", + "classification": "PROVED_REVIEWED", + "controlling": false, + "component_of": "math.d5-pin-neighborhood-first-moment", + "component_role": "review_record", + "author_provider": "xAI", + "fingerprint": "69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f", + "source": "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md" + }, + { + "id": "math.d5-component.intermediate-window-proof", + "layer": "D5", + "kind": "reading_rule_component", + "classification": "PROVED_REVIEWED", + "controlling": false, + "component_of": "math.d5-pin-neighborhood-first-moment", + "component_role": "proof", + "author_provider": "OpenAI", + "fingerprint": "b3eb9456d7058b5b78149cfca4e072679beda85cd1a0293d209664a542db66cf", + "source": "frontiers/intermediate_window_20260928/PROOF.md", + "review_basis": [ + { + "review": "d5_i5_planar_f_20260928", + "provider": "xAI", + "verdict": "ACCEPT existential", + "depth": "full" + }, + { + "review": "d5_intermediate_window_claude_20260928", + "provider": "Anthropic", + "verdict": "ACCEPT", + "depth": "full" + } + ] + }, + { + "id": "math.d5-component.i5-review-xai", + "layer": "D5", + "kind": "reading_rule_component", + "classification": "PROVED_REVIEWED", + "controlling": false, + "component_of": "math.d5-pin-neighborhood-first-moment", + "component_role": "review_record", + "author_provider": "xAI", + "fingerprint": "527d66e72b079ef7c854987f7e9d44f2252b81aa0e8d9e7ef3b45deb02388659", + "source": "reviews/d5_i5_planar_f_20260928/REVIEW.md" + }, + { + "id": "math.d5-component.i5-review-claude", + "layer": "D5", + "kind": "reading_rule_component", + "classification": "PROVED_REVIEWED", + "controlling": false, + "component_of": "math.d5-pin-neighborhood-first-moment", + "component_role": "review_record", + "author_provider": "Anthropic", + "fingerprint": "fb3207802bf2d92ad138bc338a36f39bcd3a94440669b9aba9558e566f767976", + "source": "reviews/d5_intermediate_window_claude_20260928/REVIEW.md" + }, + { + "id": "math.d5-component.remote-window-proof", + "layer": "D5", + "kind": "reading_rule_component", + "classification": "PROVED_REVIEWED", + "controlling": false, + "component_of": "math.d5-pin-neighborhood-first-moment", + "component_role": "proof", + "author_provider": "OpenAI", + "fingerprint": "a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7", + "source": "frontiers/remote_window_20260924/PROOF.md", + "review_basis": [ + { + "review": "STATUS D4 (main#76, external)", + "provider": "nonauthor", + "verdict": "ACCEPT", + "depth": "full" + } + ] + }, + { + "id": "math.d5-component.offpin-second-moment-review", + "layer": "D5", + "kind": "reading_rule_component", + "classification": "PROVED_REVIEWED", + "controlling": false, + "component_of": "math.rn-region.witness-collision", + "component_role": "review_record", + "author_provider": "nonauthor", + "fingerprint": "43beb4ef7da5bf71e15164d5c4bc1862db387d83f906aebdf9831625b1ca6369", + "source": "reviews/d5_offpin_second_moment_20260928/REVIEW.md" + } + ], + "proposed_graph_edges": [ + { + "from": "math.d5-pin-neighborhood-first-moment", + "to": "math.d5-component.punctured-pin-proof", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.d5-pin-neighborhood-first-moment", + "to": "math.d5-component.punctured-pin-review-111", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.d5-pin-neighborhood-first-moment", + "to": "math.d5-component.punctured-pin-continuum-review", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.d5-pin-neighborhood-first-moment", + "to": "math.d5-component.punctured-pin-continuum-check", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.d5-pin-neighborhood-first-moment", + "to": "math.d5-component.collar-proof", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.d5-pin-neighborhood-first-moment", + "to": "math.d5-component.collar-review", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.d5-pin-neighborhood-first-moment", + "to": "math.d5-component.annulus-proof", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.d5-pin-neighborhood-first-moment", + "to": "math.d5-component.annulus-review", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.d5-pin-neighborhood-first-moment", + "to": "math.d5-component.intermediate-window-proof", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.d5-pin-neighborhood-first-moment", + "to": "math.d5-component.i5-review-xai", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.d5-pin-neighborhood-first-moment", + "to": "math.d5-component.i5-review-claude", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.d5-pin-neighborhood-first-moment", + "to": "math.d5-component.remote-window-proof", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.pin-collision", + "to": "math.d5-component.punctured-pin-proof", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.pin-collision", + "to": "math.d5-component.punctured-pin-review-111", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.pin-collision", + "to": "math.d5-component.punctured-pin-continuum-review", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.pin-collision", + "to": "math.d5-component.punctured-pin-continuum-check", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.pin-collision", + "to": "math.d5-component.collar-proof", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.pin-collision", + "to": "math.d5-component.collar-review", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.mesoscopic-scaled-annulus", + "to": "math.d5-component.punctured-pin-proof", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.mesoscopic-scaled-annulus", + "to": "math.d5-component.punctured-pin-review-111", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.mesoscopic-scaled-annulus", + "to": "math.d5-component.punctured-pin-continuum-review", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.mesoscopic-scaled-annulus", + "to": "math.d5-component.punctured-pin-continuum-check", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.mesoscopic-scaled-annulus", + "to": "math.d5-component.collar-proof", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.mesoscopic-scaled-annulus", + "to": "math.d5-component.collar-review", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.mesoscopic-scaled-annulus", + "to": "math.d5-component.annulus-proof", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.mesoscopic-scaled-annulus", + "to": "math.d5-component.annulus-review", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.intermediate-r-to-rho", + "to": "math.d5-component.intermediate-window-proof", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.intermediate-r-to-rho", + "to": "math.d5-component.i5-review-xai", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.intermediate-r-to-rho", + "to": "math.d5-component.i5-review-claude", + "required": true, + "relation": "requires_evidence" + }, + { + "from": "math.rn-region.witness-collision", + "to": "math.d5-component.offpin-second-moment-review", + "required": true, + "relation": "requires_evidence" + } + ], + "note": "DECLARATIVE, NOT EXECUTED: no GRAPH or registry edit is made here. Every mandatory evidence file is a proposed graph node with its SHA256 as fingerprint, reached by a required edge from each consuming node. A later graph change must create actual source nodes and required edges (or a separately tested source-reader extension); coverage_source metadata is not read by the reverse-impact source reader and is not byte invalidation.", + "declarative": true, + "executed": false +} diff --git a/reviews/d5_reconciliation_20260929/RECONCILIATION.md b/reviews/d5_reconciliation_20260929/RECONCILIATION.md new file mode 100644 index 000000000..4062d76bd --- /dev/null +++ b/reviews/d5_reconciliation_20260929/RECONCILIATION.md @@ -0,0 +1,163 @@ +# D5 pin-neighborhood first moment — source-bound reconciliation + +**Object:** D5-RECONCILIATION-20260929-v2.1. +**Version v2 (guard repair).** This version answers OpenAI review +[5893615810](https://github.com/d6g8k5htny-coder/Math-/pull/138#issuecomment-5893615810): +- the P2 continuum record is now mandatory and byte-bound; +- real delete, change and symlink negatives are added; +- the transition dependency chains are machine-readable; +- the identity inventory now covers every record §3 names. + +**v2.1** answers OpenAI review +[5355021293](https://github.com/d6g8k5htny-coder/Math-/pull/138#pullrequestreview-5355021293): +- symlinked parent directories are rejected too; +- every mandatory evidence file is proposed as a graph node, with its SHA256 as `fingerprint`, reached by a + `required` edge from each consuming node. A `coverage_source` string alone is not byte invalidation. + +The proposal itself is unchanged. +**Reconciler:** Anthropic Claude, Claude Code session `session_017Mi3hxjaxV45x6zo6o1ee3`. + +**Effect:** a register-reconciliation *proposal*. +- It introduces **no new mathematical claim**. +- It binds the existing D5 sources to exact bytes and to their nonauthor verdicts, and says which D5 text is now stale. +- It splits off the one genuinely open item. +- The register edits in §6 are for a **non-Claude lane** to check and land. `lemma_closed`, prizes and premises are + untouched. + +## 1. What D5 claims, and what the register says + +**D5**, as the register uses it, is the **all-height first moment near the pins**. The fixed law is: +- the original six pins `M = (−r/2, 0)`, `S = (r/2, 0)`, `f(M) = b`, `f(S) = b − kr³`, `∇f(M) = ∇f(S) = 0`; +- the Gaussian regression `Q_r` and the original weight `W_r = F_2(H_M)F_1(H_S)`, with `dQ_r^W = (W_r/Z_r) dQ_r`; +- the planar periodized field with fixed `T`, compact `b`, `0 < k_− ≤ k ≤ k_+`, and all frames in `O(2)`. + +The main `STATUS.md` row (main `f43f243`) reads: *"the inner microdisk bound and collar to the reviewed annulus are not +complete, and the claimed summed pin-neighborhood bound remains AMEND."* + +`PROOF_INDEX.md` lists three D5 bullets: pin neighborhoods, the intermediate scale `r ≪ |x| ≪ ρ`, and the shrinking +multiple-witness collision. + +## 2. Reconciled statements + +Scaled coordinates are `X = r(u, v)` from the midpoint, so the pins are `(±1/2, 0)`. `N_j` counts index-`j` critical +points. Constants are existential: no numerical `C` or `r_*`. + +| ID | Statement | Heights | +|---|---|---| +| **D5-a** (P2) | `E_{Q_r^W} N_j(M + rE) ≤ C r³|E|` for Borel `E ⊂ {0 < p² + q² ≤ 1/16}`, and the same at `S` | all | +| **D5-b** (microdisk) | the nested disks of radius `κr²` about each pin, for fixed `κ`: `O(r⁵)` | all | +| **D5-c** (C1) | `E_{Q_r^W} N_j(rE) ≤ C r³|E|` for Borel `E ⊂ C_{η,R}`, `η ≤ 1/4`, fixed `R ≥ 1` | all | +| **D5-d** (C2), the **summed pin-neighborhood bound** | the same on `{|(u,v)| ≤ R} ∖ {(±1/2, 0)}`, so `E_{Q_r^W} N_j(r B_R ∖ {M,S}) ≤ C_R r³` | all | +| **D5-e** (I3/I4) | the dyadic shells and `{A_0 r ≤ |X| ≤ ρ}`: `E N ≤ C r³(A_0^{−2} + ρ²)` | window `I_r` | +| **D5-f** (I5) | `E_{Q_r^W} N_{r,j}(T² ∖ {M,S}) ≤ C r³`; planar `c r³ ≤ P(A_r) ≤ C r³` | window `I_r` | + +D5-d with `R ≥ B` covers the reviewed fixed annulus `A ≤ |x| ≤ B` of PR28. That is the "collar to the reviewed annulus". + +## 3. Components, exact bytes and nonauthor verdicts + +All paths are on Math- `main` `e947ade51defcec1fb75444efbe91ac7fcf43f60`. The P2 continuum record landed via #139 +at blob `4904e3d9…`. Items marked *external* are cited but not byte-checked: `main#76` and the #105 comments. + +| Component | Source (author) | Blob / SHA256 | Nonauthor verdicts (record) | +|---|---|---|---| +| P2 punctured pin disks | `reviews/d5_local_collar_20260928/PUNCTURED_PIN_PROOF.md` (OpenAI) | `d8acf0bc…` / `f972e50b…` | xAI/Grok #111 (`reviews/d5_punctured_pin_nonauthor_20260928/`): algebra (P4), (P9), (P17), (P20) ACCEPT, continuum HOLD. Claude (`reviews/d5_punctured_pin_continuum_claude_20260929/`, landed via #139, `REVIEW.md` blob `4904e3d9…`, **mandatory** in the checker): continuum and **(P2) ACCEPT existential**, committing the #105 review 5872932723 (*external*). | +| C1 collar, C2 synthesis | `reviews/d5_local_collar_20260928/COLLAR_PROOF.md` (OpenAI) | `b5647907…` / `794babe0…` | `reviews/d5_collar_count_20260928/` (#119; lane not named in the file): C1 **ACCEPT existential**, C2 **ACCEPT corollary**. Claude #105 review 5872932723 (*external*): priorities (i)–(vii) confirmed at the analytic level (§4). | +| Reviewed fixed annulus | `frontiers/rn_annulus_bridge_20260925/PROOF.md` (PR28) | `6f317515…` / `d55e2c03…` | `reviews/pr28_annulus_bridge_nonauthor_20260925/`: R1–R7 ACCEPT | +| I3, I4, I5 | `frontiers/intermediate_window_20260928/PROOF.md` (OpenAI) | `f53a527c…` / `b3eb9456…` | xAI/Grok `reviews/d5_i5_planar_f_20260928/`: I3/I4 **ACCEPT existential**, I5 ACCEPT. Claude `reviews/d5_intermediate_window_claude_20260928/`: I3/I4 ACCEPT, I5 ACCEPT with the explicit tiling (N1). | +| Remote Theorem A (D4) | `frontiers/remote_window_20260924/PROOF.md` | `b383bfcc…` / `a332bae9…` | STATUS D4 ACCEPT (main#76, *external*) | +| `P_η` fixed-separation factorial moment | `frontiers/remote_collision_20260928/PROOF.md` (Claude) | `7b48a88e…` / `b9b8b58f…` | xAI/Grok `reviews/d5_remote_collision_grok_20260928/`; `reviews/d5_offpin_second_moment_20260928/`: `P_η` ACCEPT | + +**Consumption graph.** + + D5-a ← P2 + D5-b ← P2 (nested-disk corollary) + D5-c ← C1, which imports the normalizer (P14) and the §3 moments from P2 + D5-d ← D5-a + D5-c at η = 1/4 + D5-e ← I3, I4 + D5-f ← D5-d (R = 4) + I4 (A_0 = 4, ρ = s_0) + remote Theorem A (ρ = s_0) + +`reconciliation_check.py` checks the tiling exactly on a rational grid. + +## 4. The #105 collar verdict, committed + +My analytic review of `COLLAR_PROOF.md` on #105 (5872932723, runner replay 5872950920, 2026-09-28, at the same bytes) +confirmed all seven requested priorities: + +1. **Interpolation.** Degree five, with cardinal properties at three sites, including collinear triples. +2. **Floor versus error.** The `r⁵` floor dominates the `r⁶` error: `V_r = B_c D_r J_5 + O(r⁶)`. +3. **Schur floor.** Deleting the auxiliary value and applying the Schur floor gives `Σ_X ≥ c r^{10} I`. +4. **Whole-field moments.** They hold at the coarse powers `r^{−60}` and `|v|^{−24}`. +5. **Drift.** `|D| ≥ η²/4` on the collar, via the joint-density inequality (C10). +6. **Split and ledgers.** The `r^{1/3}` split and the ledgers (C11), (C13), (C14), (C19) hold. +7. **Cover.** `η = 1/4` and `R > A` give compatibility with the pin disk and with PR28's annulus. + +The `RESULTS.json` flag `continuum_verified: false` in `reviews/d5_collar_count_20260928/` is read here as a statement +about what code verifies. Its `REVIEW.md` table records the analytic ACCEPT. + +## 5. What remains open + +- **D5-open (catalog C6): shrinking multiple-witness collision.** + - **Target.** A torus-wide second factorial moment `E_{Q_r^W} N(N−1)` for the window count, with pairs where at least + one witness is within fixed `η` of a pin. `P_η` covers every pair with both witnesses at distance `≥ η`, at any + mutual separation. + - **What is known.** A validated lower obstruction `E N(N−1) ≥ 2 P(N ≥ 2) ≥ 2c r³` (C2 of #116, recorded in + `docs/integration/2026-09-29-reviewed-window-and-inverse.md`). **No upper bound.** The optimal order is open. +- Numerical constants; uniformity in `T`, in `R ↑` or `η ↓`, and as `k ↓ 0`; `d > 2`; elder pairing. None of these is + claimed by D5. + +## 6. Proposed register transitions (for a non-Claude lane) + +| Surface | Current | Proposed | +|---|---|---| +| main `STATUS.md` | D5 in the not-accepted table (text in §1) | Move to the accepted table: **"D5 — pin neighborhoods / microdisk (first moment)"** with the scope of D5-a…D5-f, existential constants, fixed `T`, compact marks with `k ≥ k_− > 0`, all frames and indices, `d = 2`. Add a not-accepted row **"D5-collision (C6)"** with the §5 text. | +| `PROOF_INDEX.md` | first two D5 bullets under "Open obligations" | Move them to the reviewed section, citing §3's records. Keep the third bullet (shrinking collision) open and point it to C6. | +| `GRAPH.json` | `math.rn-region.pin-collision`, `.mesoscopic-scaled-annulus` and `.intermediate-r-to-rho` are OPEN_ACTIVE | `PROVED_REVIEWED` at the D5-d, D5-d and D5-e scopes respectively. This is realized only by actual source nodes and `required` edges to every evidence component, as declared in `PROPOSED_TRANSITIONS.json`, and never by `coverage_source` metadata. **`math.rn-region.witness-collision` stays OPEN_ACTIVE.** | + +The machine-readable form is `PROPOSED_TRANSITIONS.json`. +- **Dependency chains.** Every transition that uses P2 lists the continuum record, its checker and #111 in its + chain: the D5 row, `pin-collision` and `mesoscopic-scaled-annulus`. +- **Graph nodes.** It proposes real GRAPH nodes, in the D1 `reading_rule_component` form: one per mandatory evidence + file, with `fingerprint` equal to its SHA256 and `source` equal to its path. It also proposes a D5 aggregate node + `math.d5-pin-neighborhood-first-moment`, which stands for the STATUS row. +- **Required edges.** 30 `required: true` edges run from each consuming node to each of its components. +- **Enforcement.** The checker requires every chain to be realized by nodes with matching fingerprints and by the + required edges. A `coverage_source` string alone is not byte invalidation. +- **Declarative only.** `PROPOSED_TRANSITIONS.json` is declarative and is not executed (`"executed": false`, + checked). This PR makes no GRAPH or registry edit. + - A later graph change must create actual source nodes and `required` edges to every mandatory evidence component, + or else a separately tested extension of the existing reverse-impact source reader. + - `coverage_source` metadata is not read by that reader, so it cannot serve as an invalidation repair. + +These transitions rest only on the verdicts in §3. The only Claude-authored mathematical input is `P_η` +(`remote_collision`), and it has xAI/Grok verdicts. The two Claude *review* records (P2 continuum, I3–I5) are joined by +xAI/Grok records on the same objects: algebra and (P17) for P2; I3/I4/I5 for the intermediate window. + +**Independence caveat.** +- For the P2 continuum steps specifically, the only full-depth nonauthor verdict is Claude's. #111 held them. The + integrating lane may want its own check of (P10)–(P12), (P14) and (P18) before landing D5-a. Those are the exact + steps listed in the continuum record. +- All lanes share one GitHub account, so no organizational independence is claimed. + +## 7. Checks + +`reconciliation_check.py` (stdlib only, run from the repository root) has six checks. +- **IDENTITIES.** All 17 sources and records named in §3 exist as regular files, with no symlink anywhere on the path + (file or parent directory), and with the stated SHA256 and git blob. The P2 continuum record and its three companion files are mandatory. +- **VERDICTS.** The exact verdict rows are present, including the continuum record's (P10)–(P20) and (P2) rows. They + are checked, not a generic ACCEPT substring. +- **NEGATIVES.** These are real filesystem faults on a temporary copy of the complete packet. Each is rejected: + - delete the continuum record; + - change one byte, keeping every verdict row; + - replace it by a symlink to identical bytes; + - replace its parent directory by a symlink to an identical directory. +- **TRANSITIONS.** `PROPOSED_TRANSITIONS.json` names only inventoried files. Every P2-dependent chain contains the + continuum record, its checker and #111. Every chain is realized by component nodes whose fingerprint equals the + inventory SHA256, and by required edges. `witness-collision` and C6 stay open. +- **TILING.** The D5-f tiling covers an exact rational grid of `T² ∖ {M,S}`. +- **OPEN_C6.** The collision item is still recorded as open. + +There are eight mutants and each must fail. `optional-continuum` re-creates the v1 defect. The others are +`allow-symlink`, `no-hash`, `drop-dependency`, `drop-edge`, `stale-fingerprint`, `drop-collar` and `close-c6`. + + python -B -S reviews/d5_reconciliation_20260929/reconciliation_check.py # from the repo root; prints RESULTS.json + python -B -S reviews/d5_reconciliation_20260929/reconciliation_check.py --mutant M # exit 1 diff --git a/reviews/d5_reconciliation_20260929/RESULTS.json b/reviews/d5_reconciliation_20260929/RESULTS.json new file mode 100644 index 000000000..b1f506888 --- /dev/null +++ b/reviews/d5_reconciliation_20260929/RESULTS.json @@ -0,0 +1,14 @@ +{ + "checks": { + "IDENTITIES": true, + "NEGATIVES": true, + "OPEN_C6": true, + "TILING": true, + "TRANSITIONS": true, + "VERDICTS": true + }, + "inventory_files": 17, + "object": "D5-RECONCILIATION-20260929-v2.1", + "passed": true, + "scope": "identity, verdict-row, filesystem-negative, transition-chain, tiling and open-item checks; no mathematics is re-proved" +} diff --git a/reviews/d5_reconciliation_20260929/SOURCE_FILES.json b/reviews/d5_reconciliation_20260929/SOURCE_FILES.json new file mode 100644 index 000000000..10f5efc8c --- /dev/null +++ b/reviews/d5_reconciliation_20260929/SOURCE_FILES.json @@ -0,0 +1,33 @@ +{ + "schema": 1, + "scientific_effect": "NONE", + "disposition": "REGISTER_RECONCILIATION_PROPOSAL", + "version": "v2.1", + "base": "e947ade51defcec1fb75444efbe91ac7fcf43f60", + "files": [ + { + "path": "PROPOSED_TRANSITIONS.json", + "bytes": 18011, + "sha256": "02f91870b636635244a767ba92f2490dd480b1720d456889216a56e07705a68b", + "git_blob": "d928969e0c880a3fc794d7935ed31172488c3f98" + }, + { + "path": "RECONCILIATION.md", + "bytes": 12536, + "sha256": "14342b7eb0ad47c1c99b06be58fb6c901f5c7c72fc70f73e81de3dde50c23432", + "git_blob": "4062d76bdf3c60bc73f04295b88c245bcee395de" + }, + { + "path": "RESULTS.json", + "bytes": 379, + "sha256": "10ec020fc4f630a7d707bd37cef14d5fa92e38a89618ca583cff0f58477b542c", + "git_blob": "b1f506888cb523f32e68b945aa9de7e4f970da1d" + }, + { + "path": "reconciliation_check.py", + "bytes": 13764, + "sha256": "128bebba61308291ca105f8bd1ca11b30a7179aefdd526bab8e09d82509fb2be", + "git_blob": "fbf974692d7c8030b051fe7a41217e56ac122c86" + } + ] +} diff --git a/reviews/d5_reconciliation_20260929/reconciliation_check.py b/reviews/d5_reconciliation_20260929/reconciliation_check.py new file mode 100644 index 000000000..fbf974692 --- /dev/null +++ b/reviews/d5_reconciliation_20260929/reconciliation_check.py @@ -0,0 +1,243 @@ +"""Checks for D5-RECONCILIATION-20260929-v2.1 (RECONCILIATION.md, PROPOSED_TRANSITIONS.json). Stdlib only; run from the +repository root. + + IDENTITIES every source and record named in RECONCILIATION.md section 3 exists as a regular file, with no symlink + anywhere on its path (file or parent directory), and with its stated SHA256 and git blob. The P2 continuum record is MANDATORY (landed blob 4904e3d9...). + VERDICTS the exact verdict rows occur in each record, including the continuum record's (P10)-(P20) and (P2) rows. + NEGATIVES real filesystem negatives on a temporary copy of the complete packet: deleting the continuum record, + changing one byte of it (all verdict rows kept), replacing it by a symlink to identical bytes, or + replacing its parent directory by a symlink to an identical directory are each REJECTED. + TRANSITIONS PROPOSED_TRANSITIONS.json names only inventoried files; every transition with uses_P2 lists the P2 + continuum record, its checker and #111; every required file is a proposed graph node whose fingerprint + equals its inventory SHA256 and source equals its path, reached by a required edge from each consuming + node (the D5 row's node included); the witness-collision node and C6 stay open. + TILING pin disks, the collar C_{1/4,4}, {4r <= |X| <= s0} and {|X| >= s0} cover an exact rational grid. + OPEN_C6 the collision item is still recorded as open. +Mutants (each must fail): optional-continuum, allow-symlink, no-hash, drop-dependency, drop-edge, stale-fingerprint, +drop-collar, close-c6. +""" +import argparse +import hashlib +import json +import os +import pathlib +import shutil +import sys +import tempfile +from fractions import Fraction as F + +MUTANTS = ("optional-continuum", "allow-symlink", "no-hash", "drop-dependency", "drop-edge", "stale-fingerprint", + "drop-collar", "close-c6") +MUT = None +HERE = "reviews/d5_reconciliation_20260929" +CONTINUUM = "reviews/d5_punctured_pin_continuum_claude_20260929/REVIEW.md" +CONTINUUM_CHECK = "reviews/d5_punctured_pin_continuum_claude_20260929/pp_continuum_check.py" +P111 = "reviews/d5_punctured_pin_nonauthor_20260928/REVIEW.md" + +# path: (sha256, git blob) +INVENTORY = { + "reviews/d5_local_collar_20260928/PUNCTURED_PIN_PROOF.md": + ("f972e50bc07674ebce9d971d1a1bd4dba2f8036dde37ecb57d8a44a35650f76a", "d8acf0bcb9025b1562c03c077c8e0094ae282060"), + "reviews/d5_local_collar_20260928/COLLAR_PROOF.md": + ("794babe0fd039c3a93c401c0b8978316331af009fad45f953e63fbe7e1e31aab", "b5647907a8a589635855b59cc4246b23efce2801"), + "frontiers/rn_annulus_bridge_20260925/PROOF.md": + ("d55e2c03bb17e7977ff94130cc1ff21e54840cd1e20dc4e41ea9ad52228beb05", "6f317515b3d417661f86e2fed09bc7d950899c2b"), + "frontiers/intermediate_window_20260928/PROOF.md": + ("b3eb9456d7058b5b78149cfca4e072679beda85cd1a0293d209664a542db66cf", "f53a527ce0204fda271f24730b62b4223a5e43ec"), + "frontiers/remote_window_20260924/PROOF.md": + ("a332bae9bdc0106ce17047f7e0409cc3d94eb610a0c7b74ba5ba2d01a1620cb7", "b383bfcc88ec4ad497dff01fb6640e429ba24a84"), + "frontiers/remote_collision_20260928/PROOF.md": + ("b9b8b58fd8266db7ffe6537078003888ef138b445d3289ec5588f116af9050c2", "7b48a88e2af54e759e89a8c8219573bb450a65ea"), + P111: + ("668d74825f156c929177bc1a3481cf421de4dd7874e7b25b2aece6c10aa7dc0e", "c98cf3eefbf61f2ee3bbc1c8ef88f2218dd8b47a"), + CONTINUUM: + ("124c472cc064ba24021cb4bb8da1002836a4ce26c8df506228f5c20609f6575a", "4904e3d929d6dc7bc16b49eee85d7c3a21b6b484"), + CONTINUUM_CHECK: + ("57bc87d11271b47ebccec6ea73abf823fa90e3a8c3c7d7cd2165bdc6f7e4175c", "b0d6321f7e480d7ea855a2017532588d241f5d34"), + "reviews/d5_punctured_pin_continuum_claude_20260929/RESULTS.json": + ("599e21c525ad0aec7938d94f80f7771bd8e14aeb9ae1b0a60ba434428496c464", "b1b98cfdf15992736dd54f258afe26dde3d76baf"), + "reviews/d5_punctured_pin_continuum_claude_20260929/SOURCE_FILES.json": + ("6645abae056f0555cfb20128f3cbdbe9f5a72d76ab290cd2a96ae8f876f19faf", "fa36cd123bea3a48d7a84331a871c64a576ecd71"), + "reviews/d5_collar_count_20260928/REVIEW.md": + ("8c8c30cc3b19601a7421341d5da8cb6c982fbc1fcc5ae4791acafa11cc81ee4e", "6b1350fa88b3e217f9aac3c6bde7499639ebebe7"), + "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md": + ("69ea7a479a9e8a5150cbe07b373772ab22413a1d81194d5a6a78adf6ada5f03f", "559d72242fdb7e4e3ac4a10d10641ae1da84f40e"), + "reviews/d5_i5_planar_f_20260928/REVIEW.md": + ("527d66e72b079ef7c854987f7e9d44f2252b81aa0e8d9e7ef3b45deb02388659", "031c5364d1377e0f85ed62caadd8406fbbedc0ab"), + "reviews/d5_intermediate_window_claude_20260928/REVIEW.md": + ("fb3207802bf2d92ad138bc338a36f39bcd3a94440669b9aba9558e566f767976", "100ce8ecc120fcf4e3e4e6b9b039c08632e2711c"), + "reviews/d5_offpin_second_moment_20260928/REVIEW.md": + ("43beb4ef7da5bf71e15164d5c4bc1862db387d83f906aebdf9831625b1ca6369", "62697c471d4299590d807ab64b03b0ebb0d4dd43"), + "reviews/d5_remote_collision_grok_20260928/REVIEW.md": + ("f8289546ee82fb386a0d0b6b54fbb99f258a2dc2a959ae231ae80cb4baa61e1e", "c18560f86cfb81e47515f65c16186e6a70577512"), +} + +VERDICTS = { + P111: ["Cauchy–Binet floor `9/131072` | **ACCEPT** |", + "| (P2) count lemma | all-height punctured disk | **HOLD**"], + CONTINUUM: [ + "giving `c_0 I ≤ Σ ≤ C_0 I` | **ACCEPT**. This lifts #111's HOLD on the Schur/compactness step. |", + "| §6 (P11) density `≤ C r^{−3} Δ^{−2} e^{−cχ²}` | **ACCEPT** |", + "| §6 (P12) `E_{Q_r}[K^6 | ∇f(X) = 0] ≤ C(1 + χ^6)` | **ACCEPT** |", + "| §7 (P13)–(P14) `Z_r ≥ c_Z r²` | **ACCEPT** |", + "| §9 (P18) weighted Kac–Rice at the fixed zero level | **ACCEPT** |", + "| §10 (P19)–(P20) regions, puncture exhaustion; §10.1 reflection to `S` | **ACCEPT** |", + "| **(P2)** `E_{Q_r^W} N_j(M + rE) ≤ C r³|E|` for Borel `E ⊂ D`, and the `S` version | **ACCEPT, existential.** " + "No numerical `C` or `r_*`. Uniform in `b`, `k`, frame, `j` and `E`, for fixed `T` and compact marks. |"], + "reviews/d5_collar_count_20260928/REVIEW.md": [ + "| Collar first moment | `E_{Q^W} N_j(r E) <= C r^3 |E|` on `C(eta, R)` | ACCEPT existential |", + "| ACCEPT corollary of punctured-pin + collar |"], + "reviews/pr28_annulus_bridge_nonauthor_20260925/REVIEW.md": [ + "| R1 finite-r subtraction and remainders (9)–(11) | **ACCEPT** |", + "| R7 crossover, absorption, and full cover (17)–(20), (2) | **ACCEPT** |"], + "reviews/d5_i5_planar_f_20260928/REVIEW.md": [ + "| **ACCEPT** existential |", "| **ACCEPT** as corollary of C2 + I4 + D4 A |"], + "reviews/d5_intermediate_window_claude_20260928/REVIEW.md": [ + "| **(I3) shell** and **(I4) intermediate** | **ACCEPT** at the stated existential scope |", + "| **(I5) global single-witness first moment** | **ACCEPT** as a composition."], + "reviews/d5_offpin_second_moment_20260928/REVIEW.md": [ + "| ACCEPT |", "| CANDIDATE pending review and test (catalog C6) |"], +} + + +def git_blob(data): + return hashlib.sha1(b"blob %d\0" % len(data) + data).hexdigest() + + +def check_identities(root): + for path, (sha, blob) in INVENTORY.items(): + p = root / path + if MUT == "optional-continuum" and path == CONTINUUM and not os.path.lexists(p): + continue # the v1 defect: absence accepted + if not os.path.lexists(p): + return False + if MUT != "allow-symlink" and any((root / pathlib.PurePosixPath(*pathlib.PurePosixPath(path).parts[:i])).is_symlink() + for i in range(1, len(pathlib.PurePosixPath(path).parts) + 1)): + return False # symlinked file or parent directory + if not p.is_file(): + return False + data = p.read_bytes() + if MUT != "no-hash" and (hashlib.sha256(data).hexdigest() != sha or git_blob(data) != blob): + return False + return True + + +def check_verdicts(root): + for path, needles in VERDICTS.items(): + text = (root / path).read_text(encoding="utf-8") + if not all(n in text for n in needles): + return False + return True + + +def check_negatives(src): + """Copy the inventory to a temporary root, apply each real filesystem fault to the continuum record, and require + rejection. The changed copy keeps every verdict substring, so only the byte binding can reject it.""" + rejected = [] + for fault in ("delete", "change", "symlink", "symlink-parent"): + with tempfile.TemporaryDirectory() as tmp: + root = pathlib.Path(tmp) + for path in INVENTORY: + dst = root / path + dst.parent.mkdir(parents=True, exist_ok=True) + shutil.copyfile(src / path, dst) + target = root / CONTINUUM + if fault == "delete": + target.unlink() + elif fault == "change": + target.write_bytes(target.read_bytes() + b"\n") + assert all(n in target.read_text(encoding="utf-8") for n in VERDICTS[CONTINUUM]) + elif fault == "symlink": + moved = root / "elsewhere" / "REVIEW.md" + moved.parent.mkdir() + shutil.move(str(target), str(moved)) + os.symlink(moved, target) + else: + moved = root / "elsewhere_dir" + shutil.move(str(target.parent), str(moved)) + os.symlink(moved, target.parent, target_is_directory=True) + assert not target.is_symlink() and target.is_file() + rejected.append(not check_identities(root)) + return all(rejected) and len(rejected) == 4 + + +def check_transitions(root): + spec = json.loads((root / HERE / "PROPOSED_TRANSITIONS.json").read_text(encoding="utf-8")) + entries = spec["status_rows"] + spec["graph"] + if MUT == "drop-dependency": + for e in entries: + if e.get("node") == "math.rn-region.pin-collision": + e["required"] = [p for p in e["required"] if p != CONTINUUM] + ok = all(p in INVENTORY for e in entries for p in e["required"]) + ok &= all({CONTINUUM, CONTINUUM_CHECK, P111} <= set(e["required"]) for e in entries if e["uses_P2"]) + ok &= any(e.get("node") == "math.rn-region.witness-collision" and e["proposed"] == "OPEN_ACTIVE" + for e in spec["graph"]) + ok &= any(e["id"].startswith("D5-collision") and e["proposed"] == "OPEN" for e in spec["status_rows"]) + nodes = {n["id"]: n for n in spec["proposed_graph_nodes"]} + edges = spec["proposed_graph_edges"] + if MUT == "drop-edge": + edges = [e for e in edges if not (e["from"] == "math.rn-region.pin-collision" + and nodes.get(e["to"], {}).get("source") == CONTINUUM)] + if MUT == "stale-fingerprint": + for n in nodes.values(): + if n.get("source") == CONTINUUM: + n["fingerprint"] = "0" * 64 + by_source = {n["source"]: nid for nid, n in nodes.items() if "fingerprint" in n} + ok &= all(n["fingerprint"] == INVENTORY[n["source"]][0] for n in nodes.values() if "fingerprint" in n) + have = {(e["from"], e["to"]) for e in edges if e["required"] is True} + for e in entries: + src_node = e.get("node") or e.get("graph_node") + if src_node is None: + continue + ok &= all(p in by_source and (src_node, by_source[p]) in have for p in e["required"]) + ok &= "math.d5-pin-neighborhood-first-moment" in nodes + ok &= spec.get("declarative") is True and spec.get("executed") is False + return ok + + +def check_tiling(): + """Exact grid check in physical coordinates from the midpoint; torus side 1, s0 = 1/5, r = 1/20.""" + L, s0, r = F(1), F(1, 5), F(1, 20) + M, S = (-r / 2, F(0)), (r / 2, F(0)) + + def d2(a, b): + return (a[0] - b[0]) ** 2 + (a[1] - b[1]) ** 2 + + def covered(X): + if X in (M, S): + return True + n2 = X[0] ** 2 + X[1] ** 2 + pin = d2(X, M) <= (r / 4) ** 2 or d2(X, S) <= (r / 4) ** 2 + collar = n2 <= (4 * r) ** 2 and not pin and MUT != "drop-collar" + return pin or collar or (4 * r) ** 2 <= n2 <= s0 ** 2 or n2 >= s0 ** 2 + + n = 80 + pts = [(L * F(i, n) - L / 2, L * F(j, n) - L / 2) for i in range(n) for j in range(n)] + fine = [(F(i, 400), F(j, 400)) for i in range(-30, 31) for j in range(-30, 31)] + return all(covered(X) for X in pts + fine + [M, S]) + + +def check_open(root): + text = (root / "reviews/d5_offpin_second_moment_20260928/REVIEW.md").read_text(encoding="utf-8") + return "CANDIDATE pending review and test (catalog C6)" in text and MUT != "close-c6" + + +def main(): + global MUT + ap = argparse.ArgumentParser() + ap.add_argument("--mutant", choices=MUTANTS) + MUT = ap.parse_args().mutant + root = pathlib.Path(".").resolve() + ident = check_identities(root) + checks = {"IDENTITIES": ident, "VERDICTS": ident and check_verdicts(root), "NEGATIVES": check_negatives(root), + "TRANSITIONS": check_transitions(root), "TILING": check_tiling(), "OPEN_C6": check_open(root)} + passed = all(checks.values()) and len(checks) == 6 + print(json.dumps({"object": "D5-RECONCILIATION-20260929-v2.1", "checks": checks, "passed": passed, + "inventory_files": len(INVENTORY), + "scope": "identity, verdict-row, filesystem-negative, transition-chain, tiling and open-item " + "checks; no mathematics is re-proved"}, indent=2, sort_keys=True)) + return 0 if passed else 1 + + +if __name__ == "__main__": + sys.exit(main())