dalek-ed25519-verified/verification/Proofs
saymrwulf 7dff4157a2 scalar layer: Scalar52::add FULLY proven mod l (add_val_spec)
Proofs/ScalarAddSpec.lean, axiom-clean, no sorry:
- add_loop_spec: the 5-limb carry loop unrolled (same skeleton as the
  proven conditional-add-L chain, with b's limbs in place of L's
  constants); per-limb equations r_i + 2^52*g_(i+1) = a_i + b_i + g_i.
- add_val_spec: denote(add a b) = denote a + denote b in ZMod l for
  limb-bounded canonical inputs. Composition: add_telescope lifts the
  carry equations to scLimbs sum + 2^260*g5 = scVal a + scVal b;
  canonicity (a,b < l < 2^253) forces g5 = 0; the trailing sub(sum, L)
  goes through sub_val_spec with subtrahend L — enabled by weakening
  sub_val_spec's hypothesis from scVal b < l to scVal b <= l (the
  gamma5=1 forcing argument only needs <=), since scVal L = l exactly.
  denote L = 0 in ZMod l closes it.

check-scalar.sh: ScalarAddSpec in manifest + audit (5/5 clean), button
green at the re-budgeted 300s/4096MB caps.

With sub (previous commit): the scalar layer's + and - are both fully
verified against dalek's own extraction. Remaining: x3 fork port,
Montgomery mul/reduce (kernel frontier).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 18:02:38 +02:00
..
AddSpec.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00
Basic.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00
ConstSpecs.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00
Denote.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00
EdAddAffNiels.lean group-law layer: complete twisted Edwards addition law proven 2026-07-02 14:50:42 +02:00
EdAddProjNiels.lean group-law layer: complete twisted Edwards addition law proven 2026-07-02 14:50:42 +02:00
EdConvert.lean group-law layer: complete twisted Edwards addition law proven 2026-07-02 14:50:42 +02:00
EdCurve.lean group-law layer: complete twisted Edwards addition law proven 2026-07-02 14:50:42 +02:00
EdDenote.lean group-law layer: complete twisted Edwards addition law proven 2026-07-02 14:50:42 +02:00
EdDouble.lean group-law layer: complete twisted Edwards addition law proven 2026-07-02 14:50:42 +02:00
EdMain.lean group-law layer: complete twisted Edwards addition law proven 2026-07-02 14:50:42 +02:00
FeQ.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00
Field.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00
FieldMain.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00
InvertSpec.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00
MulSpec.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00
P25519.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00
ReduceSpec.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00
ScalarAddSpec.lean scalar layer: Scalar52::add FULLY proven mod l (add_val_spec) 2026-07-03 18:02:38 +02:00
ScalarDenote.lean scalar layer: clean Scalar52 extraction + denotation foundation 2026-07-02 21:13:43 +02:00
ScalarLoop.lean scalar: generic loop-combinator lemmas (loop_step, range_next_lt/ge_spec) 2026-07-02 21:47:47 +02:00
ScalarSubSpec.lean scalar layer: Scalar52::add FULLY proven mod l (add_val_spec) 2026-07-03 18:02:38 +02:00
Square2Spec.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00
SquareSpec.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00
SubNegSpec.lean field layer: 14 proofs pass, fieldImplementation axiom-clean 2026-07-02 14:17:44 +02:00