Minor refactoring of subsolver initialization (#4731)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Tue, 14 Jul 2020 06:00:00 +0000 (01:00 -0500)
committerGitHub <noreply@github.com>
Tue, 14 Jul 2020 06:00:00 +0000 (23:00 -0700)
commit34043bdcd93860969cfd9e87c683340175c640b9
tree06028673de1dff5cc606cfa65ffeb8ca0ac5bf9b
parentd9c81008606b81fb8f6ef1d3e14fe2479c7efaa2
Minor refactoring of subsolver initialization (#4731)

This decouples asserting a formula with initialization (previously it was a complex process to assert a formula due to having to clone/export to a new ExprManager). Now it is trivial.

This commit fixes an unintended consequence of the previous complications. Previously, SmtEngine::setOption would be set after asserting formulas to an SmtEngine subsolver, which is technically incorrect, as options should be finalized before the first assert.

This is required for further cleaning up of options listeners.
src/preprocessing/passes/sygus_inference.cpp
src/theory/quantifiers/expr_miner.cpp
src/theory/quantifiers/sygus/ce_guided_single_inv.cpp
src/theory/quantifiers/sygus/sygus_repair_const.cpp
src/theory/smt_engine_subsolver.cpp
src/theory/smt_engine_subsolver.h