Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Compared to other tools

Assura is a contract-first language aimed at AI-assisted development: humans write behavioral contracts; the compiler proves implementations (or returns a counterexample) with SMT (Z3/CVC5) and emits Rust.

This page answers the first question PL and Rust audiences ask: is this just Dafny / Verus / Liquid Haskell / better unit tests?

Snapshot

AssuraDafnyVerusLiquid HaskellUnit / property tests
Primary surfaceDedicated .assura contractsDafny languageAnnotations on RustLiquid types / refinements on HaskellTests in host language
Implementation authorOften AI (IR / auto-implement / check-rust)Human (or AI as ordinary code)Human-written RustHuman-written HaskellHuman or AI
Proof backendZ3 / CVC5 via Assura pipelineBoogie / Z3VIR / Z3Liquid Fixpoint / SMTNone (sampling)
Default emitRust source (rustc / WASM)C#, Go, JS, Java, Python, …Stays RustStays HaskellN/A
AI agent loopFirst-class (MCP, check-rust, auto-implement)Possible but not the product shapePossiblePossibleCommon, no proof
What “success” meansNo counterexample for modeled clauses; layers 0–2Verified method / moduleVerified functionType-checked refinementsTests green

When Assura is a better fit

  • You want specs separate from host-language syntax so agents and humans share a stable contract surface.
  • You care about an AI write → SMT check → fix loop with structured results (counterexample vs unknown vs verified).
  • You want Rust as the ship format without requiring the implementation to be authored as verified Rust-in-place first.

When another tool is a better fit

NeedPrefer
Verify existing Rust in place with fine-grained borrow-aware proofsVerus
Mature multi-target verified language with large librariesDafny
Refinement types inside HaskellLiquid Haskell
Fast feedback without SMT, or non-modeled effectsProperty tests / fuzzing (still useful with Assura)

Honesty constraints

Assura does not claim:

  • That every clause is always decided (see What we prove).
  • That it replaces human review for product requirements.
  • That it is a drop-in Verus substitute for verifying arbitrary Rust crates.

For competitive research notes (internal depth), see INVESTIGATION.md. For a short public pitch, start with the docs site introduction.