Skip to content

Add vacuity test for contradictory requires clause #2793

Description

@celinval

Requested feature: Contract verification should fail if the requires clause can never be satisfied
Use case: Detect user mistakes when writing contracts
Link to relevant documentation (Rust reference, Nomicon, RFC):

Test case:

#[kani::requires(a > 5)]
#[kani::requires(a < 4)]
#[kani::ensures(result == a)]
fn buggy(a: u32) -> u32 {
    panic!("This code is never tested")
}

Without vacuity test, this contract verification will pass.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Z-ContractsIssue related to code contracts[C] Feature / EnhancementA new feature request or enhancement to an existing feature.

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions