From: Abdalrhman Mohamed <32971963+abdoo8080@users.noreply.github.com> Date: Wed, 22 Apr 2020 12:06:24 +0000 (-0500) Subject: Convert V2.5 SMT regressions to V2.6. (#4319) X-Git-Tag: cvc5-1.0.0~3345 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=da73f99910a25fca342c0ba1d8ec19de6c3cefda;p=cvc5.git Convert V2.5 SMT regressions to V2.6. (#4319) This commit converts all v2.5 smt2 regressions to v2.6 (except for regress/regress0/lang_opts_2_5.smt2). --- diff --git a/test/regress/regress0/bug484.smt2 b/test/regress/regress0/bug484.smt2 index 87a8696b6..3b84b7aff 100644 --- a/test/regress/regress0/bug484.smt2 +++ b/test/regress/regress0/bug484.smt2 @@ -1,64 +1,63 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: sat ; Preamble -------------- (set-logic ALL) (set-info :status sat) -(declare-datatypes () ((UNIT (Unit)))) -(declare-datatypes () ((BOOL (Truth) (Falsity)))) +(declare-datatypes ((UNIT 0)) (((Unit)))) +(declare-datatypes ((BOOL 0)) (((Truth) (Falsity)))) ; Decls -------------- (declare-sort A 0) (declare-sort B 0) (declare-sort C 0) (declare-sort D 0) -(declare-datatypes () ((E (one) (two) (three)))) -(declare-datatypes () ((F (four) (five) (six)))) -(declare-datatypes () ((G (c_G (seven BOOL))))) +(declare-datatypes ((E 0)) (((one) (two) (three)))) +(declare-datatypes ((F 0)) (((four) (five) (six)))) +(declare-datatypes ((G 0)) (((c_G (seven BOOL))))) -(declare-datatypes () - ((H - (c_H - (foo1 BOOL) - (foo2 A) - (foo3 B) - (foo4 B) +(declare-datatypes ((H 0)) + (( + (c_H + (foo1 BOOL) + (foo2 A) + (foo3 B) + (foo4 B) (foo5 Int) ) )) ) -(declare-datatypes () - ((I - (c_I - (bar1 E) - (bar2 Int) - (bar3 Int) +(declare-datatypes ((I 0)) + (( + (c_I + (bar1 E) + (bar2 Int) + (bar3 Int) (bar4 A) ) )) ) -(declare-datatypes () - ((J - (c_J - (f1 BOOL) - (f2 Int) - (f3 Int) - (f4 Int) - (f5 I) - (f6 B) +(declare-datatypes ((J 0)) + (( + (c_J + (f1 BOOL) + (f2 Int) + (f3 Int) + (f4 Int) + (f5 I) + (f6 B) (f7 C) ) )) ) -(declare-datatypes () - ((K - (c_K - (g1 BOOL) - (g2 F) - (g3 A) +(declare-datatypes ((K 0)) + (( + (c_K + (g1 BOOL) + (g2 F) + (g3 A) (g4 BOOL) ) )) @@ -76,39 +75,39 @@ ; Asserts -------------- -(assert - (not - (= - (ite - (=> +(assert + (not + (= + (ite + (=> (= y (g3 (select e1 x))) - (=> - (= s2 - (store - s1 - y + (=> + (= s2 + (store + s1 + y (let ((z (select s1 y))) - (c_J - (f1 z) - (f2 z) - (- (f3 (select s1 y)) 1) + (c_J + (f1 z) + (f2 z) + (- (f3 (select s1 y)) 1) (f4 z) - (f5 z) - (f6 z) + (f5 z) + (f6 z) (f7 z) ) ) ) - ) + ) (forall ((s A)) (= (g3 (select e2 s)) s)) ) ) - Truth + Truth Falsity - ) + ) Truth ) ) ) - + (check-sat) diff --git a/test/regress/regress0/bug541.smt2 b/test/regress/regress0/bug541.smt2 index 771fbed4f..1847a9111 100644 --- a/test/regress/regress0/bug541.smt2 +++ b/test/regress/regress0/bug541.smt2 @@ -1,7 +1,6 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: unsat (set-logic ALL_SUPPORTED) -(declare-datatypes (T1 T2) ((Pair (mk-pair (first T1) (second T2))))) +(declare-datatypes ((Pair 2)) ((par (T1 T2) ((mk-pair (first T1) (second T2)))))) (assert (= (mk-pair 0.0 0.0) (mk-pair 1.5 2.5))) (check-sat) (exit) diff --git a/test/regress/regress0/datatypes/conqueue-dt-enum-iloop.smt2 b/test/regress/regress0/datatypes/conqueue-dt-enum-iloop.smt2 index 74b836b47..1c2f22275 100644 --- a/test/regress/regress0/datatypes/conqueue-dt-enum-iloop.smt2 +++ b/test/regress/regress0/datatypes/conqueue-dt-enum-iloop.smt2 @@ -1,4 +1,3 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: sat (set-logic ALL_SUPPORTED) (set-info :status sat) @@ -10,22 +9,22 @@ (declare-sort T!14 0) -(declare-datatypes () ( -(LazyConQ!5 - (Lazyarg1!5 (carry!37 Conc!6) (srear!9 LazyConQ!5)) - (Lazyarg2!5 (t!270 ConQ!6)) - (Lazyarg3!5 (carry!38 Conc!6) (t!271 ConQ!6)) - (Lazyarg4!5 (tree!19 Conc!6) (carry!39 Conc!6)) - (Lazyarg5!5 (tree!20 Conc!6) (carry!40 Conc!6)) - (PushLeft!5 (ys!22 Conc!6) (xs!60 LazyConQ!5)) - (PushLeftLazy!5 (ys!23 Conc!6) (xs!61 LazyConQ!5))) -(Conc!6 - (CC!5 (left!9 Conc!6) (right!9 Conc!6)) - (Empty!5) - (Single!5 (x!106 T!14))) -(ConQ!6 - (Spine!5 (head!10 Conc!6) (rear!5 LazyConQ!5)) - (Tip!5 (t!272 Conc!6))) +(declare-datatypes ((LazyConQ!5 0) (Conc!6 0) (ConQ!6 0)) ( +( + (Lazyarg1!5 (carry!37 Conc!6) (srear!9 LazyConQ!5)) + (Lazyarg2!5 (t!270 ConQ!6)) + (Lazyarg3!5 (carry!38 Conc!6) (t!271 ConQ!6)) + (Lazyarg4!5 (tree!19 Conc!6) (carry!39 Conc!6)) + (Lazyarg5!5 (tree!20 Conc!6) (carry!40 Conc!6)) + (PushLeft!5 (ys!22 Conc!6) (xs!60 LazyConQ!5)) + (PushLeftLazy!5 (ys!23 Conc!6) (xs!61 LazyConQ!5))) +( + (CC!5 (left!9 Conc!6) (right!9 Conc!6)) + (Empty!5) + (Single!5 (x!106 T!14))) +( + (Spine!5 (head!10 Conc!6) (rear!5 LazyConQ!5)) + (Tip!5 (t!272 Conc!6))) )) (declare-fun e!41 () LazyConQ!5) @@ -46,7 +45,7 @@ (assert (=> b!40 (= e!42 e!41))) -(assert (=> b!40 (= b!39 (is-Spine!5 (evalLazyConQ2!7 l!2))))) +(assert (=> b!40 (= b!39 ((_ is Spine!5) (evalLazyConQ2!7 l!2))))) (declare-fun b!41 () Bool) diff --git a/test/regress/regress0/datatypes/dt-param-card4-bool-sat.smt2 b/test/regress/regress0/datatypes/dt-param-card4-bool-sat.smt2 index 7a0fa30c7..abcff3ddb 100644 --- a/test/regress/regress0/datatypes/dt-param-card4-bool-sat.smt2 +++ b/test/regress/regress0/datatypes/dt-param-card4-bool-sat.smt2 @@ -1,8 +1,7 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: sat (set-logic QF_ALL_SUPPORTED) (set-info :status sat) -(declare-datatypes (T S) ( (Pair (pair (first T) (second S)) ) ) ) +(declare-datatypes ((Pair 2)) ((par (T S) ((pair (first T) (second S)))))) (declare-fun p1 () (Pair Bool Bool)) (declare-fun p2 () (Pair Bool Bool)) diff --git a/test/regress/regress0/datatypes/example-dailler-min.smt2 b/test/regress/regress0/datatypes/example-dailler-min.smt2 index 5702cb04b..b8e077c1d 100644 --- a/test/regress/regress0/datatypes/example-dailler-min.smt2 +++ b/test/regress/regress0/datatypes/example-dailler-min.smt2 @@ -1,8 +1,7 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: sat (set-logic ALL) (set-info :status sat) -(declare-datatypes () ((D (C (R Bool))))) +(declare-datatypes ((D 0)) (((C (R Bool))))) (declare-fun a () (Array Int D)) (declare-fun P ((Array Int D)) Bool) (assert (P a)) diff --git a/test/regress/regress0/datatypes/pair-real-bool.smt2 b/test/regress/regress0/datatypes/pair-real-bool.smt2 index a4d5ff0ec..c29eeb4e9 100644 --- a/test/regress/regress0/datatypes/pair-real-bool.smt2 +++ b/test/regress/regress0/datatypes/pair-real-bool.smt2 @@ -1,21 +1,20 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: sat ;(set-option :produce-models true) (set-logic QF_ALL_SUPPORTED) (set-info :status sat) -(declare-datatypes () ( - ( RealTree - ( Node - (left RealTree) - (elem Real) - (right RealTree)) +(declare-datatypes ((RealTree 0)) ( + ( + (Node + (left RealTree) + (elem Real) + (right RealTree)) (Leaf) ) )) -(declare-datatypes (T1 T2) ((Pair (mk-pair (first T1) (second T2))))) +(declare-datatypes ((Pair 2)) ((par (T1 T2) ((mk-pair (first T1) (second T2)))))) -( declare-fun SumeAndPositiveTree ( RealTree ) (Pair Real Bool) ) +(declare-fun SumeAndPositiveTree (RealTree) (Pair Real Bool)) (declare-fun l1 () RealTree) (declare-fun l2 () RealTree) diff --git a/test/regress/regress0/fmf/sc_bad_model_1221.smt2 b/test/regress/regress0/fmf/sc_bad_model_1221.smt2 index 68a4399ca..d951e6c50 100644 --- a/test/regress/regress0/fmf/sc_bad_model_1221.smt2 +++ b/test/regress/regress0/fmf/sc_bad_model_1221.smt2 @@ -1,33 +1,33 @@ -; COMMAND-LINE: --finite-model-find --lang=smt2.5 +; COMMAND-LINE: --finite-model-find ; EXPECT: sat - (set-logic ALL_SUPPORTED) - (set-info :status sat) - (declare-sort a 0) - (declare-fun __nun_card_witness_0 () a) - (declare-datatypes () ((prod (Pair (_select_Pair_0 a) (_select_Pair_1 a))))) - (declare-sort G_snd 0) - (declare-fun __nun_card_witness_1 () G_snd) - (declare-fun snd (prod) a) - (declare-fun proj_G_snd_0 (G_snd) prod) - (assert - (forall ((a/32 G_snd)) - (and - (= (snd (proj_G_snd_0 a/32)) (_select_Pair_1 (proj_G_snd_0 a/32))) - true))) - (declare-fun p () prod) - (declare-datatypes () ((pd (Pd (_select_Pd_0 prod))))) - (declare-sort G_fs 0) - (declare-fun __nun_card_witness_2 () G_fs) - (declare-fun fs (pd) a) - (declare-fun proj_G_fs_0 (G_fs) pd) - (assert - (forall ((a/33 G_fs)) - (and - (= (fs (proj_G_fs_0 a/33)) - (_select_Pair_0 (_select_Pd_0 (proj_G_fs_0 a/33)))) - true))) - (assert - (and (not (= (fs (Pd p)) (snd p))) - (exists ((a/34 G_fs)) (= (Pd p) (proj_G_fs_0 a/34))) - (exists ((a/35 G_snd)) (= p (proj_G_snd_0 a/35))))) - (check-sat) +(set-logic ALL_SUPPORTED) +(set-info :status sat) +(declare-sort a 0) +(declare-fun __nun_card_witness_0 () a) +(declare-datatypes ((prod 0)) (((Pair (_select_Pair_0 a) (_select_Pair_1 a))))) +(declare-sort G_snd 0) +(declare-fun __nun_card_witness_1 () G_snd) +(declare-fun snd (prod) a) +(declare-fun proj_G_snd_0 (G_snd) prod) +(assert + (forall ((a/32 G_snd)) + (and + (= (snd (proj_G_snd_0 a/32)) (_select_Pair_1 (proj_G_snd_0 a/32))) + true))) +(declare-fun p () prod) +(declare-datatypes ((pd 0)) (((Pd (_select_Pd_0 prod))))) +(declare-sort G_fs 0) +(declare-fun __nun_card_witness_2 () G_fs) +(declare-fun fs (pd) a) +(declare-fun proj_G_fs_0 (G_fs) pd) +(assert + (forall ((a/33 G_fs)) + (and + (= (fs (proj_G_fs_0 a/33)) + (_select_Pair_0 (_select_Pd_0 (proj_G_fs_0 a/33)))) + true))) +(assert + (and (not (= (fs (Pd p)) (snd p))) + (exists ((a/34 G_fs)) (= (Pd p) (proj_G_fs_0 a/34))) + (exists ((a/35 G_snd)) (= p (proj_G_snd_0 a/35))))) +(check-sat) diff --git a/test/regress/regress0/issue1063-overloading-dt-cons.smt2 b/test/regress/regress0/issue1063-overloading-dt-cons.smt2 index f8ca2a9e5..a77fcdd22 100644 --- a/test/regress/regress0/issue1063-overloading-dt-cons.smt2 +++ b/test/regress/regress0/issue1063-overloading-dt-cons.smt2 @@ -1,14 +1,13 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: sat (set-logic ALL) (set-info :status sat) -(declare-datatypes () ((Enum0 (In_Air) (On_Ground) (None)))) -(declare-datatypes () ((Enum1 (True) (False) (None)))) +(declare-datatypes ((Enum0 0)) (((In_Air) (On_Ground) (None)))) +(declare-datatypes ((Enum1 0)) (((True) (False) (None)))) (declare-fun var_0 (Int) Enum0) (declare-fun var_1 (Int) Enum1) (assert (= (var_0 0) (as None Enum0))) (assert (= (var_1 1) (as None Enum1))) -(assert (not (is-In_Air (var_0 0)))) +(assert (not ((_ is In_Air) (var_0 0)))) (declare-fun var_2 () Enum1) -(assert (is-None var_2)) +(assert ((_ is (as None Enum1)) var_2)) (check-sat) diff --git a/test/regress/regress0/issue1063-overloading-dt-fun.smt2 b/test/regress/regress0/issue1063-overloading-dt-fun.smt2 index 9cae20647..f9c326114 100644 --- a/test/regress/regress0/issue1063-overloading-dt-fun.smt2 +++ b/test/regress/regress0/issue1063-overloading-dt-fun.smt2 @@ -1,8 +1,7 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: sat (set-logic ALL) (set-info :status sat) -(declare-datatypes () ((Enum (cons (val Int)) (On_Ground) (None)))) +(declare-datatypes ((Enum 0)) (((cons (val Int)) (On_Ground) (None)))) (declare-fun cons (Int Int) Int) (declare-fun cons (Enum) Bool) (declare-fun cons (Bool) Int) diff --git a/test/regress/regress0/issue1063-overloading-dt-sel.smt2 b/test/regress/regress0/issue1063-overloading-dt-sel.smt2 index b3316d373..390c9acad 100644 --- a/test/regress/regress0/issue1063-overloading-dt-sel.smt2 +++ b/test/regress/regress0/issue1063-overloading-dt-sel.smt2 @@ -1,9 +1,8 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: sat (set-logic ALL) (set-info :status sat) -(declare-datatypes () ((Enum0 (cons (data Int)) (None)))) -(declare-datatypes () ((Enum1 (cons (data Bool)) (None)))) +(declare-datatypes ((Enum0 0)) (((cons (data Int)) (None)))) +(declare-datatypes ((Enum1 0)) (((cons (data Bool)) (None)))) (declare-fun var_0 () Enum0) (declare-fun var_1 () Enum1) (assert (= (data var_0) 5)) diff --git a/test/regress/regress0/push-pop/bug654-dd.smt2 b/test/regress/regress0/push-pop/bug654-dd.smt2 index 82033e606..bd8419b57 100644 --- a/test/regress/regress0/push-pop/bug654-dd.smt2 +++ b/test/regress/regress0/push-pop/bug654-dd.smt2 @@ -1,8 +1,8 @@ -; COMMAND-LINE: --incremental --fmf-fun --strings-exp --lang=smt2.5 +; COMMAND-LINE: --incremental --fmf-fun --strings-exp (set-logic ALL_SUPPORTED) -(declare-datatypes () ( -(List_T_C (List_T_C$CNil_T_CustomerType) (ListTC (ListTC$head T_CustomerType) (ListTC$tail List_T_C))) -(T_CustomerType (T_CustomerType$C_T_CustomerType (T_CustomerType$C_T_CustomerType$a_CompanyName Int) (T_CustomerType$C_T_CustomerType$a_ContactName Int) (ID Int))) +(declare-datatypes ((List_T_C 0) (T_CustomerType 0)) ( +((List_T_C$CNil_T_CustomerType) (ListTC (ListTC$head T_CustomerType) (ListTC$tail List_T_C))) +((T_CustomerType$C_T_CustomerType (T_CustomerType$C_T_CustomerType$a_CompanyName Int) (T_CustomerType$C_T_CustomerType$a_ContactName Int) (ID Int))) )) (declare-fun f (List_T_C) Bool) (declare-fun tail_uf_1 (List_T_C) List_T_C) @@ -10,13 +10,13 @@ (declare-sort U 0) (declare-fun a (U) List_T_C) (declare-fun z (U) U) -(assert -(forall ((?i U)) -(= (f (a ?i)) (not (is-ListTC (a ?i))) +(assert +(forall ((?i U)) +(= (f (a ?i)) (not ((_ is ListTC) (a ?i))) ))) -(assert -(forall ((?i U)) -(= (a (z ?i)) (tail_uf_1 (a ?i)))) ) +(assert +(forall ((?i U)) +(= (a (z ?i)) (tail_uf_1 (a ?i)))) ) ; EXPECT: sat (push 1) (check-sat) diff --git a/test/regress/regress0/quantifiers/cbqi-lia-dt-simp.smt2 b/test/regress/regress0/quantifiers/cbqi-lia-dt-simp.smt2 index 7e58ea87c..a39aa4ef5 100644 --- a/test/regress/regress0/quantifiers/cbqi-lia-dt-simp.smt2 +++ b/test/regress/regress0/quantifiers/cbqi-lia-dt-simp.smt2 @@ -1,6 +1,6 @@ -; COMMAND-LINE: --cegqi --dt-rewrite-error-sel --lang=smt2.5 +; COMMAND-LINE: --cegqi --dt-rewrite-error-sel ; EXPECT: unsat (set-logic ALL_SUPPORTED) -(declare-datatypes () ((List (cons (head Int) (tail List)) (nil)))) +(declare-datatypes ((List 0)) (((cons (head Int) (tail List)) (nil)))) (assert (exists ((y Int)) (forall ((x List)) (not (= (head x) (+ y 7)))))) (check-sat) diff --git a/test/regress/regress0/quantifiers/rew-to-scala.smt2 b/test/regress/regress0/quantifiers/rew-to-scala.smt2 index 6c191d688..343458bee 100644 --- a/test/regress/regress0/quantifiers/rew-to-scala.smt2 +++ b/test/regress/regress0/quantifiers/rew-to-scala.smt2 @@ -1,15 +1,13 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: unsat (set-logic ALL_SUPPORTED) (set-info :status unsat) -(declare-datatypes () ((Formula!953 (And!954 (lhs!955 Formula!953) (rhs!956 Formula!953)) (Not!957 (f!958 Formula!953)) (Or!959 (lhs!960 Formula!953) (rhs!961 Formula!953)) (Variable!962 (id!963 (_ BitVec 32)))) -)) +(declare-datatypes ((Formula!953 0)) (((And!954 (lhs!955 Formula!953) (rhs!956 Formula!953)) (Not!957 (f!958 Formula!953)) (Or!959 (lhs!960 Formula!953) (rhs!961 Formula!953)) (Variable!962 (id!963 (_ BitVec 32)))))) (declare-fun error_value!964 () Bool) (declare-fun isNNF!208 (Formula!953) Bool) (declare-fun error_value!965 () Formula!953) (declare-fun nnf!206 (Formula!953) Formula!953) (declare-fun error_value!966 () Formula!953) -(assert (forall ((f!207 Formula!953)) (= (isNNF!208 f!207) (ite (is-And!954 f!207) (and (and (isNNF!208 (lhs!955 f!207)) (isNNF!208 (lhs!955 f!207))) (isNNF!208 (rhs!956 f!207))) (ite (is-Or!959 f!207) (and (and (isNNF!208 (lhs!960 f!207)) (isNNF!208 (lhs!960 f!207))) (isNNF!208 (rhs!961 f!207))) (ite (is-Not!957 f!207) false (ite (is-Variable!962 f!207) true error_value!964))))) )) -(assert (forall ((formula!205 Formula!953)) (= (nnf!206 formula!205) (ite (is-And!954 formula!205) (And!954 (nnf!206 (lhs!955 formula!205)) (nnf!206 (rhs!956 formula!205))) (ite (is-Or!959 formula!205) (Or!959 (nnf!206 (lhs!960 formula!205)) (nnf!206 (rhs!961 formula!205))) (ite (and (and (is-Not!957 formula!205) (is-Not!957 formula!205)) (is-And!954 (f!958 formula!205))) (Or!959 (nnf!206 (Not!957 (lhs!955 (f!958 formula!205)))) (nnf!206 (Not!957 (rhs!956 (f!958 formula!205))))) (ite (and (and (is-Not!957 formula!205) (is-Not!957 formula!205)) (is-Or!959 (f!958 formula!205))) (And!954 (nnf!206 (Not!957 (lhs!960 (f!958 formula!205)))) (nnf!206 (Not!957 (rhs!961 (f!958 formula!205))))) (ite (and (and (is-Not!957 formula!205) (is-Not!957 formula!205)) (is-Not!957 (f!958 formula!205))) (nnf!206 (f!958 (f!958 formula!205))) (ite (is-Not!957 formula!205) formula!205 (ite (is-Variable!962 formula!205) formula!205 error_value!965)))))))) )) -(assert (exists ((formula!205 Formula!953)) (not (=> (is-Variable!962 formula!205) (isNNF!208 (ite (is-And!954 formula!205) (And!954 (nnf!206 (lhs!955 formula!205)) (nnf!206 (rhs!956 formula!205))) (ite (is-Or!959 formula!205) (Or!959 (nnf!206 (lhs!960 formula!205)) (nnf!206 (rhs!961 formula!205))) (ite (and (and (is-Not!957 formula!205) (is-Not!957 formula!205)) (is-And!954 (f!958 formula!205))) (Or!959 (nnf!206 (Not!957 (lhs!955 (f!958 formula!205)))) (nnf!206 (Not!957 (rhs!956 (f!958 formula!205))))) (ite (and (and (is-Not!957 formula!205) (is-Not!957 formula!205)) (is-Or!959 (f!958 formula!205))) (And!954 (nnf!206 (Not!957 (lhs!960 (f!958 formula!205)))) (nnf!206 (Not!957 (rhs!961 (f!958 formula!205))))) (ite (and (and (is-Not!957 formula!205) (is-Not!957 formula!205)) (is-Not!957 (f!958 formula!205))) (nnf!206 (f!958 (f!958 formula!205))) (ite (is-Not!957 formula!205) formula!205 (ite (is-Variable!962 formula!205) formula!205 error_value!966)))))))))) )) +(assert (forall ((f!207 Formula!953)) (= (isNNF!208 f!207) (ite ((_ is And!954) f!207) (and (and (isNNF!208 (lhs!955 f!207)) (isNNF!208 (lhs!955 f!207))) (isNNF!208 (rhs!956 f!207))) (ite ((_ is Or!959) f!207) (and (and (isNNF!208 (lhs!960 f!207)) (isNNF!208 (lhs!960 f!207))) (isNNF!208 (rhs!961 f!207))) (ite ((_ is Not!957) f!207) false (ite ((_ is Variable!962) f!207) true error_value!964))))) )) +(assert (forall ((formula!205 Formula!953)) (= (nnf!206 formula!205) (ite ((_ is And!954) formula!205) (And!954 (nnf!206 (lhs!955 formula!205)) (nnf!206 (rhs!956 formula!205))) (ite ((_ is Or!959) formula!205) (Or!959 (nnf!206 (lhs!960 formula!205)) (nnf!206 (rhs!961 formula!205))) (ite (and (and ((_ is Not!957) formula!205) ((_ is Not!957) formula!205)) ((_ is And!954) (f!958 formula!205))) (Or!959 (nnf!206 (Not!957 (lhs!955 (f!958 formula!205)))) (nnf!206 (Not!957 (rhs!956 (f!958 formula!205))))) (ite (and (and ((_ is Not!957) formula!205) ((_ is Not!957) formula!205)) ((_ is Or!959) (f!958 formula!205))) (And!954 (nnf!206 (Not!957 (lhs!960 (f!958 formula!205)))) (nnf!206 (Not!957 (rhs!961 (f!958 formula!205))))) (ite (and (and ((_ is Not!957) formula!205) ((_ is Not!957) formula!205)) ((_ is Not!957) (f!958 formula!205))) (nnf!206 (f!958 (f!958 formula!205))) (ite ((_ is Not!957) formula!205) formula!205 (ite ((_ is Variable!962) formula!205) formula!205 error_value!965)))))))) )) +(assert (exists ((formula!205 Formula!953)) (not (=> ((_ is Variable!962) formula!205) (isNNF!208 (ite ((_ is And!954) formula!205) (And!954 (nnf!206 (lhs!955 formula!205)) (nnf!206 (rhs!956 formula!205))) (ite ((_ is Or!959) formula!205) (Or!959 (nnf!206 (lhs!960 formula!205)) (nnf!206 (rhs!961 formula!205))) (ite (and (and ((_ is Not!957) formula!205) ((_ is Not!957) formula!205)) ((_ is And!954) (f!958 formula!205))) (Or!959 (nnf!206 (Not!957 (lhs!955 (f!958 formula!205)))) (nnf!206 (Not!957 (rhs!956 (f!958 formula!205))))) (ite (and (and ((_ is Not!957) formula!205) ((_ is Not!957) formula!205)) ((_ is Or!959) (f!958 formula!205))) (And!954 (nnf!206 (Not!957 (lhs!960 (f!958 formula!205)))) (nnf!206 (Not!957 (rhs!961 (f!958 formula!205))))) (ite (and (and ((_ is Not!957) formula!205) ((_ is Not!957) formula!205)) ((_ is Not!957) (f!958 formula!205))) (nnf!206 (f!958 (f!958 formula!205))) (ite ((_ is Not!957) formula!205) formula!205 (ite ((_ is Variable!962) formula!205) formula!205 error_value!966)))))))))) )) (check-sat) diff --git a/test/regress/regress1/arith/bug716.0.smt2 b/test/regress/regress1/arith/bug716.0.smt2 index 2046f4911..dd2501bbb 100644 --- a/test/regress/regress1/arith/bug716.0.smt2 +++ b/test/regress/regress1/arith/bug716.0.smt2 @@ -1,4 +1,4 @@ -; COMMAND-LINE: --lang=smt2.5 +; COMMAND-LINE: --lang=smt2.6 ; SCRUBBER: sed -e 's/The fact in question: .*$/The fact in question: TERM/' -e 's/in a linear logic: .*$/in a linear logic: TERM/' ; EXPECT: (error "A non-linear fact was asserted to arithmetic in a linear logic. ; EXPECT: The fact in question: TERM @@ -15,23 +15,22 @@ (set-option :produce-models true) ;;; SMT-LIB2: integer arithmetic ;;; SMT-LIB2: real arithmetic -(declare-datatypes () ((tuple0 (Tuple0)))) +(declare-datatypes ((tuple0 0)) (((Tuple0)))) (declare-sort us_private 0) (declare-fun us_null_ext__ () us_private) (declare-sort us_type_of_heap 0) -(declare-datatypes () -((us_type_of_heap__ref - (mk___type_of_heap__ref (us_type_of_heap__content us_type_of_heap))))) +(declare-datatypes ((us_type_of_heap__ref 0)) + (((mk___type_of_heap__ref (us_type_of_heap__content us_type_of_heap))))) (declare-sort us_image 0) -(declare-datatypes () ((int__ref (mk_int__ref (int__content Int))))) -(declare-datatypes () ((bool__ref (mk_bool__ref (bool__content Bool))))) -(declare-datatypes () ((real__ref (mk_real__ref (real__content Real))))) -(declare-datatypes () -((us_private__ref (mk___private__ref (us_private__content us_private))))) +(declare-datatypes ((int__ref 0)) (((mk_int__ref (int__content Int))))) +(declare-datatypes ((bool__ref 0)) (((mk_bool__ref (bool__content Bool))))) +(declare-datatypes ((real__ref 0)) (((mk_real__ref (real__content Real))))) +(declare-datatypes ((us_private__ref 0)) + (((mk___private__ref (us_private__content us_private))))) (define-fun int__ref___projection ((a int__ref)) Int (int__content a)) (define-fun bool__ref___projection ((a bool__ref)) Bool (bool__content a)) @@ -97,8 +96,8 @@ (forall ((x Real) (n Int)) (=> (and (<= 0 n) (<= 1.0 x)) (<= 1.0 (power x n))))) -(declare-datatypes () -((mode (NearestTiesToEven) (ToZero) (Up) (Down) (NearestTiesToAway)))) +(declare-datatypes ((mode 0)) + (((NearestTiesToEven) (ToZero) (Up) (Down) (NearestTiesToAway)))) (declare-sort single 0) (declare-fun round (mode Real) Real) @@ -441,7 +440,7 @@ ;; range_axiom (assert (forall ((x float)) (in_range1 (to_real1 x)))) -(declare-datatypes () ((float__ref (mk_float__ref (float__content float))))) +(declare-datatypes ((float__ref 0)) (((mk_float__ref (float__content float))))) (define-fun float__ref___projection ((a float__ref)) float (float__content a)) (declare-sort weapon_kind 0) @@ -480,8 +479,8 @@ (! (=> (in_range2 x) (= (to_rep (of_rep x)) x)) :pattern ((to_rep (of_rep x))) ))) -(declare-datatypes () -((weapon_kind__ref (mk_weapon_kind__ref (weapon_kind__content weapon_kind))))) +(declare-datatypes ((weapon_kind__ref 0)) + (((mk_weapon_kind__ref (weapon_kind__content weapon_kind))))) (define-fun weapon_kind__ref___projection ((a weapon_kind__ref)) weapon_kind (weapon_kind__content a)) @@ -545,8 +544,8 @@ (! (=> (in_range3 x) (= (to_rep1 (of_rep1 x)) x)) :pattern ((to_rep1 (of_rep1 x))) ))) -(declare-datatypes () -((integer__ref (mk_integer__ref (integer__content integer))))) +(declare-datatypes ((integer__ref 0)) + (((mk_integer__ref (integer__content integer))))) (define-fun integer__ref___projection ((a integer__ref)) integer (integer__content a)) @@ -593,8 +592,8 @@ (! (=> (in_range4 x) (= (to_rep2 (of_rep2 x)) x)) :pattern ((to_rep2 (of_rep2 x))) ))) -(declare-datatypes () -((bullet_kind__ref (mk_bullet_kind__ref (bullet_kind__content bullet_kind))))) +(declare-datatypes ((bullet_kind__ref 0)) + (((mk_bullet_kind__ref (bullet_kind__content bullet_kind))))) (define-fun bullet_kind__ref___projection ((a bullet_kind__ref)) bullet_kind (bullet_kind__content a)) diff --git a/test/regress/regress1/bug296.smt2 b/test/regress/regress1/bug296.smt2 index 3aea7e9c9..ad1f89b9e 100644 --- a/test/regress/regress1/bug296.smt2 +++ b/test/regress/regress1/bug296.smt2 @@ -1,17 +1,15 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: unsat (set-logic QF_ALL) (set-info :status unsat) (declare-datatypes - () ( - (MsgResult (MsgResult_MsgOK (destMsgResult_MsgOK Real)) + ((MsgResult 0) (MsgTree 0) (TreeResult 0) (MsgTree_Node_recd 0)) ( + ((MsgResult_MsgOK (destMsgResult_MsgOK Real)) (MsgResult_MsgAudit (destMsgResult_MsgAudit Real))) - (MsgTree (MsgTree_Leaf) + ((MsgTree_Leaf) (MsgTree_Node (destMsgTree_Node MsgTree_Node_recd))) - (TreeResult (TreeResult_TreeOK (destTreeResult_TreeOK MsgTree)) + ((TreeResult_TreeOK (destTreeResult_TreeOK MsgTree)) (TreeResult_TreeAudit (destTreeResult_TreeAudit Real))) - (MsgTree_Node_recd - (MsgTree_Node_recd (MsgTree_Node_recd_Value Real) + ((MsgTree_Node_recd (MsgTree_Node_recd_Value Real) (MsgTree_Node_recd_Left MsgTree) (MsgTree_Node_recd_Right MsgTree))))) (declare-fun Guardfn (MsgTree) TreeResult) @@ -22,37 +20,37 @@ (declare-fun ARB () Bool) (declare-fun Guard_Checkfn (MsgTree) Bool) (define-fun DWS_Idempotentfn ((M1 Real)) Bool - (ite (is-MsgResult_MsgOK (f M1)) - (and (is-MsgResult_MsgOK (f (destMsgResult_MsgOK (f M1)))) + (ite ((_ is MsgResult_MsgOK) (f M1)) + (and ((_ is MsgResult_MsgOK) (f (destMsgResult_MsgOK (f M1)))) (= (destMsgResult_MsgOK (f M1)) (destMsgResult_MsgOK (f (destMsgResult_MsgOK (f M1)))))) - (or (is-MsgResult_MsgAudit (f M1)) ARB))) + (or ((_ is MsgResult_MsgAudit) (f M1)) ARB))) (assert (and (=> - (and (not (is-MsgTree_Leaf Input)) - (and (is-MsgTree_Node Input) + (and (not ((_ is MsgTree_Leaf) Input)) + (and ((_ is MsgTree_Node) Input) (and (not - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (and - (is-MsgResult_MsgOK + ((_ is MsgResult_MsgOK) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) (and (not - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input))))) (and - (is-TreeResult_TreeOK + ((_ is TreeResult_TreeOK) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) - (is-TreeResult_TreeOK + ((_ is TreeResult_TreeOK) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))))))))) @@ -62,20 +60,20 @@ (MsgTree_Node_recd_Right (destMsgTree_Node Input)))))) (and (=> - (and (not (is-MsgTree_Leaf Input)) - (and (is-MsgTree_Node Input) + (and (not ((_ is MsgTree_Leaf) Input)) + (and ((_ is MsgTree_Node) Input) (and (not - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (and - (is-MsgResult_MsgOK + ((_ is MsgResult_MsgOK) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) - (is-TreeResult_TreeOK + ((_ is TreeResult_TreeOK) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))))))) (Guard_Checkfn @@ -86,11 +84,11 @@ (DWS_Idempotentfn (MsgTree_Node_recd_Value (destMsgTree_Node Input))) (and - (is-TreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + ((_ is TreeResult_TreeOK) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -100,14 +98,14 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -132,10 +130,10 @@ (not (Guard_Checkfn (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -145,7 +143,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -153,7 +151,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -181,13 +179,13 @@ (destTreeResult_TreeOK (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input))))) (ite - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (destTreeResult_TreeOK (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input))))) true (and - (is-MsgResult_MsgOK + ((_ is MsgResult_MsgOK) (f (MsgTree_Node_recd_Value (destMsgTree_Node @@ -232,13 +230,13 @@ (destTreeResult_TreeOK (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input))))) (ite - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (destTreeResult_TreeOK (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input))))) true (and - (is-MsgResult_MsgOK + ((_ is MsgResult_MsgOK) (f (MsgTree_Node_recd_Value (destMsgTree_Node @@ -279,23 +277,23 @@ (= (Guard_Checkfn (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) (TreeResult_TreeAudit (destMsgResult_MsgAudit (f (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -317,12 +315,12 @@ (MsgTree_Node_recd_Right (destMsgTree_Node Input))))))))))))) (ite - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) (TreeResult_TreeAudit @@ -331,13 +329,13 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -361,15 +359,15 @@ (destMsgTree_Node Input))))))))))))) true (and - (is-MsgResult_MsgOK + ((_ is MsgResult_MsgOK) (f (MsgTree_Node_recd_Value (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -379,7 +377,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -387,7 +385,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -414,10 +412,10 @@ (MsgTree_Node_recd_Value (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -427,7 +425,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -435,7 +433,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -462,10 +460,10 @@ (MsgTree_Node_recd_Value (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -475,7 +473,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -483,7 +481,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -510,10 +508,10 @@ (MsgTree_Node_recd_Left (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -523,7 +521,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -531,7 +529,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -557,10 +555,10 @@ (MsgTree_Node_recd_Right (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -570,7 +568,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -578,7 +576,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -609,7 +607,7 @@ (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input))))))) (ite - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (MsgTree_Node_recd_Left (destMsgTree_Node (destTreeResult_TreeOK @@ -617,7 +615,7 @@ (MsgTree_Node_recd_Right (destMsgTree_Node Input))))))) true (and - (is-MsgResult_MsgOK + ((_ is MsgResult_MsgOK) (f (MsgTree_Node_recd_Value (destMsgTree_Node @@ -675,7 +673,7 @@ (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input))))))) (ite - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (MsgTree_Node_recd_Right (destMsgTree_Node (destTreeResult_TreeOK @@ -683,7 +681,7 @@ (MsgTree_Node_recd_Right (destMsgTree_Node Input))))))) true (and - (is-MsgResult_MsgOK + ((_ is MsgResult_MsgOK) (f (MsgTree_Node_recd_Value (destMsgTree_Node @@ -741,7 +739,7 @@ (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input))))))) (ite - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (MsgTree_Node_recd_Left (destMsgTree_Node (destTreeResult_TreeOK @@ -749,7 +747,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))))))) true (and - (is-MsgResult_MsgOK + ((_ is MsgResult_MsgOK) (f (MsgTree_Node_recd_Value (destMsgTree_Node @@ -807,7 +805,7 @@ (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input))))))) (ite - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (MsgTree_Node_recd_Right (destMsgTree_Node (destTreeResult_TreeOK @@ -815,7 +813,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))))))) true (and - (is-MsgResult_MsgOK + ((_ is MsgResult_MsgOK) (f (MsgTree_Node_recd_Value (destMsgTree_Node @@ -870,10 +868,10 @@ (MsgTree_Node_recd_Left (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -883,14 +881,14 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -913,14 +911,14 @@ (MsgTree_Node_recd_Right (destMsgTree_Node Input))))))))))))))) (ite - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (MsgTree_Node_recd_Left (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -930,7 +928,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -938,7 +936,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -962,17 +960,17 @@ (destMsgTree_Node Input))))))))))))))) true (and - (is-MsgResult_MsgOK + ((_ is MsgResult_MsgOK) (f (MsgTree_Node_recd_Value (destMsgTree_Node (MsgTree_Node_recd_Left (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -982,7 +980,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -990,7 +988,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -1019,10 +1017,10 @@ (MsgTree_Node_recd_Left (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -1032,7 +1030,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -1040,7 +1038,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -1069,10 +1067,10 @@ (MsgTree_Node_recd_Left (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -1082,7 +1080,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -1090,7 +1088,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -1119,10 +1117,10 @@ (MsgTree_Node_recd_Left (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -1132,7 +1130,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -1140,7 +1138,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -1168,10 +1166,10 @@ (MsgTree_Node_recd_Left (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -1181,7 +1179,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -1189,7 +1187,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -1217,10 +1215,10 @@ (MsgTree_Node_recd_Right (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -1230,14 +1228,14 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -1260,14 +1258,14 @@ (MsgTree_Node_recd_Right (destMsgTree_Node Input))))))))))))))) (ite - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (MsgTree_Node_recd_Right (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -1277,7 +1275,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -1285,7 +1283,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -1309,17 +1307,17 @@ (destMsgTree_Node Input))))))))))))))) true (and - (is-MsgResult_MsgOK + ((_ is MsgResult_MsgOK) (f (MsgTree_Node_recd_Value (destMsgTree_Node (MsgTree_Node_recd_Right (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -1329,7 +1327,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -1337,7 +1335,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -1366,10 +1364,10 @@ (MsgTree_Node_recd_Right (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -1379,7 +1377,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -1387,7 +1385,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -1416,10 +1414,10 @@ (MsgTree_Node_recd_Right (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -1429,7 +1427,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -1437,7 +1435,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -1466,10 +1464,10 @@ (MsgTree_Node_recd_Right (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -1479,7 +1477,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -1487,7 +1485,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -1515,10 +1513,10 @@ (MsgTree_Node_recd_Right (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -1528,7 +1526,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -1536,7 +1534,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -1561,7 +1559,7 @@ (assert (not (not - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (MsgTree_Node_recd_Left (destMsgTree_Node (destTreeResult_TreeOK @@ -1570,7 +1568,7 @@ (assert (not (not - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (MsgTree_Node_recd_Right (destMsgTree_Node (destTreeResult_TreeOK @@ -1579,7 +1577,7 @@ (assert (not (not - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (MsgTree_Node_recd_Left (destMsgTree_Node (destTreeResult_TreeOK @@ -1588,7 +1586,7 @@ (assert (not (not - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (MsgTree_Node_recd_Right (destMsgTree_Node (destTreeResult_TreeOK @@ -1597,14 +1595,14 @@ (assert (not (not - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (MsgTree_Node_recd_Left (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -1614,7 +1612,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -1622,7 +1620,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) @@ -1647,14 +1645,14 @@ (assert (not (not - (is-MsgTree_Leaf + ((_ is MsgTree_Leaf) (MsgTree_Node_recd_Right (destMsgTree_Node (destTreeResult_TreeOK - (ite (is-MsgTree_Leaf Input) + (ite ((_ is MsgTree_Leaf) Input) (TreeResult_TreeOK MsgTree_Leaf) (ite - (is-MsgResult_MsgAudit + ((_ is MsgResult_MsgAudit) (f (MsgTree_Node_recd_Value (destMsgTree_Node Input)))) @@ -1664,7 +1662,7 @@ (MsgTree_Node_recd_Value (destMsgTree_Node Input))))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Left (destMsgTree_Node Input)))) @@ -1672,7 +1670,7 @@ (MsgTree_Node_recd_Left (destMsgTree_Node Input))) (ite - (is-TreeResult_TreeAudit + ((_ is TreeResult_TreeAudit) (Guardfn (MsgTree_Node_recd_Right (destMsgTree_Node Input)))) diff --git a/test/regress/regress1/bug507.smt2 b/test/regress/regress1/bug507.smt2 index a20dddfe7..b93229dfe 100644 --- a/test/regress/regress1/bug507.smt2 +++ b/test/regress/regress1/bug507.smt2 @@ -1,4 +1,3 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: sat (set-logic QF_ALL_SUPPORTED) (set-info :status sat) @@ -7,20 +6,19 @@ ;; Datatype declarations ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(declare-datatypes () - ((ColorType (ColorType_Red) (ColorType_Black)) +(declare-datatypes ((ColorType 0)) + (((ColorType_Red) (ColorType_Black)) )) -(declare-datatypes () - ((RBTree (RBTree_Leaf) (RBTree_Node (destRBTree_Node RBTree_Node_recd))) - - (RBTree_Node_recd (RBTree_Node_recd (RBTree_Node_recd_color ColorType) - (RBTree_Node_recd_left RBTree) (RBTree_Node_recd_elem Int) - (RBTree_Node_recd_right RBTree))) +(declare-datatypes ((RBTree 0) (RBTree_Node_recd 0)) + (((RBTree_Leaf) (RBTree_Node (destRBTree_Node RBTree_Node_recd))) + ((RBTree_Node_recd (RBTree_Node_recd_color ColorType) + (RBTree_Node_recd_left RBTree) (RBTree_Node_recd_elem Int) + (RBTree_Node_recd_right RBTree))) )) -(declare-datatypes () - ((BoolColor (BoolColor (BoolColor_res Bool) (BoolColor_color ColorType))) +(declare-datatypes ((BoolColor 0)) + (((BoolColor (BoolColor_res Bool) (BoolColor_color ColorType))) )) @@ -40,7 +38,7 @@ (RBTree_Node (RBTree_Node_recd ColorType_Red (RBTree_Node (RBTree_Node_recd ColorType_Black ll le lr)) e (RBTree_Node (RBTree_Node_recd ColorType_Black rl re rr))))) (define-fun balanceFn ((c ColorType) (left RBTree) (elem Int) (right RBTree)) RBTree - (ite (= c ColorType_Black) (ite (not (ite (is-RBTree_Leaf left) false (ite (not (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite (is-RBTree_Leaf (RBTree_Node_recd_right (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) true false)) true))) (ite (is-RBTree_Leaf right) (ite (is-RBTree_Leaf left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite (is-RBTree_Leaf (RBTree_Node_recd_right (destRBTree_Node left))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (not (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node right))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node right)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) ColorType_Red)) true false))) (ite (is-RBTree_Leaf (RBTree_Node_recd_right (destRBTree_Node right))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node right))) (ite (is-RBTree_Leaf left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite (is-RBTree_Leaf (RBTree_Node_recd_right (destRBTree_Node left))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node right)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) ColorType_Red)) (assembleFn left elem (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node right)) (RBTree_Node_recd_right (destRBTree_Node right))) (ite (is-RBTree_Leaf left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite (is-RBTree_Leaf (RBTree_Node_recd_right (destRBTree_Node left))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node right)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node right)))) ColorType_Red)) (assembleFn left elem (RBTree_Node_recd_left (destRBTree_Node right)) (RBTree_Node_recd_elem (destRBTree_Node right)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node right)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node right))))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node right))) (ite (is-RBTree_Leaf left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite (is-RBTree_Leaf (RBTree_Node_recd_right (destRBTree_Node left))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node right)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) ColorType_Red)) (assembleFn left elem (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node right)) (RBTree_Node_recd_right (destRBTree_Node right))) (ite (is-RBTree_Leaf left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite (is-RBTree_Leaf (RBTree_Node_recd_right (destRBTree_Node left))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))))))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node right))) (ite (is-RBTree_Leaf left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite (is-RBTree_Leaf (RBTree_Node_recd_right (destRBTree_Node left))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node right)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) ColorType_Red)) (assembleFn left elem (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node right)) (RBTree_Node_recd_right (destRBTree_Node right))) (ite (is-RBTree_Leaf left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite (is-RBTree_Leaf (RBTree_Node_recd_right (destRBTree_Node left))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))))))) (ite (is-RBTree_Leaf left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite (is-RBTree_Leaf (RBTree_Node_recd_right (destRBTree_Node left))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (is-RBTree_Leaf (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right))))))) (RBTree_Node (RBTree_Node_recd c left elem right)))) + (ite (= c ColorType_Black) (ite (not (ite ((_ is RBTree_Leaf) left) false (ite (not (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_right (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) true false)) true))) (ite ((_ is RBTree_Leaf) right) (ite ((_ is RBTree_Leaf) left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_right (destRBTree_Node left))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (not (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node right))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node right)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) ColorType_Red)) true false))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_right (destRBTree_Node right))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node right))) (ite ((_ is RBTree_Leaf) left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_right (destRBTree_Node left))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node right)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) ColorType_Red)) (assembleFn left elem (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node right)) (RBTree_Node_recd_right (destRBTree_Node right))) (ite ((_ is RBTree_Leaf) left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_right (destRBTree_Node left))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node right)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node right)))) ColorType_Red)) (assembleFn left elem (RBTree_Node_recd_left (destRBTree_Node right)) (RBTree_Node_recd_elem (destRBTree_Node right)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node right)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node right))))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node right))) (ite ((_ is RBTree_Leaf) left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_right (destRBTree_Node left))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node right)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) ColorType_Red)) (assembleFn left elem (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node right)) (RBTree_Node_recd_right (destRBTree_Node right))) (ite ((_ is RBTree_Leaf) left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_right (destRBTree_Node left))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))))))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node right))) (ite ((_ is RBTree_Leaf) left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_right (destRBTree_Node left))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node right)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) ColorType_Red)) (assembleFn left elem (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node right)))) (RBTree_Node_recd_elem (destRBTree_Node right)) (RBTree_Node_recd_right (destRBTree_Node right))) (ite ((_ is RBTree_Leaf) left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_right (destRBTree_Node left))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))))))) (ite ((_ is RBTree_Leaf) left) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (not (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) false (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) true false))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_right (destRBTree_Node left))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node left)) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_right (destRBTree_Node left)))) elem right) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)))))) (ite ((_ is RBTree_Leaf) (RBTree_Node_recd_left (destRBTree_Node left))) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right)) (ite (and (= (RBTree_Node_recd_color (destRBTree_Node left)) ColorType_Red) (= (RBTree_Node_recd_color (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) ColorType_Red)) (assembleFn (RBTree_Node_recd_left (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_right (destRBTree_Node (RBTree_Node_recd_left (destRBTree_Node left)))) (RBTree_Node_recd_elem (destRBTree_Node left)) (RBTree_Node_recd_right (destRBTree_Node left)) elem right) (RBTree_Node (RBTree_Node_recd ColorType_Black left elem right))))))) (RBTree_Node (RBTree_Node_recd c left elem right)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Catamorphisms @@ -55,26 +53,26 @@ ( declare-fun insertFn ( Int RBTree ) RBTree ) ( declare-fun NoTwoRedsFn ( RBTree ) BoolColor ) - + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Goals ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;(push) -(assert (and (is-RBTree_Leaf t) - (and (not (is-RBTree_Leaf (insertFn v0 t))) +(assert (and ((_ is RBTree_Leaf) t) + (and (not ((_ is RBTree_Leaf) (insertFn v0 t))) (not (BoolColor_res (NoTwoRedsFn (RBTree_Node_recd_left (destRBTree_Node (insertFn v0 t))))))))) ;;(pop) -( assert ( = ( insertFn v0 t ) ( ite ( is-RBTree_Leaf ( insFn v0 t ) ) ( insFn v0 t ) ( RBTree_Node ( RBTree_Node_recd ColorType_Black ( RBTree_Node_recd_left ( destRBTree_Node ( insFn v0 t ) ) ) ( RBTree_Node_recd_elem ( destRBTree_Node ( insFn v0 t ) ) ) ( RBTree_Node_recd_right ( destRBTree_Node ( insFn v0 t ) ) ) ) ) ) ) ) -( assert ( = ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ( ite ( is-RBTree_Leaf ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ( BoolColor true ColorType_Black ) ( BoolColor ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ( or ( not ( = ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ColorType_Red ) ) ( and ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ColorType_Red ) ) ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ColorType_Red ) ) ) ) ) ) ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ) ) -( assert ( = ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ( ite ( is-RBTree_Leaf ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ( BoolColor true ColorType_Black ) ( BoolColor ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ( or ( not ( = ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ColorType_Red ) ) ( and ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ColorType_Red ) ) ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ColorType_Red ) ) ) ) ) ) ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ) ) -( assert ( = ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ( ite ( is-RBTree_Leaf ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ( BoolColor true ColorType_Black ) ( BoolColor ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ( or ( not ( = ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ColorType_Red ) ) ( and ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ColorType_Red ) ) ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ColorType_Red ) ) ) ) ) ) ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ) -( assert ( = ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ( ite ( is-RBTree_Leaf ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ( BoolColor true ColorType_Black ) ( BoolColor ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ( or ( not ( = ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ColorType_Red ) ) ( and ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ColorType_Red ) ) ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ColorType_Red ) ) ) ) ) ) ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ) -( assert ( = ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ( ite ( is-RBTree_Leaf ( insFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ( insFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ( RBTree_Node ( RBTree_Node_recd ColorType_Black ( RBTree_Node_recd_left ( destRBTree_Node ( insFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ( RBTree_Node_recd_elem ( destRBTree_Node ( insFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ( RBTree_Node_recd_right ( destRBTree_Node ( insFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ) ) ) -( assert ( = ( NoTwoRedsFn ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ( ite ( is-RBTree_Leaf ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ( BoolColor true ColorType_Black ) ( BoolColor ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ( or ( not ( = ( RBTree_Node_recd_color ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ColorType_Red ) ) ( and ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ColorType_Red ) ) ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ColorType_Red ) ) ) ) ) ) ( RBTree_Node_recd_color ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ) ) -( assert ( = ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ( ite ( is-RBTree_Leaf ( insFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ( insFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ( RBTree_Node ( RBTree_Node_recd ColorType_Black ( RBTree_Node_recd_left ( destRBTree_Node ( insFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ( RBTree_Node_recd_elem ( destRBTree_Node ( insFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ( RBTree_Node_recd_right ( destRBTree_Node ( insFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ) ) ) -( assert ( = ( NoTwoRedsFn ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ( ite ( is-RBTree_Leaf ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ( BoolColor true ColorType_Black ) ( BoolColor ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ( or ( not ( = ( RBTree_Node_recd_color ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ColorType_Red ) ) ( and ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ColorType_Red ) ) ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ColorType_Red ) ) ) ) ) ) ( RBTree_Node_recd_color ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ) ) +( assert ( = ( insertFn v0 t ) ( ite ( (_ is RBTree_Leaf) ( insFn v0 t ) ) ( insFn v0 t ) ( RBTree_Node ( RBTree_Node_recd ColorType_Black ( RBTree_Node_recd_left ( destRBTree_Node ( insFn v0 t ) ) ) ( RBTree_Node_recd_elem ( destRBTree_Node ( insFn v0 t ) ) ) ( RBTree_Node_recd_right ( destRBTree_Node ( insFn v0 t ) ) ) ) ) ) ) ) +( assert ( = ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ( ite ( (_ is RBTree_Leaf) ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ( BoolColor true ColorType_Black ) ( BoolColor ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ( or ( not ( = ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ColorType_Red ) ) ( and ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ColorType_Red ) ) ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ColorType_Red ) ) ) ) ) ) ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ) ) +( assert ( = ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ( ite ( (_ is RBTree_Leaf) ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ( BoolColor true ColorType_Black ) ( BoolColor ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ( or ( not ( = ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ColorType_Red ) ) ( and ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ColorType_Red ) ) ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ColorType_Red ) ) ) ) ) ) ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 t ) ) ) ) ) ) ) ) ) +( assert ( = ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ( ite ( (_ is RBTree_Leaf) ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ( BoolColor true ColorType_Black ) ( BoolColor ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ( or ( not ( = ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ColorType_Red ) ) ( and ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ColorType_Red ) ) ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ColorType_Red ) ) ) ) ) ) ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ) +( assert ( = ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ( ite ( (_ is RBTree_Leaf) ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ( BoolColor true ColorType_Black ) ( BoolColor ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ( or ( not ( = ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ColorType_Red ) ) ( and ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ColorType_Red ) ) ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ColorType_Red ) ) ) ) ) ) ( RBTree_Node_recd_color ( destRBTree_Node ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ) +( assert ( = ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ( ite ( (_ is RBTree_Leaf) ( insFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ( insFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ( RBTree_Node ( RBTree_Node_recd ColorType_Black ( RBTree_Node_recd_left ( destRBTree_Node ( insFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ( RBTree_Node_recd_elem ( destRBTree_Node ( insFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ( RBTree_Node_recd_right ( destRBTree_Node ( insFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ) ) ) +( assert ( = ( NoTwoRedsFn ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ( ite ( (_ is RBTree_Leaf) ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ( BoolColor true ColorType_Black ) ( BoolColor ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ( or ( not ( = ( RBTree_Node_recd_color ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ColorType_Red ) ) ( and ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ColorType_Red ) ) ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ColorType_Red ) ) ) ) ) ) ( RBTree_Node_recd_color ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_right ( destRBTree_Node t ) ) ) ) ) ) ) ) ) +( assert ( = ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ( ite ( (_ is RBTree_Leaf) ( insFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ( insFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ( RBTree_Node ( RBTree_Node_recd ColorType_Black ( RBTree_Node_recd_left ( destRBTree_Node ( insFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ( RBTree_Node_recd_elem ( destRBTree_Node ( insFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ( RBTree_Node_recd_right ( destRBTree_Node ( insFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ) ) ) +( assert ( = ( NoTwoRedsFn ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ( ite ( (_ is RBTree_Leaf) ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ( BoolColor true ColorType_Black ) ( BoolColor ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ( and ( BoolColor_res ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ( or ( not ( = ( RBTree_Node_recd_color ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ColorType_Red ) ) ( and ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_left ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ColorType_Red ) ) ( not ( = ( BoolColor_color ( NoTwoRedsFn ( RBTree_Node_recd_right ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ColorType_Red ) ) ) ) ) ) ( RBTree_Node_recd_color ( destRBTree_Node ( insertFn v0 ( RBTree_Node_recd_left ( destRBTree_Node t ) ) ) ) ) ) ) ) ) ( check-sat ) diff --git a/test/regress/regress1/bug567.smt2 b/test/regress/regress1/bug567.smt2 index 99d7f0302..94cf3b547 100644 --- a/test/regress/regress1/bug567.smt2 +++ b/test/regress/regress1/bug567.smt2 @@ -1,18 +1,14 @@ -(set-logic ALL_SUPPORTED) -; COMMAND-LINE: --incremental --lang=smt2.5 +; COMMAND-LINE: --incremental ; EXPECT: unknown ; EXPECT: unsat ; EXPECT: unknown -(declare-datatypes () ((OptInt0 (Some (value0 Int)) (None)))) -(declare-datatypes () ((List0 (Cons (head0 Int) (tail0 List0)) (Nil)))) +(set-logic ALL_SUPPORTED) +(declare-datatypes ((OptInt0 0)) (((Some (value0 Int)) (None)))) +(declare-datatypes ((List0 0)) (((Cons (head0 Int) (tail0 List0)) (Nil)))) (declare-fun errorValue2 () Bool) (declare-fun errorValue1 () Bool) - - - - (declare-fun size (List0) Int) (declare-fun mergeInto (List0 List0) List0) (declare-fun isSorted (List0) Bool) @@ -21,28 +17,25 @@ (declare-fun sort (List0) List0) (declare-fun contents (List0) (Set Int)) -(assert (forall ((l List0)) (! (= (size l) (ite (is-Nil l) 0 (+ 1 (size (tail0 l))))) :pattern ((size l))))) -(assert (forall ((l1 List0) (l2 List0)) (! (= (mergeInto l1 l2) (ite (is-Nil l1) l2 (mergeInto (tail0 l1) (sortedIns (head0 l1) l2)))) :pattern ((mergeInto l1 l2))))) -(assert (forall ((l2 List0)) (! (= (isSorted l2) (ite (is-Nil l2) true (ite (and (is-Cons l2) (is-Nil (tail0 l2))) true (ite (and (is-Cons l2) (is-Cons (tail0 l2))) (and (<= (head0 l2) (head0 (tail0 l2))) (isSorted (Cons (head0 (tail0 l2)) (tail0 (tail0 l2))))) errorValue1)))) :pattern ((isSorted l2))))) -(assert (forall ((l4 List0) (e1 Int)) (! (= (buggySortedIns e1 l4) (ite (is-Nil l4) (Cons e1 Nil) (ite (<= (head0 l4) e1) (Cons (head0 l4) (buggySortedIns e1 (tail0 l4))) (Cons e1 l4)))) :pattern ((buggySortedIns e1 l4))))) -(assert (forall ((l3 List0) (e Int)) (! (= (sortedIns e l3) (ite (is-Nil l3) (Cons e Nil) (ite (<= (head0 l3) e) (Cons (head0 l3) (sortedIns e (tail0 l3))) (Cons e l3)))) :pattern ((sortedIns e l3))))) -(assert (forall ((l5 List0)) (! (= (sort l5) (ite (is-Nil l5) Nil (sortedIns (head0 l5) (sort (tail0 l5))))) :pattern ((sort l5))))) -(assert (forall ((l1 List0)) (! (= (contents l1) (ite (is-Nil l1) (as emptyset (Set Int)) (union (contents (tail0 l1)) (singleton (head0 l1))))) :pattern ((contents l1))))) - - +(assert (forall ((l List0)) (! (= (size l) (ite ((_ is Nil) l) 0 (+ 1 (size (tail0 l))))) :pattern ((size l))))) +(assert (forall ((l1 List0) (l2 List0)) (! (= (mergeInto l1 l2) (ite ((_ is Nil) l1) l2 (mergeInto (tail0 l1) (sortedIns (head0 l1) l2)))) :pattern ((mergeInto l1 l2))))) +(assert (forall ((l2 List0)) (! (= (isSorted l2) (ite ((_ is Nil) l2) true (ite (and ((_ is Cons) l2) ((_ is Nil) (tail0 l2))) true (ite (and ((_ is Cons) l2) ((_ is Cons) (tail0 l2))) (and (<= (head0 l2) (head0 (tail0 l2))) (isSorted (Cons (head0 (tail0 l2)) (tail0 (tail0 l2))))) errorValue1)))) :pattern ((isSorted l2))))) +(assert (forall ((l4 List0) (e1 Int)) (! (= (buggySortedIns e1 l4) (ite ((_ is Nil) l4) (Cons e1 Nil) (ite (<= (head0 l4) e1) (Cons (head0 l4) (buggySortedIns e1 (tail0 l4))) (Cons e1 l4)))) :pattern ((buggySortedIns e1 l4))))) +(assert (forall ((l3 List0) (e Int)) (! (= (sortedIns e l3) (ite ((_ is Nil) l3) (Cons e Nil) (ite (<= (head0 l3) e) (Cons (head0 l3) (sortedIns e (tail0 l3))) (Cons e l3)))) :pattern ((sortedIns e l3))))) +(assert (forall ((l5 List0)) (! (= (sort l5) (ite ((_ is Nil) l5) Nil (sortedIns (head0 l5) (sort (tail0 l5))))) :pattern ((sort l5))))) +(assert (forall ((l1 List0)) (! (= (contents l1) (ite ((_ is Nil) l1) (as emptyset (Set Int)) (union (contents (tail0 l1)) (singleton (head0 l1))))) :pattern ((contents l1))))) (push) -(assert (forall ((l List0)) (not (let ((result (ite (is-Nil l) 0 (+ 1 (size (tail0 l)))))) (>= result 0))))) +(assert (forall ((l List0)) (not (let ((result (ite ((_ is Nil) l) 0 (+ 1 (size (tail0 l)))))) (>= result 0))))) (check-sat) (pop) (push) -(assert (forall ((l2 List0)) (not (not (and (not (is-Nil l2)) (not (and (is-Cons l2) (is-Nil (tail0 l2)))) (not (and (is-Cons l2) (is-Cons (tail0 l2))))))))) +(assert (forall ((l2 List0)) (not (not (and (not ((_ is Nil) l2)) (not (and ((_ is Cons) l2) ((_ is Nil) (tail0 l2)))) (not (and ((_ is Cons) l2) ((_ is Cons) (tail0 l2))))))))) (check-sat) (pop) (push) -(assert (forall ((l4 List0) (e1 Int)) (not (let ((result2 (ite (is-Nil l4) (Cons e1 Nil) (ite (<= (head0 l4) e1) (Cons (head0 l4) (buggySortedIns e1 (tail0 l4))) (Cons e1 l4))))) (and (= (contents result2) (union (contents l4) (singleton e1))) (isSorted result2) (= (size result2) (+ (size l4) 1))))))) +(assert (forall ((l4 List0) (e1 Int)) (not (let ((result2 (ite ((_ is Nil) l4) (Cons e1 Nil) (ite (<= (head0 l4) e1) (Cons (head0 l4) (buggySortedIns e1 (tail0 l4))) (Cons e1 l4))))) (and (= (contents result2) (union (contents l4) (singleton e1))) (isSorted result2) (= (size result2) (+ (size l4) 1))))))) (check-sat) (pop) - diff --git a/test/regress/regress1/bug681.smt2 b/test/regress/regress1/bug681.smt2 index 93d7b88c4..8bc1bd6d0 100644 --- a/test/regress/regress1/bug681.smt2 +++ b/test/regress/regress1/bug681.smt2 @@ -1,4 +1,3 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXIT: 1 ; EXPECT: (error "Array theory solver does not yet support write-chains connecting two different constant arrays") (set-logic ALL_SUPPORTED) @@ -10,9 +9,9 @@ (assert (=> start!1 (not lt!2))) -(declare-datatypes () ( (Option!3 (None!1) (Some!1 (v!18 Int))) )) +(declare-datatypes ((Option!3 0)) (((None!1) (Some!1 (v!18 Int))))) -(declare-datatypes () ( (Method!1 (Method!2 (initials!1 (Array Option!3 Int)))) )) +(declare-datatypes ((Method!1 0)) (((Method!2 (initials!1 (Array Option!3 Int)))))) (declare-fun lambda!2 () (Array Int Method!1)) diff --git a/test/regress/regress1/bug694-Unapply1.scala-0.smt2 b/test/regress/regress1/bug694-Unapply1.scala-0.smt2 index 7680a7daf..5b9918b98 100644 --- a/test/regress/regress1/bug694-Unapply1.scala-0.smt2 +++ b/test/regress/regress1/bug694-Unapply1.scala-0.smt2 @@ -1,4 +1,4 @@ -; COMMAND-LINE: --incremental --lang=smt2.5 +; COMMAND-LINE: --incremental ; EXPECT: unsat ; EXPECT: sat ; EXPECT: sat @@ -23,19 +23,19 @@ (declare-fun b!20 () Bool) -(declare-datatypes () ( (Option!3 (None!1) (Some!1 (v!71 tuple2!0))) (tuple2!0 (tuple2!1 (_1!0 Unit!0) (_2!0 Bool))) (Unit!0 (Unit!1)) )) +(declare-datatypes ((Option!3 0) (tuple2!0 0) (Unit!0 0)) (((None!1) (Some!1 (v!71 tuple2!0))) ((tuple2!1 (_1!0 Unit!0) (_2!0 Bool))) ((Unit!1)))) (declare-fun lt!7 () Option!3) (declare-fun Unit!2 () Unit!0) -(assert (=> b!16 (= b!20 (ite (is-Some!1 lt!7) (= (_1!0 (v!71 lt!7)) Unit!2) false)))) +(assert (=> b!16 (= b!20 (ite ((_ is Some!1) lt!7) (= (_1!0 (v!71 lt!7)) Unit!2) false)))) (assert (=> b!16 (or (not b!20) (not b!15)))) (assert (=> b!16 (or b!20 b!15))) -(declare-datatypes () ( (tuple3!0 (tuple3!1 (_1!1 (_ BitVec 32)) (_2!1 Bool) (_3!0 Unit!0))) )) +(declare-datatypes ((tuple3!0 0)) (((tuple3!1 (_1!1 (_ BitVec 32)) (_2!1 Bool) (_3!0 Unit!0))))) (declare-fun unapply!2 (tuple3!0) Option!3) @@ -73,7 +73,7 @@ (declare-fun lt!8 () Option!3) -(assert (=> start!1 (= b!19 (ite (is-Some!1 lt!8) true false)))) +(assert (=> start!1 (= b!19 (ite ((_ is Some!1) lt!8) true false)))) (declare-fun Unit!5 () Unit!0) diff --git a/test/regress/regress1/datatypes/dt-param-card4-unsat.smt2 b/test/regress/regress1/datatypes/dt-param-card4-unsat.smt2 index d403cf4ee..29a21a577 100644 --- a/test/regress/regress1/datatypes/dt-param-card4-unsat.smt2 +++ b/test/regress/regress1/datatypes/dt-param-card4-unsat.smt2 @@ -1,10 +1,9 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: unsat (set-logic QF_ALL_SUPPORTED) (set-info :status unsat) -(declare-datatypes (T S) ( (Pair (pair (first T) (second S)) ) ) ) +(declare-datatypes ((Pair 2)) ((par (T S) ((pair (first T) (second S)))))) -(declare-datatypes () ((Color (red) (blue)))) +(declare-datatypes ((Color 0)) (((red) (blue)))) (declare-fun p1 () (Pair Color Color)) (declare-fun p2 () (Pair Color Color)) diff --git a/test/regress/regress1/datatypes/manos-model.smt2 b/test/regress/regress1/datatypes/manos-model.smt2 index 771f40dec..e418743fb 100644 --- a/test/regress/regress1/datatypes/manos-model.smt2 +++ b/test/regress/regress1/datatypes/manos-model.smt2 @@ -1,8 +1,7 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: unsat (set-logic ALL_SUPPORTED) (set-info :status unsat) -(declare-datatypes () ( (tuple2!879 (tuple2!879!880 (_1!881 Int) (_2!882 Int))) )) +(declare-datatypes ((tuple2!879 0)) (((tuple2!879!880 (_1!881 Int) (_2!882 Int))))) (declare-fun p1!207 () tuple2!879) @@ -12,58 +11,57 @@ (declare-fun reduce!206 (tuple2!879 tuple2!879) tuple2!879) -(assert (not (= - (reduce!206 p1!207 (reduce!206 p2!208 p3!209)) +(assert (not (= + (reduce!206 p1!207 (reduce!206 p2!208 p3!209)) (reduce!206 (reduce!206 p1!207 p2!208) p3!209) ))) -(assert (= - (reduce!206 p1!207 (reduce!206 p2!208 p3!209)) - (ite - (>= (_1!881 p1!207) (_2!882 (reduce!206 p2!208 p3!209))) - (tuple2!879!880 - (+ (- (_1!881 p1!207) (_2!882 (reduce!206 p2!208 p3!209))) (_1!881 (reduce!206 p2!208 p3!209))) +(assert (= + (reduce!206 p1!207 (reduce!206 p2!208 p3!209)) + (ite + (>= (_1!881 p1!207) (_2!882 (reduce!206 p2!208 p3!209))) + (tuple2!879!880 + (+ (- (_1!881 p1!207) (_2!882 (reduce!206 p2!208 p3!209))) (_1!881 (reduce!206 p2!208 p3!209))) (_2!882 p1!207) ) - (tuple2!879!880 - (_1!881 (reduce!206 p2!208 p3!209)) + (tuple2!879!880 + (_1!881 (reduce!206 p2!208 p3!209)) (+ (- (_2!882 (reduce!206 p2!208 p3!209)) (_1!881 p1!207)) (_2!882 p1!207)) ) ) )) -(assert (= - (reduce!206 p2!208 p3!209) - (ite +(assert (= + (reduce!206 p2!208 p3!209) + (ite (>= (_1!881 p2!208) (_2!882 p3!209)) (tuple2!879!880 (+ (- (_1!881 p2!208) (_2!882 p3!209)) (_1!881 p3!209)) (_2!882 p2!208)) (tuple2!879!880 (_1!881 p3!209) (+ (- (_2!882 p3!209) (_1!881 p2!208)) (_2!882 p2!208))) ) )) -(assert (= - (reduce!206 (reduce!206 p1!207 p2!208) p3!209) - (ite - (>= (_1!881 (reduce!206 p1!207 p2!208)) (_2!882 p3!209)) - (tuple2!879!880 - (+ (- (_1!881 (reduce!206 p1!207 p2!208)) (_2!882 p3!209)) (_1!881 p3!209)) +(assert (= + (reduce!206 (reduce!206 p1!207 p2!208) p3!209) + (ite + (>= (_1!881 (reduce!206 p1!207 p2!208)) (_2!882 p3!209)) + (tuple2!879!880 + (+ (- (_1!881 (reduce!206 p1!207 p2!208)) (_2!882 p3!209)) (_1!881 p3!209)) (_2!882 (reduce!206 p1!207 p2!208)) - ) - (tuple2!879!880 - (_1!881 p3!209) + ) + (tuple2!879!880 + (_1!881 p3!209) (+ (- (_2!882 p3!209) (_1!881 (reduce!206 p1!207 p2!208))) (_2!882 (reduce!206 p1!207 p2!208))) ) ) )) -(assert (= - (reduce!206 p1!207 p2!208) - (ite - (>= (_1!881 p1!207) (_2!882 p2!208)) - (tuple2!879!880 (+ (- (_1!881 p1!207) (_2!882 p2!208)) (_1!881 p2!208)) (_2!882 p1!207)) +(assert (= + (reduce!206 p1!207 p2!208) + (ite + (>= (_1!881 p1!207) (_2!882 p2!208)) + (tuple2!879!880 (+ (- (_1!881 p1!207) (_2!882 p2!208)) (_1!881 p2!208)) (_2!882 p1!207)) (tuple2!879!880 (_1!881 p2!208) (+ (- (_2!882 p2!208) (_1!881 p1!207)) (_2!882 p1!207))) ) )) (check-sat) - diff --git a/test/regress/regress1/fmf/LeftistHeap.scala-8-ncm.smt2 b/test/regress/regress1/fmf/LeftistHeap.scala-8-ncm.smt2 index a58e85c0d..f1d20befc 100644 --- a/test/regress/regress1/fmf/LeftistHeap.scala-8-ncm.smt2 +++ b/test/regress/regress1/fmf/LeftistHeap.scala-8-ncm.smt2 @@ -1,9 +1,9 @@ -; COMMAND-LINE: --finite-model-find --lang=smt2.5 +; COMMAND-LINE: --finite-model-find ; EXPECT: sat (set-logic ALL_SUPPORTED) (set-info :status sat) -(declare-datatypes () ((array!896 (array!896!897 (size!898 (_ BitVec 32)) (content!899 (Array (_ BitVec 32) (_ BitVec 32))))))) -(declare-datatypes () ((tuple2!900 (tuple2!900!901 (_1!902 array!896) (_2!903 (_ BitVec 32)))))) +(declare-datatypes ((array!896 0)) (((array!896!897 (size!898 (_ BitVec 32)) (content!899 (Array (_ BitVec 32) (_ BitVec 32))))))) +(declare-datatypes ((tuple2!900 0)) (((tuple2!900!901 (_1!902 array!896) (_2!903 (_ BitVec 32)))))) (declare-fun error_value!904 () (_ BitVec 32)) (declare-fun error_value!905 () (_ BitVec 32)) (declare-fun error_value!906 () array!896) @@ -30,4 +30,3 @@ (assert (forall ((?i I_rec!210)) (and (= (rec!210 (rec!210_arg_0_6 ?i) (rec!210_arg_1_7 ?i) (rec!210_arg_2_8 ?i)) (ite (not (bvslt (rec!210_arg_0_6 ?i) (rec!210_arg_2_8 ?i))) true (ite (bvslt (ite (and (bvslt (rec!210_arg_0_6 ?i) (size!898 (rec!210_arg_1_7 ?i))) (not (bvslt (rec!210_arg_0_6 ?i) (_ bv0 32)))) (select (content!899 (rec!210_arg_1_7 ?i)) (rec!210_arg_0_6 ?i)) error_value!909) (_ bv0 32)) false (rec!210 (bvadd (rec!210_arg_0_6 ?i) (_ bv1 32)) (rec!210_arg_1_7 ?i) (rec!210_arg_2_8 ?i))))) (ite (not (bvslt (rec!210_arg_0_6 ?i) (rec!210_arg_2_8 ?i))) true (ite (bvslt (ite (and (bvslt (rec!210_arg_0_6 ?i) (size!898 (rec!210_arg_1_7 ?i))) (not (bvslt (rec!210_arg_0_6 ?i) (_ bv0 32)))) (select (content!899 (rec!210_arg_1_7 ?i)) (rec!210_arg_0_6 ?i)) error_value!909) (_ bv0 32)) true (not (forall ((?z I_rec!210)) (not (and (= (rec!210_arg_0_6 ?z) (bvadd (rec!210_arg_0_6 ?i) (_ bv1 32))) (= (rec!210_arg_1_7 ?z) (rec!210_arg_1_7 ?i)) (= (rec!210_arg_2_8 ?z) (rec!210_arg_2_8 ?i)))) ))))) )) (assert (not (forall ((tab!211 array!896)) (or (or (bvslt (size!898 (_1!902 (while0!216 (array!896!897 (size!898 tab!211) arrayconst!910) (_ bv0 32) tab!211))) (_ bv0 32)) (forall ((?z I_while0!216)) (not (and (= (while0!216_arg_0_1 ?z) (array!896!897 (size!898 tab!211) arrayconst!910)) (= (while0!216_arg_1_2 ?z) (_ bv0 32)) (= (while0!216_arg_2_3 ?z) tab!211))) )) (or (isPositive!206 (_1!902 (while0!216 (array!896!897 (size!898 tab!211) arrayconst!910) (_ bv0 32) tab!211)) (size!898 tab!211)) (forall ((?z I_isPositive!206)) (not (and (= (isPositive!206_arg_0_4 ?z) (_1!902 (while0!216 (array!896!897 (size!898 tab!211) arrayconst!910) (_ bv0 32) tab!211))) (= (isPositive!206_arg_1_5 ?z) (size!898 tab!211)))) ) (forall ((?z I_while0!216)) (not (and (= (while0!216_arg_0_1 ?z) (array!896!897 (size!898 tab!211) arrayconst!910)) (= (while0!216_arg_1_2 ?z) (_ bv0 32)) (= (while0!216_arg_2_3 ?z) tab!211))) ))) ))) (check-sat) - diff --git a/test/regress/regress1/fmf/agree466.smt2 b/test/regress/regress1/fmf/agree466.smt2 index bfbc50c9d..82983a51c 100644 --- a/test/regress/regress1/fmf/agree466.smt2 +++ b/test/regress/regress1/fmf/agree466.smt2 @@ -1,10 +1,10 @@ -; COMMAND-LINE: --finite-model-find --lang=smt2.5 +; COMMAND-LINE: --finite-model-find ; EXPECT: sat ; Preamble -------------- (set-logic AUFDTLIA) (set-info :status sat) -(declare-datatypes () ((UNIT (Unit)))) -(declare-datatypes () ((BOOL (Truth) (Falsity)))) +(declare-datatypes ((UNIT 0)) (((Unit)))) +(declare-datatypes ((BOOL 0)) (((Truth) (Falsity)))) ; Decls -------------- (declare-sort node$type 0) @@ -21,90 +21,90 @@ ;Nodes$disjoint_empty : (assert (forall ((a Nodes$t$type)) (= (Nodes$disjoint a Nodes$empty) Truth))) ;Nodes$disjoint_comm : -(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (= (Nodes$disjoint a b) +(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (= (Nodes$disjoint a b) (Nodes$disjoint b a)))) ;Nodes$mem_empty : -(assert (forall ((e Nodes$elem$type)) (not (= (Nodes$mem e Nodes$empty) +(assert (forall ((e Nodes$elem$type)) (not (= (Nodes$mem e Nodes$empty) Truth)))) ;Nodes$mem_add : -(assert (forall ((x Nodes$elem$type) (y Nodes$elem$type) (s Nodes$t$type)) - (= (Nodes$mem x (Nodes$add y s)) (ite (or (= x y) (= (Nodes$mem x s) - Truth)) Truth +(assert (forall ((x Nodes$elem$type) (y Nodes$elem$type) (s Nodes$t$type)) + (= (Nodes$mem x (Nodes$add y s)) (ite (or (= x y) (= (Nodes$mem x s) + Truth)) Truth Falsity)))) ;Nodes$mem_remove : -(assert (forall ((x Nodes$elem$type) (y Nodes$elem$type) (s Nodes$t$type)) - (= (Nodes$mem x (Nodes$remove y s)) (ite (and (not (= x y)) (= - (Nodes$mem - x s) - Truth)) +(assert (forall ((x Nodes$elem$type) (y Nodes$elem$type) (s Nodes$t$type)) + (= (Nodes$mem x (Nodes$remove y s)) (ite (and (not (= x y)) (= + (Nodes$mem + x s) + Truth)) Truth Falsity)))) ;Nodes$mem_union1 : -(assert (forall ((x Nodes$elem$type) (a Nodes$t$type)) (=> (= (Nodes$mem x a) - Truth) (forall - ((b Nodes$t$type)) - (= - (Nodes$mem - x (Nodes$union - a b)) +(assert (forall ((x Nodes$elem$type) (a Nodes$t$type)) (=> (= (Nodes$mem x a) + Truth) (forall + ((b Nodes$t$type)) + (= + (Nodes$mem + x (Nodes$union + a b)) Truth))))) ;Nodes$mem_union2 : -(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (= (Nodes$union a b) +(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (= (Nodes$union a b) (Nodes$union b a)))) ;Nodes$mem_union3 : -(assert (forall ((x Nodes$elem$type) (a Nodes$t$type) (b Nodes$t$type)) - (=> (= (Nodes$mem x (Nodes$union a b)) Truth) (or (= (Nodes$mem x a) - Truth) (= (Nodes$mem - x b) +(assert (forall ((x Nodes$elem$type) (a Nodes$t$type) (b Nodes$t$type)) + (=> (= (Nodes$mem x (Nodes$union a b)) Truth) (or (= (Nodes$mem x a) + Truth) (= (Nodes$mem + x b) Truth))))) ;Nodes$mem_union4 : (assert (forall ((a Nodes$t$type)) (= (Nodes$union a a) a))) ;Nodes$mem_union5 : (assert (forall ((a Nodes$t$type)) (= (Nodes$union a Nodes$empty) a))) ;Nodes$empty_union : -(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (=> (= (Nodes$union a b) - Nodes$empty) +(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (=> (= (Nodes$union a b) + Nodes$empty) (= a Nodes$empty)))) ;Nodes$card_empty : (assert (= (Nodes$cardinality Nodes$empty) 0)) ;Nodes$card_zero : -(assert (forall ((s Nodes$t$type)) (=> (= (Nodes$cardinality s) 0) (= - s +(assert (forall ((s Nodes$t$type)) (=> (= (Nodes$cardinality s) 0) (= + s Nodes$empty)))) ;Nodes$card_non_negative : (assert (forall ((s Nodes$t$type)) (>= (Nodes$cardinality s) 0))) ;Nodes$card_add : -(assert (forall ((x Nodes$elem$type) (s Nodes$t$type)) (= (Nodes$cardinality - (Nodes$add x s)) - (ite (= (Nodes$mem - x s) Truth) - (Nodes$cardinality - s) (+ (Nodes$cardinality +(assert (forall ((x Nodes$elem$type) (s Nodes$t$type)) (= (Nodes$cardinality + (Nodes$add x s)) + (ite (= (Nodes$mem + x s) Truth) + (Nodes$cardinality + s) (+ (Nodes$cardinality s) 1))))) ;Nodes$card_remove : -(assert (forall ((x Nodes$elem$type) (s Nodes$t$type)) (= (Nodes$cardinality - (Nodes$remove x s)) - (ite (= (Nodes$mem - x s) Truth) (- - (Nodes$cardinality - s) 1) (Nodes$cardinality +(assert (forall ((x Nodes$elem$type) (s Nodes$t$type)) (= (Nodes$cardinality + (Nodes$remove x s)) + (ite (= (Nodes$mem + x s) Truth) (- + (Nodes$cardinality + s) 1) (Nodes$cardinality s))))) ;Nodes$card_union : -(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (=> (= (Nodes$disjoint - a b) Truth) - (= (Nodes$cardinality - (Nodes$union a b)) (+ - (Nodes$cardinality +(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (=> (= (Nodes$disjoint + a b) Truth) + (= (Nodes$cardinality + (Nodes$union a b)) (+ + (Nodes$cardinality a) (Nodes$cardinality b)))))) (declare-fun Nodes$eq (Nodes$t$type Nodes$t$type) BOOL) ;Nodes$eq_is_equality : -(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (= (Nodes$eq a b) - (ite (= a b) Truth +(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (= (Nodes$eq a b) + (ite (= a b) Truth Falsity)))) ;Nodes$equal1 : -(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (=> (forall ((x Nodes$elem$type)) - (= (Nodes$mem x a) - (Nodes$mem x b))) - (= (Nodes$eq a b) +(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (=> (forall ((x Nodes$elem$type)) + (= (Nodes$mem x a) + (Nodes$mem x b))) + (= (Nodes$eq a b) Truth)))) (define-sort Values$elem$type () value$type) (declare-sort Values$t$type 0) @@ -116,126 +116,126 @@ (declare-fun Values$union (Values$t$type Values$t$type) Values$t$type) (declare-fun Values$disjoint (Values$t$type Values$t$type) BOOL) ;Values$disjoint_empty : -(assert (forall ((a Values$t$type)) (= (Values$disjoint a Values$empty) +(assert (forall ((a Values$t$type)) (= (Values$disjoint a Values$empty) Truth))) ;Values$disjoint_comm : -(assert (forall ((a Values$t$type) (b Values$t$type)) (= (Values$disjoint - a b) (Values$disjoint +(assert (forall ((a Values$t$type) (b Values$t$type)) (= (Values$disjoint + a b) (Values$disjoint b a)))) ;Values$mem_empty : -(assert (forall ((e Values$elem$type)) (not (= (Values$mem e Values$empty) +(assert (forall ((e Values$elem$type)) (not (= (Values$mem e Values$empty) Truth)))) ;Values$mem_add : -(assert (forall ((x Values$elem$type) (y Values$elem$type) (s Values$t$type)) - (= (Values$mem x (Values$add y s)) (ite (or (= x y) (= (Values$mem - x s) Truth)) +(assert (forall ((x Values$elem$type) (y Values$elem$type) (s Values$t$type)) + (= (Values$mem x (Values$add y s)) (ite (or (= x y) (= (Values$mem + x s) Truth)) Truth Falsity)))) ;Values$mem_remove : -(assert (forall ((x Values$elem$type) (y Values$elem$type) (s Values$t$type)) - (= (Values$mem x (Values$remove y s)) (ite (and (not (= x y)) - (= (Values$mem x s) +(assert (forall ((x Values$elem$type) (y Values$elem$type) (s Values$t$type)) + (= (Values$mem x (Values$remove y s)) (ite (and (not (= x y)) + (= (Values$mem x s) Truth)) Truth Falsity)))) ;Values$mem_union1 : -(assert (forall ((x Values$elem$type) (a Values$t$type)) (=> (= (Values$mem - x a) - Truth) (forall +(assert (forall ((x Values$elem$type) (a Values$t$type)) (=> (= (Values$mem + x a) + Truth) (forall ( - (b Values$t$type)) - (= - (Values$mem - x - (Values$union - a b)) + (b Values$t$type)) + (= + (Values$mem + x + (Values$union + a b)) Truth))))) ;Values$mem_union2 : -(assert (forall ((a Values$t$type) (b Values$t$type)) (= (Values$union a b) +(assert (forall ((a Values$t$type) (b Values$t$type)) (= (Values$union a b) (Values$union b a)))) ;Values$mem_union3 : -(assert (forall ((x Values$elem$type) (a Values$t$type) (b Values$t$type)) - (=> (= (Values$mem x (Values$union a b)) Truth) (or (= (Values$mem - x a) Truth) - (= (Values$mem x b) +(assert (forall ((x Values$elem$type) (a Values$t$type) (b Values$t$type)) + (=> (= (Values$mem x (Values$union a b)) Truth) (or (= (Values$mem + x a) Truth) + (= (Values$mem x b) Truth))))) ;Values$mem_union4 : (assert (forall ((a Values$t$type)) (= (Values$union a a) a))) ;Values$mem_union5 : (assert (forall ((a Values$t$type)) (= (Values$union a Values$empty) a))) ;Values$empty_union : -(assert (forall ((a Values$t$type) (b Values$t$type)) (=> (= (Values$union - a b) Values$empty) +(assert (forall ((a Values$t$type) (b Values$t$type)) (=> (= (Values$union + a b) Values$empty) (= a Values$empty)))) ;Values$card_empty : (assert (= (Values$cardinality Values$empty) 0)) ;Values$card_zero : -(assert (forall ((s Values$t$type)) (=> (= (Values$cardinality s) 0) +(assert (forall ((s Values$t$type)) (=> (= (Values$cardinality s) 0) (= s Values$empty)))) ;Values$card_non_negative : (assert (forall ((s Values$t$type)) (>= (Values$cardinality s) 0))) ;Values$card_add : -(assert (forall ((x Values$elem$type) (s Values$t$type)) (= (Values$cardinality - (Values$add x s)) - (ite (= (Values$mem - x s) - Truth) - (Values$cardinality - s) (+ (Values$cardinality +(assert (forall ((x Values$elem$type) (s Values$t$type)) (= (Values$cardinality + (Values$add x s)) + (ite (= (Values$mem + x s) + Truth) + (Values$cardinality + s) (+ (Values$cardinality s) 1))))) ;Values$card_remove : -(assert (forall ((x Values$elem$type) (s Values$t$type)) (= (Values$cardinality - (Values$remove - x s)) (ite - (= - (Values$mem - x s) - Truth) (- - (Values$cardinality - s) - 1) - (Values$cardinality +(assert (forall ((x Values$elem$type) (s Values$t$type)) (= (Values$cardinality + (Values$remove + x s)) (ite + (= + (Values$mem + x s) + Truth) (- + (Values$cardinality + s) + 1) + (Values$cardinality s))))) ;Values$card_union : -(assert (forall ((a Values$t$type) (b Values$t$type)) (=> (= (Values$disjoint - a b) Truth) - (= (Values$cardinality - (Values$union a b)) (+ - (Values$cardinality - a) (Values$cardinality +(assert (forall ((a Values$t$type) (b Values$t$type)) (=> (= (Values$disjoint + a b) Truth) + (= (Values$cardinality + (Values$union a b)) (+ + (Values$cardinality + a) (Values$cardinality b)))))) (declare-fun Values$eq (Values$t$type Values$t$type) BOOL) ;Values$eq_is_equality : -(assert (forall ((a Values$t$type) (b Values$t$type)) (= (Values$eq a b) - (ite (= a b) Truth +(assert (forall ((a Values$t$type) (b Values$t$type)) (= (Values$eq a b) + (ite (= a b) Truth Falsity)))) ;Values$equal1 : -(assert (forall ((a Values$t$type) (b Values$t$type)) (=> (forall ((x Values$elem$type)) - (= (Values$mem x a) - (Values$mem - x b))) (= (Values$eq - a b) +(assert (forall ((a Values$t$type) (b Values$t$type)) (=> (forall ((x Values$elem$type)) + (= (Values$mem x a) + (Values$mem + x b))) (= (Values$eq + a b) Truth)))) (define-sort node_set$type () (Array node$type BOOL)) (declare-fun mk_array_1 () (Array node$type BOOL)) ;mk_array_1_def : -(assert (forall ((mk_array_1_index node$type)) (= (select mk_array_1 +(assert (forall ((mk_array_1_index node$type)) (= (select mk_array_1 mk_array_1_index) Falsity))) (define-fun empty_node_set () node_set$type mk_array_1) (define-sort node_pair_set$type () (Array node$type (Array node$type BOOL))) (declare-fun mk_array_2 () (Array node$type BOOL)) ;mk_array_2_def : -(assert (forall ((mk_array_2_index node$type)) (= (select mk_array_2 +(assert (forall ((mk_array_2_index node$type)) (= (select mk_array_2 mk_array_2_index) Falsity))) (declare-fun mk_array_3 () (Array node$type (Array node$type BOOL))) ;mk_array_3_def : -(assert (forall ((mk_array_3_index node$type)) (= (select mk_array_3 +(assert (forall ((mk_array_3_index node$type)) (= (select mk_array_3 mk_array_3_index) mk_array_2))) (define-fun empty_node_pair_set () node_pair_set$type mk_array_3) (declare-fun mk_array_4 () (Array node$type BOOL)) ;mk_array_4_def : -(assert (forall ((mk_array_4_index node$type)) (= (select mk_array_4 +(assert (forall ((mk_array_4_index node$type)) (= (select mk_array_4 mk_array_4_index) Truth))) (declare-fun mk_array_5 () (Array node$type (Array node$type BOOL))) ;mk_array_5_def : -(assert (forall ((mk_array_5_index node$type)) (= (select mk_array_5 +(assert (forall ((mk_array_5_index node$type)) (= (select mk_array_5 mk_array_5_index) mk_array_4))) (define-fun full_node_pair_set () node_pair_set$type mk_array_5) (declare-fun input () (Array node$type value$type)) @@ -249,31 +249,31 @@ (define-fun null_message () message$type Values$empty) (declare-fun mk_array_6 () (Array node$type message$type)) ;mk_array_6_def : -(assert (forall ((mk_array_6_index node$type)) (= (select mk_array_6 +(assert (forall ((mk_array_6_index node$type)) (= (select mk_array_6 mk_array_6_index) null_message))) (define-fun null_message_set () message_set$type mk_array_6) (define-fun null_state () state$type Values$empty) (declare-fun mk_array_7 () (Array node$type state$type)) ;mk_array_7_def : -(assert (forall ((mk_array_7_index node$type)) (= (select mk_array_7 +(assert (forall ((mk_array_7_index node$type)) (= (select mk_array_7 mk_array_7_index) null_state))) (define-fun null_state_set () state_set$type mk_array_7) (declare-fun choose (Values$t$type) value$type) ;choosen_value : -(assert (forall ((vals Values$t$type)) (or (= vals Values$empty) (= (Values$mem - (choose - vals) - vals) +(assert (forall ((vals Values$t$type)) (or (= vals Values$empty) (= (Values$mem + (choose + vals) + vals) Truth)))) (define-sort failure_pattern$type () node_pair_set$type) -(define-fun is_faulty ((p node$type) (deliver failure_pattern$type)) BOOL -(ite (exists ((q node$type)) (not (= (select (select deliver p) q) Truth))) +(define-fun is_faulty ((p node$type) (deliver failure_pattern$type)) BOOL +(ite (exists ((q node$type)) (not (= (select (select deliver p) q) Truth))) Truth Falsity)) -(define-fun is_silent ((p node$type) (deliver failure_pattern$type)) BOOL -(ite (forall ((q node$type)) (not (= (select (select deliver p) q) Truth))) +(define-fun is_silent ((p node$type) (deliver failure_pattern$type)) BOOL +(ite (forall ((q node$type)) (not (= (select (select deliver p) q) Truth))) Truth Falsity)) -(declare-datatypes () ((phase_state$type (init_phase) (send_phase) (recv_phase) (comp_phase)))) -(declare-datatypes () ((clean_state$type (before) (active) (after)))) +(declare-datatypes ((phase_state$type 0)) (((init_phase) (send_phase) (recv_phase) (comp_phase)))) +(declare-datatypes ((clean_state$type 0)) (((before) (active) (after)))) ; Var Decls -------------- (declare-fun my_compute$result$1 () state$type) @@ -295,180 +295,180 @@ Truth Falsity)) (declare-fun global_state$1 () state_set$type) ; Asserts -------------- -(assert (not (=> (forall ((n node$type)) (=> - (and - (= - (select - chosen - n) - Truth) - (= - round (+ - t - 1))) - (and - (forall +(assert (not (=> (forall ((n node$type)) (=> + (and + (= + (select + chosen + n) + Truth) + (= + round (+ + t + 1))) + (and + (forall ( - (n node$type) (m node$type)) - (= - (select - (select - send_done - n) - m) - Truth)) - (forall + (n node$type) (m node$type)) + (= + (select + (select + send_done + n) + m) + Truth)) + (forall ( - (n node$type) (m node$type)) - (= - (select - (select - recv_done - n) - m) - Truth))))) - (=> (= phase comp_phase) (=> - (not - (= (select - comp_done - compute$n) - Truth)) - (=> - (= my_compute$result$1 - (select - global_state - compute$n)) - (=> - (= global_state$1 - (store - global_state - compute$n - my_compute$result$1)) - (=> - (= my_can_decide$result$1 - (ite - (= round (+ - t 1)) - Truth - Falsity)) - (=> - (= compute$can_decide$0$1 - my_can_decide$result$1) - (= (ite - (= - compute$can_decide$0$1 - Truth) - (ite - (=> - (= - my_decide$result$1 - (choose - (select - global_state$1 - compute$n))) - (=> - (= - output$1 - (store - output - compute$n - my_decide$result$1)) - (=> - (= - chosen$1 - (store - chosen - compute$n - Truth)) - (=> - (= - comp_done$1 - (store - comp_done - compute$n - Truth)) - (forall + (n node$type) (m node$type)) + (= + (select + (select + recv_done + n) + m) + Truth))))) + (=> (= phase comp_phase) (=> + (not + (= (select + comp_done + compute$n) + Truth)) + (=> + (= my_compute$result$1 + (select + global_state + compute$n)) + (=> + (= global_state$1 + (store + global_state + compute$n + my_compute$result$1)) + (=> + (= my_can_decide$result$1 + (ite + (= round (+ + t 1)) + Truth + Falsity)) + (=> + (= compute$can_decide$0$1 + my_can_decide$result$1) + (= (ite + (= + compute$can_decide$0$1 + Truth) + (ite + (=> + (= + my_decide$result$1 + (choose + (select + global_state$1 + compute$n))) + (=> + (= + output$1 + (store + output + compute$n + my_decide$result$1)) + (=> + (= + chosen$1 + (store + chosen + compute$n + Truth)) + (=> + (= + comp_done$1 + (store + comp_done + compute$n + Truth)) + (forall ( - (n node$type)) - (=> - (and - (= - (select - chosen$1 - n) - Truth) - (= - round (+ - t - 1))) - (and - (forall + (n node$type)) + (=> + (and + (= + (select + chosen$1 + n) + Truth) + (= + round (+ + t + 1))) + (and + (forall ( - (n node$type) (m node$type)) - (= - (select - (select - send_done - n) - m) - Truth)) - (forall + (n node$type) (m node$type)) + (= + (select + (select + send_done + n) + m) + Truth)) + (forall ( - (n node$type) (m node$type)) - (= - (select - (select - recv_done - n) - m) - Truth))))))))) - Truth - Falsity) - (ite - (=> - (= - comp_done$1 - (store - comp_done - compute$n - Truth)) - (forall + (n node$type) (m node$type)) + (= + (select + (select + recv_done + n) + m) + Truth))))))))) + Truth + Falsity) + (ite + (=> + (= + comp_done$1 + (store + comp_done + compute$n + Truth)) + (forall ( - (n node$type)) - (=> - (and - (= - (select - chosen - n) - Truth) - (= - round (+ - t - 1))) - (and - (forall + (n node$type)) + (=> + (and + (= + (select + chosen + n) + Truth) + (= + round (+ + t + 1))) + (and + (forall ( - (n node$type) (m node$type)) - (= - (select - (select - send_done - n) - m) - Truth)) - (forall + (n node$type) (m node$type)) + (= + (select + (select + send_done + n) + m) + Truth)) + (forall ( - (n node$type) (m node$type)) - (= - (select - (select - recv_done - n) - m) - Truth)))))) - Truth - Falsity)) + (n node$type) (m node$type)) + (= + (select + (select + recv_done + n) + m) + Truth)))))) + Truth + Falsity)) Truth)))))))))) - + (check-sat) diff --git a/test/regress/regress1/fmf/agree467.smt2 b/test/regress/regress1/fmf/agree467.smt2 index b2ac3364e..522609b11 100644 --- a/test/regress/regress1/fmf/agree467.smt2 +++ b/test/regress/regress1/fmf/agree467.smt2 @@ -1,10 +1,10 @@ -; COMMAND-LINE: --finite-model-find --lang=smt2.5 +; COMMAND-LINE: --finite-model-find ; EXPECT: unsat ; Preamble -------------- (set-logic AUFDTLIA) (set-info :status unsat) -(declare-datatypes () ((UNIT (Unit)))) -(declare-datatypes () ((BOOL (Truth) (Falsity)))) +(declare-datatypes ((UNIT 0)) (((Unit)))) +(declare-datatypes ((BOOL 0)) (((Truth) (Falsity)))) ; Decls -------------- (declare-sort node$type 0) @@ -21,90 +21,90 @@ ;Nodes$disjoint_empty : (assert (forall ((a Nodes$t$type)) (= (Nodes$disjoint a Nodes$empty) Truth))) ;Nodes$disjoint_comm : -(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (= (Nodes$disjoint a b) +(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (= (Nodes$disjoint a b) (Nodes$disjoint b a)))) ;Nodes$mem_empty : -(assert (forall ((e Nodes$elem$type)) (not (= (Nodes$mem e Nodes$empty) +(assert (forall ((e Nodes$elem$type)) (not (= (Nodes$mem e Nodes$empty) Truth)))) ;Nodes$mem_add : -(assert (forall ((x Nodes$elem$type) (y Nodes$elem$type) (s Nodes$t$type)) - (= (Nodes$mem x (Nodes$add y s)) (ite (or (= x y) (= (Nodes$mem x s) - Truth)) Truth +(assert (forall ((x Nodes$elem$type) (y Nodes$elem$type) (s Nodes$t$type)) + (= (Nodes$mem x (Nodes$add y s)) (ite (or (= x y) (= (Nodes$mem x s) + Truth)) Truth Falsity)))) ;Nodes$mem_remove : -(assert (forall ((x Nodes$elem$type) (y Nodes$elem$type) (s Nodes$t$type)) - (= (Nodes$mem x (Nodes$remove y s)) (ite (and (not (= x y)) (= - (Nodes$mem - x s) - Truth)) +(assert (forall ((x Nodes$elem$type) (y Nodes$elem$type) (s Nodes$t$type)) + (= (Nodes$mem x (Nodes$remove y s)) (ite (and (not (= x y)) (= + (Nodes$mem + x s) + Truth)) Truth Falsity)))) ;Nodes$mem_union1 : -(assert (forall ((x Nodes$elem$type) (a Nodes$t$type)) (=> (= (Nodes$mem x a) - Truth) (forall - ((b Nodes$t$type)) - (= - (Nodes$mem - x (Nodes$union - a b)) +(assert (forall ((x Nodes$elem$type) (a Nodes$t$type)) (=> (= (Nodes$mem x a) + Truth) (forall + ((b Nodes$t$type)) + (= + (Nodes$mem + x (Nodes$union + a b)) Truth))))) ;Nodes$mem_union2 : -(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (= (Nodes$union a b) +(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (= (Nodes$union a b) (Nodes$union b a)))) ;Nodes$mem_union3 : -(assert (forall ((x Nodes$elem$type) (a Nodes$t$type) (b Nodes$t$type)) - (=> (= (Nodes$mem x (Nodes$union a b)) Truth) (or (= (Nodes$mem x a) - Truth) (= (Nodes$mem - x b) +(assert (forall ((x Nodes$elem$type) (a Nodes$t$type) (b Nodes$t$type)) + (=> (= (Nodes$mem x (Nodes$union a b)) Truth) (or (= (Nodes$mem x a) + Truth) (= (Nodes$mem + x b) Truth))))) ;Nodes$mem_union4 : (assert (forall ((a Nodes$t$type)) (= (Nodes$union a a) a))) ;Nodes$mem_union5 : (assert (forall ((a Nodes$t$type)) (= (Nodes$union a Nodes$empty) a))) ;Nodes$empty_union : -(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (=> (= (Nodes$union a b) - Nodes$empty) +(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (=> (= (Nodes$union a b) + Nodes$empty) (= a Nodes$empty)))) ;Nodes$card_empty : (assert (= (Nodes$cardinality Nodes$empty) 0)) ;Nodes$card_zero : -(assert (forall ((s Nodes$t$type)) (=> (= (Nodes$cardinality s) 0) (= - s +(assert (forall ((s Nodes$t$type)) (=> (= (Nodes$cardinality s) 0) (= + s Nodes$empty)))) ;Nodes$card_non_negative : (assert (forall ((s Nodes$t$type)) (>= (Nodes$cardinality s) 0))) ;Nodes$card_add : -(assert (forall ((x Nodes$elem$type) (s Nodes$t$type)) (= (Nodes$cardinality - (Nodes$add x s)) - (ite (= (Nodes$mem - x s) Truth) - (Nodes$cardinality - s) (+ (Nodes$cardinality +(assert (forall ((x Nodes$elem$type) (s Nodes$t$type)) (= (Nodes$cardinality + (Nodes$add x s)) + (ite (= (Nodes$mem + x s) Truth) + (Nodes$cardinality + s) (+ (Nodes$cardinality s) 1))))) ;Nodes$card_remove : -(assert (forall ((x Nodes$elem$type) (s Nodes$t$type)) (= (Nodes$cardinality - (Nodes$remove x s)) - (ite (= (Nodes$mem - x s) Truth) (- - (Nodes$cardinality - s) 1) (Nodes$cardinality +(assert (forall ((x Nodes$elem$type) (s Nodes$t$type)) (= (Nodes$cardinality + (Nodes$remove x s)) + (ite (= (Nodes$mem + x s) Truth) (- + (Nodes$cardinality + s) 1) (Nodes$cardinality s))))) ;Nodes$card_union : -(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (=> (= (Nodes$disjoint - a b) Truth) - (= (Nodes$cardinality - (Nodes$union a b)) (+ - (Nodes$cardinality +(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (=> (= (Nodes$disjoint + a b) Truth) + (= (Nodes$cardinality + (Nodes$union a b)) (+ + (Nodes$cardinality a) (Nodes$cardinality b)))))) (declare-fun Nodes$eq (Nodes$t$type Nodes$t$type) BOOL) ;Nodes$eq_is_equality : -(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (= (Nodes$eq a b) - (ite (= a b) Truth +(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (= (Nodes$eq a b) + (ite (= a b) Truth Falsity)))) ;Nodes$equal1 : -(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (=> (forall ((x Nodes$elem$type)) - (= (Nodes$mem x a) - (Nodes$mem x b))) - (= (Nodes$eq a b) +(assert (forall ((a Nodes$t$type) (b Nodes$t$type)) (=> (forall ((x Nodes$elem$type)) + (= (Nodes$mem x a) + (Nodes$mem x b))) + (= (Nodes$eq a b) Truth)))) (define-sort Values$elem$type () value$type) (declare-sort Values$t$type 0) @@ -116,126 +116,126 @@ (declare-fun Values$union (Values$t$type Values$t$type) Values$t$type) (declare-fun Values$disjoint (Values$t$type Values$t$type) BOOL) ;Values$disjoint_empty : -(assert (forall ((a Values$t$type)) (= (Values$disjoint a Values$empty) +(assert (forall ((a Values$t$type)) (= (Values$disjoint a Values$empty) Truth))) ;Values$disjoint_comm : -(assert (forall ((a Values$t$type) (b Values$t$type)) (= (Values$disjoint - a b) (Values$disjoint +(assert (forall ((a Values$t$type) (b Values$t$type)) (= (Values$disjoint + a b) (Values$disjoint b a)))) ;Values$mem_empty : -(assert (forall ((e Values$elem$type)) (not (= (Values$mem e Values$empty) +(assert (forall ((e Values$elem$type)) (not (= (Values$mem e Values$empty) Truth)))) ;Values$mem_add : -(assert (forall ((x Values$elem$type) (y Values$elem$type) (s Values$t$type)) - (= (Values$mem x (Values$add y s)) (ite (or (= x y) (= (Values$mem - x s) Truth)) +(assert (forall ((x Values$elem$type) (y Values$elem$type) (s Values$t$type)) + (= (Values$mem x (Values$add y s)) (ite (or (= x y) (= (Values$mem + x s) Truth)) Truth Falsity)))) ;Values$mem_remove : -(assert (forall ((x Values$elem$type) (y Values$elem$type) (s Values$t$type)) - (= (Values$mem x (Values$remove y s)) (ite (and (not (= x y)) - (= (Values$mem x s) +(assert (forall ((x Values$elem$type) (y Values$elem$type) (s Values$t$type)) + (= (Values$mem x (Values$remove y s)) (ite (and (not (= x y)) + (= (Values$mem x s) Truth)) Truth Falsity)))) ;Values$mem_union1 : -(assert (forall ((x Values$elem$type) (a Values$t$type)) (=> (= (Values$mem - x a) - Truth) (forall +(assert (forall ((x Values$elem$type) (a Values$t$type)) (=> (= (Values$mem + x a) + Truth) (forall ( - (b Values$t$type)) - (= - (Values$mem - x - (Values$union - a b)) + (b Values$t$type)) + (= + (Values$mem + x + (Values$union + a b)) Truth))))) ;Values$mem_union2 : -(assert (forall ((a Values$t$type) (b Values$t$type)) (= (Values$union a b) +(assert (forall ((a Values$t$type) (b Values$t$type)) (= (Values$union a b) (Values$union b a)))) ;Values$mem_union3 : -(assert (forall ((x Values$elem$type) (a Values$t$type) (b Values$t$type)) - (=> (= (Values$mem x (Values$union a b)) Truth) (or (= (Values$mem - x a) Truth) - (= (Values$mem x b) +(assert (forall ((x Values$elem$type) (a Values$t$type) (b Values$t$type)) + (=> (= (Values$mem x (Values$union a b)) Truth) (or (= (Values$mem + x a) Truth) + (= (Values$mem x b) Truth))))) ;Values$mem_union4 : (assert (forall ((a Values$t$type)) (= (Values$union a a) a))) ;Values$mem_union5 : (assert (forall ((a Values$t$type)) (= (Values$union a Values$empty) a))) ;Values$empty_union : -(assert (forall ((a Values$t$type) (b Values$t$type)) (=> (= (Values$union - a b) Values$empty) +(assert (forall ((a Values$t$type) (b Values$t$type)) (=> (= (Values$union + a b) Values$empty) (= a Values$empty)))) ;Values$card_empty : (assert (= (Values$cardinality Values$empty) 0)) ;Values$card_zero : -(assert (forall ((s Values$t$type)) (=> (= (Values$cardinality s) 0) +(assert (forall ((s Values$t$type)) (=> (= (Values$cardinality s) 0) (= s Values$empty)))) ;Values$card_non_negative : (assert (forall ((s Values$t$type)) (>= (Values$cardinality s) 0))) ;Values$card_add : -(assert (forall ((x Values$elem$type) (s Values$t$type)) (= (Values$cardinality - (Values$add x s)) - (ite (= (Values$mem - x s) - Truth) - (Values$cardinality - s) (+ (Values$cardinality +(assert (forall ((x Values$elem$type) (s Values$t$type)) (= (Values$cardinality + (Values$add x s)) + (ite (= (Values$mem + x s) + Truth) + (Values$cardinality + s) (+ (Values$cardinality s) 1))))) ;Values$card_remove : -(assert (forall ((x Values$elem$type) (s Values$t$type)) (= (Values$cardinality - (Values$remove - x s)) (ite - (= - (Values$mem - x s) - Truth) (- - (Values$cardinality - s) - 1) - (Values$cardinality +(assert (forall ((x Values$elem$type) (s Values$t$type)) (= (Values$cardinality + (Values$remove + x s)) (ite + (= + (Values$mem + x s) + Truth) (- + (Values$cardinality + s) + 1) + (Values$cardinality s))))) ;Values$card_union : -(assert (forall ((a Values$t$type) (b Values$t$type)) (=> (= (Values$disjoint - a b) Truth) - (= (Values$cardinality - (Values$union a b)) (+ - (Values$cardinality - a) (Values$cardinality +(assert (forall ((a Values$t$type) (b Values$t$type)) (=> (= (Values$disjoint + a b) Truth) + (= (Values$cardinality + (Values$union a b)) (+ + (Values$cardinality + a) (Values$cardinality b)))))) (declare-fun Values$eq (Values$t$type Values$t$type) BOOL) ;Values$eq_is_equality : -(assert (forall ((a Values$t$type) (b Values$t$type)) (= (Values$eq a b) - (ite (= a b) Truth +(assert (forall ((a Values$t$type) (b Values$t$type)) (= (Values$eq a b) + (ite (= a b) Truth Falsity)))) ;Values$equal1 : -(assert (forall ((a Values$t$type) (b Values$t$type)) (=> (forall ((x Values$elem$type)) - (= (Values$mem x a) - (Values$mem - x b))) (= (Values$eq - a b) +(assert (forall ((a Values$t$type) (b Values$t$type)) (=> (forall ((x Values$elem$type)) + (= (Values$mem x a) + (Values$mem + x b))) (= (Values$eq + a b) Truth)))) (define-sort node_set$type () (Array node$type BOOL)) (declare-fun mk_array_1 () (Array node$type BOOL)) ;mk_array_1_def : -(assert (forall ((mk_array_1_index node$type)) (= (select mk_array_1 +(assert (forall ((mk_array_1_index node$type)) (= (select mk_array_1 mk_array_1_index) Falsity))) (define-fun empty_node_set () node_set$type mk_array_1) (define-sort node_pair_set$type () (Array node$type (Array node$type BOOL))) (declare-fun mk_array_2 () (Array node$type BOOL)) ;mk_array_2_def : -(assert (forall ((mk_array_2_index node$type)) (= (select mk_array_2 +(assert (forall ((mk_array_2_index node$type)) (= (select mk_array_2 mk_array_2_index) Falsity))) (declare-fun mk_array_3 () (Array node$type (Array node$type BOOL))) ;mk_array_3_def : -(assert (forall ((mk_array_3_index node$type)) (= (select mk_array_3 +(assert (forall ((mk_array_3_index node$type)) (= (select mk_array_3 mk_array_3_index) mk_array_2))) (define-fun empty_node_pair_set () node_pair_set$type mk_array_3) (declare-fun mk_array_4 () (Array node$type BOOL)) ;mk_array_4_def : -(assert (forall ((mk_array_4_index node$type)) (= (select mk_array_4 +(assert (forall ((mk_array_4_index node$type)) (= (select mk_array_4 mk_array_4_index) Truth))) (declare-fun mk_array_5 () (Array node$type (Array node$type BOOL))) ;mk_array_5_def : -(assert (forall ((mk_array_5_index node$type)) (= (select mk_array_5 +(assert (forall ((mk_array_5_index node$type)) (= (select mk_array_5 mk_array_5_index) mk_array_4))) (define-fun full_node_pair_set () node_pair_set$type mk_array_5) (declare-fun input () (Array node$type value$type)) @@ -249,31 +249,31 @@ (define-fun null_message () message$type Values$empty) (declare-fun mk_array_6 () (Array node$type message$type)) ;mk_array_6_def : -(assert (forall ((mk_array_6_index node$type)) (= (select mk_array_6 +(assert (forall ((mk_array_6_index node$type)) (= (select mk_array_6 mk_array_6_index) null_message))) (define-fun null_message_set () message_set$type mk_array_6) (define-fun null_state () state$type Values$empty) (declare-fun mk_array_7 () (Array node$type state$type)) ;mk_array_7_def : -(assert (forall ((mk_array_7_index node$type)) (= (select mk_array_7 +(assert (forall ((mk_array_7_index node$type)) (= (select mk_array_7 mk_array_7_index) null_state))) (define-fun null_state_set () state_set$type mk_array_7) (declare-fun choose (Values$t$type) value$type) ;choosen_value : -(assert (forall ((vals Values$t$type)) (or (= vals Values$empty) (= (Values$mem - (choose - vals) - vals) +(assert (forall ((vals Values$t$type)) (or (= vals Values$empty) (= (Values$mem + (choose + vals) + vals) Truth)))) (define-sort failure_pattern$type () node_pair_set$type) -(define-fun is_faulty ((p node$type) (deliver failure_pattern$type)) BOOL -(ite (exists ((q node$type)) (not (= (select (select deliver p) q) Truth))) +(define-fun is_faulty ((p node$type) (deliver failure_pattern$type)) BOOL +(ite (exists ((q node$type)) (not (= (select (select deliver p) q) Truth))) Truth Falsity)) -(define-fun is_silent ((p node$type) (deliver failure_pattern$type)) BOOL -(ite (forall ((q node$type)) (not (= (select (select deliver p) q) Truth))) +(define-fun is_silent ((p node$type) (deliver failure_pattern$type)) BOOL +(ite (forall ((q node$type)) (not (= (select (select deliver p) q) Truth))) Truth Falsity)) -(declare-datatypes () ((phase_state$type (init_phase) (send_phase) (recv_phase) (comp_phase)))) -(declare-datatypes () ((clean_state$type (before) (active) (after)))) +(declare-datatypes ((phase_state$type 0)) (((init_phase) (send_phase) (recv_phase) (comp_phase)))) +(declare-datatypes ((clean_state$type 0)) (((before) (active) (after)))) ; Var Decls -------------- (declare-fun init_done () node_set$type) @@ -293,49 +293,49 @@ Truth Falsity)) ; Asserts -------------- (declare-fun mk_array_8 () (Array node$type BOOL)) ;mk_array_8_def : -(assert (forall ((mk_array_8_index node$type)) (= (select mk_array_8 +(assert (forall ((mk_array_8_index node$type)) (= (select mk_array_8 mk_array_8_index) Falsity))) (declare-fun mk_array_9 () (Array node$type message_set$type)) ;mk_array_9_def : -(assert (forall ((mk_array_9_index node$type)) (= (select mk_array_9 +(assert (forall ((mk_array_9_index node$type)) (= (select mk_array_9 mk_array_9_index) null_message_set))) -(assert (not (=> (and (and (and (and (and (and (and (and (and (and (and - (and - (= - clean - before) - (= - global_state - null_state_set)) - (= - messages - mk_array_9)) - (= deliver_message - full_node_pair_set)) - (= comp_done - empty_node_set)) - (= recv_done empty_node_pair_set)) - (= send_done empty_node_pair_set)) - (= init_done empty_node_set)) - (= phase init_phase)) (= crashing - Nodes$empty)) - (= crashed Nodes$empty)) (= round 0)) (= chosen - mk_array_8)) - (forall ((n node$type)) (=> (and (= (select chosen n) Truth) - (= round (+ t 1))) (and (forall - ((n node$type) (m node$type)) - (= (select - (select - send_done - n) - m) - Truth)) +(assert (not (=> (and (and (and (and (and (and (and (and (and (and (and + (and + (= + clean + before) + (= + global_state + null_state_set)) + (= + messages + mk_array_9)) + (= deliver_message + full_node_pair_set)) + (= comp_done + empty_node_set)) + (= recv_done empty_node_pair_set)) + (= send_done empty_node_pair_set)) + (= init_done empty_node_set)) + (= phase init_phase)) (= crashing + Nodes$empty)) + (= crashed Nodes$empty)) (= round 0)) (= chosen + mk_array_8)) + (forall ((n node$type)) (=> (and (= (select chosen n) Truth) + (= round (+ t 1))) (and (forall + ((n node$type) (m node$type)) + (= (select + (select + send_done + n) + m) + Truth)) (forall ( - (n node$type) (m node$type)) - (= (select - (select - recv_done - n) m) + (n node$type) (m node$type)) + (= (select + (select + recv_done + n) m) Truth)))))))) (check-sat) diff --git a/test/regress/regress1/fmf/bug0909.smt2 b/test/regress/regress1/fmf/bug0909.smt2 index fc3054c0d..3823e4bcc 100644 --- a/test/regress/regress1/fmf/bug0909.smt2 +++ b/test/regress/regress1/fmf/bug0909.smt2 @@ -1,10 +1,10 @@ -; COMMAND-LINE: --finite-model-find --lang=smt2.5 +; COMMAND-LINE: --finite-model-find ; EXPECT: unsat ; Preamble -------------- (set-option :produce-models true) (set-logic ALL_SUPPORTED) -;(declare-datatypes () ((x2 (x1)))) -(declare-datatypes () ((x5 (x3) (x4)))) +;(declare-datatypes ((x2 0)) (((x1)))) +(declare-datatypes ((x5 0)) (((x3) (x4)))) (declare-sort x6 0) (declare-fun x7 (x6) x5) (declare-fun x8 () x6) @@ -14,18 +14,18 @@ (declare-fun x11 () Int) (declare-sort x12 0) (declare-fun x13 () x12) -(declare-datatypes () ((x17 (x14) (x15) (x16)))) -(declare-datatypes () ((x22 (x21 (x18 Int) (x19 Int) (x20 x5))))) -(declare-datatypes () ((x29 (x28 (x23 x5) (x24 x5) (x25 Int) (x26 Int) (x27 Int))))) +(declare-datatypes ((x17 0)) (((x14) (x15) (x16)))) +(declare-datatypes ((x22 0)) (((x21 (x18 Int) (x19 Int) (x20 x5))))) +(declare-datatypes ((x29 0)) (((x28 (x23 x5) (x24 x5) (x25 Int) (x26 Int) (x27 Int))))) (declare-sort x30 0) (declare-sort x31 0) (declare-fun x32 () x31) -(declare-datatypes () ((x36 (x35 (x33 Int) (x34 Int))))) +(declare-datatypes ((x36 0)) (((x35 (x33 Int) (x34 Int))))) (declare-fun x37 () x36) -(declare-datatypes () ((x45 (x44 (x38 x5) (x39 x6) (x40 x6) (x41 x6) (x42 x36) (x43 x31))))) +(declare-datatypes ((x45 0)) (((x44 (x38 x5) (x39 x6) (x40 x6) (x41 x6) (x42 x36) (x43 x31))))) (declare-fun x47 (x12) x31) (declare-fun x46 (x31) x12) -(declare-datatypes () ((x54 (x49 (x48 x22)) (x51 (x50 x29)) (d53 (s52 x12))))) +(declare-datatypes ((x54 0)) (((x49 (x48 x22)) (x51 (x50 x29)) (d53 (s52 x12))))) (declare-fun x57 (x22) x29) (declare-fun x56 (x12) x22) (declare-fun x55 (x29) x22) @@ -43,12 +43,12 @@ (declare-fun x58 (x12) x29) (declare-fun x71 () x6) (declare-fun x69 () x6) -(assert -(not - (=> (and - (forall ((x73 x30)) (=> (= x3 (x38 (select x62 x73))) (and (= (select x66 (x40 (select x62 x73))) x15) (= x3 (x7 (x40 (select x62 x73)))) (= (select x61 (x40 (select x62 x73))) x3) (= (x23 (ite (is-x49 (select x67 (x40 (select x62 x73)))) (let ((x74 (x48 (select x67 (x40 (select x62 x73)))))) (x57 x74)) (ite (is-x51 (select x67 (x40 (select x62 x73)))) (let ((x75 (x50 (select x67 (x40 (select x62 x73)))))) x75) (let ((x76 (s52 (select x67 (x40 (select x62 x73)))))) (x58 x76))))) x3)))) - (forall ((x72 x6)) (=> (and (= x16 (select x66 x72)) (= (x7 x72) x3) (= (select x61 x72) x3)) (= (ite (is-d53 (select x67 x72)) x3 x4) x3)))) - +(assert +(not + (=> (and + (forall ((x73 x30)) (=> (= x3 (x38 (select x62 x73))) (and (= (select x66 (x40 (select x62 x73))) x15) (= x3 (x7 (x40 (select x62 x73)))) (= (select x61 (x40 (select x62 x73))) x3) (= (x23 (ite ((_ is x49) (select x67 (x40 (select x62 x73)))) (let ((x74 (x48 (select x67 (x40 (select x62 x73)))))) (x57 x74)) (ite ((_ is x51) (select x67 (x40 (select x62 x73)))) (let ((x75 (x50 (select x67 (x40 (select x62 x73)))))) x75) (let ((x76 (s52 (select x67 (x40 (select x62 x73)))))) (x58 x76))))) x3)))) + (forall ((x72 x6)) (=> (and (= x16 (select x66 x72)) (= (x7 x72) x3) (= (select x61 x72) x3)) (= (ite ((_ is d53) (select x67 x72)) x3 x4) x3)))) + (= (ite (= (x38 (select x62 x63)) x3) (ite (and (=> (= (x40 (select x62 x63)) x69) (=> (= (x41 (select x62 x63)) x71) (=> (= x65 (store x67 x71 (d53 (x46 (x43 (select x62 x63)))))) (=> (= x70 (store x62 x63 (let ((x77 (select x62 x63))) (x44 (x38 x77) (x39 x77) (x40 x77) (x41 x77) (x42 x77) x32)))) (=> (= x68 (store x70 x63 (let ((x78 (select x70 x63))) (x44 x4 (x39 x78) (x40 x78) (x41 x78) (x42 x78) (x43 x78))))) - (=> (= (store x65 x69 (x51 (let ((x82 (ite (is-x49 (select x65 x69)) (let ((x79 (x48 (select x65 x69)))) (x57 x79)) (ite (is-x51 (select x65 x69)) (let ((x80 (x50 (select x65 x69)))) x80) (let ((x81 (s52 (select x65 x69)))) (x58 x81)))))) (x28 x4 x3 (x25 x82) (x26 x82) (+ (x27 (ite (is-x49 (select x65 x69)) (let ((x83 (x48 (select x65 x69)))) (x57 x83)) (ite (is-x51 (select x65 x69)) (let ((x84 (x50 (select x65 x69)))) x84) (let ((x85 (s52 (select x65 x69)))) (x58 x85))))) 1))))) x64) (forall ((x86 x6)) (=> (and (= x3 (x7 x86)) (= x3 (select x61 x86)) (= (select x66 x86) x16)) (= (ite (is-d53 (select x64 x86)) x3 x4) x3))))))))) (= x3 (x38 (select x62 x63)))) x3 x4) (ite (forall ((x87 x6)) (=> (and (= x3 (select x61 x87)) (= x3 (x7 x87)) (= x16 (select x66 x87))) (= x3 (ite (is-d53 (select x67 x87)) x3 x4)))) x3 x4)) x3)))) + (=> (= (store x65 x69 (x51 (let ((x82 (ite ((_ is x49) (select x65 x69)) (let ((x79 (x48 (select x65 x69)))) (x57 x79)) (ite ((_ is x51) (select x65 x69)) (let ((x80 (x50 (select x65 x69)))) x80) (let ((x81 (s52 (select x65 x69)))) (x58 x81)))))) (x28 x4 x3 (x25 x82) (x26 x82) (+ (x27 (ite ((_ is x49) (select x65 x69)) (let ((x83 (x48 (select x65 x69)))) (x57 x83)) (ite ((_ is x51) (select x65 x69)) (let ((x84 (x50 (select x65 x69)))) x84) (let ((x85 (s52 (select x65 x69)))) (x58 x85))))) 1))))) x64) (forall ((x86 x6)) (=> (and (= x3 (x7 x86)) (= x3 (select x61 x86)) (= (select x66 x86) x16)) (= (ite ((_ is d53) (select x64 x86)) x3 x4) x3))))))))) (= x3 (x38 (select x62 x63)))) x3 x4) (ite (forall ((x87 x6)) (=> (and (= x3 (select x61 x87)) (= x3 (x7 x87)) (= x16 (select x66 x87))) (= x3 (ite ((_ is d53) (select x67 x87)) x3 x4)))) x3 x4)) x3)))) (check-sat) diff --git a/test/regress/regress1/fmf/bug651.smt2 b/test/regress/regress1/fmf/bug651.smt2 index bcfeebd69..d243e0ce7 100644 --- a/test/regress/regress1/fmf/bug651.smt2 +++ b/test/regress/regress1/fmf/bug651.smt2 @@ -1,20 +1,19 @@ -; COMMAND-LINE: --fmf-fun --no-check-models --lang=smt2.5 +; COMMAND-LINE: --fmf-fun --no-check-models ; EXPECT: sat (set-logic UFDTSLIA) -(set-info :smt-lib-version 2.5) (set-option :produce-models true) -(declare-datatypes () ( - (Conditional_Int (Conditional_Int$CAbsent_Int) (Conditional_Int$CPresent_Int (Conditional_Int$CPresent_Int$value Int))) - (Conditional_T_titleType (Conditional_T_titleType$CAbsent_T_titleType) (Conditional_T_titleType$CPresent_T_titleType (Conditional_T_titleType$CPresent_T_titleType$value T_titleType))) - (Conditional_boolean (Conditional_boolean$CAbsent_boolean) (Conditional_boolean$CPresent_boolean (Conditional_boolean$CPresent_boolean$value Bool))) - (Conditional_string (Conditional_string$CAbsent_string) (Conditional_string$CPresent_string (Conditional_string$CPresent_string$value String))) - (Double (Double$CINF) (Double$CNINF) (Double$CNaN) (Double$CValue (Double$CValue$value Int))) - (List_T_titleType (List_T_titleType$CNil_T_titleType) (List_T_titleType$Cstr_T_titleType (List_T_titleType$Cstr_T_titleType$head T_titleType) (List_T_titleType$Cstr_T_titleType$tail List_T_titleType))) - (List_boolean (List_boolean$CNil_boolean) (List_boolean$Cstr_boolean (List_boolean$Cstr_boolean$head Bool) (List_boolean$Cstr_boolean$tail List_boolean))) - (List_string (List_string$CNil_string) (List_string$Cstr_string (List_string$Cstr_string$head String) (List_string$Cstr_string$tail List_string))) - (T_titleType (T_titleType$C_T_titleType (T_titleType$C_T_titleType$base String))) -) ) +(declare-datatypes ((Conditional_Int 0) (Conditional_T_titleType 0) (Conditional_boolean 0) (Conditional_string 0) (Double 0) (List_T_titleType 0) (List_boolean 0) (List_string 0) (T_titleType 0)) ( + ((Conditional_Int$CAbsent_Int) (Conditional_Int$CPresent_Int (Conditional_Int$CPresent_Int$value Int))) + ((Conditional_T_titleType$CAbsent_T_titleType) (Conditional_T_titleType$CPresent_T_titleType (Conditional_T_titleType$CPresent_T_titleType$value T_titleType))) + ((Conditional_boolean$CAbsent_boolean) (Conditional_boolean$CPresent_boolean (Conditional_boolean$CPresent_boolean$value Bool))) + ((Conditional_string$CAbsent_string) (Conditional_string$CPresent_string (Conditional_string$CPresent_string$value String))) + ((Double$CINF) (Double$CNINF) (Double$CNaN) (Double$CValue (Double$CValue$value Int))) + ((List_T_titleType$CNil_T_titleType) (List_T_titleType$Cstr_T_titleType (List_T_titleType$Cstr_T_titleType$head T_titleType) (List_T_titleType$Cstr_T_titleType$tail List_T_titleType))) + ((List_boolean$CNil_boolean) (List_boolean$Cstr_boolean (List_boolean$Cstr_boolean$head Bool) (List_boolean$Cstr_boolean$tail List_boolean))) + ((List_string$CNil_string) (List_string$Cstr_string (List_string$Cstr_string$head String) (List_string$Cstr_string$tail List_string))) + ((T_titleType$C_T_titleType (T_titleType$C_T_titleType$base String))) +)) (define-fun f1361$isValid_string((x String)) Bool true) (define-fun f5131$isValid_T_titleType((x T_titleType)) Bool (and (f1361$isValid_string (T_titleType$C_T_titleType$base x)) (<= (str.len (T_titleType$C_T_titleType$base x)) 80))) @@ -23,7 +22,7 @@ (f5242$isValidElementsList_T_titleType((x List_T_titleType)) Bool) ) ( - (=> (is-List_T_titleType$Cstr_T_titleType x) (and (f5131$isValid_T_titleType (List_T_titleType$Cstr_T_titleType$head x)) (f5242$isValidElementsList_T_titleType (List_T_titleType$Cstr_T_titleType$tail x)))) + (=> ((_ is List_T_titleType$Cstr_T_titleType) x) (and (f5131$isValid_T_titleType (List_T_titleType$Cstr_T_titleType$head x)) (f5242$isValidElementsList_T_titleType (List_T_titleType$Cstr_T_titleType$tail x)))) ) ) (define-fun f1348$isValid_boolean((x Bool)) Bool true) @@ -32,12 +31,10 @@ (f4169$isValidElementsList_boolean((x List_boolean)) Bool) ) ( - (=> (is-List_boolean$Cstr_boolean x) (and (f1348$isValid_boolean (List_boolean$Cstr_boolean$head x)) (f4169$isValidElementsList_boolean (List_boolean$Cstr_boolean$tail x)))) + (=> ((_ is List_boolean$Cstr_boolean) x) (and (f1348$isValid_boolean (List_boolean$Cstr_boolean$head x)) (f4169$isValidElementsList_boolean (List_boolean$Cstr_boolean$tail x)))) ) ) (declare-const title T_titleType) (check-sat) - - diff --git a/test/regress/regress1/fmf/bug723-irrelevant-funs.smt2 b/test/regress/regress1/fmf/bug723-irrelevant-funs.smt2 index e9b748744..b9141f2e2 100644 --- a/test/regress/regress1/fmf/bug723-irrelevant-funs.smt2 +++ b/test/regress/regress1/fmf/bug723-irrelevant-funs.smt2 @@ -1,46 +1,46 @@ -; COMMAND-LINE: --fmf-fun-rlv --no-check-models --lang=smt2.5 +; COMMAND-LINE: --fmf-fun-rlv --no-check-models ; EXPECT: sat (set-logic ALL_SUPPORTED) (define-fun $$isTrue$$ ((b Bool)) Bool b) (define-fun $$isFalse$$ ((b Bool)) Bool (not b)) -(define-fun $$toString$$ ((b Bool)) String (ite b "true" "false") ) -(define-fun $$fromString$$ ((s String)) Bool (= s "true") ) +(define-fun $$toString$$ ((b Bool)) String (ite b "true" "false")) +(define-fun $$fromString$$ ((s String)) Bool (= s "true")) (define-fun $$inttostr$$ ((i Int)) String (ite (< i 0) (str.++ "-" (int.to.str (- i))) (int.to.str i))) (declare-fun $$takeWhile$$ (String String) String) (declare-fun $$takeWhileNot$$ (String String) String) (declare-fun $$dropWhile$$ (String String) String) (declare-fun $$dropWhileNot$$ (String String) String) -(declare-datatypes () ( - (AddressType (AddressType$C_AddressType (AddressType$C_AddressType$address String) (AddressType$C_AddressType$city String) (AddressType$C_AddressType$region String) (AddressType$C_AddressType$postalCode String) (AddressType$C_AddressType$country String))) - (Conditional_Int (Conditional_Int$CAbsent_Int) (Conditional_Int$CPresent_Int (Conditional_Int$CPresent_Int$value Int))) - (Conditional_dateTime (Conditional_dateTime$CAbsent_dateTime) (Conditional_dateTime$CPresent_dateTime (Conditional_dateTime$CPresent_dateTime$value Int))) - (Conditional_string (Conditional_string$CAbsent_string) (Conditional_string$CPresent_string (Conditional_string$CPresent_string$value String))) - (CustomerType (CustomerType$C_CustomerType (CustomerType$C_CustomerType$companyName String) (CustomerType$C_CustomerType$contactName String) (CustomerType$C_CustomerType$contactTitle String) (CustomerType$C_CustomerType$phone String) (CustomerType$C_CustomerType$fax Conditional_string) (CustomerType$C_CustomerType$fullAddress AddressType) (CustomerType$C_CustomerType$customerID Int))) - (List_CustomerType (List_CustomerType$CNil_CustomerType) (List_CustomerType$Cstr_CustomerType (List_CustomerType$Cstr_CustomerType$head CustomerType) (List_CustomerType$Cstr_CustomerType$tail List_CustomerType))) - (List_OrderType (List_OrderType$CNil_OrderType) (List_OrderType$Cstr_OrderType (List_OrderType$Cstr_OrderType$head OrderType) (List_OrderType$Cstr_OrderType$tail List_OrderType))) - (OrderType (OrderType$C_OrderType (OrderType$C_OrderType$customerID Int) (OrderType$C_OrderType$employeeID Int) (OrderType$C_OrderType$orderDate Int) (OrderType$C_OrderType$requiredDate Int) (OrderType$C_OrderType$shipInfo ShipInfoType))) - (RootType (RootType$C_RootType (RootType$C_RootType$customers List_CustomerType) (RootType$C_RootType$orders List_OrderType))) - (ShipInfoType (ShipInfoType$C_ShipInfoType (ShipInfoType$C_ShipInfoType$shipVia Int) (ShipInfoType$C_ShipInfoType$freight Int) (ShipInfoType$C_ShipInfoType$shipName String) (ShipInfoType$C_ShipInfoType$shipAddress String) (ShipInfoType$C_ShipInfoType$shipCity String) (ShipInfoType$C_ShipInfoType$shipRegion String) (ShipInfoType$C_ShipInfoType$shipPostalCode String) (ShipInfoType$C_ShipInfoType$shipCountry String) (ShipInfoType$C_ShipInfoType$shippedDate Conditional_dateTime))) -) ) +(declare-datatypes ((AddressType 0) (Conditional_Int 0) (Conditional_dateTime 0) (Conditional_string 0) (CustomerType 0) (List_CustomerType 0) (List_OrderType 0) (OrderType 0) (RootType 0) (ShipInfoType 0)) ( + ((AddressType$C_AddressType (AddressType$C_AddressType$address String) (AddressType$C_AddressType$city String) (AddressType$C_AddressType$region String) (AddressType$C_AddressType$postalCode String) (AddressType$C_AddressType$country String))) + ((Conditional_Int$CAbsent_Int) (Conditional_Int$CPresent_Int (Conditional_Int$CPresent_Int$value Int))) + ((Conditional_dateTime$CAbsent_dateTime) (Conditional_dateTime$CPresent_dateTime (Conditional_dateTime$CPresent_dateTime$value Int))) + ((Conditional_string$CAbsent_string) (Conditional_string$CPresent_string (Conditional_string$CPresent_string$value String))) + ((CustomerType$C_CustomerType (CustomerType$C_CustomerType$companyName String) (CustomerType$C_CustomerType$contactName String) (CustomerType$C_CustomerType$contactTitle String) (CustomerType$C_CustomerType$phone String) (CustomerType$C_CustomerType$fax Conditional_string) (CustomerType$C_CustomerType$fullAddress AddressType) (CustomerType$C_CustomerType$customerID Int))) + ((List_CustomerType$CNil_CustomerType) (List_CustomerType$Cstr_CustomerType (List_CustomerType$Cstr_CustomerType$head CustomerType) (List_CustomerType$Cstr_CustomerType$tail List_CustomerType))) + ((List_OrderType$CNil_OrderType) (List_OrderType$Cstr_OrderType (List_OrderType$Cstr_OrderType$head OrderType) (List_OrderType$Cstr_OrderType$tail List_OrderType))) + ((OrderType$C_OrderType (OrderType$C_OrderType$customerID Int) (OrderType$C_OrderType$employeeID Int) (OrderType$C_OrderType$orderDate Int) (OrderType$C_OrderType$requiredDate Int) (OrderType$C_OrderType$shipInfo ShipInfoType))) + ((RootType$C_RootType (RootType$C_RootType$customers List_CustomerType) (RootType$C_RootType$orders List_OrderType))) + ((ShipInfoType$C_ShipInfoType (ShipInfoType$C_ShipInfoType$shipVia Int) (ShipInfoType$C_ShipInfoType$freight Int) (ShipInfoType$C_ShipInfoType$shipName String) (ShipInfoType$C_ShipInfoType$shipAddress String) (ShipInfoType$C_ShipInfoType$shipCity String) (ShipInfoType$C_ShipInfoType$shipRegion String) (ShipInfoType$C_ShipInfoType$shipPostalCode String) (ShipInfoType$C_ShipInfoType$shipCountry String) (ShipInfoType$C_ShipInfoType$shippedDate Conditional_dateTime))) +)) (define-fun f2866$toXml((a$$2869 AddressType)) String (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ "" "
") (AddressType$C_AddressType$address a$$2869)) "
") "") (AddressType$C_AddressType$city a$$2869)) "") "") (AddressType$C_AddressType$region a$$2869)) "") "") (AddressType$C_AddressType$postalCode a$$2869)) "") "") (AddressType$C_AddressType$country a$$2869)) "") "
")) -(define-fun f2656$toXml((c$$2659 CustomerType)) String (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ "") "") (CustomerType$C_CustomerType$companyName c$$2659)) "") "") (CustomerType$C_CustomerType$contactName c$$2659)) "") "") (CustomerType$C_CustomerType$contactTitle c$$2659)) "") "") (CustomerType$C_CustomerType$phone c$$2659)) "") (ite (is-Conditional_string$CPresent_string (CustomerType$C_CustomerType$fax c$$2659)) (str.++ (str.++ "" (Conditional_string$CPresent_string$value (CustomerType$C_CustomerType$fax c$$2659))) "") "")) (f2866$toXml (CustomerType$C_CustomerType$fullAddress c$$2659))) "")) +(define-fun f2656$toXml((c$$2659 CustomerType)) String (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ "") "") (CustomerType$C_CustomerType$companyName c$$2659)) "") "") (CustomerType$C_CustomerType$contactName c$$2659)) "") "") (CustomerType$C_CustomerType$contactTitle c$$2659)) "") "") (CustomerType$C_CustomerType$phone c$$2659)) "") (ite ((_ is Conditional_string$CPresent_string) (CustomerType$C_CustomerType$fax c$$2659)) (str.++ (str.++ "" (Conditional_string$CPresent_string$value (CustomerType$C_CustomerType$fax c$$2659))) "") "")) (f2866$toXml (CustomerType$C_CustomerType$fullAddress c$$2659))) "")) (define-funs-rec ( (f2574$toXml((lc$$2577 List_CustomerType)) String) ) ( - (ite (is-List_CustomerType$CNil_CustomerType lc$$2577) "" (str.++ (f2656$toXml (List_CustomerType$Cstr_CustomerType$head lc$$2577)) (f2574$toXml (List_CustomerType$Cstr_CustomerType$tail lc$$2577)))) + (ite ((_ is List_CustomerType$CNil_CustomerType) lc$$2577) "" (str.++ (f2656$toXml (List_CustomerType$Cstr_CustomerType$head lc$$2577)) (f2574$toXml (List_CustomerType$Cstr_CustomerType$tail lc$$2577)))) ) ) -(define-fun f2942$toXml((s$$2945 ShipInfoType)) String (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ "") ">")) "") ($$inttostr$$ (ShipInfoType$C_ShipInfoType$shipVia s$$2945))) "") "") ($$inttostr$$ (ShipInfoType$C_ShipInfoType$freight s$$2945))) "") "") (ShipInfoType$C_ShipInfoType$shipName s$$2945)) "") "") (ShipInfoType$C_ShipInfoType$shipAddress s$$2945)) "") "") (ShipInfoType$C_ShipInfoType$shipCity s$$2945)) "") "") (ShipInfoType$C_ShipInfoType$shipRegion s$$2945)) "") "") (ShipInfoType$C_ShipInfoType$shipPostalCode s$$2945)) "") "") (ShipInfoType$C_ShipInfoType$shipCountry s$$2945)) "") "")) +(define-fun f2942$toXml((s$$2945 ShipInfoType)) String (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ "") ">")) "") ($$inttostr$$ (ShipInfoType$C_ShipInfoType$shipVia s$$2945))) "") "") ($$inttostr$$ (ShipInfoType$C_ShipInfoType$freight s$$2945))) "") "") (ShipInfoType$C_ShipInfoType$shipName s$$2945)) "") "") (ShipInfoType$C_ShipInfoType$shipAddress s$$2945)) "") "") (ShipInfoType$C_ShipInfoType$shipCity s$$2945)) "") "") (ShipInfoType$C_ShipInfoType$shipRegion s$$2945)) "") "") (ShipInfoType$C_ShipInfoType$shipPostalCode s$$2945)) "") "") (ShipInfoType$C_ShipInfoType$shipCountry s$$2945)) "") "")) (define-fun f2776$toXml((o$$2779 OrderType)) String (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ "" "") ($$inttostr$$ (OrderType$C_OrderType$customerID o$$2779))) "") "") ($$inttostr$$ (OrderType$C_OrderType$employeeID o$$2779))) "") "") ($$inttostr$$ (OrderType$C_OrderType$orderDate o$$2779))) "") "") ($$inttostr$$ (OrderType$C_OrderType$requiredDate o$$2779))) "") (f2942$toXml (OrderType$C_OrderType$shipInfo o$$2779))) "")) (define-funs-rec ( (f2615$toXml((lo$$2618 List_OrderType)) String) ) ( - (ite (is-List_OrderType$CNil_OrderType lo$$2618) "" (str.++ (f2776$toXml (List_OrderType$Cstr_OrderType$head lo$$2618)) (f2615$toXml (List_OrderType$Cstr_OrderType$tail lo$$2618)))) + (ite ((_ is List_OrderType$CNil_OrderType) lo$$2618) "" (str.++ (f2776$toXml (List_OrderType$Cstr_OrderType$head lo$$2618)) (f2615$toXml (List_OrderType$Cstr_OrderType$tail lo$$2618)))) ) ) (define-fun f2526$toXml((r$$2529 RootType)) String (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ "" "") (f2574$toXml (RootType$C_RootType$customers r$$2529))) "") "") (f2615$toXml (RootType$C_RootType$orders r$$2529))) "") "")) @@ -49,4 +49,3 @@ (assert (= $Report$3105$0$1$ "")) ; should be fast since functions introduced by define-fun-rec do not appear in the ground assertion (check-sat) - diff --git a/test/regress/regress1/fmf/bug764.smt2 b/test/regress/regress1/fmf/bug764.smt2 index 3172fd695..cb55d8504 100644 --- a/test/regress/regress1/fmf/bug764.smt2 +++ b/test/regress/regress1/fmf/bug764.smt2 @@ -1,19 +1,19 @@ -; COMMAND-LINE: --fmf-fun --no-check-models --lang=smt2.5 +; COMMAND-LINE: --fmf-fun --no-check-models ; EXPECT: sat (set-logic ALL) (set-info :status sat) (define-fun BoolToString ((b Bool)) String (ite b "true" "false") ) -(declare-datatypes () ( - (Color (red) (white) (blue)) -) ) +(declare-datatypes ((Color 0)) ( + ((red) (white) (blue)) +)) -(define-fun ColorToString ((c Color)) String (ite (is-red c) "red" (ite (is-white c) "white" "blue")) ) +(define-fun ColorToString ((c Color)) String (ite ((_ is red) c) "red" (ite ((_ is white) c) "white" "blue")) ) -(declare-datatypes () ( - (CP (cp (b Bool) (c Color))) -) ) +(declare-datatypes ((CP 0)) ( + ((cp (b Bool) (c Color))) +)) (define-fun-rec CPToString ((cp CP)) String (str.++ "cp(" (BoolToString (b cp)) "," (ColorToString (c cp)) ")")) @@ -21,8 +21,7 @@ (assert (forall ((cp1 CP)) (= cp1 (CPFromString (CPToString cp1))))) -(declare-fun cpx() CP) +(declare-fun cpx () CP) (assert (= cpx (CPFromString "cp(true,white)"))) (check-sat) - diff --git a/test/regress/regress1/fmf/constr-ground-to.smt2 b/test/regress/regress1/fmf/constr-ground-to.smt2 index bc6d9e948..dba8a05ae 100644 --- a/test/regress/regress1/fmf/constr-ground-to.smt2 +++ b/test/regress/regress1/fmf/constr-ground-to.smt2 @@ -1,13 +1,11 @@ -; COMMAND-LINE: --fmf-fun --lang=smt2.5 +; COMMAND-LINE: --fmf-fun ; EXPECT: sat (set-logic UFDTLIA) -(declare-datatypes () ( +(declare-datatypes ((Term 0) (IntList 0)) ( ( - Term (str (sv IntList)) ) ( - IntList (sn) (sc (sh Int) (st IntList)) ) @@ -15,29 +13,29 @@ (declare-const t Term) (assert ( and - (is-str t) - (is-sc (sv t)) - (is-sc (st (sv t))) - (is-sc (st (st (sv t)))) - (is-sc (st (st (st (sv t))))) - (is-sc (st (st (st (st (sv t)))))) - (is-sc (st (st (st (st (st (sv t))))))) - (is-sc (st (st (st (st (st (st (sv t)))))))) - (is-sc (st (st (st (st (st (st (st (sv t))))))))) - (is-sc (st (st (st (st (st (st (st (st (sv t)))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (sv t))))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (st (st (sv t))))))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t))))))))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t))))))))))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t))))))))))))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t))))))))))))))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))))))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t))))))))))))))))))))))) - (is-sc (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))))))))))))))) + ((_ is str) t) + ((_ is sc) (sv t)) + ((_ is sc) (st (sv t))) + ((_ is sc) (st (st (sv t)))) + ((_ is sc) (st (st (st (sv t))))) + ((_ is sc) (st (st (st (st (sv t)))))) + ((_ is sc) (st (st (st (st (st (sv t))))))) + ((_ is sc) (st (st (st (st (st (st (sv t)))))))) + ((_ is sc) (st (st (st (st (st (st (st (sv t))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (sv t)))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (sv t))))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (st (st (sv t))))))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t))))))))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t))))))))))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t))))))))))))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t))))))))))))))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))))))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t))))))))))))))))))))))) + ((_ is sc) (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (st (sv t)))))))))))))))))))))))) )) (check-sat) diff --git a/test/regress/regress1/fmf/datatypes-ufinite.smt2 b/test/regress/regress1/fmf/datatypes-ufinite.smt2 index a19c8f027..b0ff1d11b 100644 --- a/test/regress/regress1/fmf/datatypes-ufinite.smt2 +++ b/test/regress/regress1/fmf/datatypes-ufinite.smt2 @@ -1,4 +1,4 @@ -; COMMAND-LINE: --finite-model-find --lang=smt2.5 +; COMMAND-LINE: --finite-model-find ; EXPECT: sat (set-logic ALL_SUPPORTED) (declare-sort U 0) @@ -8,7 +8,7 @@ (declare-fun d () U) (assert (distinct a b c)) (declare-sort V 0) -(declare-datatypes () ((ufin1 (cons1 (s11 U) (s12 U))) (ufin2 (cons2 (s21 V) (s22 U)) (cons3)))) +(declare-datatypes ((ufin1 0) (ufin2 0)) (((cons1 (s11 U) (s12 U))) ((cons2 (s21 V) (s22 U)) (cons3)))) (declare-fun P (ufin1 ufin2) Bool) (declare-fun Q (ufin1 ufin1) Bool) (assert (forall ((x ufin1) (y ufin2) (z ufin1)) (or (P x y) (Q x z)))) diff --git a/test/regress/regress1/fmf/forall_unit_data.smt2 b/test/regress/regress1/fmf/forall_unit_data.smt2 index 6971c4d0a..5ede5f72d 100644 --- a/test/regress/regress1/fmf/forall_unit_data.smt2 +++ b/test/regress/regress1/fmf/forall_unit_data.smt2 @@ -1,10 +1,10 @@ -; COMMAND-LINE: --finite-model-find --lang=smt2.5 +; COMMAND-LINE: --finite-model-find ; EXPECT: sat (set-option :produce-models true) (set-option :interactive-mode true) (set-logic ALL_SUPPORTED) (declare-sort a 0) -(declare-datatypes () ((w (Wrap (unw a))))) +(declare-datatypes ((w 0)) (((Wrap (unw a))))) (declare-fun x () w) (assert (forall ((y w)) (= x y))) (check-sat) diff --git a/test/regress/regress1/fmf/fore19-exp2-core.smt2 b/test/regress/regress1/fmf/fore19-exp2-core.smt2 index 4b4d57af3..efa38fcfc 100644 --- a/test/regress/regress1/fmf/fore19-exp2-core.smt2 +++ b/test/regress/regress1/fmf/fore19-exp2-core.smt2 @@ -1,10 +1,10 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: unsat (set-logic ALL_SUPPORTED) (set-info :status unsat) -(declare-datatypes () ((St (Block!2236 (body!2237 List!2293)) (For!2238 (init!2239 St) (expr!2240 Ex) (step!2241 St) (body!2242 St)) (IfTE (expr!2244 Ex) (then!2245 St) (elze!2246 St)) (Skip!2250) (While (expr!2252 Ex) (body St))) -(Ex (Var!2291 (varID!2292 (_ BitVec 32)))) -(List!2293 (Cons!2294 (head!2295 St) (tail!2296 List!2293)) (Nil!2297)) +(declare-datatypes ((St 0) (Ex 0) (List!2293 0)) +(((Block!2236 (body!2237 List!2293)) (For!2238 (init!2239 St) (expr!2240 Ex) (step!2241 St) (body!2242 St)) (IfTE (expr!2244 Ex) (then!2245 St) (elze!2246 St)) (Skip!2250) (While (expr!2252 Ex) (body St))) +((Var!2291 (varID!2292 (_ BitVec 32)))) +((Cons!2294 (head!2295 St) (tail!2296 List!2293)) (Nil!2297)) )) (declare-fun error_value!2298 () Bool) (declare-fun error_value!2299 () List!2293) @@ -40,28 +40,28 @@ (assert (and -(forall ((?i1 I_ewl)) (= (ewl (ewl_arg_0_15 ?i1)) +(forall ((?i1 I_ewl)) (= (ewl (ewl_arg_0_15 ?i1)) -(ite (is-IfTE (ewl_arg_0_15 ?i1)) (IfTE (ite (is-IfTE (ewl_arg_0_15 ?i1)) (expr!2244 (ewl_arg_0_15 ?i1)) (expr!2244_uf_12 (ewl_arg_0_15 ?i1))) (ewl (ite (is-IfTE (ewl_arg_0_15 ?i1)) (then!2245 (ewl_arg_0_15 ?i1)) (then!2245_uf_5 (ewl_arg_0_15 ?i1)))) (ewl (ite (is-IfTE (ewl_arg_0_15 ?i1)) (elze!2246 (ewl_arg_0_15 ?i1)) (elze!2246_uf_4 (ewl_arg_0_15 ?i1))))) +(ite ((_ is IfTE) (ewl_arg_0_15 ?i1)) (IfTE (ite ((_ is IfTE) (ewl_arg_0_15 ?i1)) (expr!2244 (ewl_arg_0_15 ?i1)) (expr!2244_uf_12 (ewl_arg_0_15 ?i1))) (ewl (ite ((_ is IfTE) (ewl_arg_0_15 ?i1)) (then!2245 (ewl_arg_0_15 ?i1)) (then!2245_uf_5 (ewl_arg_0_15 ?i1)))) (ewl (ite ((_ is IfTE) (ewl_arg_0_15 ?i1)) (elze!2246 (ewl_arg_0_15 ?i1)) (elze!2246_uf_4 (ewl_arg_0_15 ?i1))))) -(ite (is-While (ewl_arg_0_15 ?i1)) (For!2238 Skip!2250 (ite (is-While (ewl_arg_0_15 ?i1)) (expr!2252 (ewl_arg_0_15 ?i1)) (expr!2252_uf_11 (ewl_arg_0_15 ?i1))) Skip!2250 (ewl (ite (is-While (ewl_arg_0_15 ?i1)) (body (ewl_arg_0_15 ?i1)) (body_uf_10 (ewl_arg_0_15 ?i1))))) +(ite ((_ is While) (ewl_arg_0_15 ?i1)) (For!2238 Skip!2250 (ite ((_ is While) (ewl_arg_0_15 ?i1)) (expr!2252 (ewl_arg_0_15 ?i1)) (expr!2252_uf_11 (ewl_arg_0_15 ?i1))) Skip!2250 (ewl (ite ((_ is While) (ewl_arg_0_15 ?i1)) (body (ewl_arg_0_15 ?i1)) (body_uf_10 (ewl_arg_0_15 ?i1))))) -(ite (is-For!2238 (ewl_arg_0_15 ?i1)) (For!2238 (ewl (ite (is-For!2238 (ewl_arg_0_15 ?i1)) (init!2239 (ewl_arg_0_15 ?i1)) (init!2239_uf_3 (ewl_arg_0_15 ?i1)))) (ite (is-For!2238 (ewl_arg_0_15 ?i1)) (expr!2240 (ewl_arg_0_15 ?i1)) (expr!2240_uf_9 (ewl_arg_0_15 ?i1))) (ewl (ite (is-For!2238 (ewl_arg_0_15 ?i1)) (step!2241 (ewl_arg_0_15 ?i1)) (step!2241_uf_2 (ewl_arg_0_15 ?i1)))) (ewl (ite (is-For!2238 (ewl_arg_0_15 ?i1)) (body!2242 (ewl_arg_0_15 ?i1)) (body!2242_uf_1 (ewl_arg_0_15 ?i1))))) +(ite ((_ is For!2238) (ewl_arg_0_15 ?i1)) (For!2238 (ewl (ite ((_ is For!2238) (ewl_arg_0_15 ?i1)) (init!2239 (ewl_arg_0_15 ?i1)) (init!2239_uf_3 (ewl_arg_0_15 ?i1)))) (ite ((_ is For!2238) (ewl_arg_0_15 ?i1)) (expr!2240 (ewl_arg_0_15 ?i1)) (expr!2240_uf_9 (ewl_arg_0_15 ?i1))) (ewl (ite ((_ is For!2238) (ewl_arg_0_15 ?i1)) (step!2241 (ewl_arg_0_15 ?i1)) (step!2241_uf_2 (ewl_arg_0_15 ?i1)))) (ewl (ite ((_ is For!2238) (ewl_arg_0_15 ?i1)) (body!2242 (ewl_arg_0_15 ?i1)) (body!2242_uf_1 (ewl_arg_0_15 ?i1))))) (ewl_arg_0_15 ?i1))))) ) -(forall ((?i2 I_ewl)) (ite (is-IfTE (ewl_arg_0_15 ?i2)) (and (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) (ite (is-IfTE (ewl_arg_0_15 ?i2)) (then!2245 (ewl_arg_0_15 ?i2)) (then!2245_uf_5 (ewl_arg_0_15 ?i2))))) )) (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) (ite (is-IfTE (ewl_arg_0_15 ?i2)) (elze!2246 (ewl_arg_0_15 ?i2)) (elze!2246_uf_4 (ewl_arg_0_15 ?i2))))) ))) (ite (is-While (ewl_arg_0_15 ?i2)) (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) (ite (is-While (ewl_arg_0_15 ?i2)) (body (ewl_arg_0_15 ?i2)) (body_uf_10 (ewl_arg_0_15 ?i2))))) )) (ite (is-For!2238 (ewl_arg_0_15 ?i2)) (and (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) (ite (is-For!2238 (ewl_arg_0_15 ?i2)) (init!2239 (ewl_arg_0_15 ?i2)) (init!2239_uf_3 (ewl_arg_0_15 ?i2))))) )) (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) (ite (is-For!2238 (ewl_arg_0_15 ?i2)) (step!2241 (ewl_arg_0_15 ?i2)) (step!2241_uf_2 (ewl_arg_0_15 ?i2))))) )) (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) (ite (is-For!2238 (ewl_arg_0_15 ?i2)) (body!2242 (ewl_arg_0_15 ?i2)) (body!2242_uf_1 (ewl_arg_0_15 ?i2))))) ))) true))) ) -(forall ((?i3 I_iwf)) (= (iwf (iwf_arg_0_13 ?i3)) (ite (is-Block!2236 (iwf_arg_0_13 ?i3)) (iwfl (ite (is-Block!2236 (iwf_arg_0_13 ?i3)) (body!2237 (iwf_arg_0_13 ?i3)) (body!2237_uf_6 (iwf_arg_0_13 ?i3)))) (ite (is-IfTE (iwf_arg_0_13 ?i3)) (and (iwf (ite (is-IfTE (iwf_arg_0_13 ?i3)) (elze!2246 (iwf_arg_0_13 ?i3)) (elze!2246_uf_4 (iwf_arg_0_13 ?i3)))) (iwf (ite (is-IfTE (iwf_arg_0_13 ?i3)) (then!2245 (iwf_arg_0_13 ?i3)) (then!2245_uf_5 (iwf_arg_0_13 ?i3))))) (ite (is-While (iwf_arg_0_13 ?i3)) false (ite (is-For!2238 (iwf_arg_0_13 ?i3)) (and (iwf (ite (is-For!2238 (iwf_arg_0_13 ?i3)) (body!2242 (iwf_arg_0_13 ?i3)) (body!2242_uf_1 (iwf_arg_0_13 ?i3)))) (iwf (ite (is-For!2238 (iwf_arg_0_13 ?i3)) (step!2241 (iwf_arg_0_13 ?i3)) (step!2241_uf_2 (iwf_arg_0_13 ?i3)))) (iwf (ite (is-For!2238 (iwf_arg_0_13 ?i3)) (init!2239 (iwf_arg_0_13 ?i3)) (init!2239_uf_3 (iwf_arg_0_13 ?i3))))) true))))) ) -(forall ((?i4 I_iwf)) (ite (is-Block!2236 (iwf_arg_0_13 ?i4)) (not (forall ((?z I_iwfl)) (not (= (iwfl_arg_0_14 ?z) (ite (is-Block!2236 (iwf_arg_0_13 ?i4)) (body!2237 (iwf_arg_0_13 ?i4)) (body!2237_uf_6 (iwf_arg_0_13 ?i4))))) )) (ite (is-IfTE (iwf_arg_0_13 ?i4)) (and (not (forall ((?z I_iwf)) (not (= (iwf_arg_0_13 ?z) (ite (is-IfTE (iwf_arg_0_13 ?i4)) (elze!2246 (iwf_arg_0_13 ?i4)) (elze!2246_uf_4 (iwf_arg_0_13 ?i4))))) )) (not (forall ((?z I_iwf)) (not (= (iwf_arg_0_13 ?z) (ite (is-IfTE (iwf_arg_0_13 ?i4)) (then!2245 (iwf_arg_0_13 ?i4)) (then!2245_uf_5 (iwf_arg_0_13 ?i4))))) ))) (ite (is-While (iwf_arg_0_13 ?i4)) true (ite (is-For!2238 (iwf_arg_0_13 ?i4)) (and (not (forall ((?z I_iwf)) (not (= (iwf_arg_0_13 ?z) (ite (is-For!2238 (iwf_arg_0_13 ?i4)) (body!2242 (iwf_arg_0_13 ?i4)) (body!2242_uf_1 (iwf_arg_0_13 ?i4))))) )) (not (forall ((?z I_iwf)) (not (= (iwf_arg_0_13 ?z) (ite (is-For!2238 (iwf_arg_0_13 ?i4)) (step!2241 (iwf_arg_0_13 ?i4)) (step!2241_uf_2 (iwf_arg_0_13 ?i4))))) )) (not (forall ((?z I_iwf)) (not (= (iwf_arg_0_13 ?z) (ite (is-For!2238 (iwf_arg_0_13 ?i4)) (init!2239 (iwf_arg_0_13 ?i4)) (init!2239_uf_3 (iwf_arg_0_13 ?i4))))) ))) true)))) ) -(is-IfTE s) -(iwf s) +(forall ((?i2 I_ewl)) (ite ((_ is IfTE) (ewl_arg_0_15 ?i2)) (and (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) (ite ((_ is IfTE) (ewl_arg_0_15 ?i2)) (then!2245 (ewl_arg_0_15 ?i2)) (then!2245_uf_5 (ewl_arg_0_15 ?i2))))) )) (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) (ite ((_ is IfTE) (ewl_arg_0_15 ?i2)) (elze!2246 (ewl_arg_0_15 ?i2)) (elze!2246_uf_4 (ewl_arg_0_15 ?i2))))) ))) (ite ((_ is While) (ewl_arg_0_15 ?i2)) (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) (ite ((_ is While) (ewl_arg_0_15 ?i2)) (body (ewl_arg_0_15 ?i2)) (body_uf_10 (ewl_arg_0_15 ?i2))))) )) (ite ((_ is For!2238) (ewl_arg_0_15 ?i2)) (and (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) (ite ((_ is For!2238) (ewl_arg_0_15 ?i2)) (init!2239 (ewl_arg_0_15 ?i2)) (init!2239_uf_3 (ewl_arg_0_15 ?i2))))) )) (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) (ite ((_ is For!2238) (ewl_arg_0_15 ?i2)) (step!2241 (ewl_arg_0_15 ?i2)) (step!2241_uf_2 (ewl_arg_0_15 ?i2))))) )) (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) (ite ((_ is For!2238) (ewl_arg_0_15 ?i2)) (body!2242 (ewl_arg_0_15 ?i2)) (body!2242_uf_1 (ewl_arg_0_15 ?i2))))) ))) true))) ) +(forall ((?i3 I_iwf)) (= (iwf (iwf_arg_0_13 ?i3)) (ite ((_ is Block!2236) (iwf_arg_0_13 ?i3)) (iwfl (ite ((_ is Block!2236) (iwf_arg_0_13 ?i3)) (body!2237 (iwf_arg_0_13 ?i3)) (body!2237_uf_6 (iwf_arg_0_13 ?i3)))) (ite ((_ is IfTE) (iwf_arg_0_13 ?i3)) (and (iwf (ite ((_ is IfTE) (iwf_arg_0_13 ?i3)) (elze!2246 (iwf_arg_0_13 ?i3)) (elze!2246_uf_4 (iwf_arg_0_13 ?i3)))) (iwf (ite ((_ is IfTE) (iwf_arg_0_13 ?i3)) (then!2245 (iwf_arg_0_13 ?i3)) (then!2245_uf_5 (iwf_arg_0_13 ?i3))))) (ite ((_ is While) (iwf_arg_0_13 ?i3)) false (ite ((_ is For!2238) (iwf_arg_0_13 ?i3)) (and (iwf (ite ((_ is For!2238) (iwf_arg_0_13 ?i3)) (body!2242 (iwf_arg_0_13 ?i3)) (body!2242_uf_1 (iwf_arg_0_13 ?i3)))) (iwf (ite ((_ is For!2238) (iwf_arg_0_13 ?i3)) (step!2241 (iwf_arg_0_13 ?i3)) (step!2241_uf_2 (iwf_arg_0_13 ?i3)))) (iwf (ite ((_ is For!2238) (iwf_arg_0_13 ?i3)) (init!2239 (iwf_arg_0_13 ?i3)) (init!2239_uf_3 (iwf_arg_0_13 ?i3))))) true))))) ) +(forall ((?i4 I_iwf)) (ite ((_ is Block!2236) (iwf_arg_0_13 ?i4)) (not (forall ((?z I_iwfl)) (not (= (iwfl_arg_0_14 ?z) (ite ((_ is Block!2236) (iwf_arg_0_13 ?i4)) (body!2237 (iwf_arg_0_13 ?i4)) (body!2237_uf_6 (iwf_arg_0_13 ?i4))))) )) (ite ((_ is IfTE) (iwf_arg_0_13 ?i4)) (and (not (forall ((?z I_iwf)) (not (= (iwf_arg_0_13 ?z) (ite ((_ is IfTE) (iwf_arg_0_13 ?i4)) (elze!2246 (iwf_arg_0_13 ?i4)) (elze!2246_uf_4 (iwf_arg_0_13 ?i4))))) )) (not (forall ((?z I_iwf)) (not (= (iwf_arg_0_13 ?z) (ite ((_ is IfTE) (iwf_arg_0_13 ?i4)) (then!2245 (iwf_arg_0_13 ?i4)) (then!2245_uf_5 (iwf_arg_0_13 ?i4))))) ))) (ite ((_ is While) (iwf_arg_0_13 ?i4)) true (ite ((_ is For!2238) (iwf_arg_0_13 ?i4)) (and (not (forall ((?z I_iwf)) (not (= (iwf_arg_0_13 ?z) (ite ((_ is For!2238) (iwf_arg_0_13 ?i4)) (body!2242 (iwf_arg_0_13 ?i4)) (body!2242_uf_1 (iwf_arg_0_13 ?i4))))) )) (not (forall ((?z I_iwf)) (not (= (iwf_arg_0_13 ?z) (ite ((_ is For!2238) (iwf_arg_0_13 ?i4)) (step!2241 (iwf_arg_0_13 ?i4)) (step!2241_uf_2 (iwf_arg_0_13 ?i4))))) )) (not (forall ((?z I_iwf)) (not (= (iwf_arg_0_13 ?z) (ite ((_ is For!2238) (iwf_arg_0_13 ?i4)) (init!2239 (iwf_arg_0_13 ?i4)) (init!2239_uf_3 (iwf_arg_0_13 ?i4))))) ))) true)))) ) +((_ is IfTE) s) +(iwf s) (not (forall ((?z I_iwf)) (not (= (iwf_arg_0_13 ?z) s)) )) -(ite (is-IfTE s) (= termITE_17 (then!2245 s)) (= termITE_17 (then!2245_uf_5 s))) -(ite (is-IfTE s) (= termITE_18 (then!2245 s)) (= termITE_18 (then!2245_uf_5 s))) +(ite ((_ is IfTE) s) (= termITE_17 (then!2245 s)) (= termITE_17 (then!2245_uf_5 s))) +(ite ((_ is IfTE) s) (= termITE_18 (then!2245 s)) (= termITE_18 (then!2245_uf_5 s))) (=> (and (iwf termITE_17) (not (forall ((?z I_iwf)) (not (= (iwf_arg_0_13 ?z) termITE_18)) ))) (and (= (ewl termITE_17) termITE_17) (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) termITE_18)) )))) -(ite (is-IfTE s) (= termITE_19 (elze!2246 s)) (= termITE_19 (elze!2246_uf_4 s))) -(ite (is-IfTE s) (= termITE_20 (elze!2246 s)) (= termITE_20 (elze!2246_uf_4 s))) +(ite ((_ is IfTE) s) (= termITE_19 (elze!2246 s)) (= termITE_19 (elze!2246_uf_4 s))) +(ite ((_ is IfTE) s) (= termITE_20 (elze!2246 s)) (= termITE_20 (elze!2246_uf_4 s))) (=> (and (iwf termITE_19) (not (forall ((?z I_iwf)) (not (= (iwf_arg_0_13 ?z) termITE_20)) ))) (and (= (ewl termITE_19) termITE_19) (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) termITE_20)) )))) (not (= (ewl s) s)) (not (forall ((?z I_ewl)) (not (= (ewl_arg_0_15 ?z) s)) )) @@ -69,4 +69,5 @@ ) ) + (check-sat) diff --git a/test/regress/regress1/fmf/german169.smt2 b/test/regress/regress1/fmf/german169.smt2 index c88de064c..c4a40ccc1 100644 --- a/test/regress/regress1/fmf/german169.smt2 +++ b/test/regress/regress1/fmf/german169.smt2 @@ -1,17 +1,17 @@ -; COMMAND-LINE: --finite-model-find --lang=smt2.5 +; COMMAND-LINE: --finite-model-find ; EXPECT: sat (set-logic ALL_SUPPORTED) (set-info :status sat) -(declare-datatypes () ((UNIT (Unit)))) -(declare-datatypes () ((BOOL (Truth) (Falsity)))) +(declare-datatypes ((UNIT 0)) (((Unit)))) +(declare-datatypes ((BOOL 0)) (((Truth) (Falsity)))) ; Decls -------------- (declare-sort node$type 0) (declare-sort data$type 0) -(declare-datatypes () ((cache_state$type (invalid) (shared) (exclusive)))) -(declare-datatypes () ((cache$type (c_cache$type (c_state cache_state$type) (c_data data$type))))) -(declare-datatypes () ((msg_cmd$type (empty) (reqs) (reqe) (inv) (invack) (gnts) (gnte)))) -(declare-datatypes () ((msg$type (c_msg$type (m_cmd msg_cmd$type) (m_data data$type))))) +(declare-datatypes ((cache_state$type 0)) (((invalid) (shared) (exclusive)))) +(declare-datatypes ((cache$type 0)) (((c_cache$type (c_state cache_state$type) (c_data data$type))))) +(declare-datatypes ((msg_cmd$type 0)) (((empty) (reqs) (reqe) (inv) (invack) (gnts) (gnte)))) +(declare-datatypes ((msg$type 0)) (((c_msg$type (m_cmd msg_cmd$type) (m_data data$type))))) (declare-fun dummy () data$type) ; Var Decls -------------- @@ -28,76 +28,76 @@ (declare-fun curcmd () msg_cmd$type) ; Asserts -------------- -(assert (not (=> (and (and (forall ((n node$type)) - (=> (= (m_cmd (select - chan2 - n)) - gnte) (= exgntd - Truth))) - (forall ((n node$type)) - (=> (= exgntd Truth) - (= (select shrset n) - (ite (= n auxnode) Truth - Falsity))))) (forall - ((n node$type)) - (=> (= - (m_cmd - (select - chan3 - n)) - invack) - (= (m_cmd - (select - chan2 - n)) - empty)))) - (=> (= (m_cmd (select chan3 recv_invack$i)) - invack) (=> (not (= curcmd empty)) - (=> (= chan3$1 (store - chan3 - recv_invack$i +(assert (not (=> (and (and (forall ((n node$type)) + (=> (= (m_cmd (select + chan2 + n)) + gnte) (= exgntd + Truth))) + (forall ((n node$type)) + (=> (= exgntd Truth) + (= (select shrset n) + (ite (= n auxnode) Truth + Falsity))))) (forall + ((n node$type)) + (=> (= + (m_cmd + (select + chan3 + n)) + invack) + (= (m_cmd + (select + chan2 + n)) + empty)))) + (=> (= (m_cmd (select chan3 recv_invack$i)) + invack) (=> (not (= curcmd empty)) + (=> (= chan3$1 (store + chan3 + recv_invack$i (let ( - (vup_228 - (select - chan3 - recv_invack$i))) - (c_msg$type - empty - (m_data - vup_228))))) - (=> (= shrset$1 (store - shrset - recv_invack$i - Falsity)) - (= (ite (= exgntd Truth) - (ite (=> (= exgntd$1 - Falsity) - (=> (= memdata$1 - (m_data - (select - chan3$1 - recv_invack$i))) + (vup_228 + (select + chan3 + recv_invack$i))) + (c_msg$type + empty + (m_data + vup_228))))) + (=> (= shrset$1 (store + shrset + recv_invack$i + Falsity)) + (= (ite (= exgntd Truth) + (ite (=> (= exgntd$1 + Falsity) + (=> (= memdata$1 + (m_data + (select + chan3$1 + recv_invack$i))) (forall ( - (n node$type)) - (=> (= (m_cmd - (select - chan2 - n)) - gnte) - (= exgntd$1 - Truth))))) - Truth Falsity) + (n node$type)) + (=> (= (m_cmd + (select + chan2 + n)) + gnte) + (= exgntd$1 + Truth))))) + Truth Falsity) (ite (forall ( - (n node$type)) - (=> (= (m_cmd - (select - chan2 - n)) - gnte) - (= exgntd - Truth))) - Truth Falsity)) + (n node$type)) + (=> (= (m_cmd + (select + chan2 + n)) + gnte) + (= exgntd + Truth))) + Truth Falsity)) Truth)))))))) - + (check-sat) (exit) diff --git a/test/regress/regress1/fmf/german73.smt2 b/test/regress/regress1/fmf/german73.smt2 index 64f551d55..fbe011cfd 100644 --- a/test/regress/regress1/fmf/german73.smt2 +++ b/test/regress/regress1/fmf/german73.smt2 @@ -1,17 +1,17 @@ -; COMMAND-LINE: --finite-model-find --lang=smt2.5 +; COMMAND-LINE: --finite-model-find ; EXPECT: unsat (set-logic ALL_SUPPORTED) (set-info :status unsat) -(declare-datatypes () ((UNIT (Unit)))) -(declare-datatypes () ((BOOL (Truth) (Falsity)))) +(declare-datatypes ((UNIT 0)) (((Unit)))) +(declare-datatypes ((BOOL 0)) (((Truth) (Falsity)))) ; Decls -------------- (declare-sort node$type 0) (declare-sort data$type 0) -(declare-datatypes () ((cache_state$type (invalid) (shared) (exclusive)))) -(declare-datatypes () ((cache$type (c_cache$type (c_state cache_state$type) (c_data data$type))))) -(declare-datatypes () ((msg_cmd$type (empty) (reqs) (reqe) (inv) (invack) (gnts) (gnte)))) -(declare-datatypes () ((msg$type (c_msg$type (m_cmd msg_cmd$type) (m_data data$type))))) +(declare-datatypes ((cache_state$type 0)) (((invalid) (shared) (exclusive)))) +(declare-datatypes ((cache$type 0)) (((c_cache$type (c_state cache_state$type) (c_data data$type))))) +(declare-datatypes ((msg_cmd$type 0)) (((empty) (reqs) (reqe) (inv) (invack) (gnts) (gnte)))) +(declare-datatypes ((msg$type 0)) (((c_msg$type (m_cmd msg_cmd$type) (m_data data$type))))) (declare-fun dummy () data$type) ; Var Decls -------------- @@ -28,78 +28,78 @@ (declare-fun curcmd () msg_cmd$type) ; Asserts -------------- -(assert (not (=> (and (forall ((n node$type)) - (=> (= (select invset n) - Truth) (= (select - shrset - n) Truth))) - (forall ((n node$type)) (=> - (or - (= - (m_cmd - (select - chan2 - n)) - inv) - (= - (m_cmd - (select - chan3 - n)) - invack)) - (not - (= - (select - invset - n) - Truth))))) - (=> (= (m_cmd (select chan3 recv_invack$i)) - invack) (=> (not (= curcmd empty)) - (=> (= chan3$1 (store - chan3 - recv_invack$i +(assert (not (=> (and (forall ((n node$type)) + (=> (= (select invset n) + Truth) (= (select + shrset + n) Truth))) + (forall ((n node$type)) (=> + (or + (= + (m_cmd + (select + chan2 + n)) + inv) + (= + (m_cmd + (select + chan3 + n)) + invack)) + (not + (= + (select + invset + n) + Truth))))) + (=> (= (m_cmd (select chan3 recv_invack$i)) + invack) (=> (not (= curcmd empty)) + (=> (= chan3$1 (store + chan3 + recv_invack$i (let ( - (vup_101 - (select - chan3 - recv_invack$i))) - (c_msg$type - empty - (m_data - vup_101))))) - (=> (= shrset$1 (store - shrset - recv_invack$i - Falsity)) - (= (ite (= exgntd Truth) - (ite (=> (= exgntd$1 - Falsity) - (=> (= memdata$1 - (m_data - (select - chan3$1 - recv_invack$i))) + (vup_101 + (select + chan3 + recv_invack$i))) + (c_msg$type + empty + (m_data + vup_101))))) + (=> (= shrset$1 (store + shrset + recv_invack$i + Falsity)) + (= (ite (= exgntd Truth) + (ite (=> (= exgntd$1 + Falsity) + (=> (= memdata$1 + (m_data + (select + chan3$1 + recv_invack$i))) (forall ( - (n node$type)) - (=> (= (select - invset - n) - Truth) - (= (select - shrset$1 - n) Truth))))) - Truth Falsity) + (n node$type)) + (=> (= (select + invset + n) + Truth) + (= (select + shrset$1 + n) Truth))))) + Truth Falsity) (ite (forall ( - (n node$type)) - (=> (= (select - invset - n) - Truth) - (= (select - shrset$1 - n) Truth))) - Truth Falsity)) + (n node$type)) + (=> (= (select + invset + n) + Truth) + (= (select + shrset$1 + n) Truth))) + Truth Falsity)) Truth)))))))) - + (check-sat) (exit) diff --git a/test/regress/regress1/fmf/jasmin-cdt-crash.smt2 b/test/regress/regress1/fmf/jasmin-cdt-crash.smt2 index 7012838f9..7f3a5b28f 100644 --- a/test/regress/regress1/fmf/jasmin-cdt-crash.smt2 +++ b/test/regress/regress1/fmf/jasmin-cdt-crash.smt2 @@ -1,16 +1,15 @@ -; COMMAND-LINE: --finite-model-find --fmf-inst-engine --uf-ss-fair-monotone --lang=smt2.5 +; COMMAND-LINE: --finite-model-find --fmf-inst-engine --uf-ss-fair-monotone ; EXPECT: sat (set-logic ALL_SUPPORTED) (set-info :status sat) (declare-sort a_ 0) (declare-fun __nun_card_witness_0 () a_) -(declare-codatatypes () - ((llist_ (LCons_ (_select_LCons__0 a_) (_select_LCons__1 llist_)) - (LNil_ )))) +(declare-codatatypes ((llist_ 0)) + (((LCons_ (_select_LCons__0 a_) (_select_LCons__1 llist_)) (LNil_)))) (declare-fun xs_ () llist_) (declare-fun y_ () a_) (declare-fun ys_ () llist_) -(declare-datatypes () ((_nat (_succ (_select__succ_0 _nat)) (_zero )))) +(declare-datatypes ((_nat 0)) (((_succ (_select__succ_0 _nat)) (_zero)))) (declare-fun decr_lprefix_ () _nat) (declare-sort G_lprefix__neg 0) (declare-fun __nun_card_witness_1 () G_lprefix__neg) @@ -21,28 +20,28 @@ (assert (forall ((a/60 G_lprefix__neg)) (=> - (or (= (proj_G_lprefix__neg_0 a/60) _zero) - (and (is-_succ (proj_G_lprefix__neg_0 a/60)) - (= (proj_G_lprefix__neg_1 a/60) LNil_)) + (or (= (proj_G_lprefix__neg_0 a/60) _zero) + (and ((_ is _succ) (proj_G_lprefix__neg_0 a/60)) + (= (proj_G_lprefix__neg_1 a/60) LNil_)) (and (=> (exists ((a/68 G_lprefix__neg)) (and (= (_select_LCons__1 (proj_G_lprefix__neg_2 a/60)) - (proj_G_lprefix__neg_2 a/68)) + (proj_G_lprefix__neg_2 a/68)) (= (_select_LCons__1 (proj_G_lprefix__neg_1 a/60)) - (proj_G_lprefix__neg_1 a/68)) + (proj_G_lprefix__neg_1 a/68)) (= (_select__succ_0 (proj_G_lprefix__neg_0 a/60)) (proj_G_lprefix__neg_0 a/68)))) - (lprefix__- (_select__succ_0 (proj_G_lprefix__neg_0 a/60)) - (_select_LCons__1 (proj_G_lprefix__neg_1 a/60)) - (_select_LCons__1 (proj_G_lprefix__neg_2 a/60)))) - (is-_succ (proj_G_lprefix__neg_0 a/60)) - (is-LCons_ (proj_G_lprefix__neg_1 a/60)) - (is-LCons_ (proj_G_lprefix__neg_2 a/60)) + (lprefix__- (_select__succ_0 (proj_G_lprefix__neg_0 a/60)) + (_select_LCons__1 (proj_G_lprefix__neg_1 a/60)) + (_select_LCons__1 (proj_G_lprefix__neg_2 a/60)))) + ((_ is _succ) (proj_G_lprefix__neg_0 a/60)) + ((_ is LCons_) (proj_G_lprefix__neg_1 a/60)) + ((_ is LCons_) (proj_G_lprefix__neg_2 a/60)) (= (_select_LCons__0 (proj_G_lprefix__neg_2 a/60)) (_select_LCons__0 (proj_G_lprefix__neg_1 a/60))))) - (lprefix__- (proj_G_lprefix__neg_0 a/60) (proj_G_lprefix__neg_1 a/60) + (lprefix__- (proj_G_lprefix__neg_0 a/60) (proj_G_lprefix__neg_1 a/60) (proj_G_lprefix__neg_2 a/60))))) (declare-sort G_lprefix__pos 0) (declare-fun __nun_card_witness_2 () G_lprefix__pos) @@ -53,18 +52,18 @@ (forall ((a/69 G_lprefix__pos)) (=> (lprefix__+ (proj_G_lprefix__pos_0 a/69) (proj_G_lprefix__pos_1 a/69)) - (or (= (proj_G_lprefix__pos_0 a/69) LNil_) + (or (= (proj_G_lprefix__pos_0 a/69) LNil_) (and - (lprefix__+ (_select_LCons__1 (proj_G_lprefix__pos_0 a/69)) - (_select_LCons__1 (proj_G_lprefix__pos_1 a/69))) + (lprefix__+ (_select_LCons__1 (proj_G_lprefix__pos_0 a/69)) + (_select_LCons__1 (proj_G_lprefix__pos_1 a/69))) (exists ((a/77 G_lprefix__pos)) (and (= (_select_LCons__1 (proj_G_lprefix__pos_1 a/69)) - (proj_G_lprefix__pos_1 a/77)) + (proj_G_lprefix__pos_1 a/77)) (= (_select_LCons__1 (proj_G_lprefix__pos_0 a/69)) - (proj_G_lprefix__pos_0 a/77)))) - (is-LCons_ (proj_G_lprefix__pos_0 a/69)) - (is-LCons_ (proj_G_lprefix__pos_1 a/69)) + (proj_G_lprefix__pos_0 a/77)))) + ((_ is LCons_) (proj_G_lprefix__pos_0 a/69)) + ((_ is LCons_) (proj_G_lprefix__pos_1 a/69)) (= (_select_LCons__0 (proj_G_lprefix__pos_1 a/69)) (_select_LCons__0 (proj_G_lprefix__pos_0 a/69)))))))) (declare-fun nun_sk_0 () llist_) @@ -74,27 +73,27 @@ (not (=> (exists ((a/109 G_lprefix__neg)) - (and (= (LCons_ y_ ys_) (proj_G_lprefix__neg_2 a/109)) - (= xs_ (proj_G_lprefix__neg_1 a/109)) + (and (= (LCons_ y_ ys_) (proj_G_lprefix__neg_2 a/109)) + (= xs_ (proj_G_lprefix__neg_1 a/109)) (= decr_lprefix_ (proj_G_lprefix__neg_0 a/109)))) - (lprefix__- decr_lprefix_ xs_ (LCons_ y_ ys_)))) - (or (= xs_ LNil_) - (and (= xs_ (LCons_ y_ nun_sk_0)) (lprefix__+ xs_ ys_) + (lprefix__- decr_lprefix_ xs_ (LCons_ y_ ys_)))) + (or (= xs_ LNil_) + (and (= xs_ (LCons_ y_ nun_sk_0)) (lprefix__+ xs_ ys_) (exists ((a/113 G_lprefix__pos)) - (and (= ys_ (proj_G_lprefix__pos_1 a/113)) - (= xs_ (proj_G_lprefix__pos_0 a/113))))))) - (and (not (= xs_ LNil_)) + (and (= ys_ (proj_G_lprefix__pos_1 a/113)) + (= xs_ (proj_G_lprefix__pos_0 a/113))))))) + (and (not (= xs_ LNil_)) (forall ((xs_H_/120 llist_)) - (or (not (= xs_ (LCons_ y_ xs_H_/120))) + (or (not (= xs_ (LCons_ y_ xs_H_/120))) (not (=> (exists ((a/124 G_lprefix__neg)) - (and (= ys_ (proj_G_lprefix__neg_2 a/124)) - (= xs_ (proj_G_lprefix__neg_1 a/124)) + (and (= ys_ (proj_G_lprefix__neg_2 a/124)) + (= xs_ (proj_G_lprefix__neg_1 a/124)) (= decr_lprefix_ (proj_G_lprefix__neg_0 a/124)))) - (lprefix__- decr_lprefix_ xs_ ys_))))) - (lprefix__+ xs_ (LCons_ y_ ys_)) + (lprefix__- decr_lprefix_ xs_ ys_))))) + (lprefix__+ xs_ (LCons_ y_ ys_)) (exists ((a/125 G_lprefix__pos)) - (and (= (LCons_ y_ ys_) (proj_G_lprefix__pos_1 a/125)) + (and (= (LCons_ y_ ys_) (proj_G_lprefix__pos_1 a/125)) (= xs_ (proj_G_lprefix__pos_0 a/125))))))) (check-sat) diff --git a/test/regress/regress1/fmf/loopy_coda.smt2 b/test/regress/regress1/fmf/loopy_coda.smt2 index 519fb17fc..378380779 100644 --- a/test/regress/regress1/fmf/loopy_coda.smt2 +++ b/test/regress/regress1/fmf/loopy_coda.smt2 @@ -1,11 +1,11 @@ -; COMMAND-LINE: --finite-model-find --fmf-inst-engine --uf-ss-fair-monotone --lang=smt2.5 +; COMMAND-LINE: --finite-model-find --fmf-inst-engine --uf-ss-fair-monotone ; EXPECT: sat (set-logic ALL_SUPPORTED) (set-info :status sat) (declare-sort a 0) (declare-fun __nun_card_witness_0 () a) -(declare-codatatypes () - ((llist (LCons (_select_LCons_0 a) (_select_LCons_1 llist)) (LNil )))) +(declare-codatatypes ((llist 0)) + (((LCons (_select_LCons_0 a) (_select_LCons_1 llist)) (LNil )))) (declare-fun xs () llist) (declare-fun y () a) (declare-fun ys () llist) @@ -18,12 +18,12 @@ (forall ((a/33 G_lappend)) (and (= (lappend (proj_G_lappend_0 a/33) (proj_G_lappend_1 a/33)) - (ite (is-LCons (proj_G_lappend_0 a/33)) + (ite ((_ is LCons) (proj_G_lappend_0 a/33)) (LCons (_select_LCons_0 (proj_G_lappend_0 a/33)) (lappend (_select_LCons_1 (proj_G_lappend_0 a/33)) (proj_G_lappend_1 a/33))) (proj_G_lappend_1 a/33))) - (=> (is-LCons (proj_G_lappend_0 a/33)) + (=> ((_ is LCons) (proj_G_lappend_0 a/33)) (exists ((a/35 G_lappend)) (and (= (proj_G_lappend_1 a/33) (proj_G_lappend_1 a/35)) (= (_select_LCons_1 (proj_G_lappend_0 a/33)) diff --git a/test/regress/regress1/fmf/lst-no-self-rev-exp.smt2 b/test/regress/regress1/fmf/lst-no-self-rev-exp.smt2 index d55e15925..b2c42d7c5 100644 --- a/test/regress/regress1/fmf/lst-no-self-rev-exp.smt2 +++ b/test/regress/regress1/fmf/lst-no-self-rev-exp.smt2 @@ -1,11 +1,11 @@ -; COMMAND-LINE: --finite-model-find --dt-rewrite-error-sel --lang=smt2.5 +; COMMAND-LINE: --finite-model-find --dt-rewrite-error-sel ; EXPECT: sat (set-logic ALL_SUPPORTED) -(declare-datatypes () ((Nat (succ (pred Nat)) (zero)) (Lst (cons (hd Nat) (tl Lst)) (nil)))) +(declare-datatypes ((Nat 0) (Lst 0)) (((succ (pred Nat)) (zero)) ((cons (hd Nat) (tl Lst)) (nil)))) (declare-fun app (Lst Lst) Lst) (declare-fun rev (Lst) Lst) - + (declare-sort I_app 0) (declare-sort I_rev 0) @@ -20,16 +20,15 @@ (declare-fun xs () Lst) (assert (and - -(forall ((?i I_app)) (= (app (app_0_3 ?i) (app_1_4 ?i)) (ite (is-cons (app_0_3 ?i)) (cons (hd (app_0_3 ?i)) (app (tl (app_0_3 ?i)) (app_1_4 ?i))) (app_1_4 ?i))) ) - -(forall ((?i I_rev)) (= (rev (rev_0_5 ?i)) (ite (is-cons (rev_0_5 ?i)) (app (rev (tl (rev_0_5 ?i))) (cons (hd (rev_0_5 ?i)) nil)) nil)) ) -(forall ((?i I_rev)) (or (not (is-cons (rev_0_5 ?i))) (and (not (forall ((?z I_app)) (not (and (= (app_0_3 ?z) (rev (tl (rev_0_5 ?i)))) (= (app_1_4 ?z) (cons (hd (rev_0_5 ?i)) nil)))) )) (not (forall ((?z I_rev)) (not (= (rev_0_5 ?z) (tl (rev_0_5 ?i)) )) )))) ) +(forall ((?i I_app)) (= (app (app_0_3 ?i) (app_1_4 ?i)) (ite ((_ is cons) (app_0_3 ?i)) (cons (hd (app_0_3 ?i)) (app (tl (app_0_3 ?i)) (app_1_4 ?i))) (app_1_4 ?i))) ) + +(forall ((?i I_rev)) (= (rev (rev_0_5 ?i)) (ite ((_ is cons) (rev_0_5 ?i)) (app (rev (tl (rev_0_5 ?i))) (cons (hd (rev_0_5 ?i)) nil)) nil)) ) + +(forall ((?i I_rev)) (or (not ((_ is cons) (rev_0_5 ?i))) (and (not (forall ((?z I_app)) (not (and (= (app_0_3 ?z) (rev (tl (rev_0_5 ?i)))) (= (app_1_4 ?z) (cons (hd (rev_0_5 ?i)) nil)))) )) (not (forall ((?z I_rev)) (not (= (rev_0_5 ?z) (tl (rev_0_5 ?i)) )) )))) ) (not (or (= xs (rev xs)) (forall ((?z I_rev)) (not (= (rev_0_5 ?z) xs)) ))) - + )) - -(check-sat) +(check-sat) diff --git a/test/regress/regress1/fmf/nun-0208-to.smt2 b/test/regress/regress1/fmf/nun-0208-to.smt2 index e6b3c2021..25851f6e0 100644 --- a/test/regress/regress1/fmf/nun-0208-to.smt2 +++ b/test/regress/regress1/fmf/nun-0208-to.smt2 @@ -1,180 +1,179 @@ -; COMMAND-LINE: --finite-model-find --lang=smt2.5 +; COMMAND-LINE: --finite-model-find ; EXPECT: sat - (set-logic ALL_SUPPORTED) - (declare-sort b__ 0) - (declare-fun __nun_card_witness_0_ () b__) - (declare-sort a__ 0) - (declare-fun __nun_card_witness_1_ () a__) - (declare-datatypes () - ((prod__ (Pair__ (_select_Pair___0 a__) (_select_Pair___1 b__))))) - (declare-datatypes () - ((list2__ - (Cons2__ (_select_Cons2___0 prod__) (_select_Cons2___1 list2__)) - (Nil2__ )))) - (declare-datatypes () - ((list__ (Cons__ (_select_Cons___0 a__) (_select_Cons___1 list__)) - (Nil__ )))) - (declare-datatypes () - ((list1__ (Cons1__ (_select_Cons1___0 b__) (_select_Cons1___1 list1__)) - (Nil1__ )))) - (declare-sort G_zip__ 0) - (declare-fun __nun_card_witness_2_ () G_zip__) - (declare-fun zip__ (list__ list1__) list2__) - (declare-fun proj_G_zip__0_ (G_zip__) list__) - (declare-fun proj_G_zip__1_ (G_zip__) list1__) - (assert - (forall ((a/166 G_zip__)) - (and - (= (zip__ (proj_G_zip__0_ a/166) (proj_G_zip__1_ a/166)) - (ite (is-Cons1__ (proj_G_zip__1_ a/166)) - (ite (is-Cons__ (proj_G_zip__0_ a/166)) - (Cons2__ - (Pair__ (_select_Cons___0 (proj_G_zip__0_ a/166)) - (_select_Cons1___0 (proj_G_zip__1_ a/166))) - (zip__ (_select_Cons___1 (proj_G_zip__0_ a/166)) - (_select_Cons1___1 (proj_G_zip__1_ a/166)))) - Nil2__) - Nil2__)) - (=> (is-Cons1__ (proj_G_zip__1_ a/166)) - (=> (is-Cons__ (proj_G_zip__0_ a/166)) - (exists ((a/168 G_zip__)) - (and - (= (_select_Cons1___1 (proj_G_zip__1_ a/166)) - (proj_G_zip__1_ a/168)) - (= (_select_Cons___1 (proj_G_zip__0_ a/166)) - (proj_G_zip__0_ a/168))))))))) - (declare-datatypes () ((nat__ (Suc__ (_select_Suc___0 nat__)) (zero__ )))) - (declare-sort G_replicate__ 0) - (declare-fun __nun_card_witness_3_ () G_replicate__) - (declare-fun replicate__ (nat__ a__) list__) - (declare-fun proj_G_replicate__0_ (G_replicate__) nat__) - (declare-fun proj_G_replicate__1_ (G_replicate__) a__) - (assert - (forall ((a/169 G_replicate__)) - (and - (= - (replicate__ (proj_G_replicate__0_ a/169) - (proj_G_replicate__1_ a/169)) - (ite (is-Suc__ (proj_G_replicate__0_ a/169)) - (Cons__ (proj_G_replicate__1_ a/169) - (replicate__ (_select_Suc___0 (proj_G_replicate__0_ a/169)) - (proj_G_replicate__1_ a/169))) - Nil__)) - (=> (is-Suc__ (proj_G_replicate__0_ a/169)) - (exists ((a/171 G_replicate__)) - (and - (= (proj_G_replicate__1_ a/169) (proj_G_replicate__1_ a/171)) - (= (_select_Suc___0 (proj_G_replicate__0_ a/169)) - (proj_G_replicate__0_ a/171)))))))) - (declare-fun j__ () nat__) - (declare-fun x__ () a__) - (declare-sort G_replicate1__ 0) - (declare-fun __nun_card_witness_4_ () G_replicate1__) - (declare-fun replicate1__ (nat__ b__) list1__) - (declare-fun proj_G_replicate1__0_ (G_replicate1__) nat__) - (declare-fun proj_G_replicate1__1_ (G_replicate1__) b__) - (assert - (forall ((a/172 G_replicate1__)) - (and - (= - (replicate1__ (proj_G_replicate1__0_ a/172) - (proj_G_replicate1__1_ a/172)) - (ite (is-Suc__ (proj_G_replicate1__0_ a/172)) - (Cons1__ (proj_G_replicate1__1_ a/172) - (replicate1__ (_select_Suc___0 (proj_G_replicate1__0_ a/172)) - (proj_G_replicate1__1_ a/172))) - Nil1__)) - (=> (is-Suc__ (proj_G_replicate1__0_ a/172)) - (exists ((a/174 G_replicate1__)) - (and - (= (proj_G_replicate1__1_ a/172) (proj_G_replicate1__1_ a/174)) - (= (_select_Suc___0 (proj_G_replicate1__0_ a/172)) - (proj_G_replicate1__0_ a/174)))))))) - (declare-fun y__ () b__) - (declare-sort G_replicate2__ 0) - (declare-fun __nun_card_witness_5_ () G_replicate2__) - (declare-fun replicate2__ (nat__ prod__) list2__) - (declare-fun proj_G_replicate2__0_ (G_replicate2__) nat__) - (declare-fun proj_G_replicate2__1_ (G_replicate2__) prod__) - (assert - (forall ((a/175 G_replicate2__)) - (and - (= - (replicate2__ (proj_G_replicate2__0_ a/175) - (proj_G_replicate2__1_ a/175)) - (ite (is-Suc__ (proj_G_replicate2__0_ a/175)) - (Cons2__ (proj_G_replicate2__1_ a/175) - (replicate2__ (_select_Suc___0 (proj_G_replicate2__0_ a/175)) - (proj_G_replicate2__1_ a/175))) - Nil2__)) - (=> (is-Suc__ (proj_G_replicate2__0_ a/175)) - (exists ((a/177 G_replicate2__)) - (and - (= (proj_G_replicate2__1_ a/175) (proj_G_replicate2__1_ a/177)) - (= (_select_Suc___0 (proj_G_replicate2__0_ a/175)) - (proj_G_replicate2__0_ a/177)))))))) - (declare-sort G_less__eq__ 0) - (declare-fun __nun_card_witness_6_ () G_less__eq__) - (declare-fun less__eq__ (nat__ nat__) Bool) - (declare-fun proj_G_less__eq__0_ (G_less__eq__) nat__) - (declare-fun proj_G_less__eq__1_ (G_less__eq__) nat__) - (assert - (forall ((a/178 G_less__eq__)) - (and - (= - (less__eq__ (proj_G_less__eq__0_ a/178) (proj_G_less__eq__1_ a/178)) - (=> (is-Suc__ (proj_G_less__eq__0_ a/178)) - (and (is-Suc__ (proj_G_less__eq__1_ a/178)) - (less__eq__ (_select_Suc___0 (proj_G_less__eq__0_ a/178)) - (_select_Suc___0 (proj_G_less__eq__1_ a/178)))))) - (exists ((a/182 G_less__eq__)) +(set-logic ALL_SUPPORTED) +(declare-sort b__ 0) +(declare-fun __nun_card_witness_0_ () b__) +(declare-sort a__ 0) +(declare-fun __nun_card_witness_1_ () a__) +(declare-datatypes ((prod__ 0)) + (((Pair__ (_select_Pair___0 a__) (_select_Pair___1 b__))))) +(declare-datatypes ((list2__ 0)) + (((Cons2__ (_select_Cons2___0 prod__) (_select_Cons2___1 list2__)) + (Nil2__ )))) +(declare-datatypes ((list__ 0)) + (((Cons__ (_select_Cons___0 a__) (_select_Cons___1 list__)) + (Nil__ )))) +(declare-datatypes ((list1__ 0)) + (((Cons1__ (_select_Cons1___0 b__) (_select_Cons1___1 list1__)) + (Nil1__ )))) +(declare-sort G_zip__ 0) +(declare-fun __nun_card_witness_2_ () G_zip__) +(declare-fun zip__ (list__ list1__) list2__) +(declare-fun proj_G_zip__0_ (G_zip__) list__) +(declare-fun proj_G_zip__1_ (G_zip__) list1__) +(assert + (forall ((a/166 G_zip__)) + (and + (= (zip__ (proj_G_zip__0_ a/166) (proj_G_zip__1_ a/166)) + (ite ((_ is Cons1__) (proj_G_zip__1_ a/166)) + (ite ((_ is Cons__) (proj_G_zip__0_ a/166)) + (Cons2__ + (Pair__ (_select_Cons___0 (proj_G_zip__0_ a/166)) + (_select_Cons1___0 (proj_G_zip__1_ a/166))) + (zip__ (_select_Cons___1 (proj_G_zip__0_ a/166)) + (_select_Cons1___1 (proj_G_zip__1_ a/166)))) + Nil2__) + Nil2__)) + (=> ((_ is Cons1__) (proj_G_zip__1_ a/166)) + (=> ((_ is Cons__) (proj_G_zip__0_ a/166)) + (exists ((a/168 G_zip__)) (and - (= (_select_Suc___0 (proj_G_less__eq__1_ a/178)) - (proj_G_less__eq__1_ a/182)) - (= (_select_Suc___0 (proj_G_less__eq__0_ a/178)) - (proj_G_less__eq__0_ a/182))))))) - (declare-sort G_min__ 0) - (declare-fun __nun_card_witness_7_ () G_min__) - (declare-fun min__ (nat__ nat__) nat__) - (declare-fun proj_G_min__0_ (G_min__) nat__) - (declare-fun proj_G_min__1_ (G_min__) nat__) - (assert - (forall ((a/183 G_min__)) - (and - (= (min__ (proj_G_min__0_ a/183) (proj_G_min__1_ a/183)) - (ite (less__eq__ (proj_G_min__0_ a/183) (proj_G_min__1_ a/183)) - (proj_G_min__0_ a/183) (proj_G_min__1_ a/183))) - (exists ((a/184 G_less__eq__)) - (and (= (proj_G_min__1_ a/183) (proj_G_less__eq__1_ a/184)) - (= (proj_G_min__0_ a/183) (proj_G_less__eq__0_ a/184))))))) - (declare-fun i__ () nat__) - (assert - (not - (=> - (and - (exists ((a/212 G_min__)) - (and (= i__ (proj_G_min__1_ a/212)) (= i__ (proj_G_min__0_ a/212)))) - (exists ((a/208 G_replicate2__)) - (and (= (Pair__ x__ y__) (proj_G_replicate2__1_ a/208)) - (= (min__ i__ i__) (proj_G_replicate2__0_ a/208)) - (exists ((a/210 G_min__)) - (and (= i__ (proj_G_min__1_ a/210)) - (= i__ (proj_G_min__0_ a/210)))))) - (exists ((a/199 G_zip__)) - (and (= (replicate1__ j__ y__) (proj_G_zip__1_ a/199)) - (exists ((a/202 G_replicate1__)) - (and (= y__ (proj_G_replicate1__1_ a/202)) - (= j__ (proj_G_replicate1__0_ a/202)))) - (= (replicate__ j__ x__) (proj_G_zip__0_ a/199)) - (exists ((a/203 G_replicate__)) - (and (= x__ (proj_G_replicate__1_ a/203)) - (= j__ (proj_G_replicate__0_ a/203)))))) - (exists ((a/207 G_replicate1__)) - (and (= y__ (proj_G_replicate1__1_ a/207)) - (= j__ (proj_G_replicate1__0_ a/207)))) - (exists ((a/206 G_replicate__)) - (and (= x__ (proj_G_replicate__1_ a/206)) - (= j__ (proj_G_replicate__0_ a/206))))) - (= (replicate2__ (min__ i__ i__) (Pair__ x__ y__)) - (zip__ (replicate__ j__ x__) (replicate1__ j__ y__)))))) - (check-sat) + (= (_select_Cons1___1 (proj_G_zip__1_ a/166)) + (proj_G_zip__1_ a/168)) + (= (_select_Cons___1 (proj_G_zip__0_ a/166)) + (proj_G_zip__0_ a/168))))))))) +(declare-datatypes ((nat__ 0)) (((Suc__ (_select_Suc___0 nat__)) (zero__)))) +(declare-sort G_replicate__ 0) +(declare-fun __nun_card_witness_3_ () G_replicate__) +(declare-fun replicate__ (nat__ a__) list__) +(declare-fun proj_G_replicate__0_ (G_replicate__) nat__) +(declare-fun proj_G_replicate__1_ (G_replicate__) a__) +(assert + (forall ((a/169 G_replicate__)) + (and + (= + (replicate__ (proj_G_replicate__0_ a/169) + (proj_G_replicate__1_ a/169)) + (ite ((_ is Suc__) (proj_G_replicate__0_ a/169)) + (Cons__ (proj_G_replicate__1_ a/169) + (replicate__ (_select_Suc___0 (proj_G_replicate__0_ a/169)) + (proj_G_replicate__1_ a/169))) + Nil__)) + (=> ((_ is Suc__) (proj_G_replicate__0_ a/169)) + (exists ((a/171 G_replicate__)) + (and + (= (proj_G_replicate__1_ a/169) (proj_G_replicate__1_ a/171)) + (= (_select_Suc___0 (proj_G_replicate__0_ a/169)) + (proj_G_replicate__0_ a/171)))))))) +(declare-fun j__ () nat__) +(declare-fun x__ () a__) +(declare-sort G_replicate1__ 0) +(declare-fun __nun_card_witness_4_ () G_replicate1__) +(declare-fun replicate1__ (nat__ b__) list1__) +(declare-fun proj_G_replicate1__0_ (G_replicate1__) nat__) +(declare-fun proj_G_replicate1__1_ (G_replicate1__) b__) +(assert + (forall ((a/172 G_replicate1__)) + (and + (= + (replicate1__ (proj_G_replicate1__0_ a/172) + (proj_G_replicate1__1_ a/172)) + (ite ((_ is Suc__) (proj_G_replicate1__0_ a/172)) + (Cons1__ (proj_G_replicate1__1_ a/172) + (replicate1__ (_select_Suc___0 (proj_G_replicate1__0_ a/172)) + (proj_G_replicate1__1_ a/172))) + Nil1__)) + (=> ((_ is Suc__) (proj_G_replicate1__0_ a/172)) + (exists ((a/174 G_replicate1__)) + (and + (= (proj_G_replicate1__1_ a/172) (proj_G_replicate1__1_ a/174)) + (= (_select_Suc___0 (proj_G_replicate1__0_ a/172)) + (proj_G_replicate1__0_ a/174)))))))) +(declare-fun y__ () b__) +(declare-sort G_replicate2__ 0) +(declare-fun __nun_card_witness_5_ () G_replicate2__) +(declare-fun replicate2__ (nat__ prod__) list2__) +(declare-fun proj_G_replicate2__0_ (G_replicate2__) nat__) +(declare-fun proj_G_replicate2__1_ (G_replicate2__) prod__) +(assert + (forall ((a/175 G_replicate2__)) + (and + (= + (replicate2__ (proj_G_replicate2__0_ a/175) + (proj_G_replicate2__1_ a/175)) + (ite ((_ is Suc__) (proj_G_replicate2__0_ a/175)) + (Cons2__ (proj_G_replicate2__1_ a/175) + (replicate2__ (_select_Suc___0 (proj_G_replicate2__0_ a/175)) + (proj_G_replicate2__1_ a/175))) + Nil2__)) + (=> ((_ is Suc__) (proj_G_replicate2__0_ a/175)) + (exists ((a/177 G_replicate2__)) + (and + (= (proj_G_replicate2__1_ a/175) (proj_G_replicate2__1_ a/177)) + (= (_select_Suc___0 (proj_G_replicate2__0_ a/175)) + (proj_G_replicate2__0_ a/177)))))))) +(declare-sort G_less__eq__ 0) +(declare-fun __nun_card_witness_6_ () G_less__eq__) +(declare-fun less__eq__ (nat__ nat__) Bool) +(declare-fun proj_G_less__eq__0_ (G_less__eq__) nat__) +(declare-fun proj_G_less__eq__1_ (G_less__eq__) nat__) +(assert + (forall ((a/178 G_less__eq__)) + (and + (= + (less__eq__ (proj_G_less__eq__0_ a/178) (proj_G_less__eq__1_ a/178)) + (=> ((_ is Suc__) (proj_G_less__eq__0_ a/178)) + (and ((_ is Suc__) (proj_G_less__eq__1_ a/178)) + (less__eq__ (_select_Suc___0 (proj_G_less__eq__0_ a/178)) + (_select_Suc___0 (proj_G_less__eq__1_ a/178)))))) + (exists ((a/182 G_less__eq__)) + (and + (= (_select_Suc___0 (proj_G_less__eq__1_ a/178)) + (proj_G_less__eq__1_ a/182)) + (= (_select_Suc___0 (proj_G_less__eq__0_ a/178)) + (proj_G_less__eq__0_ a/182))))))) +(declare-sort G_min__ 0) +(declare-fun __nun_card_witness_7_ () G_min__) +(declare-fun min__ (nat__ nat__) nat__) +(declare-fun proj_G_min__0_ (G_min__) nat__) +(declare-fun proj_G_min__1_ (G_min__) nat__) +(assert + (forall ((a/183 G_min__)) + (and + (= (min__ (proj_G_min__0_ a/183) (proj_G_min__1_ a/183)) + (ite (less__eq__ (proj_G_min__0_ a/183) (proj_G_min__1_ a/183)) + (proj_G_min__0_ a/183) (proj_G_min__1_ a/183))) + (exists ((a/184 G_less__eq__)) + (and (= (proj_G_min__1_ a/183) (proj_G_less__eq__1_ a/184)) + (= (proj_G_min__0_ a/183) (proj_G_less__eq__0_ a/184))))))) +(declare-fun i__ () nat__) +(assert + (not + (=> + (and + (exists ((a/212 G_min__)) + (and (= i__ (proj_G_min__1_ a/212)) (= i__ (proj_G_min__0_ a/212)))) + (exists ((a/208 G_replicate2__)) + (and (= (Pair__ x__ y__) (proj_G_replicate2__1_ a/208)) + (= (min__ i__ i__) (proj_G_replicate2__0_ a/208)) + (exists ((a/210 G_min__)) + (and (= i__ (proj_G_min__1_ a/210)) + (= i__ (proj_G_min__0_ a/210)))))) + (exists ((a/199 G_zip__)) + (and (= (replicate1__ j__ y__) (proj_G_zip__1_ a/199)) + (exists ((a/202 G_replicate1__)) + (and (= y__ (proj_G_replicate1__1_ a/202)) + (= j__ (proj_G_replicate1__0_ a/202)))) + (= (replicate__ j__ x__) (proj_G_zip__0_ a/199)) + (exists ((a/203 G_replicate__)) + (and (= x__ (proj_G_replicate__1_ a/203)) + (= j__ (proj_G_replicate__0_ a/203)))))) + (exists ((a/207 G_replicate1__)) + (and (= y__ (proj_G_replicate1__1_ a/207)) + (= j__ (proj_G_replicate1__0_ a/207)))) + (exists ((a/206 G_replicate__)) + (and (= x__ (proj_G_replicate__1_ a/206)) + (= j__ (proj_G_replicate__0_ a/206))))) + (= (replicate2__ (min__ i__ i__) (Pair__ x__ y__)) + (zip__ (replicate__ j__ x__) (replicate1__ j__ y__)))))) +(check-sat) diff --git a/test/regress/regress1/fmf/sc-crash-052316.smt2 b/test/regress/regress1/fmf/sc-crash-052316.smt2 index 345d8220e..5c695e482 100644 --- a/test/regress/regress1/fmf/sc-crash-052316.smt2 +++ b/test/regress/regress1/fmf/sc-crash-052316.smt2 @@ -1,29 +1,29 @@ -; COMMAND-LINE: --finite-model-find --lang=smt2.5 +; COMMAND-LINE: --finite-model-find ; EXPECT: unsat - (set-logic ALL_SUPPORTED) - (set-info :status unsat) - (declare-sort g_ 0) - (declare-fun __nun_card_witness_0_ () g_) - (declare-sort f_ 0) - (declare-fun __nun_card_witness_1_ () f_) - (declare-sort e_ 0) - (declare-fun __nun_card_witness_2_ () e_) -(declare-datatypes () - ((prod1_ (Pair1_ (_select_Pair1__0 e_) (_select_Pair1__1 f_))))) - (declare-sort d_ 0) - (declare-fun __nun_card_witness_3_ () d_) - (declare-sort c_ 0) - (declare-fun __nun_card_witness_4_ () c_) - (declare-sort b_ 0) - (declare-fun __nun_card_witness_5_ () b_) - (declare-sort a_ 0) - (declare-fun __nun_card_witness_6_ () a_) -(declare-datatypes () - ((prod_ (Pair_ (_select_Pair__0 a_) (_select_Pair__1 b_))))) - (declare-fun f1_ (prod_ c_ d_ prod1_) g_) - (declare-fun g1_ (prod_) c_) - (declare-fun h_ (prod_ d_) prod1_) - (declare-fun nun_sk_0_ () prod_) +(set-logic ALL_SUPPORTED) +(set-info :status unsat) +(declare-sort g_ 0) +(declare-fun __nun_card_witness_0_ () g_) +(declare-sort f_ 0) +(declare-fun __nun_card_witness_1_ () f_) +(declare-sort e_ 0) +(declare-fun __nun_card_witness_2_ () e_) +(declare-datatypes ((prod1_ 0)) + (((Pair1_ (_select_Pair1__0 e_) (_select_Pair1__1 f_))))) +(declare-sort d_ 0) +(declare-fun __nun_card_witness_3_ () d_) +(declare-sort c_ 0) +(declare-fun __nun_card_witness_4_ () c_) +(declare-sort b_ 0) +(declare-fun __nun_card_witness_5_ () b_) +(declare-sort a_ 0) +(declare-fun __nun_card_witness_6_ () a_) +(declare-datatypes ((prod_ 0)) + (((Pair_ (_select_Pair__0 a_) (_select_Pair__1 b_))))) +(declare-fun f1_ (prod_ c_ d_ prod1_) g_) +(declare-fun g1_ (prod_) c_) +(declare-fun h_ (prod_ d_) prod1_) +(declare-fun nun_sk_0_ () prod_) (declare-fun nun_sk_1_ (c_) d_) (assert (not diff --git a/test/regress/regress1/fmf/with-ind-104-core.smt2 b/test/regress/regress1/fmf/with-ind-104-core.smt2 index c1d718403..508629f8e 100644 --- a/test/regress/regress1/fmf/with-ind-104-core.smt2 +++ b/test/regress/regress1/fmf/with-ind-104-core.smt2 @@ -1,10 +1,9 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: unsat (set-logic ALL_SUPPORTED) (set-info :status unsat) -(declare-datatypes () ((Nat!2409 (succ!2410 (pred!2411 Nat!2409)) (zero!2412)) +(declare-datatypes ((Nat!2409 0)) (((succ!2410 (pred!2411 Nat!2409)) (zero!2412)) )) -(declare-datatypes () ((Lst!2413 (cons!2414 (head!2415 Nat!2409) (tail!2416 Lst!2413)) (nil!2417)) +(declare-datatypes ((Lst!2413 0)) (((cons!2414 (head!2415 Nat!2409) (tail!2416 Lst!2413)) (nil!2417)) )) (declare-fun error_value!2418 () Nat!2409) (declare-fun plus!237 (Nat!2409 Nat!2409) Nat!2409) @@ -26,10 +25,10 @@ (assert (and (not (forall ((h!413 Nat!2409) (BOUND_VARIABLE_663 I_plus!237) (BOUND_VARIABLE_671 I_count!263) (BOUND_VARIABLE_679 I_count!263) (BOUND_VARIABLE_687 I_count!263) (BOUND_VARIABLE_695 I_plus!237) (BOUND_VARIABLE_703 I_count!263) (BOUND_VARIABLE_711 I_count!263) (BOUND_VARIABLE_719 I_count!263)) (or (not (= (plus!237 (count!263 (count!263_arg_0_6 BOUND_VARIABLE_671) (cons!2414 h!413 nil!2417)) (count!263 (count!263_arg_0_6 BOUND_VARIABLE_671) (count!263_arg_1_7 BOUND_VARIABLE_679))) (count!263 (count!263_arg_0_6 BOUND_VARIABLE_671) (cons!2414 h!413 (count!263_arg_1_7 BOUND_VARIABLE_679))))) (= (plus!237 (count!263 (succ!2410 (count!263_arg_0_6 BOUND_VARIABLE_671)) (cons!2414 h!413 nil!2417)) (count!263 (succ!2410 (count!263_arg_0_6 BOUND_VARIABLE_671)) (count!263_arg_1_7 BOUND_VARIABLE_679))) (count!263 (succ!2410 (count!263_arg_0_6 BOUND_VARIABLE_671)) (cons!2414 h!413 (count!263_arg_1_7 BOUND_VARIABLE_679)))) (not (= (plus!237_arg_0_4 BOUND_VARIABLE_663) (count!263 (count!263_arg_0_6 BOUND_VARIABLE_671) (cons!2414 h!413 nil!2417)))) (not (= (plus!237_arg_1_5 BOUND_VARIABLE_663) (count!263 (count!263_arg_0_6 BOUND_VARIABLE_671) (count!263_arg_1_7 BOUND_VARIABLE_679)))) (not (= (count!263_arg_1_7 BOUND_VARIABLE_671) (cons!2414 h!413 nil!2417))) (not (= (count!263_arg_0_6 BOUND_VARIABLE_679) (count!263_arg_0_6 BOUND_VARIABLE_671))) (not (= (count!263_arg_0_6 BOUND_VARIABLE_687) (count!263_arg_0_6 BOUND_VARIABLE_671))) (not (= (count!263_arg_1_7 BOUND_VARIABLE_687) (cons!2414 h!413 (count!263_arg_1_7 BOUND_VARIABLE_679)))) (not (= (plus!237_arg_0_4 BOUND_VARIABLE_695) (count!263 (succ!2410 (count!263_arg_0_6 BOUND_VARIABLE_671)) (cons!2414 h!413 nil!2417)))) (not (= (plus!237_arg_1_5 BOUND_VARIABLE_695) (count!263 (succ!2410 (count!263_arg_0_6 BOUND_VARIABLE_671)) (count!263_arg_1_7 BOUND_VARIABLE_679)))) (not (= (count!263_arg_0_6 BOUND_VARIABLE_703) (succ!2410 (count!263_arg_0_6 BOUND_VARIABLE_671)))) (not (= (count!263_arg_1_7 BOUND_VARIABLE_703) (cons!2414 h!413 nil!2417))) (not (= (count!263_arg_0_6 BOUND_VARIABLE_711) (succ!2410 (count!263_arg_0_6 BOUND_VARIABLE_671)))) (not (= (count!263_arg_1_7 BOUND_VARIABLE_711) (count!263_arg_1_7 BOUND_VARIABLE_679))) (not (= (count!263_arg_0_6 BOUND_VARIABLE_719) (succ!2410 (count!263_arg_0_6 BOUND_VARIABLE_671)))) (not (= (count!263_arg_1_7 BOUND_VARIABLE_719) (cons!2414 h!413 (count!263_arg_1_7 BOUND_VARIABLE_679))))) )) -(forall ((?j I_plus!237)) (= (plus!237 (plus!237_arg_0_4 ?j) (plus!237_arg_1_5 ?j)) (ite (is-zero!2412 (plus!237_arg_0_4 ?j)) (plus!237_arg_1_5 ?j) (ite (is-succ!2410 (plus!237_arg_0_4 ?j)) (succ!2410 (plus!237 (ite (is-succ!2410 (plus!237_arg_0_4 ?j)) (pred!2411 (plus!237_arg_0_4 ?j)) (pred!2411_uf_1 (plus!237_arg_0_4 ?j))) (plus!237_arg_1_5 ?j))) error_value!2418))) ) -(forall ((?i I_plus!237)) (ite (is-zero!2412 (plus!237_arg_0_4 ?i)) true (ite (is-succ!2410 (plus!237_arg_0_4 ?i)) (not (forall ((?z I_plus!237)) (or (not (= (plus!237_arg_0_4 ?z) (ite (is-succ!2410 (plus!237_arg_0_4 ?i)) (pred!2411 (plus!237_arg_0_4 ?i)) (pred!2411_uf_1 (plus!237_arg_0_4 ?i))))) (not (= (plus!237_arg_1_5 ?z) (plus!237_arg_1_5 ?i)))) )) true)) ) -(forall ((?i I_count!263)) (= (count!263 (count!263_arg_0_6 ?i) (count!263_arg_1_7 ?i)) (ite (is-nil!2417 (count!263_arg_1_7 ?i)) zero!2412 (ite (is-cons!2414 (count!263_arg_1_7 ?i)) (ite (= (count!263_arg_0_6 ?i) (ite (is-cons!2414 (count!263_arg_1_7 ?i)) (head!2415 (count!263_arg_1_7 ?i)) (head!2415_uf_3 (count!263_arg_1_7 ?i)))) (succ!2410 (count!263 (count!263_arg_0_6 ?i) (ite (is-cons!2414 (count!263_arg_1_7 ?i)) (tail!2416 (count!263_arg_1_7 ?i)) (tail!2416_uf_2 (count!263_arg_1_7 ?i))))) (count!263 (count!263_arg_0_6 ?i) (ite (is-cons!2414 (count!263_arg_1_7 ?i)) (tail!2416 (count!263_arg_1_7 ?i)) (tail!2416_uf_2 (count!263_arg_1_7 ?i))))) error_value!2419))) ) -(forall ((?j I_count!263)) (ite (is-nil!2417 (count!263_arg_1_7 ?j)) true (ite (is-cons!2414 (count!263_arg_1_7 ?j)) (ite (= (count!263_arg_0_6 ?j) (ite (is-cons!2414 (count!263_arg_1_7 ?j)) (head!2415 (count!263_arg_1_7 ?j)) (head!2415_uf_3 (count!263_arg_1_7 ?j)))) (not (forall ((?z I_count!263)) (or (not (= (count!263_arg_0_6 ?z) (count!263_arg_0_6 ?j))) (not (= (count!263_arg_1_7 ?z) (ite (is-cons!2414 (count!263_arg_1_7 ?j)) (tail!2416 (count!263_arg_1_7 ?j)) (tail!2416_uf_2 (count!263_arg_1_7 ?j)))))) )) (not (forall ((?z I_count!263)) (or (not (= (count!263_arg_0_6 ?z) (count!263_arg_0_6 ?j))) (not (= (count!263_arg_1_7 ?z) (ite (is-cons!2414 (count!263_arg_1_7 ?j)) (tail!2416 (count!263_arg_1_7 ?j)) (tail!2416_uf_2 (count!263_arg_1_7 ?j)))))) ))) true)) ) +(forall ((?j I_plus!237)) (= (plus!237 (plus!237_arg_0_4 ?j) (plus!237_arg_1_5 ?j)) (ite ((_ is zero!2412) (plus!237_arg_0_4 ?j)) (plus!237_arg_1_5 ?j) (ite ((_ is succ!2410) (plus!237_arg_0_4 ?j)) (succ!2410 (plus!237 (ite ((_ is succ!2410) (plus!237_arg_0_4 ?j)) (pred!2411 (plus!237_arg_0_4 ?j)) (pred!2411_uf_1 (plus!237_arg_0_4 ?j))) (plus!237_arg_1_5 ?j))) error_value!2418))) ) +(forall ((?i I_plus!237)) (ite ((_ is zero!2412) (plus!237_arg_0_4 ?i)) true (ite ((_ is succ!2410) (plus!237_arg_0_4 ?i)) (not (forall ((?z I_plus!237)) (or (not (= (plus!237_arg_0_4 ?z) (ite ((_ is succ!2410) (plus!237_arg_0_4 ?i)) (pred!2411 (plus!237_arg_0_4 ?i)) (pred!2411_uf_1 (plus!237_arg_0_4 ?i))))) (not (= (plus!237_arg_1_5 ?z) (plus!237_arg_1_5 ?i)))) )) true)) ) +(forall ((?i I_count!263)) (= (count!263 (count!263_arg_0_6 ?i) (count!263_arg_1_7 ?i)) (ite ((_ is nil!2417) (count!263_arg_1_7 ?i)) zero!2412 (ite ((_ is cons!2414) (count!263_arg_1_7 ?i)) (ite (= (count!263_arg_0_6 ?i) (ite ((_ is cons!2414) (count!263_arg_1_7 ?i)) (head!2415 (count!263_arg_1_7 ?i)) (head!2415_uf_3 (count!263_arg_1_7 ?i)))) (succ!2410 (count!263 (count!263_arg_0_6 ?i) (ite ((_ is cons!2414) (count!263_arg_1_7 ?i)) (tail!2416 (count!263_arg_1_7 ?i)) (tail!2416_uf_2 (count!263_arg_1_7 ?i))))) (count!263 (count!263_arg_0_6 ?i) (ite ((_ is cons!2414) (count!263_arg_1_7 ?i)) (tail!2416 (count!263_arg_1_7 ?i)) (tail!2416_uf_2 (count!263_arg_1_7 ?i))))) error_value!2419))) ) +(forall ((?j I_count!263)) (ite ((_ is nil!2417) (count!263_arg_1_7 ?j)) true (ite ((_ is cons!2414) (count!263_arg_1_7 ?j)) (ite (= (count!263_arg_0_6 ?j) (ite ((_ is cons!2414) (count!263_arg_1_7 ?j)) (head!2415 (count!263_arg_1_7 ?j)) (head!2415_uf_3 (count!263_arg_1_7 ?j)))) (not (forall ((?z I_count!263)) (or (not (= (count!263_arg_0_6 ?z) (count!263_arg_0_6 ?j))) (not (= (count!263_arg_1_7 ?z) (ite ((_ is cons!2414) (count!263_arg_1_7 ?j)) (tail!2416 (count!263_arg_1_7 ?j)) (tail!2416_uf_2 (count!263_arg_1_7 ?j)))))) )) (not (forall ((?z I_count!263)) (or (not (= (count!263_arg_0_6 ?z) (count!263_arg_0_6 ?j))) (not (= (count!263_arg_1_7 ?z) (ite ((_ is cons!2414) (count!263_arg_1_7 ?j)) (tail!2416 (count!263_arg_1_7 ?j)) (tail!2416_uf_2 (count!263_arg_1_7 ?j)))))) ))) true)) ) ) ) (check-sat) diff --git a/test/regress/regress1/quantifiers/bug_743.smt2 b/test/regress/regress1/quantifiers/bug_743.smt2 index ec5a5149e..1b6b16535 100644 --- a/test/regress/regress1/quantifiers/bug_743.smt2 +++ b/test/regress/regress1/quantifiers/bug_743.smt2 @@ -1,4 +1,4 @@ -; COMMAND-LINE: --lang=smt2.5 +; COMMAND-LINE: --lang=smt2.6 ; EXPECT: unsat ;; produced by cvc4_14.drv ;; @@ -10,23 +10,22 @@ ;;; generated by SMT-LIB2 driver ;;; SMT-LIB2 driver: bit-vectors, common part ;;; SMT-LIB2: integer arithmetic -(declare-datatypes () ((tuple0 (Tuple0)))) +(declare-datatypes ((tuple0 0)) (((Tuple0)))) (declare-sort us_private 0) (declare-fun us_null_ext__ () us_private) (declare-sort us_type_of_heap 0) -(declare-datatypes () -((us_type_of_heap__ref - (mk___type_of_heap__ref (us_type_of_heap__content us_type_of_heap))))) +(declare-datatypes ((us_type_of_heap__ref 0)) +(((mk___type_of_heap__ref (us_type_of_heap__content us_type_of_heap))))) (declare-sort us_image 0) -(declare-datatypes () ((int__ref (mk_int__ref (int__content Int))))) -(declare-datatypes () ((bool__ref (mk_bool__ref (bool__content Bool))))) -(declare-datatypes () ((real__ref (mk_real__ref (real__content Real))))) -(declare-datatypes () -((us_private__ref (mk___private__ref (us_private__content us_private))))) +(declare-datatypes ((int__ref 0)) (((mk_int__ref (int__content Int))))) +(declare-datatypes ((bool__ref 0)) (((mk_bool__ref (bool__content Bool))))) +(declare-datatypes ((real__ref 0)) (((mk_real__ref (real__content Real))))) +(declare-datatypes ((us_private__ref 0)) +(((mk___private__ref (us_private__content us_private))))) (define-fun int__ref___projection ((a int__ref)) Int (int__content a)) (define-fun bool__ref___projection ((a bool__ref)) Bool (bool__content a)) @@ -76,24 +75,24 @@ ;; inversion_axiom (assert - (forall ((x integer)) (! (= (of_rep (to_rep x)) x) :pattern ((to_rep x)) + (forall ((x integer)) (! (= (of_rep (to_rep x)) x) :pattern ((to_rep x)) ))) ;; range_axiom (assert - (forall ((x integer)) (! (in_range1 (to_rep x)) :pattern ((to_rep x)) + (forall ((x integer)) (! (in_range1 (to_rep x)) :pattern ((to_rep x)) ))) ;; coerce_axiom (assert (forall ((x Int)) (! (=> (in_range1 x) (= (to_rep (of_rep x)) x)) :pattern ((to_rep - (of_rep x))) + (of_rep x))) ))) -(declare-datatypes () -((integer__ref (mk_integer__ref (integer__content integer))))) -(define-fun integer__ref___projection ((a integer__ref)) integer +(declare-datatypes ((integer__ref 0)) +(((mk_integer__ref (integer__content integer))))) +(define-fun integer__ref___projection ((a integer__ref)) integer (integer__content a)) @@ -124,23 +123,23 @@ ;; range_axiom (assert - (forall ((x natural)) (! (in_range2 (to_rep1 x)) :pattern ((to_rep1 x)) + (forall ((x natural)) (! (in_range2 (to_rep1 x)) :pattern ((to_rep1 x)) ))) ;; coerce_axiom (assert (forall ((x Int)) (! (=> (in_range2 x) (= (to_rep1 (of_rep1 x)) x)) :pattern ((to_rep1 - (of_rep1 + (of_rep1 x))) ))) -(declare-datatypes () -((natural__ref (mk_natural__ref (natural__content natural))))) -(define-fun natural__ref___projection ((a natural__ref)) natural +(declare-datatypes ((natural__ref 0)) +(((mk_natural__ref (natural__content natural))))) +(define-fun natural__ref___projection ((a natural__ref)) natural (natural__content a)) -(define-fun dynamic_invariant ((temp___expr_33 Int) (temp___is_init_30 +(define-fun dynamic_invariant ((temp___expr_33 Int) (temp___is_init_30 Bool) (temp___do_constant_31 Bool) (temp___do_toplevel_32 Bool)) Bool (=> @@ -175,19 +174,19 @@ Bool) ;; range_axiom (assert - (forall ((x index)) (! (in_range3 (to_rep2 x)) :pattern ((to_rep2 x)) + (forall ((x index)) (! (in_range3 (to_rep2 x)) :pattern ((to_rep2 x)) ))) ;; coerce_axiom (assert (forall ((x Int)) (! (=> (in_range3 x) (= (to_rep2 (of_rep2 x)) x)) :pattern ((to_rep2 - (of_rep2 + (of_rep2 x))) ))) -(declare-datatypes () ((index__ref (mk_index__ref (index__content +(declare-datatypes ((index__ref 0)) (((mk_index__ref (index__content index))))) -(define-fun index__ref___projection ((a index__ref)) index (index__content +(define-fun index__ref___projection ((a index__ref)) index (index__content a)) (define-fun dynamic_invariant1 ((temp___expr_144 Int) @@ -197,8 +196,8 @@ a)) (<= 1 100)) (in_range3 temp___expr_144))) -(declare-datatypes () -((map__ref (mk_map__ref (map__content (Array Int natural)))))) +(declare-datatypes ((map__ref 0)) +(((mk_map__ref (map__content (Array Int natural)))))) (declare-fun bool_eq3 ((Array Int natural) Int Int (Array Int natural) Int Int) Bool) @@ -214,7 +213,7 @@ a)) (and (ite (<= af al) (= (+ (- al af) 1) (+ (- bl bf) 1)) (< bl bf)) (forall ((i Int)) (! (=> (and (<= af i) (<= i al)) - (= (select a i) (select b (+ (- bf af) i)))) :pattern ((select a + (= (select a i) (select b (+ (- bf af) i)))) :pattern ((select a i)) ))) (= (bool_eq3 a af al b bf bl) true)) :pattern ((bool_eq3 a af al b bf bl)) )))))))) @@ -233,7 +232,7 @@ i)) ))) (forall ((old_first Int)) (forall ((new_first Int)) (forall ((i Int)) - (! (= (select (slide a old_first new_first) i) (select a (- i (- + (! (= (select (slide a old_first new_first) i) (select a (- i (- new_first old_first)))) :pattern ((select (slide a old_first new_first) i)) )))))) @@ -247,10 +246,10 @@ new_first old_first)))) :pattern ((select (forall ((i Int)) (! (and (=> (and (<= a_first i) (<= i a_last)) - (= (select (concat1 a a_first a_last b b_first b_last) i) (select a + (= (select (concat1 a a_first a_last b b_first b_last) i) (select a i))) (=> (< a_last i) - (= (select (concat1 a a_first a_last b b_first b_last) i) (select b + (= (select (concat1 a a_first a_last b b_first b_last) i) (select b (+ (- i a_last) (- b_first 1)))))) :pattern ((select (concat1 a a_first a_last b b_first b_last) i)) ))))) @@ -260,7 +259,7 @@ i))) (assert (forall ((v natural)) (forall ((i Int)) - (! (= (select (singleton v i) i) v) :pattern ((select (singleton v i) + (! (= (select (singleton v i) i) v) :pattern ((select (singleton v i) i)) )))) (declare-fun compare ((Array Int natural) Int Int (Array Int natural) Int @@ -289,7 +288,7 @@ i)) )))) (and (= (bool_eq3 a a_first j b b_first i) true) (or (= i b_last) (and (< i b_last) - (< (to_rep1 (select b (+ i 1))) (to_rep1 (select a (+ j + (< (to_rep1 (select b (+ i 1))) (to_rep1 (select a (+ j 1))))))))))))) :pattern ( (compare a a_first a_last b b_first b_last)) )))) @@ -306,17 +305,17 @@ i)) )))) (forall ((f Int) (l Int)) (! (=> (in_range1 f) (=> (in_range1 l) - (and (= (to_rep (first (mk f l))) f) (= (to_rep (last (mk f l))) + (and (= (to_rep (first (mk f l))) f) (= (to_rep (last (mk f l))) l)))) :pattern ( (mk f l)) ))) (define-fun dynamic_property ((range_first Int) (range_last Int) (low Int) (high Int)) Bool (and (in_range1 low) (and (in_range1 high) - (=> (<= low high) (and (in_range3 low) (in_range3 + (=> (<= low high) (and (in_range3 low) (in_range3 high)))))) -(declare-datatypes () ((us_t (mk___t (elts (Array Int natural))(rt t))))) +(declare-datatypes ((us_t 0)) (((mk___t (elts (Array Int natural)) (rt t))))) (define-fun to_array ((a us_t)) (Array Int natural) (elts a)) (define-fun of_array ((a (Array Int natural)) (f Int) @@ -369,16 +368,16 @@ high)))))) (declare-fun dummy3 () us_t) -(declare-datatypes () -((nat_array__ref (mk_nat_array__ref (nat_array__content us_t))))) -(define-fun nat_array__ref___projection ((a nat_array__ref)) us_t +(declare-datatypes ((nat_array__ref 0)) +(((mk_nat_array__ref (nat_array__content us_t))))) +(define-fun nat_array__ref___projection ((a nat_array__ref)) us_t (nat_array__content a)) (define-fun dynamic_invariant2 ((temp___expr_150 us_t) (temp___is_init_147 Bool) (temp___do_constant_148 Bool) (temp___do_toplevel_149 Bool)) Bool (=> - (not (= temp___do_constant_148 + (not (= temp___do_constant_148 true)) (dynamic_property 1 100 (first1 temp___expr_150) @@ -405,9 +404,9 @@ true)) (declare-fun dummy4 () integer) -(declare-datatypes () ((t15s__ref (mk_t15s__ref (t15s__content +(declare-datatypes ((t15s__ref 0)) (((mk_t15s__ref (t15s__content integer))))) -(define-fun t15s__ref___projection ((a t15s__ref)) integer (t15s__content +(define-fun t15s__ref___projection ((a t15s__ref)) integer (t15s__content a)) (declare-sort t1 0) @@ -423,11 +422,11 @@ a)) (forall ((f Int) (l Int)) (! (=> (in_range1 f) (=> (in_range1 l) - (and (= (to_rep (first3 (mk1 f l))) f) (= (to_rep (last3 (mk1 f l))) + (and (= (to_rep (first3 (mk1 f l))) f) (= (to_rep (last3 (mk1 f l))) l)))) :pattern ( (mk1 f l)) ))) -(define-fun dynamic_property2 ((range_first Int) (range_last Int) (low +(define-fun dynamic_property2 ((range_first Int) (range_last Int) (low Int) (high Int)) Bool (and (in_range1 low) (and (in_range1 high) @@ -435,8 +434,8 @@ Int) (and (dynamic_property1 range_first range_last low) (dynamic_property1 range_first range_last high)))))) -(declare-datatypes () -((us_t1 (mk___t1 (elts1 (Array Int natural))(rt1 t1))))) +(declare-datatypes ((us_t1 0)) +(((mk___t1 (elts1 (Array Int natural)) (rt1 t1))))) (define-fun to_array1 ((a us_t1)) (Array Int natural) (elts1 a)) (define-fun of_array1 ((a (Array Int natural)) (f Int) @@ -478,7 +477,7 @@ Int) (assert (<= 0 value__alignment1)) ;; object__alignment_axiom - (assert (forall ((a (Array Int natural))) (<= 0 (object__alignment1 + (assert (forall ((a (Array Int natural))) (<= 0 (object__alignment1 a)))) (define-fun bool_eq6 ((x us_t1) @@ -490,8 +489,8 @@ a)))) (declare-fun dummy5 () us_t1) -(declare-datatypes () ((t16s__ref (mk_t16s__ref (t16s__content us_t1))))) -(define-fun t16s__ref___projection ((a t16s__ref)) us_t1 (t16s__content +(declare-datatypes ((t16s__ref 0)) (((mk_t16s__ref (t16s__content us_t1))))) +(define-fun t16s__ref___projection ((a t16s__ref)) us_t1 (t16s__content a)) ;; remove_last__post_axiom @@ -505,15 +504,15 @@ a)) (assert (forall ((a us_t)) (! (=> (dynamic_invariant2 a true true true) - (= (remove_last a) (let ((temp___163 (let ((temp___162 (- (last1 a) + (= (remove_last a) (let ((temp___163 (let ((temp___162 (- (last1 a) 1))) (let ((temp___161 (first1 a))) - (of_array1 (to_array a) + (of_array1 (to_array a) temp___161 temp___162))))) - (of_array (to_array1 temp___163) (first4 + (of_array (to_array1 temp___163) (first4 temp___163) - (last4 temp___163))))) :pattern ((remove_last a)) + (last4 temp___163))))) :pattern ((remove_last a)) ))) (declare-fun occ (us_t Int) Int) @@ -545,19 +544,19 @@ temp___163) ;; range_axiom (assert - (forall ((x nb_occ)) (! (in_range4 (to_rep3 x)) :pattern ((to_rep3 x)) + (forall ((x nb_occ)) (! (in_range4 (to_rep3 x)) :pattern ((to_rep3 x)) ))) ;; coerce_axiom (assert (forall ((x Int)) (! (=> (in_range4 x) (= (to_rep3 (of_rep3 x)) x)) :pattern ((to_rep3 - (of_rep3 + (of_rep3 x))) ))) -(declare-datatypes () -((nb_occ__ref (mk_nb_occ__ref (nb_occ__content nb_occ))))) -(define-fun nb_occ__ref___projection ((a nb_occ__ref)) nb_occ +(declare-datatypes ((nb_occ__ref 0)) +(((mk_nb_occ__ref (nb_occ__content nb_occ))))) +(define-fun nb_occ__ref___projection ((a nb_occ__ref)) nb_occ (nb_occ__content a)) @@ -576,7 +575,7 @@ x))) ))) (forall ((e Int)) (! (=> (and (dynamic_invariant2 a true true true) (in_range2 e)) (let ((result (occ a e))) - (and (<= result (length a)) (dynamic_invariant3 result true false + (and (<= result (length a)) (dynamic_invariant3 result true false true)))) :pattern ( (occ a e)) )))) @@ -600,7 +599,7 @@ true)))) :pattern ( (forall ((j Int)) (=> (and (<= (first1 a) j) (<= j (last1 a))) (=> (not (= i j)) - (= (to_rep1 (select (to_array r) j)) (to_rep1 (select (to_array a) + (= (to_rep1 (select (to_array r) j)) (to_rep1 (select (to_array a) j)))))))) :pattern ( (is_set a i v r)) )))) @@ -630,7 +629,7 @@ j)))))))) :pattern ( (declare-fun attr__ATTRIBUTE_ADDRESS5 () Int) -(define-fun dynamic_invariant4 ((temp___expr_15 Int) (temp___is_init_12 +(define-fun dynamic_invariant4 ((temp___expr_15 Int) (temp___is_init_12 Bool) (temp___do_constant_13 Bool) (temp___do_toplevel_14 Bool)) Bool (=> @@ -644,12 +643,12 @@ Bool) (forall ((e1 Int)) (! (=> (and (dynamic_invariant2 a1 true true true) (in_range2 e1)) (= (occ_def a1 e1) (ite (= (length a1) 0) 0 - (ite (= (to_rep1 (select (to_array a1) (last1 + (ite (= (to_rep1 (select (to_array a1) (last1 a1))) e1) (+ (occ_def (remove_last a1) e1) 1) - (occ_def (remove_last a1) e1))))) :pattern + (occ_def (remove_last a1) e1))))) :pattern ((occ_def - a1 + a1 e1)) )))) (declare-fun b () (Array Int natural)) @@ -721,7 +720,7 @@ e1)) )))) (assert (= b1 perm__occ_set__b__assume)) ;; H - (assert (= (to_rep b__first) (to_rep (first + (assert (= (to_rep b__first) (to_rep (first perm__occ_set__b__assume1)))) ;; H @@ -774,4 +773,3 @@ perm__occ_set__b__assume1)))) (to_rep (first (mk (to_rep b__first) (to_rep b__last)))) (to_rep (last (mk (to_rep b__first) (to_rep b__last))))) true))) (check-sat) - diff --git a/test/regress/regress1/quantifiers/cdt-0208-to.smt2 b/test/regress/regress1/quantifiers/cdt-0208-to.smt2 index 9eff608bb..8f0312616 100644 --- a/test/regress/regress1/quantifiers/cdt-0208-to.smt2 +++ b/test/regress/regress1/quantifiers/cdt-0208-to.smt2 @@ -1,4 +1,4 @@ -; COMMAND-LINE: --full-saturate-quant --lang=smt2.5 +; COMMAND-LINE: --full-saturate-quant ; EXPECT: unsat (set-logic ALL_SUPPORTED) (set-info :status unsat) @@ -102,11 +102,12 @@ (declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_bool_fun_fun$ 0) (declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$ 0) (declare-sort A_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_a_llist_a_llist_prod_prod_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$ 0) -(declare-codatatypes () ((A_llist$ (lNil$) (lCons$ (lhd$ A$) (ltl$ A_llist$))))) -(declare-datatypes () ((A_llist_a_llist_prod$ (pair$ (fst$ A_llist$) (snd$ A_llist$))))) -(declare-codatatypes () ((A_llist_a_llist_prod_llist$ (lNil$a) (lCons$a (lhd$a A_llist_a_llist_prod$) (ltl$a A_llist_a_llist_prod_llist$))))) -(declare-datatypes () ((A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_prod$ (pair$a (fst$a A_llist_a_llist_prod_llist$) (snd$a A_llist_a_llist_prod_llist$))) - (A_llist_a_llist_prod_a_llist_a_llist_prod_prod$ (pair$b (fst$b A_llist_a_llist_prod$) (snd$b A_llist_a_llist_prod$))))) +(declare-codatatypes ((A_llist$ 0)) (((lNil$) (lCons$ (lhd$ A$) (ltl$ A_llist$))))) +(declare-datatypes ((A_llist_a_llist_prod$ 0)) (((pair$ (fst$ A_llist$) (snd$ A_llist$))))) +(declare-codatatypes ((A_llist_a_llist_prod_llist$ 0)) (((lNil$a) (lCons$a (lhd$a A_llist_a_llist_prod$) (ltl$a A_llist_a_llist_prod_llist$))))) +(declare-datatypes ((A_llist_a_llist_prod_llist_a_llist_a_llist_prod_llist_prod$ 0) (A_llist_a_llist_prod_a_llist_a_llist_prod_prod$ 0)) ( + ((pair$a (fst$a A_llist_a_llist_prod_llist$) (snd$a A_llist_a_llist_prod_llist$))) + ((pair$b (fst$b A_llist_a_llist_prod$) (snd$b A_llist_a_llist_prod$))))) (declare-fun p$ () A_llist_a_llist_bool_fun_fun$) (declare-fun uu$ (Bool) A_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_a_llist_a_llist_prod_a_llist_a_llist_prod_bool_fun_fun_fun$) (declare-fun xs$ () A_llist$) diff --git a/test/regress/regress1/quantifiers/parametric-lists.smt2 b/test/regress/regress1/quantifiers/parametric-lists.smt2 index c45152d6f..f236c1ec7 100644 --- a/test/regress/regress1/quantifiers/parametric-lists.smt2 +++ b/test/regress/regress1/quantifiers/parametric-lists.smt2 @@ -1,9 +1,8 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: unsat (set-logic ALL_SUPPORTED) (set-info :status unsat) -(declare-datatypes (T) ((List (cons (head T) (tail (List T))) (nil)))) -(declare-datatypes () ((KV (kv (key Int) (value Int)) (nilKV)))) ; key value pair +(declare-datatypes ((List 1)) ((par (T) ((cons (head T) (tail (List T))) (nil))))) +(declare-datatypes ((KV 0)) (((kv (key Int) (value Int)) (nilKV)))) (declare-fun mapper ((List Int)) (List KV)) (assert (forall @@ -13,7 +12,7 @@ (= (as nil (List KV)) (mapper input)) (= (cons (kv 0 (head input)) (mapper (tail input))) (mapper input)) ) - ) + ) ) (declare-fun reduce ((List KV)) Int) (assert @@ -41,4 +40,3 @@ (not (= (sum (cons 0 (as nil (List Int)))) (reduce (mapper (cons 0 (as nil (List Int))))))) ) (check-sat) - diff --git a/test/regress/regress1/quantifiers/stream-x2014-09-18-unsat.smt2 b/test/regress/regress1/quantifiers/stream-x2014-09-18-unsat.smt2 index 9243654b4..fe593e8c0 100644 --- a/test/regress/regress1/quantifiers/stream-x2014-09-18-unsat.smt2 +++ b/test/regress/regress1/quantifiers/stream-x2014-09-18-unsat.smt2 @@ -1,4 +1,3 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: unsat (set-logic ALL_SUPPORTED) (set-info :status unsat) @@ -28,13 +27,14 @@ (declare-sort B_stream_stream_b_stream_stream_fun$ 0) (declare-sort A_stream_stream_stream_a_stream_stream_stream_fun$ 0) (declare-sort B_stream_stream_stream_b_stream_stream_stream_fun$ 0) -(declare-datatypes () ((Nat$ (zero$) (suc$ (pred$ Nat$))))) -(declare-codatatypes () ((A_stream$ (sCons$ (shd$ A$) (stl$ A_stream$))) - (B_stream$ (sCons$a (shd$a B$) (stl$a B_stream$))) - (B_stream_stream$ (sCons$b (shd$b B_stream$) (stl$b B_stream_stream$))) - (B_stream_stream_stream$ (sCons$c (shd$c B_stream_stream$) (stl$c B_stream_stream_stream$))) - (A_stream_stream$ (sCons$d (shd$d A_stream$) (stl$d A_stream_stream$))) - (A_stream_stream_stream$ (sCons$e (shd$e A_stream_stream$) (stl$e A_stream_stream_stream$))))) +(declare-datatypes ((Nat$ 0)) (((zero$) (suc$ (pred$ Nat$))))) +(declare-codatatypes ((A_stream$ 0) (B_stream$ 0) (B_stream_stream$ 0) (B_stream_stream_stream$ 0) (A_stream_stream$ 0) (A_stream_stream_stream$ 0)) ( + ((sCons$ (shd$ A$) (stl$ A_stream$))) + ((sCons$a (shd$a B$) (stl$a B_stream$))) + ((sCons$b (shd$b B_stream$) (stl$b B_stream_stream$))) + ((sCons$c (shd$c B_stream_stream$) (stl$c B_stream_stream_stream$))) + ((sCons$d (shd$d A_stream$) (stl$d A_stream_stream$))) + ((sCons$e (shd$e A_stream_stream$) (stl$e A_stream_stream_stream$))))) (declare-fun f$ () B_a_fun$) (declare-fun x$ () B$) (declare-fun id$ () B_b_fun$) diff --git a/test/regress/regress1/quantifiers/subtype-param-unk.smt2 b/test/regress/regress1/quantifiers/subtype-param-unk.smt2 index f3ee6a86a..1828a68b2 100644 --- a/test/regress/regress1/quantifiers/subtype-param-unk.smt2 +++ b/test/regress/regress1/quantifiers/subtype-param-unk.smt2 @@ -1,4 +1,3 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: (error "argument type is not a subtype of the function's argument type: ; EXPECT: argument: x ; EXPECT: has type: (List Int) @@ -9,7 +8,7 @@ ; this will fail if type rule for APPLY_UF requires arguments to be subtypes (set-logic ALL_SUPPORTED) -(declare-datatypes (T) ((List (cons (hd T) (tl (List T))) (nil)))) +(declare-datatypes ((List 1)) ((par (T) ((cons (hd T) (tl (List T))) (nil))))) (declare-fun R ((List Real)) Bool) (assert (forall ((x (List Int))) (R x))) diff --git a/test/regress/regress1/quantifiers/subtype-param.smt2 b/test/regress/regress1/quantifiers/subtype-param.smt2 index 860c03b6f..c4cdfb244 100644 --- a/test/regress/regress1/quantifiers/subtype-param.smt2 +++ b/test/regress/regress1/quantifiers/subtype-param.smt2 @@ -1,4 +1,3 @@ -; COMMAND-LINE: --lang=smt2.5 ; EXPECT: (error "argument type is not a subtype of the function's argument type: ; EXPECT: argument: x ; EXPECT: has type: (Array Int Int) @@ -9,7 +8,7 @@ (set-logic ALL_SUPPORTED) (set-info :status unsat) -(declare-datatypes (T) ((List (cons (hd T) (tl (List T))) (nil)))) +(declare-datatypes ((List 1)) ((par (T) ((cons (hd T) (tl (List T))) (nil))))) (declare-fun R ((List Real)) Bool) (assert (forall ((x (List Real))) (R x))) diff --git a/test/regress/regress1/sets/issue2568.smt2 b/test/regress/regress1/sets/issue2568.smt2 index 2e3a5f9c8..17a05c876 100644 --- a/test/regress/regress1/sets/issue2568.smt2 +++ b/test/regress/regress1/sets/issue2568.smt2 @@ -1,9 +1,9 @@ -; COMMAND-LINE: --lang=smt2.5 --incremental +; COMMAND-LINE: --incremental ; EXPECT: sat ; EXPECT: sat (set-logic ALL) -(declare-datatypes () ((Unit (uu)))) +(declare-datatypes ((Unit 0)) (((uu)))) (declare-fun y () Int) (declare-fun b () Bool) diff --git a/test/regress/regress2/bug765.smt2 b/test/regress/regress2/bug765.smt2 index 2144de060..6c1c633a9 100644 --- a/test/regress/regress2/bug765.smt2 +++ b/test/regress/regress2/bug765.smt2 @@ -1,17 +1,17 @@ -; COMMAND-LINE: --incremental --fmf-fun-rlv --no-check-models --lang=smt2.5 +; COMMAND-LINE: --incremental --fmf-fun-rlv --no-check-models (set-logic ALL_SUPPORTED) -(declare-datatypes () ( - (Color (red) (white) (blue)) -) ) +(declare-datatypes ((Color 0)) ( + ((red) (white) (blue)) +)) -(define-fun ColorToString ((c Color)) String (ite (is-red c) "red" (ite (is-white c) "white" "blue")) ) +(define-fun ColorToString ((c Color)) String (ite ((_ is red) c) "red" (ite ((_ is white) c) "white" "blue")) ) (declare-fun ColorFromString (String) Color) (assert (forall ((c Color)) (= c (ColorFromString (ColorToString c))))) -(declare-datatypes () ( - (CP (cp (c1 Color) (c2 Color))) -) ) +(declare-datatypes ((CP 0)) ( + ((cp (c1 Color) (c2 Color))) +)) (define-fun-rec CPToString ((cp CP)) String (str.++ "cp(" (ColorToString (c1 cp)) "," (ColorToString (c2 cp)) ")")) (declare-fun CPFromString (String) CP) diff --git a/test/regress/regress2/quantifiers/ForElimination-scala-9.smt2 b/test/regress/regress2/quantifiers/ForElimination-scala-9.smt2 index e8a784fc7..04ea50b72 100644 --- a/test/regress/regress2/quantifiers/ForElimination-scala-9.smt2 +++ b/test/regress/regress2/quantifiers/ForElimination-scala-9.smt2 @@ -1,9 +1,10 @@ -; COMMAND-LINE: --finite-model-find --uf-ss=no-minimal --lang=smt2.5 +; COMMAND-LINE: --finite-model-find --uf-ss=no-minimal ; EXPECT: unsat (set-logic ALL_SUPPORTED) -(declare-datatypes () ((Statement!1556 (Assign!1557 (varID!1558 (_ BitVec 32)) (expr!1559 Expression!1578)) (Block!1560 (body!1561 List!1617)) (For!1562 (init!1563 Statement!1556) (expr!1564 Expression!1578) (step!1565 Statement!1556) (body!1566 Statement!1556)) (IfThenElse!1567 (expr!1568 Expression!1578) (then!1569 Statement!1556) (elze!1570 Statement!1556)) (Print!1571 (msg!1572 (_ BitVec 32)) (varID!1573 (_ BitVec 32))) (Skip!1574) (While!1575 (expr!1576 Expression!1578) (body!1577 Statement!1556))) -(Expression!1578 (And!1579 (lhs!1580 Expression!1578) (rhs!1581 Expression!1578)) (Division!1582 (lhs!1583 Expression!1578) (rhs!1584 Expression!1578)) (Equals!1585 (lhs!1586 Expression!1578) (rhs!1587 Expression!1578)) (GreaterThan!1588 (lhs!1589 Expression!1578) (rhs!1590 Expression!1578)) (IntLiteral!1591 (value!1592 (_ BitVec 32))) (LessThan!1593 (lhs!1594 Expression!1578) (rhs!1595 Expression!1578)) (Minus!1596 (lhs!1597 Expression!1578) (rhs!1598 Expression!1578)) (Modulo!1599 (lhs!1600 Expression!1578) (rhs!1601 Expression!1578)) (Neg!1602 (expr!1603 Expression!1578)) (Not!1604 (expr!1605 Expression!1578)) (Or!1606 (lhs!1607 Expression!1578) (rhs!1608 Expression!1578)) (Plus!1609 (lhs!1610 Expression!1578) (rhs!1611 Expression!1578)) (Times!1612 (lhs!1613 Expression!1578) (rhs!1614 Expression!1578)) (Var!1615 (varID!1616 (_ BitVec 32)))) -(List!1617 (Cons!1618 (head!1619 Statement!1556) (tail!1620 List!1617)) (Nil!1621)) +(declare-datatypes ((Statement!1556 0) (Expression!1578 0) (List!1617 0)) ( +((Assign!1557 (varID!1558 (_ BitVec 32)) (expr!1559 Expression!1578)) (Block!1560 (body!1561 List!1617)) (For!1562 (init!1563 Statement!1556) (expr!1564 Expression!1578) (step!1565 Statement!1556) (body!1566 Statement!1556)) (IfThenElse!1567 (expr!1568 Expression!1578) (then!1569 Statement!1556) (elze!1570 Statement!1556)) (Print!1571 (msg!1572 (_ BitVec 32)) (varID!1573 (_ BitVec 32))) (Skip!1574) (While!1575 (expr!1576 Expression!1578) (body!1577 Statement!1556))) +((And!1579 (lhs!1580 Expression!1578) (rhs!1581 Expression!1578)) (Division!1582 (lhs!1583 Expression!1578) (rhs!1584 Expression!1578)) (Equals!1585 (lhs!1586 Expression!1578) (rhs!1587 Expression!1578)) (GreaterThan!1588 (lhs!1589 Expression!1578) (rhs!1590 Expression!1578)) (IntLiteral!1591 (value!1592 (_ BitVec 32))) (LessThan!1593 (lhs!1594 Expression!1578) (rhs!1595 Expression!1578)) (Minus!1596 (lhs!1597 Expression!1578) (rhs!1598 Expression!1578)) (Modulo!1599 (lhs!1600 Expression!1578) (rhs!1601 Expression!1578)) (Neg!1602 (expr!1603 Expression!1578)) (Not!1604 (expr!1605 Expression!1578)) (Or!1606 (lhs!1607 Expression!1578) (rhs!1608 Expression!1578)) (Plus!1609 (lhs!1610 Expression!1578) (rhs!1611 Expression!1578)) (Times!1612 (lhs!1613 Expression!1578) (rhs!1614 Expression!1578)) (Var!1615 (varID!1616 (_ BitVec 32)))) +((Cons!1618 (head!1619 Statement!1556) (tail!1620 List!1617)) (Nil!1621)) )) (declare-fun error_value!1622 () Bool) (declare-fun ifree (Statement!1556) Bool) @@ -23,9 +24,9 @@ (declare-sort I_efl 0) (set-info :notes "efl_arg_0_4 is op created during fun def fmf") (declare-fun efl_arg_0_4 (I_efl) Statement!1556) -(assert (forall ((?i I_ifree)) (and (= (ifree (ifree_arg_0_1 ?i)) (ite (is-Block!1560 (ifree_arg_0_1 ?i)) (isForFreeList!223 (body!1561 (ifree_arg_0_1 ?i))) (ite (is-IfThenElse!1567 (ifree_arg_0_1 ?i)) (and (ifree (elze!1570 (ifree_arg_0_1 ?i))) (ifree (then!1569 (ifree_arg_0_1 ?i)))) (ite (is-While!1575 (ifree_arg_0_1 ?i)) (ifree (body!1577 (ifree_arg_0_1 ?i))) (not (is-For!1562 (ifree_arg_0_1 ?i))))))) (ite (is-Block!1560 (ifree_arg_0_1 ?i)) (not (forall ((?z I_isForFreeList!223)) (not (= (isForFreeList!223_arg_0_2 ?z) (body!1561 (ifree_arg_0_1 ?i)))) )) (ite (is-IfThenElse!1567 (ifree_arg_0_1 ?i)) (and (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (elze!1570 (ifree_arg_0_1 ?i)))) )) (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (then!1569 (ifree_arg_0_1 ?i)))) ))) (ite (is-While!1575 (ifree_arg_0_1 ?i)) (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (body!1577 (ifree_arg_0_1 ?i)))) )) true)))) )) -(assert (forall ((?i I_isForFreeList!223)) (and (= (isForFreeList!223 (isForFreeList!223_arg_0_2 ?i)) (ite (is-Nil!1621 (isForFreeList!223_arg_0_2 ?i)) true (ite (is-Cons!1618 (isForFreeList!223_arg_0_2 ?i)) (and (isForFreeList!223 (tail!1620 (isForFreeList!223_arg_0_2 ?i))) (ifree (head!1619 (isForFreeList!223_arg_0_2 ?i)))) error_value!1622))) (ite (is-Nil!1621 (isForFreeList!223_arg_0_2 ?i)) true (ite (is-Cons!1618 (isForFreeList!223_arg_0_2 ?i)) (and (not (forall ((?z I_isForFreeList!223)) (not (= (isForFreeList!223_arg_0_2 ?z) (tail!1620 (isForFreeList!223_arg_0_2 ?i)))) )) (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (head!1619 (isForFreeList!223_arg_0_2 ?i)))) ))) true))) )) -(assert (forall ((?i I_efll)) (and (= (efll (efll_arg_0_3 ?i)) (ite (is-Nil!1621 (efll_arg_0_3 ?i)) Nil!1621 (ite (is-Cons!1618 (efll_arg_0_3 ?i)) (Cons!1618 (efl (head!1619 (efll_arg_0_3 ?i))) (efll (tail!1620 (efll_arg_0_3 ?i)))) error_value!1623))) (ite (is-Nil!1621 (efll_arg_0_3 ?i)) true (ite (is-Cons!1618 (efll_arg_0_3 ?i)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (head!1619 (efll_arg_0_3 ?i)))) )) (not (forall ((?z I_efll)) (not (= (efll_arg_0_3 ?z) (tail!1620 (efll_arg_0_3 ?i)))) ))) true))) )) -(assert (forall ((?i I_efl)) (and (= (efl (efl_arg_0_4 ?i)) (ite (is-Block!1560 (efl_arg_0_4 ?i)) (Block!1560 (efll (body!1561 (efl_arg_0_4 ?i)))) (ite (is-IfThenElse!1567 (efl_arg_0_4 ?i)) (IfThenElse!1567 (expr!1568 (efl_arg_0_4 ?i)) (efl (then!1569 (efl_arg_0_4 ?i))) (efl (elze!1570 (efl_arg_0_4 ?i)))) (ite (is-While!1575 (efl_arg_0_4 ?i)) (While!1575 (expr!1576 (efl_arg_0_4 ?i)) (efl (body!1577 (efl_arg_0_4 ?i)))) (ite (is-For!1562 (efl_arg_0_4 ?i)) (Block!1560 (Cons!1618 (efl (init!1563 (efl_arg_0_4 ?i))) (Cons!1618 (While!1575 (expr!1564 (efl_arg_0_4 ?i)) (Block!1560 (Cons!1618 (efl (body!1566 (efl_arg_0_4 ?i))) (Cons!1618 (efl (step!1565 (efl_arg_0_4 ?i))) Nil!1621)))) Nil!1621))) (efl_arg_0_4 ?i)))))) (ite (is-Block!1560 (efl_arg_0_4 ?i)) (not (forall ((?z I_efll)) (not (= (efll_arg_0_3 ?z) (body!1561 (efl_arg_0_4 ?i)))) )) (ite (is-IfThenElse!1567 (efl_arg_0_4 ?i)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (then!1569 (efl_arg_0_4 ?i)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (elze!1570 (efl_arg_0_4 ?i)))) ))) (ite (is-While!1575 (efl_arg_0_4 ?i)) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1577 (efl_arg_0_4 ?i)))) )) (ite (is-For!1562 (efl_arg_0_4 ?i)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (init!1563 (efl_arg_0_4 ?i)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1566 (efl_arg_0_4 ?i)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (step!1565 (efl_arg_0_4 ?i)))) ))) true))))) )) -(assert (exists ((stat!216 Statement!1556)) (not (=> (and (and (and (and (is-For!1562 stat!216) (is-For!1562 stat!216)) (and (ifree (ite (is-Block!1560 (init!1563 stat!216)) (Block!1560 (efll (body!1561 (init!1563 stat!216)))) (ite (is-IfThenElse!1567 (init!1563 stat!216)) (IfThenElse!1567 (expr!1568 (init!1563 stat!216)) (efl (then!1569 (init!1563 stat!216))) (efl (elze!1570 (init!1563 stat!216)))) (ite (is-While!1575 (init!1563 stat!216)) (While!1575 (expr!1576 (init!1563 stat!216)) (efl (body!1577 (init!1563 stat!216)))) (ite (is-For!1562 (init!1563 stat!216)) (Block!1560 (Cons!1618 (efl (init!1563 (init!1563 stat!216))) (Cons!1618 (While!1575 (expr!1564 (init!1563 stat!216)) (Block!1560 (Cons!1618 (efl (body!1566 (init!1563 stat!216))) (Cons!1618 (efl (step!1565 (init!1563 stat!216))) Nil!1621)))) Nil!1621))) (init!1563 stat!216)))))) (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (ite (is-Block!1560 (init!1563 stat!216)) (Block!1560 (efll (body!1561 (init!1563 stat!216)))) (ite (is-IfThenElse!1567 (init!1563 stat!216)) (IfThenElse!1567 (expr!1568 (init!1563 stat!216)) (efl (then!1569 (init!1563 stat!216))) (efl (elze!1570 (init!1563 stat!216)))) (ite (is-While!1575 (init!1563 stat!216)) (While!1575 (expr!1576 (init!1563 stat!216)) (efl (body!1577 (init!1563 stat!216)))) (ite (is-For!1562 (init!1563 stat!216)) (Block!1560 (Cons!1618 (efl (init!1563 (init!1563 stat!216))) (Cons!1618 (While!1575 (expr!1564 (init!1563 stat!216)) (Block!1560 (Cons!1618 (efl (body!1566 (init!1563 stat!216))) (Cons!1618 (efl (step!1565 (init!1563 stat!216))) Nil!1621)))) Nil!1621))) (init!1563 stat!216))))))) )) (ite (is-Block!1560 (init!1563 stat!216)) (not (forall ((?z I_efll)) (not (= (efll_arg_0_3 ?z) (body!1561 (init!1563 stat!216)))) )) (ite (is-IfThenElse!1567 (init!1563 stat!216)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (then!1569 (init!1563 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (elze!1570 (init!1563 stat!216)))) ))) (ite (is-While!1575 (init!1563 stat!216)) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1577 (init!1563 stat!216)))) )) (ite (is-For!1562 (init!1563 stat!216)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (init!1563 (init!1563 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1566 (init!1563 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (step!1565 (init!1563 stat!216)))) ))) true)))))) (and (ifree (ite (is-Block!1560 (step!1565 stat!216)) (Block!1560 (efll (body!1561 (step!1565 stat!216)))) (ite (is-IfThenElse!1567 (step!1565 stat!216)) (IfThenElse!1567 (expr!1568 (step!1565 stat!216)) (efl (then!1569 (step!1565 stat!216))) (efl (elze!1570 (step!1565 stat!216)))) (ite (is-While!1575 (step!1565 stat!216)) (While!1575 (expr!1576 (step!1565 stat!216)) (efl (body!1577 (step!1565 stat!216)))) (ite (is-For!1562 (step!1565 stat!216)) (Block!1560 (Cons!1618 (efl (init!1563 (step!1565 stat!216))) (Cons!1618 (While!1575 (expr!1564 (step!1565 stat!216)) (Block!1560 (Cons!1618 (efl (body!1566 (step!1565 stat!216))) (Cons!1618 (efl (step!1565 (step!1565 stat!216))) Nil!1621)))) Nil!1621))) (step!1565 stat!216)))))) (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (ite (is-Block!1560 (step!1565 stat!216)) (Block!1560 (efll (body!1561 (step!1565 stat!216)))) (ite (is-IfThenElse!1567 (step!1565 stat!216)) (IfThenElse!1567 (expr!1568 (step!1565 stat!216)) (efl (then!1569 (step!1565 stat!216))) (efl (elze!1570 (step!1565 stat!216)))) (ite (is-While!1575 (step!1565 stat!216)) (While!1575 (expr!1576 (step!1565 stat!216)) (efl (body!1577 (step!1565 stat!216)))) (ite (is-For!1562 (step!1565 stat!216)) (Block!1560 (Cons!1618 (efl (init!1563 (step!1565 stat!216))) (Cons!1618 (While!1575 (expr!1564 (step!1565 stat!216)) (Block!1560 (Cons!1618 (efl (body!1566 (step!1565 stat!216))) (Cons!1618 (efl (step!1565 (step!1565 stat!216))) Nil!1621)))) Nil!1621))) (step!1565 stat!216))))))) )) (ite (is-Block!1560 (step!1565 stat!216)) (not (forall ((?z I_efll)) (not (= (efll_arg_0_3 ?z) (body!1561 (step!1565 stat!216)))) )) (ite (is-IfThenElse!1567 (step!1565 stat!216)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (then!1569 (step!1565 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (elze!1570 (step!1565 stat!216)))) ))) (ite (is-While!1575 (step!1565 stat!216)) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1577 (step!1565 stat!216)))) )) (ite (is-For!1562 (step!1565 stat!216)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (init!1563 (step!1565 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1566 (step!1565 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (step!1565 (step!1565 stat!216)))) ))) true)))))) (and (ifree (ite (is-Block!1560 (body!1566 stat!216)) (Block!1560 (efll (body!1561 (body!1566 stat!216)))) (ite (is-IfThenElse!1567 (body!1566 stat!216)) (IfThenElse!1567 (expr!1568 (body!1566 stat!216)) (efl (then!1569 (body!1566 stat!216))) (efl (elze!1570 (body!1566 stat!216)))) (ite (is-While!1575 (body!1566 stat!216)) (While!1575 (expr!1576 (body!1566 stat!216)) (efl (body!1577 (body!1566 stat!216)))) (ite (is-For!1562 (body!1566 stat!216)) (Block!1560 (Cons!1618 (efl (init!1563 (body!1566 stat!216))) (Cons!1618 (While!1575 (expr!1564 (body!1566 stat!216)) (Block!1560 (Cons!1618 (efl (body!1566 (body!1566 stat!216))) (Cons!1618 (efl (step!1565 (body!1566 stat!216))) Nil!1621)))) Nil!1621))) (body!1566 stat!216)))))) (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (ite (is-Block!1560 (body!1566 stat!216)) (Block!1560 (efll (body!1561 (body!1566 stat!216)))) (ite (is-IfThenElse!1567 (body!1566 stat!216)) (IfThenElse!1567 (expr!1568 (body!1566 stat!216)) (efl (then!1569 (body!1566 stat!216))) (efl (elze!1570 (body!1566 stat!216)))) (ite (is-While!1575 (body!1566 stat!216)) (While!1575 (expr!1576 (body!1566 stat!216)) (efl (body!1577 (body!1566 stat!216)))) (ite (is-For!1562 (body!1566 stat!216)) (Block!1560 (Cons!1618 (efl (init!1563 (body!1566 stat!216))) (Cons!1618 (While!1575 (expr!1564 (body!1566 stat!216)) (Block!1560 (Cons!1618 (efl (body!1566 (body!1566 stat!216))) (Cons!1618 (efl (step!1565 (body!1566 stat!216))) Nil!1621)))) Nil!1621))) (body!1566 stat!216))))))) )) (ite (is-Block!1560 (body!1566 stat!216)) (not (forall ((?z I_efll)) (not (= (efll_arg_0_3 ?z) (body!1561 (body!1566 stat!216)))) )) (ite (is-IfThenElse!1567 (body!1566 stat!216)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (then!1569 (body!1566 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (elze!1570 (body!1566 stat!216)))) ))) (ite (is-While!1575 (body!1566 stat!216)) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1577 (body!1566 stat!216)))) )) (ite (is-For!1562 (body!1566 stat!216)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (init!1563 (body!1566 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1566 (body!1566 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (step!1565 (body!1566 stat!216)))) ))) true)))))) (or (ifree (ite (is-Block!1560 stat!216) (Block!1560 (efll (body!1561 stat!216))) (ite (is-IfThenElse!1567 stat!216) (IfThenElse!1567 (expr!1568 stat!216) (efl (then!1569 stat!216)) (efl (elze!1570 stat!216))) (ite (is-While!1575 stat!216) (While!1575 (expr!1576 stat!216) (efl (body!1577 stat!216))) (ite (is-For!1562 stat!216) (Block!1560 (Cons!1618 (efl (init!1563 stat!216)) (Cons!1618 (While!1575 (expr!1564 stat!216) (Block!1560 (Cons!1618 (efl (body!1566 stat!216)) (Cons!1618 (efl (step!1565 stat!216)) Nil!1621)))) Nil!1621))) stat!216))))) (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (ite (is-Block!1560 stat!216) (Block!1560 (efll (body!1561 stat!216))) (ite (is-IfThenElse!1567 stat!216) (IfThenElse!1567 (expr!1568 stat!216) (efl (then!1569 stat!216)) (efl (elze!1570 stat!216))) (ite (is-While!1575 stat!216) (While!1575 (expr!1576 stat!216) (efl (body!1577 stat!216))) (ite (is-For!1562 stat!216) (Block!1560 (Cons!1618 (efl (init!1563 stat!216)) (Cons!1618 (While!1575 (expr!1564 stat!216) (Block!1560 (Cons!1618 (efl (body!1566 stat!216)) (Cons!1618 (efl (step!1565 stat!216)) Nil!1621)))) Nil!1621))) stat!216)))))) ) (not (ite (is-Block!1560 stat!216) (not (forall ((?z I_efll)) (not (= (efll_arg_0_3 ?z) (body!1561 stat!216))) )) (ite (is-IfThenElse!1567 stat!216) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (then!1569 stat!216))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (elze!1570 stat!216))) ))) (ite (is-While!1575 stat!216) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1577 stat!216))) )) (ite (is-For!1562 stat!216) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (init!1563 stat!216))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1566 stat!216))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (step!1565 stat!216))) ))) true)))))))) )) +(assert (forall ((?i I_ifree)) (and (= (ifree (ifree_arg_0_1 ?i)) (ite ((_ is Block!1560) (ifree_arg_0_1 ?i)) (isForFreeList!223 (body!1561 (ifree_arg_0_1 ?i))) (ite ((_ is IfThenElse!1567) (ifree_arg_0_1 ?i)) (and (ifree (elze!1570 (ifree_arg_0_1 ?i))) (ifree (then!1569 (ifree_arg_0_1 ?i)))) (ite ((_ is While!1575) (ifree_arg_0_1 ?i)) (ifree (body!1577 (ifree_arg_0_1 ?i))) (not ((_ is For!1562) (ifree_arg_0_1 ?i))))))) (ite ((_ is Block!1560) (ifree_arg_0_1 ?i)) (not (forall ((?z I_isForFreeList!223)) (not (= (isForFreeList!223_arg_0_2 ?z) (body!1561 (ifree_arg_0_1 ?i)))) )) (ite ((_ is IfThenElse!1567) (ifree_arg_0_1 ?i)) (and (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (elze!1570 (ifree_arg_0_1 ?i)))) )) (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (then!1569 (ifree_arg_0_1 ?i)))) ))) (ite ((_ is While!1575) (ifree_arg_0_1 ?i)) (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (body!1577 (ifree_arg_0_1 ?i)))) )) true)))) )) +(assert (forall ((?i I_isForFreeList!223)) (and (= (isForFreeList!223 (isForFreeList!223_arg_0_2 ?i)) (ite ((_ is Nil!1621) (isForFreeList!223_arg_0_2 ?i)) true (ite ((_ is Cons!1618) (isForFreeList!223_arg_0_2 ?i)) (and (isForFreeList!223 (tail!1620 (isForFreeList!223_arg_0_2 ?i))) (ifree (head!1619 (isForFreeList!223_arg_0_2 ?i)))) error_value!1622))) (ite ((_ is Nil!1621) (isForFreeList!223_arg_0_2 ?i)) true (ite ((_ is Cons!1618) (isForFreeList!223_arg_0_2 ?i)) (and (not (forall ((?z I_isForFreeList!223)) (not (= (isForFreeList!223_arg_0_2 ?z) (tail!1620 (isForFreeList!223_arg_0_2 ?i)))) )) (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (head!1619 (isForFreeList!223_arg_0_2 ?i)))) ))) true))) )) +(assert (forall ((?i I_efll)) (and (= (efll (efll_arg_0_3 ?i)) (ite ((_ is Nil!1621) (efll_arg_0_3 ?i)) Nil!1621 (ite ((_ is Cons!1618) (efll_arg_0_3 ?i)) (Cons!1618 (efl (head!1619 (efll_arg_0_3 ?i))) (efll (tail!1620 (efll_arg_0_3 ?i)))) error_value!1623))) (ite ((_ is Nil!1621) (efll_arg_0_3 ?i)) true (ite ((_ is Cons!1618) (efll_arg_0_3 ?i)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (head!1619 (efll_arg_0_3 ?i)))) )) (not (forall ((?z I_efll)) (not (= (efll_arg_0_3 ?z) (tail!1620 (efll_arg_0_3 ?i)))) ))) true))) )) +(assert (forall ((?i I_efl)) (and (= (efl (efl_arg_0_4 ?i)) (ite ((_ is Block!1560) (efl_arg_0_4 ?i)) (Block!1560 (efll (body!1561 (efl_arg_0_4 ?i)))) (ite ((_ is IfThenElse!1567) (efl_arg_0_4 ?i)) (IfThenElse!1567 (expr!1568 (efl_arg_0_4 ?i)) (efl (then!1569 (efl_arg_0_4 ?i))) (efl (elze!1570 (efl_arg_0_4 ?i)))) (ite ((_ is While!1575) (efl_arg_0_4 ?i)) (While!1575 (expr!1576 (efl_arg_0_4 ?i)) (efl (body!1577 (efl_arg_0_4 ?i)))) (ite ((_ is For!1562) (efl_arg_0_4 ?i)) (Block!1560 (Cons!1618 (efl (init!1563 (efl_arg_0_4 ?i))) (Cons!1618 (While!1575 (expr!1564 (efl_arg_0_4 ?i)) (Block!1560 (Cons!1618 (efl (body!1566 (efl_arg_0_4 ?i))) (Cons!1618 (efl (step!1565 (efl_arg_0_4 ?i))) Nil!1621)))) Nil!1621))) (efl_arg_0_4 ?i)))))) (ite ((_ is Block!1560) (efl_arg_0_4 ?i)) (not (forall ((?z I_efll)) (not (= (efll_arg_0_3 ?z) (body!1561 (efl_arg_0_4 ?i)))) )) (ite ((_ is IfThenElse!1567) (efl_arg_0_4 ?i)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (then!1569 (efl_arg_0_4 ?i)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (elze!1570 (efl_arg_0_4 ?i)))) ))) (ite ((_ is While!1575) (efl_arg_0_4 ?i)) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1577 (efl_arg_0_4 ?i)))) )) (ite ((_ is For!1562) (efl_arg_0_4 ?i)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (init!1563 (efl_arg_0_4 ?i)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1566 (efl_arg_0_4 ?i)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (step!1565 (efl_arg_0_4 ?i)))) ))) true))))) )) +(assert (exists ((stat!216 Statement!1556)) (not (=> (and (and (and (and ((_ is For!1562) stat!216) ((_ is For!1562) stat!216)) (and (ifree (ite ((_ is Block!1560) (init!1563 stat!216)) (Block!1560 (efll (body!1561 (init!1563 stat!216)))) (ite ((_ is IfThenElse!1567) (init!1563 stat!216)) (IfThenElse!1567 (expr!1568 (init!1563 stat!216)) (efl (then!1569 (init!1563 stat!216))) (efl (elze!1570 (init!1563 stat!216)))) (ite ((_ is While!1575) (init!1563 stat!216)) (While!1575 (expr!1576 (init!1563 stat!216)) (efl (body!1577 (init!1563 stat!216)))) (ite ((_ is For!1562) (init!1563 stat!216)) (Block!1560 (Cons!1618 (efl (init!1563 (init!1563 stat!216))) (Cons!1618 (While!1575 (expr!1564 (init!1563 stat!216)) (Block!1560 (Cons!1618 (efl (body!1566 (init!1563 stat!216))) (Cons!1618 (efl (step!1565 (init!1563 stat!216))) Nil!1621)))) Nil!1621))) (init!1563 stat!216)))))) (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (ite ((_ is Block!1560) (init!1563 stat!216)) (Block!1560 (efll (body!1561 (init!1563 stat!216)))) (ite ((_ is IfThenElse!1567) (init!1563 stat!216)) (IfThenElse!1567 (expr!1568 (init!1563 stat!216)) (efl (then!1569 (init!1563 stat!216))) (efl (elze!1570 (init!1563 stat!216)))) (ite ((_ is While!1575) (init!1563 stat!216)) (While!1575 (expr!1576 (init!1563 stat!216)) (efl (body!1577 (init!1563 stat!216)))) (ite ((_ is For!1562) (init!1563 stat!216)) (Block!1560 (Cons!1618 (efl (init!1563 (init!1563 stat!216))) (Cons!1618 (While!1575 (expr!1564 (init!1563 stat!216)) (Block!1560 (Cons!1618 (efl (body!1566 (init!1563 stat!216))) (Cons!1618 (efl (step!1565 (init!1563 stat!216))) Nil!1621)))) Nil!1621))) (init!1563 stat!216))))))) )) (ite ((_ is Block!1560) (init!1563 stat!216)) (not (forall ((?z I_efll)) (not (= (efll_arg_0_3 ?z) (body!1561 (init!1563 stat!216)))) )) (ite ((_ is IfThenElse!1567) (init!1563 stat!216)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (then!1569 (init!1563 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (elze!1570 (init!1563 stat!216)))) ))) (ite ((_ is While!1575) (init!1563 stat!216)) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1577 (init!1563 stat!216)))) )) (ite ((_ is For!1562) (init!1563 stat!216)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (init!1563 (init!1563 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1566 (init!1563 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (step!1565 (init!1563 stat!216)))) ))) true)))))) (and (ifree (ite ((_ is Block!1560) (step!1565 stat!216)) (Block!1560 (efll (body!1561 (step!1565 stat!216)))) (ite ((_ is IfThenElse!1567) (step!1565 stat!216)) (IfThenElse!1567 (expr!1568 (step!1565 stat!216)) (efl (then!1569 (step!1565 stat!216))) (efl (elze!1570 (step!1565 stat!216)))) (ite ((_ is While!1575) (step!1565 stat!216)) (While!1575 (expr!1576 (step!1565 stat!216)) (efl (body!1577 (step!1565 stat!216)))) (ite ((_ is For!1562) (step!1565 stat!216)) (Block!1560 (Cons!1618 (efl (init!1563 (step!1565 stat!216))) (Cons!1618 (While!1575 (expr!1564 (step!1565 stat!216)) (Block!1560 (Cons!1618 (efl (body!1566 (step!1565 stat!216))) (Cons!1618 (efl (step!1565 (step!1565 stat!216))) Nil!1621)))) Nil!1621))) (step!1565 stat!216)))))) (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (ite ((_ is Block!1560) (step!1565 stat!216)) (Block!1560 (efll (body!1561 (step!1565 stat!216)))) (ite ((_ is IfThenElse!1567) (step!1565 stat!216)) (IfThenElse!1567 (expr!1568 (step!1565 stat!216)) (efl (then!1569 (step!1565 stat!216))) (efl (elze!1570 (step!1565 stat!216)))) (ite ((_ is While!1575) (step!1565 stat!216)) (While!1575 (expr!1576 (step!1565 stat!216)) (efl (body!1577 (step!1565 stat!216)))) (ite ((_ is For!1562) (step!1565 stat!216)) (Block!1560 (Cons!1618 (efl (init!1563 (step!1565 stat!216))) (Cons!1618 (While!1575 (expr!1564 (step!1565 stat!216)) (Block!1560 (Cons!1618 (efl (body!1566 (step!1565 stat!216))) (Cons!1618 (efl (step!1565 (step!1565 stat!216))) Nil!1621)))) Nil!1621))) (step!1565 stat!216))))))) )) (ite ((_ is Block!1560) (step!1565 stat!216)) (not (forall ((?z I_efll)) (not (= (efll_arg_0_3 ?z) (body!1561 (step!1565 stat!216)))) )) (ite ((_ is IfThenElse!1567) (step!1565 stat!216)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (then!1569 (step!1565 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (elze!1570 (step!1565 stat!216)))) ))) (ite ((_ is While!1575) (step!1565 stat!216)) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1577 (step!1565 stat!216)))) )) (ite ((_ is For!1562) (step!1565 stat!216)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (init!1563 (step!1565 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1566 (step!1565 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (step!1565 (step!1565 stat!216)))) ))) true)))))) (and (ifree (ite ((_ is Block!1560) (body!1566 stat!216)) (Block!1560 (efll (body!1561 (body!1566 stat!216)))) (ite ((_ is IfThenElse!1567) (body!1566 stat!216)) (IfThenElse!1567 (expr!1568 (body!1566 stat!216)) (efl (then!1569 (body!1566 stat!216))) (efl (elze!1570 (body!1566 stat!216)))) (ite ((_ is While!1575) (body!1566 stat!216)) (While!1575 (expr!1576 (body!1566 stat!216)) (efl (body!1577 (body!1566 stat!216)))) (ite ((_ is For!1562) (body!1566 stat!216)) (Block!1560 (Cons!1618 (efl (init!1563 (body!1566 stat!216))) (Cons!1618 (While!1575 (expr!1564 (body!1566 stat!216)) (Block!1560 (Cons!1618 (efl (body!1566 (body!1566 stat!216))) (Cons!1618 (efl (step!1565 (body!1566 stat!216))) Nil!1621)))) Nil!1621))) (body!1566 stat!216)))))) (not (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (ite ((_ is Block!1560) (body!1566 stat!216)) (Block!1560 (efll (body!1561 (body!1566 stat!216)))) (ite ((_ is IfThenElse!1567) (body!1566 stat!216)) (IfThenElse!1567 (expr!1568 (body!1566 stat!216)) (efl (then!1569 (body!1566 stat!216))) (efl (elze!1570 (body!1566 stat!216)))) (ite ((_ is While!1575) (body!1566 stat!216)) (While!1575 (expr!1576 (body!1566 stat!216)) (efl (body!1577 (body!1566 stat!216)))) (ite ((_ is For!1562) (body!1566 stat!216)) (Block!1560 (Cons!1618 (efl (init!1563 (body!1566 stat!216))) (Cons!1618 (While!1575 (expr!1564 (body!1566 stat!216)) (Block!1560 (Cons!1618 (efl (body!1566 (body!1566 stat!216))) (Cons!1618 (efl (step!1565 (body!1566 stat!216))) Nil!1621)))) Nil!1621))) (body!1566 stat!216))))))) )) (ite ((_ is Block!1560) (body!1566 stat!216)) (not (forall ((?z I_efll)) (not (= (efll_arg_0_3 ?z) (body!1561 (body!1566 stat!216)))) )) (ite ((_ is IfThenElse!1567) (body!1566 stat!216)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (then!1569 (body!1566 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (elze!1570 (body!1566 stat!216)))) ))) (ite ((_ is While!1575) (body!1566 stat!216)) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1577 (body!1566 stat!216)))) )) (ite ((_ is For!1562) (body!1566 stat!216)) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (init!1563 (body!1566 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1566 (body!1566 stat!216)))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (step!1565 (body!1566 stat!216)))) ))) true)))))) (or (ifree (ite ((_ is Block!1560) stat!216) (Block!1560 (efll (body!1561 stat!216))) (ite ((_ is IfThenElse!1567) stat!216) (IfThenElse!1567 (expr!1568 stat!216) (efl (then!1569 stat!216)) (efl (elze!1570 stat!216))) (ite ((_ is While!1575) stat!216) (While!1575 (expr!1576 stat!216) (efl (body!1577 stat!216))) (ite ((_ is For!1562) stat!216) (Block!1560 (Cons!1618 (efl (init!1563 stat!216)) (Cons!1618 (While!1575 (expr!1564 stat!216) (Block!1560 (Cons!1618 (efl (body!1566 stat!216)) (Cons!1618 (efl (step!1565 stat!216)) Nil!1621)))) Nil!1621))) stat!216))))) (forall ((?z I_ifree)) (not (= (ifree_arg_0_1 ?z) (ite ((_ is Block!1560) stat!216) (Block!1560 (efll (body!1561 stat!216))) (ite ((_ is IfThenElse!1567) stat!216) (IfThenElse!1567 (expr!1568 stat!216) (efl (then!1569 stat!216)) (efl (elze!1570 stat!216))) (ite ((_ is While!1575) stat!216) (While!1575 (expr!1576 stat!216) (efl (body!1577 stat!216))) (ite ((_ is For!1562) stat!216) (Block!1560 (Cons!1618 (efl (init!1563 stat!216)) (Cons!1618 (While!1575 (expr!1564 stat!216) (Block!1560 (Cons!1618 (efl (body!1566 stat!216)) (Cons!1618 (efl (step!1565 stat!216)) Nil!1621)))) Nil!1621))) stat!216)))))) ) (not (ite ((_ is Block!1560) stat!216) (not (forall ((?z I_efll)) (not (= (efll_arg_0_3 ?z) (body!1561 stat!216))) )) (ite ((_ is IfThenElse!1567) stat!216) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (then!1569 stat!216))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (elze!1570 stat!216))) ))) (ite ((_ is While!1575) stat!216) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1577 stat!216))) )) (ite ((_ is For!1562) stat!216) (and (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (init!1563 stat!216))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (body!1566 stat!216))) )) (not (forall ((?z I_efl)) (not (= (efl_arg_0_4 ?z) (step!1565 stat!216))) ))) true)))))))) )) (check-sat) diff --git a/test/regress/regress2/quantifiers/nunchaku2309663.nun.min.smt2 b/test/regress/regress2/quantifiers/nunchaku2309663.nun.min.smt2 index 9c8bc1d3e..2ae8a60f4 100644 --- a/test/regress/regress2/quantifiers/nunchaku2309663.nun.min.smt2 +++ b/test/regress/regress2/quantifiers/nunchaku2309663.nun.min.smt2 @@ -1,15 +1,14 @@ ; EXPECT: unsat -; COMMAND-LINE: --finite-model-find --lang=smt2.5 +; COMMAND-LINE: --finite-model-find (set-logic ALL_SUPPORTED) (set-info :status unsat) -(declare-datatypes () ((nat__ (Suc__ (_select_Suc___0 nat__)) (zero__ )))) +(declare-datatypes ((nat__ 0)) (((Suc__ (_select_Suc___0 nat__)) (zero__)))) (declare-sort a__ 0) (declare-fun __nun_card_witness_0_ () a__) -(declare-datatypes () - ((tree__ - (MKT__ (_select_MKT___0 a__) (_select_MKT___1 tree__) - (_select_MKT___2 tree__) (_select_MKT___3 nat__)) - (ET__ )))) +(declare-datatypes ((tree__ 0)) + (((MKT__ (_select_MKT___0 a__) (_select_MKT___1 tree__) + (_select_MKT___2 tree__) (_select_MKT___3 nat__)) + (ET__)))) (declare-sort G_plus__ 0) (declare-fun __nun_card_witness_1_ () G_plus__) (declare-fun plus__ (nat__ nat__) nat__) @@ -65,15 +64,15 @@ (declare-fun x__ () a__) (assert (and -(forall ((a/334 G_avl__)) (and (= (avl__ (proj_G_avl__0_ a/334)) (=> (is-MKT__ (proj_G_avl__0_ a/334)) (and (or (= (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (height__ (_select_MKT___2 (proj_G_avl__0_ a/334)))) (= (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (plus__ (height__ (_select_MKT___2 (proj_G_avl__0_ a/334))) one__)) (= (height__ (_select_MKT___2 (proj_G_avl__0_ a/334))) (plus__ (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) one__))) (= (_select_MKT___3 (proj_G_avl__0_ a/334)) (plus__ (max__ (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (height__ (_select_MKT___2 (proj_G_avl__0_ a/334)))) one__)) (avl__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (avl__ (_select_MKT___2 (proj_G_avl__0_ a/334)))))) (exists ((a/602 G_avl__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_avl__0_ a/602)) ) (exists ((a/601 G_avl__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_avl__0_ a/601)) ) (exists ((a/592 G_max__)) (and (= (height__ (_select_MKT___2 (proj_G_avl__0_ a/334))) (proj_G_max__1_ a/592)) (exists ((a/595 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/595)) ) (= (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (proj_G_max__0_ a/592)) (exists ((a/596 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/596)) )) ) (exists ((a/600 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/600)) ) (exists ((a/599 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/599)) ) (exists ((a/564 G_plus__)) (and (= one__ (proj_G_plus__1_ a/564)) (= (max__ (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (height__ (_select_MKT___2 (proj_G_avl__0_ a/334)))) (proj_G_plus__0_ a/564)) (exists ((a/581 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/581)) ) (exists ((a/582 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/582)) ) (exists ((a/574 G_max__)) (and (= (height__ (_select_MKT___2 (proj_G_avl__0_ a/334))) (proj_G_max__1_ a/574)) (exists ((a/577 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/577)) ) (= (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (proj_G_max__0_ a/574)) (exists ((a/578 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/578)) )) )) ) (exists ((a/551 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/551)) ) (exists ((a/550 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/550)) ) (exists ((a/557 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/557)) ) (exists ((a/552 G_plus__)) (and (= one__ (proj_G_plus__1_ a/552)) (= (height__ (_select_MKT___2 (proj_G_avl__0_ a/334))) (proj_G_plus__0_ a/552)) (exists ((a/554 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/554)) )) ) (exists ((a/556 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/556)) ) (exists ((a/563 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/563)) ) (exists ((a/558 G_plus__)) (and (= one__ (proj_G_plus__1_ a/558)) (= (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (proj_G_plus__0_ a/558)) (exists ((a/560 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/560)) )) ) (exists ((a/562 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/562)) )) ) +(forall ((a/334 G_avl__)) (and (= (avl__ (proj_G_avl__0_ a/334)) (=> ((_ is MKT__) (proj_G_avl__0_ a/334)) (and (or (= (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (height__ (_select_MKT___2 (proj_G_avl__0_ a/334)))) (= (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (plus__ (height__ (_select_MKT___2 (proj_G_avl__0_ a/334))) one__)) (= (height__ (_select_MKT___2 (proj_G_avl__0_ a/334))) (plus__ (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) one__))) (= (_select_MKT___3 (proj_G_avl__0_ a/334)) (plus__ (max__ (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (height__ (_select_MKT___2 (proj_G_avl__0_ a/334)))) one__)) (avl__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (avl__ (_select_MKT___2 (proj_G_avl__0_ a/334)))))) (exists ((a/602 G_avl__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_avl__0_ a/602)) ) (exists ((a/601 G_avl__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_avl__0_ a/601)) ) (exists ((a/592 G_max__)) (and (= (height__ (_select_MKT___2 (proj_G_avl__0_ a/334))) (proj_G_max__1_ a/592)) (exists ((a/595 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/595)) ) (= (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (proj_G_max__0_ a/592)) (exists ((a/596 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/596)) )) ) (exists ((a/600 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/600)) ) (exists ((a/599 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/599)) ) (exists ((a/564 G_plus__)) (and (= one__ (proj_G_plus__1_ a/564)) (= (max__ (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (height__ (_select_MKT___2 (proj_G_avl__0_ a/334)))) (proj_G_plus__0_ a/564)) (exists ((a/581 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/581)) ) (exists ((a/582 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/582)) ) (exists ((a/574 G_max__)) (and (= (height__ (_select_MKT___2 (proj_G_avl__0_ a/334))) (proj_G_max__1_ a/574)) (exists ((a/577 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/577)) ) (= (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (proj_G_max__0_ a/574)) (exists ((a/578 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/578)) )) )) ) (exists ((a/551 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/551)) ) (exists ((a/550 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/550)) ) (exists ((a/557 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/557)) ) (exists ((a/552 G_plus__)) (and (= one__ (proj_G_plus__1_ a/552)) (= (height__ (_select_MKT___2 (proj_G_avl__0_ a/334))) (proj_G_plus__0_ a/552)) (exists ((a/554 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/554)) )) ) (exists ((a/556 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/556)) ) (exists ((a/563 G_height__)) (= (_select_MKT___2 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/563)) ) (exists ((a/558 G_plus__)) (and (= one__ (proj_G_plus__1_ a/558)) (= (height__ (_select_MKT___1 (proj_G_avl__0_ a/334))) (proj_G_plus__0_ a/558)) (exists ((a/560 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/560)) )) ) (exists ((a/562 G_height__)) (= (_select_MKT___1 (proj_G_avl__0_ a/334)) (proj_G_height__0_ a/562)) )) ) (forall ((a/603 G_minus__)) (= (minus__ (proj_G_minus__0_ a/603) (proj_G_minus__1_ a/603)) (ite (proj_G_minus__0_ a/603) (ite (proj_G_minus__1_ a/603) (and (proj_G_minus__0_ a/603) (not (proj_G_minus__1_ a/603))) (and (proj_G_minus__0_ a/603) (not (proj_G_minus__1_ a/603)))) (ite (proj_G_minus__1_ a/603) (and (proj_G_minus__0_ a/603) (not (proj_G_minus__1_ a/603))) (and (proj_G_minus__0_ a/603) (not (proj_G_minus__1_ a/603)))))) ) -(forall ((a/296 G_height__)) (and (= (height__ (proj_G_height__0_ a/296)) (ite (is-MKT__ (proj_G_height__0_ a/296)) (plus__ (max__ (height__ (_select_MKT___1 (proj_G_height__0_ a/296))) (height__ (_select_MKT___2 (proj_G_height__0_ a/296)))) one__) zero__)) (=> (is-MKT__ (proj_G_height__0_ a/296)) (and (exists ((a/297 G_plus__)) (and (= one__ (proj_G_plus__1_ a/297)) (= (max__ (height__ (_select_MKT___1 (proj_G_height__0_ a/296))) (height__ (_select_MKT___2 (proj_G_height__0_ a/296)))) (proj_G_plus__0_ a/297)) (exists ((a/314 G_height__)) (= (_select_MKT___1 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/314)) ) (exists ((a/315 G_height__)) (= (_select_MKT___2 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/315)) ) (exists ((a/307 G_max__)) (and (= (height__ (_select_MKT___2 (proj_G_height__0_ a/296))) (proj_G_max__1_ a/307)) (exists ((a/310 G_height__)) (= (_select_MKT___2 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/310)) ) (= (height__ (_select_MKT___1 (proj_G_height__0_ a/296))) (proj_G_max__0_ a/307)) (exists ((a/311 G_height__)) (= (_select_MKT___1 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/311)) )) )) ) (exists ((a/332 G_height__)) (= (_select_MKT___1 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/332)) ) (exists ((a/333 G_height__)) (= (_select_MKT___2 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/333)) ) (exists ((a/325 G_max__)) (and (= (height__ (_select_MKT___2 (proj_G_height__0_ a/296))) (proj_G_max__1_ a/325)) (exists ((a/328 G_height__)) (= (_select_MKT___2 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/328)) ) (= (height__ (_select_MKT___1 (proj_G_height__0_ a/296))) (proj_G_max__0_ a/325)) (exists ((a/329 G_height__)) (= (_select_MKT___1 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/329)) )) )))) ) -(forall ((a/604 G_ht__)) (= (ht__ (proj_G_ht__0_ a/604)) (ite (is-MKT__ (proj_G_ht__0_ a/604)) (_select_MKT___3 (proj_G_ht__0_ a/604)) zero__)) ) +(forall ((a/296 G_height__)) (and (= (height__ (proj_G_height__0_ a/296)) (ite ((_ is MKT__) (proj_G_height__0_ a/296)) (plus__ (max__ (height__ (_select_MKT___1 (proj_G_height__0_ a/296))) (height__ (_select_MKT___2 (proj_G_height__0_ a/296)))) one__) zero__)) (=> ((_ is MKT__) (proj_G_height__0_ a/296)) (and (exists ((a/297 G_plus__)) (and (= one__ (proj_G_plus__1_ a/297)) (= (max__ (height__ (_select_MKT___1 (proj_G_height__0_ a/296))) (height__ (_select_MKT___2 (proj_G_height__0_ a/296)))) (proj_G_plus__0_ a/297)) (exists ((a/314 G_height__)) (= (_select_MKT___1 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/314)) ) (exists ((a/315 G_height__)) (= (_select_MKT___2 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/315)) ) (exists ((a/307 G_max__)) (and (= (height__ (_select_MKT___2 (proj_G_height__0_ a/296))) (proj_G_max__1_ a/307)) (exists ((a/310 G_height__)) (= (_select_MKT___2 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/310)) ) (= (height__ (_select_MKT___1 (proj_G_height__0_ a/296))) (proj_G_max__0_ a/307)) (exists ((a/311 G_height__)) (= (_select_MKT___1 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/311)) )) )) ) (exists ((a/332 G_height__)) (= (_select_MKT___1 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/332)) ) (exists ((a/333 G_height__)) (= (_select_MKT___2 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/333)) ) (exists ((a/325 G_max__)) (and (= (height__ (_select_MKT___2 (proj_G_height__0_ a/296))) (proj_G_max__1_ a/325)) (exists ((a/328 G_height__)) (= (_select_MKT___2 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/328)) ) (= (height__ (_select_MKT___1 (proj_G_height__0_ a/296))) (proj_G_max__0_ a/325)) (exists ((a/329 G_height__)) (= (_select_MKT___1 (proj_G_height__0_ a/296)) (proj_G_height__0_ a/329)) )) )))) ) +(forall ((a/604 G_ht__)) (= (ht__ (proj_G_ht__0_ a/604)) (ite ((_ is MKT__) (proj_G_ht__0_ a/604)) (_select_MKT___3 (proj_G_ht__0_ a/604)) zero__)) ) (not (=> (and (avl__ l__) (exists ((a/1961 G_avl__)) (= l__ (proj_G_avl__0_ a/1961)) )) (=> (and (avl__ r__) (exists ((a/2175 G_avl__)) (= r__ (proj_G_avl__0_ a/2175)) )) (=> (or (and (= (height__ l__) (height__ r__)) (exists ((a/2334 G_height__)) (= l__ (proj_G_height__0_ a/2334)) ) (exists ((a/2333 G_height__)) (= r__ (proj_G_height__0_ a/2333)) )) (and (minus__ (= (height__ l__) (plus__ (height__ r__) one__)) (= (height__ r__) (plus__ (height__ l__) one__))) (exists ((a/2382 G_height__)) (= l__ (proj_G_height__0_ a/2382)) ) (exists ((a/2378 G_plus__)) (and (= one__ (proj_G_plus__1_ a/2378)) (= (height__ l__) (proj_G_plus__0_ a/2378)) (exists ((a/2380 G_height__)) (= l__ (proj_G_height__0_ a/2380)) )) ) (exists ((a/2383 G_height__)) (= r__ (proj_G_height__0_ a/2383)) ) (exists ((a/2376 G_height__)) (= r__ (proj_G_height__0_ a/2376)) ) (exists ((a/2372 G_plus__)) (and (= one__ (proj_G_plus__1_ a/2372)) (= (height__ r__) (proj_G_plus__0_ a/2372)) (exists ((a/2374 G_height__)) (= r__ (proj_G_height__0_ a/2374)) )) ) (exists ((a/2377 G_height__)) (= l__ (proj_G_height__0_ a/2377)) ) (exists ((a/2335 G_minus__)) (and (= (= (height__ r__) (plus__ (height__ l__) one__)) (proj_G_minus__1_ a/2335)) (exists ((a/2352 G_height__)) (= l__ (proj_G_height__0_ a/2352)) ) (exists ((a/2348 G_plus__)) (and (= one__ (proj_G_plus__1_ a/2348)) (= (height__ l__) (proj_G_plus__0_ a/2348)) (exists ((a/2350 G_height__)) (= l__ (proj_G_height__0_ a/2350)) )) ) (exists ((a/2353 G_height__)) (= r__ (proj_G_height__0_ a/2353)) ) (= (= (height__ l__) (plus__ (height__ r__) one__)) (proj_G_minus__0_ a/2335)) (exists ((a/2358 G_height__)) (= r__ (proj_G_height__0_ a/2358)) ) (exists ((a/2354 G_plus__)) (and (= one__ (proj_G_plus__1_ a/2354)) (= (height__ r__) (proj_G_plus__0_ a/2354)) (exists ((a/2356 G_height__)) (= r__ (proj_G_height__0_ a/2356)) )) ) (exists ((a/2359 G_height__)) (= l__ (proj_G_height__0_ a/2359)) )) ))) (=> (exists ((a/2384 G_avl__)) (and (= (mkt__ x__ l__ r__) (proj_G_avl__0_ a/2384)) (exists ((a/2385 G_mkt__)) (and (= r__ (proj_G_mkt__2_ a/2385)) (= l__ (proj_G_mkt__1_ a/2385)) (= x__ (proj_G_mkt__0_ a/2385))) )) ) (=> (exists ((a/2387 G_mkt__)) (and (= r__ (proj_G_mkt__2_ a/2387)) (= l__ (proj_G_mkt__1_ a/2387)) (= x__ (proj_G_mkt__0_ a/2387))) ) (avl__ (mkt__ x__ l__ r__)))))))) (forall ((a/605 G_mkt__)) (and (= (mkt__ (proj_G_mkt__0_ a/605) (proj_G_mkt__1_ a/605) (proj_G_mkt__2_ a/605)) (MKT__ (proj_G_mkt__0_ a/605) (proj_G_mkt__1_ a/605) (proj_G_mkt__2_ a/605) (plus__ (max__ (ht__ (proj_G_mkt__1_ a/605)) (ht__ (proj_G_mkt__2_ a/605))) one__))) (exists ((a/671 G_max__)) (and (= (ht__ (proj_G_mkt__2_ a/605)) (proj_G_max__1_ a/671)) (exists ((a/674 G_ht__)) (= (proj_G_mkt__2_ a/605) (proj_G_ht__0_ a/674)) ) (= (ht__ (proj_G_mkt__1_ a/605)) (proj_G_max__0_ a/671)) (exists ((a/675 G_ht__)) (= (proj_G_mkt__1_ a/605) (proj_G_ht__0_ a/675)) )) ) (exists ((a/679 G_ht__)) (= (proj_G_mkt__2_ a/605) (proj_G_ht__0_ a/679)) ) (exists ((a/678 G_ht__)) (= (proj_G_mkt__1_ a/605) (proj_G_ht__0_ a/678)) ) (exists ((a/643 G_plus__)) (and (= one__ (proj_G_plus__1_ a/643)) (= (max__ (ht__ (proj_G_mkt__1_ a/605)) (ht__ (proj_G_mkt__2_ a/605))) (proj_G_plus__0_ a/643)) (exists ((a/660 G_ht__)) (= (proj_G_mkt__1_ a/605) (proj_G_ht__0_ a/660)) ) (exists ((a/661 G_ht__)) (= (proj_G_mkt__2_ a/605) (proj_G_ht__0_ a/661)) ) (exists ((a/653 G_max__)) (and (= (ht__ (proj_G_mkt__2_ a/605)) (proj_G_max__1_ a/653)) (exists ((a/656 G_ht__)) (= (proj_G_mkt__2_ a/605) (proj_G_ht__0_ a/656)) ) (= (ht__ (proj_G_mkt__1_ a/605)) (proj_G_max__0_ a/653)) (exists ((a/657 G_ht__)) (= (proj_G_mkt__1_ a/605) (proj_G_ht__0_ a/657)) )) )) )) ) (forall ((a/295 G_one__)) (= one__ (Suc__ zero__)) ) )) - + (check-sat)