audit catch 3: state the per-layer allowed axiom set precisely

'What will be claimed' promised cones of exactly the three kernel
axioms — right for ed25519 field/scalar layers, wrong here: the hash
oracles permeate every SLH-DSA layer (chain already calls F). The
honest contract, now stated: each certificate cone = the three kernel
axioms + at most the five named oracles, nothing else; plumbing axioms
must be discharged before any certificate ships, audit-enforced.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
mrwulf 2026-07-22 23:03:33 +02:00
parent f1603bea87
commit bc8ea78570

View file

@ -92,12 +92,21 @@ this repository was created:
## What will be claimed (when the button is green, not before) ## What will be claimed (when the button is green, not before)
One theorem per layer, each a statement about the **extracted** functions One theorem per layer, each a statement about the **extracted** functions
(H3), compiled by `verification/check.sh` with `#print axioms` reporting (H3), compiled by `verification/check.sh` with a per-certificate
exactly `[propext, Classical.choice, Quot.sound]` (H1): chain semantics, `#print axioms` audit (H1): chain semantics, WOTS+ pk recomputation,
WOTS+ pk recomputation, XMSS path recomputation, hypertree acceptance, XMSS path recomputation, hypertree acceptance, FORS pk recomputation,
FORS pk recomputation, and the apex — `slh_verify_internal` accepts iff and the apex — `slh_verify_internal` accepts iff the recomputed
the recomputed hypertree root equals the pinned public-key root, under hypertree root equals the pinned public-key root.
the stated oracle boundary.
**The allowed axiom set, stated precisely:** unlike the ed25519 field and
scalar layers (whose cones are exactly `[propext, Classical.choice,
Quot.sound]`), the hash oracles permeate *every* SLH-DSA layer — `chain`
already calls `F`. So each certificate's cone may contain the three
kernel axioms **plus at most the five named oracles**
(`verify_mono.oracle.{h_msg, f, h, t_l, t_len}`) — and nothing else: the
transpiler-plumbing axioms currently in `FunsExternal.lean` must be
discharged before any certificate ships, and the audit fails the button
if any of them (or anything unlisted) appears in a cone.
## Discipline ## Discipline