option bitvectorDivByZeroConst --bv-div-zero-const bool :default false
always return -1 on division by zero
+expert-option bvExtractArithRewrite --bv-extract-arith bool :default false :read-write
+ enable rewrite pushing extract [i:0] over arithmetic operations (can blow up)
+
expert-option bvAbstraction --bv-abstraction bool :default false :read-write
mcm benchmark abstraction
**/
#include "theory/theory.h"
+#include "theory/bv/options.h"
#include "theory/bv/theory_bv_rewriter.h"
#include "theory/bv/theory_bv_rewrite_rules.h"
#include "theory/bv/theory_bv_rewrite_rules_core.h"
return RewriteResponse(REWRITE_AGAIN_FULL, resultNode);
}
- // if (RewriteRule<ExtractArith>::applies(node)) {
- // resultNode = RewriteRule<ExtractArith>::run<false>(node);
- // return RewriteResponse(REWRITE_AGAIN_FULL, resultNode);
- // }
+ if (options::bvExtractArithRewrite()) {
+ if (RewriteRule<ExtractArith>::applies(node)) {
+ resultNode = RewriteRule<ExtractArith>::run<false>(node);
+ return RewriteResponse(REWRITE_AGAIN_FULL, resultNode);
+ }
+ }
resultNode = LinearRewriteStrategy