-
Notifications
You must be signed in to change notification settings - Fork 25
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
Fix overflow checking #3353
Fix overflow checking #3353
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #3353 +/- ##
============================================
- Coverage 38.03% 37.86% -0.18%
+ Complexity 17089 16904 -185
============================================
Files 2099 2055 -44
Lines 127274 125528 -1746
Branches 21386 21226 -160
============================================
- Hits 48409 47525 -884
+ Misses 72892 72152 -740
+ Partials 5973 5851 -122 ☔ View full report in Codecov by Sentry. |
While working on this PR, I stumbled upon some unclear points:
In addition, I am not sure what syntax is currently supported by KeY's parser ... Does anyone know the status quo? How should it be implemented? |
I am currently struggling with the assignmentToUpdate rules. The original rule (i.e., status quo in KeY since #3027, with fix for the wrongly named taclet option) for e.g. subtraction looks like this:
As @unp1 pointed out, if the modality is in the antecedent, you probably do not want to open a branch with the overflow "check" in the antecedent, as this leads to an unclosable branch usually. If you would like to prevent that, you would have to duplicate all the rules (about 30 at the moment):
The open question is: Do we have to add another branch in the antecedent case to be able to assume that Another option without the rule duplication would be to just limit application to the succedent. This has been done for example for the rule |
key.core/src/main/java/de/uka/ilkd/key/nparser/builder/TacletPBuilder.java
Show resolved
Hide resolved
key.core/src/main/resources/de/uka/ilkd/key/proof/rules/intRulesUncheckedSemantics.key
Show resolved
Hide resolved
key.core/src/main/java/de/uka/ilkd/key/nparser/builder/TacletPBuilder.java
Outdated
Show resolved
Hide resolved
…Builder.java More concrete comment where to declare taclet options
The purpose of this PR is to repair the overflow checking of KeY and thus fix #3352.
TODO:
inInt(...)
,inRangeInt(...)
, taclets ininRules(Un)CheckedSemantics.key
)