Convert V2.5 SMT regressions to V2.6. (#4319)
authorAbdalrhman Mohamed <32971963+abdoo8080@users.noreply.github.com>
Wed, 22 Apr 2020 12:06:24 +0000 (07:06 -0500)
committerGitHub <noreply@github.com>
Wed, 22 Apr 2020 12:06:24 +0000 (07:06 -0500)
This commit converts all v2.5 smt2 regressions to v2.6 (except for regress/regress0/lang_opts_2_5.smt2).

50 files changed:
test/regress/regress0/bug484.smt2
test/regress/regress0/bug541.smt2
test/regress/regress0/datatypes/conqueue-dt-enum-iloop.smt2
test/regress/regress0/datatypes/dt-param-card4-bool-sat.smt2
test/regress/regress0/datatypes/example-dailler-min.smt2
test/regress/regress0/datatypes/pair-real-bool.smt2
test/regress/regress0/fmf/sc_bad_model_1221.smt2
test/regress/regress0/issue1063-overloading-dt-cons.smt2
test/regress/regress0/issue1063-overloading-dt-fun.smt2
test/regress/regress0/issue1063-overloading-dt-sel.smt2
test/regress/regress0/push-pop/bug654-dd.smt2
test/regress/regress0/quantifiers/cbqi-lia-dt-simp.smt2
test/regress/regress0/quantifiers/rew-to-scala.smt2
test/regress/regress1/arith/bug716.0.smt2
test/regress/regress1/bug296.smt2
test/regress/regress1/bug507.smt2
test/regress/regress1/bug567.smt2
test/regress/regress1/bug681.smt2
test/regress/regress1/bug694-Unapply1.scala-0.smt2
test/regress/regress1/datatypes/dt-param-card4-unsat.smt2
test/regress/regress1/datatypes/manos-model.smt2
test/regress/regress1/fmf/LeftistHeap.scala-8-ncm.smt2
test/regress/regress1/fmf/agree466.smt2
test/regress/regress1/fmf/agree467.smt2
test/regress/regress1/fmf/bug0909.smt2
test/regress/regress1/fmf/bug651.smt2
test/regress/regress1/fmf/bug723-irrelevant-funs.smt2
test/regress/regress1/fmf/bug764.smt2
test/regress/regress1/fmf/constr-ground-to.smt2
test/regress/regress1/fmf/datatypes-ufinite.smt2
test/regress/regress1/fmf/forall_unit_data.smt2
test/regress/regress1/fmf/fore19-exp2-core.smt2
test/regress/regress1/fmf/german169.smt2
test/regress/regress1/fmf/german73.smt2
test/regress/regress1/fmf/jasmin-cdt-crash.smt2
test/regress/regress1/fmf/loopy_coda.smt2
test/regress/regress1/fmf/lst-no-self-rev-exp.smt2
test/regress/regress1/fmf/nun-0208-to.smt2
test/regress/regress1/fmf/sc-crash-052316.smt2
test/regress/regress1/fmf/with-ind-104-core.smt2
test/regress/regress1/quantifiers/bug_743.smt2
test/regress/regress1/quantifiers/cdt-0208-to.smt2
test/regress/regress1/quantifiers/parametric-lists.smt2
test/regress/regress1/quantifiers/stream-x2014-09-18-unsat.smt2
test/regress/regress1/quantifiers/subtype-param-unk.smt2
test/regress/regress1/quantifiers/subtype-param.smt2
test/regress/regress1/sets/issue2568.smt2
test/regress/regress2/bug765.smt2
test/regress/regress2/quantifiers/ForElimination-scala-9.smt2
test/regress/regress2/quantifiers/nunchaku2309663.nun.min.smt2

index 87a8696b6b343e4f12fac557ab7a834b365159d1..3b84b7afff0631d3a7b65aeb465683cea189870c 100644 (file)
@@ -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 (
-  ((
-    (c_I 
-      (bar1 E) 
-      (bar2 Int) 
-      (bar3 Int) 
+(declare-datatypes ((I 0))
+  ((
+    (c_I
+      (bar1 E)
+      (bar2 Int)
+      (bar3 Int)
       (bar4 A)
     )
   ))
 )
 
-(declare-datatypes (
-  ((
-    (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 (
-  ((
-    (c_K 
-      (g1 BOOL) 
-      (g2 F) 
-      (g3 A) 
+(declare-datatypes ((K 0))
+  ((
+    (c_K
+      (g1 BOOL)
+      (g2 F)
+      (g3 A)
       (g4 BOOL)
     )
   ))
 
 
 ; 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)
index 771fbed4fb479f25e2cb8e2684c648d354502b68..1847a9111a712d1ef8db0a21da45bd4365f68658 100644 (file)
@@ -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)
index 74b836b47302c464a3ebf0a7fc5262c11ffec756..1c2f22275656db57c2188dddc0fc5aeecfc7e8b8 100644 (file)
@@ -1,4 +1,3 @@
-; COMMAND-LINE: --lang=smt2.5
 ; EXPECT: sat
 (set-logic ALL_SUPPORTED)
 (set-info :status sat)
 
 (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)
 
index 7a0fa30c718758ce653cd7118290ed952adea4b1..abcff3ddb9737652e46f8ffb0f69e511d1572689 100644 (file)
@@ -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))
index 5702cb04b1b64e4a51b8c8a3460ce40a3e105daf..b8e077c1df02edda26006bbad8e85aff6d171271 100644 (file)
@@ -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))
index a4d5ff0eccf2aad74a825bf8de31dcc09593f941..c29eeb4e978011d0a635dfd71404fe23421a786e 100644 (file)
@@ -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)
index 68a4399caa9e7f47823cc4d00bbd76063f94e484..d951e6c5045ba44a7cf1f1e3bb5178feec4b5cf0 100644 (file)
@@ -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)
index f8ca2a9e5654556038cc75545d9e86149866462c..a77fcdd224687af0afe11e7e662695bfa12a0f16 100644 (file)
@@ -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)
index 9cae2064758a5f677cc6e8c2631d97ed3f12d18a..f9c3261141f817846765408196622e3fa29942d9 100644 (file)
@@ -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)
index b3316d3734d2b1b748a1be17f9969cab2b63cb48..390c9acad19ab90141ecfe885d4f0ce1626552e4 100644 (file)
@@ -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))
index 82033e606ed38a57b4b5f38c1bbf1c3d0a70c844..bd8419b5782eba2da7ff4fce2d04ac7f66665c4c 100644 (file)
@@ -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)
 (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)
index 7e58ea87c4959d845ac206ca947d8515aef2b535..a39aa4ef574d24ec94e597555fe6fcfec625d45c 100644 (file)
@@ -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)
index 6c191d688d9fea0ba4d50d32491dd30283082491..343458beeb6df57954ff150652ba2744e2400155 100644 (file)
@@ -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)
index 2046f491163cda1363fb7c9e669da5181360a4f8..dd2501bbb4be279d964e70abfaf7f79c89be5a11 100644 (file)
@@ -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
 (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)
 ;; 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)
   (! (=> (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))
 
   (! (=> (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))
 
   (! (=> (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))
 
index 3aea7e9c9759cf0a8fcf970580269f68efcd64ea..ad1f89b9e90c25f3518923a69396b121f13afe9e 100644 (file)
@@ -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)
 (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))))))))))
             (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
         (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))))
                       (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))))
           (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))))
                           (MsgTree_Node_recd_Value
                             (destMsgTree_Node Input)))))
                     (ite
-                      (is-TreeResult_TreeAudit
+                      ((_ is TreeResult_TreeAudit)
                         (Guardfn
                           (MsgTree_Node_recd_Left
                             (destMsgTree_Node Input))))
                         (MsgTree_Node_recd_Left
                           (destMsgTree_Node Input)))
                       (ite
-                        (is-TreeResult_TreeAudit
+                        ((_ is TreeResult_TreeAudit)
                           (Guardfn
                             (MsgTree_Node_recd_Right
                               (destMsgTree_Node Input))))
       (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
       (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
   (=
     (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))))
                           (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
                     (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))))
                               (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))))
                             (MsgTree_Node_recd_Value
                               (destMsgTree_Node Input)))))
                       (ite
-                        (is-TreeResult_TreeAudit
+                        ((_ is TreeResult_TreeAudit)
                           (Guardfn
                             (MsgTree_Node_recd_Left
                               (destMsgTree_Node Input))))
                           (MsgTree_Node_recd_Left
                             (destMsgTree_Node Input)))
                         (ite
-                          (is-TreeResult_TreeAudit
+                          ((_ is TreeResult_TreeAudit)
                             (Guardfn
                               (MsgTree_Node_recd_Right
                                 (destMsgTree_Node Input))))
             (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))))
                             (MsgTree_Node_recd_Value
                               (destMsgTree_Node Input)))))
                       (ite
-                        (is-TreeResult_TreeAudit
+                        ((_ is TreeResult_TreeAudit)
                           (Guardfn
                             (MsgTree_Node_recd_Left
                               (destMsgTree_Node Input))))
                           (MsgTree_Node_recd_Left
                             (destMsgTree_Node Input)))
                         (ite
-                          (is-TreeResult_TreeAudit
+                          ((_ is TreeResult_TreeAudit)
                             (Guardfn
                               (MsgTree_Node_recd_Right
                                 (destMsgTree_Node Input))))
                 (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))))
                                 (MsgTree_Node_recd_Value
                                   (destMsgTree_Node Input)))))
                           (ite
-                            (is-TreeResult_TreeAudit
+                            ((_ is TreeResult_TreeAudit)
                               (Guardfn
                                 (MsgTree_Node_recd_Left
                                   (destMsgTree_Node Input))))
                               (MsgTree_Node_recd_Left
                                 (destMsgTree_Node Input)))
                             (ite
-                              (is-TreeResult_TreeAudit
+                              ((_ is TreeResult_TreeAudit)
                                 (Guardfn
                                   (MsgTree_Node_recd_Right
                                     (destMsgTree_Node Input))))
               (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))))
                               (MsgTree_Node_recd_Value
                                 (destMsgTree_Node Input)))))
                         (ite
-                          (is-TreeResult_TreeAudit
+                          ((_ is TreeResult_TreeAudit)
                             (Guardfn
                               (MsgTree_Node_recd_Left
                                 (destMsgTree_Node Input))))
                             (MsgTree_Node_recd_Left
                               (destMsgTree_Node Input)))
                           (ite
-                            (is-TreeResult_TreeAudit
+                            ((_ is TreeResult_TreeAudit)
                               (Guardfn
                                 (MsgTree_Node_recd_Right
                                   (destMsgTree_Node Input))))
               (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))))
                               (MsgTree_Node_recd_Value
                                 (destMsgTree_Node Input)))))
                         (ite
-                          (is-TreeResult_TreeAudit
+                          ((_ is TreeResult_TreeAudit)
                             (Guardfn
                               (MsgTree_Node_recd_Left
                                 (destMsgTree_Node Input))))
                             (MsgTree_Node_recd_Left
                               (destMsgTree_Node Input)))
                           (ite
-                            (is-TreeResult_TreeAudit
+                            ((_ is TreeResult_TreeAudit)
                               (Guardfn
                                 (MsgTree_Node_recd_Right
                                   (destMsgTree_Node Input))))
             (Guardfn
               (MsgTree_Node_recd_Right (destMsgTree_Node Input)))))))
     (ite
-      (is-MsgTree_Leaf
+      ((_ is MsgTree_Leaf)
         (MsgTree_Node_recd_Left
           (destMsgTree_Node
             (destTreeResult_TreeOK
                 (MsgTree_Node_recd_Right (destMsgTree_Node Input)))))))
       true
       (and
-        (is-MsgResult_MsgOK
+        ((_ is MsgResult_MsgOK)
           (f
             (MsgTree_Node_recd_Value
               (destMsgTree_Node
             (Guardfn
               (MsgTree_Node_recd_Right (destMsgTree_Node Input)))))))
     (ite
-      (is-MsgTree_Leaf
+      ((_ is MsgTree_Leaf)
         (MsgTree_Node_recd_Right
           (destMsgTree_Node
             (destTreeResult_TreeOK
                 (MsgTree_Node_recd_Right (destMsgTree_Node Input)))))))
       true
       (and
-        (is-MsgResult_MsgOK
+        ((_ is MsgResult_MsgOK)
           (f
             (MsgTree_Node_recd_Value
               (destMsgTree_Node
             (Guardfn
               (MsgTree_Node_recd_Left (destMsgTree_Node Input)))))))
     (ite
-      (is-MsgTree_Leaf
+      ((_ is MsgTree_Leaf)
         (MsgTree_Node_recd_Left
           (destMsgTree_Node
             (destTreeResult_TreeOK
                 (MsgTree_Node_recd_Left (destMsgTree_Node Input)))))))
       true
       (and
-        (is-MsgResult_MsgOK
+        ((_ is MsgResult_MsgOK)
           (f
             (MsgTree_Node_recd_Value
               (destMsgTree_Node
             (Guardfn
               (MsgTree_Node_recd_Left (destMsgTree_Node Input)))))))
     (ite
-      (is-MsgTree_Leaf
+      ((_ is MsgTree_Leaf)
         (MsgTree_Node_recd_Right
           (destMsgTree_Node
             (destTreeResult_TreeOK
                 (MsgTree_Node_recd_Left (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))))
                       (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))))
                               (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))))
                         (MsgTree_Node_recd_Value
                           (destMsgTree_Node Input)))))
                   (ite
-                    (is-TreeResult_TreeAudit
+                    ((_ is TreeResult_TreeAudit)
                       (Guardfn
                         (MsgTree_Node_recd_Left
                           (destMsgTree_Node Input))))
                       (MsgTree_Node_recd_Left
                         (destMsgTree_Node Input)))
                     (ite
-                      (is-TreeResult_TreeAudit
+                      ((_ is TreeResult_TreeAudit)
                         (Guardfn
                           (MsgTree_Node_recd_Right
                             (destMsgTree_Node Input))))
                                   (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))))
                                 (MsgTree_Node_recd_Value
                                   (destMsgTree_Node Input)))))
                           (ite
-                            (is-TreeResult_TreeAudit
+                            ((_ is TreeResult_TreeAudit)
                               (Guardfn
                                 (MsgTree_Node_recd_Left
                                   (destMsgTree_Node Input))))
                               (MsgTree_Node_recd_Left
                                 (destMsgTree_Node Input)))
                             (ite
-                              (is-TreeResult_TreeAudit
+                              ((_ is TreeResult_TreeAudit)
                                 (Guardfn
                                   (MsgTree_Node_recd_Right
                                     (destMsgTree_Node Input))))
                 (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))))
                                 (MsgTree_Node_recd_Value
                                   (destMsgTree_Node Input)))))
                           (ite
-                            (is-TreeResult_TreeAudit
+                            ((_ is TreeResult_TreeAudit)
                               (Guardfn
                                 (MsgTree_Node_recd_Left
                                   (destMsgTree_Node Input))))
                               (MsgTree_Node_recd_Left
                                 (destMsgTree_Node Input)))
                             (ite
-                              (is-TreeResult_TreeAudit
+                              ((_ is TreeResult_TreeAudit)
                                 (Guardfn
                                   (MsgTree_Node_recd_Right
                                     (destMsgTree_Node Input))))
                     (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))))
                                     (MsgTree_Node_recd_Value
                                       (destMsgTree_Node Input)))))
                               (ite
-                                (is-TreeResult_TreeAudit
+                                ((_ is TreeResult_TreeAudit)
                                   (Guardfn
                                     (MsgTree_Node_recd_Left
                                       (destMsgTree_Node Input))))
                                   (MsgTree_Node_recd_Left
                                     (destMsgTree_Node Input)))
                                 (ite
-                                  (is-TreeResult_TreeAudit
+                                  ((_ is TreeResult_TreeAudit)
                                     (Guardfn
                                       (MsgTree_Node_recd_Right
                                         (destMsgTree_Node Input))))
                   (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))))
                                   (MsgTree_Node_recd_Value
                                     (destMsgTree_Node Input)))))
                             (ite
-                              (is-TreeResult_TreeAudit
+                              ((_ is TreeResult_TreeAudit)
                                 (Guardfn
                                   (MsgTree_Node_recd_Left
                                     (destMsgTree_Node Input))))
                                 (MsgTree_Node_recd_Left
                                   (destMsgTree_Node Input)))
                               (ite
-                                (is-TreeResult_TreeAudit
+                                ((_ is TreeResult_TreeAudit)
                                   (Guardfn
                                     (MsgTree_Node_recd_Right
                                       (destMsgTree_Node Input))))
                   (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))))
                                   (MsgTree_Node_recd_Value
                                     (destMsgTree_Node Input)))))
                             (ite
-                              (is-TreeResult_TreeAudit
+                              ((_ is TreeResult_TreeAudit)
                                 (Guardfn
                                   (MsgTree_Node_recd_Left
                                     (destMsgTree_Node Input))))
                                 (MsgTree_Node_recd_Left
                                   (destMsgTree_Node Input)))
                               (ite
-                                (is-TreeResult_TreeAudit
+                                ((_ is TreeResult_TreeAudit)
                                   (Guardfn
                                     (MsgTree_Node_recd_Right
                                       (destMsgTree_Node Input))))
       (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))))
                       (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))))
                               (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))))
                         (MsgTree_Node_recd_Value
                           (destMsgTree_Node Input)))))
                   (ite
-                    (is-TreeResult_TreeAudit
+                    ((_ is TreeResult_TreeAudit)
                       (Guardfn
                         (MsgTree_Node_recd_Left
                           (destMsgTree_Node Input))))
                       (MsgTree_Node_recd_Left
                         (destMsgTree_Node Input)))
                     (ite
-                      (is-TreeResult_TreeAudit
+                      ((_ is TreeResult_TreeAudit)
                         (Guardfn
                           (MsgTree_Node_recd_Right
                             (destMsgTree_Node Input))))
                                   (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))))
                                 (MsgTree_Node_recd_Value
                                   (destMsgTree_Node Input)))))
                           (ite
-                            (is-TreeResult_TreeAudit
+                            ((_ is TreeResult_TreeAudit)
                               (Guardfn
                                 (MsgTree_Node_recd_Left
                                   (destMsgTree_Node Input))))
                               (MsgTree_Node_recd_Left
                                 (destMsgTree_Node Input)))
                             (ite
-                              (is-TreeResult_TreeAudit
+                              ((_ is TreeResult_TreeAudit)
                                 (Guardfn
                                   (MsgTree_Node_recd_Right
                                     (destMsgTree_Node Input))))
                 (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))))
                                 (MsgTree_Node_recd_Value
                                   (destMsgTree_Node Input)))))
                           (ite
-                            (is-TreeResult_TreeAudit
+                            ((_ is TreeResult_TreeAudit)
                               (Guardfn
                                 (MsgTree_Node_recd_Left
                                   (destMsgTree_Node Input))))
                               (MsgTree_Node_recd_Left
                                 (destMsgTree_Node Input)))
                             (ite
-                              (is-TreeResult_TreeAudit
+                              ((_ is TreeResult_TreeAudit)
                                 (Guardfn
                                   (MsgTree_Node_recd_Right
                                     (destMsgTree_Node Input))))
                     (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))))
                                     (MsgTree_Node_recd_Value
                                       (destMsgTree_Node Input)))))
                               (ite
-                                (is-TreeResult_TreeAudit
+                                ((_ is TreeResult_TreeAudit)
                                   (Guardfn
                                     (MsgTree_Node_recd_Left
                                       (destMsgTree_Node Input))))
                                   (MsgTree_Node_recd_Left
                                     (destMsgTree_Node Input)))
                                 (ite
-                                  (is-TreeResult_TreeAudit
+                                  ((_ is TreeResult_TreeAudit)
                                     (Guardfn
                                       (MsgTree_Node_recd_Right
                                         (destMsgTree_Node Input))))
                   (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))))
                                   (MsgTree_Node_recd_Value
                                     (destMsgTree_Node Input)))))
                             (ite
-                              (is-TreeResult_TreeAudit
+                              ((_ is TreeResult_TreeAudit)
                                 (Guardfn
                                   (MsgTree_Node_recd_Left
                                     (destMsgTree_Node Input))))
                                 (MsgTree_Node_recd_Left
                                   (destMsgTree_Node Input)))
                               (ite
-                                (is-TreeResult_TreeAudit
+                                ((_ is TreeResult_TreeAudit)
                                   (Guardfn
                                     (MsgTree_Node_recd_Right
                                       (destMsgTree_Node Input))))
                   (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))))
                                   (MsgTree_Node_recd_Value
                                     (destMsgTree_Node Input)))))
                             (ite
-                              (is-TreeResult_TreeAudit
+                              ((_ is TreeResult_TreeAudit)
                                 (Guardfn
                                   (MsgTree_Node_recd_Left
                                     (destMsgTree_Node Input))))
                                 (MsgTree_Node_recd_Left
                                   (destMsgTree_Node Input)))
                               (ite
-                                (is-TreeResult_TreeAudit
+                                ((_ is TreeResult_TreeAudit)
                                   (Guardfn
                                     (MsgTree_Node_recd_Right
                                       (destMsgTree_Node Input))))
 (assert
   (not
     (not
-      (is-MsgTree_Leaf
+      ((_ is MsgTree_Leaf)
         (MsgTree_Node_recd_Left
           (destMsgTree_Node
             (destTreeResult_TreeOK
 (assert
   (not
     (not
-      (is-MsgTree_Leaf
+      ((_ is MsgTree_Leaf)
         (MsgTree_Node_recd_Right
           (destMsgTree_Node
             (destTreeResult_TreeOK
 (assert
   (not
     (not
-      (is-MsgTree_Leaf
+      ((_ is MsgTree_Leaf)
         (MsgTree_Node_recd_Left
           (destMsgTree_Node
             (destTreeResult_TreeOK
 (assert
   (not
     (not
-      (is-MsgTree_Leaf
+      ((_ is MsgTree_Leaf)
         (MsgTree_Node_recd_Right
           (destMsgTree_Node
             (destTreeResult_TreeOK
 (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))))
                         (MsgTree_Node_recd_Value
                           (destMsgTree_Node Input)))))
                   (ite
-                    (is-TreeResult_TreeAudit
+                    ((_ is TreeResult_TreeAudit)
                       (Guardfn
                         (MsgTree_Node_recd_Left
                           (destMsgTree_Node Input))))
                       (MsgTree_Node_recd_Left
                         (destMsgTree_Node Input)))
                     (ite
-                      (is-TreeResult_TreeAudit
+                      ((_ is TreeResult_TreeAudit)
                         (Guardfn
                           (MsgTree_Node_recd_Right
                             (destMsgTree_Node Input))))
 (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))))
                         (MsgTree_Node_recd_Value
                           (destMsgTree_Node Input)))))
                   (ite
-                    (is-TreeResult_TreeAudit
+                    ((_ is TreeResult_TreeAudit)
                       (Guardfn
                         (MsgTree_Node_recd_Left
                           (destMsgTree_Node Input))))
                       (MsgTree_Node_recd_Left
                         (destMsgTree_Node Input)))
                     (ite
-                      (is-TreeResult_TreeAudit
+                      ((_ is TreeResult_TreeAudit)
                         (Guardfn
                           (MsgTree_Node_recd_Right
                             (destMsgTree_Node Input))))
index a20dddfe730e3b8cb6c7bc37e6c56ea55fbec136..b93229dfe8fcea8d1648a648473158c154877749 100644 (file)
@@ -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
 ( 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 )
index 99d7f0302e740870ff6fe652549fc0826f2e3ac2..94cf3b54730b1fef99fa131e852bfbefa24d09d2 100644 (file)
@@ -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)
 (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)
-
index 93d7b88c4691a1337d7069547a28b7f02cb8866f..8bc1bd6d0b814ee3be663799863ca41768075f8a 100644 (file)
@@ -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))
 
index 7680a7daf551b374bc2e8f9729596c6c98c5bac5..5b9918b9820230ed3021e4227f6d3b3706e91d54 100644 (file)
@@ -1,4 +1,4 @@
-; COMMAND-LINE: --incremental --lang=smt2.5
+; COMMAND-LINE: --incremental
 ; EXPECT: unsat
 ; EXPECT: sat
 ; EXPECT: sat
 
 (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)
 
index d403cf4eeb9c5f2ab92e654ab82bbc0c9dc51b46..29a21a5778966765e867d853028747005823d247 100644 (file)
@@ -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))
index 771f40dec8c2c30a2eed26be6c20ce9f3cf948c7..e418743fb2d71e493b27e213c04f6a5a4ad77186 100644 (file)
@@ -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)
 
 
 (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)
-
index a58e85c0d38b3f887c3d82ccca9b4d872cc7b297..f1d20befc71f3af85d8eea69f0bc147d1eab5379 100644 (file)
@@ -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)
-
index bfbc50c9d46181d6909bb3b3523cb9886d133ae5..82983a51c3df5bce5397e15f4151c9b2d9cd2021 100644 (file)
@@ -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)
 ;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)
 (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))
 (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)
index b2ac3364edc01593fe30750f8f4e5389f5eccc76..522609b119fb6152dc02e792fe91dddfe3738966 100644 (file)
@@ -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)
 ;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)
 (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))
 (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)
index fc3054c0d7456190c7a8be33b0666a3b512ecb95..3823e4bcc4ad1776f2192b9c33d592374e5f49b5 100644 (file)
@@ -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)
 (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)
 (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)
index bcfeebd691228bc159fe7fd96c7d0378e5ab946f..d243e0ce717fa168e95896606352a59fc5fdb0cb 100644 (file)
@@ -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)
     (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)
-
-
index e9b748744232684b080c356447e0b64f8d2aa643..b9141f2e27ecc6a35099307119fb13a51d185f93 100644 (file)
@@ -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.++ "<FullAddress>" "<Address>") (AddressType$C_AddressType$address a$$2869)) "</Address>") "<City>") (AddressType$C_AddressType$city a$$2869)) "</City>") "<Region>") (AddressType$C_AddressType$region a$$2869)) "</Region>") "<PostalCode>") (AddressType$C_AddressType$postalCode a$$2869)) "</PostalCode>") "<Country>") (AddressType$C_AddressType$country a$$2869)) "</Country>") "</FullAddress>"))
-(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.++ "<Customer CustomerID=" ($$inttostr$$ (CustomerType$C_CustomerType$customerID c$$2659))) ">") "<CompanyName>") (CustomerType$C_CustomerType$companyName c$$2659)) "</CompanyName>") "<ContactName>") (CustomerType$C_CustomerType$contactName c$$2659)) "</ContactName>") "<ContactTitle>") (CustomerType$C_CustomerType$contactTitle c$$2659)) "</ContactTitle>") "<Phone>") (CustomerType$C_CustomerType$phone c$$2659)) "</Phone>") (ite (is-Conditional_string$CPresent_string (CustomerType$C_CustomerType$fax c$$2659)) (str.++ (str.++ "<Fax>" (Conditional_string$CPresent_string$value (CustomerType$C_CustomerType$fax c$$2659))) "</Fax>") "")) (f2866$toXml (CustomerType$C_CustomerType$fullAddress c$$2659))) "</Customer>"))
+(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.++ "<Customer CustomerID=" ($$inttostr$$ (CustomerType$C_CustomerType$customerID c$$2659))) ">") "<CompanyName>") (CustomerType$C_CustomerType$companyName c$$2659)) "</CompanyName>") "<ContactName>") (CustomerType$C_CustomerType$contactName c$$2659)) "</ContactName>") "<ContactTitle>") (CustomerType$C_CustomerType$contactTitle c$$2659)) "</ContactTitle>") "<Phone>") (CustomerType$C_CustomerType$phone c$$2659)) "</Phone>") (ite ((_ is Conditional_string$CPresent_string) (CustomerType$C_CustomerType$fax c$$2659)) (str.++ (str.++ "<Fax>" (Conditional_string$CPresent_string$value (CustomerType$C_CustomerType$fax c$$2659))) "</Fax>") "")) (f2866$toXml (CustomerType$C_CustomerType$fullAddress c$$2659))) "</Customer>"))
 (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.++ "<ShipInfo" (ite (is-Conditional_dateTime$CPresent_dateTime (ShipInfoType$C_ShipInfoType$shippedDate s$$2945)) (str.++ (str.++ " ShippedDate=" ($$inttostr$$ (Conditional_dateTime$CPresent_dateTime$value (ShipInfoType$C_ShipInfoType$shippedDate s$$2945)))) ">") ">")) "<ShipVia>") ($$inttostr$$ (ShipInfoType$C_ShipInfoType$shipVia s$$2945))) "</ShipVia>") "<Freight>") ($$inttostr$$ (ShipInfoType$C_ShipInfoType$freight s$$2945))) "</Freight>") "<ShipName>") (ShipInfoType$C_ShipInfoType$shipName s$$2945)) "</ShipName>") "<ShipAddress>") (ShipInfoType$C_ShipInfoType$shipAddress s$$2945)) "</ShipAddress>") "<ShipCity>") (ShipInfoType$C_ShipInfoType$shipCity s$$2945)) "</ShipCity>") "<ShipRegion>") (ShipInfoType$C_ShipInfoType$shipRegion s$$2945)) "</ShipRegion>") "<ShipPostalCode>") (ShipInfoType$C_ShipInfoType$shipPostalCode s$$2945)) "</ShipPostalCode>") "<ShipCountry>") (ShipInfoType$C_ShipInfoType$shipCountry s$$2945)) "</ShipCountry>") "</ShipInfo>"))
+(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.++ "<ShipInfo" (ite ((_ is Conditional_dateTime$CPresent_dateTime) (ShipInfoType$C_ShipInfoType$shippedDate s$$2945)) (str.++ (str.++ " ShippedDate=" ($$inttostr$$ (Conditional_dateTime$CPresent_dateTime$value (ShipInfoType$C_ShipInfoType$shippedDate s$$2945)))) ">") ">")) "<ShipVia>") ($$inttostr$$ (ShipInfoType$C_ShipInfoType$shipVia s$$2945))) "</ShipVia>") "<Freight>") ($$inttostr$$ (ShipInfoType$C_ShipInfoType$freight s$$2945))) "</Freight>") "<ShipName>") (ShipInfoType$C_ShipInfoType$shipName s$$2945)) "</ShipName>") "<ShipAddress>") (ShipInfoType$C_ShipInfoType$shipAddress s$$2945)) "</ShipAddress>") "<ShipCity>") (ShipInfoType$C_ShipInfoType$shipCity s$$2945)) "</ShipCity>") "<ShipRegion>") (ShipInfoType$C_ShipInfoType$shipRegion s$$2945)) "</ShipRegion>") "<ShipPostalCode>") (ShipInfoType$C_ShipInfoType$shipPostalCode s$$2945)) "</ShipPostalCode>") "<ShipCountry>") (ShipInfoType$C_ShipInfoType$shipCountry s$$2945)) "</ShipCountry>") "</ShipInfo>"))
 (define-fun f2776$toXml((o$$2779 OrderType)) String (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ (str.++ "<Order>" "<CustomerID>") ($$inttostr$$ (OrderType$C_OrderType$customerID o$$2779))) "</CustomerID>") "<EmployeeID>") ($$inttostr$$ (OrderType$C_OrderType$employeeID o$$2779))) "</EmployeeID>") "<OrderDate>") ($$inttostr$$ (OrderType$C_OrderType$orderDate o$$2779))) "</OrderDate>") "<RequiredDate>") ($$inttostr$$ (OrderType$C_OrderType$requiredDate o$$2779))) "</RequiredDate>") (f2942$toXml (OrderType$C_OrderType$shipInfo o$$2779))) "</Order>"))
 (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.++ "<Root>" "<Customers>") (f2574$toXml (RootType$C_RootType$customers r$$2529))) "</Customers>") "<Orders>") (f2615$toXml (RootType$C_RootType$orders r$$2529))) "</Orders>") "</Root>"))
@@ -49,4 +49,3 @@
 (assert (= $Report$3105$0$1$ "<Root><Customers></Customers><Orders></Orders></Root>"))
 ; should be fast since functions introduced by define-fun-rec do not appear in the ground assertion
 (check-sat)
-
index 3172fd6951fe382ca073c36a0168a7d6ff2db1e4..cb55d8504bdac98b7d918df539a87776bbd1c63f 100644 (file)
@@ -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)
-
index bc6d9e9486b0a2fde15582ab2e8192231448425a..dba8a05aec3cb1ac02cdf947fa10e0f05466cd51 100644 (file)
@@ -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))
        )
 (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)
index a19c8f027647208e5bbd978d566ce1a56fb134f7..b0ff1d11b7d192964aa40273a9b6dbccd5394c5c 100644 (file)
@@ -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))))
index 6971c4d0ae6d17ab8d76caee7d64c3b4a1cb03fd..5ede5f72daabf9cdd42bce30476e0fc192ea1225 100644 (file)
@@ -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)
index 4b4d57af3f11cf20fcbb501df30dda6dfc330da6..efa38fcfc70575e898998f0f551f1eeaaceb6ecd 100644 (file)
@@ -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)
 
 (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)
index c88de064c9f92539b2ca56796ee8ed9a8cd22bd6..c4a40ccc1ab324a2644714df0c529b2f6f91782d 100644 (file)
@@ -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 --------------
 (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)
index 64f551d55c029bcdd74659104352fb646c31103e..fbe011cfd12af269b8369a515c0cbe655ee2060f 100644 (file)
@@ -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 --------------
 (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)
index 7012838f9e460c62809204a04bb47f83a421f59a..7f3a5b28fb712d256d9ace865e3a5226f4be1a4d 100644 (file)
@@ -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)
 (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)
  (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_)
    (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)
index 519fb17fc16e3699d2597f566d44145c2b475845..37838077954728e257ea5d79f5fa707b1ecc18a0 100644 (file)
@@ -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)
  (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))
index d55e15925fff65251517e4fb6fb3f2f0a95b9d1f..b2c42d7c54eb6632c74949a589925c1931ef5186 100644 (file)
@@ -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)
 
 (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)
index e6b3c2021f14f18782eb3f2f1aeeca042eaef94d..25851f6e0582fe00fad5949b56c6ceb6be0e2de7 100644 (file)
-; 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)
index 345d8220e4b591bbaa269e6db71748264b1d61e7..5c695e482e531b7ecfc9531e6940600a76f9a30d 100644 (file)
@@ -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
index c1d718403919dfaa8731c4d4058aee351e9714e7..508629f8ec7fcd812e25b554876829ca2f0e1766 100644 (file)
@@ -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)
 (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)
index ec5a5149e28e483cbd23d84bcd5043c58c6d7789..1b6b16535d442a0c85361074518c406c77b65834 100644 (file)
@@ -1,4 +1,4 @@
-; COMMAND-LINE: --lang=smt2.5
+; COMMAND-LINE: --lang=smt2.6
 ; EXPECT: unsat
 
 ;; produced by cvc4_14.drv ;;
 ;;; 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))
 
 ;; 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))
 
 
 ;; 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)
-
index 9eff608bb0fac7486d3b1b434a7e2ef9fb5977f1..8f0312616b301378f344e90fabb75382c5b7be0d 100644 (file)
@@ -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)
 (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$)
index c45152d6f8da76ba90ff5b3852995b1338148073..f236c1ec75a1f40d195f59434b76b8aeb9dac462 100644 (file)
@@ -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)
-
index 9243654b4dd9f9b371f796e1ade48c1354de867a..fe593e8c016941e979efba74707b84e6abece9fc 100644 (file)
@@ -1,4 +1,3 @@
-; COMMAND-LINE: --lang=smt2.5
 ; EXPECT: unsat
 (set-logic ALL_SUPPORTED)
 (set-info :status unsat)
 (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$)
index f3ee6a86a2826ffc2057ff3ed17e32e428731eb3..1828a68b2390e965d636453863479fe2169d2e18 100644 (file)
@@ -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)))
index 860c03b6f5ed30a028b1e62f4a52579d915aaed8..c4cdfb244227b7432b7a038c7214e89b9bb428a1 100644 (file)
@@ -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)))
index 2e3a5f9c86fe5d15e93affc0871a9073821de458..17a05c8769c0c7bc7cc15aa9791effa73bb837f8 100644 (file)
@@ -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)
index 2144de0607b0c5fa1b824fcee2dc198904be47a4..6c1c633a9c0172614293dfddbdeb8efdd17410d2 100644 (file)
@@ -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)
index e8a784fc751b23515fd2c0712fbc3b36592a5162..04ea50b722aa2a8fa6ee1006af541a7a60b94ebc 100644 (file)
@@ -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)
index 9c8bc1d3e08e438114a5382efd51f79c639f3795..2ae8a60f45edb3c1c058b2d69777e6630a75190e 100644 (file)
@@ -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__)
 (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)