Open
Description
I'm writing some basic tests, and find verification results of standard proof and proof_for_contract are different :
#[kani::requires(a > 0)]
fn contract(a: u8) {}
#[kani::proof] // VERIFICATION:- FAILED
fn proof() {
contract(0);
}
#[kani::proof_for_contract(contract)] // VERIFICATION:- SUCCESSFUL
fn proof() {
contract(0);
}
using the following command line invocation:
kani file.rs # for #[kani::proof] - VERIFICATION:- FAILED
kani -Zfunction-contracts file.rs # for #[kani::proof_for_contract(contract)] - VERIFICATION:- SUCCESSFUL
with Kani version: c87c7d0
I expected to see this happen: #[kani::proof_for_contract(contract)]
proof fails as #[kani::proof]
proof does
Instead, this happened: #[kani::proof_for_contract(contract)]
proof succeeds