#[kani::proof]
fn check_my_property() {
// Create a nondeterministic input
let input: u8 = kani::any();
// Call the function under verification
let output = function_under_test(input);
// Check that it meets the specification
assert!(meets_specification(input, output));
}
It looks like fuzzing, but it's proving no-panic for all possible values symbolically. If only it handled loops better :-/Verus wraps everything in its macro that makes rust-analyzer etc unhappy.