fips205-slhdsa-verified/verification/Proofs
mrwulf c28effd85e phase 2: INPUT-PREP — base_2b outer-loop fidelity (Algorithm 4)
fips205.base2b_outer_loop_eq (Proofs/InputPrepSpec.lean): the extracted
digit-writing outer loop (helpers.base_2b_loop0) equals the explicit fold that,
for each output index, runs the inner `while bits < b` accumulation loop
(base_2b_loop0_loop0, consumed as an OPAQUE sub-call — same treatment as
ht/fors give their sub-loops) then writes baseb[out] = (total >> bits) &
(u32::MAX >> (32-b)). Cone EXACTLY [propext, Classical.choice, Quot.sound] —
kernel-3, no oracle (pure bit/byte digit extraction).

This completes the input-prep layer's named milestone (to_int, to_byte,
base_2b) — all four prep certs kernel-3 clean. base_2b's inner while-loop
VALUE fidelity (a fuel-induction value-level statement) is deliberately NOT
claimed here; the outer loop pins the digit-writing structure with the inner
accumulation threaded opaquely, exactly as every other layer treats its
sub-loops.

Proof: the ForsOuterSpec straight-line-nesting-a-loop recipe. The step lemma
PEELS the inner-loop triple sub-call with `apply bind_congr; rintro
⟨inn1,bits1,total1⟩` then closes the small tail with full simp — a bare rfl
would whnf the nested `loop` term and blow the heartbeat budget (the drill-9
lesson, applied deliberately). Compiled first try.

check.sh: CERTS += fips205.base2b_outer_loop_eq. Green over ALL TEN
certificates at default caps.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 08:59:09 +02:00
..
.gitkeep SLH-DSA (FIPS 205) campaign skeleton: honest zero-certificate state 2026-07-22 21:00:57 +02:00
ChainSpec.lean phase 2: FIRST CERTIFICATE — chain (Algorithm 5) proven, button green 2026-07-23 11:34:59 +02:00
ForsInnerSpec.lean phase 2: FIFTH CERTIFICATE — FORS pk-from-sig (Algorithm 17), inner + outer loops 2026-07-23 23:57:27 +02:00
ForsOuterSpec.lean phase 2: FIFTH CERTIFICATE — FORS pk-from-sig (Algorithm 17), inner + outer loops 2026-07-23 23:57:27 +02:00
HtSpec.lean phase 2: FOURTH CERTIFICATE — hypertree layer walk (Algorithm 12) + de-plumbing 2026-07-23 17:14:21 +02:00
InputPrepSpec.lean phase 2: INPUT-PREP — base_2b outer-loop fidelity (Algorithm 4) 2026-07-24 08:59:09 +02:00
WotsSpec.lean phase 2: SECOND CERTIFICATE — WOTS+ chain loop (Algorithm 8) proven 2026-07-23 14:48:39 +02:00
XmssSpec.lean phase 2: THIRD CERTIFICATE — XMSS auth-path Merkle loop (Algorithm 10) 2026-07-23 16:18:44 +02:00