[SMTChecker] Use unified way with SMTLIB interface for calling all solvers
This is an initial draft for removing specialized solver interfaces (Z3, CVC4) and use only SMTLIB interface for communicating with all solvers.
Things to resolve
- [x] Check tests results, some changes are suspicious
- [ ] Pull Z3's resource limit to some constexpr field (common for SMTLIB and CHCSmtLib interfaces)
- [x] What is the proper way to enable SMT callback in test framework?
- [ ] Check proper distinction between available solvers (testing presence of executable on the PATH) and requested solvers (from command line)
- [ ] Enable multiple solvers in CHC engine
- [x] Fix (or remove) use of SMT in
libyul/optimiser/ReasoningBasedSimplifier - [ ] Fix (or remove) use of two-phase SMT solving method (most likely can be removed)
- [x] Change SMT callback to query the solvers thorugh a pipe instead of a temporary file (?)
There was an error when running chk_coding_style for commit 56a4220263deec83dc27f83ee0a0e7b62be54877:
Error: Trailing whitespace found:
test/cmdlineTests/model_checker_print_query_bmc/args:1:--model-checker-engine bmc --model-checker-print-query --model-checker-solvers z3
Please check that your changes are working as intended.
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
Note, so we remeber about this:
- currently
--model-checker-print-querycmdline param requiressmtlib2solver, so with current changes we'll have to clarify that in changelog
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
This pull request was closed due to a lack of activity for 7 days after it was stale.