Make arith substitute its own utility (#8765)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 13 May 2022 23:07:49 +0000 (18:07 -0500)
committerGitHub <noreply@github.com>
Fri, 13 May 2022 23:07:49 +0000 (23:07 +0000)
commitc8b193f93369e042bf768d8ba567d6dc4ba01e7e
tree0c4db26f033dc051b62c15e452da18a139ca6ba3
parent2a397ba9a749839474b7fd209d909049a79f6bfc
Make arith substitute its own utility (#8765)

Arithmetic substitutions behave differently in two ways:
(1) they traverse only symbols belonging to arithmetic
(2) they allow mixing Int/Real
This makes ArithSubs derive from the more general Subs class with these two behavior changes.

This is one of the last remaining non-trivial steps towards for eliminating TypeNode::isSubtypeOf.
src/CMakeLists.txt
src/expr/subs.cpp
src/expr/subs.h
src/theory/arith/arith_subs.cpp [new file with mode: 0644]
src/theory/arith/arith_subs.h [new file with mode: 0644]
src/theory/arith/arith_utilities.cpp
src/theory/arith/arith_utilities.h
src/theory/arith/nl/nl_model.cpp
src/theory/arith/nl/nl_model.h
src/theory/arith/nl/transcendental/transcendental_solver.cpp