Basic integration of arith::InferenceManager (#4999)
authorGereon Kremer <gereon.kremer@cs.rwth-aachen.de>
Thu, 3 Sep 2020 14:27:56 +0000 (16:27 +0200)
committerGitHub <noreply@github.com>
Thu, 3 Sep 2020 14:27:56 +0000 (16:27 +0200)
commit58733b382a4a956c051d06e7318afa1deed612da
treee41944879de5e7f1a06b1994731c9957d65acd3d
parent337f8b791943e9b6b9a234f4f5422cf173342dd9
Basic integration of arith::InferenceManager (#4999)

This PR adds a first basic integration of the arith::InferenceManager into the arithmetic theory and the nonlinear extension in particular.
While the lemma collection mechanism (in the nonlinear extension) remains unchanged, the lemmas are ultimately not directly pushed to the output channel but instead added to the inference manager. Additionally, we no longer use the cache within the nonlinear extension but instead rely on the inference manager.
This PR is based on #4960.
18 files changed:
src/CMakeLists.txt
src/theory/arith/arith_lemma.h
src/theory/arith/inference_id.cpp [new file with mode: 0644]
src/theory/arith/inference_id.h [new file with mode: 0644]
src/theory/arith/inference_manager.cpp
src/theory/arith/inference_manager.h
src/theory/arith/nl/cad_solver.cpp
src/theory/arith/nl/iand_solver.cpp
src/theory/arith/nl/inference.cpp [deleted file]
src/theory/arith/nl/inference.h [deleted file]
src/theory/arith/nl/nl_lemma_utils.h
src/theory/arith/nl/nl_solver.cpp
src/theory/arith/nl/nonlinear_extension.cpp
src/theory/arith/nl/nonlinear_extension.h
src/theory/arith/nl/stats.h
src/theory/arith/nl/transcendental_solver.cpp
src/theory/arith/theory_arith.cpp
src/theory/arith/theory_arith.h