Standardize the interface for SMT engine subsolvers (#3836)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Tue, 3 Mar 2020 15:18:59 +0000 (09:18 -0600)
committerGitHub <noreply@github.com>
Tue, 3 Mar 2020 15:18:59 +0000 (09:18 -0600)
commit0cd812af4a6db43a7d6c2c95fff7e58f86e90a78
treeab35d8c8dd7ee7c7c8ba085d42ef834fe17e2dbd
parent1d44edf91762b837adf3db5ed40af9383e883b28
Standardize the interface for SMT engine subsolvers (#3836)

This standardizes the interface for using SMT engines as subsolvers in various approaches. More refactoring is possible, but this is an initial cut at cleaning things up.

This will make it easy to accommodate new feature request for SyGuS (timeouts for calls to verification steps).

Notice this also required adding a missing function (mkGroundTerm/isWellFounded for functions) which was caught after standardizing due to an optimization (don't create SmtEngines to check satisfiability of constant Booleans).
src/CMakeLists.txt
src/theory/builtin/kinds
src/theory/builtin/theory_builtin_type_rules.h
src/theory/quantifiers/expr_miner.cpp
src/theory/quantifiers/expr_miner.h
src/theory/quantifiers/sygus/cegis_core_connective.cpp
src/theory/quantifiers/sygus/sygus_repair_const.cpp
src/theory/quantifiers/sygus/synth_conjecture.cpp
src/theory/quantifiers/sygus/synth_engine.cpp
src/theory/smt_engine_subsolver.cpp [new file with mode: 0644]
src/theory/smt_engine_subsolver.h [new file with mode: 0644]