-
Notifications
You must be signed in to change notification settings - Fork 42
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
Dynamic prelude #4034
Comments
Would you be able to provide a bug report as a starting point for addressing this issue? |
Actually, I think we can put this on hold for now. I have a way of handling it by replacing the |
Precompute several relations from the definition's SMT components
Iterative algorithm to select lemmas, functions, and sorts to declare:For checkPredicates, the input is the definition, a ground truth (path condition) and a predicate.
The last step should not require any loop back to 2. 🤞 Related booster code is in |
As a first (and probably sufficient?) step, the SMT lemmas in the definition according to which functions are actually used by the predicates in question. |
I've had an idea:
💥 The prelude should not be fixed. It should be reset dynamically, removing all uninterpreted function symbols (and associated SMT lemmas) that are not in the ground truth plus the predicates to be checked. 💥
What do we lose? Forall-quantified statements that we know are difficult for the solver to handle.
What do we gain? SATs and UNSATs instead of unknowns.
Why am I thinking of this - because I am running some new (potental engagement) tests and I am getting a real
Unknown
from Z3, and the constraints containmodInt
because that is what the code uses. When the smt-lemmais present, Z3 really returns
Unknown
, no matter how large I set the timeout, when it’s removed I get an instant SAT/UNSAT.This means that that modInt in the SMT lemma is 🪄 soMehOw 🪄 interacting with the solver, it’s trying to define
chop
as a function and failing, butchop
is not relevant to this query and there is no need for it to be there.The text was updated successfully, but these errors were encountered: