return;
}
- if (Theory::fullEffort(e)) {
- Trace("bitvector-fulleffort") << "TheoryBV::fullEffort \n";
- printFacts( Trace("bitvector-fulleffort") );
- }
-
while (!done()) {
TNode fact = get().assertion;
- checkForLemma(fact);
+ // checkForLemma(fact);
for (unsigned i = 0; i < d_subtheories.size(); ++i) {
d_subtheories[i]->assertFact(fact);
}
}
-// template <>
-// bool RewriteRule<SleEliminate>::applies(TNode node) {
-// return (node.getKind() == kind::BITVECTOR_SLE);
-// }
-
-// template <>
-// Node RewriteRule<SleEliminate>::apply(TNode node) {
-// Debug("bv-rewrite") << "RewriteRule<SleEliminate>(" << node << ")" << std::endl;
-
-// unsigned size = utils::getSize(node[0]);
-// Node pow_two = utils::mkConst(BitVector(size, Integer(1).multiplyByPow2(size - 1)));
-// Node a = utils::mkNode(kind::BITVECTOR_PLUS, node[0], pow_two);
-// Node b = utils::mkNode(kind::BITVECTOR_PLUS, node[1], pow_two);
-
-// return utils::mkNode(kind::BITVECTOR_ULE, a, b);
-
-// }
-
template <>
bool RewriteRule<SleEliminate>::applies(TNode node) {
return (node.getKind() == kind::BITVECTOR_SLE);
RewriteRule<UleMax>,
RewriteRule<ZeroUle>,
RewriteRule<UleZero>,
- RewriteRule<UleSelf>,
- RewriteRule<UleEliminate>
+ RewriteRule<UleSelf>//,
+ // RewriteRule<UleEliminate>
>::apply(node);
return RewriteResponse(resultNode == node ? REWRITE_DONE : REWRITE_AGAIN, resultNode);
}
RewriteResponse TheoryBVRewriter::RewriteSle(TNode node, bool preregister){
Node resultNode = LinearRewriteStrategy
- < RewriteRule <EvalSle>,
- RewriteRule <SleEliminate>
+ < RewriteRule <EvalSle>//,
+ // RewriteRule <SleEliminate>
>::apply(node);
return RewriteResponse(resultNode == node? REWRITE_DONE : REWRITE_AGAIN, resultNode);
}
* Notifies the engine of all the theories used.
*/
bool done(TNode node);
+
};