Make \sameUpdateLevel the default#3899
Merged
Merged
Conversation
unp1
requested changes
Jul 8, 2026
unp1
left a comment
Member
There was a problem hiding this comment.
Thanks a lot! 👍
Two minor issues to discuss:
- the logic printer nows prints for pure rewrite rules (w/o add and assumes) the \ignoreUpdateLevel flag. E.g. swicth on that taclets are shown for inner nodes, apply eqSymm on an equation
- Should we keep the token SAMEUPDATELEVEL and the grammar rule so that existing proofs with included rules do not break
Member
Author
|
Both are fixed now. Now the application restrictions still print as |
This file contains hidden or 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
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.
Intended Change
If a rule has an
\assumesor\addpart, the term in the\findand the other parts should have the same updates applied to them for soundness, at least in most cases. To ensure this, the rules need the\sameUpdateLevelannotation, it is not the default. Recently, we found a number of bugs due to missing\sameUpdateLevel, e.g. #3891 and #3490.This PR changes the default as discussed in the KaKeY meeting on the 24th of April 2026: By default, any rule with
\assumesor\addautomatically has theSAME_UPDATE_LEVELrestriction, unless\ignoreUpdateLevelis added.This makes a number of unsound rules sound (while going over the rules, I saw many where
\sameUpdateLevelwas missing. It also affects the one step simplifier: Some rule were not handles by OSS because the had the\sameUpdateLevelannotation but no\assumesor\add; that seemed incorrect.Because this is a breaking syntax change, we should consider it for 3.0.
Type of pull request
Ensuring quality
Additional information and contact(s)
The contributions within this pull request are licensed under GPLv2 (only) for inclusion in KeY.