ltl-accumulator-verified/verification
mrwulf 888796a16e verification: separate the two accounting questions (round-9 review, Claude N2)
Phase 2c-accounting asked one question with a name-keyed identity: is every
kernel constant covered by the corpus inventory or the instrument surface?
Keying on the name alone conflates that with a second, different question --
does the kernel attribute a declaration to the same module the walk does?

Pair-keying the identity (module|name) was the obvious fix and is wrong: it
fails on legitimate per-module duplicates. Lean materialises equation lemmas
lazily, so each module forcing an unfold gets its own copy in its object file
(GPT-5.6 round-7 F8). Those records differ from the walk only in module
attribution, and every one of their names is accounted for elsewhere.

So the block now asks both questions and reports them separately: coverage
stays name-keyed and fail-closed, module attribution is counted and printed
rather than suppressed. A divergence is now visible instead of either passing
silently or failing for the wrong reason.

The accumulator declines the second question and says why: its INV rows carry
no module column (4 fields), so its records cannot be compared as pairs at
all. Gating on the field count rather than on the row tag -- the shape of the
record, not the spelling of its label. Adding that column is the open
follow-up; until then the identity there is name-keyed only, which is weaker
and now says so.

Certified by the round-14 sweep: 50/50 green across all six repositories,
both buttons and every self-test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-04 03:17:05 +02:00
..
fidelity accumulator: a run that is not attestation-ready must not exit 0, and must name its subject 2026-08-02 21:40:35 +02:00
gen/LTLAcc revision round 1: address both external reviews (GPT-5.6 + second Claude) 2026-07-11 22:53:47 +02:00
Proofs audit: bind the scalar statements, and make the accounting identity mean audit 2026-08-03 12:15:26 +02:00
AUDIT-MANIFEST.txt verification: bind statements and specification bodies (P1-a); un-stale the fidelity pin 2026-07-29 09:07:13 +02:00
check.sh verification: separate the two accounting questions (round-9 review, Claude N2) 2026-08-04 03:17:05 +02:00
driver-allowlist.txt audit: bind the scalar statements, and make the accounting identity mean audit 2026-08-03 12:15:26 +02:00
HARNESS.sha256 verification: separate the two accounting questions (round-9 review, Claude N2) 2026-08-04 03:17:05 +02:00
inventory-allowlist.txt Review round 4: F1* absorbed (lied-size boundary), acceptCons_sound, kit reproducibility 2026-07-12 15:07:57 +02:00
inventory_gate.sh audit: bind the scalar statements, and make the accounting identity mean audit 2026-08-03 12:15:26 +02:00
lean-guard L1+L2: hashing shapes, domain separation, MTH/Root/ConsRec with termination 2026-07-10 23:58:00 +02:00
lean-toolchain Review round 4: F1* absorbed (lied-size boundary), acceptCons_sound, kit reproducibility 2026-07-12 15:07:57 +02:00
PACTA-PIN.sha256 accumulator: a run that is not attestation-ready must not exit 0, and must name its subject 2026-08-02 21:40:35 +02:00
run_bare.sh Round 5 (housekeeping): doc-consistency welded into the button; both round-4 approvals recorded 2026-07-15 09:40:20 +02:00
selftest-harness.sh verification: pin the harness, audit drivers and policy files (P1-c) 2026-07-29 20:13:21 +02:00
selftest_audit.sh Round-7 F2: account for every constant the kernel sees 2026-08-02 02:51:55 +02:00
selftest_statements.sh verification: bind statements and specification bodies (P1-a); un-stale the fidelity pin 2026-07-29 09:07:13 +02:00