risc0-ed25519-verified/verification
mrwulf cc571bf163 verification: derive lift dependencies instead of hand-keeping them
Round-9 swept all ten instruments per fork instead of only the two buttons,
and found selftest-axgate.sh red in all four. Root cause, identical to the
KERNLOG defect fixed the day before: a self-test lifts one phase out of
check.sh and supplies its variables from a HAND-WRITTEN preamble, and the
phase later grew a dependency nobody told the preamble about.

Phase 2b stopped globbing Proofs/*.olean and started reading $PROOFS by
membership. Bash does not error on an unset array under `set -u` — it
expands to nothing — so the gate silently received

    expected := [".olean"]

one entry with an empty name, and rejected the baseline via its own
fail-closed absence check. Exit code right, reason wrong.

  · lift-guard.sh (new, pinned): derives every variable the lifted payload
    reads, subtracts what the driver defines, and fails AT LIFT TIME naming
    the remainder. Wired into all five lifting self-tests; selftest-shapes.sh
    drops its inline copy. One implementation, not five, since drifting out
    of sync is the entire failure mode.

  · selftest-axgate.sh: lifts PROOFS verbatim, and its case 2 now poisons a
    MANIFESTED leaf module rather than adding a stray file. The stray-file
    attack was a no-op against membership semantics — that is the dead-file
    gate's job, proven by selftest-harness case 8 — and it is also the
    weaker attack, since adding files to Proofs/ must clear a gate that
    editing an already-manifested module does not.

  · Phase 2c's accounting identity moves behind its own marker with its own
    ACCTFAIL verdict, so the phase is liftable by construction rather than
    by a self-test knowing where to stop. Truncating the lift range alone
    would have dropped Phase 2c's own verdict and left the test unable to fail.

  · The other four lifting self-tests assert on the PAYLOAD rather than the
    assembled driver, so a marker in the preamble cannot satisfy a check
    meant to prove the lift landed.

Certified: 8/8 self-tests green in all four forks (~212 assertions, none
failing); check.sh bytes unchanged and still matching the pin written before
the 3h08m round-9 sweep, whose 36 GREEN button rows therefore stand.
--audit-only re-run against the new HARNESS.sha256 in every fork.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-02 13:07:28 +02:00
..
gen Coherence pass 4 (the closing pass): 4-tier apex documentation + hygiene 2026-07-06 04:01:18 +02:00
Proofs Account for every constant the kernel sees, by set containment 2026-08-01 16:10:59 +02:00
AUDIT-MANIFEST.txt verification: bind the statements, the specifications, and the model (P1-a) 2026-07-29 00:38:20 +02:00
check-scalar.sh verification: close the two-button seam and level up the scalar button (P0-b) 2026-07-30 12:30:29 +02:00
check.sh verification: derive lift dependencies instead of hand-keeping them 2026-08-02 13:07:28 +02:00
CurveField.llbc PHASE 2 COMPLETE ON RISC0: THE FULL POINT-LEVEL LIFT 2026-07-06 01:29:22 +02:00
CurveSig.llbc PHASE 2 COMPLETE ON RISC0: THE FULL POINT-LEVEL LIFT 2026-07-06 01:29:22 +02:00
extract.sh P2-c: classify and pin the extraction boundary 2026-07-31 17:53:31 +02:00
GEN-MODEL.sha256 verification: bind the statements, the specifications, and the model (P1-a) 2026-07-29 00:38:20 +02:00
HARNESS.sha256 verification: derive lift dependencies instead of hand-keeping them 2026-08-02 13:07:28 +02:00
inventory-allowlist-scalar.txt verification: close the two-button seam and level up the scalar button (P0-b) 2026-07-30 12:30:29 +02:00
inventory-allowlist.txt verification: pin the whole declaration surface (P1-b) 2026-07-30 01:20:19 +02:00
inventory_gate.sh verification: pin the whole declaration surface (P1-b) 2026-07-30 01:20:19 +02:00
lean-guard Coherence pass 3: post-apex accuracy sweep, hygiene, guard ladder 2026-07-05 11:48:19 +02:00
lift-guard.sh verification: derive lift dependencies instead of hand-keeping them 2026-08-02 13:07:28 +02:00
model-correspondence.py Round-7 F1: make model/template correspondence SEMANTIC, and fail closed 2026-08-02 02:24:15 +02:00
MODEL-CORRESPONDENCE.txt Round-7 F1: make model/template correspondence SEMANTIC, and fail closed 2026-08-02 02:24:15 +02:00
selftest-auditonly.sh verification: --audit-only mode, and the guard that keeps it from becoming evidence (T1) 2026-07-30 19:16:20 +02:00
selftest-axgate.sh verification: derive lift dependencies instead of hand-keeping them 2026-08-02 13:07:28 +02:00
selftest-correspondence.sh verification: derive lift dependencies instead of hand-keeping them 2026-08-02 13:07:28 +02:00
selftest-harness.sh verification: derive lift dependencies instead of hand-keeping them 2026-08-02 13:07:28 +02:00
selftest-inventory.sh verification: pin the whole declaration surface (P1-b) 2026-07-30 01:20:19 +02:00
selftest-shapes.sh verification: derive lift dependencies instead of hand-keeping them 2026-08-02 13:07:28 +02:00
selftest-statements.sh verification: derive lift dependencies instead of hand-keeping them 2026-08-02 13:07:28 +02:00
selftest-tiers.sh verification: derive lift dependencies instead of hand-keeping them 2026-08-02 13:07:28 +02:00