Creusot
Creusot helps you prove your code is correct in an automated fashion.
Install / Use
/learn @creusot-rs/CreusotREADME

Le marteau-pilon, forges et aciéries de Saint-Chamond, Joseph-Fortuné LAYRAUD, 1889
Creusot
</div>About
Creusot is a deductive verifier for Rust code. It verifies your code is safe from panics, overflows, and assertion failures. By adding annotations you can take it further and verify your code does the correct thing.
Creusot works by translating Rust code to Coma, an intermediate verification language of the Why3 Platform. Users can then leverage the full power of Why3 to (semi)-automatically discharge the verification conditions!
See ARCHITECTURE.md for technical details.
Help and Discussion
If you need help using Creusot or would like to discuss, you can post on the discussions forum or join our Zulip chat!
Citing Creusot
If you would like to cite Creusot in academic contexts, we encourage you to use our ICFEM'22 publication.
Examples of Verification
To get an idea of what verifying a program with Creusot looks like, we encourage you to take a look at some of our test suite:
- Zeroing out a vector
- Binary search on Vectors
- Sorting a vector
- IterMut
- Normalizing If-Then-Else Expressions
More examples are found in examples and tests/should_succeed.
Projects built with Creusot
- CreuSAT is a verified SAT solver written in Rust and verified with Creusot. It really pushes the tool to its limits and gives an idea of what 'use in anger' looks like.
- Another big project is in the works :)
Installing Creusot as a user
- Install
rustup, to get the suitable Rust toolchain - Get
opam, the package manager for OCaml - Clone the creusot repository,
then move into the
creusotdirectory.git clone https://github.com/creusot-rs/creusot cd creusot - Install Creusot:
./INSTALL - Check that the installation succeeded:
cargo creusot --help
See the Creusot guide: Installation for more details.
Upgrading Creusot
- Enter the cloned Creusot git repository used previously to install Creusot
- Update Creusot's sources:
git pull - Update opam's package listing:
opam update - Reinstall Creusot:
./INSTALL
Hacking on Creusot
See CONTRIBUTING.md for information on the developer workflow for hacking on the Creusot codebase.
Related Skills
himalaya
353.1kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
353.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
taskflow
353.1kname: taskflow description: Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layer
frontend-design
111.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
