Preparations for eliminating arithmetic subtyping (#7637)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 17 Nov 2021 19:07:14 +0000 (13:07 -0600)
committerGitHub <noreply@github.com>
Wed, 17 Nov 2021 19:07:14 +0000 (19:07 +0000)
commitd43b252d1c4588c1662811bfe7d7352823aae447
tree06a9cac3300ef686e944fbef1520e4c372823bc6
parentb203bed15b9b907ea23422417fb0aa4773830483
Preparations for eliminating arithmetic subtyping (#7637)

Adds TypeNode::isArithmetic, NodeManager::mkConstReal and NodeManager::mkConstInt.

The first method (for now) is equivalent to TypeNode::isReal, and the latter 2 are equivalent to NodeManager::mkConst(CONST_RATIONAL, ...).

This furthermore distinguishes all uses of isReal: all that intend to be isArithmetic are changed in this PR. Redundant uses of isReal() || isInteger() are merged to isArithmetic().

Due to the above, there are no behavior changes in this PR.
32 files changed:
src/expr/node_manager.cpp
src/expr/node_manager.h
src/expr/type_node.cpp
src/expr/type_node.h
src/preprocessing/passes/learned_rewrite.cpp
src/printer/smt2/smt2_printer.cpp
src/proof/alethe/alethe_nosubtype_node_converter.cpp
src/theory/arith/arith_ite_utils.cpp
src/theory/arith/arith_msum.cpp
src/theory/arith/arith_msum.h
src/theory/arith/arith_poly_norm.cpp
src/theory/arith/kinds
src/theory/arith/nl/ext/proof_checker.cpp
src/theory/arith/nl/nl_model.cpp
src/theory/arith/pp_rewrite_eq.cpp
src/theory/arith/theory_arith_private.cpp
src/theory/arith/theory_arith_type_rules.cpp
src/theory/arith/theory_arith_type_rules.h
src/theory/arrays/theory_arrays_rewriter.cpp
src/theory/arrays/theory_arrays_type_rules.cpp
src/theory/quantifiers/cegqi/ceg_arith_instantiator.cpp
src/theory/quantifiers/cegqi/ceg_instantiator.cpp
src/theory/quantifiers/ematching/inst_match_generator.cpp
src/theory/quantifiers/ematching/pattern_term_selector.cpp
src/theory/quantifiers/ematching/relational_match_generator.cpp
src/theory/quantifiers/ematching/trigger_term_info.cpp
src/theory/quantifiers/extended_rewrite.cpp
src/theory/quantifiers/quantifiers_attributes.cpp
src/theory/quantifiers/quantifiers_rewriter.cpp
src/theory/quantifiers/relevant_domain.cpp
src/theory/quantifiers/sygus/sygus_grammar_cons.cpp
src/theory/quantifiers/term_util.cpp