Optionally skip re-verification of well-definedness #700
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.
Silicon verifies that predicate bodies, function preconditions, and method pre- and postconditions are self-framing and well-defined. As a result, it is not necessary to re-verify well-definedness when using them (but Silicon always does so anyway).
This PR adds a flag in the state that expresses whether well-definedness of the currently consumed or produced assertion needs to be checked. By default, this flag does nothing, but setting a command line option will lead to Silicon actually skipping the checks in those cases.
Additionally, it introduced another flag that expresses whether any conditions (well-definedness or correctness) should currently be checked or assumed. This is for later usage to enable us to skip verification of parts of methods if they are already known to be correct.