Open
Description
Created by @mschwerhoff on 2013-07-25 10:23
Last updated on 2017-09-23 13:47
As illustrated by the test file Sil:all/predicates/arguments.sil
, Silicon isn't able to verify snippets such as
inhale acc(this.valid(b), write)
inhale acc(this.valid(!b), write)
exhale acc(this.valid(true), write)
It is obvious that the prover needs to be invoked when looking for a matching heap chunk. It is not obvious, however, how to proceed. Since b
and !b
are both may- but not must-matches, one could i) just pick the first may-match and ignore other possibilities or ii) branch and try all possibilities.