Skip to content

Verify Crab's inferred invariants with Lean - #18

Open
caballa wants to merge 1 commit into
mainfrom
lean
Open

Verify Crab's inferred invariants with Lean#18
caballa wants to merge 1 commit into
mainfrom
lean

Conversation

@caballa

@caballa caballa commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Adds --verify-with-lean: after the analysis, export the CFG and the invariants to JSON, and ask a Lean 4 development to prove them sound. The JSON is the whole interface between the two sides.

Only the roots of the call graph are checked. A callee's invariants are conditional on its call sites, while the theorem Lean proves quantifies over every initial state, so checking one in isolation would ask a stronger question than Crab answered.

A failure is reported as "could not verify", never as a claim about the analysis: it may only mean the proof search was too weak. Where the arithmetic ran out, the assignment it could not rule out is shown in the program's own variables.

Enabled by configuring with -DLAKE_EXECUTABLE.

Adds --verify-with-lean: after the analysis, export the CFG and the
invariants to JSON, and ask a Lean 4 development to prove them sound.
The JSON is the whole interface between the two sides.

Only the roots of the call graph are checked. A callee's invariants are
conditional on its call sites, while the theorem Lean proves quantifies
over every initial state, so checking one in isolation would ask a
stronger question than Crab answered.

A failure is reported as "could not verify", never as a claim about the
analysis: it may only mean the proof search was too weak. Where the
arithmetic ran out, the assignment it could not rule out is shown in the
program's own variables.

Enabled by configuring with -DLAKE_EXECUTABLE.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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