From dc83994c2dda28064c902ee970ce47db602224ae Mon Sep 17 00:00:00 2001 From: Marius-Paul Dumitrean Date: Thu, 15 Oct 2026 08:06:35 -0400 Subject: [PATCH 1/2] Verifier: audit_local.py accepts non-centre cut gates; additive guard (no new kappa) research/gauge44-frames-x/independent/audit_local.py frame-checks only sections A and B and, in the cut, only gates whose source is a centre. A constructed word (helper 502 made entering, its leak cancelled by four non-centre cut gates) passes the unchanged auditor with one rank level less, while the native provider chain rejects it (hpe_emit_local.py: emitted column mismatch). guard.py requires every cut gate to read a centre into a target row: it accepts all 146 genuine words at the base commit and both supplier words and rejects the counterexample. The pinned auditor (421 hash pins) is not changed. --- .../audit-local-cut-centre-guard/NOTICE.md | 15 + .../audit-local-cut-centre-guard/README.md | 63 ++ .../audit-local-cut-centre-guard/SOURCES.json | 24 + .../audit-local-cut-centre-guard/TASK.json | 66 ++ .../audit-local-cut-centre-guard/VERIFY.json | 20 + .../evidence/AUDIT-BASE.json | 13 + .../evidence/AUDIT-PROBE.json | 13 + .../evidence/GUARD-GENUINE-WORDS.json | 736 ++++++++++++++++++ .../evidence/GUARD-PROBE.json | 38 + .../evidence/NATIVE-PROBE.txt | 12 + .../audit-local-cut-centre-guard/guard.py | 39 + .../inputs/BASE-WORD.json.gz | Bin 0 -> 57438 bytes .../inputs/EXTRA-WORD.json.gz | Bin 0 -> 57440 bytes .../inputs/PINS.json | 24 + .../inputs/PROBE-CUT-502.json.gz | Bin 0 -> 57463 bytes .../audit-local-cut-centre-guard/verify.py | 63 ++ 16 files changed, 1126 insertions(+) create mode 100644 research/audit-local-cut-centre-guard/NOTICE.md create mode 100644 research/audit-local-cut-centre-guard/README.md create mode 100644 research/audit-local-cut-centre-guard/SOURCES.json create mode 100644 research/audit-local-cut-centre-guard/TASK.json create mode 100644 research/audit-local-cut-centre-guard/VERIFY.json create mode 100644 research/audit-local-cut-centre-guard/evidence/AUDIT-BASE.json create mode 100644 research/audit-local-cut-centre-guard/evidence/AUDIT-PROBE.json create mode 100644 research/audit-local-cut-centre-guard/evidence/GUARD-GENUINE-WORDS.json create mode 100644 research/audit-local-cut-centre-guard/evidence/GUARD-PROBE.json create mode 100644 research/audit-local-cut-centre-guard/evidence/NATIVE-PROBE.txt create mode 100644 research/audit-local-cut-centre-guard/guard.py create mode 100644 research/audit-local-cut-centre-guard/inputs/BASE-WORD.json.gz create mode 100644 research/audit-local-cut-centre-guard/inputs/EXTRA-WORD.json.gz create mode 100644 research/audit-local-cut-centre-guard/inputs/PINS.json create mode 100644 research/audit-local-cut-centre-guard/inputs/PROBE-CUT-502.json.gz create mode 100644 research/audit-local-cut-centre-guard/verify.py diff --git a/research/audit-local-cut-centre-guard/NOTICE.md b/research/audit-local-cut-centre-guard/NOTICE.md new file mode 100644 index 0000000000..a510934063 --- /dev/null +++ b/research/audit-local-cut-centre-guard/NOTICE.md @@ -0,0 +1,15 @@ +# Notice + +`inputs/BASE-WORD.json.gz` and `inputs/EXTRA-WORD.json.gz` are unmodified copies of PR #1672's +`research/gmx-t74-k554-signed-001/new/{gauge44,extra}-word-566.json.gz` (Jeremy Kothe / LeverRank, head b8ab040d), +Apache-2.0, with that package's retained ancestry (PR #1625 mdumitrean; PR #1319, #1297, #1286 Rohan Arun; PR #1274 +Jeremy Kothe; PR #1193 Jeremy Diviney; PR #1148 Thomas DiFiore; PR #1196 chafreaky; PR #1195; the PR564/571/589/645 +lineage). Exact pins: `inputs/PINS.json`. + +`inputs/PROBE-CUT-502.json.gz` is derived from the base word in this work (see README) as a semantic counterexample. +It is not a valid word. + +The audited checker, `research/gauge44-frames-x/independent/audit_local.py` (icekylinx, Apache-2.0), is used unchanged +and pinned in `SOURCES.json`. + +New files: Marius-Paul Dumitrean, Apache-2.0, prepared with substantial AI assistance (Anthropic Claude, via Claude Code). diff --git a/research/audit-local-cut-centre-guard/README.md b/research/audit-local-cut-centre-guard/README.md new file mode 100644 index 0000000000..8423c020cd --- /dev/null +++ b/research/audit-local-cut-centre-guard/README.md @@ -0,0 +1,63 @@ +# audit_local.py accepts non-centre cut gates (guard and regression fixture, no new κ) + +**Finding.** The independent local auditor `research/gauge44-frames-x/independent/audit_local.py` climbs frames only in +sections A and B. In the cut it checks only gates whose source is one of the word's eight centres (the centre-path +rule). A cut gate with any other source is applied to the scalar map but never frame-checked. A word can therefore move +priced work into the unpriced cut and still pass, with an understated paid profile. + +**Counterexample** (`inputs/PROBE-CUT-502.json.gz`). Start from the genuine base word of the pivot-566+554 T74 supplier +(`inputs/BASE-WORD.json.gz`, PR #1672). Make width-9 helper 502 entering (start frame of dimension 1 instead of 0), so its +width drops from 9 to 8. Cancel its initial-value leak with four cut gates `200/203/205/206 += ±½ · 502`, and re-time its +two A-section writes into B. +- The unchanged auditor run with `--main` **passes** it: compensation 7,204 gates instead of 7,208, 193 entering helpers instead of 192, local + profile `{2: 501, 3: 415}` instead of `{2: 500, 3: 416}`. That is one rank level less, about 2.1M units per call, which + would be worth roughly +8e-8 κ through the hosting. +- The native provider chain **rejects** it at its second step: `hpe_emit_local.py` fails with `emitted column mismatch` + at register 153 (`evidence/NATIVE-PROBE.txt`). The base word passes all five native steps. + +So the gap does not affect claims whose admission includes the native chain, which every T74 claim does. It does +affect any acceptance that relies on `audit_local.py` alone. + +**Guard** (`guard.py`, standard library). Every cut gate must be an `add` whose source is a centre and whose target is a +target row (`v <= t < 2v`). This is the structure of every genuine word, and the native emitter relies on it. +- It accepts all 146 genuine words found at the base commit (every `CANONICAL-WORD`/`FULL-WORD` file with a cut) and both + supplier words (`evidence/GUARD-GENUINE-WORDS.json`). +- It rejects exactly the probe's four gates (`evidence/GUARD-PROBE.json`). + +`audit_local.py` is pinned by hash in 421 files at the base commit, so this package does not modify it. The guard is +additive: run it alongside the auditor, or fold it into a new auditor version. + +## Reproduce + +```sh +python3.12 scripts/research_package.py --package research/audit-local-cut-centre-guard +python3 -B research/audit-local-cut-centre-guard/guard.py WORD.json.gz +``` + +`verify.py` checks the input pins and runs the unchanged auditor on the base and probe words; both pass, and the +receipts equal `evidence/AUDIT-*.json`. It then runs the guard on all three words and two mutation controls (a +non-centre cut source, a non-target cut row). It takes a few seconds. The native rejection is recorded evidence, not +rerun. + +## Scope + +This audits one condition: frames of cut gates in the local auditor. It is not a new construction and gives no κ. The +counterexample is built on the pending T74 supplier's base word, which is not in main; the auditor and guard are the +same for the selected line's words. + +## Open next questions + +- **Version the guard into the auditor.** The first step is to list the registered packages whose acceptance calls + `audit_local.py` without the native chain and run `guard.py` on their words. This is blocked on a maintainer decision + about versioning a pinned auditor. +- **Check the other unpriced sections.** The precondition, the derived compensation and the frame-free cleanup could + admit analogous counterexamples. For each one, state the structural rule the native emitter assumes and test it with + a constructed word, as here. + +## Credit + +The auditor is icekylinx's gauge44-frames-x package. The words are PR #1672's (Jeremy Kothe / LeverRank) pivot-554 kernel on +PR #1625's pivot-566 words (mdumitrean), in the PR #1319/#1297 lineage (Rohan Arun) and its retained ancestry. The native +chain is PR635's vendored scripts, run through PR #1186's toolkit. See `NOTICE.md`. + +Prepared by Marius-Paul Dumitrean with substantial AI assistance (Anthropic Claude, via Claude Code). Apache-2.0. diff --git a/research/audit-local-cut-centre-guard/SOURCES.json b/research/audit-local-cut-centre-guard/SOURCES.json new file mode 100644 index 0000000000..6adac8864f --- /dev/null +++ b/research/audit-local-cut-centre-guard/SOURCES.json @@ -0,0 +1,24 @@ +{ + "schema_version": 1, + "base_commit": "0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2", + "files": [ + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "e8870e5917057d59b730eb14721a778639eca050", + "sha256": "d46eb6d5b3e279428753d770653663fbdf1063e55c255ea073d768f344927ef7" + }, + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "ae6a99f28aa468649eb66a361e764d769363bf11", + "sha256": "10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32" + }, + { + "path": "research/gauge44-frames-x/independent/audit_local.py", + "usage": "input", + "git_blob": "4744d8783c25bf7bf5076886169077ca3808309a", + "sha256": "03afcfc9da428b3f6edac81c1fee7f277ab81b64998efae78380b63498dec6cd" + } + ] +} diff --git a/research/audit-local-cut-centre-guard/TASK.json b/research/audit-local-cut-centre-guard/TASK.json new file mode 100644 index 0000000000..619d6f2770 --- /dev/null +++ b/research/audit-local-cut-centre-guard/TASK.json @@ -0,0 +1,66 @@ +{ + "schema_version": 1, + "task_id": "supplier-boundary-audit", + "priority_revision": 4, + "base_commit": "0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2", + "original_card": { + "id": "supplier-boundary-audit", + "question": "Does one selected supplier obligation follow from its actual source-bound checks?", + "starting_points": [ + "certificates/selected-result.json", + "research/owner-boundary-audit/README.md" + ], + "methods": [ + "Trace one hypothesis through the source, checker and complete caller.", + "Construct one semantically invalid but superficially well-formed fixture and test rejection." + ], + "acceptance_gate": "Pin the current sources and one obligation; the historical owner audit is an example, not evidence of a current bug.", + "first_step": { + "command": [ + "python3", + "-B", + "research/owner-boundary-audit/verify.py" + ], + "expected": "PASS_PR626_NEXT_TOUCH_BOUNDARY_AUDIT", + "inspect": "Identify why the timing-only omission passes but the full production controller still rejects it.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Choose one current supplier obligation and trace whether its acceptance depends on an independent check.", + "bottleneck_link": "Closing a current acceptance gap or proof obligation strengthens reliability even without changing kappa.", + "allowed_variations": [ + "Audit one named current condition using a new semantic counterexample." + ], + "scope_change_triggers": [ + "Reporting the historical timing-only diagnostic as a new current acceptance bug." + ], + "overlap_terms": [ + "owner boundary", + "bridge omission", + "hosting" + ] + }, + "scope_status": "refined", + "actual_scope": "Does the local-word frame obligation checked by research/gauge44-frames-x/independent/audit_local.py follow from its source-bound checks for every section of the word? Audited condition: frames of cut gates.", + "scope_change_reason": "The card asks for one selected supplier obligation; the audited checker is the local-word auditor used by the selected and the pending T74 supplier lines, and the semantic counterexample is built on the pending T74 supplier base word because that is where the gap appeared.", + "bottleneck_link": "An acceptance gap in the local auditor can admit a word whose paid profile is understated; closing it strengthens every package that relies on this auditor without the native chain. No kappa changes.", + "budget_minutes": 90, + "stop_rule": "Stop after one semantic counterexample, one guard that accepts every genuine word checked and rejects the counterexample, and two mutation controls.", + "outcome": "completed", + "evidence": "evidence/AUDIT-BASE.json and AUDIT-PROBE.json (the unchanged auditor passes both); evidence/GUARD-PROBE.json (the four non-centre cut gates); evidence/GUARD-GENUINE-WORDS.json (146 genuine words at the base commit plus the supplier words: no violation); evidence/NATIVE-PROBE.txt (the native chain rejects the probe at hpe_emit_local.py).", + "author": "Marius-Paul Dumitrean", + "ai_assistance": "Substantial assistance from Anthropic Claude (Claude Code): search, construction of the counterexample, code, runs, analysis and text.", + "open_questions": [ + { + "question": "Should the guard become part of a new version of the local auditor (or of the registered replays that call it)?", + "why_it_matters": "audit_local.py is pinned by hash in 421 files at the base commit, so it is not changed here; packages that rely on it without the native chain inherit the gap.", + "first_step": "List the packages whose acceptance calls audit_local.py but not the native provider chain, and run guard.py on their words.", + "blocked_by": "A maintainer decision on how to version a pinned auditor." + }, + { + "question": "Do the other unpriced sections (precondition, derived compensation, frame-free cleanup) admit analogous counterexamples?", + "why_it_matters": "The cut gap shows the auditor trusts structure it does not check; the precondition and cleanup are also frame-free.", + "first_step": "For each section, write the structural rule the native emitter assumes and test it against a constructed word as here.", + "blocked_by": "None." + } + ] +} diff --git a/research/audit-local-cut-centre-guard/VERIFY.json b/research/audit-local-cut-centre-guard/VERIFY.json new file mode 100644 index 0000000000..c6a4faf92a --- /dev/null +++ b/research/audit-local-cut-centre-guard/VERIFY.json @@ -0,0 +1,20 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/gauge44-frames-x/independent/audit_local.py" + ], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 120, + "checks": "input SHA-256/Git-blob pins; the unchanged audit_local.py --main PASSES both the genuine base word and the probe word with four non-centre cut gates (receipts equal evidence/AUDIT-*.json); guard.py passes the genuine base and extra words and rejects exactly the probe's four cut gates; two mutation controls (non-centre cut source, non-target cut row) are rejected. The native chain's rejection of the probe is recorded evidence, not rerun." + } + ] +} diff --git a/research/audit-local-cut-centre-guard/evidence/AUDIT-BASE.json b/research/audit-local-cut-centre-guard/evidence/AUDIT-BASE.json new file mode 100644 index 0000000000..069fe843ea --- /dev/null +++ b/research/audit-local-cut-centre-guard/evidence/AUDIT-BASE.json @@ -0,0 +1,13 @@ +{ + "compensation_gates": 7208, + "entering": 192, + "local_profile": { + "1": 2348, + "2": 500, + "3": 416, + "4": 130, + "5": 82, + "8": 8 + }, + "status": "PASS_INDEPENDENT_EXACT_FORWARD_AND_DUAL_ENDPOINT_FRAMES_ENTRANCES_CONES" +} diff --git a/research/audit-local-cut-centre-guard/evidence/AUDIT-PROBE.json b/research/audit-local-cut-centre-guard/evidence/AUDIT-PROBE.json new file mode 100644 index 0000000000..220e914a14 --- /dev/null +++ b/research/audit-local-cut-centre-guard/evidence/AUDIT-PROBE.json @@ -0,0 +1,13 @@ +{ + "compensation_gates": 7204, + "entering": 193, + "local_profile": { + "1": 2348, + "2": 501, + "3": 415, + "4": 130, + "5": 82, + "8": 8 + }, + "status": "PASS_INDEPENDENT_EXACT_FORWARD_AND_DUAL_ENDPOINT_FRAMES_ENTRANCES_CONES" +} diff --git a/research/audit-local-cut-centre-guard/evidence/GUARD-GENUINE-WORDS.json b/research/audit-local-cut-centre-guard/evidence/GUARD-GENUINE-WORDS.json new file mode 100644 index 0000000000..fb53890c9d --- /dev/null +++ b/research/audit-local-cut-centre-guard/evidence/GUARD-GENUINE-WORDS.json @@ -0,0 +1,736 @@ +{ + "base_commit": "0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2", + "words": [ + { + "path": "research/complex-cold-owner-repair/vendor/structural_gain/frontier-composition/combined-prefix-word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-k492-owner-repair/vendor/structural_gain/frontier-composition/combined-prefix-word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-pr615-ceiling/vendor/structural_gain/frontier-composition/combined-prefix-word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-sw4-frame8-validation/platforms/linux/frames/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-sw4-frame8-validation/platforms/linux/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-sw4-frame8-validation/platforms/linux/p6n/p6n/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-sw4-frame8-validation/platforms/linux/promoted/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-sw4-frame8-validation/platforms/linux/sw4/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-sw4-frame8-validation/platforms/macos/frames/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-sw4-frame8-validation/platforms/macos/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-sw4-frame8-validation/platforms/macos/p6n/p6n/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-sw4-frame8-validation/platforms/macos/promoted/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-sw4-frame8-validation/platforms/macos/sw4/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-sw4-frame8/vendor/main/research/structural-gain/frontier-composition/global-replay/base/split-centres/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/complex-sw4-frame8/vendor/main/research/structural-gain/frontier-composition/multicold-eight-word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/direct-delivery504-global/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/direct504-kernel92-lifts/vendor/pr531/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/direct504-kernel92-lifts/vendor/pr534/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/direct504-kernel92/vendor/pr531/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/filtered-supplier-registry/evidence/local-filtered/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/filtered-supplier-registry/evidence/local-retargeted/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/filtered-supplier-registry/vendor/pr531/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/frame-sa504/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/gauge44-barch-t16/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/gauge44-barch/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/gauge44-frames-x/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/gauge44-leaver/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/gauge44-leaver8/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/gauge44-slots-t16/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/gauge44-slots/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/kernel92-frame-composition/vendor/pr531/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/fourcold-eight/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/fourcold-eight/word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/fourcold-four/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/fourcold-four/word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/fourcold-zero/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/fourcold-zero/word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/promotions/all32width7/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/promotions/all40width4/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/promotions/all48width4/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/promotions/all60width7/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/promotions/combined72/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/promotions/combined80/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/width7/eight/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/width7/four/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/width7/zero/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/words/eight/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/words/four/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/larger-gain/providers/words/zero/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/mixed-prefix-fourway/vendor/pr569/providers/width7/eight/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/mixed-prefix-fourway/vendor/pr571/frontier-composition/prefix-input/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/post-center-rank4-global/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/promoted-kernel-coalescing/vendor/structural_gain/frontier-composition/combined-prefix-word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/punctured112-global/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/r480-owner-optimum/inputs/local/FULL-WORD.json.gz", + "cut_gates": 176, + "violations": 0 + }, + { + "path": "research/static44-selective/vendor/pr531/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/combined-eight-local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/combined-eight-word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/combined-prefix-local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/combined-prefix-word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/global-replay/base/providers/fourcold_eight/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/global-replay/base/providers/width7_eight/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/global-replay/base/split-centres/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/multicold-eight-local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/multicold-eight-word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/portable-replay/composed-word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/portable-replay/global/base/providers/fourcold_eight/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/portable-replay/global/base/providers/width7_eight/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/portable-replay/global/base/split-centres/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/portable-replay/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/portable-replay/multicold-word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/portable-replay/width7-word/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/frontier-composition/prefix-input/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-shared-compositions/candidate-000/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-shared-compositions/candidate-001/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-shared-compositions/candidate-002/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-shared-compositions/candidate-003/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-shared-compositions/candidate-004/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-shared-compositions/candidate-005/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-shared-compositions/candidate-006/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-shared-compositions/candidate-007/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-000/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-001/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-002/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-003/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-004/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-005/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-006/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-007/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-008/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-009/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-010/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-011/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-012/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-013/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-014/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/multicut-unlocked-rank2/candidate-015/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/prefix-optimal-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/prefix-raised-optimal-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/prefix-raised-screen/rank1-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/prefix-raised-screen/rank2-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/prefix-raised-screen/rank3-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/prefix-raised-screen/rank4-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/prefix-screen/rank1-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/prefix-screen/rank2-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/prefix-screen/rank3-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/prefix-screen/rank4-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-shared-compositions/candidate-000/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-shared-compositions/candidate-001/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-shared-compositions/candidate-002/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-shared-compositions/candidate-003/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-shared-compositions/candidate-004/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-shared-compositions/candidate-005/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-shared-compositions/candidate-006/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-shared-compositions/candidate-007/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-000/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-001/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-002/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-003/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-004/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-005/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-006/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-007/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-008/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-009/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-010/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-011/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-012/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-013/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-014/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/multicut-unlocked-rank2/candidate-015/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/prefix-optimal-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/prefix-raised-optimal-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/prefix-raised-screen/rank1-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/prefix-raised-screen/rank2-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/prefix-raised-screen/rank3-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/prefix-raised-screen/rank4-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/prefix-screen/rank1-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/prefix-screen/rank2-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/prefix-screen/rank3-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/prefix-screen/rank4-disjoint/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/replay-evidence/suffix-unlocked/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/structural-gain/joint-basis/suffix-unlocked/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "research/subspace16-r420/vendor/pr531/evidence/local/FULL-WORD.json.gz", + "cut_gates": 224, + "violations": 0 + }, + { + "path": "inputs/BASE-WORD.json.gz", + "cut_gates": 176, + "violations": 0 + }, + { + "path": "inputs/EXTRA-WORD.json.gz", + "cut_gates": 176, + "violations": 0 + } + ], + "all_pass": true +} diff --git a/research/audit-local-cut-centre-guard/evidence/GUARD-PROBE.json b/research/audit-local-cut-centre-guard/evidence/GUARD-PROBE.json new file mode 100644 index 0000000000..22d828389f --- /dev/null +++ b/research/audit-local-cut-centre-guard/evidence/GUARD-PROBE.json @@ -0,0 +1,38 @@ +{ + "violations_gates": [ + [ + "add", + 200, + 502, + -1, + 2 + ], + [ + "add", + 203, + 502, + 1, + 2 + ], + [ + "add", + 205, + 502, + 1, + 2 + ], + [ + "add", + 206, + 502, + 1, + 2 + ] + ], + "cut_indices": [ + 176, + 177, + 178, + 179 + ] +} diff --git a/research/audit-local-cut-centre-guard/evidence/NATIVE-PROBE.txt b/research/audit-local-cut-centre-guard/evidence/NATIVE-PROBE.txt new file mode 100644 index 0000000000..98fcbfcaa9 --- /dev/null +++ b/research/audit-local-cut-centre-guard/evidence/NATIVE-PROBE.txt @@ -0,0 +1,12 @@ +Native provider chain on the two words (recorded run, 2026-10-15; not rerun by verify.py). +Runner: PR #1186's exact-frame toolkit native.py (revision 3, c37dfb07), which executes main's vendored PR635 scripts +through research/complex-k492-owner-repair/vendor/multicold/code/run_portable.py: +transport audit -> ledgers (hpe_emit_local.py) -> local replay (hpe_audit_local.py) -> wrappers (hpe_adapters_local.py) -> phases. + +BASE-WORD.json.gz: PASS native 1s / PASS ledgers 1s / PASS local-replay 3s / PASS wrappers 1s / PASS phases 85s +PROBE-CUT-502.json.gz: PASS native 1s / FAIL ledgers 0s + +Probe failure (paths shortened): + File "research/complex-sw4-frame8/vendor/pr635/research/complex-571-cold14-st2/code/hpe_emit_local.py", line 150, in check_local + assert state['L',r]==expected,('emitted column mismatch',back,r) + AssertionError: ('emitted column mismatch', False, 153) diff --git a/research/audit-local-cut-centre-guard/guard.py b/research/audit-local-cut-centre-guard/guard.py new file mode 100644 index 0000000000..ce1c236a51 --- /dev/null +++ b/research/audit-local-cut-centre-guard/guard.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +"""Cut-source guard for local words checked by research/gauge44-frames-x/independent/audit_local.py. + +audit_local.py climbs frames only in sections A and B; in the cut it checks only gates whose source is a centre +(the centre-path rule). A cut gate with any other source is applied to the scalar map but never frame-checked, so a +word can move priced work into the unpriced cut and still pass. This guard checks what every genuine word satisfies +and the native emitter (hpe_emit_local.py) relies on: every cut gate is an add whose source is one of the word's +eight centres and whose target is a target row (v <= t < 2v). + +usage: python3 -B guard.py WORD.json.gz [--json OUT.json] (exit 0 = PASS, 1 = violation)""" +import argparse, gzip, json, sys +from pathlib import Path + + +def violations(word): + v = word['report']['v']; centres = set(word['centers']) + out = [] + for i, e in enumerate(word['cut']): + if not (e[0] == 'add' and e[2] in centres and v <= e[1] < 2 * v): + out.append(dict(cut_index=i, gate=e[:5])) + return out + + +def main(): + ap = argparse.ArgumentParser(description=__doc__.splitlines()[0]) + ap.add_argument('word', type=Path); ap.add_argument('--json', type=Path) + a = ap.parse_args() + word = json.loads(gzip.decompress(a.word.read_bytes())) + bad = violations(word) + res = dict(status='PASS_CUT_SOURCES_ARE_CENTRES' if not bad else 'FAIL_NON_CENTRE_CUT_GATES', + word=a.word.name, cut_gates=len(word['cut']), centres=sorted(word['centers']), violations=bad) + if a.json: a.json.write_text(json.dumps(res, indent=1, sort_keys=True) + '\n', encoding='utf-8') + print(res['status'], a.word.name, 'cut', len(word['cut']), 'violations', len(bad), flush=True) + return 0 if not bad else 1 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/research/audit-local-cut-centre-guard/inputs/BASE-WORD.json.gz b/research/audit-local-cut-centre-guard/inputs/BASE-WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..76c01583a0286cddb0f71e0cb13077e4317104f6 GIT binary patch literal 57438 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 DOM>em literal 0 HcmV?d00001 diff --git a/research/audit-local-cut-centre-guard/inputs/PINS.json b/research/audit-local-cut-centre-guard/inputs/PINS.json new file mode 100644 index 0000000000..eb1ea14a29 --- /dev/null +++ b/research/audit-local-cut-centre-guard/inputs/PINS.json @@ -0,0 +1,24 @@ +{ + "schema_version": 1, + "license": "Apache-2.0 (words: PR #1672 and its retained lineage; probe derived from them)", + "files": { + "BASE-WORD.json.gz": { + "sha256": "eeb6a236ed0ea8873b8800947d0cd19c36a6fcfdf857fc42913cb45cd984f219", + "git_blob": "76c01583a0286cddb0f71e0cb13077e4317104f6", + "source": "PR #1672 b8ab040d research/gmx-t74-k554-signed-001/new/gauge44-word-566.json.gz", + "role": "genuine base (gauge44) word of the pivot-566+554 T74 supplier used by #2044/#2161/#2180/#2220" + }, + "EXTRA-WORD.json.gz": { + "sha256": "cd417b904408c221d9840d08faff8af040cc4207f9804284f2f5375d21298a62", + "git_blob": "e86142b352466f54a3da38c96a6e1484145c3b5c", + "source": "PR #1672 b8ab040d research/gmx-t74-k554-signed-001/new/extra-word-566.json.gz", + "role": "genuine extra word of the same supplier" + }, + "PROBE-CUT-502.json.gz": { + "sha256": "97d079123aa9c0b1c73cbe5f700ea81b4b8fdad92e9e4fa10f8ed55fd16cd788", + "git_blob": "eb636ed1d6cc4c9faefe99ef62750f2fed078853", + "source": "built in this package from BASE-WORD (see README)", + "role": "semantic counterexample: helper 502 entering, its leak cancelled by four non-centre cut gates" + } + } +} diff --git a/research/audit-local-cut-centre-guard/inputs/PROBE-CUT-502.json.gz b/research/audit-local-cut-centre-guard/inputs/PROBE-CUT-502.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..eb636ed1d6cc4c9faefe99ef62750f2fed078853 GIT binary patch literal 57463 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 f Date: Thu, 15 Oct 2026 22:56:14 -0400 Subject: [PATCH 2/2] Declare the parent canonical word that the auditor's --main check reads audit_local.py --main also reads research/community-k492-audit/pr622/replay/ baseline558/complex-global/base/split-centres/CANONICAL-WORD.json.gz (check_parent_interface). It is now an input in VERIFY.json and SOURCES.json (base 0fdd7d82, source commit 5c5567d1, blob a2e5a1ff, sha256 66d3c3c7), and verify.py checks both repository inputs before running the auditor. A Git-free export with only the package and its declared inputs passes; the previous head fails there with FileNotFoundError. The open-question entry records ywz65's registered-consumer screen. No new kappa. --- research/audit-local-cut-centre-guard/README.md | 17 ++++++++++++----- .../audit-local-cut-centre-guard/SOURCES.json | 8 ++++++++ research/audit-local-cut-centre-guard/TASK.json | 2 +- .../audit-local-cut-centre-guard/VERIFY.json | 5 +++-- research/audit-local-cut-centre-guard/verify.py | 13 +++++++++---- 5 files changed, 33 insertions(+), 12 deletions(-) diff --git a/research/audit-local-cut-centre-guard/README.md b/research/audit-local-cut-centre-guard/README.md index 8423c020cd..e373ae5401 100644 --- a/research/audit-local-cut-centre-guard/README.md +++ b/research/audit-local-cut-centre-guard/README.md @@ -35,7 +35,10 @@ python3 -B research/audit-local-cut-centre-guard/guard.py WORD.json.gz ``` `verify.py` checks the input pins and runs the unchanged auditor on the base and probe words; both pass, and the -receipts equal `evidence/AUDIT-*.json`. It then runs the guard on all three words and two mutation controls (a +receipts equal `evidence/AUDIT-*.json`. The pins cover the three words and two repository files, which are declared in +both `VERIFY.json` and `SOURCES.json`: the auditor, and the parent `CANONICAL-WORD.json.gz` (PR622 baseline558 +split-centres) that its `--main` interface check reads. The package plus those two files is enough: `verify.py` also +passes in a Git-free export that contains nothing else. It then runs the guard on all three words and two mutation controls (a non-centre cut source, a non-target cut row). It takes a few seconds. The native rejection is recorded evidence, not rerun. @@ -47,9 +50,12 @@ same for the selected line's words. ## Open next questions -- **Version the guard into the auditor.** The first step is to list the registered packages whose acceptance calls - `audit_local.py` without the native chain and run `guard.py` on their words. This is blocked on a maintainer decision - about versioning a pinned auditor. +- **Version the guard into the auditor.** The first step is done. ywz65's + [handoff](https://github.com/CrocSwap/integer-mult-bounds/pull/2478#issuecomment-6192363481) found seven registered + packages that actually call `audit_local.py`; eleven more only hash it, and five use other checkers. Their committed + words pass `guard.py` with the same 176-gate cut (re-run here on the six distinct words). Their admitted mutation + families do not change the cut, so no existing claim is shown to use the gap. Adoption by those callers is blocked on a + maintainer decision about versioning a pinned auditor. - **Check the other unpriced sections.** The precondition, the derived compensation and the frame-free cleanup could admit analogous counterexamples. For each one, state the structural rule the native emitter assumes and test it with a constructed word, as here. @@ -58,6 +64,7 @@ same for the selected line's words. The auditor is icekylinx's gauge44-frames-x package. The words are PR #1672's (Jeremy Kothe / LeverRank) pivot-554 kernel on PR #1625's pivot-566 words (mdumitrean), in the PR #1319/#1297 lineage (Rohan Arun) and its retained ancestry. The native -chain is PR635's vendored scripts, run through PR #1186's toolkit. See `NOTICE.md`. +chain is PR635's vendored scripts, run through PR #1186's toolkit. The registered-consumer screen is ywz65's (see the +open questions). See `NOTICE.md`. Prepared by Marius-Paul Dumitrean with substantial AI assistance (Anthropic Claude, via Claude Code). Apache-2.0. diff --git a/research/audit-local-cut-centre-guard/SOURCES.json b/research/audit-local-cut-centre-guard/SOURCES.json index 6adac8864f..af96bb2a61 100644 --- a/research/audit-local-cut-centre-guard/SOURCES.json +++ b/research/audit-local-cut-centre-guard/SOURCES.json @@ -19,6 +19,14 @@ "usage": "input", "git_blob": "4744d8783c25bf7bf5076886169077ca3808309a", "sha256": "03afcfc9da428b3f6edac81c1fee7f277ab81b64998efae78380b63498dec6cd" + }, + { + "path": "research/community-k492-audit/pr622/replay/baseline558/complex-global/base/split-centres/CANONICAL-WORD.json.gz", + "usage": "input", + "git_blob": "a2e5a1ffd454a353bd2d2100bc26259ff5b57af7", + "sha256": "66d3c3c70983224650643a0a05a21ac6c6959f84d0f4528650601016f5a76844", + "source_commit": "5c5567d15bd019186519a4db267914257b5f1ac0", + "note": "Read by audit_local.py --main (check_parent_interface: the transported centre/port interface). Same bytes at base_commit; last changed by source_commit." } ] } diff --git a/research/audit-local-cut-centre-guard/TASK.json b/research/audit-local-cut-centre-guard/TASK.json index 619d6f2770..a60ee3b34c 100644 --- a/research/audit-local-cut-centre-guard/TASK.json +++ b/research/audit-local-cut-centre-guard/TASK.json @@ -53,7 +53,7 @@ { "question": "Should the guard become part of a new version of the local auditor (or of the registered replays that call it)?", "why_it_matters": "audit_local.py is pinned by hash in 421 files at the base commit, so it is not changed here; packages that rely on it without the native chain inherit the gap.", - "first_step": "List the packages whose acceptance calls audit_local.py but not the native provider chain, and run guard.py on their words.", + "first_step": "Done for the registered packages by ywz65 (https://github.com/CrocSwap/integer-mult-bounds/pull/2478#issuecomment-6192363481): seven actual callers of the auditor at the base commit; their committed words pass guard.py with the same 176-gate cut. Next: choose how a versioned auditor (or a guard step before it) is adopted by those callers.", "blocked_by": "A maintainer decision on how to version a pinned auditor." }, { diff --git a/research/audit-local-cut-centre-guard/VERIFY.json b/research/audit-local-cut-centre-guard/VERIFY.json index c6a4faf92a..ac963383b7 100644 --- a/research/audit-local-cut-centre-guard/VERIFY.json +++ b/research/audit-local-cut-centre-guard/VERIFY.json @@ -4,7 +4,8 @@ "python": "3.12", "requirements": [], "inputs": [ - "research/gauge44-frames-x/independent/audit_local.py" + "research/gauge44-frames-x/independent/audit_local.py", + "research/community-k492-audit/pr622/replay/baseline558/complex-global/base/split-centres/CANONICAL-WORD.json.gz" ], "commands": [ { @@ -14,7 +15,7 @@ "{package}/verify.py" ], "timeout_seconds": 120, - "checks": "input SHA-256/Git-blob pins; the unchanged audit_local.py --main PASSES both the genuine base word and the probe word with four non-centre cut gates (receipts equal evidence/AUDIT-*.json); guard.py passes the genuine base and extra words and rejects exactly the probe's four cut gates; two mutation controls (non-centre cut source, non-target cut row) are rejected. The native chain's rejection of the probe is recorded evidence, not rerun." + "checks": "SHA-256/Git-blob pins of the package inputs and of both declared repository inputs (the auditor and the parent CANONICAL-WORD that its --main interface check reads); the unchanged audit_local.py --main PASSES both the genuine base word and the probe word with four non-centre cut gates (receipts equal evidence/AUDIT-*.json); guard.py passes the genuine base and extra words and rejects exactly the probe's four cut gates; two mutation controls (non-centre cut source, non-target cut row) are rejected. The native chain's rejection of the probe is recorded evidence, not rerun." } ] } diff --git a/research/audit-local-cut-centre-guard/verify.py b/research/audit-local-cut-centre-guard/verify.py index 971b971695..23a0f96d4f 100644 --- a/research/audit-local-cut-centre-guard/verify.py +++ b/research/audit-local-cut-centre-guard/verify.py @@ -4,7 +4,8 @@ rejects it, and accepts the genuine words. Checks: - 1. input pins: SHA-256 and Git blob ids of the three words equal inputs/PINS.json; + 1. input pins: SHA-256 and Git blob ids of the three words equal inputs/PINS.json, and those of the two declared + repository inputs (the auditor, and the parent CANONICAL-WORD that its --main interface check reads) equal SOURCES.json; 2. the gap: research/gauge44-frames-x/independent/audit_local.py --main (unchanged, pinned in SOURCES.json) PASSES both the genuine base word and the probe word PROBE-CUT-502 (four non-centre cut gates, helper 502 entering); the receipts' status, compensation size, entering count and local profile equal evidence/AUDIT-*.json; @@ -22,6 +23,7 @@ sys.path.insert(0, str(PKG)) import guard # noqa: E402 AUDITOR = ROOT / 'research/gauge44-frames-x/independent/audit_local.py' +PARENT = ROOT / 'research/community-k492-audit/pr622/replay/baseline558/complex-global/base/split-centres/CANONICAL-WORD.json.gz' # read by --main rd = lambda p: json.loads(Path(p).read_text(encoding='utf-8')) def blob(b): return hashlib.sha1(b'blob %d\0' % len(b) + b).hexdigest() def require(ok, msg): @@ -31,9 +33,12 @@ def require(ok, msg): for name, pin in pins.items(): b = (PKG / 'inputs' / name).read_bytes() require(hashlib.sha256(b).hexdigest() == pin['sha256'] and blob(b) == pin['git_blob'], 'input pin ' + name) -src = rd(PKG / 'SOURCES.json') -aud = next(r for r in src['files'] if r['path'] == 'research/gauge44-frames-x/independent/audit_local.py') -require(hashlib.sha256(AUDITOR.read_bytes()).hexdigest() == aud['sha256'], 'auditor changed') +src = {r['path']: r for r in rd(PKG / 'SOURCES.json')['files'] if r['usage'] == 'input'} +for path in (AUDITOR, PARENT): + pin = src[path.relative_to(ROOT).as_posix()] + require(path.is_file(), 'declared input missing: ' + pin['path']) + b = path.read_bytes() + require(hashlib.sha256(b).hexdigest() == pin['sha256'] and blob(b) == pin['git_blob'], 'declared input changed: ' + pin['path']) def audit(name, out): rc = subprocess.run([sys.executable, '-B', str(AUDITOR), '--word', str(PKG / 'inputs' / name), '--output', str(out),