summaryrefslogtreecommitdiff
path: root/test/regress/regress1/decision
diff options
context:
space:
mode:
Diffstat (limited to 'test/regress/regress1/decision')
-rw-r--r--test/regress/regress1/decision/Makefile.am8
-rw-r--r--test/regress/regress1/decision/quant-Arrays_Q1-noinfer.smt273
-rw-r--r--test/regress/regress1/decision/quant-Arrays_Q1-noinfer.smt2.expect2
-rw-r--r--test/regress/regress1/decision/quant-symmetric_unsat_7.smt234
-rw-r--r--test/regress/regress1/decision/quant-symmetric_unsat_7.smt2.expect2
5 files changed, 117 insertions, 2 deletions
diff --git a/test/regress/regress1/decision/Makefile.am b/test/regress/regress1/decision/Makefile.am
index 8317536c6..102c99e01 100644
--- a/test/regress/regress1/decision/Makefile.am
+++ b/test/regress/regress1/decision/Makefile.am
@@ -17,9 +17,13 @@ endif
# If a test shouldn't be run in e.g. competition mode,
# put it below in "TESTS +="
TESTS = \
- error3.smt
+ error3.smt \
+ quant-symmetric_unsat_7.smt2 \
+ quant-Arrays_Q1-noinfer.smt2
-EXTRA_DIST = $(TESTS)
+EXTRA_DIST = $(TESTS) \
+ quant-symmetric_unsat_7.smt2.expect \
+ quant-Arrays_Q1-noinfer.smt2.expect
# synonyms for "check" in this directory
.PHONY: regress regress1 test
diff --git a/test/regress/regress1/decision/quant-Arrays_Q1-noinfer.smt2 b/test/regress/regress1/decision/quant-Arrays_Q1-noinfer.smt2
new file mode 100644
index 000000000..3398f5f84
--- /dev/null
+++ b/test/regress/regress1/decision/quant-Arrays_Q1-noinfer.smt2
@@ -0,0 +1,73 @@
+(set-logic AUFLIA)
+(set-info :source |
+ Boogie/Spec# benchmarks.
+ This benchmark was translated by Michal Moskal.
+|)
+(set-info :smt-lib-version 2.0)
+(set-info :category "industrial")
+(set-info :status unsat)
+(declare-fun InRange (Int Int) Bool)
+(declare-fun o () Int)
+(declare-fun q () Int)
+(declare-fun int_18446744073709551615 () Int)
+(declare-fun Smt.false () Int)
+(declare-fun anyEqual (Int Int) Int)
+(declare-fun y () Int)
+(declare-fun select1 (Int Int) Int)
+(declare-fun select2 (Int Int Int) Int)
+(declare-fun CONCVARSYM (Int) Int)
+(declare-fun divides (Int Int) Int)
+(declare-fun intAtMost (Int Int) Int)
+(declare-fun subtypes (Int Int) Bool)
+(declare-fun store1 (Int Int Int) Int)
+(declare-fun store2 (Int Int Int Int) Int)
+(declare-fun B_0 () Int)
+(declare-fun B_1 () Int)
+(declare-fun intAtLeast (Int Int) Int)
+(declare-fun int_2147483647 () Int)
+(declare-fun boolOr (Int Int) Int)
+(declare-fun ReallyLastGeneratedExit_correct () Int)
+(declare-fun int_m9223372036854775808 () Int)
+(declare-fun Smt.true () Int)
+(declare-fun int_4294967295 () Int)
+(declare-fun start_correct () Int)
+(declare-fun B () Int)
+(declare-fun F () Int)
+(declare-fun G () Int)
+(declare-fun boolAnd (Int Int) Int)
+(declare-fun boolNot (Int) Int)
+(declare-fun k_0 () Int)
+(declare-fun intLess (Int Int) Int)
+(declare-fun intGreater (Int Int) Int)
+(declare-fun anyNeq (Int Int) Int)
+(declare-fun is (Int Int) Int)
+(declare-fun int_m2147483648 () Int)
+(declare-fun modulo (Int Int) Int)
+(declare-fun boolImplies (Int Int) Int)
+(declare-fun boolIff (Int Int) Int)
+(declare-fun int_9223372036854775807 () Int)
+(assert true)
+(assert true)
+(assert (forall ((?A Int) (?i Int) (?v Int)) (= (select1 (store1 ?A ?i ?v) ?i) ?v)))
+(assert (forall ((?A Int) (?i Int) (?j Int) (?v Int)) (=> (not (= ?i ?j)) (= (select1 (store1 ?A ?i ?v) ?j) (select1 ?A ?j)))))
+(assert (forall ((?A Int) (?o Int) (?f Int) (?v Int)) (= (select2 (store2 ?A ?o ?f ?v) ?o ?f) ?v)))
+(assert (forall ((?A Int) (?o Int) (?f Int) (?p Int) (?g Int) (?v Int)) (=> (not (= ?o ?p)) (= (select2 (store2 ?A ?o ?f ?v) ?p ?g) (select2 ?A ?p ?g)))))
+(assert (forall ((?A Int) (?o Int) (?f Int) (?p Int) (?g Int) (?v Int)) (=> (not (= ?f ?g)) (= (select2 (store2 ?A ?o ?f ?v) ?p ?g) (select2 ?A ?p ?g)))))
+(assert (forall ((?x Int) (?y Int)) (= (= (boolIff ?x ?y) Smt.true) (= (= ?x Smt.true) (= ?y Smt.true)))))
+(assert (forall ((?x Int) (?y Int)) (= (= (boolImplies ?x ?y) Smt.true) (=> (= ?x Smt.true) (= ?y Smt.true)))))
+(assert (forall ((?x Int) (?y Int)) (= (= (boolAnd ?x ?y) Smt.true) (and (= ?x Smt.true) (= ?y Smt.true)))))
+(assert (forall ((?x Int) (?y Int)) (= (= (boolOr ?x ?y) Smt.true) (or (= ?x Smt.true) (= ?y Smt.true)))))
+(assert (forall ((?x Int)) (! (= (= (boolNot ?x) Smt.true) (not (= ?x Smt.true))) :pattern ((boolNot ?x)) )))
+(assert (forall ((?x Int) (?y Int)) (= (= (anyEqual ?x ?y) Smt.true) (= ?x ?y))))
+(assert (forall ((?x Int) (?y Int)) (! (= (= (anyNeq ?x ?y) Smt.true) (not (= ?x ?y))) :pattern ((anyNeq ?x ?y)) )))
+(assert (forall ((?x Int) (?y Int)) (= (= (intLess ?x ?y) Smt.true) (< ?x ?y))))
+(assert (forall ((?x Int) (?y Int)) (= (= (intAtMost ?x ?y) Smt.true) (<= ?x ?y))))
+(assert (forall ((?x Int) (?y Int)) (= (= (intAtLeast ?x ?y) Smt.true) (>= ?x ?y))))
+(assert (forall ((?x Int) (?y Int)) (= (= (intGreater ?x ?y) Smt.true) (> ?x ?y))))
+(assert (distinct Smt.false Smt.true))
+(assert (forall ((?t Int)) (! (subtypes ?t ?t) :pattern ((subtypes ?t ?t)) )))
+(assert (forall ((?t Int) (?u Int) (?v Int)) (! (=> (and (subtypes ?t ?u) (subtypes ?u ?v)) (subtypes ?t ?v)) :pattern ((subtypes ?t ?u) (subtypes ?u ?v)) )))
+(assert (forall ((?t Int) (?u Int)) (! (=> (and (subtypes ?t ?u) (subtypes ?u ?t)) (= ?t ?u)) :pattern ((subtypes ?t ?u) (subtypes ?u ?t)) )))
+(assert (let ((?v_0 (forall ((?p Int) (?f Int)) (or (= (select2 B_1 ?p ?f) (select2 B ?p ?f)) (and (= ?p o) (= ?f F))))) (?v_1 (= ReallyLastGeneratedExit_correct Smt.true)) (?v_2 (= start_correct Smt.true))) (not (=> (=> (=> true (=> (= k_0 (select2 B q G)) (=> (= B_0 (store2 B o F (+ y (select2 B o F)))) (=> (= B_1 (store2 B_0 q G k_0)) (=> (=> (=> true (and ?v_0 (=> ?v_0 (=> true true)))) ?v_1) ?v_1))))) ?v_2) ?v_2))))
+(check-sat)
+(exit)
diff --git a/test/regress/regress1/decision/quant-Arrays_Q1-noinfer.smt2.expect b/test/regress/regress1/decision/quant-Arrays_Q1-noinfer.smt2.expect
new file mode 100644
index 000000000..7fd1d5a98
--- /dev/null
+++ b/test/regress/regress1/decision/quant-Arrays_Q1-noinfer.smt2.expect
@@ -0,0 +1,2 @@
+% COMMAND-LINE: --decision=justification
+% EXPECT: unsat
diff --git a/test/regress/regress1/decision/quant-symmetric_unsat_7.smt2 b/test/regress/regress1/decision/quant-symmetric_unsat_7.smt2
new file mode 100644
index 000000000..6acf4a3c6
--- /dev/null
+++ b/test/regress/regress1/decision/quant-symmetric_unsat_7.smt2
@@ -0,0 +1,34 @@
+(set-logic AUFLIRA)
+(set-info :source | Example extracted from Peter Baumgartner's talk at CADE-21: Logical Engineering with Instance-Based Methods.
+
+It was translated to SMT-LIB by Leonardo de Moura |)
+(set-info :smt-lib-version 2.0)
+(set-info :category "crafted")
+(set-info :status unsat)
+(declare-fun symmetric ((Array Int (Array Int Real)) Int) Bool)
+(declare-fun n () Int)
+(declare-fun a0 () (Array Int (Array Int Real)))
+(declare-fun e0 () Real)
+(declare-fun a1 () (Array Int (Array Int Real)))
+(declare-fun e1 () Real)
+(declare-fun a2 () (Array Int (Array Int Real)))
+(declare-fun e2 () Real)
+(declare-fun a3 () (Array Int (Array Int Real)))
+(declare-fun e3 () Real)
+(declare-fun a4 () (Array Int (Array Int Real)))
+(declare-fun e4 () Real)
+(declare-fun a5 () (Array Int (Array Int Real)))
+(declare-fun e5 () Real)
+(declare-fun a6 () (Array Int (Array Int Real)))
+(declare-fun e6 () Real)
+(assert (forall ((?a (Array Int (Array Int Real))) (?n Int)) (= (symmetric ?a ?n) (forall ((?i Int) (?j Int)) (=> (and (<= 1 ?i) (<= ?i ?n) (<= 1 ?j) (<= ?j ?n)) (= (select (select ?a ?i) ?j) (select (select ?a ?j) ?i)))))))
+(assert (symmetric a0 n))
+(assert (= a1 (store a0 0 (store (select a0 0) 0 e0))))
+(assert (= a2 (store a1 1 (store (select a1 1) 1 e1))))
+(assert (= a3 (store a2 2 (store (select a2 2) 2 e2))))
+(assert (= a4 (store a3 3 (store (select a3 3) 3 e3))))
+(assert (= a5 (store a4 4 (store (select a4 4) 4 e4))))
+(assert (= a6 (store a5 5 (store (select a5 5) 5 e5))))
+(assert (not (symmetric a6 n)))
+(check-sat)
+(exit)
diff --git a/test/regress/regress1/decision/quant-symmetric_unsat_7.smt2.expect b/test/regress/regress1/decision/quant-symmetric_unsat_7.smt2.expect
new file mode 100644
index 000000000..7fd1d5a98
--- /dev/null
+++ b/test/regress/regress1/decision/quant-symmetric_unsat_7.smt2.expect
@@ -0,0 +1,2 @@
+% COMMAND-LINE: --decision=justification
+% EXPECT: unsat
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback