-
Notifications
You must be signed in to change notification settings - Fork 63
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
Goal metadata #1679
Merged
Merged
Goal metadata #1679
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
currently tracks the location a condition was asserted (in the proof script), and user-specified "tags" that can be associated. The condition metadata is threaded through symbolic exeuction and attached to the resulting verification goals. Then, tactics can query the tags associated to goals in order to filter them and take different actions. Currently, only the LLVM verification method threads through metadata information; the JVM and X86 verification modules need to be modified in a similar way.
apply after structural matching. In this (common) special case, we can have a more natural handling of function preconditions which allows us to retain better metadata about them.
Override preconditions are still not currently handled.
with an option. Changing the number/order of goals generated seems like it was disrupting some preexisting proofs.
robdockins
force-pushed
the
rwd/goal-metadata
branch
from
June 2, 2022 16:38
a1f9c8b
to
cc2ba1b
Compare
chameco
approved these changes
Jun 2, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good overall, this is exciting. We should open an issue detailing any missing JVM functionality.
robdockins
added
the
PR: ready to merge
Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run
label
Jun 2, 2022
This was referenced Jun 2, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
PR: ready to merge
Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run
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 PR improves the metadata attached to goals, and implements a system whereby user-defined "tags" can be associated with specification conditions in the setup phase. Later, in proof tactics, goals can be filtered by what tags they have associated. This should give users a less-fragile way to filter goals for special handling.
The system may need additional refinement going forward, but this seems like good step in the right direction. One thing I notice is that a single specification statement can produce multiple goals (e.g., a points-to requires both that the a memory read succeeds, and that the resulting value is the one expected), each of which have the same tags.