expert-option bvIntroducePow2 --bv-intro-pow2 bool :default false
introduce bitvector powers of two as a preprocessing pass
+option bvLazyRewriteExtf --bv-lazy-rewrite-extf bool :default true :read-write
+ lazily rewrite extended functions like bv2nat and int2bv
+
endmodule
Trace("smt") << "enabling eager bit-vector explanations " << endl;
options::bvEagerExplanations.set(true);
}
+
+ if( !options::bitvectorEqualitySolver() ){
+ Trace("smt") << "disabling bvLazyRewriteExtf since equality solver is disabled" << endl;
+ options::bvLazyRewriteExtf.set(false);
+ }
// Turn on arith rewrite equalities only for pure arithmetic
if(! options::arithRewriteEq.wasSetByUser()) {
RewriteResponse TheoryBVRewriter::RewriteBVToNat(TNode node, bool prerewrite) {
//do not use lazy rewrite strategy if equality solver is disabled
- if( node[0].isConst() || !options::bitvectorEqualitySolver() ){
+ if( node[0].isConst() || !options::bvLazyRewriteExtf() ){
Node resultNode = LinearRewriteStrategy
< RewriteRule<BVToNatEliminate>
>::apply(node);
RewriteResponse TheoryBVRewriter::RewriteIntToBV(TNode node, bool prerewrite) {
//do not use lazy rewrite strategy if equality solver is disabled
- if( node[0].isConst() || !options::bitvectorEqualitySolver() ){
+ if( node[0].isConst() || !options::bvLazyRewriteExtf() ){
Node resultNode = LinearRewriteStrategy
< RewriteRule<IntToBVEliminate>
>::apply(node);