dalek-ed25519-verified/verification
mrwulf fe021b9486 PHASE 2 HALF-LIFT PROVEN: verify_accepts_iff_point, button-enforced
THE THEOREM (CurveFieldProofs.verify_accepts_iff_point): for a parsing
signature, a valid on-curve public-key point, a canonical signature
scalar, and a successful recompute, there is a point R' - the certified
[k](-A) + [s]B, ExtValid and on-curve - with

    verifier accepts  <=>  bytesVal R_bytes
                             = (edY R').val + ((edX R').val % 2) * 2^255

The apex's byte-for-byte comparison IS point-encoding equality: the
signature's R bytes are accepted exactly when they are THE canonical
encoding of the recomputed point. Axiom cone: EXACTLY the apex boundary
(SHA-512 oracle + wire-format opaques; zero curve/scalar/backend axioms),
now enforced for BOTH apex and half-lift by check.sh Phase 3b.

New machinery in Proofs/PointLiftSpec.lean:
- bind_ok_inv: generic ok-inversion of one monadic bind - the clean way
  to invert oracle-bearing chains (axioms cannot be walked).
- recompute_inv: names the recompute chain's intermediates (hash, k,
  -A, R') with their defining equations, via eight flat bind_ok_inv
  steps after the pass-through reductions.
- Bytes64.exists_bytes + List.exists_len32: the 64-byte destructure -
  Lean's match refuses list patterns beyond ~32 elements, so the device
  is a 32-cons prefix + a list-level 32-destructure on the tail.
- The assembly: recompute_inv + from_bytes_mod_order_wide_spec (k
  canonical) + edwards_neg_law (-A) + vartime_dsm_basepoint_spec (R',
  valid, on-curve) + ed_compress_spec (er = canonical encoding) +
  rangeEq_iff_bytesVal (byte comparison = value equality), threaded
  through the ok-injectivity of the inverted equations.

Full button green fresh, incl. the extended Phase 3b.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 16:06:23 +02:00
..
gen Coherence pass 3: post-apex accuracy sweep, hygiene, guard ladder 2026-07-05 11:48:17 +02:00
Proofs PHASE 2 HALF-LIFT PROVEN: verify_accepts_iff_point, button-enforced 2026-07-05 16:06:23 +02:00
check-scalar.sh Coherence pass 3: post-apex accuracy sweep, hygiene, guard ladder 2026-07-05 11:48:17 +02:00
check.sh PHASE 2 HALF-LIFT PROVEN: verify_accepts_iff_point, button-enforced 2026-07-05 16:06:23 +02:00
CurveField.llbc Regenerated CurveField.llbc from the reproducibility run 2026-07-04 19:51:05 +02:00
CurveSig.llbc extract.sh: reproducible end-to-end (CurveField merged gen + CurveSig glue) 2026-07-04 19:50:37 +02:00
extract.sh extract.sh: reproducible end-to-end (CurveField merged gen + CurveSig glue) 2026-07-04 19:50:37 +02:00
lean-guard Coherence pass 3: post-apex accuracy sweep, hygiene, guard ladder 2026-07-05 11:48:17 +02:00