You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SMT lemmas are held in a lookup table separate from the sort and function declarations. The lookup is by SymbolName, and returns lemmas that (transitively) may relate to the given symbol
this PR only This lookup table only considers symbols with smt-lib (called opaque symbols). Symbols with smt-hook are left out because no lemmas should be necessary for those symbols (the solver should know all valuable lemmas about its built-in operations)
When checking predicates or computing a model, only those lemmas are added which relate to an opaque symbol used in one of the predicates
This is hopefully reducing load on the SMT solver to enable solving problems that came up in engagement proofs and led to timeouts.
Do we have a test merged into Kontrol or KEVM which demonstrates where this causes a performance improvement? We should definitely have that, especially if it is good for a client engagement.
Do we have a test merged into Kontrol or KEVM which demonstrates where this causes a performance improvement? We should definitely have that, especially if it is good for a client engagement.
Completely agree, especially since we see that slowdown in the sum-to-n. I changed the algorithm for @PetarMax who will hopefully be able to extract some tests from our recent engagement where he saw speed-up with this.
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
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.
Related: #4034
Builds upon prior PR in #4048
Booster SMT bindings change as follows:
SymbolName, and returns lemmas that (transitively) may relate to the given symbolsmt-lib(called opaque symbols). Symbols withsmt-hookare left out because no lemmas should be necessary for those symbols (the solver should know all valuable lemmas about its built-in operations)This is hopefully reducing load on the SMT solver to enable solving problems that came up in engagement proofs and led to timeouts.