Tools

Proof

Model checkers and verifiers, now that an agent can draft the proof.

Writing a TLA+ spec or a Dafny proof was a specialist's job for decades. A coding agent will draft one in minutes, and the checker settles whether it holds. Rule 16 calls this boiling the lake.

Model checkers, verifiers and contracts

  • Start here

    CBMC

    Bounded model checker for C and C++ that finds assertion failures and memory errors.

    A harness reads like a test yet covers every input within a bound, and AWS uses it on core libraries.

    C/C++ Open source, BSD-4-Clause1.1k starsLatest release Aug 2026Source

  • Start here

    Checker Framework

    Pluggable type checkers for Java that enforce nullness, resource and custom rules at compile time.

    Violations fail the build at compile time, so an agent has no runtime path around them.

    Java/JVM Open source, GPL-2.0 with classpath exception1.1k starsLatest release Oct 2026Source

  • Start here

    Dafny

    Verification-aware language where a solver proves contracts and the code compiles to several target languages.

    Specs and code live together and the proof has to pass, which suits an agent that retries until the verifier is satisfied.

    Any language Open source, MIT3.6k starsLatest release Aug 2025Source

  • Start here

    Gobra

    Verifier for Go programs using contract annotations, built on Viper.

    One of very few ways to prove Go code, and the SCION network stack uses it.

    Go Open source, MPL-2.0201 starsLatest release Mar 2026

  • Start here

    icontract

    Design by contract for Python with preconditions, postconditions and invariants as decorators.

    Pre- and postconditions become runtime guardrails, and icontract-hypothesis can generate tests from them.

    Python Open source, MIT417 starsLatest release Jan 2026

  • Start here

    Kani

    Bit-precise model checker for Rust that proves harnesses hold for all inputs within bounds.

    A harness reads like a test yet proves the property, so unsafe Rust gets checked without learning a proof language.

    Rust Open source, Apache-2.03.5k starsLatest release Sep 2026Source

  • Start here

    Liquid Haskell

    Adds refinement types to Haskell so the compiler proves properties like non-empty lists or bounds.

    Contracts live in types, so the compiler checks them on every build.

    Haskell/OCaml Open source, BSD-3-Clause1.3k starsLatest release May 2026Source

  • Start here

    SPARK (GNATprove)

    Ada subset with contracts that the GNATprove tool proves free of runtime errors.

    The mature example of contracts enforced by proof in production, notably in aerospace and rail.

    Any language Open source, paid tier, GPL-3.0328 starsSource

  • Start here

    Stainless

    Verifier for a functional subset of Scala that proves contracts and termination.

    Brings proof-backed contracts to Scala for teams that need guarantees on core logic.

    Java/JVM Open source, Apache-2.0404 starsLatest release Aug 2026Source

  • Start here

    Stateright

    Model checker for distributed protocols written in Rust, which can also run the checked actors as real code.

    Bridges a protocol model and a running implementation, so the checked design is the shipped code.

    Rust Open source, MIT1.9k starsSource

  • Start here

    TLA+ (TLC and Toolbox)

    Specification language and model checker for describing and checking concurrent and distributed designs.

    A TLA+ spec is a contract for a protocol that TLC checks exhaustively, and agents now draft them with some success.

    Any language Open source, MIT3.1k starsLatest release Aug 2024Source

  • Alloy

    Lightweight modeling language that finds counterexamples to claims about data models and rules.

    A quick way to find holes in a data model or permission design before agents build on it.

    Any language Open source, Apache-2.0873 starsLatest release Jan 2025Source

  • Apalache

    Symbolic model checker for TLA+ that uses an SMT solver on large or infinite state spaces.

    Handles specs with big integers and parameters that stall TLC, giving faster feedback inside an agent loop.

    Any language Open source, Apache-2.0606 starsLatest release Oct 2026Source

  • Concuerror

    Concuerror finds concurrency errors in Erlang programs.

    It helps catch concurrency bugs that only appear in rare schedules.

    Elixir/Erlang Open source, BSD-2-Clause351 starsLatest release Nov 2020

  • Creusot

    Deductive verifier for Rust that translates programs to Why3 for proving.

    Gives stronger guarantees than bounded checks for algorithmic Rust and asks for more proof effort.

    Rust Open source, LGPL-2.11.9k starsLatest release Jul 2026

  • deal

    Design by contract for Python with runtime checks, linting and automatic test generation.

    Contracts can also be proven with Z3 and run under pytest.

    Python Open source, MIT916 starsLatest release Nov 2025Source

  • F*

    Proof-oriented language that extracts verified code to OCaml, F# or C.

    Verified crypto and parsers written in it ship in real products, and researchers are testing agents on it.

    .NET, C/C++, Haskell/OCaml Open source, Apache-2.03.1k starsLatest release Sep 2026Source

  • Frama-C

    Analysis platform for C that checks ACSL contract annotations with proof plugins.

    Contract comments in C can be proven with the WP plugin, which suits embedded and safety-critical code.

    C/C++ Open source, LGPL-2.1190 starsSource

  • GraphWalker

    Model-based testing tool that walks a graph model of the system to generate test paths.

    A graph of states and transitions gives the team a model to generate paths from and explicit coverage targets.

    Java/JVM Open source, MIT371 starsLatest release Sep 2024Source

  • Lean 4

    Programming language and proof assistant where a small trusted kernel checks every proof.

    A machine-checked proof is a hard gate an agent cannot talk past, and AI provers target it.

    Any language Open source, Apache-2.09.4k starsLatest release Sep 2026Source

  • Nagini

    Static verifier for statically typed Python using contract annotations, built on Viper.

    A rare prover for Python, though research-grade and limited to a subset.

    Python Open source, MPL-2.0301 starsLatest release Jul 2026

  • OpenJML

    Checks Java code against JML contract annotations by static verification and runtime checks.

    Gives Java a path to proven contracts, though use is mostly academic.

    Java/JVM Open source, GPL-2.0186 starsLatest release Oct 2026Source

  • P language

    State-machine language for modeling distributed systems, used by AWS teams on S3, DynamoDB and EC2.

    The repo ships PeasyAI, an MCP tool that lets Claude Code and Cursor write and fix P models.

    Any language Open source, MIT3.7k starsLatest release Mar 2026Source

  • Quint

    Executable specification language with TypeScript-like syntax that runs on the Apalache checker.

    Developers and agents both read the syntax easily, and the simulator and REPL give quick checks of a spec.

    JavaScript/TypeScript Open source, Apache-2.01.8k starsLatest release Sep 2026Source

  • Rocq (Coq)

    Proof assistant, renamed from Coq, for proving programs and mathematical statements correct.

    Verified compilers and kernels are built on it, and its proofs are checked mechanically.

    Any language Open source, LGPL-2.15.6k starsLatest release Sep 2026Source

  • Specula

    LLM framework that derives TLA+ specs from source code and validates them against real traces.

    Shows the loop IMP wants: an agent drafts the spec from code, then trace checking ties it to behavior.

    Any language Open source, Apache-2.0

  • Verus

    Verifier for Rust that proves code meets specs written in Rust syntax, using an SMT solver.

    The main target for LLM proof-writing research, since specs stay in Rust and the solver checks every step.

    Rust Open source, MIT3.3k starsLatest release Oct 2026Source

  • XState + @xstate/test

    State machine library whose models can generate test paths that drive the real UI or service.

    The state machine is the contract, and generated paths test the implementation against it.

    JavaScript/TypeScript Open source, paid tier, MIT30k starsLatest release Sep 2026Source

Gone quiet 1

These tools are archived or shut down, or nobody has released or committed to them in two years. Some still work fine. Read the note before you adopt one.

  • Prusti

    Rust verifier built on Viper that checks contracts written as attributes.

    Attribute-style pre- and postconditions read like design by contract and are easy for an agent to write.

    Little activity since March 2024.

    Rust Open source, MPL-2.01.8k starsLast change Mar 2024

Missing a tool that belongs here? Suggest it.

Every tool here was checked against its GitHub repository or its own site on 6 October 2026. Stars and dates come from GitHub on that day.