Remove spurious disabling of cbqi-all (#2368)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 24 Aug 2018 20:16:44 +0000 (15:16 -0500)
committerGitHub <noreply@github.com>
Fri, 24 Aug 2018 20:16:44 +0000 (15:16 -0500)
src/smt/smt_engine.cpp
test/regress/Makefile.tests
test/regress/regress1/quantifiers/nl-pow-trick.smt2 [new file with mode: 0644]

index c4492d3a19a621646f83c3b6137c0c4e263e9393..deafcc96c9d7dd28a88a6749ac5de4aaae3efa2c 100644 (file)
@@ -2026,7 +2026,6 @@ void SmtEngine::setDefaults() {
     }
     if (d_logic.isPure(THEORY_ARITH) || d_logic.isPure(THEORY_BV))
     {
-      options::cbqiAll.set( false );
       if( !options::quantConflictFind.wasSetByUser() ){
         options::quantConflictFind.set( false );
       }
index 6400411cb2361434d882f9dca7c77ef859d7d0e4..2922085cafd07bc4b9e356df17190eb7a22783a4 100644 (file)
@@ -1301,6 +1301,7 @@ REG1_TESTS = \
        regress1/quantifiers/model_6_1_bv.smt2 \
        regress1/quantifiers/mutualrec2.cvc \
        regress1/quantifiers/nested9_true-unreach-call.i_575.smt2 \
+       regress1/quantifiers/nl-pow-trick.smt2 \
        regress1/quantifiers/nra-interleave-inst.smt2 \
        regress1/quantifiers/opisavailable-12.smt2 \
        regress1/quantifiers/parametric-lists.smt2 \
diff --git a/test/regress/regress1/quantifiers/nl-pow-trick.smt2 b/test/regress/regress1/quantifiers/nl-pow-trick.smt2
new file mode 100644 (file)
index 0000000..a369fd9
--- /dev/null
@@ -0,0 +1,13 @@
+; COMMAND-LINE: --cbqi-all
+; EXPECT: unsat
+(set-logic NIA)
+(declare-fun a () Int)
+(declare-fun b () Int)
+(declare-fun c () Int)
+(define-fun s ((x Int)) Int (+ x 1))
+(define-fun seq ((a Int) (b Int) (k Int) (x Int)) Bool ( = x (mod (+ 1 (* b (+ 1 k))) a)))
+(define-fun power ((a Int) (b Int) (c Int)) Bool 
+(exists ((x Int) (y Int)) (and (seq x y 0 1) (seq x y b c) (forall ((k Int) (z Int)) (=> (and (< k b) (seq x y k z)) (seq x y (+ 1 k) (* a z))))))
+)
+(assert (power 2 3 8))
+(check-sat)