Improve nonlinear solver (#7787)
authorGereon Kremer <gkremer@stanford.edu>
Mon, 13 Dec 2021 17:09:21 +0000 (09:09 -0800)
committerGitHub <noreply@github.com>
Mon, 13 Dec 2021 17:09:21 +0000 (17:09 +0000)
commitcb7c3b3575facae1ef9fbc433adfdf7260b379cf
tree00fea8bf9ac41754545a87648970f2665b8554f3
parentad885db118e388687be7f657ddc943e74a0a9601
Improve nonlinear solver (#7787)

This PR does two things:

we remove splitting on shared values
we add variable elimination for the cad-based solver, exploiting equalities present in the input.
17 files changed:
src/CMakeLists.txt
src/options/arith_options.toml
src/smt/set_defaults.cpp
src/theory/arith/nl/cad/cdcac.cpp
src/theory/arith/nl/cad/cdcac.h
src/theory/arith/nl/cad/lazard_evaluation.cpp
src/theory/arith/nl/cad/lazard_evaluation.h
src/theory/arith/nl/cad_solver.cpp
src/theory/arith/nl/cad_solver.h
src/theory/arith/nl/equality_substitution.cpp [new file with mode: 0644]
src/theory/arith/nl/equality_substitution.h [new file with mode: 0644]
src/theory/arith/nl/nonlinear_extension.cpp
src/theory/arith/nl/strategy.cpp
src/theory/substitutions.cpp
src/theory/substitutions.h
test/regress/regress0/arith/issue5219-conflict-rewrite.smt2
test/regress/regress1/nl/cos1-tc.smt2