No description
Find a file
mrwulf 8530cc73f4 verification: pin the harness, audit drivers and policy files (P1-c)
This repository has the estate's strongest gates, which makes them the most
valuable to switch off. Until now every one of them was executed by scripts
that nothing pinned.

Phase 0c requires every harness file to match HARNESS.sha256 — 15 files:
check.sh, lean-guard, inventory_gate.sh, run_bare.sh, all three self-tests,
both audit drivers (Proofs/Inventory.lean, Proofs/AxiomCheck.lean), the policy
tables (inventory-allowlist.txt, AUDIT-MANIFEST.txt), the toolchain pin, the
fidelity harness and its Python transcription, and the extracted model.

WHICH files must be pinned is policy and lives in check.sh, never in the map
being consulted: the required set is derived from the filesystem (the
executable bit, plus gen/**.lean, plus an explicit list for the rest), so
deleting a pin entry is a set mismatch rather than a silent un-pinning.

gen/LTLAcc/HashExternal.lean was previously bound by nothing at all — it was
compiled and trusted. It is now pinned, and the derivation is by set, so a new
model file fails closed.

selftest_audit.sh case 9 is split rather than relabelled. Phase 0c now catches
an unpinned rogue gen module BEFORE the dead-file gate runs, so asserting only
the new diagnostic would have quietly retired the dead-file gate from the test
suite. 9a asserts the harness-set mismatch on the unpinned file; 9b pins it —
an author who added it deliberately — and asserts Phase 2 still dies with DEAD
FILE (gen). Ten cases now, all defeated.

KNOWN-GAPS and the trusted base record the circularity plainly: an author who
edits a script and refreshes its pin in one commit passes every phase. The pin
removes the silent path, not the possibility. Review at the pinned commit
remains the consumer's protection.

Verified green after the fix: button (75s), harness self-test, binding
self-test, and the ten-case audit self-test. ATTESTATION GREEN (Lean +
fidelity), all fidelity case counts identical to the pre-change run.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-29 20:13:21 +02:00
docs essay: bound the rollup analogy to the paper's precise framing 2026-07-19 17:49:56 +02:00
verification verification: pin the harness, audit drivers and policy files (P1-c) 2026-07-29 20:13:21 +02:00
.gitignore Review round 4: F1* absorbed (lied-size boundary), acceptCons_sound, kit reproducibility 2026-07-12 15:07:57 +02:00
ATTESTATION-RUNBOOK.md runbook: refer to the private infrastructure repo without naming it 2026-07-19 16:56:48 +02:00
KNOWN-GAPS.md verification: bind statements and specification bodies (P1-a); un-stale the fidelity pin 2026-07-29 09:07:13 +02:00
README.md docs: paper-numbering disambiguation + runbook facts updated (doc audit 2026-07-19) 2026-07-19 13:11:50 +02:00
RESPONSE-TO-REVIEWERS.md Round 5 (housekeeping): doc-consistency welded into the button; both round-4 approvals recorded 2026-07-15 09:40:20 +02:00
STATEMENT-MAP.md docs: paper-numbering disambiguation + runbook facts updated (doc audit 2026-07-19) 2026-07-19 13:11:50 +02:00

ltl-accumulator-verified

Lean 4 mechanization of the security analysis (§6) of the system report "The Lean Transparency Log" (archived at https://ltl.zkdefi.org/paper/v0.2 — the version this corpus was built against; the current paper, "Accountable Distribution of Machine-Checked Correctness Evidence" at https://ltl.zkdefi.org/paper, presents these results in its §5 and carries this corpus as entry 13): the Merkle accumulator's own correctness and soundness theorems, kernel-checked, in the same discipline as the four *-ed25519-verified subject corpora.

Status: ATTESTED — LTL entry 13, live (2026-07-16)

This corpus is now itself a leaf of the log it describes. It was appended as entry 13 of the Lean Transparency Log (freeze 172a1d0), so the log carries kernel-checked proofs about the accumulator model underlying its own inclusion and consistency reasoning (a deployment we are unaware of a precedent for; scoped to the mechanized model, not the deployed verifier — see below). Live head after the append: tree size 13, root 3488a2d0ff9f00415bb561d61b01a420e3ca2e0f7b29351ec9ebb3f57319da0d; this corpus is leaf index 12, hash 8cb258d657f1fd00baaa9e0091e26c316cb69b591cb249a9543f51cade57c50a. The old 12-leaf head (bcd15f9d…) is a proven prefix; the 12→13 consistency transition is accepted by both the deployed verifier and the mechanized model. Fetch and verify it at ltl.zkdefi.org/v1/sth. The leaf carries its own scope block: what is kernel-checked is the mechanized model (§6), and correspondence to the deployed verifier is scoped by KNOWN-GAPS 14/15 — the leaf does not claim the deployed verifier is formally verified.

All paper-§6/§10 mechanization targets (v0.2 numbering) are kernel-checked; the audit surface is defined and green (verification/check.sh, exit 0). See STATEMENT-MAP.md for the paper↔Lean review surface and KNOWN-GAPS.md for the honest scope ledger. Reviewed across six external adversarial rounds (GPT-5.6 + a second Claude; zero broken theorems in any round; both approved). The audit surface is an environment-derived inventory (Proofs/Inventory.lean + pinned allowlist — 222 constants, 61 human-reviewed cones, self-tested by selftest_audit.sh); the review kit is push-button reproducible (run_bare.sh, self-contained fidelity target); acceptIncl/acceptCons_sound route the theorems through the named acceptance predicates; fidelity = agreement over pinned families (230,271 + 230,016 baseline; 73,573 lied-size boundary cases with 3,867 expected one-sided divergences — KNOWN-GAPS gaps 14/15, not extensional equality). Doc counts are asserted by check.sh Phase 3c. How the append was done — release tuple, preflight, candidate-inspection gate, and the 12→13 structural rehearsal — is recorded in ATTESTATION-RUNBOOK.md.

layer content status
L1 bytes, hleaf/hnode, domain separation (Lemma 1) done (domsep: axiom-free)
L2 MTH, Root, ConsRec definitions + termination done (cones: propext, LTLAcc.sha256, Quot.sound)
L3 inclusion completeness (Theorem 1) + named acceptance acceptIncl done (incl_complete: propext, Classical.choice, LTLAcc.sha256, Quot.sound)
L4 frontier binding content (Lemma 2) done as specializations — inlined in the extractor walk (extractIncl), whole-tree (extractMTH), ConsRec (consRecBinding); the standalone Root receipt-uniqueness instance was deleted with the vacuous root_binding in S3.5 and deliberately NOT restored (optional, unused — KNOWN-GAPS gap 3)
L5 inclusion soundness = EXPLICIT extractor extractIncl (Theorem 2) done, non-vacuous
L6a descent extractor extractMTH (Theorem 3 step 3 = Lemma 2, whole-tree instance) done, non-vacuous
L6b Theorem 3 (consistency soundness): consRecBinding (steps 12) + extractCons/extractCons_correct (+ _paper at the paper's exact quantifiers; acceptCons_sound routes it through the named acceptCons predicate, size bound derived from acceptance via consRec_some_le) done, non-vacuous
L6c pin-store state machine safety (Proposition 1): pinAccept_monotone, pin_prefix_correct, fork_distinct done, non-vacuous (per-step; multi-step chain = gap 7)

Discipline (identical to the subject corpora)

  • verification/Proofs/ contains ZERO axiom declarations; the single sanctioned axiom site is verification/gen/ — here, one opaque function: SHA-256. The theorems are constructive collision extractors, so collision resistance is never assumed, only interpreted.
  • verification/check.sh is THE button: compiles every file through lean-guard (memory cap, core pinning, timeout, single-flight lock) and axiom-audits every certificate against its documented exact cone.
  • Reviewers without the operator toolchain: verification/run_bare.sh compiles, axiom-audits, and inventory-gates the corpus with a plain public lean (version pinned in verification/lean-toolchain); the operator path is overridable via AENEAS_ENV.
  • Expected boundary: propext, Classical.choice, Quot.sound plus LTLAcc.sha256 for hash-touching certificates — documented per certificate in check.sh, audited both directions.

The finished certificates are destined for the LTL itself as attestation leaves: the log carrying kernel-checked proofs of its own machinery.