-
Notifications
You must be signed in to change notification settings - Fork 97
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
viper: invariants #3488
Merged
Merged
viper: invariants #3488
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ggreif
force-pushed
the
gabor/viper
branch
3 times, most recently
from
October 14, 2022 22:08
c3c6ceb
to
64e6211
Compare
Looks good to me so far, but
this seems to be missing. |
Yes, that is the TODO list :-) |
So regarding global invariants, we need a transformation pass that adorns the corresponding |
ggreif
force-pushed
the
gabor/viper
branch
2 times, most recently
from
October 15, 2022 12:29
2af2a9c
to
2829990
Compare
ggreif
force-pushed
the
gabor/viper
branch
2 times, most recently
from
October 15, 2022 16:33
ed66529
to
efdab63
Compare
as pre/postconditions on every method
But OCaml is weird ``` File "viper/trans.ml", line 32, characters 35-48: 32 | { it = MacroCall(s, { it = LocalVar self ^^^^^^^^^^^^^ Error: The constructor LocalVar expects 2 argument(s), but is applied here to 1 argument(s) ```
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This implements actor-global invariants. They get (currently) declared with a actor-level
assert
and translated to a Viper macro, that gets bothrequire
d andensure
d from each method by calls to those macros.TODOs:
self
access indefine
__init__
should only have a postcondition (depends on Support generation of __init__ methods based on actor private fields #3486)