mirror of
https://github.com/saymrwulf/anza-ed25519-verified.git
synced 2026-09-04 20:24:06 +00:00
Toward Scalar::from_hash: bytes_unpack_spec proves the from_bytes_wide word-unpack loops pack 64 little-endian bytes into 8 words exactly. - Proofs/ScalarBytesSpec.lean (3308 lines): bytes_word_loop_spec_0..7, each split head/tail at j=4 (the 8-fold monolith grows exponentially in elaboration - METHOD 4). Disjoint-bit ORs become additions via core's Nat.two_pow_add_eq_or_of_lt with explicit calc bridges (the default simp set literalizes 2^8 -> 256 and breaks pow-form rewrites; simp only everywhere). - Proofs/ScalarUnpackSpec.lean: bytes_unpack_spec composes the eight inner lemmas through the outer loop (iterator start needs a term-level equality rewrite per peel). The from_bytes_wide main walk itself is proven at elaboration level (fail-probe verified end to end) but its single-decl kernel certificate replays >30min; it ships next as a phase-split (plan in the control repo's method notes). check-scalar.sh: 12 proof files, 12 kernel audits, all exactly [propext, Classical.choice, Quot.sound]. Button green. |
||
|---|---|---|
| .. | ||
| gen | ||
| Proofs | ||
| check-scalar.sh | ||
| check.sh | ||
| CurveField.llbc | ||
| CurveScalar.llbc | ||
| extract-scalar.sh | ||
| extract.sh | ||
| lean-guard | ||