Replace Expr-level datatype with Node-level DType (#4875)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 26 Aug 2020 00:04:39 +0000 (19:04 -0500)
committerGitHub <noreply@github.com>
Wed, 26 Aug 2020 00:04:39 +0000 (19:04 -0500)
commit34eac85599875517732d53a5cc1acd3ab60479d1
treeebfa9e493b32aba67d85d6d0bb7a6b468fac5fd4
parentc5eb77b96cd67b8d80ee8901a3f0b5ae7d54aab2
Replace Expr-level datatype with Node-level DType (#4875)

This PR makes two simultaneous changes:

The new API uses Node-level DType instead of Expr-level Datatype. This required converting 2 of the last remaining calls in the parser that used Expr to use the new API.
Internally constructed datatypes (e.g. for sygus) use Node-level DType instead of Expr-level Datatype. Note this required moving a block of code for handling a corner case of sygus from Datatype -> DType.
This PR removes :

ExprManger::mkDatatypeType.
The Expr-level datatype itself. This PR removes all references to its include file.
It also updates one remaining unit test from Expr -> Node.

This PR will enable further removal of other datatype-specific things in the Expr layer.
45 files changed:
src/CMakeLists.txt
src/api/cvc4cpp.cpp
src/api/cvc4cpp.h
src/expr/CMakeLists.txt
src/expr/datatype.cpp [deleted file]
src/expr/datatype.h [deleted file]
src/expr/dtype.cpp
src/expr/dtype.h
src/expr/expr_manager_template.cpp
src/expr/expr_manager_template.h
src/expr/node_manager.cpp
src/expr/node_manager.h
src/expr/sygus_datatype.cpp
src/expr/sygus_datatype.h
src/expr/type.cpp
src/expr/type.h
src/expr/type_node.h
src/include/cvc4.h
src/parser/smt2/Smt2.g
src/parser/smt2/smt2.cpp
src/preprocessing/passes/synth_rew_rules.cpp
src/printer/cvc/cvc_printer.cpp
src/smt/command.h
src/smt/listeners.cpp
src/theory/datatypes/kinds
src/theory/datatypes/sygus_datatype_utils.cpp
src/theory/datatypes/sygus_extension.h
src/theory/datatypes/theory_datatypes.h
src/theory/quantifiers/ematching/inst_match_generator.cpp
src/theory/quantifiers/skolemize.h
src/theory/quantifiers/sygus/cegis_core_connective.cpp
src/theory/quantifiers/sygus/cegis_unif.cpp
src/theory/quantifiers/sygus/sygus_abduct.cpp
src/theory/quantifiers/sygus/sygus_grammar_cons.cpp
src/theory/quantifiers/sygus/sygus_grammar_cons.h
src/theory/quantifiers/sygus/sygus_grammar_norm.cpp
src/theory/quantifiers/sygus/sygus_grammar_norm.h
src/theory/quantifiers/sygus/sygus_grammar_red.h
src/theory/quantifiers/sygus/sygus_interpol.cpp
src/theory/quantifiers/sygus/sygus_pbe.cpp
src/theory/quantifiers/sygus/sygus_process_conj.cpp
src/theory/quantifiers/sygus/synth_conjecture.cpp
src/theory/quantifiers/term_util.cpp
src/theory/sets/theory_sets_rels.cpp
test/unit/theory/type_enumerator_white.h