Kani formal verification proofs for elicitation contracts.
This crate contains 291 proof harnesses verifying contract invariants using the Kani model checker's symbolic execution engine.
Architecture
Kani proofs are organized by type category:
- Primitives: strings, integers, floats, chars, bools
- Collections: Vec, HashMap, HashSet, arrays, tuples
- DateTime: chrono, time, jiff DateTime types
- Network: IP addresses, MAC addresses, socket addresses
- External: URLs, UUIDs, regex, paths
- Mechanisms: Contract composition and verification
Running Proofs
# All proofs (291 harnesses)
# Specific module
# With specific features
Proof Strategy
For each contract type T, we prove:
- Construction Safety:
T::new(x)succeeds ⟹ invariant holds - Invalid Rejection:
T::new(x)fails ⟹ invariant violated - Accessor Correctness:
t.get()returns validated value - Unwrap Correctness:
t.into_inner()returns validated value
Global Configuration
Run with global unwind bound to prevent memchr infinite loops: