# creusot-rs/creusot

Creusot helps you prove your Rust code is correct.

Repository: https://github.com/creusot-rs/creusot
Canonical: https://ross.abutalabs.com/products/creusot
Homepage: https://creusot.rs
Language: Rust
License: LGPL-2.1
License Family: copyleft
Topics: rust-lang, verification, proof, formal-verification, deductive-reasoning, why3, rust, formal-methods, contracts
Last push: 2026-08-25T13:18:32+00:00

## Health v2 (maintenance only)
Score: 94/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 99, release rhythm 83, longevity 100
- inputs: {"age_days": 2046, "days_push": 8, "days_rel": 34, "gap_med": 42.5, "n_releases_24m": 11}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1833, forks 88 (observed 2026-08-28T04:05:42.372851+00:00)

## What it is
Creusot is a deductive verifier for Rust that proves code is free of panics, overflows, and assertion failures, and—with Pearlite contracts—that it meets formal specifications. It translates Rust to the Coma intermediate language on the Why3 platform, where SMT provers discharge verification conditions.

## Use cases
- prove my rust code is correct
- verify rust code has no panics or overflows
- formally verify a rust function against a specification
- write contracts for rust functions
- prove termination of rust programs
- verify a rust data structure like a binary search or sort implementation

## When to choose
- you need mathematical guarantees of correctness for critical Rust code
- you want to verify absence of panics, overflows, and assertion failures
- you are comfortable writing formal specifications and working with SMT provers
- you want first-class support for verifying code using mutable borrows

## When to avoid
- you just want lightweight linting or property-based testing instead of full proofs
- your codebase is large and you cannot afford annotation effort
- you need zero setup friction—Creusot requires opam, Why3, and external provers
- you work in a language other than Rust

## Facets
- artifact type: cli-tool
- maturity: active
- function: testing, developer-tools, compiler
- domain: developer-tools, programming-languages
- platform: windows, rust, cli
- tags: formal-verification, deductive-verification, why3, rust-verification, contracts, pearlite, smt-provers, proof-assistant, algorithms, linux, macos

## Member repositories
- creusot-rs/creusot (main) score 94

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:42.372851+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:18:37.670170+00:00, confidence not recorded.
  - readme: https://github.com/creusot-rs/creusot (fetched 2026-08-28T04:05:42.372851+00:00, sha f0e3600aef0a)
  - homepage: https://creusot.rs (fetched 2026-08-29T10:57:49.087107+00:00, sha 71e169667e03)
  - site_page: https://guide.creusot.rs/installation.html (fetched 2026-08-29T10:57:49.144854+00:00, sha 850bc8d6255d)
- Data as of 2026-08-30T08:39:29.467469+00:00.
