* theory "tree" rewriting implemented and works
authorMorgan Deters <mdeters@gmail.com>
Wed, 30 Jun 2010 11:12:14 +0000 (11:12 +0000)
committerMorgan Deters <mdeters@gmail.com>
Wed, 30 Jun 2010 11:12:14 +0000 (11:12 +0000)
commit4375b60d5df794b2c6193f3892185ea181a0748d
treed346f9dc6bde42c3def6e0aac3b2711418e3d491
parent4206a75e7a1635d04bb69084404a75670e164b62
* theory "tree" rewriting implemented and works

* added TheoryArith::preRewrite() to test and demonstrate
  the use of pre-rewriting.

* array types and type checking now supported

* array type checking now supported

* theoryOf() dispatching properly to arrays now

* theories now required to implement a (simple) identify()
  function that returns a string identifying them for
  debugging/user output purposes

* added "builtin" theory to hold all built-in kinds and their
  type rules and rewriting (currently only exploding distinct)

* fixed production build failure (regarding NodeSetDepth)

* removed an errant "using namespace std" in util/bitvector.h
  (and made associated trivial fixes elsewhere)

* fixes to make unexpected exceptions more verbose in debug builds

* fixes to make multiple, cascading assertion fails simpler

* minor other fixes to comments etc.
59 files changed:
src/expr/Makefile.am
src/expr/builtin_kinds [deleted file]
src/expr/builtin_type_rules.h [deleted file]
src/expr/expr_manager_template.cpp
src/expr/expr_manager_template.h
src/expr/expr_template.cpp
src/expr/expr_template.h
src/expr/metakind_template.h
src/expr/mkmetakind
src/expr/node.cpp
src/expr/node.h
src/expr/node_builder.h
src/expr/node_manager.cpp
src/expr/node_manager.h
src/expr/type.cpp
src/expr/type.h
src/expr/type_node.cpp
src/expr/type_node.h
src/main/getopt.cpp
src/main/util.cpp
src/parser/antlr_input.h
src/parser/smt/Smt.g
src/parser/smt2/Smt2.g
src/prop/sat.cpp
src/theory/Makefile.am
src/theory/arith/tableau.h
src/theory/arith/theory_arith.cpp
src/theory/arith/theory_arith.h
src/theory/arith/theory_arith_type_rules.h
src/theory/arrays/Makefile.am
src/theory/arrays/kinds
src/theory/arrays/theory_arrays.h
src/theory/arrays/theory_arrays_type_rules.h [new file with mode: 0644]
src/theory/booleans/theory_bool.h
src/theory/builtin/Makefile [new file with mode: 0644]
src/theory/builtin/Makefile.am [new file with mode: 0644]
src/theory/builtin/kinds [new file with mode: 0644]
src/theory/builtin/theory_builtin.cpp [new file with mode: 0644]
src/theory/builtin/theory_builtin.h [new file with mode: 0644]
src/theory/builtin/theory_builtin_type_rules.h [new file with mode: 0644]
src/theory/bv/kinds
src/theory/bv/theory_bv.h
src/theory/bv/theory_bv_type_rules.h
src/theory/mktheoryof
src/theory/theory.h
src/theory/theory_engine.cpp
src/theory/theory_engine.h
src/theory/theory_test_utils.h
src/theory/uf/theory_uf.h
src/theory/uf/theory_uf_type_rules.h
src/util/Assert.h
src/util/Makefile.am
src/util/array.h [new file with mode: 0644]
src/util/bitvector.h
src/util/triple.h [new file with mode: 0644]
test/regress/regress0/distinct.smt
test/unit/expr/attribute_white.h
test/unit/theory/theory_arith_white.h
test/unit/theory/theory_black.h