Improve the SMT translation by translating axiom taclets (mostly for invariants)#3564
Draft
WolframPfeifer wants to merge 7 commits intoKeYProject:mainfrom
Draft
Improve the SMT translation by translating axiom taclets (mostly for invariants)#3564WolframPfeifer wants to merge 7 commits intoKeYProject:mainfrom
WolframPfeifer wants to merge 7 commits intoKeYProject:mainfrom
Conversation
…lation for binding operators (bsum,etc)
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3564 +/- ##
=========================================
Coverage 38.33% 38.33%
- Complexity 17259 17264 +5
=========================================
Files 2111 2111
Lines 127632 127654 +22
Branches 21461 21462 +1
=========================================
+ Hits 48926 48937 +11
- Misses 72695 72705 +10
- Partials 6011 6012 +1 ☔ View full report in Codecov by Sentry. |
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.
This PR adds axioms for some (dynamically generated) taclets to the SMT translation. Most of these taclets are axioms for class invariants (static/non-static, free, ...).
Additionally, the semantics of the bsum binder should be translated (not yet working).
Related Issue
This pull request addresses (parts of) #3555.
Plan
The goal was to make SaddleBackSearch and SumAndMax provable with SMT prep. macro + Z3. At the moment, most of the branches close but two subgoals are left open (probably because of bsum).
Type of pull request
Ensuring quality
Additional information and contact(s)
Some implementation details and considerations:
\notFreeIndoes not count as a varcond however. This is not a problem here, since all the term schema variables are bound variables after translation.TermSVandFormulaSV. We relaxed that forVariableSVnow (it worked out of the box with the same code after removing the check), since that is needed to translate taclets containing binders.ModularSMTLib2Translatorthere is a list of prefixes. However, it is probably incomplete at the moment.This was done during the 3rd HacKeYthon. Thanks also to @BookWood7th!
The contributions within this pull request are licensed under GPLv2 (only) for inclusion in KeY.