risc0-ed25519-verified/verification/Proofs
mrwulf 87db0f7acf PHASE 2 COMPLETE ON RISC0: THE FULL POINT-LEVEL LIFT
(verify_accepts_iff_decompress, button-enforced)

Port of the dalek decompress chain to the risc0 fork (v4 gen):

- source patch 8b69091: decompress step_2 negate-then-conditional-assign
  (the documented sqrt_ratio_i rewrite; sqrt_ratio_i itself was already
  in the compatible shape); extract.sh: decompress un-opaqued,
  re-extracted - the step_1/step_2 external axioms vanish from the
  template, decompress is transparent.
- Proofs/DecompressSpec.lean: dalek port, instance rename
  Shared0FieldElement51 -> SharedAFieldElement51.
- Proofs/FromBytesSpec.lean: PORT DELTA - this gen's from_bytes takes
  RangeFrom subslices (bytes[k..]) into a local load8 CLOSURE with
  literal indices instead of dalek's named load8_at: new
  range_from_index_spec (over the step_simps-reduced slice index) +
  closure_call_spec (same disjoint-OR loader math); window/telescope
  arithmetic identical.
- Proofs/DecompressMain.lean: decompress_of_canonical (standard three)
  + verify_accepts_iff_decompress (corollary verbatim - this fork's
  point-equation signature is byte-identical to dalek's):

    accept  <=>  decompress(R) = [k]*(-A) + [s]*B   (as points).

check.sh: 4-tier Phase 3b; full-lift cone exactly [3 standard +
Signature + sha512_hash3 + to_bytes + Error + Error.new]. Full button
green fresh.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 01:29:22 +02:00
..
AddSpec.lean field layer: proofs pass, fieldImplementation axiom-clean 2026-07-02 14:38:52 +02:00
CompressSpec.lean PHASE-2 HALF-LIFT on the risc0 fork: verify_accepts_iff_point, button-enforced 2026-07-05 16:38:21 +02:00
ConstSpecs.lean field layer: proofs pass, fieldImplementation axiom-clean 2026-07-02 14:38:52 +02:00
DecompressMain.lean PHASE 2 COMPLETE ON RISC0: THE FULL POINT-LEVEL LIFT 2026-07-06 01:29:22 +02:00
DecompressSpec.lean PHASE 2 COMPLETE ON RISC0: THE FULL POINT-LEVEL LIFT 2026-07-06 01:29:22 +02:00
Denote.lean field layer: proofs pass, fieldImplementation axiom-clean 2026-07-02 14:38:52 +02:00
DsmLoopSpec.lean Double-scalar-mul proof campaign, bricks 1-3: table, digit step, loop 2026-07-04 15:07:57 +02:00
DsmMulSpec.lean NAF encoder proven end-to-end + the phase-1 double-scalar-mul apex 2026-07-04 16:52:08 +02:00
DsmNafLoadSpec.lean NAF encoder proven end-to-end + the phase-1 double-scalar-mul apex 2026-07-04 16:52:08 +02:00
DsmNafLoopSpec.lean NAF encoder proven end-to-end + the phase-1 double-scalar-mul apex 2026-07-04 16:52:08 +02:00
DsmNafMath.lean NAF encoder proven end-to-end + the phase-1 double-scalar-mul apex 2026-07-04 16:52:08 +02:00
DsmNafSpec.lean NAF encoder proven end-to-end + the phase-1 double-scalar-mul apex 2026-07-04 16:52:08 +02:00
DsmStepSpec.lean Double-scalar-mul proof campaign, bricks 1-3: table, digit step, loop 2026-07-04 15:07:57 +02:00
DsmTableSpec.lean Double-scalar-mul proof campaign, bricks 1-3: table, digit step, loop 2026-07-04 15:07:57 +02:00
EdAddAffNiels.lean lean-guard: disable core dumps (no more apport popups on capped aborts) 2026-07-02 16:23:30 +02:00
EdAddProjNiels.lean lean-guard: disable core dumps (no more apport popups on capped aborts) 2026-07-02 16:23:30 +02:00
EdConvert.lean lean-guard: disable core dumps (no more apport popups on capped aborts) 2026-07-02 16:23:30 +02:00
EdCurve.lean lean-guard: disable core dumps (no more apport popups on capped aborts) 2026-07-02 16:23:30 +02:00
EdDenote.lean lean-guard: disable core dumps (no more apport popups on capped aborts) 2026-07-02 16:23:30 +02:00
EdDouble.lean lean-guard: disable core dumps (no more apport popups on capped aborts) 2026-07-02 16:23:30 +02:00
EdMain.lean lean-guard: disable core dumps (no more apport popups on capped aborts) 2026-07-02 16:23:30 +02:00
FeQ.lean field layer: proofs pass, fieldImplementation axiom-clean 2026-07-02 14:38:52 +02:00
Field.lean field layer: proofs pass, fieldImplementation axiom-clean 2026-07-02 14:38:52 +02:00
FieldMain.lean field layer: proofs pass, fieldImplementation axiom-clean 2026-07-02 14:38:52 +02:00
FromBytesSpec.lean PHASE 2 COMPLETE ON RISC0: THE FULL POINT-LEVEL LIFT 2026-07-06 01:29:22 +02:00
InvertSpec.lean field layer: proofs pass, fieldImplementation axiom-clean 2026-07-02 14:38:52 +02:00
MulSpec.lean field layer: proofs pass, fieldImplementation axiom-clean 2026-07-02 14:38:52 +02:00
P25519.lean field layer: proofs pass, fieldImplementation axiom-clean 2026-07-02 14:38:52 +02:00
PointEqSpec.lean THE POINT-LEVEL VERIFICATION EQUATION on the risc0 fork: 2026-07-05 19:25:54 +02:00
PointLiftSpec.lean PHASE-2 HALF-LIFT on the risc0 fork: verify_accepts_iff_point, button-enforced 2026-07-05 16:38:21 +02:00
ReduceSpec.lean field layer: proofs pass, fieldImplementation axiom-clean 2026-07-02 14:38:52 +02:00
ScalarAddSpec.lean Signature layer, first bricks: canonicity closure + hash-to-scalar foundation 2026-07-03 23:18:32 +02:00
ScalarBytesSpec.lean Hash-to-scalar PROVEN: from_bytes_wide_spec - Scalar::from_hash's reduction is exact mod l 2026-07-04 11:00:50 +02:00
ScalarDenote.lean Merge scalar into CurveField: one type universe, serial-only backend 2026-07-04 21:58:33 +02:00
ScalarFromBytesSpec.lean Hash-to-scalar PROVEN: from_bytes_wide_spec - Scalar::from_hash's reduction is exact mod l 2026-07-04 11:00:50 +02:00
ScalarFullMulSpec.lean Signature layer, first bricks: canonicity closure + hash-to-scalar foundation 2026-07-03 23:18:32 +02:00
ScalarLoop.lean scalar layer: add+sub fully proven mod l against THIS fork's v4 extraction 2026-07-03 18:45:16 +02:00
ScalarMain.lean Signature layer, first bricks: canonicity closure + hash-to-scalar foundation 2026-07-03 23:18:32 +02:00
ScalarMontSpec.lean Signature layer, first bricks: canonicity closure + hash-to-scalar foundation 2026-07-03 23:18:32 +02:00
ScalarMulSpec.lean Scalar layer complete: Montgomery reduction + full mul ported, scalarImplementation aggregate 2026-07-03 21:46:39 +02:00
ScalarPackSpec.lean PHASE-2 HALF-LIFT on the risc0 fork: verify_accepts_iff_point, button-enforced 2026-07-05 16:38:21 +02:00
ScalarReduceSpec.lean Signature layer, first bricks: canonicity closure + hash-to-scalar foundation 2026-07-03 23:18:32 +02:00
ScalarSubSpec.lean Signature layer, first bricks: canonicity closure + hash-to-scalar foundation 2026-07-03 23:18:32 +02:00
ScalarUnpackSpec.lean Hash-to-scalar PROVEN: from_bytes_wide_spec - Scalar::from_hash's reduction is exact mod l 2026-07-04 11:00:50 +02:00
ScalarWideSpec.lean Signature layer, first bricks: canonicity closure + hash-to-scalar foundation 2026-07-03 23:18:32 +02:00
SigApexSpec.lean THE SIGNATURE APEX on the risc0 fork: verify_accepts_iff, button-enforced 2026-07-04 22:35:20 +02:00
Square2Spec.lean field layer: proofs pass, fieldImplementation axiom-clean 2026-07-02 14:38:52 +02:00
SquareSpec.lean field layer: proofs pass, fieldImplementation axiom-clean 2026-07-02 14:38:52 +02:00
SubNegSpec.lean field layer: proofs pass, fieldImplementation axiom-clean 2026-07-02 14:38:52 +02:00
ToBytesMath.lean PHASE-2 HALF-LIFT on the risc0 fork: verify_accepts_iff_point, button-enforced 2026-07-05 16:38:21 +02:00
ToBytesSpec.lean PHASE-2 HALF-LIFT on the risc0 fork: verify_accepts_iff_point, button-enforced 2026-07-05 16:38:21 +02:00