# finish 9min
finishwith --full-saturate-quant
;;
-UFBV)
+BV|UFBV)
# many problems in UFBV are essentially BV
- trywith 300 --full-saturate-quant
- trywith 300 --finite-model-find
- finishwith --cbqi-all --full-saturate-quant
+ trywith 30 --full-saturate-quant
+ trywith 30 --finite-model-find
+ finishwith --full-saturate-quant --decision=internal
;;
-BV)
- trywith 300 --finite-model-find
- finishwith --cbqi-all --full-saturate-quant
+LIA|LRA)
+ trywith 30 --full-saturate-quant
+ trywith 300 --full-saturate-quant --cbqi-midpoint
+ trywith 300 --full-saturate-quant --cbqi-nested-qe
+ finishwith --full-saturate-quant --cbqi-nested-qe --decision=internal
;;
-LIA|LRA|NIA|NRA)
+NIA|NRA)
trywith 30 --full-saturate-quant
- trywith 300 --full-saturate-quant --cbqi-min-bounds
- trywith 300 --full-saturate-quant --decision=internal
- trywith 1800 --full-saturate-quant --cbqi-nested-qe
- finishwith --full-saturate-quant --cbqi-midpoint
+ trywith 300 --full-saturate-quant --nl-ext
+ trywith 300 --full-saturate-quant --cbqi-nested-qe
+ finishwith --full-saturate-quant --cbqi-nested-qe --decision=internal
;;
QF_AUFBV)
trywith 600
}
//counterexample-guided instantiation for non-sygus
// enable if any possible quantifiers with arithmetic, datatypes or bitvectors
- if( ( d_logic.isQuantified() && ( d_logic.isTheoryEnabled(THEORY_ARITH) || d_logic.isTheoryEnabled(THEORY_DATATYPES) || d_logic.isTheoryEnabled(THEORY_BV) ) ) ||
- options::cbqiAll() ){
+ if( d_logic.isQuantified() &&
+ ( ( options::decisionMode()!=decision::DECISION_STRATEGY_INTERNAL &&
+ ( d_logic.isTheoryEnabled(THEORY_ARITH) || d_logic.isTheoryEnabled(THEORY_DATATYPES) || d_logic.isTheoryEnabled(THEORY_BV) ) ) ||
+ options::cbqiAll() ) ){
if( !options::cbqi.wasSetByUser() ){
options::cbqi.set( true );
}
if( options::qcfMode.wasSetByUser() || options::qcfTConstraint() ){
options::quantConflictFind.set( true );
}
- if( options::cbqiNestedQE() ){
- //only sound with prenex = disj_normal or normal
+ if( options::cbqi() &&
+ ( options::cbqiNestedQE() || options::decisionMode()==decision::DECISION_STRATEGY_INTERNAL ) ){
+ //only complete with prenex = disj_normal or normal
if( options::prenexQuant()<=quantifiers::PRENEX_QUANT_DISJ_NORMAL ){
options::prenexQuant.set( quantifiers::PRENEX_QUANT_DISJ_NORMAL );
}
+ }
+ if( options::cbqiNestedQE() ){
options::prenexQuantUser.set( true );
if( !options::preSkolemQuant.wasSetByUser() ){
options::preSkolemQuant.set( true );
-; COMMAND-LINE: --no-check-proofs --no-check-unsat-cores
+; COMMAND-LINE: --rewrite-divk --no-check-proofs --no-check-unsat-cores
; EXPECT: sat
(set-logic ALL_SUPPORTED)
(set-info :status sat)
+; COMMAND-LINE: --rewrite-divk
+; EXPECT: sat
(set-logic ALL_SUPPORTED)
(set-info :status sat)
-; COMMAND-LINE: --fmf-fun --no-check-models
+; COMMAND-LINE: --fmf-fun --no-check-models --rewrite-divk
; EXPECT: sat
(set-logic UFLIA)
(set-info :status sat)
-; COMMAND-LINE: --fmf-fun --no-check-models
+; COMMAND-LINE: --fmf-fun --no-check-models --rewrite-divk
; EXPECT: sat
(set-logic UFLIA)
(set-info :status sat)
quaternion_ds1_symm_0428.fof.smt2 \
bug749-rounding.smt2 \
RNDPRE_4_1-dd-nqe.smt2 \
- mix-complete-strat.smt2
+ mix-complete-strat.smt2 \
+ cbqi-sdlx-fixpoint-3-dd.smt2
# regression can be solved with --finite-model-find --fmf-inst-engine
-; COMMAND-LINE: --cbqi-recurse
+; COMMAND-LINE: --no-check-models
; EXPECT: sat
(set-logic LRA)
(declare-fun y1 () Real)
-; COMMAND-LINE: --quant-anti-skolem
+; COMMAND-LINE: --cbqi --quant-anti-skolem
; EXPECT: unsat
(set-logic ALL_SUPPORTED)
(set-info :status unsat)
+; COMMAND-LINE: --cbqi
+; EXPECT: unsat
(set-logic UFNIRA)
(set-info :status unsat)
(assert (forall ((X Int)) (= X 12) ))
-; COMMAND-LINE: --dt-rewrite-error-sel
+; COMMAND-LINE: --cbqi --dt-rewrite-error-sel
; EXPECT: unsat
(set-logic ALL_SUPPORTED)
(declare-datatypes () ((List (cons (head Int) (tail List)) (nil))))
--- /dev/null
+; COMMAND-LINE: --cbqi --decision=internal
+; EXPECT: unsat
+(set-logic LIA)
+(set-info :status unsat)
+
+(assert (or
+(forall ((H Int) (G Int)) (= (= G 0) (= H 0)))
+
+(forall ((C Int) (D Int) (E Int)) (or
+(= (= D 0) (= C 0))
+(and
+(not (forall ((G Int)) (= (= E 0) (= G 0))))
+(not (forall ((A Int))
+ (not (= (ite (= A 0) 0 1) (ite (= C 0) 0 2)))
+))
+)))
+))
+
+(check-sat)
+; COMMAND-LINE: --no-check-models
+; EXPECT: sat
(set-logic LRA)
(set-info :status sat)
(declare-fun c () Real)
(assert (forall ((x Real)) (or (<= x 0) (>= x (+ c 3)))))
-(check-sat)
\ No newline at end of file
+(check-sat)
-(set-logic ALL_SUPPORTED)
+(set-logic LIRA)
(set-info :status unsat)
(assert (forall ((x Int) (y Int) (a Real) (z Int)) (or (> x (+ a (* (/ 2 3) y) (* (/ 4 5) z))) (< x (+ 10 (* 3 a) (* (/ 2 5) y) (* (/ 4 7) z))))))
-(check-sat)
\ No newline at end of file
+(check-sat)
-; COMMAND-LINE: --finite-model-find
+; COMMAND-LINE: --cbqi --finite-model-find --no-check-models
; EXPECT: sat
(set-logic UFLIA)
(set-info :status sat)
-(set-logic ALL_SUPPORTED)
+; COMMAND-LINE: --no-check-models
+; EXPECT: sat
+(set-logic LIRA)
(set-info :status sat)
(assert (forall ((x Real)) (exists ((y Int)) (and (>= y x) (< y (+ x 1))))))
(check-sat)
+; COMMAND-LINE: --no-check-models
+; EXPECT: sat
(set-logic LIA)
(set-info :status sat)
(declare-fun W_S1_V5 () Bool)
+; COMMAND-LINE: --cbqi --no-check-models
+; EXPECT: sat
(set-logic ALL_SUPPORTED)
(set-info :status sat)
(declare-datatypes () ((nat (Suc (pred nat)) (zero))))
-; COMMAND-LINE: -mi
+; COMMAND-LINE: --cbqi -mi --no-check-models
; EXPECT: sat
; EXPECT: unsat