diff options
author | Clark Barrett <barrett@cs.nyu.edu> | 2012-06-12 18:32:42 +0000 |
---|---|---|
committer | Clark Barrett <barrett@cs.nyu.edu> | 2012-06-12 18:32:42 +0000 |
commit | 706e3058a2a685a6849b2290f80167b74aded0be (patch) | |
tree | 407c4b40a8f74adfee045f1a6cf6c578fbd960cd /src/theory/bv/theory_bv.cpp | |
parent | 0659b7c7b50e49cbea1728f90f7ff04598f01eac (diff) |
Changed bitvector theory rewriter so that equalities always get rewritten to
equalities or true or false
Diffstat (limited to 'src/theory/bv/theory_bv.cpp')
-rw-r--r-- | src/theory/bv/theory_bv.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/theory/bv/theory_bv.cpp b/src/theory/bv/theory_bv.cpp index 208ffba6c..811600ad4 100644 --- a/src/theory/bv/theory_bv.cpp +++ b/src/theory/bv/theory_bv.cpp @@ -21,6 +21,7 @@ #include "theory/bv/theory_bv_utils.h" #include "theory/valuation.h" #include "theory/bv/bitblaster.h" +#include "theory/bv/theory_bv_rewrite_rules_normalization.h" using namespace CVC4; using namespace CVC4::theory; @@ -189,6 +190,16 @@ Theory::PPAssertStatus TheoryBV::ppAssert(TNode in, SubstitutionMap& outSubstitu } +Node TheoryBV::ppRewrite(TNode t) +{ + if (RewriteRule<BitwiseEq>::applies(t)) { + Node result = RewriteRule<BitwiseEq>::run<false>(t); + return Rewriter::rewrite(result); + } + return t; +} + + bool TheoryBV::storePropagation(TNode literal, SubTheory subtheory) { Debug("bitvector::propagate") << indent() << "TheoryBV::storePropagation(" << literal << ", " << subtheory << ")" << std::endl; |