-
Notifications
You must be signed in to change notification settings - Fork 257
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
Cannot always prove that a method leaves a disjoint set of objects unmodified #608
Labels
kind: enhancement
Enhancements, feature requests, etc. These are NOT bugs, but ways we can improve Dafny
Comments
Full test file here:
|
acioc
added
kind: enhancement
Enhancements, feature requests, etc. These are NOT bugs, but ways we can improve Dafny
and removed
weakness
labels
Jun 22, 2020
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
kind: enhancement
Enhancements, feature requests, etc. These are NOT bugs, but ways we can improve Dafny
Given the following class:
I would expect the following to hold for any set of
objs : set<object>
:However this is not able to be verified if
objs
is the result of anopaque
function, either due tohaving an undefined body or via the
{:opaque}
attribute.Notably this works as expected if the field update occurs directly instead of through a method call.
Adding the following (trivially-satisfied) postcondition to the method yields the expected result and successfully verifies in both cases:
The text was updated successfully, but these errors were encountered: