ExprManager em;
SmtEngine smt(&em);
+ // Optionally, set the logic. We need at least UF for equality predicate,
+ // integers (LIA) and sets (FS).
+ smt.setLogic("QF_UFLIAFS");
+
// Produce models
smt.setOption("produce-models", true);
++seen;
}
if(d_theories[THEORY_SETS]) {
- ss << "_SETS";
+ ss << "FS";
++seen;
}
arithNonLinear();
p += 4;
}
- if(!strncmp(p, "_SETS", 5)) {
+ if(!strncmp(p, "FS", 2)) {
enableTheory(THEORY_SETS);
- p += 5;
+ p += 2;
}
}
}
; COMMAND-LINE: --full-saturate-quant
; EXPECT: unsat
(set-option :print-success false)
-(set-logic AUFLIA_SETS)
+(set-logic AUFLIAFS)
(set-info :status unsat)
(declare-sort Loc 0)
(define-sort SetLoc () (Set Loc))
; EXPECT: sat
-(set-logic QF_UFLIA_SETS)
+(set-logic QF_UFLIAFS)
(set-info :status sat)
(declare-fun A () (Set Int))
(declare-fun C () (Set Int))
(set-info :smt-lib-version 2.0)
(set-info :category "random")
(set-info :status sat)
-(set-logic QF_UFLIA_SETS)
+(set-logic QF_UFLIAFS)
(define-sort Element () Int)
(declare-fun f0 ( Int) Int)
(declare-fun f1 ( (Set Element) (Set Element) (Set Element)) (Set Element))
(set-info :smt-lib-version 2.0)
(set-info :category "random")
(set-info :status sat)
-(set-logic QF_UFLIA_SETS)
+(set-logic QF_UFLIAFS)
(define-sort Element () Int)
(declare-fun f0 ( Int) Int)
(declare-fun f1 ( (Set Element)) (Set Element))
(set-info :smt-lib-version 2.0)
(set-info :category "random")
(set-info :status sat)
-(set-logic QF_UFLIA_SETS)
+(set-logic QF_UFLIAFS)
(define-sort Element () Int)
(declare-fun f0 ( Int Int Int) Int)
(declare-fun f1 ( (Set Element) (Set Element)) (Set Element))
(set-option :produce-models true)
-(set-logic QF_UFLIA_SETS)
+(set-logic QF_UFLIAFS)
(set-info :status sat)
(declare-fun X () (Set Int))
(assert (= X (insert 1 2 (singleton 3))))
(set-option :print-success false)
-(set-logic AUFLIA_SETS)
+(set-logic AUFLIAFS)
(set-info :status unsat)
(declare-sort Loc 0)
(define-sort SetLoc () (Set Loc))
(set-option :print-success false)
-(set-logic AUFLIA_SETS)
+(set-logic AUFLIAFS)
(set-info :status unsat)
(declare-sort Loc 0)
(define-sort SetLoc () (Set Loc))
; EXPECT: unsat
-(set-logic QF_UFLIA_SETS)
+(set-logic QF_UFLIAFS)
(set-info :status sat)
(declare-fun a () Int)
(declare-fun b () Int)
; demostrates core issue with UniqueZipper.hs.1030minimized.cvc4.smt2
; unlike original benchmark, this is unsat.
-(set-logic QF_UFLIA_SETS)
+(set-logic QF_UFLIAFS)
(declare-fun x () Int)
(declare-fun y () Int)
(declare-fun z () Int)
; demostrates core issue with UniqueZipper.hs.1030minimized.cvc4.smt2
; fails check-model, even though answer is correct
-(set-logic QF_UFLIA_SETS)
+(set-logic QF_UFLIAFS)
(declare-fun x () Int)
(declare-fun y () Int)
(declare-fun a () (Set Int))
(set-option :print-success false)
-(set-logic AUFLIA_SETS)
+(set-logic AUFLIAFS)
(set-info :status unsat)
(declare-sort Loc 0)
(define-sort SetLoc () (Set Loc))
; On a production build (as of 2014-05-16), takes several minutes
; to finish (2967466 decisions).
-(set-logic QF_BV_SETS)
+(set-logic QF_BVFS)
(set-info :status unsat)
(define-sort myset () (Set (Set (_ BitVec 1))))
; EXPECT: sat
; EXPECT: unsat
; EXIT: 0
-(set-logic QF_BV_SETS)
+(set-logic QF_BVFS)
(declare-fun S1 () (Set (_ BitVec 1)))
(declare-fun S2 () (Set (_ BitVec 1)))
(declare-fun S3 () (Set (_ BitVec 1)))
; EXPECT: sat
-(set-logic QF_UFLIA_SETS)
+(set-logic QF_UFLIAFS)
(set-info :status sat)
(declare-fun x () (Set Int))
(declare-fun y () (Set Int))
; EXPECT: sat
-(set-logic QF_UFLRA_SETS)
+(set-logic QF_UFLRAFS)
(set-info :status sat)
(declare-fun x () (Set Real))
(declare-fun y () (Set Real))
; EXPECT: sat
-(set-logic QF_UFBV_SETS)
+(set-logic QF_UFBVFS)
(set-info :status sat)
(declare-fun x () (Set (_ BitVec 2)))
(declare-fun y () (Set (_ BitVec 2)))
(set-info :smt-lib-version 2.0)
(set-info :category "random")
(set-info :status sat)
-(set-logic QF_UFLIA_SETS)
+(set-logic QF_UFLIAFS)
(define-sort Element () Int)
(declare-fun f0 ( Int Int Int) Int)
(declare-fun f1 ( (Set Element)) (Set Element))