Skip to content

Verifier: authenticate the complete selected final-stage replay - #2101

Merged
Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
adamgall:research/contribution-20261014-06
Oct 16, 2026
Merged

Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
adamgall:research/contribution-20261014-06

Conversation

@adamgall

Copy link
Copy Markdown
Contributor

Result and scope

Completed, author-checked verification engineering. No new supplier, paid profile or κ. This adds an opt-in, source-authenticated caller that actually executes the unchanged selected PR1094 final supplier stage and compares all 105 strict outputs plus its complete 13-line outer log against the reviewed archive.

It completes the explicit caller-composition handoff from PR2040 and PR2059, rather than repeating their comparator or invoice-subgraph audits. Both small predecessor predicates are reused byte-for-byte with immutable source pins and attribution. Only research/selected-final-replay-closure/ is added: 11 files, no frozen caller/source archive/shared index/selected pointer edits.

PR1824's original caller requires exactly 102 byte matches, one relocation and two timing differences, then raw assembly equality. PR2040 reports a Linux supplier replay that passed but violated that comparison because invoice object order changed the invoice's raw hash and both consumer references. PR2059 provides only the three-node authenticate-before-rebind predicate. The new caller composes that predicate with complete output coverage, actual stage execution, exact input roles and coupled execution receipts. PR2040's Linux observation is credited, not presented as a Linux run here.

Complete comparison boundary

POLICY.json closes the boundary at 94 JSON/gzip-JSON outputs and 11 inner logs. Both sides must have exactly the full inventory, including when byte-identical.

Before comparison, each side independently authenticates 30 raw reference edges:

  • 2 invoice edges: both input_sha256/fresh_invoice links must hash the actual same-side invoice. Only those two digests are then rebound. The complete canonical invoice and both complete consumers are compared.
  • 22 log edges: both receipts contain the same eleven ordered, successful stages; their complete arrays agree within the run, including time. Every log reference hashes that run's actual log, and all eleven logs are compared byte for byte across runs.
  • 6 input roles: the independent receipt must name exactly three work inputs, two local inputs and the source owner input, with their actual hashes. Only these six exact keys become fixed role keys. No other strings/keys undergo root-prefix rewriting, and receipt paths are never followed to read files.

Only 22 fresh stage timing fields may vary across runs. They must be present, finite, nonnegative numbers, not Booleans or strings. All 12 copied historical timing fields remain exact. The complete outer log checks eleven ordered stage lines against the same-side times and two exact final-result lines; no blanket line/token stripping occurs.

Every other field and digest stays in the complete strict typed comparison. Duplicate keys and nonfinite JSON reject; exact Decimal comparison avoids binary64 rounding; Boolean/integer distinctions and unknown fields are retained. Generated gzip containers are compared by decompressed payload rather than compression headers. Diagnostic classification counts are not acceptance conditions.

Critical implication: authenticating raw links alone does not establish semantic equality. The entire invoice is compared, so changing it and repairing both links still rejects. Likewise, changing an inner log and repairing both stage references still rejects. The finite controls exercise both cases.

An exploratory census found 173 hash-valued leaves matching output bytes, including semantic hashes and multiple byte-identical candidate targets. The caller does not infer roles from hash coincidence, normalize those other digests, or claim arbitrary reserialized-DAG admission. This is the complete declared invoice-format/root-role/fresh-timing caller boundary, not universal portability or a production mathematical false-acceptance claim.

Sources, task and novelty boundary

  • Scientific base: 564148b82ae9df72163f22106f15e73efca8aff2, priority revision 4. Selected κ remains 836330098538459/500000000000000000.
  • Contribution commit: a247ef876e50bf3a7d890c7c1f9b409576674d7d.
  • One-shot chooser seed: a1c9b8df7348849ae3ec156120abe878; track verifier-engineering, card portable-replay. Complete output is SELECTION.json; concrete TASK was written before substantive computation.
  • Scope refinement: complete the named full-caller handoff, not another root calculation, source invoice micro-audit or metadata-only check. Revision4 relevance is a trustworthy evidence boundary for the binding selected supplier.
  • PR1824: ad5b1248f25a71983b20617e2f3a80be22f03990, source-bound final-stage replay and original comparator.
  • PR2040: d31c1418c0c23994d1444dbd9d356b9a8238fd5e, strict typed comparison and reported Linux invoice-format observation.
  • PR2059: 323703a83640f4c104469bf29db18d7d579cb587, authenticated three-node invoice predicate, explicitly not a full caller.

All 42 live repository inputs are raw-SHA256/Git-blob pinned and declared for replay invalidation, including the selected stage package, strict upstream inputs, complete copied frozen base, archives and receipts. Both vendored predicates are authenticated before import. The ten local inputs are recovered from PR1042's archive and checked against its complete receipt. The reference output is additionally bound to committed PR1094 assembly/execution receipts. The reviewed archive omits source/, so its owner reference is checked against the separately pinned selected package input, not a fabricated archive member.

Submission checkpoint main 0fdd7d82de03e43c9e5a1000dfbcd380d1b687d2 changed guidance only; catalogue, scientific sources and selected record were unchanged. Revised guidance was read and the scientific base retained. Shared complete overlap snapshots covered 353 open PRs including drafts at 19:00:33Z and 738 discussion/comment/reply records at 19:02:09Z on 2026-10-14. Targeted local/cached queries and live PR2040/2059 heads were checked at 19:04Z; heads were unchanged. Search absence is not claimed as novelty.

Actual validation

CPython 3.12.12, macOS 27.0.1 arm64, standard library. Direct final scientific smoke: 268.58 s. Metadata/source pins plus registered replay: 261.47 s. Both scientific executions freshly ran the unchanged supplier stage. The registered parent uses -I -O -B; the supplier child runs without optimization and with inherited PYTHONOPTIMIZE removed, retaining its assertions.

uv run --python 3.12 --no-project python -I -B research/selected-final-replay-closure/verify.py
uv run --python 3.12 --no-project python -B scripts/research_package.py --package research/selected-final-replay-closure --check-only
uv run --python 3.12 --no-project python -B scripts/research_package.py --package research/selected-final-replay-closure

Observed:

PASS_FRESH_SELECTED_FINAL_STAGE {"bytes": 103, "json-diff:declared-timing": 2}
PASS_SELECTED_FINAL_REPLAY_CLOSURE files=105 edges=30 positives=5 negatives=287 no_new_kappa
PASS_REGISTERED_RESEARCH_PACKAGE research/selected-final-replay-closure outcome=completed

The deterministic RESULT.json records 5 constructed positives and 287 negatives, separately from fresh supplier execution:

  • every one of 105 file omissions, one extra output, and one semantic mutation in every one of 105 outputs reject;
  • changed invoice/log contents reject even with both corresponding references repaired;
  • valid invoice formatting composed with six role relocations and all22 stage-time changes accepts, as do a coupled outer log and a generated gzip-container change;
  • stale links, role aliases, timing omissions/invalid types, all12 changed historical times, duplicate keys, Boolean/integer substitution, truncated gzip, outer-log faults and an immutable archive-header mutation reject.

This is a bounded per-output mutation census, not an exhaustive per-node census or a formal implementation proof. No hosted CI pass is asserted.

Limits and next useful question

This is not make frontier1094-verify: ancestors are not rebuilt; their local scalar/native/phase evidence is reused from authenticated archives. The unchanged final stage does run restore/bind/lift/emit/audit/invoice/assembly/admission/bit-control/independent-T16 checks. No Linux/Windows execution, full cold ancestry, formal kernel, new κ, or inherited all-size/compiler/common-label/hosting/precision/tape/analytic discharge is claimed.

Next useful task: select one earlier PR1042 stage and derive an equally complete source-bound output/reference policy. Success requires actual stage replay plus complete field and semantic-fault coverage; stop rather than normalize unclassified digests. This needs separate overlap review and that stage's native dependencies. The present full final-stage replay takes about 4.5 minutes on the exercised host.

Attribution and assistance

Credit Josie Elliston (PR1824); commdata2338 (PR2040); Adam Gall (PR2059); Maxime Fleury and Antoine Olivier (payload/container convention); and Rohan Arun, Jeremy Kothe, Hao Yan, Douglas Colkitt and the retained selected supplier/compiler lineage. Both comparator files and predecessor notices are preserved unchanged.

Prepared for @adamgall with substantial OpenAI Codex assistance in design, implementation, experiments, tests and writing. New work Apache-2.0. No independent human review is claimed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants