Expand description
SMT lowering for the InBound safety property.
The current implementation handles the common slice pattern:
ptr = slice.as_ptr()
current = ptr.add(index)
guard: index < slice.len()
property: InBound(current, T, n)The module only lowers the property to SmtObligation::InBounds. The
common SMT model is responsible for matching as_ptr, ptr.add, len, and
branch facts from the forward visit result.
Functionsยง
- check ๐
- Check
InBoundby lowering it to a common bounds obligation. - check_
for_ ๐checkpoint - Check
InBoundat a return checkpoint for struct invariant verification. - pointer_
arithmetic_ ๐obligation