-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unsoundness of old expressions in magic wands in postconditions #656
Comments
Same issue posted for Carbon here: viperproject/carbon#437 |
It could be that the code in viper.silver.ast.MagicWand.structure should be adapted; the "identity" of the old state used is not considered a "hole" in the structure generated. I'm not exactly sure how that adaptation would work though, since there isn't necessarily a syntactic label corresponding to the "just before the called method" state. |
@marcoeilers would this be possible to fix? I'm running into what I think is the same issue with the following minimized example:
|
I'll look at it tomorrow. |
@JonasAlaif That seems to be a separate issue, I've filed an issue for it here: #698 |
It seems that an "old" expression in a magic wand (RHS) in the postcondition of the called method is wrongly interpreted as referring to the old state of the caller rather than the callee. This is of course unsound; one possible example is below (the assert statements make clear that the "wrong" wand is considered held by the verifier):
The text was updated successfully, but these errors were encountered: