Make SM definitions non-global if necessary #840
Merged
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.
It seems to be necessary if their definition refers to quantified variables.
Before this change, definitions of snapshot maps that were defined during the evaluation of a quantifier were marked as global even if they referred to quantified variables. Thus, after the quantifier body was evaluated and auxiliary definitions were emitted, said quantified variables were not actually quantified over, and thus the definitions still refer to the arbitrary-but-fixed value of the quantified variable used during the evaluation of the quantifier body, when instead the maps should be defined for all values of the quantified variables.
This fixes #832 and #311.