Skip to content

Add support verification of unbounded structures and loops #311

@danielsn

Description

@danielsn

The CBMC backend RMC uses currently only supports bounded verification. This means bugs may be missed if the are only triggered by inputs larger than the specified bounds.

Likelihood:

In practice, we found few issues (other than integer overflows) where this was a major concern in C code, and expect the same to hold for Rust.

Mitigation:

  • using --unwinding-assertions to ensure that all loops are fully unwound
  • Checking coverage
  • Manual audit of proof harness bounds

Path to soundness:

Support function contracts and loop invariants

Documentation:

Metadata

Metadata

Assignees

No one assigned

    Labels

    [C] Feature / EnhancementA new feature request or enhancement to an existing feature.[E] User ExperienceAn UX enhancement for an existing feature. Including deprecation of an existing one.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions