Closed
Description
Currently, both Silicon and Carbon consider accessibility predicates with negative permissions (such as acc(x.f, -1/2)
) as well-defined, but false. Thus, the following program is verified by both Silicon and Carbon:
field f: Int
method main(x: Ref)
{
inhale acc(x.f, -1/2)
assert false
}
It is unclear why such a behavior would be useful (and even sound). Treating accessibility predicates with negative permissions as not well-defined seems like a better choice. That is, statements like inhale acc(x.f, -1/2)
should actually fail (because they are not well-defined).
Metadata
Assignees
Labels
No labels