Kani: A Model Checker for Rust
3 hours ago
- #Model Checking
- #Rust Programming
- #Software Verification
- Kani is an open-source model checker for Rust that performs bounded model checking to verify safety properties and functional correctness.
- It compiles Rust code from Mid-level Intermediate Representation (MIR) into CBMC's verification engine, automatically checking safety properties without user annotation.
- Kani provides a specification language with features like function contracts, loop contracts, quantifiers, and function stubbing to extend verification from bounded to unbounded domains.
- Case studies on industrial Rust projects demonstrate its feasibility, upgrading verification from panic-freedom to functional correctness and uncovering six previously unknown bugs.
- It scales in production CI, with over 16,000 harnesses verified per code change in the Rust standard library verification campaign.