-
Notifications
You must be signed in to change notification settings - Fork 126
Open
Labels
T-UserTag user issues / requestsTag user issues / requestsZ-ContractsIssue related to code contractsIssue related to code contracts[C] Feature / EnhancementA new feature request or enhancement to an existing feature.A new feature request or enhancement to an existing feature.
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
Metadata
Metadata
Assignees
Labels
T-UserTag user issues / requestsTag user issues / requestsZ-ContractsIssue related to code contractsIssue related to code contracts[C] Feature / EnhancementA new feature request or enhancement to an existing feature.A new feature request or enhancement to an existing feature.