Initial refactor of rewrite rules, make theory_rewriterules empty theory. Push kinds...
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Thu, 20 Feb 2014 15:45:46 +0000 (09:45 -0600)
committerAndrew Reynolds <andrew.j.reynolds@gmail.com>
Tue, 11 Mar 2014 16:29:45 +0000 (11:29 -0500)
commit38d149261763e5f2f65abb21c2b647f2befa7807
tree51c3019eff61c7f3702f3dc888fb88d3a714f68a
parent3ed865aa12a94e935038d70b130701045b84a8b8
Initial refactor of rewrite rules, make theory_rewriterules empty theory.  Push kinds to quantifiers/kinds, rewrite rewrite rules in rewriter.

Fix rewrite rule attribute, refactor QCF, instantiation engine does not register rewrite rules, minor clean up.

QCF is now functional backend to rewrite rules. Support boolean variables in QCF.  Change check-model to ignore rewrite rules.  Incorporate some fixes from master.

Move rewrite of rewrite rules from rewriter to preprocessor, attribute becomes pattern.

Minor fixes to QCF/rewrite engine, removes RE on last call approach.  Add option for one inst per round in RE.

Merging rewrite rules into master, check-model current fails on 3 FMF regressions.

Fix check-model issue, a line of code was omitted during merge.
39 files changed:
src/Makefile.am
src/smt/smt_engine.cpp
src/theory/arith/theory_arith_private.cpp
src/theory/quantifiers/bounded_integers.cpp
src/theory/quantifiers/candidate_generator.cpp
src/theory/quantifiers/first_order_model.cpp
src/theory/quantifiers/first_order_reasoning.cpp
src/theory/quantifiers/first_order_reasoning.h
src/theory/quantifiers/full_model_check.cpp
src/theory/quantifiers/inst_gen.cpp
src/theory/quantifiers/inst_match_generator.cpp
src/theory/quantifiers/inst_strategy_e_matching.cpp
src/theory/quantifiers/instantiation_engine.cpp
src/theory/quantifiers/kinds
src/theory/quantifiers/model_builder.cpp
src/theory/quantifiers/options
src/theory/quantifiers/options_handlers.h
src/theory/quantifiers/qinterval_builder.cpp
src/theory/quantifiers/quant_conflict_find.cpp
src/theory/quantifiers/quant_conflict_find.h
src/theory/quantifiers/quantifiers_rewriter.cpp
src/theory/quantifiers/quantifiers_rewriter.h
src/theory/quantifiers/relevant_domain.cpp
src/theory/quantifiers/rewrite_engine.cpp
src/theory/quantifiers/rewrite_engine.h
src/theory/quantifiers/symmetry_breaking.cpp
src/theory/quantifiers/term_database.cpp
src/theory/quantifiers/term_database.h
src/theory/quantifiers/theory_quantifiers_type_rules.h
src/theory/quantifiers_engine.cpp
src/theory/quantifiers_engine.h
src/theory/rewriterules/kinds
src/theory/rewriterules/theory_rewriterules.cpp
src/theory/rewriterules/theory_rewriterules.h
src/theory/rewriterules/theory_rewriterules_type_rules.h
src/theory/theory_engine.cpp
test/regress/regress0/push-pop/bug326.smt2
test/regress/regress0/rewriterules/Makefile.am
test/regress/regress0/rewriterules/simulate_rewriting.smt2