awesome-rust-formalized-reasoning
kani
Our great sponsors
awesome-rust-formalized-reasoning | kani | |
---|---|---|
3 | 41 | |
227 | 1,421 | |
- | 9.5% | |
0.0 | 0.0 | |
5 days ago | about 1 hour ago | |
Rust | ||
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
awesome-rust-formalized-reasoning
-
CreuSAT: Formally verified SAT solver written in Rust and verified with Creusot
Unsurprisingly, we can see a growing interest in the Rust ecosystem regarding formal verification. I try to keep https://github.com/newca12/awesome-rust-formalized-reasoning up to date. I will add CreuSAT shortly.
-
Kani Rust Verifier – a bit-precise model-checker for Rust
This dispersed progress is the sign of an absence of maturity but the exploration of this space with Rust is very promising : https://github.com/newca12/awesome-rust-formalized-reasoning
kani
-
CVE-2023-4863: Heap buffer overflow in WebP (Chrome)
> those applications need the proof for correctness so that more dangerous code---say, what would need `unsafe` in Rust---can be safely added
There are actually already tools built for this very purpose in Rust (see Kani [1] for instance).
Formal verification has a serious scaling problem, so forming programs in such a way that there are a few performance-critical areas that use unsafe routines seems like the best route. I feel like Rust leans into this paradigm with `unsafe` blocks.
- Formal verification for unsafe code?
-
Unsafe Rust
You can also use Kani to check unsafe code. https://github.com/model-checking/kani
- This Week in Rust 499
-
Kani 0.28.0 has been released!
Here's a summary of what's new in version 0.28.0:
-
Kani 0.27.0 has been released!
However, there may be more down the line since we don't have (1) for now. If you're interested, would you mind commenting to this issue?
We're excited to announce the release of Kani Rust Verifier v0.27.0! Kani is a bit-precise model checker for Rust, and this new release comes with exciting changes and improvements.
-
Is there something like "super-safe" rust?
kani (e.g. used by hifitime)
-
Must move types by Niko Matsakis
Doing this legwork for unsafe code is 100% required, and the compiler isn't of much help here (but there are external tools that check unsafe code like kani).
What are some alternatives?
prusti-dev - A static verifier for Rust, based on the Viper verification infrastructure.
MIRAI - Rust mid-level IR Abstract Interpreter
rmc - Kani Rust Verifier [Moved to: https://github.com/model-checking/kani]
rustig - A tool to detect code paths leading to Rust's panic handler
watt - Runtime for executing procedural macros as WebAssembly
gdbstub - An ergonomic and easy-to-integrate implementation of the GDB Remote Serial Protocol in Rust, with full no_std support.
Kind - A next-gen functional language [Moved to: https://github.com/Kindelia/Kind2]
macro_railroad_ext - Display syntax-diagrams for Rust-macros on docs.rs and doc.rust-lang.org
seer - symbolic execution engine for Rust
minisat - Minisat Haskell bundle
Formality - A modern proof language [Moved to: https://github.com/kind-lang/Kind]
cicada - Cicada Language