Make valuation class more robust to null underlying TheoryEngine. (#4864)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Sun, 9 Aug 2020 22:36:22 +0000 (17:36 -0500)
committerGitHub <noreply@github.com>
Sun, 9 Aug 2020 22:36:22 +0000 (17:36 -0500)
commit33b96c656515f9634ec97b021da8da5dee2b9bcd
treedcfb186b6bfadf2824e2b22b2f6ebb7f1fcc5cb6
parent28f5438df1e5ba87aab60552658aa09b79c35ba2
Make valuation class more robust to null underlying TheoryEngine. (#4864)

In some use cases (unit tests, old proofs infrastructure), we use a Theory with no associated TheoryEngine. This PR makes the Valuation class more robust to this case.

This includes making the "unevaluated kinds" a no-op in this case (this is necessary for Theory::finishInit with no TheoryEngine) and adding some assertions to cases that the Theory should never call without TheoryEngine.

This is required for a new policy for dynamically configuring equality engine infrastructure in Theory.
src/theory/arith/theory_arith.cpp
src/theory/quantifiers/theory_quantifiers.cpp
src/theory/sets/theory_sets.cpp
src/theory/strings/theory_strings.cpp
src/theory/uf/theory_uf.cpp
src/theory/valuation.cpp
src/theory/valuation.h