Eliminate Boolean term conversion. Generalizes removeITE pass to remove Boolean terms...
authorajreynol <andrew.j.reynolds@gmail.com>
Thu, 2 Mar 2017 20:45:21 +0000 (14:45 -0600)
committerajreynol <andrew.j.reynolds@gmail.com>
Thu, 2 Mar 2017 20:45:21 +0000 (14:45 -0600)
commit1f4b954a2cc7667a56a3007fa75c125fba93ed23
treeea8734e89aa5fba170781c7148d3fd886c597d4e
parent21b0cedd7dadd96e5d256885e3b65a926a7e4a81
Eliminate Boolean term conversion. Generalizes removeITE pass to remove Boolean terms, treats distinguished BOOLEAN_TERM_VARIABLE kind as theory literal. Fixes bugs 597, 604, 651, 652, 691, 694. Add regressions.
130 files changed:
examples/nra-translate/smt2toisat.cpp
examples/nra-translate/smt2tomathematica.cpp
examples/nra-translate/smt2toqepcad.cpp
examples/nra-translate/smt2toredlog.cpp
src/compat/cvc3_compat.cpp
src/decision/justification_heuristic.cpp
src/expr/expr_template.cpp
src/expr/node.h
src/expr/node_manager.cpp
src/expr/node_manager.h
src/options/boolean_term_conversion_mode.cpp
src/options/boolean_term_conversion_mode.h
src/options/booleans_options
src/options/expr_options
src/options/options_handler.cpp
src/options/options_handler.h
src/parser/cvc/Cvc.g
src/parser/smt1/Smt1.g
src/parser/smt1/smt1.cpp
src/parser/smt2/Smt2.g
src/parser/smt2/smt2.cpp
src/parser/tptp/Tptp.g
src/parser/tptp/tptp.cpp
src/printer/cvc/cvc_printer.cpp
src/printer/smt2/smt2_printer.cpp
src/proof/arith_proof.cpp
src/proof/array_proof.cpp
src/proof/bitvector_proof.cpp
src/proof/cnf_proof.cpp
src/proof/proof_utils.cpp
src/proof/proof_utils.h
src/proof/theory_proof.cpp
src/proof/uf_proof.cpp
src/prop/cnf_stream.cpp
src/smt/boolean_terms.cpp
src/smt/boolean_terms.h
src/smt/ite_removal.cpp
src/smt/ite_removal.h
src/smt/model_postprocessor.cpp
src/smt/model_postprocessor.h
src/smt/smt_engine.cpp
src/theory/arith/congruence_manager.cpp
src/theory/arrays/theory_arrays.cpp
src/theory/arrays/theory_arrays.h
src/theory/arrays/theory_arrays_rewriter.h
src/theory/booleans/circuit_propagator.cpp
src/theory/booleans/kinds
src/theory/booleans/theory_bool.cpp
src/theory/booleans/theory_bool.h
src/theory/booleans/theory_bool_rewriter.cpp
src/theory/builtin/theory_builtin_rewriter.cpp
src/theory/builtin/theory_builtin_type_rules.h
src/theory/bv/aig_bitblaster.cpp
src/theory/bv/bitblast_utils.h
src/theory/bv/bv_subtheory_algebraic.cpp
src/theory/bv/bv_to_bool.cpp
src/theory/bv/eager_bitblaster.cpp
src/theory/bv/lazy_bitblaster.cpp
src/theory/bv/theory_bv_rewrite_rules.h
src/theory/datatypes/datatypes_rewriter.h
src/theory/datatypes/datatypes_sygus.cpp
src/theory/datatypes/theory_datatypes.cpp
src/theory/ite_utilities.cpp
src/theory/quantifiers/alpha_equivalence.cpp
src/theory/quantifiers/bounded_integers.cpp
src/theory/quantifiers/candidate_generator.cpp
src/theory/quantifiers/ce_guided_instantiation.cpp
src/theory/quantifiers/ce_guided_single_inv.cpp
src/theory/quantifiers/ce_guided_single_inv_sol.cpp
src/theory/quantifiers/ceg_instantiator.cpp
src/theory/quantifiers/first_order_model.cpp
src/theory/quantifiers/fun_def_process.cpp
src/theory/quantifiers/inst_match_generator.cpp
src/theory/quantifiers/inst_propagator.cpp
src/theory/quantifiers/inst_strategy_cbqi.cpp
src/theory/quantifiers/inst_strategy_e_matching.cpp
src/theory/quantifiers/macros.cpp
src/theory/quantifiers/model_builder.cpp
src/theory/quantifiers/quant_conflict_find.cpp
src/theory/quantifiers/quant_equality_engine.cpp
src/theory/quantifiers/quant_util.cpp
src/theory/quantifiers/quantifiers_rewriter.cpp
src/theory/quantifiers/rewrite_engine.cpp
src/theory/quantifiers/term_database.cpp
src/theory/quantifiers/term_database.h
src/theory/quantifiers/trigger.cpp
src/theory/quantifiers_engine.cpp
src/theory/rewriter.cpp
src/theory/sep/theory_sep.cpp
src/theory/sep/theory_sep_rewriter.cpp
src/theory/sets/theory_sets_private.cpp
src/theory/sets/theory_sets_rels.cpp
src/theory/sets/theory_sets_rewriter.cpp
src/theory/sort_inference.cpp
src/theory/strings/theory_strings.cpp
src/theory/strings/theory_strings_preprocess.cpp
src/theory/theory.cpp
src/theory/theory_engine.cpp
src/theory/theory_engine.h
src/theory/uf/equality_engine.cpp
src/theory/uf/equality_engine.h
src/theory/uf/kinds
src/theory/uf/symmetry_breaker.cpp
src/theory/uf/theory_uf.cpp
src/theory/uf/theory_uf.h
src/theory/uf/theory_uf_rewriter.h
src/theory/uf/theory_uf_strong_solver.cpp
src/theory/unconstrained_simplifier.cpp
test/regress/regress0/Makefile.am
test/regress/regress0/arrays/Makefile.am
test/regress/regress0/arrays/bool-array.smt2 [new file with mode: 0644]
test/regress/regress0/bt-test-00.smt2 [new file with mode: 0644]
test/regress/regress0/bt-test-01.smt2 [new file with mode: 0644]
test/regress/regress0/bug217.smt2
test/regress/regress0/datatypes/Makefile.am
test/regress/regress0/datatypes/bug597-rbt.smt2 [new file with mode: 0644]
test/regress/regress0/datatypes/bug604.smt2 [new file with mode: 0644]
test/regress/regress0/datatypes/example-dailler-min.smt2 [new file with mode: 0644]
test/regress/regress0/fmf/Makefile.am
test/regress/regress0/fmf/bug651.smt2 [new file with mode: 0644]
test/regress/regress0/fmf/bug652.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/Makefile.am
test/regress/regress0/push-pop/bug691.smt2 [new file with mode: 0644]
test/regress/regress0/push-pop/bug694-Unapply1.scala-0.smt2 [new file with mode: 0644]
test/regress/regress0/quantifiers/small-bug1-fixpoint-3.smt2
test/regress/regress0/uf/Makefile.am
test/regress/regress0/uf/bool-pred-nested.smt2 [new file with mode: 0644]
test/unit/expr/node_black.h
test/unit/prop/cnf_stream_white.h
test/unit/util/boolean_simplification_black.h