The following verifies but shouldn't:
predicate P(r: Ref) {
Q(r) &&
unfolding Q(r) in true
}
predicate Q(r: Ref) {true}
predicate R(r: Ref) {
P(r) && unfolding P(r) in true
}
method test01(r: Ref) returns ()
requires P(r)
{
fold acc(R(r), wildcard)
//:: ExpectedOutput(assert.failed:assertion.false)
assert false
}
The problem is that constrainableARPs contains more than it should, so this is a variation of #290.
The following verifies but shouldn't:
The problem is that
constrainableARPscontains more than it should, so this is a variation of #290.