Improve theory combination in the presence of real algebraic numbers (#7883)
authorGereon Kremer <gkremer@stanford.edu>
Thu, 6 Jan 2022 21:09:10 +0000 (13:09 -0800)
committerGitHub <noreply@github.com>
Thu, 6 Jan 2022 21:09:10 +0000 (21:09 +0000)
commit868a62d550966065f8afdfc5b39715ca6c06314a
tree2b66c1d96a3c96369af6947c611542f777693c29
parent35ea6f4cb9b3915d1720b668e98236d453c1d682
Improve theory combination in the presence of real algebraic numbers (#7883)

This PR changes how we handle real algebraic numbers in theory combination and model construction.
The goal is to improve getEqualityStatus() and produce proper models more often.
We now use a RAN-aware evaluator for getEqualityStatus() and change the way how the nonlinear extension finalizes its model.
src/CMakeLists.txt
src/theory/arith/arith_evaluator.cpp [new file with mode: 0644]
src/theory/arith/arith_evaluator.h [new file with mode: 0644]
src/theory/arith/nl/cad_solver.cpp
src/theory/arith/nl/cad_solver.h
src/theory/arith/nl/nonlinear_extension.cpp
src/theory/arith/nl/nonlinear_extension.h
src/theory/arith/theory_arith.cpp
test/regress/CMakeLists.txt
test/regress/regress0/nl/combined-uf.smt2 [new file with mode: 0644]