Skip to content

[WIP/experiment] formal proofs with aeneas/hax#692

Draft
Oppen wants to merge 1 commit into
mainfrom
poc/formal_proof
Draft

[WIP/experiment] formal proofs with aeneas/hax#692
Oppen wants to merge 1 commit into
mainfrom
poc/formal_proof

Conversation

@Oppen

@Oppen Oppen commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

Extract the STARK Merkle-tree verifier path to Lean via charon+aeneas and
prove, with no `sorry` (axioms only propext/Classical.choice/Quot.sound):

- panic-freedom of `Proof::verify` (conditional on total backend hash/eq)
- panic-freedom + closed forms of the index utils (sibling/parent/power-of-two)
- completeness of the verifier: `verify_path_complete` (an honest path is
  accepted) and the end-to-end `honest_proof_verifies` (a `get_proof_by_pos`
  proof from a tree satisfying the binary-heap invariant verifies).

Pipeline: zero-maintenance carve script (`carve_merkle_verify.py`) slices the
buildable verify+path subset out of the un-compilable monolithic extraction;
behavior-preserving loop rewrites in the Rust source make it extractable; hax
output also emitted (upstream-blocked on assoc-type equality, #1921). Wired into
`make proofs`/`proofs-check` as a green CI gate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant