carbon icon indicating copy to clipboard operation
carbon copied to clipboard

Injectivity check for quantified predicates missing

Open mschwerhoff opened this issue 3 years ago • 0 comments

Consider the following program:

predicate p(a: Ref, b: Ref)

method m(x: Ref, s: Set[Ref], t: Seq[Ref]) {
  exhale forall a: Int, b: Ref :: b in s && 0 <= a && a < |t| ==> p(t[a], b) // might not be injective
}

The QP assertion may not be injective in the predicate arguments (which Silicon reports), but Carbon only reports potentially insufficient permissions.

mschwerhoff avatar Mar 30 '21 14:03 mschwerhoff