proof_assert!
At any point in the code, you may want to insert an arbitrary verification condition. This can be useful:
- For debugging, to ensure that a property indeed holds at a certain point of the program.
- To help the provers in specific cases.
To do this, Creusot gives you the proof_assert!
macro:
fn f() {
// ...
let x = 1;
let y = 2;
proof_assert!(x@ + y@ == 3);
// ...
}
proof_assert
must contain a pearlite expression returning a boolean.