The provable
web framework.
Build in Rust. Prove in Lean. Ship with confidence.
Built around axumLean 4 proofsPostgreSQL transactions
Interactive proof specimen
Follow the logic,
from source to theorem.
Hover a highlighted line to trace its counterpart. Break the code to see the guarantee disappear.
The compiled statement cannot read or change rows belonging to another tenant.
Illustrative, precomputed examples based on proofs in the repository. No Lean process runs in your browser.
What can I prove?
Prove what
matters.
Keep the decisive part of your app small and pure. i5h gives you the bridge from that Rust kernel to claims Lean can check.
Authorization
Show that every successful write satisfies your policy—for every actor, state, and command.
WritesAuthorized transition policy
Tenant isolation
Prove compiled statements leave every other tenant’s rows unchanged.
other_tenants db' = other_tenants db
State invariants
Show every accepted transition preserves the rules that keep your data valid.
Inv s → transition s c = ok w → Inv (apply s w)
Confidentiality
Prove indistinguishable states produce the same visible outcome for a user.
view u s₁ = view u s₂ → outcome₁ = outcome₂
One path, end to end
Rust runs it.
Lean reasons about it.
The same pure kernel you ship is extracted into Lean. The shell handles HTTP and persistence without putting business decisions in handlers.
Authenticate the actor and decode the command.
A pure transition returns writes and a reply.
Aeneas ↗Apply in one serializable, retryable transaction.
Specs and theorems checked against the extracted kernel and storage path.
Clear by construction
Know exactly where
the proof ends.
i5h documents the boundary instead of hiding it. Your kernel and storage translation are proof territory; the runtime and external world remain explicit assumptions.
Read the complete trust model →Start below the surface
Your first proven
Rust application.
Follow the calculator tutorial: define a pure kernel, run it behind axum, extract it, and check your first theorem.
$ git clone https://github.com/h5i-dev/i5h $ cd i5h $ cargo i5h-verify extracting Rust kernels... done checking Lean projects... done checking trusted boundaries... done ✓ all verification gates passed