Reorganize calls to quantifiers engine from SmtEngine layer (#5828)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Thu, 28 Jan 2021 21:58:17 +0000 (15:58 -0600)
committerGitHub <noreply@github.com>
Thu, 28 Jan 2021 21:58:17 +0000 (15:58 -0600)
commit145b99d771e182fba70402398702ed12e3303682
tree677cc444dd38af7354aa83eefad2b0ed695cf7f3
parent2f4bae4b4ffe6e913925f3d8f2c857a01aeea3bd
Reorganize calls to quantifiers engine from SmtEngine layer (#5828)

This reorganizes calls to QuantifiersEngine from SmtEngine. Our policy has changed recently that the SmtEngine layer is allowed to make calls directly to QuantifiersEngine, which eliminates the need for TheoryEngine to have forwarding calls. This PR makes this policy more consistent.

This also makes quantifier-specific calls more safe by throwing modal exceptions in the cases where quantifiers are present.

Marking "major" since we currently segfault when e.g. dumping instantiations in non-quantified logics. This PR makes it so that we throw a modal exception.
src/smt/smt_engine.cpp
src/smt/smt_engine.h
src/smt/smt_solver.cpp
src/smt/smt_solver.h
src/smt/sygus_solver.cpp
src/smt/sygus_solver.h
src/theory/theory_engine.cpp
src/theory/theory_engine.h