-
Notifications
You must be signed in to change notification settings - Fork 236
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
A synchronous mode for SMT queries (+ tactic), plus a change to --split_queries
#2776
Conversation
Plus some refactoring of the discharging code.
a3e5a5f
to
eee4879
Compare
I've updated this PR and added a change to The rationale is that sometimes it's desirable to prevent the split+retry process from happening, and just be notified of failures earlier. Some refactoring of the discharging code is also present to ensure:
|
Also: - exposing {get,set}_vconfig - adding smt_sync' with explicit fuels
As discussed today I modified Differently from what was discussed today: I could have gone further and only have a single-shot |
--split_queries
This PR introduces a
solve_sync
hook into the SMT solver that can be used to attempt to discharge a query and check the result. It returns a boolean, and will not raise nor log errors if the query fails: it will simply returnfalse
.This is mostly useful for a new
smt_sync
tactic primitive that attempts to discharge a goal via the SMT solver, and fails (within the tactic framework) if the query failed.Marking this as a draft to get some opinions first. In particular:
smt_sync
tactic return a boolean too?do_solve_sync
would be good, in particular wrt theSplitQueryAndRetry
andInner_let_rec
exceptions (can the second one reach this function? maybe when the query itself contains an inner let rec, I suppose we can return false then?)