Skip to content

Inhaling negative permission goes to magic #522

Closed
@tdardinier

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
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions