merged
authorhuffman
Sat, 07 Nov 2009 07:37:20 -0800
changeset 33507 6390cc8d2714
parent 33506 afb577487b15 (current diff)
parent 33501 31872dd275c8 (diff)
child 33508 70026e20fa4c
merged
src/HOL/Boogie/Examples/cert/Boogie_b_Dijkstra
src/HOL/Boogie/Examples/cert/Boogie_b_Dijkstra.proof
src/HOL/Boogie/Examples/cert/Boogie_b_max
src/HOL/Boogie/Examples/cert/Boogie_b_max.proof
src/HOL/Boogie/Examples/cert/VCC_b_maximum
src/HOL/Boogie/Examples/cert/VCC_b_maximum.proof
src/HOL/SizeChange/Correctness.thy
src/HOL/SizeChange/Criterion.thy
src/HOL/SizeChange/Examples.thy
src/HOL/SizeChange/Graphs.thy
src/HOL/SizeChange/Implementation.thy
src/HOL/SizeChange/Interpretation.thy
src/HOL/SizeChange/Misc_Tools.thy
src/HOL/SizeChange/ROOT.ML
src/HOL/SizeChange/Size_Change_Termination.thy
src/HOL/SizeChange/document/root.tex
src/HOL/SizeChange/sct.ML
src/HOL/Tools/Function/induction_scheme.ML
src/HOL/ex/Induction_Scheme.thy
src/HOLCF/Tools/fixrec.ML
--- a/Admin/isatest/isatest-settings	Fri Nov 06 09:50:37 2009 -0800
+++ b/Admin/isatest/isatest-settings	Sat Nov 07 07:37:20 2009 -0800
@@ -11,7 +11,7 @@
 HOME=/home/isatest
 
 ## send email on failure to
-MAILTO="kleing@cse.unsw.edu.au nipkow@in.tum.de berghofe@in.tum.de schirmer@in.tum.de lp15@cam.ac.uk makarius@sketis.net haftmann@in.tum.de krauss@in.tum.de blanchet@in.tum.de bulwahn@in.tum.de"
+MAILTO="kleing@cse.unsw.edu.au nipkow@in.tum.de berghofe@in.tum.de schirmer@in.tum.de lp15@cam.ac.uk makarius@sketis.net haftmann@in.tum.de krauss@in.tum.de blanchet@in.tum.de bulwahn@in.tum.de boehmes@in.tum.de hoelzl@in.tum.de"
 
 LOGPREFIX=$HOME/log
 MASTERLOG=$LOGPREFIX/isatest.log
--- a/NEWS	Fri Nov 06 09:50:37 2009 -0800
+++ b/NEWS	Sat Nov 07 07:37:20 2009 -0800
@@ -54,6 +54,8 @@
 solvers using the oracle mechanism; for the SMT solver Z3,
 this method is proof-producing. Certificates are provided to
 avoid calling the external solvers solely for re-checking proofs.
+Due to a remote SMT service there is no need for installing SMT
+solvers locally.
 
 * New commands to load and prove verification conditions
 generated by the Boogie program verifier or derived systems
@@ -227,6 +229,10 @@
 * Maclauren.DERIV_tac and Maclauren.deriv_tac was removed, they are
 replaced by: (auto intro!: DERIV_intros).  INCOMPATIBILITY.
 
+* Renamed methods:
+    sizechange -> size_change
+    induct_scheme -> induction_schema
+
 
 *** ML ***
 
--- a/src/FOL/ex/LocaleTest.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/FOL/ex/LocaleTest.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -124,6 +124,59 @@
 thm var.test_def
 
 
+text {* Under which circumstances term syntax remains active. *}
+
+locale "syntax" =
+  fixes p1 :: "'a => 'b"
+    and p2 :: "'b => o"
+begin
+
+definition d1 :: "'a => o" where "d1(x) <-> ~ p2(p1(x))"
+definition d2 :: "'b => o" where "d2(x) <-> ~ p2(x)"
+
+thm d1_def d2_def
+
+end
+
+thm syntax.d1_def syntax.d2_def
+
+locale syntax' = "syntax" p1 p2 for p1 :: "'a => 'a" and p2 :: "'a => o"
+begin
+
+thm d1_def d2_def  (* should print as "d1(?x) <-> ..." and "d2(?x) <-> ..." *)
+
+ML {*
+  fun check_syntax ctxt thm expected =
+    let
+      val obtained = PrintMode.setmp [] (Display.string_of_thm ctxt) thm;
+    in
+      if obtained <> expected
+      then error ("Theorem syntax '" ^ obtained ^ "' obtained, but '" ^ expected ^ "' expected.")
+      else ()
+    end;
+*}
+
+ML {*
+  check_syntax @{context} @{thm d1_def} "d1(?x) <-> ~ p2(p1(?x))";
+  check_syntax @{context} @{thm d2_def} "d2(?x) <-> ~ p2(?x)";
+*}
+
+end
+
+locale syntax'' = "syntax" p3 p2 for p3 :: "'a => 'b" and p2 :: "'b => o"
+begin
+
+thm d1_def d2_def
+  (* should print as "syntax.d1(p3, p2, ?x) <-> ..." and "d2(?x) <-> ..." *)
+
+ML {*
+  check_syntax @{context} @{thm d1_def} "syntax.d1(p3, p2, ?x) <-> ~ p2(p3(?x))";
+  check_syntax @{context} @{thm d2_def} "d2(?x) <-> ~ p2(?x)";
+*}
+
+end
+
+
 section {* Foundational versions of theorems *}
 
 thm logic.assoc
--- a/src/HOL/Boogie/Boogie.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Boogie/Boogie.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -13,6 +13,22 @@
   ("Tools/boogie_split.ML")
 begin
 
+text {*
+HOL-Boogie and its applications are described in:
+\begin{itemize}
+
+\item Sascha B"ohme, K. Rustan M. Leino, and Burkhart Wolff.
+HOL-Boogie --- An Interactive Prover for the Boogie Program-Verifier.
+Theorem Proving in Higher Order Logics, 2008.
+
+\item Sascha B"ohme, Micha{\l} Moskal, Wolfram Schulte, and Burkhart Wolff.
+HOL-Boogie --- An Interactive Prover-Backend for the Verifying C Compiler.
+Journal of Automated Reasoning, 2009.
+
+\end{itemize}
+*}
+
+
 section {* Built-in types and functions of Boogie *}
 
 subsection {* Labels *}
@@ -177,8 +193,8 @@
 structure Boogie_Axioms = Named_Thms
 (
   val name = "boogie"
-  val description = ("Boogie background axioms" ^
-    " loaded along with Boogie verification conditions")
+  val description =
+    "Boogie background axioms loaded along with Boogie verification conditions"
 )
 *}
 setup Boogie_Axioms.setup
@@ -191,8 +207,8 @@
 structure Split_VC_SMT_Rules = Named_Thms
 (
   val name = "split_vc_smt"
-  val description = ("Theorems given to the SMT sub-tactic" ^
-    " of the split_vc method")
+  val description =
+    "theorems given to the SMT sub-tactic of the split_vc method"
 )
 *}
 setup Split_VC_SMT_Rules.setup
--- a/src/HOL/Boogie/Examples/Boogie_Dijkstra.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Boogie/Examples/Boogie_Dijkstra.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -81,9 +81,9 @@
 
 boogie_open "~~/src/HOL/Boogie/Examples/Boogie_Dijkstra"
 
-boogie_vc b_Dijkstra
+boogie_vc Dijkstra
   unfolding labels
-  using [[smt_cert="~~/src/HOL/Boogie/Examples/cert/Boogie_b_Dijkstra"]]
+  using [[smt_cert="~~/src/HOL/Boogie/Examples/cert/Boogie_Dijkstra"]]
   using [[z3_proofs=true]]
   by (smt boogie)
 
--- a/src/HOL/Boogie/Examples/Boogie_Max.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Boogie/Examples/Boogie_Max.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -41,9 +41,9 @@
 text {*
 Approach 1: Discharge the verification condition fully automatically by SMT:
 *}
-boogie_vc b_max
+boogie_vc max
   unfolding labels
-  using [[smt_cert="~~/src/HOL/Boogie/Examples/cert/Boogie_b_max"]]
+  using [[smt_cert="~~/src/HOL/Boogie/Examples/cert/Boogie_max"]]
   using [[z3_proofs=true]]
   by (smt boogie)
 
@@ -53,7 +53,7 @@
 explicit proof. This approach is most useful in an interactive debug-and-fix
 mode. 
 *}
-boogie_vc b_max
+boogie_vc max
 proof (split_vc (verbose) try: fast simp)
   print_cases
   case L_14_5c
--- a/src/HOL/Boogie/Examples/ROOT.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Boogie/Examples/ROOT.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -1,3 +1,1 @@
-use_thy "Boogie_Max";
-use_thy "Boogie_Dijkstra";
-use_thy "VCC_Max";
+use_thys ["Boogie_Max", "Boogie_Dijkstra", "VCC_Max"];
--- a/src/HOL/Boogie/Examples/VCC_Max.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Boogie/Examples/VCC_Max.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -48,9 +48,9 @@
 
 boogie_status
 
-boogie_vc b_maximum
+boogie_vc maximum
   unfolding labels
-  using [[smt_cert="~~/src/HOL/Boogie/Examples/cert/VCC_b_maximum"]]
+  using [[smt_cert="~~/src/HOL/Boogie/Examples/cert/VCC_maximum"]]
   using [[z3_proofs=true]]
   by (smt boogie)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Boogie/Examples/cert/Boogie_Dijkstra	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,43 @@
+(benchmark Isabelle
+:extrasorts ( T1 T4 T3 T5 T2)
+:extrafuns (
+  (uf_2 T1 T2)
+  (uf_3 T1 T2)
+  (uf_1 T2 T2 T1)
+  (uf_8 T5)
+  (uf_7 T4 T2 T5 T4)
+  (uf_5 T3 T2 Int T3)
+  (uf_6 T4 T2 T5)
+  (uf_4 T3 T2 Int)
+  (uf_10 T1 Int)
+  (uf_11 T2)
+  (uf_9 Int)
+  (uf_21 T2)
+  (uf_16 T2)
+  (uf_20 T2)
+  (uf_12 T2 Int)
+  (uf_14 T3)
+  (uf_18 T2 Int)
+  (uf_22 T3)
+  (uf_24 T3)
+  (uf_23 T3)
+  (uf_15 T4)
+  (uf_17 T4)
+  (uf_19 T4)
+ )
+:extrapreds (
+  (up_13 T2)
+ )
+:assumption (forall (?x1 T1) (= (uf_1 (uf_2 ?x1) (uf_3 ?x1)) ?x1))
+:assumption (forall (?x2 T2) (?x3 T2) (= (uf_3 (uf_1 ?x2 ?x3)) ?x3))
+:assumption (forall (?x4 T2) (?x5 T2) (= (uf_2 (uf_1 ?x4 ?x5)) ?x4))
+:assumption (forall (?x6 T3) (?x7 T2) (?x8 Int) (?x9 T2) (= (uf_4 (uf_5 ?x6 ?x7 ?x8) ?x9) (ite (= ?x9 ?x7) ?x8 (uf_4 ?x6 ?x9))))
+:assumption (forall (?x10 T4) (?x11 T2) (?x12 T5) (?x13 T2) (iff (= (uf_6 (uf_7 ?x10 ?x11 ?x12) ?x13) uf_8) (if_then_else (= ?x13 ?x11) (= ?x12 uf_8) (= (uf_6 ?x10 ?x13) uf_8))))
+:assumption (forall (?x14 T3) (?x15 T2) (?x16 Int) (= (uf_4 (uf_5 ?x14 ?x15 ?x16) ?x15) ?x16))
+:assumption (forall (?x17 T4) (?x18 T2) (?x19 T5) (iff (= (uf_6 (uf_7 ?x17 ?x18 ?x19) ?x18) uf_8) (= ?x19 uf_8)))
+:assumption (< 0 uf_9)
+:assumption (forall (?x20 T2) (?x21 T2) (implies (= ?x20 ?x21) (= (uf_10 (uf_1 ?x20 ?x21)) 0)))
+:assumption (forall (?x22 T2) (?x23 T2) (implies (not (= ?x22 ?x23)) (< 0 (uf_10 (uf_1 ?x22 ?x23)))))
+:assumption (not (implies true (implies true (implies (forall (?x24 T2) (implies (= ?x24 uf_11) (= (uf_12 ?x24) 0))) (implies (forall (?x25 T2) (implies (not (= ?x25 uf_11)) (= (uf_12 ?x25) uf_9))) (implies (forall (?x26 T2) (not (up_13 ?x26))) (implies true (and (implies (= (uf_12 uf_11) 0) (and (implies (forall (?x27 T2) (<= 0 (uf_12 ?x27))) (and (implies (forall (?x28 T2) (?x29 T2) (implies (and (up_13 ?x28) (not (up_13 ?x29))) (<= (uf_12 ?x28) (uf_12 ?x29)))) (and (implies (forall (?x30 T2) (?x31 T2) (implies (and (< (uf_10 (uf_1 ?x31 ?x30)) uf_9) (up_13 ?x31)) (<= (uf_12 ?x30) (+ (uf_12 ?x31) (uf_10 (uf_1 ?x31 ?x30)))))) (and (implies (forall (?x32 T2) (implies (and (< (uf_12 ?x32) uf_9) (not (= ?x32 uf_11))) (exists (?x33 T2) (and (= (uf_12 ?x32) (+ (uf_12 ?x33) (uf_10 (uf_1 ?x33 ?x32)))) (and (up_13 ?x33) (< (uf_12 ?x33) (uf_12 ?x32))))))) (implies true (implies true (implies (= (uf_4 uf_14 uf_11) 0) (implies (forall (?x34 T2) (<= 0 (uf_4 uf_14 ?x34))) (implies (forall (?x35 T2) (?x36 T2) (implies (and (= (uf_6 uf_15 ?x35) uf_8) (not (= (uf_6 uf_15 ?x36) uf_8))) (<= (uf_4 uf_14 ?x35) (uf_4 uf_14 ?x36)))) (implies (forall (?x37 T2) (?x38 T2) (implies (and (< (uf_10 (uf_1 ?x38 ?x37)) uf_9) (= (uf_6 uf_15 ?x38) uf_8)) (<= (uf_4 uf_14 ?x37) (+ (uf_4 uf_14 ?x38) (uf_10 (uf_1 ?x38 ?x37)))))) (implies (forall (?x39 T2) (implies (and (< (uf_4 uf_14 ?x39) uf_9) (not (= ?x39 uf_11))) (exists (?x40 T2) (and (= (uf_4 uf_14 ?x39) (+ (uf_4 uf_14 ?x40) (uf_10 (uf_1 ?x40 ?x39)))) (and (= (uf_6 uf_15 ?x40) uf_8) (< (uf_4 uf_14 ?x40) (uf_4 uf_14 ?x39))))))) (implies true (and (implies true (implies true (implies (exists (?x41 T2) (and (< (uf_4 uf_14 ?x41) uf_9) (not (= (uf_6 uf_15 ?x41) uf_8)))) (implies (not (= (uf_6 uf_15 uf_16) uf_8)) (implies (< (uf_4 uf_14 uf_16) uf_9) (implies (forall (?x42 T2) (implies (not (= (uf_6 uf_15 ?x42) uf_8)) (<= (uf_4 uf_14 uf_16) (uf_4 uf_14 ?x42)))) (implies (= uf_17 (uf_7 uf_15 uf_16 uf_8)) (implies (forall (?x43 T2) (implies (and (< (+ (uf_4 uf_14 uf_16) (uf_10 (uf_1 uf_16 ?x43))) (uf_4 uf_14 ?x43)) (< (uf_10 (uf_1 uf_16 ?x43)) uf_9)) (= (uf_18 ?x43) (+ (uf_4 uf_14 uf_16) (uf_10 (uf_1 uf_16 ?x43)))))) (implies (forall (?x44 T2) (implies (not (and (< (+ (uf_4 uf_14 uf_16) (uf_10 (uf_1 uf_16 ?x44))) (uf_4 uf_14 ?x44)) (< (uf_10 (uf_1 uf_16 ?x44)) uf_9))) (= (uf_18 ?x44) (uf_4 uf_14 ?x44)))) (and (implies (forall (?x45 T2) (<= (uf_18 ?x45) (uf_4 uf_14 ?x45))) (and (implies (forall (?x46 T2) (implies (= (uf_6 uf_17 ?x46) uf_8) (= (uf_18 ?x46) (uf_4 uf_14 ?x46)))) (implies true (implies true (and (implies (= (uf_18 uf_11) 0) (and (implies (forall (?x47 T2) (<= 0 (uf_18 ?x47))) (and (implies (forall (?x48 T2) (?x49 T2) (implies (and (= (uf_6 uf_17 ?x48) uf_8) (not (= (uf_6 uf_17 ?x49) uf_8))) (<= (uf_18 ?x48) (uf_18 ?x49)))) (and (implies (forall (?x50 T2) (?x51 T2) (implies (and (< (uf_10 (uf_1 ?x51 ?x50)) uf_9) (= (uf_6 uf_17 ?x51) uf_8)) (<= (uf_18 ?x50) (+ (uf_18 ?x51) (uf_10 (uf_1 ?x51 ?x50)))))) (and (implies (forall (?x52 T2) (implies (and (< (uf_18 ?x52) uf_9) (not (= ?x52 uf_11))) (exists (?x53 T2) (and (= (uf_18 ?x52) (+ (uf_18 ?x53) (uf_10 (uf_1 ?x53 ?x52)))) (and (= (uf_6 uf_17 ?x53) uf_8) (< (uf_18 ?x53) (uf_18 ?x52))))))) (implies false true)) (forall (?x54 T2) (implies (and (< (uf_18 ?x54) uf_9) (not (= ?x54 uf_11))) (exists (?x55 T2) (and (= (uf_18 ?x54) (+ (uf_18 ?x55) (uf_10 (uf_1 ?x55 ?x54)))) (and (= (uf_6 uf_17 ?x55) uf_8) (< (uf_18 ?x55) (uf_18 ?x54))))))))) (forall (?x56 T2) (?x57 T2) (implies (and (< (uf_10 (uf_1 ?x57 ?x56)) uf_9) (= (uf_6 uf_17 ?x57) uf_8)) (<= (uf_18 ?x56) (+ (uf_18 ?x57) (uf_10 (uf_1 ?x57 ?x56)))))))) (forall (?x58 T2) (?x59 T2) (implies (and (= (uf_6 uf_17 ?x58) uf_8) (not (= (uf_6 uf_17 ?x59) uf_8))) (<= (uf_18 ?x58) (uf_18 ?x59)))))) (forall (?x60 T2) (<= 0 (uf_18 ?x60))))) (= (uf_18 uf_11) 0))))) (forall (?x61 T2) (implies (= (uf_6 uf_17 ?x61) uf_8) (= (uf_18 ?x61) (uf_4 uf_14 ?x61)))))) (forall (?x62 T2) (<= (uf_18 ?x62) (uf_4 uf_14 ?x62))))))))))))) (implies true (implies true (implies (not (exists (?x63 T2) (and (< (uf_4 uf_14 ?x63) uf_9) (not (= (uf_6 uf_15 ?x63) uf_8))))) (implies true (implies true (implies (= uf_19 uf_15) (implies (= uf_20 uf_21) (implies (= uf_22 uf_14) (implies (= uf_23 uf_24) (implies true (and (implies (forall (?x64 T2) (implies (and (< (uf_4 uf_22 ?x64) uf_9) (not (= ?x64 uf_11))) (exists (?x65 T2) (and (= (uf_4 uf_22 ?x64) (+ (uf_4 uf_22 ?x65) (uf_10 (uf_1 ?x65 ?x64)))) (< (uf_4 uf_22 ?x65) (uf_4 uf_22 ?x64)))))) (and (implies (forall (?x66 T2) (?x67 T2) (implies (and (< (uf_10 (uf_1 ?x67 ?x66)) uf_9) (< (uf_4 uf_22 ?x67) uf_9)) (<= (uf_4 uf_22 ?x66) (+ (uf_4 uf_22 ?x67) (uf_10 (uf_1 ?x67 ?x66)))))) (and (implies (= (uf_4 uf_22 uf_11) 0) true) (= (uf_4 uf_22 uf_11) 0))) (forall (?x68 T2) (?x69 T2) (implies (and (< (uf_10 (uf_1 ?x69 ?x68)) uf_9) (< (uf_4 uf_22 ?x69) uf_9)) (<= (uf_4 uf_22 ?x68) (+ (uf_4 uf_22 ?x69) (uf_10 (uf_1 ?x69 ?x68)))))))) (forall (?x70 T2) (implies (and (< (uf_4 uf_22 ?x70) uf_9) (not (= ?x70 uf_11))) (exists (?x71 T2) (and (= (uf_4 uf_22 ?x70) (+ (uf_4 uf_22 ?x71) (uf_10 (uf_1 ?x71 ?x70)))) (< (uf_4 uf_22 ?x71) (uf_4 uf_22 ?x70))))))))))))))))))))))))))) (forall (?x72 T2) (implies (and (< (uf_12 ?x72) uf_9) (not (= ?x72 uf_11))) (exists (?x73 T2) (and (= (uf_12 ?x72) (+ (uf_12 ?x73) (uf_10 (uf_1 ?x73 ?x72)))) (and (up_13 ?x73) (< (uf_12 ?x73) (uf_12 ?x72))))))))) (forall (?x74 T2) (?x75 T2) (implies (and (< (uf_10 (uf_1 ?x75 ?x74)) uf_9) (up_13 ?x75)) (<= (uf_12 ?x74) (+ (uf_12 ?x75) (uf_10 (uf_1 ?x75 ?x74)))))))) (forall (?x76 T2) (?x77 T2) (implies (and (up_13 ?x76) (not (up_13 ?x77))) (<= (uf_12 ?x76) (uf_12 ?x77)))))) (forall (?x78 T2) (<= 0 (uf_12 ?x78))))) (= (uf_12 uf_11) 0)))))))))
+:formula true
+)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Boogie/Examples/cert/Boogie_Dijkstra.proof	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,7081 @@
+#2 := false
+#55 := 0::int
+decl uf_4 :: (-> T3 T2 int)
+decl ?x40!7 :: (-> T2 T2)
+decl ?x52!15 :: T2
+#2305 := ?x52!15
+#15992 := (?x40!7 ?x52!15)
+decl uf_14 :: T3
+#107 := uf_14
+#15996 := (uf_4 uf_14 #15992)
+#20405 := (>= #15996 0::int)
+#11 := (:var 0 T2)
+#110 := (uf_4 uf_14 #11)
+#4403 := (pattern #110)
+#1843 := (>= #110 0::int)
+#4404 := (forall (vars (?x34 T2)) (:pat #4403) #1843)
+decl uf_10 :: (-> T1 int)
+decl uf_1 :: (-> T2 T2 T1)
+decl ?x66!20 :: T2
+#2511 := ?x66!20
+decl ?x67!19 :: T2
+#2510 := ?x67!19
+#2516 := (uf_1 ?x67!19 ?x66!20)
+#2517 := (uf_10 #2516)
+#1320 := -1::int
+#2524 := (* -1::int #2517)
+decl uf_22 :: T3
+#230 := uf_22
+#2514 := (uf_4 uf_22 ?x67!19)
+#2520 := (* -1::int #2514)
+#3094 := (+ #2520 #2524)
+#2512 := (uf_4 uf_22 ?x66!20)
+#3095 := (+ #2512 #3094)
+#3096 := (<= #3095 0::int)
+decl uf_9 :: int
+#56 := uf_9
+#2525 := (+ uf_9 #2524)
+#2526 := (<= #2525 0::int)
+#2521 := (+ uf_9 #2520)
+#2522 := (<= #2521 0::int)
+#3693 := (or #2522 #2526 #3096)
+#3698 := (not #3693)
+#10 := (:var 1 T2)
+#90 := (uf_1 #11 #10)
+#4379 := (pattern #90)
+#238 := (uf_4 uf_22 #10)
+#1720 := (* -1::int #238)
+#235 := (uf_4 uf_22 #11)
+#1721 := (+ #235 #1720)
+#91 := (uf_10 #90)
+#1727 := (+ #91 #1721)
+#1750 := (>= #1727 0::int)
+#1707 := (* -1::int #235)
+#1708 := (+ uf_9 #1707)
+#1709 := (<= #1708 0::int)
+#1343 := (* -1::int #91)
+#1346 := (+ uf_9 #1343)
+#1347 := (<= #1346 0::int)
+#3661 := (or #1347 #1709 #1750)
+#4633 := (forall (vars (?x66 T2) (?x67 T2)) (:pat #4379) #3661)
+#4638 := (not #4633)
+decl uf_11 :: T2
+#67 := uf_11
+#250 := (uf_4 uf_22 uf_11)
+#251 := (= #250 0::int)
+#4641 := (or #251 #4638)
+#4644 := (not #4641)
+#4647 := (or #4644 #3698)
+#4650 := (not #4647)
+#4609 := (pattern #235)
+decl ?x65!18 :: (-> T2 T2)
+#2487 := (?x65!18 #11)
+#2490 := (uf_1 #2487 #11)
+#2491 := (uf_10 #2490)
+#3064 := (* -1::int #2491)
+#2488 := (uf_4 uf_22 #2487)
+#3047 := (* -1::int #2488)
+#3065 := (+ #3047 #3064)
+#3066 := (+ #235 #3065)
+#3067 := (= #3066 0::int)
+#3631 := (not #3067)
+#3048 := (+ #235 #3047)
+#3049 := (<= #3048 0::int)
+#3632 := (or #3049 #3631)
+#3633 := (not #3632)
+#68 := (= #11 uf_11)
+#3639 := (or #68 #1709 #3633)
+#4625 := (forall (vars (?x64 T2)) (:pat #4609) #3639)
+#4630 := (not #4625)
+#4653 := (or #4630 #4650)
+#4656 := (not #4653)
+decl ?x64!17 :: T2
+#2447 := ?x64!17
+#2451 := (uf_1 #11 ?x64!17)
+#4610 := (pattern #2451)
+#2452 := (uf_10 #2451)
+#2448 := (uf_4 uf_22 ?x64!17)
+#2449 := (* -1::int #2448)
+#3017 := (+ #2449 #2452)
+#3018 := (+ #235 #3017)
+#3021 := (= #3018 0::int)
+#3595 := (not #3021)
+#2450 := (+ #235 #2449)
+#2455 := (>= #2450 0::int)
+#3596 := (or #2455 #3595)
+#4611 := (forall (vars (?x65 T2)) (:pat #4609 #4610) #3596)
+#4616 := (not #4611)
+#2993 := (= uf_11 ?x64!17)
+#2459 := (+ uf_9 #2449)
+#2460 := (<= #2459 0::int)
+#4619 := (or #2460 #2993 #4616)
+#4622 := (not #4619)
+#4659 := (or #4622 #4656)
+#4662 := (not #4659)
+decl uf_6 :: (-> T4 T2 T5)
+decl uf_15 :: T4
+#113 := uf_15
+#116 := (uf_6 uf_15 #11)
+#4445 := (pattern #116)
+#1404 := (* -1::int #110)
+#1405 := (+ uf_9 #1404)
+#1406 := (<= #1405 0::int)
+decl uf_8 :: T5
+#33 := uf_8
+#505 := (= uf_8 #116)
+#3581 := (or #505 #1406)
+#4601 := (forall (vars (?x41 T2)) (:pat #4445 #4403) #3581)
+#4606 := (not #4601)
+#933 := (= uf_14 uf_22)
+#1053 := (not #933)
+decl uf_19 :: T4
+#225 := uf_19
+#930 := (= uf_15 uf_19)
+#1071 := (not #930)
+decl uf_24 :: T3
+#233 := uf_24
+decl uf_23 :: T3
+#232 := uf_23
+#234 := (= uf_23 uf_24)
+#1044 := (not #234)
+decl uf_21 :: T2
+#228 := uf_21
+decl uf_20 :: T2
+#227 := uf_20
+#229 := (= uf_20 uf_21)
+#1062 := (not #229)
+#4665 := (or #1062 #1044 #1071 #1053 #4606 #4662)
+#4668 := (not #4665)
+#2309 := (uf_1 #11 ?x52!15)
+#4514 := (pattern #2309)
+decl uf_18 :: (-> T2 int)
+#158 := (uf_18 #11)
+#4454 := (pattern #158)
+decl uf_17 :: T4
+#149 := uf_17
+#168 := (uf_6 uf_17 #11)
+#4480 := (pattern #168)
+#2310 := (uf_10 #2309)
+#2306 := (uf_18 ?x52!15)
+#2307 := (* -1::int #2306)
+#2917 := (+ #2307 #2310)
+#2918 := (+ #158 #2917)
+#2921 := (= #2918 0::int)
+#3474 := (not #2921)
+#2308 := (+ #158 #2307)
+#2313 := (>= #2308 0::int)
+#630 := (= uf_8 #168)
+#636 := (not #630)
+#3475 := (or #636 #2313 #3474)
+#4515 := (forall (vars (?x53 T2)) (:pat #4480 #4454 #4514) #3475)
+#4520 := (not #4515)
+#180 := (uf_18 #10)
+#1505 := (* -1::int #180)
+#1506 := (+ #158 #1505)
+#1536 := (+ #91 #1506)
+#1534 := (>= #1536 0::int)
+#3466 := (or #636 #1347 #1534)
+#4506 := (forall (vars (?x50 T2) (?x51 T2)) (:pat #4379) #3466)
+#4511 := (not #4506)
+#2893 := (= uf_11 ?x52!15)
+#2317 := (+ uf_9 #2307)
+#2318 := (<= #2317 0::int)
+#4523 := (or #2318 #2893 #4511 #4520)
+#4526 := (not #4523)
+decl ?x50!14 :: T2
+#2275 := ?x50!14
+decl ?x51!13 :: T2
+#2274 := ?x51!13
+#2280 := (uf_1 ?x51!13 ?x50!14)
+#2281 := (uf_10 #2280)
+#2284 := (* -1::int #2281)
+#2278 := (uf_18 ?x51!13)
+#2879 := (* -1::int #2278)
+#2880 := (+ #2879 #2284)
+#2276 := (uf_18 ?x50!14)
+#2881 := (+ #2276 #2880)
+#2882 := (<= #2881 0::int)
+#2288 := (uf_6 uf_17 ?x51!13)
+#2289 := (= uf_8 #2288)
+#3429 := (not #2289)
+#2285 := (+ uf_9 #2284)
+#2286 := (<= #2285 0::int)
+#3444 := (or #2286 #3429 #2882)
+#3449 := (not #3444)
+#4529 := (or #3449 #4526)
+#4532 := (not #4529)
+#4497 := (pattern #158 #180)
+#1504 := (>= #1506 0::int)
+#176 := (uf_6 uf_17 #10)
+#648 := (= uf_8 #176)
+#3406 := (not #648)
+#3421 := (or #630 #3406 #1504)
+#4498 := (forall (vars (?x48 T2) (?x49 T2)) (:pat #4497) #3421)
+#4503 := (not #4498)
+#4535 := (or #4503 #4532)
+#4538 := (not #4535)
+decl ?x49!11 :: T2
+#2247 := ?x49!11
+#2251 := (uf_18 ?x49!11)
+#2853 := (* -1::int #2251)
+decl ?x48!12 :: T2
+#2248 := ?x48!12
+#2249 := (uf_18 ?x48!12)
+#2854 := (+ #2249 #2853)
+#2855 := (<= #2854 0::int)
+#2256 := (uf_6 uf_17 ?x49!11)
+#2257 := (= uf_8 #2256)
+#2254 := (uf_6 uf_17 ?x48!12)
+#2255 := (= uf_8 #2254)
+#3383 := (not #2255)
+#3398 := (or #3383 #2257 #2855)
+#3403 := (not #3398)
+#4541 := (or #3403 #4538)
+#4544 := (not #4541)
+#1495 := (>= #158 0::int)
+#4489 := (forall (vars (?x47 T2)) (:pat #4454) #1495)
+#4494 := (not #4489)
+#4547 := (or #4494 #4544)
+#4550 := (not #4547)
+decl ?x47!10 :: T2
+#2232 := ?x47!10
+#2233 := (uf_18 ?x47!10)
+#2234 := (>= #2233 0::int)
+#2235 := (not #2234)
+#4553 := (or #2235 #4550)
+#4556 := (not #4553)
+#172 := (uf_18 uf_11)
+#173 := (= #172 0::int)
+#1492 := (not #173)
+#4559 := (or #1492 #4556)
+#4562 := (not #4559)
+#4565 := (or #1492 #4562)
+#4568 := (not #4565)
+#616 := (= #110 #158)
+#637 := (or #616 #636)
+#4481 := (forall (vars (?x46 T2)) (:pat #4403 #4454 #4480) #637)
+#4486 := (not #4481)
+#4571 := (or #4486 #4568)
+#4574 := (not #4571)
+decl ?x46!9 :: T2
+#2207 := ?x46!9
+#2212 := (uf_4 uf_14 ?x46!9)
+#2211 := (uf_18 ?x46!9)
+#2825 := (= #2211 #2212)
+#2208 := (uf_6 uf_17 ?x46!9)
+#2209 := (= uf_8 #2208)
+#2210 := (not #2209)
+#2831 := (or #2210 #2825)
+#2836 := (not #2831)
+#4577 := (or #2836 #4574)
+#4580 := (not #4577)
+#1480 := (* -1::int #158)
+#1481 := (+ #110 #1480)
+#1479 := (>= #1481 0::int)
+#4472 := (forall (vars (?x45 T2)) (:pat #4403 #4454) #1479)
+#4477 := (not #4472)
+#4583 := (or #4477 #4580)
+#4586 := (not #4583)
+decl ?x45!8 :: T2
+#2189 := ?x45!8
+#2192 := (uf_4 uf_14 ?x45!8)
+#2815 := (* -1::int #2192)
+#2190 := (uf_18 ?x45!8)
+#2816 := (+ #2190 #2815)
+#2817 := (<= #2816 0::int)
+#2822 := (not #2817)
+#4589 := (or #2822 #4586)
+#4592 := (not #4589)
+decl uf_16 :: T2
+#140 := uf_16
+#152 := (uf_1 uf_16 #11)
+#4455 := (pattern #152)
+#153 := (uf_10 #152)
+#1623 := (+ #153 #1480)
+#144 := (uf_4 uf_14 uf_16)
+#1624 := (+ #144 #1623)
+#1625 := (= #1624 0::int)
+#1450 := (* -1::int #153)
+#1457 := (+ uf_9 #1450)
+#1458 := (<= #1457 0::int)
+#1449 := (* -1::int #144)
+#1451 := (+ #1449 #1450)
+#1452 := (+ #110 #1451)
+#1453 := (<= #1452 0::int)
+#3375 := (or #1453 #1458 #1625)
+#4464 := (forall (vars (?x43 T2)) (:pat #4403 #4455 #4454) #3375)
+#4469 := (not #4464)
+#3355 := (or #1453 #1458)
+#3356 := (not #3355)
+#3359 := (or #616 #3356)
+#4456 := (forall (vars (?x44 T2)) (:pat #4403 #4454 #4455) #3359)
+#4461 := (not #4456)
+decl ?x41!16 :: T2
+#2408 := ?x41!16
+#2414 := (uf_6 uf_15 ?x41!16)
+#2415 := (= uf_8 #2414)
+#2409 := (uf_4 uf_14 ?x41!16)
+#2410 := (* -1::int #2409)
+#2411 := (+ uf_9 #2410)
+#2412 := (<= #2411 0::int)
+#1655 := (+ uf_9 #1449)
+#1656 := (<= #1655 0::int)
+#1638 := (+ #110 #1449)
+#1637 := (>= #1638 0::int)
+#1644 := (or #505 #1637)
+#4446 := (forall (vars (?x42 T2)) (:pat #4445 #4403) #1644)
+#4451 := (not #4446)
+#141 := (uf_6 uf_15 uf_16)
+#585 := (= uf_8 #141)
+decl uf_7 :: (-> T4 T2 T5 T4)
+#150 := (uf_7 uf_15 uf_16 uf_8)
+#151 := (= uf_17 #150)
+#876 := (not #151)
+#4595 := (or #876 #585 #4451 #1656 #2412 #2415 #4461 #4469 #4592)
+#4598 := (not #4595)
+#4671 := (or #4598 #4668)
+#4674 := (not #4671)
+#2152 := (?x40!7 #11)
+#2155 := (uf_1 #2152 #11)
+#2156 := (uf_10 #2155)
+#2790 := (* -1::int #2156)
+#2153 := (uf_4 uf_14 #2152)
+#2773 := (* -1::int #2153)
+#2791 := (+ #2773 #2790)
+#2792 := (+ #110 #2791)
+#2793 := (= #2792 0::int)
+#3339 := (not #2793)
+#2774 := (+ #110 #2773)
+#2775 := (<= #2774 0::int)
+#2161 := (uf_6 uf_15 #2152)
+#2162 := (= uf_8 #2161)
+#3338 := (not #2162)
+#3340 := (or #3338 #2775 #3339)
+#3341 := (not #3340)
+#3347 := (or #68 #1406 #3341)
+#4437 := (forall (vars (?x39 T2)) (:pat #4403) #3347)
+#4442 := (not #4437)
+decl uf_12 :: (-> T2 int)
+#69 := (uf_12 #11)
+#4355 := (pattern #69)
+decl ?x33!6 :: (-> T2 T2)
+#2123 := (?x33!6 #11)
+#2127 := (uf_12 #2123)
+#2728 := (* -1::int #2127)
+#2124 := (uf_1 #2123 #11)
+#2125 := (uf_10 #2124)
+#2745 := (* -1::int #2125)
+#2746 := (+ #2745 #2728)
+#2747 := (+ #69 #2746)
+#2748 := (= #2747 0::int)
+#3311 := (not #2748)
+#2729 := (+ #69 #2728)
+#2730 := (<= #2729 0::int)
+decl up_13 :: (-> T2 bool)
+#2133 := (up_13 #2123)
+#3310 := (not #2133)
+#3312 := (or #3310 #2730 #3311)
+#3313 := (not #3312)
+#1386 := (* -1::int #69)
+#1387 := (+ uf_9 #1386)
+#1388 := (<= #1387 0::int)
+#3319 := (or #68 #1388 #3313)
+#4429 := (forall (vars (?x32 T2)) (:pat #4355) #3319)
+#4434 := (not #4429)
+#114 := (uf_6 uf_15 #10)
+#4420 := (pattern #114 #116)
+#120 := (uf_4 uf_14 #10)
+#1417 := (* -1::int #120)
+#1418 := (+ #110 #1417)
+#1416 := (>= #1418 0::int)
+#502 := (= uf_8 #114)
+#3276 := (not #502)
+#3291 := (or #3276 #505 #1416)
+#4421 := (forall (vars (?x35 T2) (?x36 T2)) (:pat #4420) #3291)
+#4426 := (not #4421)
+#1424 := (+ #91 #1418)
+#1815 := (>= #1424 0::int)
+#508 := (not #505)
+#3268 := (or #508 #1347 #1815)
+#4412 := (forall (vars (?x37 T2) (?x38 T2)) (:pat #4379) #3268)
+#4417 := (not #4412)
+#4409 := (not #4404)
+#108 := (uf_4 uf_14 uf_11)
+#109 := (= #108 0::int)
+#1854 := (not #109)
+#4677 := (or #1854 #4409 #4417 #4426 #4434 #4442 #4674)
+#4680 := (not #4677)
+decl ?x32!5 :: T2
+#2081 := ?x32!5
+#2091 := (uf_1 #11 ?x32!5)
+#4388 := (pattern #2091)
+#77 := (up_13 #11)
+#4348 := (pattern #77)
+#2082 := (uf_12 ?x32!5)
+#2083 := (* -1::int #2082)
+#2096 := (+ #69 #2083)
+#2097 := (>= #2096 0::int)
+#2092 := (uf_10 #2091)
+#2093 := (+ #2083 #2092)
+#2094 := (+ #69 #2093)
+#2095 := (= #2094 0::int)
+#3229 := (not #2095)
+#78 := (not #77)
+#3230 := (or #78 #3229 #2097)
+#4389 := (forall (vars (?x33 T2)) (:pat #4348 #4355 #4388) #3230)
+#4394 := (not #4389)
+#2688 := (= uf_11 ?x32!5)
+#2084 := (+ uf_9 #2083)
+#2085 := (<= #2084 0::int)
+#4397 := (or #2085 #2688 #4394)
+#4400 := (not #4397)
+#4683 := (or #4400 #4680)
+#4686 := (not #4683)
+#86 := (uf_12 #10)
+#1323 := (* -1::int #86)
+#1344 := (+ #1323 #91)
+#1345 := (+ #69 #1344)
+#1342 := (>= #1345 0::int)
+#3221 := (or #78 #1342 #1347)
+#4380 := (forall (vars (?x30 T2) (?x31 T2)) (:pat #4379) #3221)
+#4385 := (not #4380)
+#4689 := (or #4385 #4686)
+#4692 := (not #4689)
+decl ?x31!3 :: T2
+#2051 := ?x31!3
+#2065 := (uf_12 ?x31!3)
+decl ?x30!4 :: T2
+#2052 := ?x30!4
+#2062 := (uf_12 ?x30!4)
+#2063 := (* -1::int #2062)
+#2660 := (+ #2063 #2065)
+#2053 := (uf_1 ?x31!3 ?x30!4)
+#2054 := (uf_10 #2053)
+#2661 := (+ #2054 #2660)
+#2664 := (>= #2661 0::int)
+#2059 := (up_13 ?x31!3)
+#3184 := (not #2059)
+#2055 := (* -1::int #2054)
+#2056 := (+ uf_9 #2055)
+#2057 := (<= #2056 0::int)
+#3199 := (or #2057 #3184 #2664)
+#3204 := (not #3199)
+#4695 := (or #3204 #4692)
+#4698 := (not #4695)
+#84 := (up_13 #10)
+#4370 := (pattern #77 #84)
+#1324 := (+ #69 #1323)
+#1322 := (>= #1324 0::int)
+#2632 := (not #84)
+#3176 := (or #77 #2632 #1322)
+#4371 := (forall (vars (?x28 T2) (?x29 T2)) (:pat #4370) #3176)
+#4376 := (not #4371)
+#4701 := (or #4376 #4698)
+#4704 := (not #4701)
+decl ?x29!1 :: T2
+#2026 := ?x29!1
+#2030 := (uf_12 ?x29!1)
+#2647 := (* -1::int #2030)
+decl ?x28!2 :: T2
+#2027 := ?x28!2
+#2028 := (uf_12 ?x28!2)
+#2648 := (+ #2028 #2647)
+#2649 := (<= #2648 0::int)
+#2034 := (up_13 ?x29!1)
+#2033 := (up_13 ?x28!2)
+#2266 := (not #2033)
+#2166 := (or #2266 #2034 #2649)
+#6004 := [hypothesis]: #2033
+#4349 := (forall (vars (?x26 T2)) (:pat #4348) #78)
+#79 := (forall (vars (?x26 T2)) #78)
+#4352 := (iff #79 #4349)
+#4350 := (iff #78 #78)
+#4351 := [refl]: #4350
+#4353 := [quant-intro #4351]: #4352
+#1965 := (~ #79 #79)
+#2002 := (~ #78 #78)
+#2003 := [refl]: #2002
+#1966 := [nnf-pos #2003]: #1965
+#70 := (= #69 0::int)
+#73 := (not #68)
+#1912 := (or #73 #70)
+#1915 := (forall (vars (?x24 T2)) #1912)
+#1918 := (not #1915)
+#1846 := (forall (vars (?x34 T2)) #1843)
+#1849 := (not #1846)
+#511 := (and #502 #508)
+#517 := (not #511)
+#1832 := (or #517 #1416)
+#1837 := (forall (vars (?x35 T2) (?x36 T2)) #1832)
+#1840 := (not #1837)
+#1348 := (not #1347)
+#1807 := (and #505 #1348)
+#1812 := (not #1807)
+#1818 := (or #1812 #1815)
+#1821 := (forall (vars (?x37 T2) (?x38 T2)) #1818)
+#1824 := (not #1821)
+#1710 := (not #1709)
+#1744 := (and #1348 #1710)
+#1747 := (not #1744)
+#1753 := (or #1747 #1750)
+#1756 := (forall (vars (?x66 T2) (?x67 T2)) #1753)
+#1759 := (not #1756)
+#1767 := (or #251 #1759)
+#1772 := (and #1756 #1767)
+#1725 := (= #1727 0::int)
+#1719 := (>= #1721 0::int)
+#1722 := (not #1719)
+#1729 := (and #1722 #1725)
+#1732 := (exists (vars (?x65 T2)) #1729)
+#1713 := (and #73 #1710)
+#1716 := (not #1713)
+#1735 := (or #1716 #1732)
+#1738 := (forall (vars (?x64 T2)) #1735)
+#1741 := (not #1738)
+#1775 := (or #1741 #1772)
+#1778 := (and #1738 #1775)
+#1407 := (not #1406)
+#1670 := (and #508 #1407)
+#1675 := (exists (vars (?x41 T2)) #1670)
+#1796 := (or #1062 #1044 #1071 #1053 #1675 #1778)
+#1678 := (not #1675)
+#1649 := (forall (vars (?x42 T2)) #1644)
+#1652 := (not #1649)
+#1459 := (not #1458)
+#1454 := (not #1453)
+#1462 := (and #1454 #1459)
+#1620 := (not #1462)
+#1628 := (or #1620 #1625)
+#1631 := (forall (vars (?x43 T2)) #1628)
+#1634 := (not #1631)
+#1561 := (= #1536 0::int)
+#1558 := (not #1504)
+#1570 := (and #630 #1558 #1561)
+#1575 := (exists (vars (?x53 T2)) #1570)
+#1547 := (+ uf_9 #1480)
+#1548 := (<= #1547 0::int)
+#1549 := (not #1548)
+#1552 := (and #73 #1549)
+#1555 := (not #1552)
+#1578 := (or #1555 #1575)
+#1581 := (forall (vars (?x52 T2)) #1578)
+#1526 := (and #630 #1348)
+#1531 := (not #1526)
+#1538 := (or #1531 #1534)
+#1541 := (forall (vars (?x50 T2) (?x51 T2)) #1538)
+#1544 := (not #1541)
+#1584 := (or #1544 #1581)
+#1587 := (and #1541 #1584)
+#656 := (and #636 #648)
+#664 := (not #656)
+#1512 := (or #664 #1504)
+#1517 := (forall (vars (?x48 T2) (?x49 T2)) #1512)
+#1520 := (not #1517)
+#1590 := (or #1520 #1587)
+#1593 := (and #1517 #1590)
+#1498 := (forall (vars (?x47 T2)) #1495)
+#1501 := (not #1498)
+#1596 := (or #1501 #1593)
+#1599 := (and #1498 #1596)
+#1602 := (or #1492 #1599)
+#1605 := (and #173 #1602)
+#642 := (forall (vars (?x46 T2)) #637)
+#824 := (not #642)
+#1608 := (or #824 #1605)
+#1611 := (and #642 #1608)
+#1484 := (forall (vars (?x45 T2)) #1479)
+#1487 := (not #1484)
+#1614 := (or #1487 #1611)
+#1617 := (and #1484 #1614)
+#1468 := (or #616 #1462)
+#1473 := (forall (vars (?x44 T2)) #1468)
+#1476 := (not #1473)
+#1702 := (or #876 #585 #1476 #1617 #1634 #1652 #1656 #1678)
+#1801 := (and #1702 #1796)
+#1422 := (= #1424 0::int)
+#1419 := (not #1416)
+#1432 := (and #505 #1419 #1422)
+#1437 := (exists (vars (?x40 T2)) #1432)
+#1410 := (and #73 #1407)
+#1413 := (not #1410)
+#1440 := (or #1413 #1437)
+#1443 := (forall (vars (?x39 T2)) #1440)
+#1446 := (not #1443)
+#1389 := (not #1388)
+#1392 := (and #73 #1389)
+#1395 := (not #1392)
+#1370 := (= #1345 0::int)
+#1366 := (not #1322)
+#1378 := (and #77 #1366 #1370)
+#1383 := (exists (vars (?x33 T2)) #1378)
+#1398 := (or #1383 #1395)
+#1401 := (forall (vars (?x32 T2)) #1398)
+#1857 := (not #1401)
+#1878 := (or #1854 #1857 #1446 #1801 #1824 #1840 #1849)
+#1883 := (and #1401 #1878)
+#1351 := (and #77 #1348)
+#1354 := (not #1351)
+#1357 := (or #1342 #1354)
+#1360 := (forall (vars (?x30 T2) (?x31 T2)) #1357)
+#1363 := (not #1360)
+#1886 := (or #1363 #1883)
+#1889 := (and #1360 #1886)
+#454 := (and #78 #84)
+#460 := (not #454)
+#1329 := (or #460 #1322)
+#1334 := (forall (vars (?x28 T2) (?x29 T2)) #1329)
+#1337 := (not #1334)
+#1892 := (or #1337 #1889)
+#1895 := (and #1334 #1892)
+#1313 := (>= #69 0::int)
+#1314 := (forall (vars (?x27 T2)) #1313)
+#1317 := (not #1314)
+#1898 := (or #1317 #1895)
+#1901 := (and #1314 #1898)
+#80 := (uf_12 uf_11)
+#81 := (= #80 0::int)
+#1308 := (not #81)
+#1904 := (or #1308 #1901)
+#1907 := (and #81 #1904)
+#437 := (= uf_9 #69)
+#443 := (or #68 #437)
+#448 := (forall (vars (?x25 T2)) #443)
+#1277 := (not #448)
+#1268 := (not #79)
+#1930 := (or #1268 #1277 #1907 #1918)
+#1935 := (not #1930)
+#82 := (<= 0::int #69)
+#83 := (forall (vars (?x27 T2)) #82)
+#87 := (<= #86 #69)
+#85 := (and #84 #78)
+#88 := (implies #85 #87)
+#89 := (forall (vars (?x28 T2) (?x29 T2)) #88)
+#94 := (+ #69 #91)
+#95 := (<= #86 #94)
+#92 := (< #91 uf_9)
+#93 := (and #92 #77)
+#96 := (implies #93 #95)
+#97 := (forall (vars (?x30 T2) (?x31 T2)) #96)
+#101 := (< #69 #86)
+#102 := (and #77 #101)
+#100 := (= #86 #94)
+#103 := (and #100 #102)
+#104 := (exists (vars (?x33 T2)) #103)
+#98 := (< #69 uf_9)
+#99 := (and #98 #73)
+#105 := (implies #99 #104)
+#106 := (forall (vars (?x32 T2)) #105)
+#241 := (< #235 #238)
+#239 := (+ #235 #91)
+#240 := (= #238 #239)
+#242 := (and #240 #241)
+#243 := (exists (vars (?x65 T2)) #242)
+#236 := (< #235 uf_9)
+#237 := (and #236 #73)
+#244 := (implies #237 #243)
+#245 := (forall (vars (?x64 T2)) #244)
+#247 := (<= #238 #239)
+#246 := (and #92 #236)
+#248 := (implies #246 #247)
+#249 := (forall (vars (?x66 T2) (?x67 T2)) #248)
+#1 := true
+#252 := (implies #251 true)
+#253 := (and #252 #251)
+#254 := (implies #249 #253)
+#255 := (and #254 #249)
+#256 := (implies #245 #255)
+#257 := (and #256 #245)
+#258 := (implies true #257)
+#259 := (implies #234 #258)
+#231 := (= uf_22 uf_14)
+#260 := (implies #231 #259)
+#261 := (implies #229 #260)
+#226 := (= uf_19 uf_15)
+#262 := (implies #226 #261)
+#263 := (implies true #262)
+#264 := (implies true #263)
+#117 := (= #116 uf_8)
+#118 := (not #117)
+#129 := (< #110 uf_9)
+#138 := (and #129 #118)
+#139 := (exists (vars (?x41 T2)) #138)
+#224 := (not #139)
+#265 := (implies #224 #264)
+#266 := (implies true #265)
+#267 := (implies true #266)
+#166 := (<= #158 #110)
+#167 := (forall (vars (?x45 T2)) #166)
+#163 := (= #158 #110)
+#169 := (= #168 uf_8)
+#170 := (implies #169 #163)
+#171 := (forall (vars (?x46 T2)) #170)
+#174 := (<= 0::int #158)
+#175 := (forall (vars (?x47 T2)) #174)
+#181 := (<= #180 #158)
+#178 := (not #169)
+#177 := (= #176 uf_8)
+#179 := (and #177 #178)
+#182 := (implies #179 #181)
+#183 := (forall (vars (?x48 T2) (?x49 T2)) #182)
+#185 := (+ #158 #91)
+#186 := (<= #180 #185)
+#184 := (and #92 #169)
+#187 := (implies #184 #186)
+#188 := (forall (vars (?x50 T2) (?x51 T2)) #187)
+#192 := (< #158 #180)
+#193 := (and #169 #192)
+#191 := (= #180 #185)
+#194 := (and #191 #193)
+#195 := (exists (vars (?x53 T2)) #194)
+#189 := (< #158 uf_9)
+#190 := (and #189 #73)
+#196 := (implies #190 #195)
+#197 := (forall (vars (?x52 T2)) #196)
+#198 := (implies false true)
+#199 := (implies #197 #198)
+#200 := (and #199 #197)
+#201 := (implies #188 #200)
+#202 := (and #201 #188)
+#203 := (implies #183 #202)
+#204 := (and #203 #183)
+#205 := (implies #175 #204)
+#206 := (and #205 #175)
+#207 := (implies #173 #206)
+#208 := (and #207 #173)
+#209 := (implies true #208)
+#210 := (implies true #209)
+#211 := (implies #171 #210)
+#212 := (and #211 #171)
+#213 := (implies #167 #212)
+#214 := (and #213 #167)
+#156 := (< #153 uf_9)
+#154 := (+ #144 #153)
+#155 := (< #154 #110)
+#157 := (and #155 #156)
+#162 := (not #157)
+#164 := (implies #162 #163)
+#165 := (forall (vars (?x44 T2)) #164)
+#215 := (implies #165 #214)
+#159 := (= #158 #154)
+#160 := (implies #157 #159)
+#161 := (forall (vars (?x43 T2)) #160)
+#216 := (implies #161 #215)
+#217 := (implies #151 #216)
+#146 := (<= #144 #110)
+#147 := (implies #118 #146)
+#148 := (forall (vars (?x42 T2)) #147)
+#218 := (implies #148 #217)
+#145 := (< #144 uf_9)
+#219 := (implies #145 #218)
+#142 := (= #141 uf_8)
+#143 := (not #142)
+#220 := (implies #143 #219)
+#221 := (implies #139 #220)
+#222 := (implies true #221)
+#223 := (implies true #222)
+#268 := (and #223 #267)
+#269 := (implies true #268)
+#132 := (< #110 #120)
+#133 := (and #117 #132)
+#125 := (+ #110 #91)
+#131 := (= #120 #125)
+#134 := (and #131 #133)
+#135 := (exists (vars (?x40 T2)) #134)
+#130 := (and #129 #73)
+#136 := (implies #130 #135)
+#137 := (forall (vars (?x39 T2)) #136)
+#270 := (implies #137 #269)
+#126 := (<= #120 #125)
+#124 := (and #92 #117)
+#127 := (implies #124 #126)
+#128 := (forall (vars (?x37 T2) (?x38 T2)) #127)
+#271 := (implies #128 #270)
+#121 := (<= #120 #110)
+#115 := (= #114 uf_8)
+#119 := (and #115 #118)
+#122 := (implies #119 #121)
+#123 := (forall (vars (?x35 T2) (?x36 T2)) #122)
+#272 := (implies #123 #271)
+#111 := (<= 0::int #110)
+#112 := (forall (vars (?x34 T2)) #111)
+#273 := (implies #112 #272)
+#274 := (implies #109 #273)
+#275 := (implies true #274)
+#276 := (implies true #275)
+#277 := (implies #106 #276)
+#278 := (and #277 #106)
+#279 := (implies #97 #278)
+#280 := (and #279 #97)
+#281 := (implies #89 #280)
+#282 := (and #281 #89)
+#283 := (implies #83 #282)
+#284 := (and #283 #83)
+#285 := (implies #81 #284)
+#286 := (and #285 #81)
+#287 := (implies true #286)
+#288 := (implies #79 #287)
+#74 := (= #69 uf_9)
+#75 := (implies #73 #74)
+#76 := (forall (vars (?x25 T2)) #75)
+#289 := (implies #76 #288)
+#71 := (implies #68 #70)
+#72 := (forall (vars (?x24 T2)) #71)
+#290 := (implies #72 #289)
+#291 := (implies true #290)
+#292 := (implies true #291)
+#293 := (not #292)
+#1938 := (iff #293 #1935)
+#983 := (= 0::int #250)
+#939 := (+ #91 #235)
+#968 := (<= #238 #939)
+#974 := (not #246)
+#975 := (or #974 #968)
+#980 := (forall (vars (?x66 T2) (?x67 T2)) #975)
+#1003 := (not #980)
+#1004 := (or #1003 #983)
+#1012 := (and #980 #1004)
+#942 := (= #238 #939)
+#948 := (and #241 #942)
+#953 := (exists (vars (?x65 T2)) #948)
+#936 := (and #73 #236)
+#959 := (not #936)
+#960 := (or #959 #953)
+#965 := (forall (vars (?x64 T2)) #960)
+#1020 := (not #965)
+#1021 := (or #1020 #1012)
+#1029 := (and #965 #1021)
+#1045 := (or #1044 #1029)
+#1054 := (or #1053 #1045)
+#1063 := (or #1062 #1054)
+#1072 := (or #1071 #1063)
+#579 := (and #129 #508)
+#582 := (exists (vars (?x41 T2)) #579)
+#1091 := (or #582 #1072)
+#703 := (and #192 #630)
+#676 := (+ #91 #158)
+#697 := (= #180 #676)
+#708 := (and #697 #703)
+#711 := (exists (vars (?x53 T2)) #708)
+#694 := (and #73 #189)
+#717 := (not #694)
+#718 := (or #717 #711)
+#723 := (forall (vars (?x52 T2)) #718)
+#679 := (<= #180 #676)
+#673 := (and #92 #630)
+#685 := (not #673)
+#686 := (or #685 #679)
+#691 := (forall (vars (?x50 T2) (?x51 T2)) #686)
+#745 := (not #691)
+#746 := (or #745 #723)
+#754 := (and #691 #746)
+#665 := (or #181 #664)
+#670 := (forall (vars (?x48 T2) (?x49 T2)) #665)
+#762 := (not #670)
+#763 := (or #762 #754)
+#771 := (and #670 #763)
+#779 := (not #175)
+#780 := (or #779 #771)
+#788 := (and #175 #780)
+#645 := (= 0::int #172)
+#796 := (not #645)
+#797 := (or #796 #788)
+#805 := (and #645 #797)
+#825 := (or #824 #805)
+#833 := (and #642 #825)
+#841 := (not #167)
+#842 := (or #841 #833)
+#850 := (and #167 #842)
+#622 := (or #157 #616)
+#627 := (forall (vars (?x44 T2)) #622)
+#858 := (not #627)
+#859 := (or #858 #850)
+#602 := (= #154 #158)
+#608 := (or #162 #602)
+#613 := (forall (vars (?x43 T2)) #608)
+#867 := (not #613)
+#868 := (or #867 #859)
+#877 := (or #876 #868)
+#594 := (or #146 #505)
+#599 := (forall (vars (?x42 T2)) #594)
+#885 := (not #599)
+#886 := (or #885 #877)
+#894 := (not #145)
+#895 := (or #894 #886)
+#903 := (or #585 #895)
+#911 := (not #582)
+#912 := (or #911 #903)
+#1107 := (and #912 #1091)
+#556 := (and #132 #505)
+#529 := (+ #91 #110)
+#550 := (= #120 #529)
+#561 := (and #550 #556)
+#564 := (exists (vars (?x40 T2)) #561)
+#547 := (and #73 #129)
+#570 := (not #547)
+#571 := (or #570 #564)
+#576 := (forall (vars (?x39 T2)) #571)
+#1120 := (not #576)
+#1121 := (or #1120 #1107)
+#532 := (<= #120 #529)
+#526 := (and #92 #505)
+#538 := (not #526)
+#539 := (or #538 #532)
+#544 := (forall (vars (?x37 T2) (?x38 T2)) #539)
+#1129 := (not #544)
+#1130 := (or #1129 #1121)
+#518 := (or #121 #517)
+#523 := (forall (vars (?x35 T2) (?x36 T2)) #518)
+#1138 := (not #523)
+#1139 := (or #1138 #1130)
+#1147 := (not #112)
+#1148 := (or #1147 #1139)
+#499 := (= 0::int #108)
+#1156 := (not #499)
+#1157 := (or #1156 #1148)
+#484 := (and #73 #98)
+#490 := (not #484)
+#491 := (or #104 #490)
+#496 := (forall (vars (?x32 T2)) #491)
+#1176 := (not #496)
+#1177 := (or #1176 #1157)
+#1185 := (and #496 #1177)
+#469 := (and #77 #92)
+#475 := (not #469)
+#476 := (or #95 #475)
+#481 := (forall (vars (?x30 T2) (?x31 T2)) #476)
+#1193 := (not #481)
+#1194 := (or #1193 #1185)
+#1202 := (and #481 #1194)
+#461 := (or #87 #460)
+#466 := (forall (vars (?x28 T2) (?x29 T2)) #461)
+#1210 := (not #466)
+#1211 := (or #1210 #1202)
+#1219 := (and #466 #1211)
+#1227 := (not #83)
+#1228 := (or #1227 #1219)
+#1236 := (and #83 #1228)
+#451 := (= 0::int #80)
+#1244 := (not #451)
+#1245 := (or #1244 #1236)
+#1253 := (and #451 #1245)
+#1269 := (or #1268 #1253)
+#1278 := (or #1277 #1269)
+#423 := (= 0::int #69)
+#429 := (or #73 #423)
+#434 := (forall (vars (?x24 T2)) #429)
+#1286 := (not #434)
+#1287 := (or #1286 #1278)
+#1303 := (not #1287)
+#1936 := (iff #1303 #1935)
+#1933 := (iff #1287 #1930)
+#1921 := (or #1268 #1907)
+#1924 := (or #1277 #1921)
+#1927 := (or #1918 #1924)
+#1931 := (iff #1927 #1930)
+#1932 := [rewrite]: #1931
+#1928 := (iff #1287 #1927)
+#1925 := (iff #1278 #1924)
+#1922 := (iff #1269 #1921)
+#1908 := (iff #1253 #1907)
+#1905 := (iff #1245 #1904)
+#1902 := (iff #1236 #1901)
+#1899 := (iff #1228 #1898)
+#1896 := (iff #1219 #1895)
+#1893 := (iff #1211 #1892)
+#1890 := (iff #1202 #1889)
+#1887 := (iff #1194 #1886)
+#1884 := (iff #1185 #1883)
+#1881 := (iff #1177 #1878)
+#1860 := (or #1446 #1801)
+#1863 := (or #1824 #1860)
+#1866 := (or #1840 #1863)
+#1869 := (or #1849 #1866)
+#1872 := (or #1854 #1869)
+#1875 := (or #1857 #1872)
+#1879 := (iff #1875 #1878)
+#1880 := [rewrite]: #1879
+#1876 := (iff #1177 #1875)
+#1873 := (iff #1157 #1872)
+#1870 := (iff #1148 #1869)
+#1867 := (iff #1139 #1866)
+#1864 := (iff #1130 #1863)
+#1861 := (iff #1121 #1860)
+#1802 := (iff #1107 #1801)
+#1799 := (iff #1091 #1796)
+#1781 := (or #1044 #1778)
+#1784 := (or #1053 #1781)
+#1787 := (or #1062 #1784)
+#1790 := (or #1071 #1787)
+#1793 := (or #1675 #1790)
+#1797 := (iff #1793 #1796)
+#1798 := [rewrite]: #1797
+#1794 := (iff #1091 #1793)
+#1791 := (iff #1072 #1790)
+#1788 := (iff #1063 #1787)
+#1785 := (iff #1054 #1784)
+#1782 := (iff #1045 #1781)
+#1779 := (iff #1029 #1778)
+#1776 := (iff #1021 #1775)
+#1773 := (iff #1012 #1772)
+#1770 := (iff #1004 #1767)
+#1764 := (or #1759 #251)
+#1768 := (iff #1764 #1767)
+#1769 := [rewrite]: #1768
+#1765 := (iff #1004 #1764)
+#1762 := (iff #983 #251)
+#1763 := [rewrite]: #1762
+#1760 := (iff #1003 #1759)
+#1757 := (iff #980 #1756)
+#1754 := (iff #975 #1753)
+#1751 := (iff #968 #1750)
+#1752 := [rewrite]: #1751
+#1748 := (iff #974 #1747)
+#1745 := (iff #246 #1744)
+#1711 := (iff #236 #1710)
+#1712 := [rewrite]: #1711
+#1349 := (iff #92 #1348)
+#1350 := [rewrite]: #1349
+#1746 := [monotonicity #1350 #1712]: #1745
+#1749 := [monotonicity #1746]: #1748
+#1755 := [monotonicity #1749 #1752]: #1754
+#1758 := [quant-intro #1755]: #1757
+#1761 := [monotonicity #1758]: #1760
+#1766 := [monotonicity #1761 #1763]: #1765
+#1771 := [trans #1766 #1769]: #1770
+#1774 := [monotonicity #1758 #1771]: #1773
+#1742 := (iff #1020 #1741)
+#1739 := (iff #965 #1738)
+#1736 := (iff #960 #1735)
+#1733 := (iff #953 #1732)
+#1730 := (iff #948 #1729)
+#1726 := (iff #942 #1725)
+#1728 := [rewrite]: #1726
+#1723 := (iff #241 #1722)
+#1724 := [rewrite]: #1723
+#1731 := [monotonicity #1724 #1728]: #1730
+#1734 := [quant-intro #1731]: #1733
+#1717 := (iff #959 #1716)
+#1714 := (iff #936 #1713)
+#1715 := [monotonicity #1712]: #1714
+#1718 := [monotonicity #1715]: #1717
+#1737 := [monotonicity #1718 #1734]: #1736
+#1740 := [quant-intro #1737]: #1739
+#1743 := [monotonicity #1740]: #1742
+#1777 := [monotonicity #1743 #1774]: #1776
+#1780 := [monotonicity #1740 #1777]: #1779
+#1783 := [monotonicity #1780]: #1782
+#1786 := [monotonicity #1783]: #1785
+#1789 := [monotonicity #1786]: #1788
+#1792 := [monotonicity #1789]: #1791
+#1676 := (iff #582 #1675)
+#1673 := (iff #579 #1670)
+#1667 := (and #1407 #508)
+#1671 := (iff #1667 #1670)
+#1672 := [rewrite]: #1671
+#1668 := (iff #579 #1667)
+#1408 := (iff #129 #1407)
+#1409 := [rewrite]: #1408
+#1669 := [monotonicity #1409]: #1668
+#1674 := [trans #1669 #1672]: #1673
+#1677 := [quant-intro #1674]: #1676
+#1795 := [monotonicity #1677 #1792]: #1794
+#1800 := [trans #1795 #1798]: #1799
+#1705 := (iff #912 #1702)
+#1681 := (or #1476 #1617)
+#1684 := (or #1634 #1681)
+#1687 := (or #876 #1684)
+#1690 := (or #1652 #1687)
+#1693 := (or #1656 #1690)
+#1696 := (or #585 #1693)
+#1699 := (or #1678 #1696)
+#1703 := (iff #1699 #1702)
+#1704 := [rewrite]: #1703
+#1700 := (iff #912 #1699)
+#1697 := (iff #903 #1696)
+#1694 := (iff #895 #1693)
+#1691 := (iff #886 #1690)
+#1688 := (iff #877 #1687)
+#1685 := (iff #868 #1684)
+#1682 := (iff #859 #1681)
+#1618 := (iff #850 #1617)
+#1615 := (iff #842 #1614)
+#1612 := (iff #833 #1611)
+#1609 := (iff #825 #1608)
+#1606 := (iff #805 #1605)
+#1603 := (iff #797 #1602)
+#1600 := (iff #788 #1599)
+#1597 := (iff #780 #1596)
+#1594 := (iff #771 #1593)
+#1591 := (iff #763 #1590)
+#1588 := (iff #754 #1587)
+#1585 := (iff #746 #1584)
+#1582 := (iff #723 #1581)
+#1579 := (iff #718 #1578)
+#1576 := (iff #711 #1575)
+#1573 := (iff #708 #1570)
+#1564 := (and #1558 #630)
+#1567 := (and #1561 #1564)
+#1571 := (iff #1567 #1570)
+#1572 := [rewrite]: #1571
+#1568 := (iff #708 #1567)
+#1565 := (iff #703 #1564)
+#1559 := (iff #192 #1558)
+#1560 := [rewrite]: #1559
+#1566 := [monotonicity #1560]: #1565
+#1562 := (iff #697 #1561)
+#1563 := [rewrite]: #1562
+#1569 := [monotonicity #1563 #1566]: #1568
+#1574 := [trans #1569 #1572]: #1573
+#1577 := [quant-intro #1574]: #1576
+#1556 := (iff #717 #1555)
+#1553 := (iff #694 #1552)
+#1550 := (iff #189 #1549)
+#1551 := [rewrite]: #1550
+#1554 := [monotonicity #1551]: #1553
+#1557 := [monotonicity #1554]: #1556
+#1580 := [monotonicity #1557 #1577]: #1579
+#1583 := [quant-intro #1580]: #1582
+#1545 := (iff #745 #1544)
+#1542 := (iff #691 #1541)
+#1539 := (iff #686 #1538)
+#1535 := (iff #679 #1534)
+#1537 := [rewrite]: #1535
+#1532 := (iff #685 #1531)
+#1529 := (iff #673 #1526)
+#1523 := (and #1348 #630)
+#1527 := (iff #1523 #1526)
+#1528 := [rewrite]: #1527
+#1524 := (iff #673 #1523)
+#1525 := [monotonicity #1350]: #1524
+#1530 := [trans #1525 #1528]: #1529
+#1533 := [monotonicity #1530]: #1532
+#1540 := [monotonicity #1533 #1537]: #1539
+#1543 := [quant-intro #1540]: #1542
+#1546 := [monotonicity #1543]: #1545
+#1586 := [monotonicity #1546 #1583]: #1585
+#1589 := [monotonicity #1543 #1586]: #1588
+#1521 := (iff #762 #1520)
+#1518 := (iff #670 #1517)
+#1515 := (iff #665 #1512)
+#1509 := (or #1504 #664)
+#1513 := (iff #1509 #1512)
+#1514 := [rewrite]: #1513
+#1510 := (iff #665 #1509)
+#1507 := (iff #181 #1504)
+#1508 := [rewrite]: #1507
+#1511 := [monotonicity #1508]: #1510
+#1516 := [trans #1511 #1514]: #1515
+#1519 := [quant-intro #1516]: #1518
+#1522 := [monotonicity #1519]: #1521
+#1592 := [monotonicity #1522 #1589]: #1591
+#1595 := [monotonicity #1519 #1592]: #1594
+#1502 := (iff #779 #1501)
+#1499 := (iff #175 #1498)
+#1496 := (iff #174 #1495)
+#1497 := [rewrite]: #1496
+#1500 := [quant-intro #1497]: #1499
+#1503 := [monotonicity #1500]: #1502
+#1598 := [monotonicity #1503 #1595]: #1597
+#1601 := [monotonicity #1500 #1598]: #1600
+#1493 := (iff #796 #1492)
+#1490 := (iff #645 #173)
+#1491 := [rewrite]: #1490
+#1494 := [monotonicity #1491]: #1493
+#1604 := [monotonicity #1494 #1601]: #1603
+#1607 := [monotonicity #1491 #1604]: #1606
+#1610 := [monotonicity #1607]: #1609
+#1613 := [monotonicity #1610]: #1612
+#1488 := (iff #841 #1487)
+#1485 := (iff #167 #1484)
+#1482 := (iff #166 #1479)
+#1483 := [rewrite]: #1482
+#1486 := [quant-intro #1483]: #1485
+#1489 := [monotonicity #1486]: #1488
+#1616 := [monotonicity #1489 #1613]: #1615
+#1619 := [monotonicity #1486 #1616]: #1618
+#1477 := (iff #858 #1476)
+#1474 := (iff #627 #1473)
+#1471 := (iff #622 #1468)
+#1465 := (or #1462 #616)
+#1469 := (iff #1465 #1468)
+#1470 := [rewrite]: #1469
+#1466 := (iff #622 #1465)
+#1463 := (iff #157 #1462)
+#1460 := (iff #156 #1459)
+#1461 := [rewrite]: #1460
+#1455 := (iff #155 #1454)
+#1456 := [rewrite]: #1455
+#1464 := [monotonicity #1456 #1461]: #1463
+#1467 := [monotonicity #1464]: #1466
+#1472 := [trans #1467 #1470]: #1471
+#1475 := [quant-intro #1472]: #1474
+#1478 := [monotonicity #1475]: #1477
+#1683 := [monotonicity #1478 #1619]: #1682
+#1635 := (iff #867 #1634)
+#1632 := (iff #613 #1631)
+#1629 := (iff #608 #1628)
+#1626 := (iff #602 #1625)
+#1627 := [rewrite]: #1626
+#1621 := (iff #162 #1620)
+#1622 := [monotonicity #1464]: #1621
+#1630 := [monotonicity #1622 #1627]: #1629
+#1633 := [quant-intro #1630]: #1632
+#1636 := [monotonicity #1633]: #1635
+#1686 := [monotonicity #1636 #1683]: #1685
+#1689 := [monotonicity #1686]: #1688
+#1653 := (iff #885 #1652)
+#1650 := (iff #599 #1649)
+#1647 := (iff #594 #1644)
+#1641 := (or #1637 #505)
+#1645 := (iff #1641 #1644)
+#1646 := [rewrite]: #1645
+#1642 := (iff #594 #1641)
+#1639 := (iff #146 #1637)
+#1640 := [rewrite]: #1639
+#1643 := [monotonicity #1640]: #1642
+#1648 := [trans #1643 #1646]: #1647
+#1651 := [quant-intro #1648]: #1650
+#1654 := [monotonicity #1651]: #1653
+#1692 := [monotonicity #1654 #1689]: #1691
+#1665 := (iff #894 #1656)
+#1657 := (not #1656)
+#1660 := (not #1657)
+#1663 := (iff #1660 #1656)
+#1664 := [rewrite]: #1663
+#1661 := (iff #894 #1660)
+#1658 := (iff #145 #1657)
+#1659 := [rewrite]: #1658
+#1662 := [monotonicity #1659]: #1661
+#1666 := [trans #1662 #1664]: #1665
+#1695 := [monotonicity #1666 #1692]: #1694
+#1698 := [monotonicity #1695]: #1697
+#1679 := (iff #911 #1678)
+#1680 := [monotonicity #1677]: #1679
+#1701 := [monotonicity #1680 #1698]: #1700
+#1706 := [trans #1701 #1704]: #1705
+#1803 := [monotonicity #1706 #1800]: #1802
+#1447 := (iff #1120 #1446)
+#1444 := (iff #576 #1443)
+#1441 := (iff #571 #1440)
+#1438 := (iff #564 #1437)
+#1435 := (iff #561 #1432)
+#1426 := (and #1419 #505)
+#1429 := (and #1422 #1426)
+#1433 := (iff #1429 #1432)
+#1434 := [rewrite]: #1433
+#1430 := (iff #561 #1429)
+#1427 := (iff #556 #1426)
+#1420 := (iff #132 #1419)
+#1421 := [rewrite]: #1420
+#1428 := [monotonicity #1421]: #1427
+#1423 := (iff #550 #1422)
+#1425 := [rewrite]: #1423
+#1431 := [monotonicity #1425 #1428]: #1430
+#1436 := [trans #1431 #1434]: #1435
+#1439 := [quant-intro #1436]: #1438
+#1414 := (iff #570 #1413)
+#1411 := (iff #547 #1410)
+#1412 := [monotonicity #1409]: #1411
+#1415 := [monotonicity #1412]: #1414
+#1442 := [monotonicity #1415 #1439]: #1441
+#1445 := [quant-intro #1442]: #1444
+#1448 := [monotonicity #1445]: #1447
+#1862 := [monotonicity #1448 #1803]: #1861
+#1825 := (iff #1129 #1824)
+#1822 := (iff #544 #1821)
+#1819 := (iff #539 #1818)
+#1816 := (iff #532 #1815)
+#1817 := [rewrite]: #1816
+#1813 := (iff #538 #1812)
+#1810 := (iff #526 #1807)
+#1804 := (and #1348 #505)
+#1808 := (iff #1804 #1807)
+#1809 := [rewrite]: #1808
+#1805 := (iff #526 #1804)
+#1806 := [monotonicity #1350]: #1805
+#1811 := [trans #1806 #1809]: #1810
+#1814 := [monotonicity #1811]: #1813
+#1820 := [monotonicity #1814 #1817]: #1819
+#1823 := [quant-intro #1820]: #1822
+#1826 := [monotonicity #1823]: #1825
+#1865 := [monotonicity #1826 #1862]: #1864
+#1841 := (iff #1138 #1840)
+#1838 := (iff #523 #1837)
+#1835 := (iff #518 #1832)
+#1829 := (or #1416 #517)
+#1833 := (iff #1829 #1832)
+#1834 := [rewrite]: #1833
+#1830 := (iff #518 #1829)
+#1827 := (iff #121 #1416)
+#1828 := [rewrite]: #1827
+#1831 := [monotonicity #1828]: #1830
+#1836 := [trans #1831 #1834]: #1835
+#1839 := [quant-intro #1836]: #1838
+#1842 := [monotonicity #1839]: #1841
+#1868 := [monotonicity #1842 #1865]: #1867
+#1850 := (iff #1147 #1849)
+#1847 := (iff #112 #1846)
+#1844 := (iff #111 #1843)
+#1845 := [rewrite]: #1844
+#1848 := [quant-intro #1845]: #1847
+#1851 := [monotonicity #1848]: #1850
+#1871 := [monotonicity #1851 #1868]: #1870
+#1855 := (iff #1156 #1854)
+#1852 := (iff #499 #109)
+#1853 := [rewrite]: #1852
+#1856 := [monotonicity #1853]: #1855
+#1874 := [monotonicity #1856 #1871]: #1873
+#1858 := (iff #1176 #1857)
+#1402 := (iff #496 #1401)
+#1399 := (iff #491 #1398)
+#1396 := (iff #490 #1395)
+#1393 := (iff #484 #1392)
+#1390 := (iff #98 #1389)
+#1391 := [rewrite]: #1390
+#1394 := [monotonicity #1391]: #1393
+#1397 := [monotonicity #1394]: #1396
+#1384 := (iff #104 #1383)
+#1381 := (iff #103 #1378)
+#1372 := (and #77 #1366)
+#1375 := (and #1370 #1372)
+#1379 := (iff #1375 #1378)
+#1380 := [rewrite]: #1379
+#1376 := (iff #103 #1375)
+#1373 := (iff #102 #1372)
+#1367 := (iff #101 #1366)
+#1368 := [rewrite]: #1367
+#1374 := [monotonicity #1368]: #1373
+#1369 := (iff #100 #1370)
+#1371 := [rewrite]: #1369
+#1377 := [monotonicity #1371 #1374]: #1376
+#1382 := [trans #1377 #1380]: #1381
+#1385 := [quant-intro #1382]: #1384
+#1400 := [monotonicity #1385 #1397]: #1399
+#1403 := [quant-intro #1400]: #1402
+#1859 := [monotonicity #1403]: #1858
+#1877 := [monotonicity #1859 #1874]: #1876
+#1882 := [trans #1877 #1880]: #1881
+#1885 := [monotonicity #1403 #1882]: #1884
+#1364 := (iff #1193 #1363)
+#1361 := (iff #481 #1360)
+#1358 := (iff #476 #1357)
+#1355 := (iff #475 #1354)
+#1352 := (iff #469 #1351)
+#1353 := [monotonicity #1350]: #1352
+#1356 := [monotonicity #1353]: #1355
+#1341 := (iff #95 #1342)
+#1340 := [rewrite]: #1341
+#1359 := [monotonicity #1340 #1356]: #1358
+#1362 := [quant-intro #1359]: #1361
+#1365 := [monotonicity #1362]: #1364
+#1888 := [monotonicity #1365 #1885]: #1887
+#1891 := [monotonicity #1362 #1888]: #1890
+#1338 := (iff #1210 #1337)
+#1335 := (iff #466 #1334)
+#1332 := (iff #461 #1329)
+#1326 := (or #1322 #460)
+#1330 := (iff #1326 #1329)
+#1331 := [rewrite]: #1330
+#1327 := (iff #461 #1326)
+#1321 := (iff #87 #1322)
+#1325 := [rewrite]: #1321
+#1328 := [monotonicity #1325]: #1327
+#1333 := [trans #1328 #1331]: #1332
+#1336 := [quant-intro #1333]: #1335
+#1339 := [monotonicity #1336]: #1338
+#1894 := [monotonicity #1339 #1891]: #1893
+#1897 := [monotonicity #1336 #1894]: #1896
+#1318 := (iff #1227 #1317)
+#1315 := (iff #83 #1314)
+#1311 := (iff #82 #1313)
+#1312 := [rewrite]: #1311
+#1316 := [quant-intro #1312]: #1315
+#1319 := [monotonicity #1316]: #1318
+#1900 := [monotonicity #1319 #1897]: #1899
+#1903 := [monotonicity #1316 #1900]: #1902
+#1309 := (iff #1244 #1308)
+#1306 := (iff #451 #81)
+#1307 := [rewrite]: #1306
+#1310 := [monotonicity #1307]: #1309
+#1906 := [monotonicity #1310 #1903]: #1905
+#1909 := [monotonicity #1307 #1906]: #1908
+#1923 := [monotonicity #1909]: #1922
+#1926 := [monotonicity #1923]: #1925
+#1919 := (iff #1286 #1918)
+#1916 := (iff #434 #1915)
+#1913 := (iff #429 #1912)
+#1910 := (iff #423 #70)
+#1911 := [rewrite]: #1910
+#1914 := [monotonicity #1911]: #1913
+#1917 := [quant-intro #1914]: #1916
+#1920 := [monotonicity #1917]: #1919
+#1929 := [monotonicity #1920 #1926]: #1928
+#1934 := [trans #1929 #1932]: #1933
+#1937 := [monotonicity #1934]: #1936
+#1304 := (iff #293 #1303)
+#1301 := (iff #292 #1287)
+#1292 := (implies true #1287)
+#1295 := (iff #1292 #1287)
+#1296 := [rewrite]: #1295
+#1299 := (iff #292 #1292)
+#1297 := (iff #291 #1287)
+#1293 := (iff #291 #1292)
+#1290 := (iff #290 #1287)
+#1283 := (implies #434 #1278)
+#1288 := (iff #1283 #1287)
+#1289 := [rewrite]: #1288
+#1284 := (iff #290 #1283)
+#1281 := (iff #289 #1278)
+#1274 := (implies #448 #1269)
+#1279 := (iff #1274 #1278)
+#1280 := [rewrite]: #1279
+#1275 := (iff #289 #1274)
+#1272 := (iff #288 #1269)
+#1265 := (implies #79 #1253)
+#1270 := (iff #1265 #1269)
+#1271 := [rewrite]: #1270
+#1266 := (iff #288 #1265)
+#1263 := (iff #287 #1253)
+#1258 := (implies true #1253)
+#1261 := (iff #1258 #1253)
+#1262 := [rewrite]: #1261
+#1259 := (iff #287 #1258)
+#1256 := (iff #286 #1253)
+#1250 := (and #1245 #451)
+#1254 := (iff #1250 #1253)
+#1255 := [rewrite]: #1254
+#1251 := (iff #286 #1250)
+#452 := (iff #81 #451)
+#453 := [rewrite]: #452
+#1248 := (iff #285 #1245)
+#1241 := (implies #451 #1236)
+#1246 := (iff #1241 #1245)
+#1247 := [rewrite]: #1246
+#1242 := (iff #285 #1241)
+#1239 := (iff #284 #1236)
+#1233 := (and #1228 #83)
+#1237 := (iff #1233 #1236)
+#1238 := [rewrite]: #1237
+#1234 := (iff #284 #1233)
+#1231 := (iff #283 #1228)
+#1224 := (implies #83 #1219)
+#1229 := (iff #1224 #1228)
+#1230 := [rewrite]: #1229
+#1225 := (iff #283 #1224)
+#1222 := (iff #282 #1219)
+#1216 := (and #1211 #466)
+#1220 := (iff #1216 #1219)
+#1221 := [rewrite]: #1220
+#1217 := (iff #282 #1216)
+#467 := (iff #89 #466)
+#464 := (iff #88 #461)
+#457 := (implies #454 #87)
+#462 := (iff #457 #461)
+#463 := [rewrite]: #462
+#458 := (iff #88 #457)
+#455 := (iff #85 #454)
+#456 := [rewrite]: #455
+#459 := [monotonicity #456]: #458
+#465 := [trans #459 #463]: #464
+#468 := [quant-intro #465]: #467
+#1214 := (iff #281 #1211)
+#1207 := (implies #466 #1202)
+#1212 := (iff #1207 #1211)
+#1213 := [rewrite]: #1212
+#1208 := (iff #281 #1207)
+#1205 := (iff #280 #1202)
+#1199 := (and #1194 #481)
+#1203 := (iff #1199 #1202)
+#1204 := [rewrite]: #1203
+#1200 := (iff #280 #1199)
+#482 := (iff #97 #481)
+#479 := (iff #96 #476)
+#472 := (implies #469 #95)
+#477 := (iff #472 #476)
+#478 := [rewrite]: #477
+#473 := (iff #96 #472)
+#470 := (iff #93 #469)
+#471 := [rewrite]: #470
+#474 := [monotonicity #471]: #473
+#480 := [trans #474 #478]: #479
+#483 := [quant-intro #480]: #482
+#1197 := (iff #279 #1194)
+#1190 := (implies #481 #1185)
+#1195 := (iff #1190 #1194)
+#1196 := [rewrite]: #1195
+#1191 := (iff #279 #1190)
+#1188 := (iff #278 #1185)
+#1182 := (and #1177 #496)
+#1186 := (iff #1182 #1185)
+#1187 := [rewrite]: #1186
+#1183 := (iff #278 #1182)
+#497 := (iff #106 #496)
+#494 := (iff #105 #491)
+#487 := (implies #484 #104)
+#492 := (iff #487 #491)
+#493 := [rewrite]: #492
+#488 := (iff #105 #487)
+#485 := (iff #99 #484)
+#486 := [rewrite]: #485
+#489 := [monotonicity #486]: #488
+#495 := [trans #489 #493]: #494
+#498 := [quant-intro #495]: #497
+#1180 := (iff #277 #1177)
+#1173 := (implies #496 #1157)
+#1178 := (iff #1173 #1177)
+#1179 := [rewrite]: #1178
+#1174 := (iff #277 #1173)
+#1171 := (iff #276 #1157)
+#1162 := (implies true #1157)
+#1165 := (iff #1162 #1157)
+#1166 := [rewrite]: #1165
+#1169 := (iff #276 #1162)
+#1167 := (iff #275 #1157)
+#1163 := (iff #275 #1162)
+#1160 := (iff #274 #1157)
+#1153 := (implies #499 #1148)
+#1158 := (iff #1153 #1157)
+#1159 := [rewrite]: #1158
+#1154 := (iff #274 #1153)
+#1151 := (iff #273 #1148)
+#1144 := (implies #112 #1139)
+#1149 := (iff #1144 #1148)
+#1150 := [rewrite]: #1149
+#1145 := (iff #273 #1144)
+#1142 := (iff #272 #1139)
+#1135 := (implies #523 #1130)
+#1140 := (iff #1135 #1139)
+#1141 := [rewrite]: #1140
+#1136 := (iff #272 #1135)
+#1133 := (iff #271 #1130)
+#1126 := (implies #544 #1121)
+#1131 := (iff #1126 #1130)
+#1132 := [rewrite]: #1131
+#1127 := (iff #271 #1126)
+#1124 := (iff #270 #1121)
+#1117 := (implies #576 #1107)
+#1122 := (iff #1117 #1121)
+#1123 := [rewrite]: #1122
+#1118 := (iff #270 #1117)
+#1115 := (iff #269 #1107)
+#1110 := (implies true #1107)
+#1113 := (iff #1110 #1107)
+#1114 := [rewrite]: #1113
+#1111 := (iff #269 #1110)
+#1108 := (iff #268 #1107)
+#1105 := (iff #267 #1091)
+#1096 := (implies true #1091)
+#1099 := (iff #1096 #1091)
+#1100 := [rewrite]: #1099
+#1103 := (iff #267 #1096)
+#1101 := (iff #266 #1091)
+#1097 := (iff #266 #1096)
+#1094 := (iff #265 #1091)
+#1088 := (implies #911 #1072)
+#1092 := (iff #1088 #1091)
+#1093 := [rewrite]: #1092
+#1089 := (iff #265 #1088)
+#1086 := (iff #264 #1072)
+#1077 := (implies true #1072)
+#1080 := (iff #1077 #1072)
+#1081 := [rewrite]: #1080
+#1084 := (iff #264 #1077)
+#1082 := (iff #263 #1072)
+#1078 := (iff #263 #1077)
+#1075 := (iff #262 #1072)
+#1068 := (implies #930 #1063)
+#1073 := (iff #1068 #1072)
+#1074 := [rewrite]: #1073
+#1069 := (iff #262 #1068)
+#1066 := (iff #261 #1063)
+#1059 := (implies #229 #1054)
+#1064 := (iff #1059 #1063)
+#1065 := [rewrite]: #1064
+#1060 := (iff #261 #1059)
+#1057 := (iff #260 #1054)
+#1050 := (implies #933 #1045)
+#1055 := (iff #1050 #1054)
+#1056 := [rewrite]: #1055
+#1051 := (iff #260 #1050)
+#1048 := (iff #259 #1045)
+#1041 := (implies #234 #1029)
+#1046 := (iff #1041 #1045)
+#1047 := [rewrite]: #1046
+#1042 := (iff #259 #1041)
+#1039 := (iff #258 #1029)
+#1034 := (implies true #1029)
+#1037 := (iff #1034 #1029)
+#1038 := [rewrite]: #1037
+#1035 := (iff #258 #1034)
+#1032 := (iff #257 #1029)
+#1026 := (and #1021 #965)
+#1030 := (iff #1026 #1029)
+#1031 := [rewrite]: #1030
+#1027 := (iff #257 #1026)
+#966 := (iff #245 #965)
+#963 := (iff #244 #960)
+#956 := (implies #936 #953)
+#961 := (iff #956 #960)
+#962 := [rewrite]: #961
+#957 := (iff #244 #956)
+#954 := (iff #243 #953)
+#951 := (iff #242 #948)
+#945 := (and #942 #241)
+#949 := (iff #945 #948)
+#950 := [rewrite]: #949
+#946 := (iff #242 #945)
+#943 := (iff #240 #942)
+#940 := (= #239 #939)
+#941 := [rewrite]: #940
+#944 := [monotonicity #941]: #943
+#947 := [monotonicity #944]: #946
+#952 := [trans #947 #950]: #951
+#955 := [quant-intro #952]: #954
+#937 := (iff #237 #936)
+#938 := [rewrite]: #937
+#958 := [monotonicity #938 #955]: #957
+#964 := [trans #958 #962]: #963
+#967 := [quant-intro #964]: #966
+#1024 := (iff #256 #1021)
+#1017 := (implies #965 #1012)
+#1022 := (iff #1017 #1021)
+#1023 := [rewrite]: #1022
+#1018 := (iff #256 #1017)
+#1015 := (iff #255 #1012)
+#1009 := (and #1004 #980)
+#1013 := (iff #1009 #1012)
+#1014 := [rewrite]: #1013
+#1010 := (iff #255 #1009)
+#981 := (iff #249 #980)
+#978 := (iff #248 #975)
+#971 := (implies #246 #968)
+#976 := (iff #971 #975)
+#977 := [rewrite]: #976
+#972 := (iff #248 #971)
+#969 := (iff #247 #968)
+#970 := [monotonicity #941]: #969
+#973 := [monotonicity #970]: #972
+#979 := [trans #973 #977]: #978
+#982 := [quant-intro #979]: #981
+#1007 := (iff #254 #1004)
+#1000 := (implies #980 #983)
+#1005 := (iff #1000 #1004)
+#1006 := [rewrite]: #1005
+#1001 := (iff #254 #1000)
+#998 := (iff #253 #983)
+#993 := (and true #983)
+#996 := (iff #993 #983)
+#997 := [rewrite]: #996
+#994 := (iff #253 #993)
+#984 := (iff #251 #983)
+#985 := [rewrite]: #984
+#991 := (iff #252 true)
+#986 := (implies #983 true)
+#989 := (iff #986 true)
+#990 := [rewrite]: #989
+#987 := (iff #252 #986)
+#988 := [monotonicity #985]: #987
+#992 := [trans #988 #990]: #991
+#995 := [monotonicity #992 #985]: #994
+#999 := [trans #995 #997]: #998
+#1002 := [monotonicity #982 #999]: #1001
+#1008 := [trans #1002 #1006]: #1007
+#1011 := [monotonicity #1008 #982]: #1010
+#1016 := [trans #1011 #1014]: #1015
+#1019 := [monotonicity #967 #1016]: #1018
+#1025 := [trans #1019 #1023]: #1024
+#1028 := [monotonicity #1025 #967]: #1027
+#1033 := [trans #1028 #1031]: #1032
+#1036 := [monotonicity #1033]: #1035
+#1040 := [trans #1036 #1038]: #1039
+#1043 := [monotonicity #1040]: #1042
+#1049 := [trans #1043 #1047]: #1048
+#934 := (iff #231 #933)
+#935 := [rewrite]: #934
+#1052 := [monotonicity #935 #1049]: #1051
+#1058 := [trans #1052 #1056]: #1057
+#1061 := [monotonicity #1058]: #1060
+#1067 := [trans #1061 #1065]: #1066
+#931 := (iff #226 #930)
+#932 := [rewrite]: #931
+#1070 := [monotonicity #932 #1067]: #1069
+#1076 := [trans #1070 #1074]: #1075
+#1079 := [monotonicity #1076]: #1078
+#1083 := [trans #1079 #1081]: #1082
+#1085 := [monotonicity #1083]: #1084
+#1087 := [trans #1085 #1081]: #1086
+#928 := (iff #224 #911)
+#583 := (iff #139 #582)
+#580 := (iff #138 #579)
+#509 := (iff #118 #508)
+#506 := (iff #117 #505)
+#507 := [rewrite]: #506
+#510 := [monotonicity #507]: #509
+#581 := [monotonicity #510]: #580
+#584 := [quant-intro #581]: #583
+#929 := [monotonicity #584]: #928
+#1090 := [monotonicity #929 #1087]: #1089
+#1095 := [trans #1090 #1093]: #1094
+#1098 := [monotonicity #1095]: #1097
+#1102 := [trans #1098 #1100]: #1101
+#1104 := [monotonicity #1102]: #1103
+#1106 := [trans #1104 #1100]: #1105
+#926 := (iff #223 #912)
+#917 := (implies true #912)
+#920 := (iff #917 #912)
+#921 := [rewrite]: #920
+#924 := (iff #223 #917)
+#922 := (iff #222 #912)
+#918 := (iff #222 #917)
+#915 := (iff #221 #912)
+#908 := (implies #582 #903)
+#913 := (iff #908 #912)
+#914 := [rewrite]: #913
+#909 := (iff #221 #908)
+#906 := (iff #220 #903)
+#588 := (not #585)
+#900 := (implies #588 #895)
+#904 := (iff #900 #903)
+#905 := [rewrite]: #904
+#901 := (iff #220 #900)
+#898 := (iff #219 #895)
+#891 := (implies #145 #886)
+#896 := (iff #891 #895)
+#897 := [rewrite]: #896
+#892 := (iff #219 #891)
+#889 := (iff #218 #886)
+#882 := (implies #599 #877)
+#887 := (iff #882 #886)
+#888 := [rewrite]: #887
+#883 := (iff #218 #882)
+#880 := (iff #217 #877)
+#873 := (implies #151 #868)
+#878 := (iff #873 #877)
+#879 := [rewrite]: #878
+#874 := (iff #217 #873)
+#871 := (iff #216 #868)
+#864 := (implies #613 #859)
+#869 := (iff #864 #868)
+#870 := [rewrite]: #869
+#865 := (iff #216 #864)
+#862 := (iff #215 #859)
+#855 := (implies #627 #850)
+#860 := (iff #855 #859)
+#861 := [rewrite]: #860
+#856 := (iff #215 #855)
+#853 := (iff #214 #850)
+#847 := (and #842 #167)
+#851 := (iff #847 #850)
+#852 := [rewrite]: #851
+#848 := (iff #214 #847)
+#845 := (iff #213 #842)
+#838 := (implies #167 #833)
+#843 := (iff #838 #842)
+#844 := [rewrite]: #843
+#839 := (iff #213 #838)
+#836 := (iff #212 #833)
+#830 := (and #825 #642)
+#834 := (iff #830 #833)
+#835 := [rewrite]: #834
+#831 := (iff #212 #830)
+#643 := (iff #171 #642)
+#640 := (iff #170 #637)
+#633 := (implies #630 #616)
+#638 := (iff #633 #637)
+#639 := [rewrite]: #638
+#634 := (iff #170 #633)
+#617 := (iff #163 #616)
+#618 := [rewrite]: #617
+#631 := (iff #169 #630)
+#632 := [rewrite]: #631
+#635 := [monotonicity #632 #618]: #634
+#641 := [trans #635 #639]: #640
+#644 := [quant-intro #641]: #643
+#828 := (iff #211 #825)
+#821 := (implies #642 #805)
+#826 := (iff #821 #825)
+#827 := [rewrite]: #826
+#822 := (iff #211 #821)
+#819 := (iff #210 #805)
+#810 := (implies true #805)
+#813 := (iff #810 #805)
+#814 := [rewrite]: #813
+#817 := (iff #210 #810)
+#815 := (iff #209 #805)
+#811 := (iff #209 #810)
+#808 := (iff #208 #805)
+#802 := (and #797 #645)
+#806 := (iff #802 #805)
+#807 := [rewrite]: #806
+#803 := (iff #208 #802)
+#646 := (iff #173 #645)
+#647 := [rewrite]: #646
+#800 := (iff #207 #797)
+#793 := (implies #645 #788)
+#798 := (iff #793 #797)
+#799 := [rewrite]: #798
+#794 := (iff #207 #793)
+#791 := (iff #206 #788)
+#785 := (and #780 #175)
+#789 := (iff #785 #788)
+#790 := [rewrite]: #789
+#786 := (iff #206 #785)
+#783 := (iff #205 #780)
+#776 := (implies #175 #771)
+#781 := (iff #776 #780)
+#782 := [rewrite]: #781
+#777 := (iff #205 #776)
+#774 := (iff #204 #771)
+#768 := (and #763 #670)
+#772 := (iff #768 #771)
+#773 := [rewrite]: #772
+#769 := (iff #204 #768)
+#671 := (iff #183 #670)
+#668 := (iff #182 #665)
+#661 := (implies #656 #181)
+#666 := (iff #661 #665)
+#667 := [rewrite]: #666
+#662 := (iff #182 #661)
+#659 := (iff #179 #656)
+#653 := (and #648 #636)
+#657 := (iff #653 #656)
+#658 := [rewrite]: #657
+#654 := (iff #179 #653)
+#651 := (iff #178 #636)
+#652 := [monotonicity #632]: #651
+#649 := (iff #177 #648)
+#650 := [rewrite]: #649
+#655 := [monotonicity #650 #652]: #654
+#660 := [trans #655 #658]: #659
+#663 := [monotonicity #660]: #662
+#669 := [trans #663 #667]: #668
+#672 := [quant-intro #669]: #671
+#766 := (iff #203 #763)
+#759 := (implies #670 #754)
+#764 := (iff #759 #763)
+#765 := [rewrite]: #764
+#760 := (iff #203 #759)
+#757 := (iff #202 #754)
+#751 := (and #746 #691)
+#755 := (iff #751 #754)
+#756 := [rewrite]: #755
+#752 := (iff #202 #751)
+#692 := (iff #188 #691)
+#689 := (iff #187 #686)
+#682 := (implies #673 #679)
+#687 := (iff #682 #686)
+#688 := [rewrite]: #687
+#683 := (iff #187 #682)
+#680 := (iff #186 #679)
+#677 := (= #185 #676)
+#678 := [rewrite]: #677
+#681 := [monotonicity #678]: #680
+#674 := (iff #184 #673)
+#675 := [monotonicity #632]: #674
+#684 := [monotonicity #675 #681]: #683
+#690 := [trans #684 #688]: #689
+#693 := [quant-intro #690]: #692
+#749 := (iff #201 #746)
+#742 := (implies #691 #723)
+#747 := (iff #742 #746)
+#748 := [rewrite]: #747
+#743 := (iff #201 #742)
+#740 := (iff #200 #723)
+#735 := (and true #723)
+#738 := (iff #735 #723)
+#739 := [rewrite]: #738
+#736 := (iff #200 #735)
+#724 := (iff #197 #723)
+#721 := (iff #196 #718)
+#714 := (implies #694 #711)
+#719 := (iff #714 #718)
+#720 := [rewrite]: #719
+#715 := (iff #196 #714)
+#712 := (iff #195 #711)
+#709 := (iff #194 #708)
+#706 := (iff #193 #703)
+#700 := (and #630 #192)
+#704 := (iff #700 #703)
+#705 := [rewrite]: #704
+#701 := (iff #193 #700)
+#702 := [monotonicity #632]: #701
+#707 := [trans #702 #705]: #706
+#698 := (iff #191 #697)
+#699 := [monotonicity #678]: #698
+#710 := [monotonicity #699 #707]: #709
+#713 := [quant-intro #710]: #712
+#695 := (iff #190 #694)
+#696 := [rewrite]: #695
+#716 := [monotonicity #696 #713]: #715
+#722 := [trans #716 #720]: #721
+#725 := [quant-intro #722]: #724
+#733 := (iff #199 true)
+#728 := (implies #723 true)
+#731 := (iff #728 true)
+#732 := [rewrite]: #731
+#729 := (iff #199 #728)
+#726 := (iff #198 true)
+#727 := [rewrite]: #726
+#730 := [monotonicity #725 #727]: #729
+#734 := [trans #730 #732]: #733
+#737 := [monotonicity #734 #725]: #736
+#741 := [trans #737 #739]: #740
+#744 := [monotonicity #693 #741]: #743
+#750 := [trans #744 #748]: #749
+#753 := [monotonicity #750 #693]: #752
+#758 := [trans #753 #756]: #757
+#761 := [monotonicity #672 #758]: #760
+#767 := [trans #761 #765]: #766
+#770 := [monotonicity #767 #672]: #769
+#775 := [trans #770 #773]: #774
+#778 := [monotonicity #775]: #777
+#784 := [trans #778 #782]: #783
+#787 := [monotonicity #784]: #786
+#792 := [trans #787 #790]: #791
+#795 := [monotonicity #647 #792]: #794
+#801 := [trans #795 #799]: #800
+#804 := [monotonicity #801 #647]: #803
+#809 := [trans #804 #807]: #808
+#812 := [monotonicity #809]: #811
+#816 := [trans #812 #814]: #815
+#818 := [monotonicity #816]: #817
+#820 := [trans #818 #814]: #819
+#823 := [monotonicity #644 #820]: #822
+#829 := [trans #823 #827]: #828
+#832 := [monotonicity #829 #644]: #831
+#837 := [trans #832 #835]: #836
+#840 := [monotonicity #837]: #839
+#846 := [trans #840 #844]: #845
+#849 := [monotonicity #846]: #848
+#854 := [trans #849 #852]: #853
+#628 := (iff #165 #627)
+#625 := (iff #164 #622)
+#619 := (implies #162 #616)
+#623 := (iff #619 #622)
+#624 := [rewrite]: #623
+#620 := (iff #164 #619)
+#621 := [monotonicity #618]: #620
+#626 := [trans #621 #624]: #625
+#629 := [quant-intro #626]: #628
+#857 := [monotonicity #629 #854]: #856
+#863 := [trans #857 #861]: #862
+#614 := (iff #161 #613)
+#611 := (iff #160 #608)
+#605 := (implies #157 #602)
+#609 := (iff #605 #608)
+#610 := [rewrite]: #609
+#606 := (iff #160 #605)
+#603 := (iff #159 #602)
+#604 := [rewrite]: #603
+#607 := [monotonicity #604]: #606
+#612 := [trans #607 #610]: #611
+#615 := [quant-intro #612]: #614
+#866 := [monotonicity #615 #863]: #865
+#872 := [trans #866 #870]: #871
+#875 := [monotonicity #872]: #874
+#881 := [trans #875 #879]: #880
+#600 := (iff #148 #599)
+#597 := (iff #147 #594)
+#591 := (implies #508 #146)
+#595 := (iff #591 #594)
+#596 := [rewrite]: #595
+#592 := (iff #147 #591)
+#593 := [monotonicity #510]: #592
+#598 := [trans #593 #596]: #597
+#601 := [quant-intro #598]: #600
+#884 := [monotonicity #601 #881]: #883
+#890 := [trans #884 #888]: #889
+#893 := [monotonicity #890]: #892
+#899 := [trans #893 #897]: #898
+#589 := (iff #143 #588)
+#586 := (iff #142 #585)
+#587 := [rewrite]: #586
+#590 := [monotonicity #587]: #589
+#902 := [monotonicity #590 #899]: #901
+#907 := [trans #902 #905]: #906
+#910 := [monotonicity #584 #907]: #909
+#916 := [trans #910 #914]: #915
+#919 := [monotonicity #916]: #918
+#923 := [trans #919 #921]: #922
+#925 := [monotonicity #923]: #924
+#927 := [trans #925 #921]: #926
+#1109 := [monotonicity #927 #1106]: #1108
+#1112 := [monotonicity #1109]: #1111
+#1116 := [trans #1112 #1114]: #1115
+#577 := (iff #137 #576)
+#574 := (iff #136 #571)
+#567 := (implies #547 #564)
+#572 := (iff #567 #571)
+#573 := [rewrite]: #572
+#568 := (iff #136 #567)
+#565 := (iff #135 #564)
+#562 := (iff #134 #561)
+#559 := (iff #133 #556)
+#553 := (and #505 #132)
+#557 := (iff #553 #556)
+#558 := [rewrite]: #557
+#554 := (iff #133 #553)
+#555 := [monotonicity #507]: #554
+#560 := [trans #555 #558]: #559
+#551 := (iff #131 #550)
+#530 := (= #125 #529)
+#531 := [rewrite]: #530
+#552 := [monotonicity #531]: #551
+#563 := [monotonicity #552 #560]: #562
+#566 := [quant-intro #563]: #565
+#548 := (iff #130 #547)
+#549 := [rewrite]: #548
+#569 := [monotonicity #549 #566]: #568
+#575 := [trans #569 #573]: #574
+#578 := [quant-intro #575]: #577
+#1119 := [monotonicity #578 #1116]: #1118
+#1125 := [trans #1119 #1123]: #1124
+#545 := (iff #128 #544)
+#542 := (iff #127 #539)
+#535 := (implies #526 #532)
+#540 := (iff #535 #539)
+#541 := [rewrite]: #540
+#536 := (iff #127 #535)
+#533 := (iff #126 #532)
+#534 := [monotonicity #531]: #533
+#527 := (iff #124 #526)
+#528 := [monotonicity #507]: #527
+#537 := [monotonicity #528 #534]: #536
+#543 := [trans #537 #541]: #542
+#546 := [quant-intro #543]: #545
+#1128 := [monotonicity #546 #1125]: #1127
+#1134 := [trans #1128 #1132]: #1133
+#524 := (iff #123 #523)
+#521 := (iff #122 #518)
+#514 := (implies #511 #121)
+#519 := (iff #514 #518)
+#520 := [rewrite]: #519
+#515 := (iff #122 #514)
+#512 := (iff #119 #511)
+#503 := (iff #115 #502)
+#504 := [rewrite]: #503
+#513 := [monotonicity #504 #510]: #512
+#516 := [monotonicity #513]: #515
+#522 := [trans #516 #520]: #521
+#525 := [quant-intro #522]: #524
+#1137 := [monotonicity #525 #1134]: #1136
+#1143 := [trans #1137 #1141]: #1142
+#1146 := [monotonicity #1143]: #1145
+#1152 := [trans #1146 #1150]: #1151
+#500 := (iff #109 #499)
+#501 := [rewrite]: #500
+#1155 := [monotonicity #501 #1152]: #1154
+#1161 := [trans #1155 #1159]: #1160
+#1164 := [monotonicity #1161]: #1163
+#1168 := [trans #1164 #1166]: #1167
+#1170 := [monotonicity #1168]: #1169
+#1172 := [trans #1170 #1166]: #1171
+#1175 := [monotonicity #498 #1172]: #1174
+#1181 := [trans #1175 #1179]: #1180
+#1184 := [monotonicity #1181 #498]: #1183
+#1189 := [trans #1184 #1187]: #1188
+#1192 := [monotonicity #483 #1189]: #1191
+#1198 := [trans #1192 #1196]: #1197
+#1201 := [monotonicity #1198 #483]: #1200
+#1206 := [trans #1201 #1204]: #1205
+#1209 := [monotonicity #468 #1206]: #1208
+#1215 := [trans #1209 #1213]: #1214
+#1218 := [monotonicity #1215 #468]: #1217
+#1223 := [trans #1218 #1221]: #1222
+#1226 := [monotonicity #1223]: #1225
+#1232 := [trans #1226 #1230]: #1231
+#1235 := [monotonicity #1232]: #1234
+#1240 := [trans #1235 #1238]: #1239
+#1243 := [monotonicity #453 #1240]: #1242
+#1249 := [trans #1243 #1247]: #1248
+#1252 := [monotonicity #1249 #453]: #1251
+#1257 := [trans #1252 #1255]: #1256
+#1260 := [monotonicity #1257]: #1259
+#1264 := [trans #1260 #1262]: #1263
+#1267 := [monotonicity #1264]: #1266
+#1273 := [trans #1267 #1271]: #1272
+#449 := (iff #76 #448)
+#446 := (iff #75 #443)
+#440 := (implies #73 #437)
+#444 := (iff #440 #443)
+#445 := [rewrite]: #444
+#441 := (iff #75 #440)
+#438 := (iff #74 #437)
+#439 := [rewrite]: #438
+#442 := [monotonicity #439]: #441
+#447 := [trans #442 #445]: #446
+#450 := [quant-intro #447]: #449
+#1276 := [monotonicity #450 #1273]: #1275
+#1282 := [trans #1276 #1280]: #1281
+#435 := (iff #72 #434)
+#432 := (iff #71 #429)
+#426 := (implies #68 #423)
+#430 := (iff #426 #429)
+#431 := [rewrite]: #430
+#427 := (iff #71 #426)
+#424 := (iff #70 #423)
+#425 := [rewrite]: #424
+#428 := [monotonicity #425]: #427
+#433 := [trans #428 #431]: #432
+#436 := [quant-intro #433]: #435
+#1285 := [monotonicity #436 #1282]: #1284
+#1291 := [trans #1285 #1289]: #1290
+#1294 := [monotonicity #1291]: #1293
+#1298 := [trans #1294 #1296]: #1297
+#1300 := [monotonicity #1298]: #1299
+#1302 := [trans #1300 #1296]: #1301
+#1305 := [monotonicity #1302]: #1304
+#1939 := [trans #1305 #1937]: #1938
+#422 := [asserted]: #293
+#1940 := [mp #422 #1939]: #1935
+#1941 := [not-or-elim #1940]: #79
+#2004 := [mp~ #1941 #1966]: #79
+#4354 := [mp #2004 #4353]: #4349
+#5709 := (not #4349)
+#5715 := (or #5709 #2266)
+#5470 := [quant-inst]: #5715
+#6005 := [unit-resolution #5470 #4354 #6004]: false
+#6009 := [lemma #6005]: #2266
+#3870 := (or #2166 #2033)
+#3957 := [def-axiom]: #3870
+#7294 := [unit-resolution #3957 #6009]: #2166
+#2421 := (not #2166)
+#4707 := (or #2421 #4704)
+#4710 := (not #4707)
+#4362 := (forall (vars (?x27 T2)) (:pat #4355) #1313)
+#4367 := (not #4362)
+#4713 := (or #4367 #4710)
+#4716 := (not #4713)
+decl ?x27!0 :: T2
+#2011 := ?x27!0
+#2012 := (uf_12 ?x27!0)
+#2013 := (>= #2012 0::int)
+#2014 := (not #2013)
+#4719 := (or #2014 #4716)
+#4722 := (not #4719)
+#4725 := (or #1308 #4722)
+#4728 := (not #4725)
+#4735 := (forall (vars (?x24 T2)) (:pat #4355) #1912)
+#4738 := (iff #1915 #4735)
+#4736 := (iff #1912 #1912)
+#4737 := [refl]: #4736
+#4739 := [quant-intro #4737]: #4738
+#2238 := (~ #1915 #1915)
+#2072 := (~ #1912 #1912)
+#2073 := [refl]: #2072
+#2239 := [nnf-pos #2073]: #2238
+#1945 := [not-or-elim #1940]: #1915
+#2265 := [mp~ #1945 #2239]: #1915
+#4740 := [mp #2265 #4739]: #4735
+#5485 := [hypothesis]: #1308
+#5347 := (not #4735)
+#5348 := (or #5347 #81)
+#4030 := (= uf_11 uf_11)
+#4033 := (not #4030)
+#4034 := (or #4033 #81)
+#5341 := (or #5347 #4034)
+#5350 := (iff #5341 #5348)
+#5361 := (iff #5348 #5348)
+#5363 := [rewrite]: #5361
+#5108 := (iff #4034 #81)
+#5046 := (or false #81)
+#5106 := (iff #5046 #81)
+#5107 := [rewrite]: #5106
+#5104 := (iff #4034 #5046)
+#3956 := (iff #4033 false)
+#6849 := (not true)
+#6852 := (iff #6849 false)
+#6853 := [rewrite]: #6852
+#5051 := (iff #4033 #6849)
+#4038 := (iff #4030 true)
+#5050 := [rewrite]: #4038
+#5052 := [monotonicity #5050]: #5051
+#3939 := [trans #5052 #6853]: #3956
+#5105 := [monotonicity #3939]: #5104
+#5346 := [trans #5105 #5107]: #5108
+#5351 := [monotonicity #5346]: #5350
+#5364 := [trans #5351 #5363]: #5350
+#5349 := [quant-inst]: #5341
+#5484 := [mp #5349 #5364]: #5348
+#5486 := [unit-resolution #5484 #5485 #4740]: false
+#5487 := [lemma #5486]: #81
+#4731 := (or #1308 #4728)
+#3666 := (forall (vars (?x66 T2) (?x67 T2)) #3661)
+#3672 := (not #3666)
+#3673 := (or #251 #3672)
+#3674 := (not #3673)
+#3701 := (or #3674 #3698)
+#3708 := (not #3701)
+#3644 := (forall (vars (?x64 T2)) #3639)
+#3707 := (not #3644)
+#3709 := (or #3707 #3708)
+#3710 := (not #3709)
+#3607 := (forall (vars (?x65 T2)) #3596)
+#3613 := (not #3607)
+#3614 := (or #2460 #2993 #3613)
+#3615 := (not #3614)
+#3715 := (or #3615 #3710)
+#3722 := (not #3715)
+#3592 := (forall (vars (?x41 T2)) #3581)
+#3721 := (not #3592)
+#3723 := (or #1062 #1044 #1071 #1053 #3721 #3722)
+#3724 := (not #3723)
+#3486 := (forall (vars (?x53 T2)) #3475)
+#3493 := (not #3486)
+#3471 := (forall (vars (?x50 T2) (?x51 T2)) #3466)
+#3492 := (not #3471)
+#3494 := (or #2318 #2893 #3492 #3493)
+#3495 := (not #3494)
+#3500 := (or #3449 #3495)
+#3507 := (not #3500)
+#3426 := (forall (vars (?x48 T2) (?x49 T2)) #3421)
+#3506 := (not #3426)
+#3508 := (or #3506 #3507)
+#3509 := (not #3508)
+#3514 := (or #3403 #3509)
+#3520 := (not #3514)
+#3521 := (or #1501 #3520)
+#3522 := (not #3521)
+#3527 := (or #2235 #3522)
+#3533 := (not #3527)
+#3534 := (or #1492 #3533)
+#3535 := (not #3534)
+#3540 := (or #1492 #3535)
+#3546 := (not #3540)
+#3547 := (or #824 #3546)
+#3548 := (not #3547)
+#3553 := (or #2836 #3548)
+#3559 := (not #3553)
+#3560 := (or #1487 #3559)
+#3561 := (not #3560)
+#3566 := (or #2822 #3561)
+#3574 := (not #3566)
+#3380 := (forall (vars (?x43 T2)) #3375)
+#3573 := (not #3380)
+#3362 := (forall (vars (?x44 T2)) #3359)
+#3572 := (not #3362)
+#3575 := (or #876 #585 #1652 #1656 #2412 #2415 #3572 #3573 #3574)
+#3576 := (not #3575)
+#3729 := (or #3576 #3724)
+#3739 := (not #3729)
+#3352 := (forall (vars (?x39 T2)) #3347)
+#3738 := (not #3352)
+#3324 := (forall (vars (?x32 T2)) #3319)
+#3737 := (not #3324)
+#3296 := (forall (vars (?x35 T2) (?x36 T2)) #3291)
+#3736 := (not #3296)
+#3273 := (forall (vars (?x37 T2) (?x38 T2)) #3268)
+#3735 := (not #3273)
+#3740 := (or #1854 #1849 #3735 #3736 #3737 #3738 #3739)
+#3741 := (not #3740)
+#3241 := (forall (vars (?x33 T2)) #3230)
+#3247 := (not #3241)
+#3248 := (or #2085 #2688 #3247)
+#3249 := (not #3248)
+#3746 := (or #3249 #3741)
+#3753 := (not #3746)
+#3226 := (forall (vars (?x30 T2) (?x31 T2)) #3221)
+#3752 := (not #3226)
+#3754 := (or #3752 #3753)
+#3755 := (not #3754)
+#3760 := (or #3204 #3755)
+#3767 := (not #3760)
+#3181 := (forall (vars (?x28 T2) (?x29 T2)) #3176)
+#3766 := (not #3181)
+#3768 := (or #3766 #3767)
+#3769 := (not #3768)
+#3774 := (or #2421 #3769)
+#3780 := (not #3774)
+#3781 := (or #1317 #3780)
+#3782 := (not #3781)
+#3787 := (or #2014 #3782)
+#3793 := (not #3787)
+#3794 := (or #1308 #3793)
+#3795 := (not #3794)
+#3800 := (or #1308 #3795)
+#4732 := (iff #3800 #4731)
+#4729 := (iff #3795 #4728)
+#4726 := (iff #3794 #4725)
+#4723 := (iff #3793 #4722)
+#4720 := (iff #3787 #4719)
+#4717 := (iff #3782 #4716)
+#4714 := (iff #3781 #4713)
+#4711 := (iff #3780 #4710)
+#4708 := (iff #3774 #4707)
+#4705 := (iff #3769 #4704)
+#4702 := (iff #3768 #4701)
+#4699 := (iff #3767 #4698)
+#4696 := (iff #3760 #4695)
+#4693 := (iff #3755 #4692)
+#4690 := (iff #3754 #4689)
+#4687 := (iff #3753 #4686)
+#4684 := (iff #3746 #4683)
+#4681 := (iff #3741 #4680)
+#4678 := (iff #3740 #4677)
+#4675 := (iff #3739 #4674)
+#4672 := (iff #3729 #4671)
+#4669 := (iff #3724 #4668)
+#4666 := (iff #3723 #4665)
+#4663 := (iff #3722 #4662)
+#4660 := (iff #3715 #4659)
+#4657 := (iff #3710 #4656)
+#4654 := (iff #3709 #4653)
+#4651 := (iff #3708 #4650)
+#4648 := (iff #3701 #4647)
+#4645 := (iff #3674 #4644)
+#4642 := (iff #3673 #4641)
+#4639 := (iff #3672 #4638)
+#4636 := (iff #3666 #4633)
+#4634 := (iff #3661 #3661)
+#4635 := [refl]: #4634
+#4637 := [quant-intro #4635]: #4636
+#4640 := [monotonicity #4637]: #4639
+#4643 := [monotonicity #4640]: #4642
+#4646 := [monotonicity #4643]: #4645
+#4649 := [monotonicity #4646]: #4648
+#4652 := [monotonicity #4649]: #4651
+#4631 := (iff #3707 #4630)
+#4628 := (iff #3644 #4625)
+#4626 := (iff #3639 #3639)
+#4627 := [refl]: #4626
+#4629 := [quant-intro #4627]: #4628
+#4632 := [monotonicity #4629]: #4631
+#4655 := [monotonicity #4632 #4652]: #4654
+#4658 := [monotonicity #4655]: #4657
+#4623 := (iff #3615 #4622)
+#4620 := (iff #3614 #4619)
+#4617 := (iff #3613 #4616)
+#4614 := (iff #3607 #4611)
+#4612 := (iff #3596 #3596)
+#4613 := [refl]: #4612
+#4615 := [quant-intro #4613]: #4614
+#4618 := [monotonicity #4615]: #4617
+#4621 := [monotonicity #4618]: #4620
+#4624 := [monotonicity #4621]: #4623
+#4661 := [monotonicity #4624 #4658]: #4660
+#4664 := [monotonicity #4661]: #4663
+#4607 := (iff #3721 #4606)
+#4604 := (iff #3592 #4601)
+#4602 := (iff #3581 #3581)
+#4603 := [refl]: #4602
+#4605 := [quant-intro #4603]: #4604
+#4608 := [monotonicity #4605]: #4607
+#4667 := [monotonicity #4608 #4664]: #4666
+#4670 := [monotonicity #4667]: #4669
+#4599 := (iff #3576 #4598)
+#4596 := (iff #3575 #4595)
+#4593 := (iff #3574 #4592)
+#4590 := (iff #3566 #4589)
+#4587 := (iff #3561 #4586)
+#4584 := (iff #3560 #4583)
+#4581 := (iff #3559 #4580)
+#4578 := (iff #3553 #4577)
+#4575 := (iff #3548 #4574)
+#4572 := (iff #3547 #4571)
+#4569 := (iff #3546 #4568)
+#4566 := (iff #3540 #4565)
+#4563 := (iff #3535 #4562)
+#4560 := (iff #3534 #4559)
+#4557 := (iff #3533 #4556)
+#4554 := (iff #3527 #4553)
+#4551 := (iff #3522 #4550)
+#4548 := (iff #3521 #4547)
+#4545 := (iff #3520 #4544)
+#4542 := (iff #3514 #4541)
+#4539 := (iff #3509 #4538)
+#4536 := (iff #3508 #4535)
+#4533 := (iff #3507 #4532)
+#4530 := (iff #3500 #4529)
+#4527 := (iff #3495 #4526)
+#4524 := (iff #3494 #4523)
+#4521 := (iff #3493 #4520)
+#4518 := (iff #3486 #4515)
+#4516 := (iff #3475 #3475)
+#4517 := [refl]: #4516
+#4519 := [quant-intro #4517]: #4518
+#4522 := [monotonicity #4519]: #4521
+#4512 := (iff #3492 #4511)
+#4509 := (iff #3471 #4506)
+#4507 := (iff #3466 #3466)
+#4508 := [refl]: #4507
+#4510 := [quant-intro #4508]: #4509
+#4513 := [monotonicity #4510]: #4512
+#4525 := [monotonicity #4513 #4522]: #4524
+#4528 := [monotonicity #4525]: #4527
+#4531 := [monotonicity #4528]: #4530
+#4534 := [monotonicity #4531]: #4533
+#4504 := (iff #3506 #4503)
+#4501 := (iff #3426 #4498)
+#4499 := (iff #3421 #3421)
+#4500 := [refl]: #4499
+#4502 := [quant-intro #4500]: #4501
+#4505 := [monotonicity #4502]: #4504
+#4537 := [monotonicity #4505 #4534]: #4536
+#4540 := [monotonicity #4537]: #4539
+#4543 := [monotonicity #4540]: #4542
+#4546 := [monotonicity #4543]: #4545
+#4495 := (iff #1501 #4494)
+#4492 := (iff #1498 #4489)
+#4490 := (iff #1495 #1495)
+#4491 := [refl]: #4490
+#4493 := [quant-intro #4491]: #4492
+#4496 := [monotonicity #4493]: #4495
+#4549 := [monotonicity #4496 #4546]: #4548
+#4552 := [monotonicity #4549]: #4551
+#4555 := [monotonicity #4552]: #4554
+#4558 := [monotonicity #4555]: #4557
+#4561 := [monotonicity #4558]: #4560
+#4564 := [monotonicity #4561]: #4563
+#4567 := [monotonicity #4564]: #4566
+#4570 := [monotonicity #4567]: #4569
+#4487 := (iff #824 #4486)
+#4484 := (iff #642 #4481)
+#4482 := (iff #637 #637)
+#4483 := [refl]: #4482
+#4485 := [quant-intro #4483]: #4484
+#4488 := [monotonicity #4485]: #4487
+#4573 := [monotonicity #4488 #4570]: #4572
+#4576 := [monotonicity #4573]: #4575
+#4579 := [monotonicity #4576]: #4578
+#4582 := [monotonicity #4579]: #4581
+#4478 := (iff #1487 #4477)
+#4475 := (iff #1484 #4472)
+#4473 := (iff #1479 #1479)
+#4474 := [refl]: #4473
+#4476 := [quant-intro #4474]: #4475
+#4479 := [monotonicity #4476]: #4478
+#4585 := [monotonicity #4479 #4582]: #4584
+#4588 := [monotonicity #4585]: #4587
+#4591 := [monotonicity #4588]: #4590
+#4594 := [monotonicity #4591]: #4593
+#4470 := (iff #3573 #4469)
+#4467 := (iff #3380 #4464)
+#4465 := (iff #3375 #3375)
+#4466 := [refl]: #4465
+#4468 := [quant-intro #4466]: #4467
+#4471 := [monotonicity #4468]: #4470
+#4462 := (iff #3572 #4461)
+#4459 := (iff #3362 #4456)
+#4457 := (iff #3359 #3359)
+#4458 := [refl]: #4457
+#4460 := [quant-intro #4458]: #4459
+#4463 := [monotonicity #4460]: #4462
+#4452 := (iff #1652 #4451)
+#4449 := (iff #1649 #4446)
+#4447 := (iff #1644 #1644)
+#4448 := [refl]: #4447
+#4450 := [quant-intro #4448]: #4449
+#4453 := [monotonicity #4450]: #4452
+#4597 := [monotonicity #4453 #4463 #4471 #4594]: #4596
+#4600 := [monotonicity #4597]: #4599
+#4673 := [monotonicity #4600 #4670]: #4672
+#4676 := [monotonicity #4673]: #4675
+#4443 := (iff #3738 #4442)
+#4440 := (iff #3352 #4437)
+#4438 := (iff #3347 #3347)
+#4439 := [refl]: #4438
+#4441 := [quant-intro #4439]: #4440
+#4444 := [monotonicity #4441]: #4443
+#4435 := (iff #3737 #4434)
+#4432 := (iff #3324 #4429)
+#4430 := (iff #3319 #3319)
+#4431 := [refl]: #4430
+#4433 := [quant-intro #4431]: #4432
+#4436 := [monotonicity #4433]: #4435
+#4427 := (iff #3736 #4426)
+#4424 := (iff #3296 #4421)
+#4422 := (iff #3291 #3291)
+#4423 := [refl]: #4422
+#4425 := [quant-intro #4423]: #4424
+#4428 := [monotonicity #4425]: #4427
+#4418 := (iff #3735 #4417)
+#4415 := (iff #3273 #4412)
+#4413 := (iff #3268 #3268)
+#4414 := [refl]: #4413
+#4416 := [quant-intro #4414]: #4415
+#4419 := [monotonicity #4416]: #4418
+#4410 := (iff #1849 #4409)
+#4407 := (iff #1846 #4404)
+#4405 := (iff #1843 #1843)
+#4406 := [refl]: #4405
+#4408 := [quant-intro #4406]: #4407
+#4411 := [monotonicity #4408]: #4410
+#4679 := [monotonicity #4411 #4419 #4428 #4436 #4444 #4676]: #4678
+#4682 := [monotonicity #4679]: #4681
+#4401 := (iff #3249 #4400)
+#4398 := (iff #3248 #4397)
+#4395 := (iff #3247 #4394)
+#4392 := (iff #3241 #4389)
+#4390 := (iff #3230 #3230)
+#4391 := [refl]: #4390
+#4393 := [quant-intro #4391]: #4392
+#4396 := [monotonicity #4393]: #4395
+#4399 := [monotonicity #4396]: #4398
+#4402 := [monotonicity #4399]: #4401
+#4685 := [monotonicity #4402 #4682]: #4684
+#4688 := [monotonicity #4685]: #4687
+#4386 := (iff #3752 #4385)
+#4383 := (iff #3226 #4380)
+#4381 := (iff #3221 #3221)
+#4382 := [refl]: #4381
+#4384 := [quant-intro #4382]: #4383
+#4387 := [monotonicity #4384]: #4386
+#4691 := [monotonicity #4387 #4688]: #4690
+#4694 := [monotonicity #4691]: #4693
+#4697 := [monotonicity #4694]: #4696
+#4700 := [monotonicity #4697]: #4699
+#4377 := (iff #3766 #4376)
+#4374 := (iff #3181 #4371)
+#4372 := (iff #3176 #3176)
+#4373 := [refl]: #4372
+#4375 := [quant-intro #4373]: #4374
+#4378 := [monotonicity #4375]: #4377
+#4703 := [monotonicity #4378 #4700]: #4702
+#4706 := [monotonicity #4703]: #4705
+#4709 := [monotonicity #4706]: #4708
+#4712 := [monotonicity #4709]: #4711
+#4368 := (iff #1317 #4367)
+#4365 := (iff #1314 #4362)
+#4363 := (iff #1313 #1313)
+#4364 := [refl]: #4363
+#4366 := [quant-intro #4364]: #4365
+#4369 := [monotonicity #4366]: #4368
+#4715 := [monotonicity #4369 #4712]: #4714
+#4718 := [monotonicity #4715]: #4717
+#4721 := [monotonicity #4718]: #4720
+#4724 := [monotonicity #4721]: #4723
+#4727 := [monotonicity #4724]: #4726
+#4730 := [monotonicity #4727]: #4729
+#4733 := [monotonicity #4730]: #4732
+#2527 := (not #2526)
+#2523 := (not #2522)
+#3081 := (and #2523 #2527)
+#3084 := (not #3081)
+#3101 := (or #3084 #3096)
+#3104 := (not #3101)
+#2536 := (not #251)
+#2546 := (and #2536 #1756)
+#3110 := (or #2546 #3104)
+#3054 := (not #3049)
+#3072 := (and #3054 #3067)
+#3075 := (or #1716 #3072)
+#3078 := (forall (vars (?x64 T2)) #3075)
+#3115 := (and #3078 #3110)
+#2456 := (not #2455)
+#3024 := (and #2456 #3021)
+#3027 := (not #3024)
+#3030 := (forall (vars (?x65 T2)) #3027)
+#2996 := (not #2993)
+#2461 := (not #2460)
+#3036 := (and #2461 #2996 #3030)
+#3118 := (or #3036 #3115)
+#2441 := (not #1670)
+#2444 := (forall (vars (?x41 T2)) #2441)
+#3121 := (and #229 #234 #930 #933 #2444 #3118)
+#2314 := (not #2313)
+#2924 := (and #630 #2314 #2921)
+#2927 := (not #2924)
+#2930 := (forall (vars (?x53 T2)) #2927)
+#2896 := (not #2893)
+#2319 := (not #2318)
+#2939 := (and #1541 #2319 #2896 #2930)
+#2287 := (not #2286)
+#2866 := (and #2287 #2289)
+#2869 := (not #2866)
+#2887 := (or #2869 #2882)
+#2890 := (not #2887)
+#2944 := (or #2890 #2939)
+#2947 := (and #1517 #2944)
+#2258 := (not #2257)
+#2841 := (and #2255 #2258)
+#2844 := (not #2841)
+#2860 := (or #2844 #2855)
+#2863 := (not #2860)
+#2950 := (or #2863 #2947)
+#2953 := (and #1498 #2950)
+#2956 := (or #2235 #2953)
+#2959 := (and #173 #2956)
+#2962 := (or #1492 #2959)
+#2965 := (and #642 #2962)
+#2968 := (or #2836 #2965)
+#2971 := (and #1484 #2968)
+#2974 := (or #2822 #2971)
+#2416 := (not #2415)
+#2413 := (not #2412)
+#2980 := (and #151 #588 #1473 #1631 #1649 #1657 #2413 #2416 #2974)
+#3124 := (or #2980 #3121)
+#2780 := (not #2775)
+#2798 := (and #2162 #2780 #2793)
+#2801 := (or #1413 #2798)
+#2804 := (forall (vars (?x39 T2)) #2801)
+#2735 := (not #2730)
+#2753 := (and #2133 #2735 #2748)
+#2759 := (or #1395 #2753)
+#2764 := (forall (vars (?x32 T2)) #2759)
+#3130 := (and #109 #1821 #1837 #1846 #2764 #2804 #3124)
+#2691 := (not #2688)
+#2098 := (not #2097)
+#2679 := (and #77 #2095 #2098)
+#2682 := (not #2679)
+#2685 := (forall (vars (?x33 T2)) #2682)
+#2086 := (not #2085)
+#2715 := (and #2086 #2685 #2691)
+#3135 := (or #2715 #3130)
+#3138 := (and #1360 #3135)
+#2058 := (not #2057)
+#2667 := (and #2058 #2059)
+#2670 := (not #2667)
+#2673 := (or #2664 #2670)
+#2676 := (not #2673)
+#3141 := (or #2676 #3138)
+#3144 := (and #1334 #3141)
+#2035 := (not #2034)
+#2635 := (and #2033 #2035)
+#2638 := (not #2635)
+#2654 := (or #2638 #2649)
+#2657 := (not #2654)
+#3147 := (or #2657 #3144)
+#3150 := (and #1314 #3147)
+#3153 := (or #2014 #3150)
+#3156 := (and #81 #3153)
+#3159 := (or #1308 #3156)
+#3801 := (iff #3159 #3800)
+#3798 := (iff #3156 #3795)
+#3790 := (and #81 #3787)
+#3796 := (iff #3790 #3795)
+#3797 := [rewrite]: #3796
+#3791 := (iff #3156 #3790)
+#3788 := (iff #3153 #3787)
+#3785 := (iff #3150 #3782)
+#3777 := (and #1314 #3774)
+#3783 := (iff #3777 #3782)
+#3784 := [rewrite]: #3783
+#3778 := (iff #3150 #3777)
+#3775 := (iff #3147 #3774)
+#3772 := (iff #3144 #3769)
+#3763 := (and #3181 #3760)
+#3770 := (iff #3763 #3769)
+#3771 := [rewrite]: #3770
+#3764 := (iff #3144 #3763)
+#3761 := (iff #3141 #3760)
+#3758 := (iff #3138 #3755)
+#3749 := (and #3226 #3746)
+#3756 := (iff #3749 #3755)
+#3757 := [rewrite]: #3756
+#3750 := (iff #3138 #3749)
+#3747 := (iff #3135 #3746)
+#3744 := (iff #3130 #3741)
+#3732 := (and #109 #3273 #3296 #1846 #3324 #3352 #3729)
+#3742 := (iff #3732 #3741)
+#3743 := [rewrite]: #3742
+#3733 := (iff #3130 #3732)
+#3730 := (iff #3124 #3729)
+#3727 := (iff #3121 #3724)
+#3718 := (and #229 #234 #930 #933 #3592 #3715)
+#3725 := (iff #3718 #3724)
+#3726 := [rewrite]: #3725
+#3719 := (iff #3121 #3718)
+#3716 := (iff #3118 #3715)
+#3713 := (iff #3115 #3710)
+#3704 := (and #3644 #3701)
+#3711 := (iff #3704 #3710)
+#3712 := [rewrite]: #3711
+#3705 := (iff #3115 #3704)
+#3702 := (iff #3110 #3701)
+#3699 := (iff #3104 #3698)
+#3696 := (iff #3101 #3693)
+#3679 := (or #2522 #2526)
+#3690 := (or #3679 #3096)
+#3694 := (iff #3690 #3693)
+#3695 := [rewrite]: #3694
+#3691 := (iff #3101 #3690)
+#3688 := (iff #3084 #3679)
+#3680 := (not #3679)
+#3683 := (not #3680)
+#3686 := (iff #3683 #3679)
+#3687 := [rewrite]: #3686
+#3684 := (iff #3084 #3683)
+#3681 := (iff #3081 #3680)
+#3682 := [rewrite]: #3681
+#3685 := [monotonicity #3682]: #3684
+#3689 := [trans #3685 #3687]: #3688
+#3692 := [monotonicity #3689]: #3691
+#3697 := [trans #3692 #3695]: #3696
+#3700 := [monotonicity #3697]: #3699
+#3677 := (iff #2546 #3674)
+#3669 := (and #2536 #3666)
+#3675 := (iff #3669 #3674)
+#3676 := [rewrite]: #3675
+#3670 := (iff #2546 #3669)
+#3667 := (iff #1756 #3666)
+#3664 := (iff #1753 #3661)
+#3647 := (or #1347 #1709)
+#3658 := (or #3647 #1750)
+#3662 := (iff #3658 #3661)
+#3663 := [rewrite]: #3662
+#3659 := (iff #1753 #3658)
+#3656 := (iff #1747 #3647)
+#3648 := (not #3647)
+#3651 := (not #3648)
+#3654 := (iff #3651 #3647)
+#3655 := [rewrite]: #3654
+#3652 := (iff #1747 #3651)
+#3649 := (iff #1744 #3648)
+#3650 := [rewrite]: #3649
+#3653 := [monotonicity #3650]: #3652
+#3657 := [trans #3653 #3655]: #3656
+#3660 := [monotonicity #3657]: #3659
+#3665 := [trans #3660 #3663]: #3664
+#3668 := [quant-intro #3665]: #3667
+#3671 := [monotonicity #3668]: #3670
+#3678 := [trans #3671 #3676]: #3677
+#3703 := [monotonicity #3678 #3700]: #3702
+#3645 := (iff #3078 #3644)
+#3642 := (iff #3075 #3639)
+#3620 := (or #68 #1709)
+#3636 := (or #3620 #3633)
+#3640 := (iff #3636 #3639)
+#3641 := [rewrite]: #3640
+#3637 := (iff #3075 #3636)
+#3634 := (iff #3072 #3633)
+#3635 := [rewrite]: #3634
+#3629 := (iff #1716 #3620)
+#3621 := (not #3620)
+#3624 := (not #3621)
+#3627 := (iff #3624 #3620)
+#3628 := [rewrite]: #3627
+#3625 := (iff #1716 #3624)
+#3622 := (iff #1713 #3621)
+#3623 := [rewrite]: #3622
+#3626 := [monotonicity #3623]: #3625
+#3630 := [trans #3626 #3628]: #3629
+#3638 := [monotonicity #3630 #3635]: #3637
+#3643 := [trans #3638 #3641]: #3642
+#3646 := [quant-intro #3643]: #3645
+#3706 := [monotonicity #3646 #3703]: #3705
+#3714 := [trans #3706 #3712]: #3713
+#3618 := (iff #3036 #3615)
+#3610 := (and #2461 #2996 #3607)
+#3616 := (iff #3610 #3615)
+#3617 := [rewrite]: #3616
+#3611 := (iff #3036 #3610)
+#3608 := (iff #3030 #3607)
+#3605 := (iff #3027 #3596)
+#3597 := (not #3596)
+#3600 := (not #3597)
+#3603 := (iff #3600 #3596)
+#3604 := [rewrite]: #3603
+#3601 := (iff #3027 #3600)
+#3598 := (iff #3024 #3597)
+#3599 := [rewrite]: #3598
+#3602 := [monotonicity #3599]: #3601
+#3606 := [trans #3602 #3604]: #3605
+#3609 := [quant-intro #3606]: #3608
+#3612 := [monotonicity #3609]: #3611
+#3619 := [trans #3612 #3617]: #3618
+#3717 := [monotonicity #3619 #3714]: #3716
+#3593 := (iff #2444 #3592)
+#3590 := (iff #2441 #3581)
+#3582 := (not #3581)
+#3585 := (not #3582)
+#3588 := (iff #3585 #3581)
+#3589 := [rewrite]: #3588
+#3586 := (iff #2441 #3585)
+#3583 := (iff #1670 #3582)
+#3584 := [rewrite]: #3583
+#3587 := [monotonicity #3584]: #3586
+#3591 := [trans #3587 #3589]: #3590
+#3594 := [quant-intro #3591]: #3593
+#3720 := [monotonicity #3594 #3717]: #3719
+#3728 := [trans #3720 #3726]: #3727
+#3579 := (iff #2980 #3576)
+#3569 := (and #151 #588 #3362 #3380 #1649 #1657 #2413 #2416 #3566)
+#3577 := (iff #3569 #3576)
+#3578 := [rewrite]: #3577
+#3570 := (iff #2980 #3569)
+#3567 := (iff #2974 #3566)
+#3564 := (iff #2971 #3561)
+#3556 := (and #1484 #3553)
+#3562 := (iff #3556 #3561)
+#3563 := [rewrite]: #3562
+#3557 := (iff #2971 #3556)
+#3554 := (iff #2968 #3553)
+#3551 := (iff #2965 #3548)
+#3543 := (and #642 #3540)
+#3549 := (iff #3543 #3548)
+#3550 := [rewrite]: #3549
+#3544 := (iff #2965 #3543)
+#3541 := (iff #2962 #3540)
+#3538 := (iff #2959 #3535)
+#3530 := (and #173 #3527)
+#3536 := (iff #3530 #3535)
+#3537 := [rewrite]: #3536
+#3531 := (iff #2959 #3530)
+#3528 := (iff #2956 #3527)
+#3525 := (iff #2953 #3522)
+#3517 := (and #1498 #3514)
+#3523 := (iff #3517 #3522)
+#3524 := [rewrite]: #3523
+#3518 := (iff #2953 #3517)
+#3515 := (iff #2950 #3514)
+#3512 := (iff #2947 #3509)
+#3503 := (and #3426 #3500)
+#3510 := (iff #3503 #3509)
+#3511 := [rewrite]: #3510
+#3504 := (iff #2947 #3503)
+#3501 := (iff #2944 #3500)
+#3498 := (iff #2939 #3495)
+#3489 := (and #3471 #2319 #2896 #3486)
+#3496 := (iff #3489 #3495)
+#3497 := [rewrite]: #3496
+#3490 := (iff #2939 #3489)
+#3487 := (iff #2930 #3486)
+#3484 := (iff #2927 #3475)
+#3476 := (not #3475)
+#3479 := (not #3476)
+#3482 := (iff #3479 #3475)
+#3483 := [rewrite]: #3482
+#3480 := (iff #2927 #3479)
+#3477 := (iff #2924 #3476)
+#3478 := [rewrite]: #3477
+#3481 := [monotonicity #3478]: #3480
+#3485 := [trans #3481 #3483]: #3484
+#3488 := [quant-intro #3485]: #3487
+#3472 := (iff #1541 #3471)
+#3469 := (iff #1538 #3466)
+#3452 := (or #636 #1347)
+#3463 := (or #3452 #1534)
+#3467 := (iff #3463 #3466)
+#3468 := [rewrite]: #3467
+#3464 := (iff #1538 #3463)
+#3461 := (iff #1531 #3452)
+#3453 := (not #3452)
+#3456 := (not #3453)
+#3459 := (iff #3456 #3452)
+#3460 := [rewrite]: #3459
+#3457 := (iff #1531 #3456)
+#3454 := (iff #1526 #3453)
+#3455 := [rewrite]: #3454
+#3458 := [monotonicity #3455]: #3457
+#3462 := [trans #3458 #3460]: #3461
+#3465 := [monotonicity #3462]: #3464
+#3470 := [trans #3465 #3468]: #3469
+#3473 := [quant-intro #3470]: #3472
+#3491 := [monotonicity #3473 #3488]: #3490
+#3499 := [trans #3491 #3497]: #3498
+#3450 := (iff #2890 #3449)
+#3447 := (iff #2887 #3444)
+#3430 := (or #2286 #3429)
+#3441 := (or #3430 #2882)
+#3445 := (iff #3441 #3444)
+#3446 := [rewrite]: #3445
+#3442 := (iff #2887 #3441)
+#3439 := (iff #2869 #3430)
+#3431 := (not #3430)
+#3434 := (not #3431)
+#3437 := (iff #3434 #3430)
+#3438 := [rewrite]: #3437
+#3435 := (iff #2869 #3434)
+#3432 := (iff #2866 #3431)
+#3433 := [rewrite]: #3432
+#3436 := [monotonicity #3433]: #3435
+#3440 := [trans #3436 #3438]: #3439
+#3443 := [monotonicity #3440]: #3442
+#3448 := [trans #3443 #3446]: #3447
+#3451 := [monotonicity #3448]: #3450
+#3502 := [monotonicity #3451 #3499]: #3501
+#3427 := (iff #1517 #3426)
+#3424 := (iff #1512 #3421)
+#3407 := (or #630 #3406)
+#3418 := (or #3407 #1504)
+#3422 := (iff #3418 #3421)
+#3423 := [rewrite]: #3422
+#3419 := (iff #1512 #3418)
+#3416 := (iff #664 #3407)
+#3408 := (not #3407)
+#3411 := (not #3408)
+#3414 := (iff #3411 #3407)
+#3415 := [rewrite]: #3414
+#3412 := (iff #664 #3411)
+#3409 := (iff #656 #3408)
+#3410 := [rewrite]: #3409
+#3413 := [monotonicity #3410]: #3412
+#3417 := [trans #3413 #3415]: #3416
+#3420 := [monotonicity #3417]: #3419
+#3425 := [trans #3420 #3423]: #3424
+#3428 := [quant-intro #3425]: #3427
+#3505 := [monotonicity #3428 #3502]: #3504
+#3513 := [trans #3505 #3511]: #3512
+#3404 := (iff #2863 #3403)
+#3401 := (iff #2860 #3398)
+#3384 := (or #3383 #2257)
+#3395 := (or #3384 #2855)
+#3399 := (iff #3395 #3398)
+#3400 := [rewrite]: #3399
+#3396 := (iff #2860 #3395)
+#3393 := (iff #2844 #3384)
+#3385 := (not #3384)
+#3388 := (not #3385)
+#3391 := (iff #3388 #3384)
+#3392 := [rewrite]: #3391
+#3389 := (iff #2844 #3388)
+#3386 := (iff #2841 #3385)
+#3387 := [rewrite]: #3386
+#3390 := [monotonicity #3387]: #3389
+#3394 := [trans #3390 #3392]: #3393
+#3397 := [monotonicity #3394]: #3396
+#3402 := [trans #3397 #3400]: #3401
+#3405 := [monotonicity #3402]: #3404
+#3516 := [monotonicity #3405 #3513]: #3515
+#3519 := [monotonicity #3516]: #3518
+#3526 := [trans #3519 #3524]: #3525
+#3529 := [monotonicity #3526]: #3528
+#3532 := [monotonicity #3529]: #3531
+#3539 := [trans #3532 #3537]: #3538
+#3542 := [monotonicity #3539]: #3541
+#3545 := [monotonicity #3542]: #3544
+#3552 := [trans #3545 #3550]: #3551
+#3555 := [monotonicity #3552]: #3554
+#3558 := [monotonicity #3555]: #3557
+#3565 := [trans #3558 #3563]: #3564
+#3568 := [monotonicity #3565]: #3567
+#3381 := (iff #1631 #3380)
+#3378 := (iff #1628 #3375)
+#3372 := (or #3355 #1625)
+#3376 := (iff #3372 #3375)
+#3377 := [rewrite]: #3376
+#3373 := (iff #1628 #3372)
+#3370 := (iff #1620 #3355)
+#3365 := (not #3356)
+#3368 := (iff #3365 #3355)
+#3369 := [rewrite]: #3368
+#3366 := (iff #1620 #3365)
+#3357 := (iff #1462 #3356)
+#3358 := [rewrite]: #3357
+#3367 := [monotonicity #3358]: #3366
+#3371 := [trans #3367 #3369]: #3370
+#3374 := [monotonicity #3371]: #3373
+#3379 := [trans #3374 #3377]: #3378
+#3382 := [quant-intro #3379]: #3381
+#3363 := (iff #1473 #3362)
+#3360 := (iff #1468 #3359)
+#3361 := [monotonicity #3358]: #3360
+#3364 := [quant-intro #3361]: #3363
+#3571 := [monotonicity #3364 #3382 #3568]: #3570
+#3580 := [trans #3571 #3578]: #3579
+#3731 := [monotonicity #3580 #3728]: #3730
+#3353 := (iff #2804 #3352)
+#3350 := (iff #2801 #3347)
+#3327 := (or #68 #1406)
+#3344 := (or #3327 #3341)
+#3348 := (iff #3344 #3347)
+#3349 := [rewrite]: #3348
+#3345 := (iff #2801 #3344)
+#3342 := (iff #2798 #3341)
+#3343 := [rewrite]: #3342
+#3336 := (iff #1413 #3327)
+#3328 := (not #3327)
+#3331 := (not #3328)
+#3334 := (iff #3331 #3327)
+#3335 := [rewrite]: #3334
+#3332 := (iff #1413 #3331)
+#3329 := (iff #1410 #3328)
+#3330 := [rewrite]: #3329
+#3333 := [monotonicity #3330]: #3332
+#3337 := [trans #3333 #3335]: #3336
+#3346 := [monotonicity #3337 #3343]: #3345
+#3351 := [trans #3346 #3349]: #3350
+#3354 := [quant-intro #3351]: #3353
+#3325 := (iff #2764 #3324)
+#3322 := (iff #2759 #3319)
+#3299 := (or #68 #1388)
+#3316 := (or #3299 #3313)
+#3320 := (iff #3316 #3319)
+#3321 := [rewrite]: #3320
+#3317 := (iff #2759 #3316)
+#3314 := (iff #2753 #3313)
+#3315 := [rewrite]: #3314
+#3308 := (iff #1395 #3299)
+#3300 := (not #3299)
+#3303 := (not #3300)
+#3306 := (iff #3303 #3299)
+#3307 := [rewrite]: #3306
+#3304 := (iff #1395 #3303)
+#3301 := (iff #1392 #3300)
+#3302 := [rewrite]: #3301
+#3305 := [monotonicity #3302]: #3304
+#3309 := [trans #3305 #3307]: #3308
+#3318 := [monotonicity #3309 #3315]: #3317
+#3323 := [trans #3318 #3321]: #3322
+#3326 := [quant-intro #3323]: #3325
+#3297 := (iff #1837 #3296)
+#3294 := (iff #1832 #3291)
+#3277 := (or #3276 #505)
+#3288 := (or #3277 #1416)
+#3292 := (iff #3288 #3291)
+#3293 := [rewrite]: #3292
+#3289 := (iff #1832 #3288)
+#3286 := (iff #517 #3277)
+#3278 := (not #3277)
+#3281 := (not #3278)
+#3284 := (iff #3281 #3277)
+#3285 := [rewrite]: #3284
+#3282 := (iff #517 #3281)
+#3279 := (iff #511 #3278)
+#3280 := [rewrite]: #3279
+#3283 := [monotonicity #3280]: #3282
+#3287 := [trans #3283 #3285]: #3286
+#3290 := [monotonicity #3287]: #3289
+#3295 := [trans #3290 #3293]: #3294
+#3298 := [quant-intro #3295]: #3297
+#3274 := (iff #1821 #3273)
+#3271 := (iff #1818 #3268)
+#3254 := (or #508 #1347)
+#3265 := (or #3254 #1815)
+#3269 := (iff #3265 #3268)
+#3270 := [rewrite]: #3269
+#3266 := (iff #1818 #3265)
+#3263 := (iff #1812 #3254)
+#3255 := (not #3254)
+#3258 := (not #3255)
+#3261 := (iff #3258 #3254)
+#3262 := [rewrite]: #3261
+#3259 := (iff #1812 #3258)
+#3256 := (iff #1807 #3255)
+#3257 := [rewrite]: #3256
+#3260 := [monotonicity #3257]: #3259
+#3264 := [trans #3260 #3262]: #3263
+#3267 := [monotonicity #3264]: #3266
+#3272 := [trans #3267 #3270]: #3271
+#3275 := [quant-intro #3272]: #3274
+#3734 := [monotonicity #3275 #3298 #3326 #3354 #3731]: #3733
+#3745 := [trans #3734 #3743]: #3744
+#3252 := (iff #2715 #3249)
+#3244 := (and #2086 #3241 #2691)
+#3250 := (iff #3244 #3249)
+#3251 := [rewrite]: #3250
+#3245 := (iff #2715 #3244)
+#3242 := (iff #2685 #3241)
+#3239 := (iff #2682 #3230)
+#3231 := (not #3230)
+#3234 := (not #3231)
+#3237 := (iff #3234 #3230)
+#3238 := [rewrite]: #3237
+#3235 := (iff #2682 #3234)
+#3232 := (iff #2679 #3231)
+#3233 := [rewrite]: #3232
+#3236 := [monotonicity #3233]: #3235
+#3240 := [trans #3236 #3238]: #3239
+#3243 := [quant-intro #3240]: #3242
+#3246 := [monotonicity #3243]: #3245
+#3253 := [trans #3246 #3251]: #3252
+#3748 := [monotonicity #3253 #3745]: #3747
+#3227 := (iff #1360 #3226)
+#3224 := (iff #1357 #3221)
+#3207 := (or #78 #1347)
+#3218 := (or #1342 #3207)
+#3222 := (iff #3218 #3221)
+#3223 := [rewrite]: #3222
+#3219 := (iff #1357 #3218)
+#3216 := (iff #1354 #3207)
+#3208 := (not #3207)
+#3211 := (not #3208)
+#3214 := (iff #3211 #3207)
+#3215 := [rewrite]: #3214
+#3212 := (iff #1354 #3211)
+#3209 := (iff #1351 #3208)
+#3210 := [rewrite]: #3209
+#3213 := [monotonicity #3210]: #3212
+#3217 := [trans #3213 #3215]: #3216
+#3220 := [monotonicity #3217]: #3219
+#3225 := [trans #3220 #3223]: #3224
+#3228 := [quant-intro #3225]: #3227
+#3751 := [monotonicity #3228 #3748]: #3750
+#3759 := [trans #3751 #3757]: #3758
+#3205 := (iff #2676 #3204)
+#3202 := (iff #2673 #3199)
+#3185 := (or #2057 #3184)
+#3196 := (or #2664 #3185)
+#3200 := (iff #3196 #3199)
+#3201 := [rewrite]: #3200
+#3197 := (iff #2673 #3196)
+#3194 := (iff #2670 #3185)
+#3186 := (not #3185)
+#3189 := (not #3186)
+#3192 := (iff #3189 #3185)
+#3193 := [rewrite]: #3192
+#3190 := (iff #2670 #3189)
+#3187 := (iff #2667 #3186)
+#3188 := [rewrite]: #3187
+#3191 := [monotonicity #3188]: #3190
+#3195 := [trans #3191 #3193]: #3194
+#3198 := [monotonicity #3195]: #3197
+#3203 := [trans #3198 #3201]: #3202
+#3206 := [monotonicity #3203]: #3205
+#3762 := [monotonicity #3206 #3759]: #3761
+#3182 := (iff #1334 #3181)
+#3179 := (iff #1329 #3176)
+#3162 := (or #77 #2632)
+#3173 := (or #3162 #1322)
+#3177 := (iff #3173 #3176)
+#3178 := [rewrite]: #3177
+#3174 := (iff #1329 #3173)
+#3171 := (iff #460 #3162)
+#3163 := (not #3162)
+#3166 := (not #3163)
+#3169 := (iff #3166 #3162)
+#3170 := [rewrite]: #3169
+#3167 := (iff #460 #3166)
+#3164 := (iff #454 #3163)
+#3165 := [rewrite]: #3164
+#3168 := [monotonicity #3165]: #3167
+#3172 := [trans #3168 #3170]: #3171
+#3175 := [monotonicity #3172]: #3174
+#3180 := [trans #3175 #3178]: #3179
+#3183 := [quant-intro #3180]: #3182
+#3765 := [monotonicity #3183 #3762]: #3764
+#3773 := [trans #3765 #3771]: #3772
+#2534 := (iff #2657 #2421)
+#2199 := (iff #2654 #2166)
+#2042 := (or #2266 #2034)
+#2297 := (or #2042 #2649)
+#2167 := (iff #2297 #2166)
+#2198 := [rewrite]: #2167
+#2499 := (iff #2654 #2297)
+#2138 := (iff #2638 #2042)
+#1973 := (not #2042)
+#2218 := (not #1973)
+#2018 := (iff #2218 #2042)
+#2137 := [rewrite]: #2018
+#2219 := (iff #2638 #2218)
+#1974 := (iff #2635 #1973)
+#2043 := [rewrite]: #1974
+#2017 := [monotonicity #2043]: #2219
+#2296 := [trans #2017 #2137]: #2138
+#2500 := [monotonicity #2296]: #2499
+#2420 := [trans #2500 #2198]: #2199
+#2535 := [monotonicity #2420]: #2534
+#3776 := [monotonicity #2535 #3773]: #3775
+#3779 := [monotonicity #3776]: #3778
+#3786 := [trans #3779 #3784]: #3785
+#3789 := [monotonicity #3786]: #3788
+#3792 := [monotonicity #3789]: #3791
+#3799 := [trans #3792 #3797]: #3798
+#3802 := [monotonicity #3799]: #3801
+#2513 := (* -1::int #2512)
+#2515 := (+ #2514 #2513)
+#2518 := (+ #2517 #2515)
+#2519 := (>= #2518 0::int)
+#2528 := (and #2527 #2523)
+#2529 := (not #2528)
+#2530 := (or #2529 #2519)
+#2531 := (not #2530)
+#2550 := (or #2531 #2546)
+#2489 := (+ #2488 #1707)
+#2492 := (+ #2491 #2489)
+#2493 := (= #2492 0::int)
+#2494 := (>= #2489 0::int)
+#2495 := (not #2494)
+#2496 := (and #2495 #2493)
+#2501 := (or #1716 #2496)
+#2504 := (forall (vars (?x64 T2)) #2501)
+#2554 := (and #2504 #2550)
+#2453 := (+ #2452 #2450)
+#2454 := (= #2453 0::int)
+#2457 := (and #2456 #2454)
+#2473 := (not #2457)
+#2476 := (forall (vars (?x65 T2)) #2473)
+#2462 := (= ?x64!17 uf_11)
+#2463 := (not #2462)
+#2464 := (and #2463 #2461)
+#2465 := (not #2464)
+#2470 := (not #2465)
+#2480 := (and #2470 #2476)
+#2558 := (or #2480 #2554)
+#2438 := (not #1053)
+#2435 := (not #1071)
+#2432 := (not #1044)
+#2429 := (not #1062)
+#2562 := (and #2429 #2432 #2435 #2438 #2444 #2558)
+#2417 := (and #2416 #2413)
+#2311 := (+ #2310 #2308)
+#2312 := (= #2311 0::int)
+#2315 := (and #630 #2314 #2312)
+#2332 := (not #2315)
+#2335 := (forall (vars (?x53 T2)) #2332)
+#2320 := (= ?x52!15 uf_11)
+#2321 := (not #2320)
+#2322 := (and #2321 #2319)
+#2323 := (not #2322)
+#2329 := (not #2323)
+#2339 := (and #2329 #2335)
+#2344 := (and #1541 #2339)
+#2277 := (* -1::int #2276)
+#2279 := (+ #2278 #2277)
+#2282 := (+ #2281 #2279)
+#2283 := (>= #2282 0::int)
+#2290 := (and #2289 #2287)
+#2291 := (not #2290)
+#2292 := (or #2291 #2283)
+#2293 := (not #2292)
+#2348 := (or #2293 #2344)
+#2352 := (and #1517 #2348)
+#2250 := (* -1::int #2249)
+#2252 := (+ #2251 #2250)
+#2253 := (>= #2252 0::int)
+#2259 := (and #2258 #2255)
+#2260 := (not #2259)
+#2261 := (or #2260 #2253)
+#2262 := (not #2261)
+#2356 := (or #2262 #2352)
+#2360 := (and #1498 #2356)
+#2364 := (or #2235 #2360)
+#2229 := (not #1492)
+#2368 := (and #2229 #2364)
+#2372 := (or #1492 #2368)
+#2376 := (and #642 #2372)
+#2213 := (= #2212 #2211)
+#2214 := (or #2213 #2210)
+#2215 := (not #2214)
+#2380 := (or #2215 #2376)
+#2384 := (and #1484 #2380)
+#2191 := (* -1::int #2190)
+#2193 := (+ #2192 #2191)
+#2194 := (>= #2193 0::int)
+#2195 := (not #2194)
+#2388 := (or #2195 #2384)
+#2177 := (not #876)
+#2425 := (and #2177 #588 #1473 #2388 #1631 #1649 #1657 #2417)
+#2566 := (or #2425 #2562)
+#2154 := (+ #2153 #1404)
+#2157 := (+ #2156 #2154)
+#2158 := (= #2157 0::int)
+#2159 := (>= #2154 0::int)
+#2160 := (not #2159)
+#2163 := (and #2162 #2160 #2158)
+#2168 := (or #1413 #2163)
+#2171 := (forall (vars (?x39 T2)) #2168)
+#2126 := (+ #1386 #2125)
+#2128 := (+ #2127 #2126)
+#2129 := (= #2128 0::int)
+#2130 := (+ #2127 #1386)
+#2131 := (>= #2130 0::int)
+#2132 := (not #2131)
+#2134 := (and #2133 #2132 #2129)
+#2141 := (or #2134 #1395)
+#2144 := (forall (vars (?x32 T2)) #2141)
+#2120 := (not #1854)
+#2591 := (and #2120 #2144 #2171 #2566 #1821 #1837 #1846)
+#2087 := (= ?x32!5 uf_11)
+#2088 := (not #2087)
+#2089 := (and #2088 #2086)
+#2090 := (not #2089)
+#2112 := (not #2090)
+#2099 := (and #77 #2098 #2095)
+#2105 := (not #2099)
+#2108 := (forall (vars (?x33 T2)) #2105)
+#2115 := (and #2108 #2112)
+#2595 := (or #2115 #2591)
+#2599 := (and #1360 #2595)
+#2060 := (and #2059 #2058)
+#2061 := (not #2060)
+#2064 := (+ #2063 #2054)
+#2066 := (+ #2065 #2064)
+#2067 := (>= #2066 0::int)
+#2068 := (or #2067 #2061)
+#2069 := (not #2068)
+#2603 := (or #2069 #2599)
+#2607 := (and #1334 #2603)
+#2029 := (* -1::int #2028)
+#2031 := (+ #2030 #2029)
+#2032 := (>= #2031 0::int)
+#2036 := (and #2035 #2033)
+#2037 := (not #2036)
+#2038 := (or #2037 #2032)
+#2039 := (not #2038)
+#2611 := (or #2039 #2607)
+#2615 := (and #1314 #2611)
+#2619 := (or #2014 #2615)
+#1969 := (not #1308)
+#2623 := (and #1969 #2619)
+#2627 := (or #1308 #2623)
+#3160 := (iff #2627 #3159)
+#3157 := (iff #2623 #3156)
+#3154 := (iff #2619 #3153)
+#3151 := (iff #2615 #3150)
+#3148 := (iff #2611 #3147)
+#3145 := (iff #2607 #3144)
+#3142 := (iff #2603 #3141)
+#3139 := (iff #2599 #3138)
+#3136 := (iff #2595 #3135)
+#3133 := (iff #2591 #3130)
+#3127 := (and #109 #2764 #2804 #3124 #1821 #1837 #1846)
+#3131 := (iff #3127 #3130)
+#3132 := [rewrite]: #3131
+#3128 := (iff #2591 #3127)
+#3125 := (iff #2566 #3124)
+#3122 := (iff #2562 #3121)
+#3119 := (iff #2558 #3118)
+#3116 := (iff #2554 #3115)
+#3113 := (iff #2550 #3110)
+#3107 := (or #3104 #2546)
+#3111 := (iff #3107 #3110)
+#3112 := [rewrite]: #3111
+#3108 := (iff #2550 #3107)
+#3105 := (iff #2531 #3104)
+#3102 := (iff #2530 #3101)
+#3099 := (iff #2519 #3096)
+#3087 := (+ #2514 #2517)
+#3088 := (+ #2513 #3087)
+#3091 := (>= #3088 0::int)
+#3097 := (iff #3091 #3096)
+#3098 := [rewrite]: #3097
+#3092 := (iff #2519 #3091)
+#3089 := (= #2518 #3088)
+#3090 := [rewrite]: #3089
+#3093 := [monotonicity #3090]: #3092
+#3100 := [trans #3093 #3098]: #3099
+#3085 := (iff #2529 #3084)
+#3082 := (iff #2528 #3081)
+#3083 := [rewrite]: #3082
+#3086 := [monotonicity #3083]: #3085
+#3103 := [monotonicity #3086 #3100]: #3102
+#3106 := [monotonicity #3103]: #3105
+#3109 := [monotonicity #3106]: #3108
+#3114 := [trans #3109 #3112]: #3113
+#3079 := (iff #2504 #3078)
+#3076 := (iff #2501 #3075)
+#3073 := (iff #2496 #3072)
+#3070 := (iff #2493 #3067)
+#3057 := (+ #2488 #2491)
+#3058 := (+ #1707 #3057)
+#3061 := (= #3058 0::int)
+#3068 := (iff #3061 #3067)
+#3069 := [rewrite]: #3068
+#3062 := (iff #2493 #3061)
+#3059 := (= #2492 #3058)
+#3060 := [rewrite]: #3059
+#3063 := [monotonicity #3060]: #3062
+#3071 := [trans #3063 #3069]: #3070
+#3055 := (iff #2495 #3054)
+#3052 := (iff #2494 #3049)
+#3041 := (+ #1707 #2488)
+#3044 := (>= #3041 0::int)
+#3050 := (iff #3044 #3049)
+#3051 := [rewrite]: #3050
+#3045 := (iff #2494 #3044)
+#3042 := (= #2489 #3041)
+#3043 := [rewrite]: #3042
+#3046 := [monotonicity #3043]: #3045
+#3053 := [trans #3046 #3051]: #3052
+#3056 := [monotonicity #3053]: #3055
+#3074 := [monotonicity #3056 #3071]: #3073
+#3077 := [monotonicity #3074]: #3076
+#3080 := [quant-intro #3077]: #3079
+#3117 := [monotonicity #3080 #3114]: #3116
+#3039 := (iff #2480 #3036)
+#3002 := (and #2461 #2996)
+#3033 := (and #3002 #3030)
+#3037 := (iff #3033 #3036)
+#3038 := [rewrite]: #3037
+#3034 := (iff #2480 #3033)
+#3031 := (iff #2476 #3030)
+#3028 := (iff #2473 #3027)
+#3025 := (iff #2457 #3024)
+#3022 := (iff #2454 #3021)
+#3019 := (= #2453 #3018)
+#3020 := [rewrite]: #3019
+#3023 := [monotonicity #3020]: #3022
+#3026 := [monotonicity #3023]: #3025
+#3029 := [monotonicity #3026]: #3028
+#3032 := [quant-intro #3029]: #3031
+#3015 := (iff #2470 #3002)
+#3007 := (not #3002)
+#3010 := (not #3007)
+#3013 := (iff #3010 #3002)
+#3014 := [rewrite]: #3013
+#3011 := (iff #2470 #3010)
+#3008 := (iff #2465 #3007)
+#3005 := (iff #2464 #3002)
+#2999 := (and #2996 #2461)
+#3003 := (iff #2999 #3002)
+#3004 := [rewrite]: #3003
+#3000 := (iff #2464 #2999)
+#2997 := (iff #2463 #2996)
+#2994 := (iff #2462 #2993)
+#2995 := [rewrite]: #2994
+#2998 := [monotonicity #2995]: #2997
+#3001 := [monotonicity #2998]: #3000
+#3006 := [trans #3001 #3004]: #3005
+#3009 := [monotonicity #3006]: #3008
+#3012 := [monotonicity #3009]: #3011
+#3016 := [trans #3012 #3014]: #3015
+#3035 := [monotonicity #3016 #3032]: #3034
+#3040 := [trans #3035 #3038]: #3039
+#3120 := [monotonicity #3040 #3117]: #3119
+#2991 := (iff #2438 #933)
+#2992 := [rewrite]: #2991
+#2989 := (iff #2435 #930)
+#2990 := [rewrite]: #2989
+#2987 := (iff #2432 #234)
+#2988 := [rewrite]: #2987
+#2985 := (iff #2429 #229)
+#2986 := [rewrite]: #2985
+#3123 := [monotonicity #2986 #2988 #2990 #2992 #3120]: #3122
+#2983 := (iff #2425 #2980)
+#2977 := (and #151 #588 #1473 #2974 #1631 #1649 #1657 #2417)
+#2981 := (iff #2977 #2980)
+#2982 := [rewrite]: #2981
+#2978 := (iff #2425 #2977)
+#2975 := (iff #2388 #2974)
+#2972 := (iff #2384 #2971)
+#2969 := (iff #2380 #2968)
+#2966 := (iff #2376 #2965)
+#2963 := (iff #2372 #2962)
+#2960 := (iff #2368 #2959)
+#2957 := (iff #2364 #2956)
+#2954 := (iff #2360 #2953)
+#2951 := (iff #2356 #2950)
+#2948 := (iff #2352 #2947)
+#2945 := (iff #2348 #2944)
+#2942 := (iff #2344 #2939)
+#2902 := (and #2319 #2896)
+#2933 := (and #2902 #2930)
+#2936 := (and #1541 #2933)
+#2940 := (iff #2936 #2939)
+#2941 := [rewrite]: #2940
+#2937 := (iff #2344 #2936)
+#2934 := (iff #2339 #2933)
+#2931 := (iff #2335 #2930)
+#2928 := (iff #2332 #2927)
+#2925 := (iff #2315 #2924)
+#2922 := (iff #2312 #2921)
+#2919 := (= #2311 #2918)
+#2920 := [rewrite]: #2919
+#2923 := [monotonicity #2920]: #2922
+#2926 := [monotonicity #2923]: #2925
+#2929 := [monotonicity #2926]: #2928
+#2932 := [quant-intro #2929]: #2931
+#2915 := (iff #2329 #2902)
+#2907 := (not #2902)
+#2910 := (not #2907)
+#2913 := (iff #2910 #2902)
+#2914 := [rewrite]: #2913
+#2911 := (iff #2329 #2910)
+#2908 := (iff #2323 #2907)
+#2905 := (iff #2322 #2902)
+#2899 := (and #2896 #2319)
+#2903 := (iff #2899 #2902)
+#2904 := [rewrite]: #2903
+#2900 := (iff #2322 #2899)
+#2897 := (iff #2321 #2896)
+#2894 := (iff #2320 #2893)
+#2895 := [rewrite]: #2894
+#2898 := [monotonicity #2895]: #2897
+#2901 := [monotonicity #2898]: #2900
+#2906 := [trans #2901 #2904]: #2905
+#2909 := [monotonicity #2906]: #2908
+#2912 := [monotonicity #2909]: #2911
+#2916 := [trans #2912 #2914]: #2915
+#2935 := [monotonicity #2916 #2932]: #2934
+#2938 := [monotonicity #2935]: #2937
+#2943 := [trans #2938 #2941]: #2942
+#2891 := (iff #2293 #2890)
+#2888 := (iff #2292 #2887)
+#2885 := (iff #2283 #2882)
+#2872 := (+ #2278 #2281)
+#2873 := (+ #2277 #2872)
+#2876 := (>= #2873 0::int)
+#2883 := (iff #2876 #2882)
+#2884 := [rewrite]: #2883
+#2877 := (iff #2283 #2876)
+#2874 := (= #2282 #2873)
+#2875 := [rewrite]: #2874
+#2878 := [monotonicity #2875]: #2877
+#2886 := [trans #2878 #2884]: #2885
+#2870 := (iff #2291 #2869)
+#2867 := (iff #2290 #2866)
+#2868 := [rewrite]: #2867
+#2871 := [monotonicity #2868]: #2870
+#2889 := [monotonicity #2871 #2886]: #2888
+#2892 := [monotonicity #2889]: #2891
+#2946 := [monotonicity #2892 #2943]: #2945
+#2949 := [monotonicity #2946]: #2948
+#2864 := (iff #2262 #2863)
+#2861 := (iff #2261 #2860)
+#2858 := (iff #2253 #2855)
+#2847 := (+ #2250 #2251)
+#2850 := (>= #2847 0::int)
+#2856 := (iff #2850 #2855)
+#2857 := [rewrite]: #2856
+#2851 := (iff #2253 #2850)
+#2848 := (= #2252 #2847)
+#2849 := [rewrite]: #2848
+#2852 := [monotonicity #2849]: #2851
+#2859 := [trans #2852 #2857]: #2858
+#2845 := (iff #2260 #2844)
+#2842 := (iff #2259 #2841)
+#2843 := [rewrite]: #2842
+#2846 := [monotonicity #2843]: #2845
+#2862 := [monotonicity #2846 #2859]: #2861
+#2865 := [monotonicity #2862]: #2864
+#2952 := [monotonicity #2865 #2949]: #2951
+#2955 := [monotonicity #2952]: #2954
+#2958 := [monotonicity #2955]: #2957
+#2839 := (iff #2229 #173)
+#2840 := [rewrite]: #2839
+#2961 := [monotonicity #2840 #2958]: #2960
+#2964 := [monotonicity #2961]: #2963
+#2967 := [monotonicity #2964]: #2966
+#2837 := (iff #2215 #2836)
+#2834 := (iff #2214 #2831)
+#2828 := (or #2825 #2210)
+#2832 := (iff #2828 #2831)
+#2833 := [rewrite]: #2832
+#2829 := (iff #2214 #2828)
+#2826 := (iff #2213 #2825)
+#2827 := [rewrite]: #2826
+#2830 := [monotonicity #2827]: #2829
+#2835 := [trans #2830 #2833]: #2834
+#2838 := [monotonicity #2835]: #2837
+#2970 := [monotonicity #2838 #2967]: #2969
+#2973 := [monotonicity #2970]: #2972
+#2823 := (iff #2195 #2822)
+#2820 := (iff #2194 #2817)
+#2809 := (+ #2191 #2192)
+#2812 := (>= #2809 0::int)
+#2818 := (iff #2812 #2817)
+#2819 := [rewrite]: #2818
+#2813 := (iff #2194 #2812)
+#2810 := (= #2193 #2809)
+#2811 := [rewrite]: #2810
+#2814 := [monotonicity #2811]: #2813
+#2821 := [trans #2814 #2819]: #2820
+#2824 := [monotonicity #2821]: #2823
+#2976 := [monotonicity #2824 #2973]: #2975
+#2807 := (iff #2177 #151)
+#2808 := [rewrite]: #2807
+#2979 := [monotonicity #2808 #2976]: #2978
+#2984 := [trans #2979 #2982]: #2983
+#3126 := [monotonicity #2984 #3123]: #3125
+#2805 := (iff #2171 #2804)
+#2802 := (iff #2168 #2801)
+#2799 := (iff #2163 #2798)
+#2796 := (iff #2158 #2793)
+#2783 := (+ #2153 #2156)
+#2784 := (+ #1404 #2783)
+#2787 := (= #2784 0::int)
+#2794 := (iff #2787 #2793)
+#2795 := [rewrite]: #2794
+#2788 := (iff #2158 #2787)
+#2785 := (= #2157 #2784)
+#2786 := [rewrite]: #2785
+#2789 := [monotonicity #2786]: #2788
+#2797 := [trans #2789 #2795]: #2796
+#2781 := (iff #2160 #2780)
+#2778 := (iff #2159 #2775)
+#2767 := (+ #1404 #2153)
+#2770 := (>= #2767 0::int)
+#2776 := (iff #2770 #2775)
+#2777 := [rewrite]: #2776
+#2771 := (iff #2159 #2770)
+#2768 := (= #2154 #2767)
+#2769 := [rewrite]: #2768
+#2772 := [monotonicity #2769]: #2771
+#2779 := [trans #2772 #2777]: #2778
+#2782 := [monotonicity #2779]: #2781
+#2800 := [monotonicity #2782 #2797]: #2799
+#2803 := [monotonicity #2800]: #2802
+#2806 := [quant-intro #2803]: #2805
+#2765 := (iff #2144 #2764)
+#2762 := (iff #2141 #2759)
+#2756 := (or #2753 #1395)
+#2760 := (iff #2756 #2759)
+#2761 := [rewrite]: #2760
+#2757 := (iff #2141 #2756)
+#2754 := (iff #2134 #2753)
+#2751 := (iff #2129 #2748)
+#2738 := (+ #2125 #2127)
+#2739 := (+ #1386 #2738)
+#2742 := (= #2739 0::int)
+#2749 := (iff #2742 #2748)
+#2750 := [rewrite]: #2749
+#2743 := (iff #2129 #2742)
+#2740 := (= #2128 #2739)
+#2741 := [rewrite]: #2740
+#2744 := [monotonicity #2741]: #2743
+#2752 := [trans #2744 #2750]: #2751
+#2736 := (iff #2132 #2735)
+#2733 := (iff #2131 #2730)
+#2722 := (+ #1386 #2127)
+#2725 := (>= #2722 0::int)
+#2731 := (iff #2725 #2730)
+#2732 := [rewrite]: #2731
+#2726 := (iff #2131 #2725)
+#2723 := (= #2130 #2722)
+#2724 := [rewrite]: #2723
+#2727 := [monotonicity #2724]: #2726
+#2734 := [trans #2727 #2732]: #2733
+#2737 := [monotonicity #2734]: #2736
+#2755 := [monotonicity #2737 #2752]: #2754
+#2758 := [monotonicity #2755]: #2757
+#2763 := [trans #2758 #2761]: #2762
+#2766 := [quant-intro #2763]: #2765
+#2720 := (iff #2120 #109)
+#2721 := [rewrite]: #2720
+#3129 := [monotonicity #2721 #2766 #2806 #3126]: #3128
+#3134 := [trans #3129 #3132]: #3133
+#2718 := (iff #2115 #2715)
+#2697 := (and #2086 #2691)
+#2712 := (and #2685 #2697)
+#2716 := (iff #2712 #2715)
+#2717 := [rewrite]: #2716
+#2713 := (iff #2115 #2712)
+#2710 := (iff #2112 #2697)
+#2702 := (not #2697)
+#2705 := (not #2702)
+#2708 := (iff #2705 #2697)
+#2709 := [rewrite]: #2708
+#2706 := (iff #2112 #2705)
+#2703 := (iff #2090 #2702)
+#2700 := (iff #2089 #2697)
+#2694 := (and #2691 #2086)
+#2698 := (iff #2694 #2697)
+#2699 := [rewrite]: #2698
+#2695 := (iff #2089 #2694)
+#2692 := (iff #2088 #2691)
+#2689 := (iff #2087 #2688)
+#2690 := [rewrite]: #2689
+#2693 := [monotonicity #2690]: #2692
+#2696 := [monotonicity #2693]: #2695
+#2701 := [trans #2696 #2699]: #2700
+#2704 := [monotonicity #2701]: #2703
+#2707 := [monotonicity #2704]: #2706
+#2711 := [trans #2707 #2709]: #2710
+#2686 := (iff #2108 #2685)
+#2683 := (iff #2105 #2682)
+#2680 := (iff #2099 #2679)
+#2681 := [rewrite]: #2680
+#2684 := [monotonicity #2681]: #2683
+#2687 := [quant-intro #2684]: #2686
+#2714 := [monotonicity #2687 #2711]: #2713
+#2719 := [trans #2714 #2717]: #2718
+#3137 := [monotonicity #2719 #3134]: #3136
+#3140 := [monotonicity #3137]: #3139
+#2677 := (iff #2069 #2676)
+#2674 := (iff #2068 #2673)
+#2671 := (iff #2061 #2670)
+#2668 := (iff #2060 #2667)
+#2669 := [rewrite]: #2668
+#2672 := [monotonicity #2669]: #2671
+#2665 := (iff #2067 #2664)
+#2662 := (= #2066 #2661)
+#2663 := [rewrite]: #2662
+#2666 := [monotonicity #2663]: #2665
+#2675 := [monotonicity #2666 #2672]: #2674
+#2678 := [monotonicity #2675]: #2677
+#3143 := [monotonicity #2678 #3140]: #3142
+#3146 := [monotonicity #3143]: #3145
+#2658 := (iff #2039 #2657)
+#2655 := (iff #2038 #2654)
+#2652 := (iff #2032 #2649)
+#2641 := (+ #2029 #2030)
+#2644 := (>= #2641 0::int)
+#2650 := (iff #2644 #2649)
+#2651 := [rewrite]: #2650
+#2645 := (iff #2032 #2644)
+#2642 := (= #2031 #2641)
+#2643 := [rewrite]: #2642
+#2646 := [monotonicity #2643]: #2645
+#2653 := [trans #2646 #2651]: #2652
+#2639 := (iff #2037 #2638)
+#2636 := (iff #2036 #2635)
+#2637 := [rewrite]: #2636
+#2640 := [monotonicity #2637]: #2639
+#2656 := [monotonicity #2640 #2653]: #2655
+#2659 := [monotonicity #2656]: #2658
+#3149 := [monotonicity #2659 #3146]: #3148
+#3152 := [monotonicity #3149]: #3151
+#3155 := [monotonicity #3152]: #3154
+#2633 := (iff #1969 #81)
+#2634 := [rewrite]: #2633
+#3158 := [monotonicity #2634 #3155]: #3157
+#3161 := [monotonicity #3158]: #3160
+#1943 := (not #1907)
+#2628 := (~ #1943 #2627)
+#2624 := (not #1904)
+#2625 := (~ #2624 #2623)
+#2620 := (not #1901)
+#2621 := (~ #2620 #2619)
+#2616 := (not #1898)
+#2617 := (~ #2616 #2615)
+#2612 := (not #1895)
+#2613 := (~ #2612 #2611)
+#2608 := (not #1892)
+#2609 := (~ #2608 #2607)
+#2604 := (not #1889)
+#2605 := (~ #2604 #2603)
+#2600 := (not #1886)
+#2601 := (~ #2600 #2599)
+#2596 := (not #1883)
+#2597 := (~ #2596 #2595)
+#2592 := (not #1878)
+#2593 := (~ #2592 #2591)
+#2588 := (not #1849)
+#2589 := (~ #2588 #1846)
+#2586 := (~ #1846 #1846)
+#2584 := (~ #1843 #1843)
+#2585 := [refl]: #2584
+#2587 := [nnf-pos #2585]: #2586
+#2590 := [nnf-neg #2587]: #2589
+#2581 := (not #1840)
+#2582 := (~ #2581 #1837)
+#2579 := (~ #1837 #1837)
+#2577 := (~ #1832 #1832)
+#2578 := [refl]: #2577
+#2580 := [nnf-pos #2578]: #2579
+#2583 := [nnf-neg #2580]: #2582
+#2574 := (not #1824)
+#2575 := (~ #2574 #1821)
+#2572 := (~ #1821 #1821)
+#2570 := (~ #1818 #1818)
+#2571 := [refl]: #2570
+#2573 := [nnf-pos #2571]: #2572
+#2576 := [nnf-neg #2573]: #2575
+#2567 := (not #1801)
+#2568 := (~ #2567 #2566)
+#2563 := (not #1796)
+#2564 := (~ #2563 #2562)
+#2559 := (not #1778)
+#2560 := (~ #2559 #2558)
+#2555 := (not #1775)
+#2556 := (~ #2555 #2554)
+#2551 := (not #1772)
+#2552 := (~ #2551 #2550)
+#2547 := (not #1767)
+#2548 := (~ #2547 #2546)
+#2543 := (not #1759)
+#2544 := (~ #2543 #1756)
+#2541 := (~ #1756 #1756)
+#2539 := (~ #1753 #1753)
+#2540 := [refl]: #2539
+#2542 := [nnf-pos #2540]: #2541
+#2545 := [nnf-neg #2542]: #2544
+#2537 := (~ #2536 #2536)
+#2538 := [refl]: #2537
+#2549 := [nnf-neg #2538 #2545]: #2548
+#2532 := (~ #1759 #2531)
+#2533 := [sk]: #2532
+#2553 := [nnf-neg #2533 #2549]: #2552
+#2507 := (not #1741)
+#2508 := (~ #2507 #2504)
+#2505 := (~ #1738 #2504)
+#2502 := (~ #1735 #2501)
+#2497 := (~ #1732 #2496)
+#2498 := [sk]: #2497
+#2485 := (~ #1716 #1716)
+#2486 := [refl]: #2485
+#2503 := [monotonicity #2486 #2498]: #2502
+#2506 := [nnf-pos #2503]: #2505
+#2509 := [nnf-neg #2506]: #2508
+#2557 := [nnf-neg #2509 #2553]: #2556
+#2483 := (~ #1741 #2480)
+#2458 := (exists (vars (?x65 T2)) #2457)
+#2466 := (or #2465 #2458)
+#2467 := (not #2466)
+#2481 := (~ #2467 #2480)
+#2477 := (not #2458)
+#2478 := (~ #2477 #2476)
+#2474 := (~ #2473 #2473)
+#2475 := [refl]: #2474
+#2479 := [nnf-neg #2475]: #2478
+#2471 := (~ #2470 #2470)
+#2472 := [refl]: #2471
+#2482 := [nnf-neg #2472 #2479]: #2481
+#2468 := (~ #1741 #2467)
+#2469 := [sk]: #2468
+#2484 := [trans #2469 #2482]: #2483
+#2561 := [nnf-neg #2484 #2557]: #2560
+#2445 := (~ #1678 #2444)
+#2442 := (~ #2441 #2441)
+#2443 := [refl]: #2442
+#2446 := [nnf-neg #2443]: #2445
+#2439 := (~ #2438 #2438)
+#2440 := [refl]: #2439
+#2436 := (~ #2435 #2435)
+#2437 := [refl]: #2436
+#2433 := (~ #2432 #2432)
+#2434 := [refl]: #2433
+#2430 := (~ #2429 #2429)
+#2431 := [refl]: #2430
+#2565 := [nnf-neg #2431 #2434 #2437 #2440 #2446 #2561]: #2564
+#2426 := (not #1702)
+#2427 := (~ #2426 #2425)
+#2422 := (not #1678)
+#2423 := (~ #2422 #2417)
+#2418 := (~ #1675 #2417)
+#2419 := [sk]: #2418
+#2424 := [nnf-neg #2419]: #2423
+#2406 := (~ #1657 #1657)
+#2407 := [refl]: #2406
+#2403 := (not #1652)
+#2404 := (~ #2403 #1649)
+#2401 := (~ #1649 #1649)
+#2399 := (~ #1644 #1644)
+#2400 := [refl]: #2399
+#2402 := [nnf-pos #2400]: #2401
+#2405 := [nnf-neg #2402]: #2404
+#2396 := (not #1634)
+#2397 := (~ #2396 #1631)
+#2394 := (~ #1631 #1631)
+#2392 := (~ #1628 #1628)
+#2393 := [refl]: #2392
+#2395 := [nnf-pos #2393]: #2394
+#2398 := [nnf-neg #2395]: #2397
+#2389 := (not #1617)
+#2390 := (~ #2389 #2388)
+#2385 := (not #1614)
+#2386 := (~ #2385 #2384)
+#2381 := (not #1611)
+#2382 := (~ #2381 #2380)
+#2377 := (not #1608)
+#2378 := (~ #2377 #2376)
+#2373 := (not #1605)
+#2374 := (~ #2373 #2372)
+#2369 := (not #1602)
+#2370 := (~ #2369 #2368)
+#2365 := (not #1599)
+#2366 := (~ #2365 #2364)
+#2361 := (not #1596)
+#2362 := (~ #2361 #2360)
+#2357 := (not #1593)
+#2358 := (~ #2357 #2356)
+#2353 := (not #1590)
+#2354 := (~ #2353 #2352)
+#2349 := (not #1587)
+#2350 := (~ #2349 #2348)
+#2345 := (not #1584)
+#2346 := (~ #2345 #2344)
+#2326 := (not #1581)
+#2342 := (~ #2326 #2339)
+#2316 := (exists (vars (?x53 T2)) #2315)
+#2324 := (or #2323 #2316)
+#2325 := (not #2324)
+#2340 := (~ #2325 #2339)
+#2336 := (not #2316)
+#2337 := (~ #2336 #2335)
+#2333 := (~ #2332 #2332)
+#2334 := [refl]: #2333
+#2338 := [nnf-neg #2334]: #2337
+#2330 := (~ #2329 #2329)
+#2331 := [refl]: #2330
+#2341 := [nnf-neg #2331 #2338]: #2340
+#2327 := (~ #2326 #2325)
+#2328 := [sk]: #2327
+#2343 := [trans #2328 #2341]: #2342
+#2302 := (not #1544)
+#2303 := (~ #2302 #1541)
+#2300 := (~ #1541 #1541)
+#2298 := (~ #1538 #1538)
+#2299 := [refl]: #2298
+#2301 := [nnf-pos #2299]: #2300
+#2304 := [nnf-neg #2301]: #2303
+#2347 := [nnf-neg #2304 #2343]: #2346
+#2294 := (~ #1544 #2293)
+#2295 := [sk]: #2294
+#2351 := [nnf-neg #2295 #2347]: #2350
+#2271 := (not #1520)
+#2272 := (~ #2271 #1517)
+#2269 := (~ #1517 #1517)
+#2267 := (~ #1512 #1512)
+#2268 := [refl]: #2267
+#2270 := [nnf-pos #2268]: #2269
+#2273 := [nnf-neg #2270]: #2272
+#2355 := [nnf-neg #2273 #2351]: #2354
+#2263 := (~ #1520 #2262)
+#2264 := [sk]: #2263
+#2359 := [nnf-neg #2264 #2355]: #2358
+#2244 := (not #1501)
+#2245 := (~ #2244 #1498)
+#2242 := (~ #1498 #1498)
+#2240 := (~ #1495 #1495)
+#2241 := [refl]: #2240
+#2243 := [nnf-pos #2241]: #2242
+#2246 := [nnf-neg #2243]: #2245
+#2363 := [nnf-neg #2246 #2359]: #2362
+#2236 := (~ #1501 #2235)
+#2237 := [sk]: #2236
+#2367 := [nnf-neg #2237 #2363]: #2366
+#2230 := (~ #2229 #2229)
+#2231 := [refl]: #2230
+#2371 := [nnf-neg #2231 #2367]: #2370
+#2227 := (~ #1492 #1492)
+#2228 := [refl]: #2227
+#2375 := [nnf-neg #2228 #2371]: #2374
+#2224 := (not #824)
+#2225 := (~ #2224 #642)
+#2222 := (~ #642 #642)
+#2220 := (~ #637 #637)
+#2221 := [refl]: #2220
+#2223 := [nnf-pos #2221]: #2222
+#2226 := [nnf-neg #2223]: #2225
+#2379 := [nnf-neg #2226 #2375]: #2378
+#2216 := (~ #824 #2215)
+#2217 := [sk]: #2216
+#2383 := [nnf-neg #2217 #2379]: #2382
+#2204 := (not #1487)
+#2205 := (~ #2204 #1484)
+#2202 := (~ #1484 #1484)
+#2200 := (~ #1479 #1479)
+#2201 := [refl]: #2200
+#2203 := [nnf-pos #2201]: #2202
+#2206 := [nnf-neg #2203]: #2205
+#2387 := [nnf-neg #2206 #2383]: #2386
+#2196 := (~ #1487 #2195)
+#2197 := [sk]: #2196
+#2391 := [nnf-neg #2197 #2387]: #2390
+#2186 := (not #1476)
+#2187 := (~ #2186 #1473)
+#2184 := (~ #1473 #1473)
+#2182 := (~ #1468 #1468)
+#2183 := [refl]: #2182
+#2185 := [nnf-pos #2183]: #2184
+#2188 := [nnf-neg #2185]: #2187
+#2180 := (~ #588 #588)
+#2181 := [refl]: #2180
+#2178 := (~ #2177 #2177)
+#2179 := [refl]: #2178
+#2428 := [nnf-neg #2179 #2181 #2188 #2391 #2398 #2405 #2407 #2424]: #2427
+#2569 := [nnf-neg #2428 #2565]: #2568
+#2174 := (not #1446)
+#2175 := (~ #2174 #2171)
+#2172 := (~ #1443 #2171)
+#2169 := (~ #1440 #2168)
+#2164 := (~ #1437 #2163)
+#2165 := [sk]: #2164
+#2150 := (~ #1413 #1413)
+#2151 := [refl]: #2150
+#2170 := [monotonicity #2151 #2165]: #2169
+#2173 := [nnf-pos #2170]: #2172
+#2176 := [nnf-neg #2173]: #2175
+#2147 := (not #1857)
+#2148 := (~ #2147 #2144)
+#2145 := (~ #1401 #2144)
+#2142 := (~ #1398 #2141)
+#2139 := (~ #1395 #1395)
+#2140 := [refl]: #2139
+#2135 := (~ #1383 #2134)
+#2136 := [sk]: #2135
+#2143 := [monotonicity #2136 #2140]: #2142
+#2146 := [nnf-pos #2143]: #2145
+#2149 := [nnf-neg #2146]: #2148
+#2121 := (~ #2120 #2120)
+#2122 := [refl]: #2121
+#2594 := [nnf-neg #2122 #2149 #2176 #2569 #2576 #2583 #2590]: #2593
+#2118 := (~ #1857 #2115)
+#2100 := (exists (vars (?x33 T2)) #2099)
+#2101 := (or #2100 #2090)
+#2102 := (not #2101)
+#2116 := (~ #2102 #2115)
+#2113 := (~ #2112 #2112)
+#2114 := [refl]: #2113
+#2109 := (not #2100)
+#2110 := (~ #2109 #2108)
+#2106 := (~ #2105 #2105)
+#2107 := [refl]: #2106
+#2111 := [nnf-neg #2107]: #2110
+#2117 := [nnf-neg #2111 #2114]: #2116
+#2103 := (~ #1857 #2102)
+#2104 := [sk]: #2103
+#2119 := [trans #2104 #2117]: #2118
+#2598 := [nnf-neg #2119 #2594]: #2597
+#2078 := (not #1363)
+#2079 := (~ #2078 #1360)
+#2076 := (~ #1360 #1360)
+#2074 := (~ #1357 #1357)
+#2075 := [refl]: #2074
+#2077 := [nnf-pos #2075]: #2076
+#2080 := [nnf-neg #2077]: #2079
+#2602 := [nnf-neg #2080 #2598]: #2601
+#2070 := (~ #1363 #2069)
+#2071 := [sk]: #2070
+#2606 := [nnf-neg #2071 #2602]: #2605
+#2048 := (not #1337)
+#2049 := (~ #2048 #1334)
+#2046 := (~ #1334 #1334)
+#2044 := (~ #1329 #1329)
+#2045 := [refl]: #2044
+#2047 := [nnf-pos #2045]: #2046
+#2050 := [nnf-neg #2047]: #2049
+#2610 := [nnf-neg #2050 #2606]: #2609
+#2040 := (~ #1337 #2039)
+#2041 := [sk]: #2040
+#2614 := [nnf-neg #2041 #2610]: #2613
+#2023 := (not #1317)
+#2024 := (~ #2023 #1314)
+#2021 := (~ #1314 #1314)
+#2019 := (~ #1313 #1313)
+#2020 := [refl]: #2019
+#2022 := [nnf-pos #2020]: #2021
+#2025 := [nnf-neg #2022]: #2024
+#2618 := [nnf-neg #2025 #2614]: #2617
+#2015 := (~ #1317 #2014)
+#2016 := [sk]: #2015
+#2622 := [nnf-neg #2016 #2618]: #2621
+#1970 := (~ #1969 #1969)
+#2010 := [refl]: #1970
+#2626 := [nnf-neg #2010 #2622]: #2625
+#2008 := (~ #1308 #1308)
+#2009 := [refl]: #2008
+#2629 := [nnf-neg #2009 #2626]: #2628
+#1944 := [not-or-elim #1940]: #1943
+#2630 := [mp~ #1944 #2629]: #2627
+#2631 := [mp #2630 #3161]: #3159
+#3803 := [mp #2631 #3802]: #3800
+#4734 := [mp #3803 #4733]: #4731
+#7295 := [unit-resolution #4734 #5487]: #4728
+#4058 := (or #4725 #4719)
+#4059 := [def-axiom]: #4058
+#7296 := [unit-resolution #4059 #7295]: #4719
+#373 := (<= uf_9 0::int)
+#374 := (not #373)
+#57 := (< 0::int uf_9)
+#375 := (iff #57 #374)
+#376 := [rewrite]: #375
+#369 := [asserted]: #57
+#377 := [mp #369 #376]: #374
+#5901 := (* -1::int #2012)
+#5891 := (+ uf_9 #5901)
+#5892 := (<= #5891 0::int)
+#5472 := (= uf_9 #2012)
+#5745 := (= uf_11 ?x27!0)
+#5918 := (not #5745)
+#5916 := (= #2012 0::int)
+#5836 := (not #5916)
+#5835 := [hypothesis]: #2014
+#5837 := (or #5836 #2013)
+#5896 := [th-lemma]: #5837
+#5922 := [unit-resolution #5896 #5835]: #5836
+#5981 := (or #5347 #5918 #5916)
+#5477 := (= ?x27!0 uf_11)
+#5917 := (not #5477)
+#5890 := (or #5917 #5916)
+#5982 := (or #5347 #5890)
+#5987 := (iff #5982 #5981)
+#5915 := (or #5918 #5916)
+#5984 := (or #5347 #5915)
+#5985 := (iff #5984 #5981)
+#5986 := [rewrite]: #5985
+#6000 := (iff #5982 #5984)
+#5921 := (iff #5890 #5915)
+#5919 := (iff #5917 #5918)
+#5743 := (iff #5477 #5745)
+#5746 := [rewrite]: #5743
+#5920 := [monotonicity #5746]: #5919
+#5980 := [monotonicity #5920]: #5921
+#5979 := [monotonicity #5980]: #6000
+#5988 := [trans #5979 #5986]: #5987
+#5983 := [quant-inst]: #5982
+#6010 := [mp #5983 #5988]: #5981
+#5923 := [unit-resolution #6010 #4740 #5922]: #5918
+#5748 := (or #5472 #5745)
+#4356 := (forall (vars (?x25 T2)) (:pat #4355) #443)
+#4359 := (iff #448 #4356)
+#4357 := (iff #443 #443)
+#4358 := [refl]: #4357
+#4360 := [quant-intro #4358]: #4359
+#1967 := (~ #448 #448)
+#2005 := (~ #443 #443)
+#2006 := [refl]: #2005
+#1968 := [nnf-pos #2006]: #1967
+#1942 := [not-or-elim #1940]: #448
+#2007 := [mp~ #1942 #1968]: #448
+#4361 := [mp #2007 #4360]: #4356
+#5821 := (not #4356)
+#5827 := (or #5821 #5472 #5745)
+#5737 := (or #5477 #5472)
+#5828 := (or #5821 #5737)
+#5894 := (iff #5828 #5827)
+#5830 := (or #5821 #5748)
+#5846 := (iff #5830 #5827)
+#5847 := [rewrite]: #5846
+#5826 := (iff #5828 #5830)
+#5756 := (iff #5737 #5748)
+#5736 := (or #5745 #5472)
+#5752 := (iff #5736 #5748)
+#5753 := [rewrite]: #5752
+#5747 := (iff #5737 #5736)
+#5744 := [monotonicity #5746]: #5747
+#5834 := [trans #5744 #5753]: #5756
+#5831 := [monotonicity #5834]: #5826
+#5895 := [trans #5831 #5847]: #5894
+#5829 := [quant-inst]: #5828
+#5900 := [mp #5829 #5895]: #5827
+#5924 := [unit-resolution #5900 #4361]: #5748
+#5989 := [unit-resolution #5924 #5923]: #5472
+#6012 := (not #5472)
+#6013 := (or #6012 #5892)
+#6014 := [th-lemma]: #6013
+#6042 := [unit-resolution #6014 #5989]: #5892
+#6011 := (<= #2012 0::int)
+#6043 := (or #6011 #2013)
+#6044 := [th-lemma]: #6043
+#6045 := [unit-resolution #6044 #5835]: #6011
+#6046 := [th-lemma #6045 #6042 #377]: false
+#6041 := [lemma #6046]: #2013
+#4053 := (or #4722 #2014 #4716)
+#4054 := [def-axiom]: #4053
+#7297 := [unit-resolution #4054 #6041 #7296]: #4716
+#4077 := (or #4713 #4707)
+#4078 := [def-axiom]: #4077
+#7298 := [unit-resolution #4078 #7297]: #4707
+#4071 := (or #4710 #2421 #4704)
+#4073 := [def-axiom]: #4071
+#7299 := [unit-resolution #4073 #7298 #7294]: #4704
+#4098 := (or #4701 #4695)
+#4099 := [def-axiom]: #4098
+#7300 := [unit-resolution #4099 #7299]: #4695
+#6817 := [hypothesis]: #2059
+#6051 := (or #5709 #3184)
+#6081 := [quant-inst]: #6051
+#6818 := [unit-resolution #6081 #4354 #6817]: false
+#6839 := [lemma #6818]: #3184
+#3960 := (or #3199 #2059)
+#3964 := [def-axiom]: #3960
+#7301 := [unit-resolution #3964 #6839]: #3199
+#4094 := (or #4698 #3204 #4692)
+#4095 := [def-axiom]: #4094
+#7302 := [unit-resolution #4095 #7301 #7300]: #4692
+#4108 := (or #4689 #4683)
+#4129 := [def-axiom]: #4108
+#7303 := [unit-resolution #4129 #7302]: #4683
+#6633 := (= uf_9 #2082)
+#6706 := (not #6633)
+#6684 := [hypothesis]: #4400
+#4274 := (or #4397 #2086)
+#3948 := [def-axiom]: #4274
+#6685 := [unit-resolution #3948 #6684]: #2086
+#6798 := (or #6706 #2085)
+#6840 := [th-lemma]: #6798
+#6835 := [unit-resolution #6840 #6685]: #6706
+#3949 := (or #4397 #2691)
+#4281 := [def-axiom]: #3949
+#6841 := [unit-resolution #4281 #6684]: #2691
+#6695 := (or #5821 #2688 #6633)
+#6680 := (or #2087 #6633)
+#6696 := (or #5821 #6680)
+#6732 := (iff #6696 #6695)
+#6548 := (or #2688 #6633)
+#6694 := (or #5821 #6548)
+#6699 := (iff #6694 #6695)
+#6705 := [rewrite]: #6699
+#6697 := (iff #6696 #6694)
+#6608 := (iff #6680 #6548)
+#6665 := [monotonicity #2690]: #6608
+#6698 := [monotonicity #6665]: #6697
+#6728 := [trans #6698 #6705]: #6732
+#6547 := [quant-inst]: #6696
+#6734 := [mp #6547 #6728]: #6695
+#6842 := [unit-resolution #6734 #4361 #6841 #6835]: false
+#6843 := [lemma #6842]: #4397
+#4116 := (or #4686 #4400 #4680)
+#4117 := [def-axiom]: #4116
+#7304 := [unit-resolution #4117 #6843 #7303]: #4680
+#4149 := (or #4677 #4404)
+#4145 := [def-axiom]: #4149
+#7305 := [unit-resolution #4145 #7304]: #4404
+#24124 := (or #4409 #20405)
+#25438 := [quant-inst]: #24124
+#29563 := [unit-resolution #25438 #7305]: #20405
+#15997 := (* -1::int #15996)
+#15993 := (uf_1 #15992 ?x52!15)
+#15994 := (uf_10 #15993)
+#15995 := (* -1::int #15994)
+#16012 := (+ #15995 #15997)
+#15362 := (uf_4 uf_14 ?x52!15)
+#16013 := (+ #15362 #16012)
+#22006 := (>= #16013 0::int)
+#16016 := (= #16013 0::int)
+#16019 := (not #16016)
+#16004 := (uf_6 uf_15 #15992)
+#16005 := (= uf_8 #16004)
+#16006 := (not #16005)
+#16002 := (+ #15362 #15997)
+#16003 := (<= #16002 0::int)
+#16025 := (or #16003 #16006 #16019)
+#16030 := (not #16025)
+#15397 := (* -1::int #15362)
+#16009 := (+ uf_9 #15397)
+#16010 := (<= #16009 0::int)
+#34324 := (not #16010)
+#15398 := (+ #2306 #15397)
+#14218 := (>= #15398 0::int)
+#15367 := (= #2306 #15362)
+decl uf_3 :: (-> T1 T2)
+#20604 := (uf_3 #15993)
+#32578 := (uf_6 uf_15 #20604)
+#32576 := (= uf_8 #32578)
+#5319 := (uf_6 #150 uf_16)
+#5314 := (= uf_8 #5319)
+decl uf_2 :: (-> T1 T2)
+#6008 := (uf_1 uf_16 uf_11)
+#7128 := (uf_2 #6008)
+#32602 := (= #7128 #20604)
+#32591 := (ite #32602 #5314 #32576)
+#7203 := (uf_7 uf_15 #7128 #5319)
+#32554 := (uf_6 #7203 #20604)
+#32538 := (= uf_8 #32554)
+#32564 := (iff #32538 #32591)
+#30 := (:var 1 T5)
+#20 := (:var 2 T2)
+#29 := (:var 3 T4)
+#31 := (uf_7 #29 #20 #30)
+#32 := (uf_6 #31 #11)
+#4314 := (pattern #32)
+#36 := (uf_6 #29 #11)
+#335 := (= uf_8 #36)
+#35 := (= #30 uf_8)
+#24 := (= #11 #20)
+#338 := (ite #24 #35 #335)
+#34 := (= #32 uf_8)
+#341 := (iff #34 #338)
+#4315 := (forall (vars (?x10 T4) (?x11 T2) (?x12 T5) (?x13 T2)) (:pat #4314) #341)
+#344 := (forall (vars (?x10 T4) (?x11 T2) (?x12 T5) (?x13 T2)) #341)
+#4318 := (iff #344 #4315)
+#4316 := (iff #341 #341)
+#4317 := [refl]: #4316
+#4319 := [quant-intro #4317]: #4318
+#1953 := (~ #344 #344)
+#1989 := (~ #341 #341)
+#1990 := [refl]: #1989
+#1954 := [nnf-pos #1990]: #1953
+#37 := (= #36 uf_8)
+#38 := (ite #24 #35 #37)
+#39 := (iff #34 #38)
+#40 := (forall (vars (?x10 T4) (?x11 T2) (?x12 T5) (?x13 T2)) #39)
+#345 := (iff #40 #344)
+#342 := (iff #39 #341)
+#339 := (iff #38 #338)
+#336 := (iff #37 #335)
+#337 := [rewrite]: #336
+#340 := [monotonicity #337]: #339
+#343 := [monotonicity #340]: #342
+#346 := [quant-intro #343]: #345
+#333 := [asserted]: #40
+#349 := [mp #333 #346]: #344
+#1991 := [mp~ #349 #1954]: #344
+#4320 := [mp #1991 #4319]: #4315
+#7026 := (not #4315)
+#32561 := (or #7026 #32564)
+#6089 := (= #5319 uf_8)
+#32580 := (= #20604 #7128)
+#32553 := (ite #32580 #6089 #32576)
+#32556 := (= #32554 uf_8)
+#32579 := (iff #32556 #32553)
+#32603 := (or #7026 #32579)
+#32548 := (iff #32603 #32561)
+#32606 := (iff #32561 #32561)
+#32631 := [rewrite]: #32606
+#32629 := (iff #32579 #32564)
+#32535 := (iff #32553 #32591)
+#6101 := (iff #6089 #5314)
+#6102 := [rewrite]: #6101
+#32601 := (iff #32580 #32602)
+#32563 := [rewrite]: #32601
+#32560 := [monotonicity #32563 #6102]: #32535
+#32537 := (iff #32556 #32538)
+#32557 := [rewrite]: #32537
+#32565 := [monotonicity #32557 #32560]: #32629
+#32587 := [monotonicity #32565]: #32548
+#32604 := [trans #32587 #32631]: #32548
+#32558 := [quant-inst]: #32603
+#32623 := [mp #32558 #32604]: #32561
+#32954 := [unit-resolution #32623 #4320]: #32564
+#30313 := (not #32538)
+#8488 := (uf_6 uf_17 ?x52!15)
+#9319 := (= uf_8 #8488)
+#9846 := (not #9319)
+#32968 := (iff #9846 #30313)
+#32955 := (iff #9319 #32538)
+#32985 := (iff #32538 #9319)
+#32980 := (= #32554 #8488)
+#32983 := (= #20604 ?x52!15)
+#20605 := (= ?x52!15 #20604)
+#12 := (uf_1 #10 #11)
+#4294 := (pattern #12)
+#13 := (uf_3 #12)
+#317 := (= #11 #13)
+#4295 := (forall (vars (?x2 T2) (?x3 T2)) (:pat #4294) #317)
+#321 := (forall (vars (?x2 T2) (?x3 T2)) #317)
+#4298 := (iff #321 #4295)
+#4296 := (iff #317 #317)
+#4297 := [refl]: #4296
+#4299 := [quant-intro #4297]: #4298
+#1948 := (~ #321 #321)
+#1980 := (~ #317 #317)
+#1981 := [refl]: #1980
+#1946 := [nnf-pos #1981]: #1948
+#14 := (= #13 #11)
+#15 := (forall (vars (?x2 T2) (?x3 T2)) #14)
+#322 := (iff #15 #321)
+#319 := (iff #14 #317)
+#320 := [rewrite]: #319
+#323 := [quant-intro #320]: #322
+#316 := [asserted]: #15
+#326 := [mp #316 #323]: #321
+#1982 := [mp~ #326 #1946]: #321
+#4300 := [mp #1982 #4299]: #4295
+#5378 := (not #4295)
+#27981 := (or #5378 #20605)
+#27945 := [quant-inst]: #27981
+#32953 := [unit-resolution #27945 #4300]: #20605
+#32984 := [symm #32953]: #32983
+#8596 := (= #7203 uf_17)
+#8594 := (= #150 uf_17)
+#4147 := (or #4677 #109)
+#4148 := [def-axiom]: #4147
+#7307 := [unit-resolution #4148 #7304]: #109
+#4150 := (or #4677 #4412)
+#4130 := [def-axiom]: #4150
+#8027 := [unit-resolution #4130 #7304]: #4412
+#4137 := (or #4677 #4437)
+#4132 := [def-axiom]: #4137
+#8030 := [unit-resolution #4132 #7304]: #4437
+#5284 := (or #4665 #4442 #4417 #1854)
+#4776 := (uf_4 uf_14 ?x64!17)
+#4777 := (* -1::int #4776)
+#4778 := (+ uf_9 #4777)
+#4779 := (<= #4778 0::int)
+#4845 := (?x40!7 ?x64!17)
+#4941 := (uf_6 uf_15 #4845)
+#4942 := (= uf_8 #4941)
+#4943 := (not #4942)
+#4848 := (uf_4 uf_14 #4845)
+#4849 := (* -1::int #4848)
+#4939 := (+ #4776 #4849)
+#4940 := (<= #4939 0::int)
+#4846 := (uf_1 #4845 ?x64!17)
+#4847 := (uf_10 #4846)
+#4842 := (* -1::int #4847)
+#4926 := (+ #4842 #4849)
+#4927 := (+ #4776 #4926)
+#4930 := (= #4927 0::int)
+#4932 := (not #4930)
+#5006 := (or #4932 #4940 #4943)
+#5242 := [hypothesis]: #4668
+#4159 := (or #4665 #933)
+#4154 := [def-axiom]: #4159
+#5243 := [unit-resolution #4154 #5242]: #933
+#4134 := (or #4665 #4659)
+#4135 := [def-axiom]: #4134
+#5244 := [unit-resolution #4135 #5242]: #4659
+#5245 := [hypothesis]: #109
+#5247 := (= #250 #108)
+#5246 := [symm #5243]: #231
+#5248 := [monotonicity #5246]: #5247
+#5249 := [trans #5248 #5245]: #251
+#4193 := (or #4641 #2536)
+#4198 := [def-axiom]: #4193
+#5250 := [unit-resolution #4198 #5249]: #4641
+#5087 := [hypothesis]: #4412
+#4160 := (or #4665 #4601)
+#4133 := [def-axiom]: #4160
+#5230 := [unit-resolution #4133 #5242]: #4601
+#5100 := (or #3693 #4417 #4606 #1053)
+#4862 := (uf_4 uf_14 ?x67!19)
+#3931 := (uf_4 uf_14 ?x66!20)
+#3932 := (* -1::int #3931)
+#4955 := (+ #3932 #4862)
+#4956 := (+ #2517 #4955)
+#4959 := (>= #4956 0::int)
+#4866 := (uf_6 uf_15 ?x67!19)
+#4867 := (= uf_8 #4866)
+#4863 := (* -1::int #4862)
+#4864 := (+ uf_9 #4863)
+#4865 := (<= #4864 0::int)
+#5068 := (not #4865)
+#5072 := [hypothesis]: #3698
+#4189 := (or #3693 #2523)
+#4186 := [def-axiom]: #4189
+#5073 := [unit-resolution #4186 #5072]: #2523
+#5061 := (+ #2514 #4863)
+#5063 := (>= #5061 0::int)
+#5060 := (= #2514 #4862)
+#5075 := (= #4862 #2514)
+#5074 := [hypothesis]: #933
+#5076 := [monotonicity #5074]: #5075
+#5077 := [symm #5076]: #5060
+#5078 := (not #5060)
+#5079 := (or #5078 #5063)
+#5080 := [th-lemma]: #5079
+#5081 := [unit-resolution #5080 #5077]: #5063
+#5069 := (not #5063)
+#5070 := (or #5068 #5069 #2522)
+#5064 := [hypothesis]: #2523
+#5065 := [hypothesis]: #4865
+#5066 := [hypothesis]: #5063
+#5067 := [th-lemma #5066 #5065 #5064]: false
+#5071 := [lemma #5067]: #5070
+#5082 := [unit-resolution #5071 #5081 #5073]: #5068
+#4869 := (or #4865 #4867)
+#5083 := [hypothesis]: #4601
+#4872 := (or #4606 #4865 #4867)
+#4868 := (or #4867 #4865)
+#4873 := (or #4606 #4868)
+#4880 := (iff #4873 #4872)
+#4875 := (or #4606 #4869)
+#4878 := (iff #4875 #4872)
+#4879 := [rewrite]: #4878
+#4876 := (iff #4873 #4875)
+#4870 := (iff #4868 #4869)
+#4871 := [rewrite]: #4870
+#4877 := [monotonicity #4871]: #4876
+#4881 := [trans #4877 #4879]: #4880
+#4874 := [quant-inst]: #4873
+#4882 := [mp #4874 #4881]: #4872
+#5084 := [unit-resolution #4882 #5083]: #4869
+#5085 := [unit-resolution #5084 #5082]: #4867
+#4953 := (not #4867)
+#5088 := (or #4953 #4959)
+#4190 := (or #3693 #2527)
+#4170 := [def-axiom]: #4190
+#5086 := [unit-resolution #4170 #5072]: #2527
+#4970 := (or #4417 #2526 #4953 #4959)
+#4948 := (+ #4862 #3932)
+#4949 := (+ #2517 #4948)
+#4952 := (>= #4949 0::int)
+#4954 := (or #4953 #2526 #4952)
+#4971 := (or #4417 #4954)
+#4978 := (iff #4971 #4970)
+#4965 := (or #2526 #4953 #4959)
+#4973 := (or #4417 #4965)
+#4976 := (iff #4973 #4970)
+#4977 := [rewrite]: #4976
+#4974 := (iff #4971 #4973)
+#4968 := (iff #4954 #4965)
+#4962 := (or #4953 #2526 #4959)
+#4966 := (iff #4962 #4965)
+#4967 := [rewrite]: #4966
+#4963 := (iff #4954 #4962)
+#4960 := (iff #4952 #4959)
+#4957 := (= #4949 #4956)
+#4958 := [rewrite]: #4957
+#4961 := [monotonicity #4958]: #4960
+#4964 := [monotonicity #4961]: #4963
+#4969 := [trans #4964 #4967]: #4968
+#4975 := [monotonicity #4969]: #4974
+#4979 := [trans #4975 #4977]: #4978
+#4972 := [quant-inst]: #4971
+#4980 := [mp #4972 #4979]: #4970
+#5089 := [unit-resolution #4980 #5087 #5086]: #5088
+#5090 := [unit-resolution #5089 #5085]: #4959
+#4171 := (not #3096)
+#4173 := (or #3693 #4171)
+#4174 := [def-axiom]: #4173
+#5091 := [unit-resolution #4174 #5072]: #4171
+#5054 := (+ #2512 #3932)
+#5058 := (<= #5054 0::int)
+#5053 := (= #2512 #3931)
+#5092 := (= #3931 #2512)
+#5093 := [monotonicity #5074]: #5092
+#5094 := [symm #5093]: #5053
+#5095 := (not #5053)
+#5096 := (or #5095 #5058)
+#5097 := [th-lemma]: #5096
+#5098 := [unit-resolution #5097 #5094]: #5058
+#5099 := [th-lemma #5098 #5091 #5081 #5090]: false
+#5101 := [lemma #5099]: #5100
+#5231 := [unit-resolution #5101 #5230 #5087 #5243]: #3693
+#4181 := (or #4650 #4644 #3698)
+#4182 := [def-axiom]: #4181
+#5232 := [unit-resolution #4182 #5231 #5250]: #4650
+#4161 := (or #4653 #4647)
+#4162 := [def-axiom]: #4161
+#5233 := [unit-resolution #4162 #5232]: #4653
+#4169 := (or #4662 #4622 #4656)
+#4155 := [def-axiom]: #4169
+#5234 := [unit-resolution #4155 #5233 #5244]: #4622
+#4194 := (or #4619 #4611)
+#4195 := [def-axiom]: #4194
+#5229 := [unit-resolution #4195 #5234]: #4611
+#5713 := (or #5006 #4616 #1053)
+#5123 := (uf_4 uf_22 #4845)
+#5136 := (* -1::int #5123)
+#5137 := (+ #2448 #5136)
+#5138 := (<= #5137 0::int)
+#5150 := (+ #4842 #5136)
+#5151 := (+ #2448 #5150)
+#5152 := (= #5151 0::int)
+#5382 := (+ #4848 #5136)
+#5387 := (>= #5382 0::int)
+#5381 := (= #4848 #5123)
+#5643 := (= #5123 #4848)
+#5642 := [symm #5074]: #231
+#5644 := [monotonicity #5642]: #5643
+#5645 := [symm #5644]: #5381
+#5646 := (not #5381)
+#5647 := (or #5646 #5387)
+#5648 := [th-lemma]: #5647
+#5649 := [unit-resolution #5648 #5645]: #5387
+#5119 := (+ #2448 #4777)
+#5121 := (>= #5119 0::int)
+#5118 := (= #2448 #4776)
+#5629 := (= #4776 #2448)
+#5630 := [monotonicity #5074]: #5629
+#5631 := [symm #5630]: #5118
+#5632 := (not #5118)
+#5633 := (or #5632 #5121)
+#5628 := [th-lemma]: #5633
+#5634 := [unit-resolution #5628 #5631]: #5121
+#5040 := (>= #4927 0::int)
+#5005 := (not #5006)
+#5635 := [hypothesis]: #5005
+#5042 := (or #5006 #4930)
+#5043 := [def-axiom]: #5042
+#5636 := [unit-resolution #5043 #5635]: #4930
+#5637 := (or #4932 #5040)
+#5638 := [th-lemma]: #5637
+#5653 := [unit-resolution #5638 #5636]: #5040
+#5386 := (<= #5382 0::int)
+#5654 := (or #5646 #5386)
+#5675 := [th-lemma]: #5654
+#5676 := [unit-resolution #5675 #5645]: #5386
+#5120 := (<= #5119 0::int)
+#5677 := (or #5632 #5120)
+#5678 := [th-lemma]: #5677
+#5679 := [unit-resolution #5678 #5631]: #5120
+#5034 := (<= #4927 0::int)
+#5674 := (or #4932 #5034)
+#5680 := [th-lemma]: #5674
+#5681 := [unit-resolution #5680 #5636]: #5034
+#5562 := (not #5387)
+#5567 := (not #5121)
+#5566 := (not #5040)
+#5779 := (not #5386)
+#5778 := (not #5120)
+#5777 := (not #5034)
+#5572 := (or #5152 #5777 #5778 #5779 #5566 #5567 #5562)
+#5774 := [hypothesis]: #5386
+#5775 := [hypothesis]: #5120
+#5776 := [hypothesis]: #5034
+#5157 := (not #5152)
+#5772 := [hypothesis]: #5157
+#5175 := (>= #5151 0::int)
+#5563 := [hypothesis]: #5387
+#5564 := [hypothesis]: #5121
+#5565 := [hypothesis]: #5040
+#5568 := (or #5175 #5566 #5567 #5562)
+#5569 := [th-lemma]: #5568
+#5570 := [unit-resolution #5569 #5565 #5564 #5563]: #5175
+#5784 := (not #5175)
+#5788 := (or #5784 #5152 #5777 #5778 #5779)
+#5773 := [hypothesis]: #5175
+#5174 := (<= #5151 0::int)
+#5780 := (or #5174 #5777 #5778 #5779)
+#5781 := [th-lemma]: #5780
+#5782 := [unit-resolution #5781 #5776 #5775 #5774]: #5174
+#5783 := (not #5174)
+#5785 := (or #5152 #5783 #5784)
+#5786 := [th-lemma]: #5785
+#5787 := [unit-resolution #5786 #5782 #5773 #5772]: false
+#5789 := [lemma #5787]: #5788
+#5571 := [unit-resolution #5789 #5570 #5772 #5776 #5775 #5774]: false
+#5641 := [lemma #5571]: #5572
+#5682 := [unit-resolution #5641 #5681 #5679 #5676 #5653 #5634 #5649]: #5152
+#5160 := (or #5138 #5157)
+#5683 := [hypothesis]: #4611
+#5163 := (or #4616 #5138 #5157)
+#5122 := (+ #2449 #4847)
+#5124 := (+ #5123 #5122)
+#5125 := (= #5124 0::int)
+#5126 := (not #5125)
+#5127 := (+ #5123 #2449)
+#5128 := (>= #5127 0::int)
+#5129 := (or #5128 #5126)
+#5164 := (or #4616 #5129)
+#5171 := (iff #5164 #5163)
+#5166 := (or #4616 #5160)
+#5169 := (iff #5166 #5163)
+#5170 := [rewrite]: #5169
+#5167 := (iff #5164 #5166)
+#5161 := (iff #5129 #5160)
+#5158 := (iff #5126 #5157)
+#5155 := (iff #5125 #5152)
+#5143 := (+ #4847 #5123)
+#5144 := (+ #2449 #5143)
+#5147 := (= #5144 0::int)
+#5153 := (iff #5147 #5152)
+#5154 := [rewrite]: #5153
+#5148 := (iff #5125 #5147)
+#5145 := (= #5124 #5144)
+#5146 := [rewrite]: #5145
+#5149 := [monotonicity #5146]: #5148
+#5156 := [trans #5149 #5154]: #5155
+#5159 := [monotonicity #5156]: #5158
+#5141 := (iff #5128 #5138)
+#5130 := (+ #2449 #5123)
+#5133 := (>= #5130 0::int)
+#5139 := (iff #5133 #5138)
+#5140 := [rewrite]: #5139
+#5134 := (iff #5128 #5133)
+#5131 := (= #5127 #5130)
+#5132 := [rewrite]: #5131
+#5135 := [monotonicity #5132]: #5134
+#5142 := [trans #5135 #5140]: #5141
+#5162 := [monotonicity #5142 #5159]: #5161
+#5168 := [monotonicity #5162]: #5167
+#5172 := [trans #5168 #5170]: #5171
+#5165 := [quant-inst]: #5164
+#5173 := [mp #5165 #5172]: #5163
+#5684 := [unit-resolution #5173 #5683]: #5160
+#5710 := [unit-resolution #5684 #5682]: #5138
+#5041 := (not #4940)
+#5044 := (or #5006 #5041)
+#5045 := [def-axiom]: #5044
+#5711 := [unit-resolution #5045 #5635]: #5041
+#5712 := [th-lemma #5634 #5711 #5649 #5710]: false
+#5714 := [lemma #5712]: #5713
+#5235 := [unit-resolution #5714 #5229 #5243]: #5006
+#5238 := (or #4779 #5005)
+#4191 := (or #4619 #2996)
+#4192 := [def-axiom]: #4191
+#5236 := [unit-resolution #4192 #5234]: #2996
+#5237 := [hypothesis]: #4437
+#5023 := (or #4442 #2993 #4779 #5005)
+#4850 := (+ #4849 #4842)
+#4851 := (+ #4776 #4850)
+#4852 := (= #4851 0::int)
+#4938 := (not #4852)
+#4944 := (or #4943 #4940 #4938)
+#4945 := (not #4944)
+#4946 := (or #2462 #4779 #4945)
+#5025 := (or #4442 #4946)
+#5031 := (iff #5025 #5023)
+#5013 := (or #2993 #4779 #5005)
+#5027 := (or #4442 #5013)
+#5024 := (iff #5027 #5023)
+#5030 := [rewrite]: #5024
+#5028 := (iff #5025 #5027)
+#5014 := (iff #4946 #5013)
+#5011 := (iff #4945 #5005)
+#5009 := (iff #4944 #5006)
+#4935 := (or #4943 #4940 #4932)
+#5007 := (iff #4935 #5006)
+#5008 := [rewrite]: #5007
+#4950 := (iff #4944 #4935)
+#4933 := (iff #4938 #4932)
+#4925 := (iff #4852 #4930)
+#4928 := (= #4851 #4927)
+#4929 := [rewrite]: #4928
+#4931 := [monotonicity #4929]: #4925
+#4934 := [monotonicity #4931]: #4933
+#4951 := [monotonicity #4934]: #4950
+#5010 := [trans #4951 #5008]: #5009
+#5012 := [monotonicity #5010]: #5011
+#5015 := [monotonicity #2995 #5012]: #5014
+#5029 := [monotonicity #5015]: #5028
+#5032 := [trans #5029 #5030]: #5031
+#5026 := [quant-inst]: #5025
+#5033 := [mp #5026 #5032]: #5023
+#5239 := [unit-resolution #5033 #5237 #5236]: #5238
+#5254 := [unit-resolution #5239 #5235]: #4779
+#4200 := (or #4619 #2461)
+#4207 := [def-axiom]: #4200
+#5255 := [unit-resolution #4207 #5234]: #2461
+#5280 := [monotonicity #5243]: #5629
+#5281 := [symm #5280]: #5118
+#5282 := [unit-resolution #5628 #5281]: #5121
+#5283 := [th-lemma #5282 #5255 #5254]: false
+#5279 := [lemma #5283]: #5284
+#8031 := [unit-resolution #5279 #8030 #8027 #7307]: #4665
+#4138 := (or #4677 #4671)
+#4106 := [def-axiom]: #4138
+#7357 := [unit-resolution #4106 #7304]: #4671
+#4143 := (or #4674 #4598 #4668)
+#4144 := [def-axiom]: #4143
+#7389 := [unit-resolution #4144 #7357 #8031]: #4598
+#4125 := (or #4595 #151)
+#4126 := [def-axiom]: #4125
+#8578 := [unit-resolution #4126 #7389]: #151
+#8595 := [symm #8578]: #8594
+#8592 := (= #7203 #150)
+#48 := (:var 0 T5)
+#47 := (:var 2 T4)
+#49 := (uf_7 #47 #10 #48)
+#4329 := (pattern #49)
+#360 := (= uf_8 #48)
+#50 := (uf_6 #49 #10)
+#356 := (= uf_8 #50)
+#363 := (iff #356 #360)
+#4330 := (forall (vars (?x17 T4) (?x18 T2) (?x19 T5)) (:pat #4329) #363)
+#366 := (forall (vars (?x17 T4) (?x18 T2) (?x19 T5)) #363)
+#4333 := (iff #366 #4330)
+#4331 := (iff #363 #363)
+#4332 := [refl]: #4331
+#4334 := [quant-intro #4332]: #4333
+#1957 := (~ #366 #366)
+#1995 := (~ #363 #363)
+#1996 := [refl]: #1995
+#1958 := [nnf-pos #1996]: #1957
+#52 := (= #48 uf_8)
+#51 := (= #50 uf_8)
+#53 := (iff #51 #52)
+#54 := (forall (vars (?x17 T4) (?x18 T2) (?x19 T5)) #53)
+#367 := (iff #54 #366)
+#364 := (iff #53 #363)
+#361 := (iff #52 #360)
+#362 := [rewrite]: #361
+#358 := (iff #51 #356)
+#359 := [rewrite]: #358
+#365 := [monotonicity #359 #362]: #364
+#368 := [quant-intro #365]: #367
+#355 := [asserted]: #54
+#371 := [mp #355 #368]: #366
+#1997 := [mp~ #371 #1958]: #366
+#4335 := [mp #1997 #4334]: #4330
+#7014 := (not #4330)
+#7015 := (or #7014 #5314)
+#5318 := (= uf_8 uf_8)
+#5320 := (iff #5314 #5318)
+#7018 := (or #7014 #5320)
+#7020 := (iff #7018 #7015)
+#7022 := (iff #7015 #7015)
+#7023 := [rewrite]: #7022
+#5344 := (iff #5320 #5314)
+#5323 := (iff #5314 true)
+#5342 := (iff #5323 #5314)
+#5343 := [rewrite]: #5342
+#5324 := (iff #5320 #5323)
+#5321 := (iff #5318 true)
+#5322 := [rewrite]: #5321
+#5340 := [monotonicity #5322]: #5324
+#5345 := [trans #5340 #5343]: #5344
+#7021 := [monotonicity #5345]: #7020
+#7024 := [trans #7021 #7023]: #7020
+#7019 := [quant-inst]: #7018
+#7025 := [mp #7019 #7024]: #7015
+#8579 := [unit-resolution #7025 #4335]: #5314
+#8580 := [symm #8579]: #6089
+#8035 := (= #7128 uf_16)
+#7129 := (= uf_16 #7128)
+#16 := (uf_2 #12)
+#325 := (= #10 #16)
+#4301 := (forall (vars (?x4 T2) (?x5 T2)) (:pat #4294) #325)
+#329 := (forall (vars (?x4 T2) (?x5 T2)) #325)
+#4304 := (iff #329 #4301)
+#4302 := (iff #325 #325)
+#4303 := [refl]: #4302
+#4305 := [quant-intro #4303]: #4304
+#1949 := (~ #329 #329)
+#1983 := (~ #325 #325)
+#1984 := [refl]: #1983
+#1950 := [nnf-pos #1984]: #1949
+#17 := (= #16 #10)
+#18 := (forall (vars (?x4 T2) (?x5 T2)) #17)
+#330 := (iff #18 #329)
+#327 := (iff #17 #325)
+#328 := [rewrite]: #327
+#331 := [quant-intro #328]: #330
+#324 := [asserted]: #18
+#334 := [mp #324 #331]: #329
+#1985 := [mp~ #334 #1950]: #329
+#4306 := [mp #1985 #4305]: #4301
+#7136 := (not #4301)
+#7154 := (or #7136 #7129)
+#7155 := [quant-inst]: #7154
+#8034 := [unit-resolution #7155 #4306]: #7129
+#8036 := [symm #8034]: #8035
+#8593 := [monotonicity #8036 #8580]: #8592
+#8591 := [trans #8593 #8595]: #8596
+#32982 := [monotonicity #8591 #32984]: #32980
+#32970 := [monotonicity #32982]: #32985
+#32965 := [symm #32970]: #32955
+#32971 := [monotonicity #32965]: #32968
+#32956 := (not #15367)
+#32950 := [hypothesis]: #32956
+#15373 := (or #9846 #15367)
+#8693 := (= #144 #2212)
+#8633 := (= #2212 #144)
+#6559 := (= ?x46!9 uf_16)
+#7707 := (= ?x46!9 #7128)
+#6330 := (uf_6 uf_15 ?x46!9)
+#6365 := (= uf_8 #6330)
+#7717 := (ite #7707 #5314 #6365)
+#7711 := (uf_6 #7203 ?x46!9)
+#7714 := (= uf_8 #7711)
+#7720 := (iff #7714 #7717)
+#8351 := (or #7026 #7720)
+#7708 := (ite #7707 #6089 #6365)
+#7712 := (= #7711 uf_8)
+#7713 := (iff #7712 #7708)
+#8361 := (or #7026 #7713)
+#8363 := (iff #8361 #8351)
+#8365 := (iff #8351 #8351)
+#8366 := [rewrite]: #8365
+#7721 := (iff #7713 #7720)
+#7718 := (iff #7708 #7717)
+#7719 := [monotonicity #6102]: #7718
+#7715 := (iff #7712 #7714)
+#7716 := [rewrite]: #7715
+#7722 := [monotonicity #7716 #7719]: #7721
+#8364 := [monotonicity #7722]: #8363
+#8367 := [trans #8364 #8366]: #8363
+#8362 := [quant-inst]: #8361
+#8368 := [mp #8362 #8367]: #8351
+#8576 := [unit-resolution #8368 #4320]: #7720
+#8601 := (= #2208 #7711)
+#8597 := (= #7711 #2208)
+#8598 := [monotonicity #8591]: #8597
+#8625 := [symm #8598]: #8601
+#8571 := [hypothesis]: #2836
+#4285 := (or #2831 #2209)
+#4275 := [def-axiom]: #4285
+#8577 := [unit-resolution #4275 #8571]: #2209
+#8626 := [trans #8577 #8625]: #7714
+#8404 := (not #7714)
+#8401 := (not #7720)
+#8405 := (or #8401 #8404 #7717)
+#8400 := [def-axiom]: #8405
+#8627 := [unit-resolution #8400 #8626 #8576]: #7717
+#6393 := (uf_1 uf_16 ?x46!9)
+#6394 := (uf_10 #6393)
+#6337 := (* -1::int #2212)
+#6411 := (+ #6337 #6394)
+#6412 := (+ #144 #6411)
+#6413 := (>= #6412 0::int)
+#8287 := (not #6413)
+#6395 := (* -1::int #6394)
+#6396 := (+ uf_9 #6395)
+#6397 := (<= #6396 0::int)
+#6421 := (or #6397 #6413)
+#6426 := (not #6421)
+#3935 := (not #2825)
+#3940 := (or #2831 #3935)
+#4276 := [def-axiom]: #3940
+#8572 := [unit-resolution #4276 #8571]: #3935
+#4212 := (or #4595 #4456)
+#4213 := [def-axiom]: #4212
+#8574 := [unit-resolution #4213 #7389]: #4456
+#8302 := (or #4461 #2825 #6426)
+#6398 := (+ #1449 #6395)
+#6399 := (+ #2212 #6398)
+#6400 := (<= #6399 0::int)
+#6401 := (or #6400 #6397)
+#6402 := (not #6401)
+#6403 := (or #2213 #6402)
+#8303 := (or #4461 #6403)
+#8310 := (iff #8303 #8302)
+#6429 := (or #2825 #6426)
+#8305 := (or #4461 #6429)
+#8308 := (iff #8305 #8302)
+#8309 := [rewrite]: #8308
+#8306 := (iff #8303 #8305)
+#6430 := (iff #6403 #6429)
+#6427 := (iff #6402 #6426)
+#6424 := (iff #6401 #6421)
+#6418 := (or #6413 #6397)
+#6422 := (iff #6418 #6421)
+#6423 := [rewrite]: #6422
+#6419 := (iff #6401 #6418)
+#6416 := (iff #6400 #6413)
+#6404 := (+ #2212 #6395)
+#6405 := (+ #1449 #6404)
+#6408 := (<= #6405 0::int)
+#6414 := (iff #6408 #6413)
+#6415 := [rewrite]: #6414
+#6409 := (iff #6400 #6408)
+#6406 := (= #6399 #6405)
+#6407 := [rewrite]: #6406
+#6410 := [monotonicity #6407]: #6409
+#6417 := [trans #6410 #6415]: #6416
+#6420 := [monotonicity #6417]: #6419
+#6425 := [trans #6420 #6423]: #6424
+#6428 := [monotonicity #6425]: #6427
+#6431 := [monotonicity #2827 #6428]: #6430
+#8307 := [monotonicity #6431]: #8306
+#8311 := [trans #8307 #8309]: #8310
+#8304 := [quant-inst]: #8303
+#8312 := [mp #8304 #8311]: #8302
+#8628 := [unit-resolution #8312 #8574 #8572]: #6426
+#8288 := (or #6421 #8287)
+#8289 := [def-axiom]: #8288
+#8629 := [unit-resolution #8289 #8628]: #8287
+#8369 := (not #7717)
+#9187 := (or #7707 #6413 #8369)
+#7754 := (uf_1 #7128 ?x46!9)
+#7838 := (uf_3 #7754)
+#9086 := (uf_4 uf_14 #7838)
+#9087 := (* -1::int #9086)
+#7168 := (uf_4 uf_14 #7128)
+#9088 := (+ #7168 #9087)
+#9089 := (>= #9088 0::int)
+#9090 := (uf_6 uf_15 #7838)
+#9091 := (= uf_8 #9090)
+#9139 := (= #6330 #9090)
+#9135 := (= #9090 #6330)
+#9133 := (= #7838 ?x46!9)
+#7839 := (= ?x46!9 #7838)
+#8519 := (or #5378 #7839)
+#8257 := [quant-inst]: #8519
+#9132 := [unit-resolution #8257 #4300]: #7839
+#9134 := [symm #9132]: #9133
+#9136 := [monotonicity #9134]: #9135
+#9140 := [symm #9136]: #9139
+#9129 := [hypothesis]: #7717
+#7733 := (not #7707)
+#9130 := [hypothesis]: #7733
+#8347 := (or #8369 #7707 #6365)
+#8354 := [def-axiom]: #8347
+#9131 := [unit-resolution #8354 #9130 #9129]: #6365
+#9141 := [trans #9131 #9140]: #9091
+#9092 := (not #9091)
+#9154 := (or #9089 #9092)
+#7246 := (uf_6 uf_15 #7128)
+#7247 := (= uf_8 #7246)
+#9149 := (not #7247)
+#9150 := (iff #588 #9149)
+#9147 := (iff #585 #7247)
+#9145 := (iff #7247 #585)
+#9143 := (= #7246 #141)
+#9144 := [monotonicity #8036]: #9143
+#9146 := [monotonicity #9144]: #9145
+#9148 := [symm #9146]: #9147
+#9151 := [monotonicity #9148]: #9150
+#4127 := (or #4595 #588)
+#4220 := [def-axiom]: #4127
+#9142 := [unit-resolution #4220 #7389]: #588
+#9152 := [mp #9142 #9151]: #9149
+#4076 := (or #4677 #4421)
+#4131 := [def-axiom]: #4076
+#9153 := [unit-resolution #4131 #7304]: #4421
+#9097 := (or #4426 #7247 #9089 #9092)
+#9093 := (or #9092 #7247 #9089)
+#9098 := (or #4426 #9093)
+#9105 := (iff #9098 #9097)
+#9094 := (or #7247 #9089 #9092)
+#9100 := (or #4426 #9094)
+#9103 := (iff #9100 #9097)
+#9104 := [rewrite]: #9103
+#9101 := (iff #9098 #9100)
+#9095 := (iff #9093 #9094)
+#9096 := [rewrite]: #9095
+#9102 := [monotonicity #9096]: #9101
+#9106 := [trans #9102 #9104]: #9105
+#9099 := [quant-inst]: #9098
+#9107 := [mp #9099 #9106]: #9097
+#9155 := [unit-resolution #9107 #9153 #9152]: #9154
+#9156 := [unit-resolution #9155 #9141]: #9089
+#9157 := [hypothesis]: #8287
+#7755 := (uf_10 #7754)
+#7756 := (* -1::int #7755)
+#8520 := (+ #6394 #7756)
+#8524 := (>= #8520 0::int)
+#8517 := (= #6394 #7755)
+#9160 := (= #7755 #6394)
+#9158 := (= #7754 #6393)
+#9159 := [monotonicity #8036]: #9158
+#9161 := [monotonicity #9159]: #9160
+#9162 := [symm #9161]: #8517
+#9163 := (not #8517)
+#9164 := (or #9163 #8524)
+#9165 := [th-lemma]: #9164
+#9166 := [unit-resolution #9165 #9162]: #8524
+#8514 := (>= #7755 0::int)
+#7798 := (<= #7755 0::int)
+#7799 := (not #7798)
+#7804 := (or #7707 #7799)
+#59 := (uf_10 #12)
+#409 := (<= #59 0::int)
+#410 := (not #409)
+#58 := (= #10 #11)
+#413 := (or #58 #410)
+#4342 := (forall (vars (?x22 T2) (?x23 T2)) (:pat #4294) #413)
+#416 := (forall (vars (?x22 T2) (?x23 T2)) #413)
+#4345 := (iff #416 #4342)
+#4343 := (iff #413 #413)
+#4344 := [refl]: #4343
+#4346 := [quant-intro #4344]: #4345
+#1963 := (~ #416 #416)
+#1962 := (~ #413 #413)
+#2000 := [refl]: #1962
+#1964 := [nnf-pos #2000]: #1963
+#64 := (< 0::int #59)
+#63 := (not #58)
+#65 := (implies #63 #64)
+#66 := (forall (vars (?x22 T2) (?x23 T2)) #65)
+#419 := (iff #66 #416)
+#403 := (or #58 #64)
+#406 := (forall (vars (?x22 T2) (?x23 T2)) #403)
+#417 := (iff #406 #416)
+#414 := (iff #403 #413)
+#411 := (iff #64 #410)
+#412 := [rewrite]: #411
+#415 := [monotonicity #412]: #414
+#418 := [quant-intro #415]: #417
+#407 := (iff #66 #406)
+#404 := (iff #65 #403)
+#405 := [rewrite]: #404
+#408 := [quant-intro #405]: #407
+#420 := [trans #408 #418]: #419
+#402 := [asserted]: #66
+#421 := [mp #402 #420]: #416
+#2001 := [mp~ #421 #1964]: #416
+#4347 := [mp #2001 #4346]: #4342
+#7093 := (not #4342)
+#8435 := (or #7093 #7707 #7799)
+#7800 := (= #7128 ?x46!9)
+#7801 := (or #7800 #7799)
+#8436 := (or #7093 #7801)
+#8447 := (iff #8436 #8435)
+#8437 := (or #7093 #7804)
+#8443 := (iff #8437 #8435)
+#8444 := [rewrite]: #8443
+#8438 := (iff #8436 #8437)
+#7805 := (iff #7801 #7804)
+#7802 := (iff #7800 #7707)
+#7803 := [rewrite]: #7802
+#7806 := [monotonicity #7803]: #7805
+#8439 := [monotonicity #7806]: #8438
+#8448 := [trans #8439 #8444]: #8447
+#8434 := [quant-inst]: #8436
+#8482 := [mp #8434 #8448]: #8435
+#9167 := [unit-resolution #8482 #4347]: #7804
+#9168 := [unit-resolution #9167 #9130]: #7799
+#9169 := (or #8514 #7798)
+#9170 := [th-lemma]: #9169
+#9171 := [unit-resolution #9170 #9168]: #8514
+#9126 := (+ #2212 #9087)
+#9127 := (<= #9126 0::int)
+#9125 := (= #2212 #9086)
+#9172 := (= #9086 #2212)
+#9173 := [monotonicity #9134]: #9172
+#9174 := [symm #9173]: #9125
+#9175 := (not #9125)
+#9176 := (or #9175 #9127)
+#9177 := [th-lemma]: #9176
+#9178 := [unit-resolution #9177 #9174]: #9127
+#7162 := (* -1::int #7168)
+#7568 := (+ #144 #7162)
+#7572 := (>= #7568 0::int)
+#7233 := (= #144 #7168)
+#9179 := (= #7168 #144)
+#9180 := [monotonicity #8036]: #9179
+#9181 := [symm #9180]: #7233
+#9182 := (not #7233)
+#9183 := (or #9182 #7572)
+#9184 := [th-lemma]: #9183
+#9185 := [unit-resolution #9184 #9181]: #7572
+#9186 := [th-lemma #9185 #9178 #9171 #9166 #9157 #9156]: false
+#9188 := [lemma #9186]: #9187
+#8624 := [unit-resolution #9188 #8629 #8627]: #7707
+#8630 := [trans #8624 #8036]: #6559
+#8634 := [monotonicity #8630]: #8633
+#8694 := [symm #8634]: #8693
+#8695 := (= #2211 #144)
+#5856 := (uf_18 uf_16)
+#8641 := (= #5856 #144)
+#5857 := (= #144 #5856)
+#5844 := (uf_1 uf_16 uf_16)
+#5845 := (uf_10 #5844)
+#5864 := (>= #5845 0::int)
+#5848 := (* -1::int #5845)
+#5849 := (+ uf_9 #5848)
+#5850 := (<= #5849 0::int)
+#5872 := (or #5850 #5864)
+#7965 := (uf_1 #7128 #7128)
+#7966 := (uf_10 #7965)
+#7967 := (* -1::int #7966)
+#8029 := (+ #5845 #7967)
+#8033 := (>= #8029 0::int)
+#8028 := (= #5845 #7966)
+#8039 := (= #5844 #7965)
+#8037 := (= #7965 #5844)
+#8038 := [monotonicity #8036 #8036]: #8037
+#8040 := [symm #8038]: #8039
+#8041 := [monotonicity #8040]: #8028
+#8042 := (not #8028)
+#8043 := (or #8042 #8033)
+#8044 := [th-lemma]: #8043
+#8045 := [unit-resolution #8044 #8041]: #8033
+#7976 := (>= #7966 0::int)
+#7998 := (= #7966 0::int)
+#60 := (= #59 0::int)
+#393 := (or #63 #60)
+#4336 := (forall (vars (?x20 T2) (?x21 T2)) (:pat #4294) #393)
+#396 := (forall (vars (?x20 T2) (?x21 T2)) #393)
+#4339 := (iff #396 #4336)
+#4337 := (iff #393 #393)
+#4338 := [refl]: #4337
+#4340 := [quant-intro #4338]: #4339
+#1959 := (~ #396 #396)
+#1998 := (~ #393 #393)
+#1999 := [refl]: #1998
+#1960 := [nnf-pos #1999]: #1959
+#61 := (implies #58 #60)
+#62 := (forall (vars (?x20 T2) (?x21 T2)) #61)
+#399 := (iff #62 #396)
+#372 := (= 0::int #59)
+#383 := (or #63 #372)
+#388 := (forall (vars (?x20 T2) (?x21 T2)) #383)
+#397 := (iff #388 #396)
+#394 := (iff #383 #393)
+#391 := (iff #372 #60)
+#392 := [rewrite]: #391
+#395 := [monotonicity #392]: #394
+#398 := [quant-intro #395]: #397
+#389 := (iff #62 #388)
+#386 := (iff #61 #383)
+#380 := (implies #58 #372)
+#384 := (iff #380 #383)
+#385 := [rewrite]: #384
+#381 := (iff #61 #380)
+#378 := (iff #60 #372)
+#379 := [rewrite]: #378
+#382 := [monotonicity #379]: #381
+#387 := [trans #382 #385]: #386
+#390 := [quant-intro #387]: #389
+#400 := [trans #390 #398]: #399
+#370 := [asserted]: #62
+#401 := [mp #370 #400]: #396
+#1961 := [mp~ #401 #1960]: #396
+#4341 := [mp #1961 #4340]: #4336
+#6863 := (not #4336)
+#8012 := (or #6863 #7998)
+#7248 := (= #7128 #7128)
+#7999 := (not #7248)
+#8000 := (or #7999 #7998)
+#8013 := (or #6863 #8000)
+#8015 := (iff #8013 #8012)
+#8017 := (iff #8012 #8012)
+#8018 := [rewrite]: #8017
+#8010 := (iff #8000 #7998)
+#8005 := (or false #7998)
+#8008 := (iff #8005 #7998)
+#8009 := [rewrite]: #8008
+#8006 := (iff #8000 #8005)
+#8003 := (iff #7999 false)
+#8001 := (iff #7999 #6849)
+#7256 := (iff #7248 true)
+#7257 := [rewrite]: #7256
+#8002 := [monotonicity #7257]: #8001
+#8004 := [trans #8002 #6853]: #8003
+#8007 := [monotonicity #8004]: #8006
+#8011 := [trans #8007 #8009]: #8010
+#8016 := [monotonicity #8011]: #8015
+#8019 := [trans #8016 #8018]: #8015
+#8014 := [quant-inst]: #8013
+#8020 := [mp #8014 #8019]: #8012
+#8046 := [unit-resolution #8020 #4341]: #7998
+#8047 := (not #7998)
+#8048 := (or #8047 #7976)
+#8049 := [th-lemma]: #8048
+#8050 := [unit-resolution #8049 #8046]: #7976
+#6974 := (not #5864)
+#8051 := [hypothesis]: #6974
+#8052 := [th-lemma #8051 #8050 #8045]: false
+#8053 := [lemma #8052]: #5864
+#6975 := (or #5872 #6974)
+#6976 := [def-axiom]: #6975
+#8573 := [unit-resolution #6976 #8053]: #5872
+#5877 := (not #5872)
+#5880 := (or #5857 #5877)
+#6955 := (or #4461 #5857 #5877)
+#5851 := (+ #1449 #5848)
+#5852 := (+ #144 #5851)
+#5853 := (<= #5852 0::int)
+#5854 := (or #5853 #5850)
+#5855 := (not #5854)
+#5858 := (or #5857 #5855)
+#6956 := (or #4461 #5858)
+#6967 := (iff #6956 #6955)
+#6962 := (or #4461 #5880)
+#6965 := (iff #6962 #6955)
+#6966 := [rewrite]: #6965
+#6963 := (iff #6956 #6962)
+#5881 := (iff #5858 #5880)
+#5878 := (iff #5855 #5877)
+#5875 := (iff #5854 #5872)
+#5869 := (or #5864 #5850)
+#5873 := (iff #5869 #5872)
+#5874 := [rewrite]: #5873
+#5870 := (iff #5854 #5869)
+#5867 := (iff #5853 #5864)
+#5861 := (<= #5848 0::int)
+#5865 := (iff #5861 #5864)
+#5866 := [rewrite]: #5865
+#5862 := (iff #5853 #5861)
+#5859 := (= #5852 #5848)
+#5860 := [rewrite]: #5859
+#5863 := [monotonicity #5860]: #5862
+#5868 := [trans #5863 #5866]: #5867
+#5871 := [monotonicity #5868]: #5870
+#5876 := [trans #5871 #5874]: #5875
+#5879 := [monotonicity #5876]: #5878
+#5882 := [monotonicity #5879]: #5881
+#6964 := [monotonicity #5882]: #6963
+#6968 := [trans #6964 #6966]: #6967
+#6961 := [quant-inst]: #6956
+#6969 := [mp #6961 #6968]: #6955
+#8575 := [unit-resolution #6969 #8574]: #5880
+#8570 := [unit-resolution #8575 #8573]: #5857
+#8642 := [symm #8570]: #8641
+#8631 := (= #2211 #5856)
+#8632 := [monotonicity #8630]: #8631
+#8696 := [trans #8632 #8642]: #8695
+#8697 := [trans #8696 #8694]: #2825
+#8698 := [unit-resolution #8572 #8697]: false
+#8699 := [lemma #8698]: #2831
+#4203 := (or #4595 #4589)
+#4204 := [def-axiom]: #4203
+#9435 := [unit-resolution #4204 #7389]: #4589
+#4209 := (or #4595 #4464)
+#4214 := [def-axiom]: #4209
+#7390 := [unit-resolution #4214 #7389]: #4464
+#6363 := (or #2817 #4469 #4461)
+#6139 := (uf_1 uf_16 ?x45!8)
+#6140 := (uf_10 #6139)
+#6165 := (+ #2191 #6140)
+#6166 := (+ #144 #6165)
+#6192 := (>= #6166 0::int)
+#6169 := (= #6166 0::int)
+#6144 := (* -1::int #6140)
+#6145 := (+ uf_9 #6144)
+#6146 := (<= #6145 0::int)
+#6226 := (not #6146)
+#6158 := (+ #2815 #6140)
+#6159 := (+ #144 #6158)
+#6160 := (>= #6159 0::int)
+#6203 := (or #6146 #6160)
+#6208 := (not #6203)
+#6197 := (= #2190 #2192)
+#6342 := (not #6197)
+#6341 := [hypothesis]: #2822
+#6345 := (or #6342 #2817)
+#6346 := [th-lemma]: #6345
+#6347 := [unit-resolution #6346 #6341]: #6342
+#6348 := [hypothesis]: #4456
+#6214 := (or #4461 #6197 #6208)
+#6147 := (+ #1449 #6144)
+#6148 := (+ #2192 #6147)
+#6149 := (<= #6148 0::int)
+#6193 := (or #6149 #6146)
+#6194 := (not #6193)
+#6195 := (= #2192 #2190)
+#6196 := (or #6195 #6194)
+#6215 := (or #4461 #6196)
+#6222 := (iff #6215 #6214)
+#6211 := (or #6197 #6208)
+#6217 := (or #4461 #6211)
+#6220 := (iff #6217 #6214)
+#6221 := [rewrite]: #6220
+#6218 := (iff #6215 #6217)
+#6212 := (iff #6196 #6211)
+#6209 := (iff #6194 #6208)
+#6206 := (iff #6193 #6203)
+#6200 := (or #6160 #6146)
+#6204 := (iff #6200 #6203)
+#6205 := [rewrite]: #6204
+#6201 := (iff #6193 #6200)
+#6163 := (iff #6149 #6160)
+#6151 := (+ #2192 #6144)
+#6152 := (+ #1449 #6151)
+#6155 := (<= #6152 0::int)
+#6161 := (iff #6155 #6160)
+#6162 := [rewrite]: #6161
+#6156 := (iff #6149 #6155)
+#6153 := (= #6148 #6152)
+#6154 := [rewrite]: #6153
+#6157 := [monotonicity #6154]: #6156
+#6164 := [trans #6157 #6162]: #6163
+#6202 := [monotonicity #6164]: #6201
+#6207 := [trans #6202 #6205]: #6206
+#6210 := [monotonicity #6207]: #6209
+#6198 := (iff #6195 #6197)
+#6199 := [rewrite]: #6198
+#6213 := [monotonicity #6199 #6210]: #6212
+#6219 := [monotonicity #6213]: #6218
+#6223 := [trans #6219 #6221]: #6222
+#6216 := [quant-inst]: #6215
+#6224 := [mp #6216 #6223]: #6214
+#6349 := [unit-resolution #6224 #6348 #6347]: #6208
+#6227 := (or #6203 #6226)
+#6228 := [def-axiom]: #6227
+#6350 := [unit-resolution #6228 #6349]: #6226
+#6229 := (not #6160)
+#6230 := (or #6203 #6229)
+#6231 := [def-axiom]: #6230
+#6351 := [unit-resolution #6231 #6349]: #6229
+#6175 := (or #6146 #6160 #6169)
+#6352 := [hypothesis]: #4464
+#6180 := (or #4469 #6146 #6160 #6169)
+#6141 := (+ #6140 #2191)
+#6142 := (+ #144 #6141)
+#6143 := (= #6142 0::int)
+#6150 := (or #6149 #6146 #6143)
+#6181 := (or #4469 #6150)
+#6188 := (iff #6181 #6180)
+#6183 := (or #4469 #6175)
+#6186 := (iff #6183 #6180)
+#6187 := [rewrite]: #6186
+#6184 := (iff #6181 #6183)
+#6178 := (iff #6150 #6175)
+#6172 := (or #6160 #6146 #6169)
+#6176 := (iff #6172 #6175)
+#6177 := [rewrite]: #6176
+#6173 := (iff #6150 #6172)
+#6170 := (iff #6143 #6169)
+#6167 := (= #6142 #6166)
+#6168 := [rewrite]: #6167
+#6171 := [monotonicity #6168]: #6170
+#6174 := [monotonicity #6164 #6171]: #6173
+#6179 := [trans #6174 #6177]: #6178
+#6185 := [monotonicity #6179]: #6184
+#6189 := [trans #6185 #6187]: #6188
+#6182 := [quant-inst]: #6181
+#6190 := [mp #6182 #6189]: #6180
+#6353 := [unit-resolution #6190 #6352]: #6175
+#6354 := [unit-resolution #6353 #6351 #6350]: #6169
+#6355 := (not #6169)
+#6356 := (or #6355 #6192)
+#6357 := [th-lemma]: #6356
+#6358 := [unit-resolution #6357 #6354]: #6192
+#6225 := (>= #2816 0::int)
+#6359 := (or #6225 #2817)
+#6360 := [th-lemma]: #6359
+#6361 := [unit-resolution #6360 #6341]: #6225
+#6362 := [th-lemma #6361 #6351 #6358]: false
+#6364 := [lemma #6362]: #6363
+#9436 := [unit-resolution #6364 #7390 #8574]: #2817
+#4123 := (or #4592 #2822 #4586)
+#4124 := [def-axiom]: #4123
+#9437 := [unit-resolution #4124 #9436 #9435]: #4586
+#4215 := (or #4583 #4577)
+#4216 := [def-axiom]: #4215
+#9438 := [unit-resolution #4216 #9437]: #4577
+#4111 := (or #4580 #2836 #4574)
+#4070 := [def-axiom]: #4111
+#9439 := [unit-resolution #4070 #9438]: #4577
+#9422 := [unit-resolution #9439 #8699]: #4574
+#4068 := (or #4571 #4481)
+#4069 := [def-axiom]: #4068
+#9423 := [unit-resolution #4069 #9422]: #4481
+#10877 := (or #4486 #9846 #15367)
+#15363 := (= #15362 #2306)
+#15366 := (or #15363 #9846)
+#14529 := (or #4486 #15366)
+#14658 := (iff #14529 #10877)
+#14681 := (or #4486 #15373)
+#14554 := (iff #14681 #10877)
+#14690 := [rewrite]: #14554
+#12540 := (iff #14529 #14681)
+#15376 := (iff #15366 #15373)
+#15370 := (or #15367 #9846)
+#15374 := (iff #15370 #15373)
+#15375 := [rewrite]: #15374
+#15371 := (iff #15366 #15370)
+#15368 := (iff #15363 #15367)
+#15369 := [rewrite]: #15368
+#15372 := [monotonicity #15369]: #15371
+#15377 := [trans #15372 #15375]: #15376
+#14677 := [monotonicity #15377]: #12540
+#14520 := [trans #14677 #14690]: #14658
+#14692 := [quant-inst]: #14529
+#10887 := [mp #14692 #14520]: #10877
+#32978 := [unit-resolution #10887 #9423]: #15373
+#32979 := [unit-resolution #32978 #32950]: #9846
+#32981 := [mp #32979 #32971]: #30313
+#18779 := (= ?x52!15 #7128)
+#32989 := (iff #18779 #32602)
+#32770 := (iff #32602 #18779)
+#25219 := (= #7128 ?x52!15)
+#25223 := (iff #25219 #18779)
+#29787 := [commutativity]: #25223
+#32974 := (iff #32602 #25219)
+#32975 := [monotonicity #32984]: #32974
+#32986 := [trans #32975 #29787]: #32770
+#32991 := [symm #32986]: #32989
+#15413 := (uf_1 uf_16 ?x52!15)
+#15414 := (uf_10 #15413)
+#15439 := (+ #2307 #15414)
+#15440 := (+ #144 #15439)
+#15443 := (= #15440 0::int)
+#15432 := (+ #15397 #15414)
+#15433 := (+ #144 #15432)
+#15434 := (>= #15433 0::int)
+#15418 := (* -1::int #15414)
+#15419 := (+ uf_9 #15418)
+#15420 := (<= #15419 0::int)
+#15473 := (or #15420 #15434)
+#15478 := (not #15473)
+#15481 := (or #15367 #15478)
+#14730 := (or #4461 #15367 #15478)
+#15421 := (+ #1449 #15418)
+#15422 := (+ #15362 #15421)
+#15423 := (<= #15422 0::int)
+#15467 := (or #15423 #15420)
+#15468 := (not #15467)
+#15469 := (or #15363 #15468)
+#14738 := (or #4461 #15469)
+#14986 := (iff #14738 #14730)
+#14556 := (or #4461 #15481)
+#14896 := (iff #14556 #14730)
+#15034 := [rewrite]: #14896
+#14832 := (iff #14738 #14556)
+#15482 := (iff #15469 #15481)
+#15479 := (iff #15468 #15478)
+#15476 := (iff #15467 #15473)
+#15470 := (or #15434 #15420)
+#15474 := (iff #15470 #15473)
+#15475 := [rewrite]: #15474
+#15471 := (iff #15467 #15470)
+#15437 := (iff #15423 #15434)
+#15425 := (+ #15362 #15418)
+#15426 := (+ #1449 #15425)
+#15429 := (<= #15426 0::int)
+#15435 := (iff #15429 #15434)
+#15436 := [rewrite]: #15435
+#15430 := (iff #15423 #15429)
+#15427 := (= #15422 #15426)
+#15428 := [rewrite]: #15427
+#15431 := [monotonicity #15428]: #15430
+#15438 := [trans #15431 #15436]: #15437
+#15472 := [monotonicity #15438]: #15471
+#15477 := [trans #15472 #15475]: #15476
+#15480 := [monotonicity #15477]: #15479
+#15483 := [monotonicity #15369 #15480]: #15482
+#15031 := [monotonicity #15483]: #14832
+#14985 := [trans #15031 #15034]: #14986
+#12501 := [quant-inst]: #14738
+#15678 := [mp #12501 #14985]: #14730
+#32969 := [unit-resolution #15678 #8574]: #15481
+#32952 := [unit-resolution #32969 #32950]: #15478
+#29629 := (or #15473 #15443)
+#25301 := (not #15443)
+#29623 := [hypothesis]: #25301
+#15187 := (not #15420)
+#29624 := [hypothesis]: #15478
+#14833 := (or #15473 #15187)
+#15233 := [def-axiom]: #14833
+#29625 := [unit-resolution #15233 #29624]: #15187
+#8899 := (not #15434)
+#15050 := (or #15473 #8899)
+#15028 := [def-axiom]: #15050
+#29626 := [unit-resolution #15028 #29624]: #8899
+#15449 := (or #15420 #15434 #15443)
+#12503 := (or #4469 #15420 #15434 #15443)
+#15415 := (+ #15414 #2307)
+#15416 := (+ #144 #15415)
+#15417 := (= #15416 0::int)
+#15424 := (or #15423 #15420 #15417)
+#12502 := (or #4469 #15424)
+#14824 := (iff #12502 #12503)
+#14693 := (or #4469 #15449)
+#14698 := (iff #14693 #12503)
+#14734 := [rewrite]: #14698
+#14675 := (iff #12502 #14693)
+#15452 := (iff #15424 #15449)
+#15446 := (or #15434 #15420 #15443)
+#15450 := (iff #15446 #15449)
+#15451 := [rewrite]: #15450
+#15447 := (iff #15424 #15446)
+#15444 := (iff #15417 #15443)
+#15441 := (= #15416 #15440)
+#15442 := [rewrite]: #15441
+#15445 := [monotonicity #15442]: #15444
+#15448 := [monotonicity #15438 #15445]: #15447
+#15453 := [trans #15448 #15451]: #15452
+#14648 := [monotonicity #15453]: #14675
+#14687 := [trans #14648 #14734]: #14824
+#14736 := [quant-inst]: #12502
+#13488 := [mp #14736 #14687]: #12503
+#29627 := [unit-resolution #13488 #7390]: #15449
+#29628 := [unit-resolution #29627 #29626 #29625 #29623]: false
+#29630 := [lemma #29628]: #29629
+#32972 := [unit-resolution #29630 #32952]: #15443
+#29799 := (or #25301 #18779)
+#7126 := (uf_3 #6008)
+#15598 := (uf_1 #7126 ?x52!15)
+#27533 := (uf_3 #15598)
+#28710 := (uf_1 #7128 #27533)
+#28711 := (uf_10 #28710)
+#28714 := (* -1::int #28711)
+#28814 := (+ #15414 #28714)
+#28506 := (>= #28814 0::int)
+#28505 := (= #15414 #28711)
+#29767 := (= #28711 #15414)
+#29765 := (= #28710 #15413)
+#29763 := (= #27533 ?x52!15)
+#27534 := (= ?x52!15 #27533)
+#27563 := (or #5378 #27534)
+#27564 := [quant-inst]: #27563
+#29762 := [unit-resolution #27564 #4300]: #27534
+#29764 := [symm #29762]: #29763
+#29766 := [monotonicity #8036 #29764]: #29765
+#29768 := [monotonicity #29766]: #29767
+#29769 := [symm #29768]: #28505
+#29770 := (not #28505)
+#29771 := (or #29770 #28506)
+#29772 := [th-lemma]: #29771
+#29773 := [unit-resolution #29772 #29769]: #28506
+#5902 := (* -1::int #5856)
+#6232 := (+ #144 #5902)
+#6233 := (>= #6232 0::int)
+#4218 := (or #4583 #4472)
+#4120 := [def-axiom]: #4218
+#14110 := [unit-resolution #4120 #9437]: #4472
+#6959 := (or #4477 #6233)
+#6960 := [quant-inst]: #6959
+#12934 := [unit-resolution #6960 #14110]: #6233
+#7167 := (uf_18 #7128)
+#8141 := (* -1::int #7167)
+#10187 := (+ #5856 #8141)
+#7462 := (>= #10187 0::int)
+#10181 := (= #5856 #7167)
+#14102 := (= #7167 #5856)
+#14103 := [monotonicity #8036]: #14102
+#14104 := [symm #14103]: #10181
+#14105 := (not #10181)
+#25236 := (or #14105 #7462)
+#25243 := [th-lemma]: #25236
+#25235 := [unit-resolution #25243 #14104]: #7462
+#14406 := (<= #15440 0::int)
+#25300 := [hypothesis]: #15443
+#25302 := (or #25301 #14406)
+#25303 := [th-lemma]: #25302
+#25304 := [unit-resolution #25303 #25300]: #14406
+#15344 := (+ #2306 #8141)
+#15518 := (<= #15344 0::int)
+#7164 := (uf_6 uf_17 #7128)
+#7165 := (= uf_8 #7164)
+#25365 := (= #5319 #7164)
+#25361 := (= #7164 #5319)
+#25364 := [monotonicity #8578 #8036]: #25361
+#25366 := [symm #25364]: #25365
+#25367 := [trans #8579 #25366]: #7165
+#15503 := (uf_1 #7128 ?x52!15)
+#15504 := (uf_10 #15503)
+#15530 := (* -1::int #15504)
+#15531 := (+ #8141 #15530)
+#15532 := (+ #2306 #15531)
+#15533 := (= #15532 0::int)
+#25324 := (or #25301 #15533)
+#15538 := (not #15533)
+#25256 := [hypothesis]: #15538
+#14445 := (>= #15532 0::int)
+#14444 := (+ #15414 #15530)
+#14494 := (>= #14444 0::int)
+#14488 := (= #15414 #15504)
+#25275 := (= #15504 #15414)
+#25257 := (= #15503 #15413)
+#25274 := [monotonicity #8036]: #25257
+#25270 := [monotonicity #25274]: #25275
+#25276 := [symm #25270]: #14488
+#25277 := (not #14488)
+#25278 := (or #25277 #14494)
+#25279 := [th-lemma]: #25278
+#25280 := [unit-resolution #25279 #25276]: #14494
+#25306 := (not #14406)
+#25305 := (not #14494)
+#13409 := (not #6233)
+#25299 := (not #7462)
+#25307 := (or #14445 #25299 #13409 #25305 #25306)
+#25308 := [th-lemma]: #25307
+#25309 := [unit-resolution #25308 #25304 #25235 #12934 #25280]: #14445
+#14391 := (<= #15532 0::int)
+#14441 := (<= #14444 0::int)
+#25316 := (or #25277 #14441)
+#25317 := [th-lemma]: #25316
+#25315 := [unit-resolution #25317 #25276]: #14441
+#6970 := (<= #6232 0::int)
+#14098 := (not #5857)
+#14099 := (or #14098 #6970)
+#14100 := [th-lemma]: #14099
+#14101 := [unit-resolution #14100 #8570]: #6970
+#10188 := (<= #10187 0::int)
+#14106 := (or #14105 #10188)
+#14107 := [th-lemma]: #14106
+#14108 := [unit-resolution #14107 #14104]: #10188
+#14435 := (>= #15440 0::int)
+#25318 := (or #25301 #14435)
+#25319 := [th-lemma]: #25318
+#25320 := [unit-resolution #25319 #25300]: #14435
+#25333 := (not #14435)
+#25332 := (not #14441)
+#12642 := (not #6970)
+#25331 := (not #10188)
+#25334 := (or #14391 #25331 #12642 #25332 #25333)
+#25335 := [th-lemma]: #25334
+#25336 := [unit-resolution #25335 #25320 #14108 #14101 #25315]: #14391
+#25314 := (not #14445)
+#25337 := (not #14391)
+#25321 := (or #15533 #25337 #25314)
+#25322 := [th-lemma]: #25321
+#25323 := [unit-resolution #25322 #25336 #25309 #25256]: false
+#25313 := [lemma #25323]: #25324
+#29774 := [unit-resolution #25313 #25300]: #15533
+#7166 := (not #7165)
+#15541 := (or #7166 #15518 #15538)
+#6002 := (+ #108 #1449)
+#7864 := (<= #6002 0::int)
+#23377 := (= #108 #144)
+#12197 := (= #144 #108)
+#5945 := (= uf_16 uf_11)
+#5947 := (= uf_11 uf_16)
+#5928 := (?x40!7 uf_16)
+#5932 := (uf_4 uf_14 #5928)
+#5933 := (* -1::int #5932)
+#5929 := (uf_1 #5928 uf_16)
+#5930 := (uf_10 #5929)
+#5931 := (* -1::int #5930)
+#5950 := (+ #5931 #5933)
+#5951 := (+ #144 #5950)
+#5954 := (= #5951 0::int)
+#5957 := (not #5954)
+#5940 := (uf_6 uf_15 #5928)
+#5941 := (= uf_8 #5940)
+#5942 := (not #5941)
+#5938 := (+ #144 #5933)
+#5939 := (<= #5938 0::int)
+#5963 := (or #5939 #5942 #5957)
+#6003 := (>= #6002 0::int)
+#9539 := (not #7864)
+#23470 := [hypothesis]: #9539
+#23505 := (or #7864 #6003)
+#23465 := [th-lemma]: #23505
+#23464 := [unit-resolution #23465 #23470]: #6003
+#9672 := (not #6003)
+#18009 := (or #9672 #5939)
+#7466 := (>= #5932 0::int)
+#8252 := (not #7466)
+#8253 := [hypothesis]: #8252
+#8212 := (or #4409 #7466)
+#8206 := [quant-inst]: #8212
+#8263 := [unit-resolution #8206 #7305 #8253]: false
+#8264 := [lemma #8263]: #7466
+#17999 := (or #9672 #8252 #5939)
+#4050 := (<= #108 0::int)
+#7308 := (or #1854 #4050)
+#7309 := [th-lemma]: #7308
+#7310 := [unit-resolution #7309 #7307]: #4050
+#5512 := (not #4050)
+#17980 := (or #9672 #5512 #8252 #5939)
+#17982 := [th-lemma]: #17980
+#17995 := [unit-resolution #17982 #7310]: #17999
+#18007 := [unit-resolution #17995 #8264]: #18009
+#23469 := [unit-resolution #18007 #23464]: #5939
+#7005 := (not #5939)
+#7006 := (or #5963 #7005)
+#7007 := [def-axiom]: #7006
+#23506 := [unit-resolution #7007 #23469]: #5963
+#5968 := (not #5963)
+#18000 := (or #5947 #5968)
+#4208 := (or #4595 #1657)
+#4210 := [def-axiom]: #4208
+#16348 := [unit-resolution #4210 #7389]: #1657
+#6992 := (or #4442 #1656 #5947 #5968)
+#5934 := (+ #5933 #5931)
+#5935 := (+ #144 #5934)
+#5936 := (= #5935 0::int)
+#5937 := (not #5936)
+#5943 := (or #5942 #5939 #5937)
+#5944 := (not #5943)
+#5946 := (or #5945 #1656 #5944)
+#6993 := (or #4442 #5946)
+#7000 := (iff #6993 #6992)
+#5974 := (or #1656 #5947 #5968)
+#6995 := (or #4442 #5974)
+#6998 := (iff #6995 #6992)
+#6999 := [rewrite]: #6998
+#6996 := (iff #6993 #6995)
+#5977 := (iff #5946 #5974)
+#5971 := (or #5947 #1656 #5968)
+#5975 := (iff #5971 #5974)
+#5976 := [rewrite]: #5975
+#5972 := (iff #5946 #5971)
+#5969 := (iff #5944 #5968)
+#5966 := (iff #5943 #5963)
+#5960 := (or #5942 #5939 #5957)
+#5964 := (iff #5960 #5963)
+#5965 := [rewrite]: #5964
+#5961 := (iff #5943 #5960)
+#5958 := (iff #5937 #5957)
+#5955 := (iff #5936 #5954)
+#5952 := (= #5935 #5951)
+#5953 := [rewrite]: #5952
+#5956 := [monotonicity #5953]: #5955
+#5959 := [monotonicity #5956]: #5958
+#5962 := [monotonicity #5959]: #5961
+#5967 := [trans #5962 #5965]: #5966
+#5970 := [monotonicity #5967]: #5969
+#5948 := (iff #5945 #5947)
+#5949 := [rewrite]: #5948
+#5973 := [monotonicity #5949 #5970]: #5972
+#5978 := [trans #5973 #5976]: #5977
+#6997 := [monotonicity #5978]: #6996
+#7001 := [trans #6997 #6999]: #7000
+#6994 := [quant-inst]: #6993
+#7002 := [mp #6994 #7001]: #6992
+#18030 := [unit-resolution #7002 #8030 #16348]: #18000
+#23510 := [unit-resolution #18030 #23506]: #5947
+#12009 := [symm #23510]: #5945
+#12163 := [monotonicity #12009]: #12197
+#12023 := [symm #12163]: #23377
+#12215 := (not #23377)
+#12216 := (or #12215 #7864)
+#11464 := [th-lemma]: #12216
+#12217 := [unit-resolution #11464 #23470 #12023]: false
+#12311 := [lemma #12217]: #7864
+#9540 := (or #2234 #9539)
+#6554 := (uf_1 uf_16 ?x47!10)
+#6555 := (uf_10 #6554)
+#6435 := (* -1::int #2233)
+#6597 := (+ #6435 #6555)
+#6598 := (+ #144 #6597)
+#8322 := (<= #6598 0::int)
+#6601 := (= #6598 0::int)
+#6538 := (* -1::int #6555)
+#6539 := (+ uf_9 #6538)
+#6540 := (<= #6539 0::int)
+#8336 := (not #6540)
+#6327 := (uf_4 uf_14 ?x47!10)
+#6471 := (* -1::int #6327)
+#6590 := (+ #6471 #6555)
+#6591 := (+ #144 #6590)
+#6592 := (>= #6591 0::int)
+#6650 := (or #6540 #6592)
+#6660 := (not #6650)
+#6344 := (= #2233 #6327)
+#9327 := (not #6344)
+#6472 := (+ #2233 #6471)
+#8301 := (>= #6472 0::int)
+#9317 := (not #8301)
+#9321 := [hypothesis]: #2235
+#6814 := (>= #6327 0::int)
+#7656 := (or #4409 #6814)
+#7657 := [quant-inst]: #7656
+#9322 := [unit-resolution #7657 #7305]: #6814
+#9323 := (not #6814)
+#9324 := (or #9317 #2234 #9323)
+#9325 := [th-lemma]: #9324
+#9326 := [unit-resolution #9325 #9322 #9321]: #9317
+#9347 := (or #9327 #8301)
+#9348 := [th-lemma]: #9347
+#9349 := [unit-resolution #9348 #9326]: #9327
+#6662 := (or #6344 #6660)
+#8339 := (or #4461 #6344 #6660)
+#6541 := (+ #1449 #6538)
+#6536 := (+ #6327 #6541)
+#6542 := (<= #6536 0::int)
+#6641 := (or #6542 #6540)
+#6642 := (not #6641)
+#6328 := (= #6327 #2233)
+#6643 := (or #6328 #6642)
+#8314 := (or #4461 #6643)
+#8333 := (iff #8314 #8339)
+#8281 := (or #4461 #6662)
+#8343 := (iff #8281 #8339)
+#8332 := [rewrite]: #8343
+#8341 := (iff #8314 #8281)
+#6663 := (iff #6643 #6662)
+#6661 := (iff #6642 #6660)
+#6655 := (iff #6641 #6650)
+#6649 := (or #6592 #6540)
+#6653 := (iff #6649 #6650)
+#6654 := [rewrite]: #6653
+#6651 := (iff #6641 #6649)
+#6595 := (iff #6542 #6592)
+#6544 := (+ #6327 #6538)
+#6545 := (+ #1449 #6544)
+#6562 := (<= #6545 0::int)
+#6593 := (iff #6562 #6592)
+#6594 := [rewrite]: #6593
+#6587 := (iff #6542 #6562)
+#6546 := (= #6536 #6545)
+#6561 := [rewrite]: #6546
+#6589 := [monotonicity #6561]: #6587
+#6596 := [trans #6589 #6594]: #6595
+#6652 := [monotonicity #6596]: #6651
+#6658 := [trans #6652 #6654]: #6655
+#6659 := [monotonicity #6658]: #6661
+#6383 := (iff #6328 #6344)
+#6384 := [rewrite]: #6383
+#6664 := [monotonicity #6384 #6659]: #6663
+#8342 := [monotonicity #6664]: #8341
+#8334 := [trans #8342 #8332]: #8333
+#8340 := [quant-inst]: #8314
+#8335 := [mp #8340 #8334]: #8339
+#9350 := [unit-resolution #8335 #8574]: #6662
+#9351 := [unit-resolution #9350 #9349]: #6660
+#8327 := (or #6650 #8336)
+#8352 := [def-axiom]: #8327
+#9346 := [unit-resolution #8352 #9351]: #8336
+#8360 := (not #6592)
+#8348 := (or #6650 #8360)
+#8353 := [def-axiom]: #8348
+#9352 := [unit-resolution #8353 #9351]: #8360
+#6607 := (or #6540 #6592 #6601)
+#8318 := (or #4469 #6540 #6592 #6601)
+#6556 := (+ #6555 #6435)
+#6557 := (+ #144 #6556)
+#6537 := (= #6557 0::int)
+#6543 := (or #6542 #6540 #6537)
+#8344 := (or #4469 #6543)
+#8331 := (iff #8344 #8318)
+#8349 := (or #4469 #6607)
+#8330 := (iff #8349 #8318)
+#8325 := [rewrite]: #8330
+#8328 := (iff #8344 #8349)
+#6578 := (iff #6543 #6607)
+#6604 := (or #6592 #6540 #6601)
+#6579 := (iff #6604 #6607)
+#6580 := [rewrite]: #6579
+#6605 := (iff #6543 #6604)
+#6602 := (iff #6537 #6601)
+#6599 := (= #6557 #6598)
+#6600 := [rewrite]: #6599
+#6603 := [monotonicity #6600]: #6602
+#6606 := [monotonicity #6596 #6603]: #6605
+#6581 := [trans #6606 #6580]: #6578
+#8329 := [monotonicity #6581]: #8328
+#8320 := [trans #8329 #8325]: #8331
+#8345 := [quant-inst]: #8344
+#8321 := [mp #8345 #8320]: #8318
+#9353 := [unit-resolution #8321 #7390]: #6607
+#9354 := [unit-resolution #9353 #9352 #9346]: #6601
+#9355 := (not #6601)
+#9356 := (or #9355 #8322)
+#9367 := [th-lemma]: #9356
+#9368 := [unit-resolution #9367 #9354]: #8322
+#9369 := [hypothesis]: #7864
+#4041 := (>= #108 0::int)
+#9370 := (or #1854 #4041)
+#9371 := [th-lemma]: #9370
+#9366 := [unit-resolution #9371 #7307]: #4041
+#8900 := (uf_1 #7128 ?x47!10)
+#8901 := (uf_10 #8900)
+#8908 := (* -1::int #8901)
+#9307 := (+ #6555 #8908)
+#9320 := (>= #9307 0::int)
+#9304 := (= #6555 #8901)
+#9374 := (= #8901 #6555)
+#9372 := (= #8900 #6554)
+#9373 := [monotonicity #8036]: #9372
+#9375 := [monotonicity #9373]: #9374
+#9376 := [symm #9375]: #9304
+#9382 := (not #9304)
+#9383 := (or #9382 #9320)
+#9432 := [th-lemma]: #9383
+#9433 := [unit-resolution #9432 #9376]: #9320
+#9287 := (>= #8901 0::int)
+#9080 := (<= #8901 0::int)
+#9207 := (not #9080)
+#8373 := (= ?x47!10 #7128)
+#8730 := (not #8373)
+#6710 := (uf_6 uf_15 ?x47!10)
+#6711 := (= uf_8 #6710)
+#8599 := (ite #8373 #5314 #6711)
+#8729 := (not #8599)
+#7658 := (uf_6 #7203 ?x47!10)
+#8338 := (= uf_8 #7658)
+#8700 := (iff #8338 #8599)
+#8684 := (or #7026 #8700)
+#7640 := (ite #8373 #6089 #6711)
+#7653 := (= #7658 uf_8)
+#8337 := (iff #7653 #7640)
+#8723 := (or #7026 #8337)
+#8725 := (iff #8723 #8684)
+#8726 := (iff #8684 #8684)
+#8722 := [rewrite]: #8726
+#8682 := (iff #8337 #8700)
+#8326 := (iff #7640 #8599)
+#8600 := [monotonicity #6102]: #8326
+#8410 := (iff #7653 #8338)
+#8521 := [rewrite]: #8410
+#8683 := [monotonicity #8521 #8600]: #8682
+#8720 := [monotonicity #8683]: #8725
+#8727 := [trans #8720 #8722]: #8725
+#8724 := [quant-inst]: #8723
+#8728 := [mp #8724 #8727]: #8684
+#9434 := [unit-resolution #8728 #4320]: #8700
+#8895 := (not #8338)
+#6323 := (uf_6 uf_17 ?x47!10)
+#6325 := (= uf_8 #6323)
+#6326 := (not #6325)
+#9431 := (iff #6326 #8895)
+#9429 := (iff #6325 #8338)
+#9427 := (iff #8338 #6325)
+#9426 := (= #7658 #6323)
+#9421 := [monotonicity #8591]: #9426
+#9428 := [monotonicity #9421]: #9427
+#9430 := [symm #9428]: #9429
+#9460 := [monotonicity #9430]: #9431
+#6382 := (or #6326 #6344)
+#8268 := (or #4486 #6326 #6344)
+#6343 := (or #6328 #6326)
+#8269 := (or #4486 #6343)
+#8297 := (iff #8269 #8268)
+#8294 := (or #4486 #6382)
+#8296 := (iff #8294 #8268)
+#8283 := [rewrite]: #8296
+#8284 := (iff #8269 #8294)
+#6390 := (iff #6343 #6382)
+#6385 := (or #6344 #6326)
+#6388 := (iff #6385 #6382)
+#6389 := [rewrite]: #6388
+#6386 := (iff #6343 #6385)
+#6387 := [monotonicity #6384]: #6386
+#6391 := [trans #6387 #6389]: #6390
+#8295 := [monotonicity #6391]: #8284
+#8298 := [trans #8295 #8283]: #8297
+#8293 := [quant-inst]: #8269
+#8299 := [mp #8293 #8298]: #8268
+#9424 := [unit-resolution #8299 #9423]: #6382
+#9425 := [unit-resolution #9424 #9349]: #6326
+#9461 := [mp #9425 #9460]: #8895
+#8917 := (not #8700)
+#8920 := (or #8917 #8338 #8729)
+#8894 := [def-axiom]: #8920
+#9462 := [unit-resolution #8894 #9461 #9434]: #8729
+#9463 := (or #8599 #8730)
+#7040 := (not #5314)
+#8907 := (or #8599 #8730 #7040)
+#8910 := [def-axiom]: #8907
+#9464 := [unit-resolution #8910 #8579]: #9463
+#9459 := [unit-resolution #9464 #9462]: #8730
+#9206 := (or #8373 #9207)
+#9214 := (or #7093 #8373 #9207)
+#9208 := (= #7128 ?x47!10)
+#9209 := (or #9208 #9207)
+#9215 := (or #7093 #9209)
+#9241 := (iff #9215 #9214)
+#9242 := (or #7093 #9206)
+#9245 := (iff #9242 #9214)
+#9246 := [rewrite]: #9245
+#9243 := (iff #9215 #9242)
+#9212 := (iff #9209 #9206)
+#9210 := (iff #9208 #8373)
+#9211 := [rewrite]: #9210
+#9213 := [monotonicity #9211]: #9212
+#9244 := [monotonicity #9213]: #9243
+#9247 := [trans #9244 #9246]: #9241
+#9216 := [quant-inst]: #9215
+#9248 := [mp #9216 #9247]: #9214
+#9465 := [unit-resolution #9248 #4347]: #9206
+#9466 := [unit-resolution #9465 #9459]: #9207
+#9467 := (or #9287 #9080)
+#9468 := [th-lemma]: #9467
+#9469 := [unit-resolution #9468 #9466]: #9287
+#9538 := [th-lemma #9321 #9469 #9433 #9366 #9369 #9368]: false
+#9541 := [lemma #9538]: #9540
+#29775 := [unit-resolution #9541 #12311]: #2234
+#4222 := (or #4571 #4565)
+#4223 := [def-axiom]: #4222
+#25326 := [unit-resolution #4223 #9422]: #4565
+#25357 := (or #4568 #4562)
+#6056 := (= #108 #172)
+#25354 := (iff #6056 #173)
+#25353 := [commutativity]: #1490
+#25351 := (iff #6056 #645)
+#25352 := [monotonicity #7307]: #25351
+#25355 := [trans #25352 #25353]: #25354
+#6015 := (uf_10 #6008)
+#6019 := (* -1::int #6015)
+#6022 := (+ #1449 #6019)
+#6023 := (+ #108 #6022)
+#6024 := (<= #6023 0::int)
+#6020 := (+ uf_9 #6019)
+#6021 := (<= #6020 0::int)
+#6058 := (or #6021 #6024)
+#7125 := (>= #6015 0::int)
+#7105 := (= #6015 0::int)
+#7087 := (<= #6015 0::int)
+#4062 := (not #6024)
+#7293 := [hypothesis]: #4062
+#7312 := (or #7087 #6024)
+#7088 := (not #7087)
+#7292 := [hypothesis]: #7088
+#6001 := (>= #144 0::int)
+#7016 := (or #4409 #6001)
+#7017 := [quant-inst]: #7016
+#7306 := [unit-resolution #7017 #7305]: #6001
+#7311 := [th-lemma #7310 #7306 #7293 #7292]: false
+#7313 := [lemma #7311]: #7312
+#7186 := [unit-resolution #7313 #7293]: #7087
+#7090 := (or #5947 #7088)
+#7094 := (or #7093 #5947 #7088)
+#7089 := (or #5945 #7088)
+#7095 := (or #7093 #7089)
+#7102 := (iff #7095 #7094)
+#7097 := (or #7093 #7090)
+#7100 := (iff #7097 #7094)
+#7101 := [rewrite]: #7100
+#7098 := (iff #7095 #7097)
+#7091 := (iff #7089 #7090)
+#7092 := [monotonicity #5949]: #7091
+#7099 := [monotonicity #7092]: #7098
+#7103 := [trans #7099 #7101]: #7102
+#7096 := [quant-inst]: #7095
+#7104 := [mp #7096 #7103]: #7094
+#7187 := [unit-resolution #7104 #4347]: #7090
+#7182 := [unit-resolution #7187 #7186]: #5947
+#7108 := (not #5947)
+#7111 := (or #7108 #7105)
+#7114 := (or #6863 #7108 #7105)
+#7106 := (not #5945)
+#7107 := (or #7106 #7105)
+#7115 := (or #6863 #7107)
+#7122 := (iff #7115 #7114)
+#7117 := (or #6863 #7111)
+#7120 := (iff #7117 #7114)
+#7121 := [rewrite]: #7120
+#7118 := (iff #7115 #7117)
+#7112 := (iff #7107 #7111)
+#7109 := (iff #7106 #7108)
+#7110 := [monotonicity #5949]: #7109
+#7113 := [monotonicity #7110]: #7112
+#7119 := [monotonicity #7113]: #7118
+#7123 := [trans #7119 #7121]: #7122
+#7116 := [quant-inst]: #7115
+#7124 := [mp #7116 #7123]: #7114
+#7188 := [unit-resolution #7124 #4341]: #7111
+#7189 := [unit-resolution #7188 #7182]: #7105
+#7190 := (not #7105)
+#7191 := (or #7190 #7125)
+#7192 := [th-lemma]: #7191
+#7196 := [unit-resolution #7192 #7189]: #7125
+#7197 := [th-lemma #7310 #7306 #7293 #7196]: false
+#7195 := [lemma #7197]: #6024
+#5757 := (or #6058 #4062)
+#5573 := [def-axiom]: #5757
+#25327 := [unit-resolution #5573 #7195]: #6058
+#6061 := (not #6058)
+#6064 := (or #6056 #6061)
+#6681 := (or #4461 #6056 #6061)
+#6054 := (or #6024 #6021)
+#6055 := (not #6054)
+#6057 := (or #6056 #6055)
+#6682 := (or #4461 #6057)
+#6844 := (iff #6682 #6681)
+#6138 := (or #4461 #6064)
+#6392 := (iff #6138 #6681)
+#6683 := [rewrite]: #6392
+#6118 := (iff #6682 #6138)
+#6065 := (iff #6057 #6064)
+#6062 := (iff #6055 #6061)
+#6059 := (iff #6054 #6058)
+#6060 := [rewrite]: #6059
+#6063 := [monotonicity #6060]: #6062
+#6066 := [monotonicity #6063]: #6065
+#6735 := [monotonicity #6066]: #6118
+#6845 := [trans #6735 #6683]: #6844
+#6137 := [quant-inst]: #6682
+#6878 := [mp #6137 #6845]: #6681
+#25328 := [unit-resolution #6878 #8574]: #6064
+#25329 := [unit-resolution #25328 #25327]: #6056
+#25356 := [mp #25329 #25355]: #173
+#4237 := (or #4568 #1492 #4562)
+#4066 := [def-axiom]: #4237
+#25358 := [unit-resolution #4066 #25356]: #25357
+#25359 := [unit-resolution #25358 #25326]: #4562
+#4232 := (or #4559 #4553)
+#4233 := [def-axiom]: #4232
+#25339 := [unit-resolution #4233 #25359]: #4553
+#4087 := (or #4556 #2235 #4550)
+#4088 := [def-axiom]: #4087
+#25340 := [unit-resolution #4088 #25339]: #4553
+#29776 := [unit-resolution #25340 #29775]: #4550
+#4242 := (or #4547 #4541)
+#4243 := [def-axiom]: #4242
+#29777 := [unit-resolution #4243 #29776]: #4541
+#25343 := (or #4544 #4538)
+#12812 := (= #2249 #5856)
+#12998 := (= ?x48!12 uf_16)
+#10849 := (= ?x48!12 #7128)
+#10847 := (uf_6 uf_15 ?x48!12)
+#10848 := (= uf_8 #10847)
+#10857 := (ite #10849 #5314 #10848)
+#10851 := (uf_6 #7203 ?x48!12)
+#10854 := (= uf_8 #10851)
+#10860 := (iff #10854 #10857)
+#12152 := (or #7026 #10860)
+#10850 := (ite #10849 #6089 #10848)
+#10852 := (= #10851 uf_8)
+#10853 := (iff #10852 #10850)
+#12155 := (or #7026 #10853)
+#10823 := (iff #12155 #12152)
+#10879 := (iff #12152 #12152)
+#10880 := [rewrite]: #10879
+#10861 := (iff #10853 #10860)
+#10858 := (iff #10850 #10857)
+#10859 := [monotonicity #6102]: #10858
+#10855 := (iff #10852 #10854)
+#10856 := [rewrite]: #10855
+#10862 := [monotonicity #10856 #10859]: #10861
+#10824 := [monotonicity #10862]: #10823
+#11111 := [trans #10824 #10880]: #10823
+#12156 := [quant-inst]: #12155
+#11091 := [mp #12156 #11111]: #12152
+#13286 := [unit-resolution #11091 #4320]: #10860
+#12615 := (= #2254 #10851)
+#12608 := (= #10851 #2254)
+#12613 := [monotonicity #8591]: #12608
+#12730 := [symm #12613]: #12615
+#12965 := [hypothesis]: #3403
+#3920 := (or #3398 #2255)
+#4261 := [def-axiom]: #3920
+#12611 := [unit-resolution #4261 #12965]: #2255
+#13209 := [trans #12611 #12730]: #10854
+#11918 := (not #10854)
+#10920 := (not #10860)
+#11919 := (or #10920 #11918 #10857)
+#12057 := [def-axiom]: #11919
+#13217 := [unit-resolution #12057 #13209 #13286]: #10857
+#10236 := (not #10848)
+#11183 := (uf_4 uf_14 ?x48!12)
+#11200 := (* -1::int #11183)
+#13667 := (+ #7168 #11200)
+#13668 := (>= #13667 0::int)
+#13764 := (not #13668)
+#12813 := (+ #2249 #5902)
+#12814 := (<= #12813 0::int)
+#13407 := (not #12814)
+#11572 := (uf_4 uf_14 ?x49!11)
+#11589 := (* -1::int #11572)
+#11709 := (+ #144 #11589)
+#11710 := (<= #11709 0::int)
+#11467 := (uf_6 uf_15 ?x49!11)
+#11468 := (= uf_8 #11467)
+#12026 := (not #11468)
+#11469 := (= ?x49!11 #7128)
+#11477 := (ite #11469 #5314 #11468)
+#12038 := (not #11477)
+#11471 := (uf_6 #7203 ?x49!11)
+#11474 := (= uf_8 #11471)
+#11480 := (iff #11474 #11477)
+#12030 := (or #7026 #11480)
+#11470 := (ite #11469 #6089 #11468)
+#11472 := (= #11471 uf_8)
+#11473 := (iff #11472 #11470)
+#12028 := (or #7026 #11473)
+#12024 := (iff #12028 #12030)
+#12033 := (iff #12030 #12030)
+#12035 := [rewrite]: #12033
+#11481 := (iff #11473 #11480)
+#11478 := (iff #11470 #11477)
+#11479 := [monotonicity #6102]: #11478
+#11475 := (iff #11472 #11474)
+#11476 := [rewrite]: #11475
+#11482 := [monotonicity #11476 #11479]: #11481
+#12032 := [monotonicity #11482]: #12024
+#12036 := [trans #12032 #12035]: #12024
+#12031 := [quant-inst]: #12028
+#12034 := [mp #12031 #12036]: #12030
+#13262 := [unit-resolution #12034 #4320]: #11480
+#12051 := (not #11474)
+#13387 := (iff #2258 #12051)
+#13353 := (iff #2257 #11474)
+#12939 := (iff #11474 #2257)
+#13219 := (= #11471 #2256)
+#13243 := [monotonicity #8591]: #13219
+#13039 := [monotonicity #13243]: #12939
+#13377 := [symm #13039]: #13353
+#13388 := [monotonicity #13377]: #13387
+#3924 := (or #3398 #2258)
+#3925 := [def-axiom]: #3924
+#12937 := [unit-resolution #3925 #12965]: #2258
+#12543 := [mp #12937 #13388]: #12051
+#12047 := (not #11480)
+#12048 := (or #12047 #11474 #12038)
+#12050 := [def-axiom]: #12048
+#12544 := [unit-resolution #12050 #12543 #13262]: #12038
+#12039 := (not #11469)
+#12539 := (or #11477 #12039)
+#12042 := (or #11477 #12039 #7040)
+#12043 := [def-axiom]: #12042
+#12545 := [unit-resolution #12043 #8579]: #12539
+#12546 := [unit-resolution #12545 #12544]: #12039
+#12044 := (or #11477 #11469 #12026)
+#12045 := [def-axiom]: #12044
+#12548 := [unit-resolution #12045 #12546 #12544]: #12026
+#11715 := (or #11468 #11710)
+#4217 := (or #4595 #4446)
+#4221 := [def-axiom]: #4217
+#12574 := [unit-resolution #4221 #7389]: #4446
+#12438 := (or #4451 #11468 #11710)
+#11700 := (+ #11572 #1449)
+#11701 := (>= #11700 0::int)
+#11702 := (or #11468 #11701)
+#12444 := (or #4451 #11702)
+#12454 := (iff #12444 #12438)
+#12448 := (or #4451 #11715)
+#12452 := (iff #12448 #12438)
+#12453 := [rewrite]: #12452
+#12450 := (iff #12444 #12448)
+#11716 := (iff #11702 #11715)
+#11713 := (iff #11701 #11710)
+#11703 := (+ #1449 #11572)
+#11706 := (>= #11703 0::int)
+#11711 := (iff #11706 #11710)
+#11712 := [rewrite]: #11711
+#11707 := (iff #11701 #11706)
+#11704 := (= #11700 #11703)
+#11705 := [rewrite]: #11704
+#11708 := [monotonicity #11705]: #11707
+#11714 := [trans #11708 #11712]: #11713
+#11717 := [monotonicity #11714]: #11716
+#12451 := [monotonicity #11717]: #12450
+#12449 := [trans #12451 #12453]: #12454
+#12447 := [quant-inst]: #12444
+#12455 := [mp #12447 #12449]: #12438
+#12575 := [unit-resolution #12455 #12574]: #11715
+#12576 := [unit-resolution #12575 #12548]: #11710
+#3926 := (not #2855)
+#3927 := (or #3398 #3926)
+#4263 := [def-axiom]: #3927
+#12577 := [unit-resolution #4263 #12965]: #3926
+#13397 := (not #11710)
+#12612 := (or #13407 #2855 #11469 #13397)
+#11605 := (uf_1 uf_16 ?x49!11)
+#11606 := (uf_10 #11605)
+#11631 := (+ #2853 #11606)
+#11632 := (+ #144 #11631)
+#12233 := (<= #11632 0::int)
+#11635 := (= #11632 0::int)
+#11610 := (* -1::int #11606)
+#11611 := (+ uf_9 #11610)
+#11612 := (<= #11611 0::int)
+#12253 := (not #11612)
+#11624 := (+ #11589 #11606)
+#11625 := (+ #144 #11624)
+#11626 := (>= #11625 0::int)
+#11669 := (or #11612 #11626)
+#11674 := (not #11669)
+#11663 := (= #2251 #11572)
+#13437 := (not #11663)
+#11590 := (+ #2251 #11589)
+#12252 := (>= #11590 0::int)
+#13367 := (not #12252)
+#13284 := [hypothesis]: #11710
+#13478 := [hypothesis]: #3926
+#13215 := [hypothesis]: #12814
+#13389 := (or #13367 #13397 #2855 #13407 #13409)
+#13410 := [th-lemma]: #13389
+#13436 := [unit-resolution #13410 #13215 #13478 #13284 #12934]: #13367
+#13434 := (or #13437 #12252)
+#12573 := [th-lemma]: #13434
+#13419 := [unit-resolution #12573 #13436]: #13437
+#11677 := (or #11663 #11674)
+#12241 := (or #4461 #11663 #11674)
+#11613 := (+ #1449 #11610)
+#11614 := (+ #11572 #11613)
+#11615 := (<= #11614 0::int)
+#11659 := (or #11615 #11612)
+#11660 := (not #11659)
+#11661 := (= #11572 #2251)
+#11662 := (or #11661 #11660)
+#12242 := (or #4461 #11662)
+#12249 := (iff #12242 #12241)
+#12245 := (or #4461 #11677)
+#12247 := (iff #12245 #12241)
+#12248 := [rewrite]: #12247
+#12239 := (iff #12242 #12245)
+#11678 := (iff #11662 #11677)
+#11675 := (iff #11660 #11674)
+#11672 := (iff #11659 #11669)
+#11666 := (or #11626 #11612)
+#11670 := (iff #11666 #11669)
+#11671 := [rewrite]: #11670
+#11667 := (iff #11659 #11666)
+#11629 := (iff #11615 #11626)
+#11617 := (+ #11572 #11610)
+#11618 := (+ #1449 #11617)
+#11621 := (<= #11618 0::int)
+#11627 := (iff #11621 #11626)
+#11628 := [rewrite]: #11627
+#11622 := (iff #11615 #11621)
+#11619 := (= #11614 #11618)
+#11620 := [rewrite]: #11619
+#11623 := [monotonicity #11620]: #11622
+#11630 := [trans #11623 #11628]: #11629
+#11668 := [monotonicity #11630]: #11667
+#11673 := [trans #11668 #11671]: #11672
+#11676 := [monotonicity #11673]: #11675
+#11664 := (iff #11661 #11663)
+#11665 := [rewrite]: #11664
+#11679 := [monotonicity #11665 #11676]: #11678
+#12246 := [monotonicity #11679]: #12239
+#12244 := [trans #12246 #12248]: #12249
+#12243 := [quant-inst]: #12242
+#12251 := [mp #12243 #12244]: #12241
+#13417 := [unit-resolution #12251 #8574]: #11677
+#13423 := [unit-resolution #13417 #13419]: #11674
+#12254 := (or #11669 #12253)
+#12258 := [def-axiom]: #12254
+#13426 := [unit-resolution #12258 #13423]: #12253
+#12250 := (not #11626)
+#12259 := (or #11669 #12250)
+#12257 := [def-axiom]: #12259
+#13412 := [unit-resolution #12257 #13423]: #12250
+#11641 := (or #11612 #11626 #11635)
+#12229 := (or #4469 #11612 #11626 #11635)
+#11607 := (+ #11606 #2853)
+#11608 := (+ #144 #11607)
+#11609 := (= #11608 0::int)
+#11616 := (or #11615 #11612 #11609)
+#12222 := (or #4469 #11616)
+#12236 := (iff #12222 #12229)
+#12231 := (or #4469 #11641)
+#12227 := (iff #12231 #12229)
+#12235 := [rewrite]: #12227
+#12232 := (iff #12222 #12231)
+#11644 := (iff #11616 #11641)
+#11638 := (or #11626 #11612 #11635)
+#11642 := (iff #11638 #11641)
+#11643 := [rewrite]: #11642
+#11639 := (iff #11616 #11638)
+#11636 := (iff #11609 #11635)
+#11633 := (= #11608 #11632)
+#11634 := [rewrite]: #11633
+#11637 := [monotonicity #11634]: #11636
+#11640 := [monotonicity #11630 #11637]: #11639
+#11645 := [trans #11640 #11643]: #11644
+#12234 := [monotonicity #11645]: #12232
+#12237 := [trans #12234 #12235]: #12236
+#12230 := [quant-inst]: #12222
+#12238 := [mp #12230 #12237]: #12229
+#13413 := [unit-resolution #12238 #7390]: #11641
+#13433 := [unit-resolution #13413 #13412 #13426]: #11635
+#13370 := (not #11635)
+#13390 := (or #13370 #12233)
+#13391 := [th-lemma]: #13390
+#13385 := [unit-resolution #13391 #13433]: #12233
+#12787 := (uf_1 #7128 ?x49!11)
+#12788 := (uf_10 #12787)
+#12790 := (* -1::int #12788)
+#13285 := (+ #11606 #12790)
+#13280 := (>= #13285 0::int)
+#13216 := (= #11606 #12788)
+#12644 := (= #12788 #11606)
+#12645 := (= #12787 #11605)
+#13418 := [monotonicity #8036]: #12645
+#12646 := [monotonicity #13418]: #12644
+#12578 := [symm #12646]: #13216
+#12641 := (not #13216)
+#12647 := (or #12641 #13280)
+#12643 := [th-lemma]: #12647
+#12582 := [unit-resolution #12643 #12578]: #13280
+#13068 := (<= #12788 0::int)
+#13063 := (not #13068)
+#12581 := [hypothesis]: #12039
+#13211 := (or #7093 #11469 #13063)
+#12936 := (= #7128 ?x49!11)
+#13162 := (or #12936 #13063)
+#13263 := (or #7093 #13162)
+#13354 := (iff #13263 #13211)
+#13255 := (or #11469 #13063)
+#13161 := (or #7093 #13255)
+#13351 := (iff #13161 #13211)
+#13352 := [rewrite]: #13351
+#13071 := (iff #13263 #13161)
+#13069 := (iff #13162 #13255)
+#13204 := (iff #12936 #11469)
+#13265 := [rewrite]: #13204
+#13210 := [monotonicity #13265]: #13069
+#13163 := [monotonicity #13210]: #13071
+#13067 := [trans #13163 #13352]: #13354
+#13160 := [quant-inst]: #13263
+#13355 := [mp #13160 #13067]: #13211
+#12609 := [unit-resolution #13355 #4347 #12581]: #13063
+#12610 := [th-lemma #13478 #13215 #12934 #12609 #12582 #13385]: false
+#12583 := [lemma #12610]: #12612
+#12780 := [unit-resolution #12583 #12577 #12546 #12576]: #13407
+#11201 := (+ #2249 #11200)
+#11202 := (<= #11201 0::int)
+#12087 := (or #4477 #11202)
+#11190 := (+ #11183 #2250)
+#11193 := (>= #11190 0::int)
+#12088 := (or #4477 #11193)
+#12090 := (iff #12088 #12087)
+#12092 := (iff #12087 #12087)
+#12093 := [rewrite]: #12092
+#11205 := (iff #11193 #11202)
+#11194 := (+ #2250 #11183)
+#11197 := (>= #11194 0::int)
+#11203 := (iff #11197 #11202)
+#11204 := [rewrite]: #11203
+#11198 := (iff #11193 #11197)
+#11195 := (= #11190 #11194)
+#11196 := [rewrite]: #11195
+#11199 := [monotonicity #11196]: #11198
+#11206 := [trans #11199 #11204]: #11205
+#12091 := [monotonicity #11206]: #12090
+#12095 := [trans #12091 #12093]: #12090
+#12085 := [quant-inst]: #12088
+#12097 := [mp #12085 #12095]: #12087
+#13218 := [unit-resolution #12097 #14110]: #11202
+#12617 := (not #11202)
+#12729 := (not #7572)
+#12728 := (or #13764 #12729 #12814 #12617 #12642)
+#12733 := [th-lemma]: #12728
+#12616 := [unit-resolution #12733 #13218 #9185 #14101 #12780]: #13764
+#13844 := (or #10236 #13668)
+#13842 := [hypothesis]: #13764
+#13843 := [hypothesis]: #10848
+#13801 := (or #4426 #7247 #10236 #13668)
+#13669 := (or #10236 #7247 #13668)
+#13802 := (or #4426 #13669)
+#13788 := (iff #13802 #13801)
+#13670 := (or #7247 #10236 #13668)
+#13804 := (or #4426 #13670)
+#13786 := (iff #13804 #13801)
+#13787 := [rewrite]: #13786
+#13805 := (iff #13802 #13804)
+#13665 := (iff #13669 #13670)
+#13671 := [rewrite]: #13665
+#13806 := [monotonicity #13671]: #13805
+#13789 := [trans #13806 #13787]: #13788
+#13803 := [quant-inst]: #13802
+#13790 := [mp #13803 #13789]: #13801
+#13838 := [unit-resolution #13790 #9153 #9152 #13843 #13842]: false
+#13845 := [lemma #13838]: #13844
+#12734 := [unit-resolution #13845 #12616]: #10236
+#11030 := (not #10857)
+#11307 := (or #11030 #10849 #10848)
+#11294 := [def-axiom]: #11307
+#12742 := [unit-resolution #11294 #12734 #13217]: #10849
+#12732 := [trans #12742 #8036]: #12998
+#12743 := [monotonicity #12732]: #12812
+#12969 := (not #12812)
+#12967 := (or #12969 #12814)
+#12973 := [th-lemma]: #12967
+#12786 := [unit-resolution #12973 #12780]: #12969
+#12771 := [unit-resolution #12786 #12743]: false
+#12735 := [lemma #12771]: #3398
+#4251 := (or #4544 #3403 #4538)
+#4248 := [def-axiom]: #4251
+#25338 := [unit-resolution #4248 #12735]: #25343
+#29778 := [unit-resolution #25338 #29777]: #4538
+#3968 := (or #4535 #4529)
+#3969 := [def-axiom]: #3968
+#29779 := [unit-resolution #3969 #29778]: #4529
+#25346 := (or #4532 #4526)
+#17148 := [hypothesis]: #3449
+#4266 := (or #3444 #2287)
+#4267 := [def-axiom]: #4266
+#17149 := [unit-resolution #4267 #17148]: #2287
+#9931 := (uf_1 uf_16 ?x50!14)
+#9932 := (uf_10 #9931)
+#9936 := (* -1::int #9932)
+#17081 := (+ #2281 #9936)
+#17083 := (>= #17081 0::int)
+#17080 := (= #2281 #9932)
+#17180 := (= #2280 #9931)
+#17179 := (= ?x51!13 uf_16)
+#10336 := (= ?x51!13 #7128)
+#10334 := (uf_6 uf_15 ?x51!13)
+#10335 := (= uf_8 #10334)
+#10367 := (not #10335)
+#10193 := (uf_4 uf_14 ?x51!13)
+#9874 := (uf_4 uf_14 ?x50!14)
+#9915 := (* -1::int #9874)
+#10384 := (+ #9915 #10193)
+#10385 := (+ #2281 #10384)
+#10388 := (>= #10385 0::int)
+#17156 := (not #10388)
+#9916 := (+ #2276 #9915)
+#9917 := (<= #9916 0::int)
+#16708 := (or #4477 #9917)
+#9907 := (+ #9874 #2277)
+#9908 := (>= #9907 0::int)
+#16709 := (or #4477 #9908)
+#16711 := (iff #16709 #16708)
+#16713 := (iff #16708 #16708)
+#16714 := [rewrite]: #16713
+#9920 := (iff #9908 #9917)
+#9909 := (+ #2277 #9874)
+#9912 := (>= #9909 0::int)
+#9918 := (iff #9912 #9917)
+#9919 := [rewrite]: #9918
+#9913 := (iff #9908 #9912)
+#9910 := (= #9907 #9909)
+#9911 := [rewrite]: #9910
+#9914 := [monotonicity #9911]: #9913
+#9921 := [trans #9914 #9919]: #9920
+#16712 := [monotonicity #9921]: #16711
+#16715 := [trans #16712 #16714]: #16711
+#16710 := [quant-inst]: #16709
+#16716 := [mp #16710 #16715]: #16708
+#17308 := [unit-resolution #16716 #14110]: #9917
+#3906 := (not #2882)
+#4269 := (or #3444 #3906)
+#4271 := [def-axiom]: #4269
+#17151 := [unit-resolution #4271 #17148]: #3906
+#10228 := (* -1::int #10193)
+#10229 := (+ #2278 #10228)
+#15878 := (>= #10229 0::int)
+#10198 := (= #2278 #10193)
+#4262 := (or #3444 #2289)
+#4268 := [def-axiom]: #4262
+#17152 := [unit-resolution #4268 #17148]: #2289
+#16493 := (or #4486 #3429 #10198)
+#10194 := (= #10193 #2278)
+#10197 := (or #10194 #3429)
+#16494 := (or #4486 #10197)
+#16503 := (iff #16494 #16493)
+#10204 := (or #3429 #10198)
+#16498 := (or #4486 #10204)
+#16501 := (iff #16498 #16493)
+#16502 := [rewrite]: #16501
+#16499 := (iff #16494 #16498)
+#10207 := (iff #10197 #10204)
+#10201 := (or #10198 #3429)
+#10205 := (iff #10201 #10204)
+#10206 := [rewrite]: #10205
+#10202 := (iff #10197 #10201)
+#10199 := (iff #10194 #10198)
+#10200 := [rewrite]: #10199
+#10203 := [monotonicity #10200]: #10202
+#10208 := [trans #10203 #10206]: #10207
+#16500 := [monotonicity #10208]: #16499
+#16504 := [trans #16500 #16502]: #16503
+#16497 := [quant-inst]: #16494
+#16505 := [mp #16497 #16504]: #16493
+#17150 := [unit-resolution #16505 #9423 #17152]: #10198
+#17153 := (not #10198)
+#17154 := (or #17153 #15878)
+#17155 := [th-lemma]: #17154
+#17147 := [unit-resolution #17155 #17150]: #15878
+#17313 := (not #9917)
+#17315 := (not #15878)
+#17157 := (or #17156 #17315 #17313 #2882)
+#17158 := [th-lemma]: #17157
+#17159 := [unit-resolution #17158 #17147 #17151 #17308]: #17156
+#17146 := (or #10367 #10388)
+#16749 := (or #4417 #2286 #10367 #10388)
+#10380 := (+ #10193 #9915)
+#10381 := (+ #2281 #10380)
+#10382 := (>= #10381 0::int)
+#10383 := (or #10367 #2286 #10382)
+#16750 := (or #4417 #10383)
+#16757 := (iff #16750 #16749)
+#10394 := (or #2286 #10367 #10388)
+#16752 := (or #4417 #10394)
+#16755 := (iff #16752 #16749)
+#16756 := [rewrite]: #16755
+#16753 := (iff #16750 #16752)
+#10397 := (iff #10383 #10394)
+#10391 := (or #10367 #2286 #10388)
+#10395 := (iff #10391 #10394)
+#10396 := [rewrite]: #10395
+#10392 := (iff #10383 #10391)
+#10389 := (iff #10382 #10388)
+#10386 := (= #10381 #10385)
+#10387 := [rewrite]: #10386
+#10390 := [monotonicity #10387]: #10389
+#10393 := [monotonicity #10390]: #10392
+#10398 := [trans #10393 #10396]: #10397
+#16754 := [monotonicity #10398]: #16753
+#16758 := [trans #16754 #16756]: #16757
+#16751 := [quant-inst]: #16750
+#16759 := [mp #16751 #16758]: #16749
+#17160 := [unit-resolution #16759 #8027 #17149]: #17146
+#17161 := [unit-resolution #17160 #17159]: #10367
+#10344 := (ite #10336 #5314 #10335)
+#10338 := (uf_6 #7203 ?x51!13)
+#10341 := (= uf_8 #10338)
+#10347 := (iff #10341 #10344)
+#16506 := (or #7026 #10347)
+#10337 := (ite #10336 #6089 #10335)
+#10339 := (= #10338 uf_8)
+#10340 := (iff #10339 #10337)
+#16507 := (or #7026 #10340)
+#16509 := (iff #16507 #16506)
+#16511 := (iff #16506 #16506)
+#16512 := [rewrite]: #16511
+#10348 := (iff #10340 #10347)
+#10345 := (iff #10337 #10344)
+#10346 := [monotonicity #6102]: #10345
+#10342 := (iff #10339 #10341)
+#10343 := [rewrite]: #10342
+#10349 := [monotonicity #10343 #10346]: #10348
+#16510 := [monotonicity #10349]: #16509
+#16513 := [trans #16510 #16512]: #16509
+#16508 := [quant-inst]: #16507
+#16514 := [mp #16508 #16513]: #16506
+#17162 := [unit-resolution #16514 #4320]: #10347
+#17171 := (= #2288 #10338)
+#17163 := (= #10338 #2288)
+#17164 := [monotonicity #8591]: #17163
+#17174 := [symm #17164]: #17171
+#17175 := [trans #17152 #17174]: #10341
+#16528 := (not #10341)
+#16525 := (not #10347)
+#16529 := (or #16525 #16528 #10344)
+#16530 := [def-axiom]: #16529
+#17176 := [unit-resolution #16530 #17175 #17162]: #10344
+#16515 := (not #10344)
+#16519 := (or #16515 #10336 #10335)
+#16520 := [def-axiom]: #16519
+#17178 := [unit-resolution #16520 #17176 #17161]: #10336
+#17177 := [trans #17178 #8036]: #17179
+#17181 := [monotonicity #17177]: #17180
+#17182 := [monotonicity #17181]: #17080
+#17187 := (not #17080)
+#17188 := (or #17187 #17083)
+#17186 := [th-lemma]: #17188
+#17189 := [unit-resolution #17186 #17182]: #17083
+#9937 := (+ uf_9 #9936)
+#9938 := (<= #9937 0::int)
+#9950 := (+ #9915 #9932)
+#9951 := (+ #144 #9950)
+#9952 := (>= #9951 0::int)
+#16744 := (not #9952)
+#10475 := (uf_2 #2280)
+#11002 := (uf_4 uf_14 #10475)
+#11016 := (* -1::int #11002)
+#16798 := (+ #10193 #11016)
+#16800 := (>= #16798 0::int)
+#16797 := (= #10193 #11002)
+#10476 := (= ?x51!13 #10475)
+#16793 := (or #7136 #10476)
+#16794 := [quant-inst]: #16793
+#17292 := [unit-resolution #16794 #4306]: #10476
+#17295 := [monotonicity #17292]: #16797
+#17296 := (not #16797)
+#17297 := (or #17296 #16800)
+#17298 := [th-lemma]: #17297
+#17299 := [unit-resolution #17298 #17295]: #16800
+#11017 := (+ #144 #11016)
+#11018 := (<= #11017 0::int)
+#17065 := (= #144 #11002)
+#17202 := (= #11002 #144)
+#17194 := (= #10475 uf_16)
+#17192 := (= #10475 #7128)
+#17190 := (= #10475 ?x51!13)
+#17191 := [symm #17292]: #17190
+#17193 := [trans #17191 #17178]: #17192
+#17195 := [trans #17193 #8036]: #17194
+#17203 := [monotonicity #17195]: #17202
+#17204 := [symm #17203]: #17065
+#17205 := (not #17065)
+#17206 := (or #17205 #11018)
+#17201 := [th-lemma]: #17206
+#17207 := [unit-resolution #17201 #17204]: #11018
+#17316 := (not #11018)
+#17314 := (not #16800)
+#17208 := (not #17083)
+#17209 := (or #16744 #17208 #17313 #2882 #17314 #17315 #17316)
+#17210 := [th-lemma]: #17209
+#17211 := [unit-resolution #17210 #17207 #17308 #17147 #17151 #17299 #17189]: #16744
+#9957 := (+ #2277 #9932)
+#9958 := (+ #144 #9957)
+#9961 := (= #9958 0::int)
+#17223 := (not #9961)
+#16729 := (>= #9958 0::int)
+#17219 := (not #16729)
+#17220 := (or #17219 #17208 #2882 #17314 #17315 #17316)
+#17221 := [th-lemma]: #17220
+#17222 := [unit-resolution #17221 #17207 #17147 #17151 #17299 #17189]: #17219
+#17218 := (or #17223 #16729)
+#17224 := [th-lemma]: #17218
+#17225 := [unit-resolution #17224 #17222]: #17223
+#9967 := (or #9938 #9952 #9961)
+#16717 := (or #4469 #9938 #9952 #9961)
+#9933 := (+ #9932 #2277)
+#9934 := (+ #144 #9933)
+#9935 := (= #9934 0::int)
+#9939 := (+ #1449 #9936)
+#9940 := (+ #9874 #9939)
+#9941 := (<= #9940 0::int)
+#9942 := (or #9941 #9938 #9935)
+#16718 := (or #4469 #9942)
+#16725 := (iff #16718 #16717)
+#16720 := (or #4469 #9967)
+#16723 := (iff #16720 #16717)
+#16724 := [rewrite]: #16723
+#16721 := (iff #16718 #16720)
+#9970 := (iff #9942 #9967)
+#9964 := (or #9952 #9938 #9961)
+#9968 := (iff #9964 #9967)
+#9969 := [rewrite]: #9968
+#9965 := (iff #9942 #9964)
+#9962 := (iff #9935 #9961)
+#9959 := (= #9934 #9958)
+#9960 := [rewrite]: #9959
+#9963 := [monotonicity #9960]: #9962
+#9955 := (iff #9941 #9952)
+#9943 := (+ #9874 #9936)
+#9944 := (+ #1449 #9943)
+#9947 := (<= #9944 0::int)
+#9953 := (iff #9947 #9952)
+#9954 := [rewrite]: #9953
+#9948 := (iff #9941 #9947)
+#9945 := (= #9940 #9944)
+#9946 := [rewrite]: #9945
+#9949 := [monotonicity #9946]: #9948
+#9956 := [trans #9949 #9954]: #9955
+#9966 := [monotonicity #9956 #9963]: #9965
+#9971 := [trans #9966 #9969]: #9970
+#16722 := [monotonicity #9971]: #16721
+#16726 := [trans #16722 #16724]: #16725
+#16719 := [quant-inst]: #16718
+#16727 := [mp #16719 #16726]: #16717
+#17226 := [unit-resolution #16727 #7390]: #9967
+#17227 := [unit-resolution #17226 #17225 #17211]: #9938
+#17228 := [th-lemma #17227 #17189 #17149]: false
+#17253 := [lemma #17228]: #3444
+#4253 := (or #4532 #3449 #4526)
+#4257 := [def-axiom]: #4253
+#25347 := [unit-resolution #4257 #17253]: #25346
+#29780 := [unit-resolution #25347 #29779]: #4526
+#3983 := (or #4523 #4515)
+#3984 := [def-axiom]: #3983
+#29781 := [unit-resolution #3984 #29780]: #4515
+#20547 := (or #4520 #7166 #15518 #15538)
+#15505 := (+ #2307 #15504)
+#15506 := (+ #7167 #15505)
+#15507 := (= #15506 0::int)
+#15508 := (not #15507)
+#15509 := (+ #7167 #2307)
+#15510 := (>= #15509 0::int)
+#15511 := (or #7166 #15510 #15508)
+#17626 := (or #4520 #15511)
+#20578 := (iff #17626 #20547)
+#20549 := (or #4520 #15541)
+#20516 := (iff #20549 #20547)
+#20517 := [rewrite]: #20516
+#20386 := (iff #17626 #20549)
+#15542 := (iff #15511 #15541)
+#15539 := (iff #15508 #15538)
+#15536 := (iff #15507 #15533)
+#15523 := (+ #7167 #15504)
+#15524 := (+ #2307 #15523)
+#15527 := (= #15524 0::int)
+#15534 := (iff #15527 #15533)
+#15535 := [rewrite]: #15534
+#15528 := (iff #15507 #15527)
+#15525 := (= #15506 #15524)
+#15526 := [rewrite]: #15525
+#15529 := [monotonicity #15526]: #15528
+#15537 := [trans #15529 #15535]: #15536
+#15540 := [monotonicity #15537]: #15539
+#15521 := (iff #15510 #15518)
+#15512 := (+ #2307 #7167)
+#15515 := (>= #15512 0::int)
+#15519 := (iff #15515 #15518)
+#15520 := [rewrite]: #15519
+#15516 := (iff #15510 #15515)
+#15513 := (= #15509 #15512)
+#15514 := [rewrite]: #15513
+#15517 := [monotonicity #15514]: #15516
+#15522 := [trans #15517 #15520]: #15521
+#15543 := [monotonicity #15522 #15540]: #15542
+#20388 := [monotonicity #15543]: #20386
+#20485 := [trans #20388 #20517]: #20578
+#20612 := [quant-inst]: #17626
+#20795 := [mp #20612 #20485]: #20547
+#29782 := [unit-resolution #20795 #29781]: #15541
+#29783 := [unit-resolution #29782 #29774 #25367]: #15518
+#28771 := (<= #28711 0::int)
+#28772 := (not #28771)
+#28773 := (= #7128 #27533)
+#29792 := (not #28773)
+#28056 := (not #18779)
+#29793 := (iff #28056 #29792)
+#29790 := (iff #18779 #28773)
+#29788 := (iff #28773 #18779)
+#29785 := (iff #28773 #25219)
+#29786 := [monotonicity #29764]: #29785
+#29789 := [trans #29786 #29787]: #29788
+#29791 := [symm #29789]: #29790
+#29794 := [monotonicity #29791]: #29793
+#29784 := [hypothesis]: #28056
+#29795 := [mp #29784 #29794]: #29792
+#28775 := (or #28772 #28773)
+#29743 := (or #7093 #28772 #28773)
+#28774 := (or #28773 #28772)
+#29744 := (or #7093 #28774)
+#29751 := (iff #29744 #29743)
+#29746 := (or #7093 #28775)
+#29749 := (iff #29746 #29743)
+#29750 := [rewrite]: #29749
+#29747 := (iff #29744 #29746)
+#28776 := (iff #28774 #28775)
+#28777 := [rewrite]: #28776
+#29748 := [monotonicity #28777]: #29747
+#29752 := [trans #29748 #29750]: #29751
+#29745 := [quant-inst]: #29744
+#29753 := [mp #29745 #29752]: #29743
+#29796 := [unit-resolution #29753 #4347]: #28775
+#29797 := [unit-resolution #29796 #29795]: #28772
+#29798 := [th-lemma #29797 #29783 #25304 #25235 #12934 #29773]: false
+#29800 := [lemma #29798]: #29799
+#32973 := [unit-resolution #29800 #32972]: #18779
+#32992 := [mp #32973 #32991]: #32602
+#32632 := (not #32602)
+#32993 := (or #32591 #32632)
+#29702 := (or #32591 #32632 #7040)
+#30315 := [def-axiom]: #29702
+#32995 := [unit-resolution #30315 #8579]: #32993
+#32996 := [unit-resolution #32995 #32992]: #32591
+#32599 := (not #32591)
+#28920 := (not #32564)
+#30916 := (or #28920 #32538 #32599)
+#31002 := [def-axiom]: #30916
+#32987 := [unit-resolution #31002 #32996 #32981 #32954]: false
+#32997 := [lemma #32987]: #15367
+#39375 := (or #32956 #14218)
+#39376 := [th-lemma]: #39375
+#39377 := [unit-resolution #39376 #32997]: #14218
+#34351 := (not #14218)
+#34357 := (or #34324 #34351)
+#4272 := (or #4523 #2319)
+#4270 := [def-axiom]: #4272
+#34292 := [unit-resolution #4270 #29780]: #2319
+#34293 := [hypothesis]: #14218
+#34291 := [hypothesis]: #16010
+#34294 := [th-lemma #34291 #34293 #34292]: false
+#34641 := [lemma #34294]: #34357
+#39378 := [unit-resolution #34641 #39377]: #34324
+#39380 := (or #16010 #16030)
+#4273 := (or #4523 #2896)
+#4259 := [def-axiom]: #4273
+#39379 := [unit-resolution #4259 #29780]: #2896
+#17785 := (or #4442 #2893 #16010 #16030)
+#15998 := (+ #15997 #15995)
+#15999 := (+ #15362 #15998)
+#16000 := (= #15999 0::int)
+#16001 := (not #16000)
+#16007 := (or #16006 #16003 #16001)
+#16008 := (not #16007)
+#16011 := (or #2320 #16010 #16008)
+#20897 := (or #4442 #16011)
+#21453 := (iff #20897 #17785)
+#16033 := (or #2893 #16010 #16030)
+#21128 := (or #4442 #16033)
+#18084 := (iff #21128 #17785)
+#22003 := [rewrite]: #18084
+#20788 := (iff #20897 #21128)
+#16034 := (iff #16011 #16033)
+#16031 := (iff #16008 #16030)
+#16028 := (iff #16007 #16025)
+#16022 := (or #16006 #16003 #16019)
+#16026 := (iff #16022 #16025)
+#16027 := [rewrite]: #16026
+#16023 := (iff #16007 #16022)
+#16020 := (iff #16001 #16019)
+#16017 := (iff #16000 #16016)
+#16014 := (= #15999 #16013)
+#16015 := [rewrite]: #16014
+#16018 := [monotonicity #16015]: #16017
+#16021 := [monotonicity #16018]: #16020
+#16024 := [monotonicity #16021]: #16023
+#16029 := [trans #16024 #16027]: #16028
+#16032 := [monotonicity #16029]: #16031
+#16035 := [monotonicity #2895 #16032]: #16034
+#21237 := [monotonicity #16035]: #20788
+#21330 := [trans #21237 #22003]: #21453
+#21234 := [quant-inst]: #20897
+#21506 := [mp #21234 #21330]: #17785
+#39381 := [unit-resolution #21506 #8030 #39379]: #39380
+#39382 := [unit-resolution #39381 #39378]: #16030
+#22030 := (or #16025 #16016)
+#18058 := [def-axiom]: #22030
+#32365 := [unit-resolution #18058 #39382]: #16016
+#32368 := (or #16019 #22006)
+#29568 := [th-lemma]: #32368
+#29612 := [unit-resolution #29568 #32365]: #22006
+#20411 := (+ uf_9 #15995)
+#20412 := (<= #20411 0::int)
+#20215 := (uf_6 uf_17 #15992)
+#20216 := (= uf_8 #20215)
+#20606 := (uf_2 #15993)
+#39327 := (uf_6 #7203 #20606)
+#38901 := (= #39327 #20215)
+#38905 := (= #20215 #39327)
+#20607 := (= #15992 #20606)
+#25402 := (or #7136 #20607)
+#25393 := [quant-inst]: #25402
+#39384 := [unit-resolution #25393 #4306]: #20607
+#8247 := (= uf_17 #7203)
+#8291 := (= #150 #7203)
+#8151 := [symm #8593]: #8291
+#8423 := [trans #8578 #8151]: #8247
+#38906 := [monotonicity #8423 #39384]: #38905
+#38907 := [symm #38906]: #38901
+#39330 := (= uf_8 #39327)
+#21345 := (uf_6 uf_15 #20606)
+#21346 := (= uf_8 #21345)
+#39333 := (= #7128 #20606)
+#39336 := (ite #39333 #5314 #21346)
+#39339 := (iff #39330 #39336)
+#38867 := (or #7026 #39339)
+#39325 := (= #20606 #7128)
+#39326 := (ite #39325 #6089 #21346)
+#39328 := (= #39327 uf_8)
+#39329 := (iff #39328 #39326)
+#38877 := (or #7026 #39329)
+#38879 := (iff #38877 #38867)
+#38890 := (iff #38867 #38867)
+#38888 := [rewrite]: #38890
+#39340 := (iff #39329 #39339)
+#39337 := (iff #39326 #39336)
+#39334 := (iff #39325 #39333)
+#39335 := [rewrite]: #39334
+#39338 := [monotonicity #39335 #6102]: #39337
+#39331 := (iff #39328 #39330)
+#39332 := [rewrite]: #39331
+#39341 := [monotonicity #39332 #39338]: #39340
+#38889 := [monotonicity #39341]: #38879
+#38894 := [trans #38889 #38888]: #38879
+#38878 := [quant-inst]: #38877
+#38893 := [mp #38878 #38894]: #38867
+#38919 := [unit-resolution #38893 #4320]: #39339
+#38895 := (not #39339)
+#38922 := (or #38895 #39330)
+#39351 := (not #39336)
+#39371 := [hypothesis]: #39351
+#39352 := (not #39333)
+#39372 := (or #39336 #39352)
+#39357 := (or #39336 #39352 #7040)
+#39358 := [def-axiom]: #39357
+#39373 := [unit-resolution #39358 #8579]: #39372
+#39374 := [unit-resolution #39373 #39371]: #39352
+#39394 := (or #39336 #39333)
+#39391 := (= #16004 #21345)
+#39387 := (= #21345 #16004)
+#39385 := (= #20606 #15992)
+#39386 := [symm #39384]: #39385
+#39388 := [monotonicity #39386]: #39387
+#39392 := [symm #39388]: #39391
+#21698 := (or #16025 #16005)
+#21997 := [def-axiom]: #21698
+#39383 := [unit-resolution #21997 #39382]: #16005
+#39393 := [trans #39383 #39392]: #21346
+#21347 := (not #21346)
+#39359 := (or #39336 #39333 #21347)
+#39360 := [def-axiom]: #39359
+#39395 := [unit-resolution #39360 #39393]: #39394
+#39396 := [unit-resolution #39395 #39374 #39371]: false
+#39397 := [lemma #39396]: #39336
+#38896 := (or #38895 #39330 #39351)
+#38897 := [def-axiom]: #38896
+#38902 := [unit-resolution #38897 #39397]: #38922
+#38903 := [unit-resolution #38902 #38919]: #39330
+#38908 := [trans #38903 #38907]: #20216
+#20217 := (not #20216)
+#38921 := [hypothesis]: #20217
+#38924 := [unit-resolution #38921 #38908]: false
+#38927 := [lemma #38924]: #20216
+#20218 := (uf_18 #15992)
+#20235 := (* -1::int #20218)
+#20421 := (+ #15995 #20235)
+#20422 := (+ #2306 #20421)
+#20423 := (<= #20422 0::int)
+#31764 := (not #20423)
+#26473 := (>= #20422 0::int)
+#20236 := (+ #15996 #20235)
+#20237 := (>= #20236 0::int)
+#25927 := (or #4477 #20237)
+#26030 := [quant-inst]: #25927
+#27294 := [unit-resolution #26030 #14110]: #20237
+#32338 := (not #20237)
+#29920 := (not #22006)
+#29919 := (or #26473 #29920 #34351 #32338)
+#32347 := [th-lemma]: #29919
+#32336 := [unit-resolution #32347 #29612 #27294 #39377]: #26473
+#20465 := (= #20422 0::int)
+#20470 := (not #20465)
+#20454 := (+ #2306 #20235)
+#20455 := (<= #20454 0::int)
+#32331 := (not #20455)
+#22027 := (not #16003)
+#21587 := (or #16025 #22027)
+#21112 := [def-axiom]: #21587
+#32344 := [unit-resolution #21112 #39382]: #22027
+#32343 := (or #32331 #16003 #34351 #32338)
+#32335 := [th-lemma]: #32343
+#32375 := [unit-resolution #32335 #32344 #27294 #39377]: #32331
+#20473 := (or #20217 #20455 #20470)
+#25436 := (or #4520 #20217 #20455 #20470)
+#20442 := (+ #2307 #15994)
+#20443 := (+ #20218 #20442)
+#20444 := (= #20443 0::int)
+#20445 := (not #20444)
+#20406 := (+ #20218 #2307)
+#20446 := (>= #20406 0::int)
+#20447 := (or #20217 #20446 #20445)
+#26505 := (or #4520 #20447)
+#26705 := (iff #26505 #25436)
+#11899 := (or #4520 #20473)
+#26697 := (iff #11899 #25436)
+#26704 := [rewrite]: #26697
+#25435 := (iff #26505 #11899)
+#20474 := (iff #20447 #20473)
+#20471 := (iff #20445 #20470)
+#20468 := (iff #20444 #20465)
+#20414 := (+ #15994 #20218)
+#20415 := (+ #2307 #20414)
+#20462 := (= #20415 0::int)
+#20466 := (iff #20462 #20465)
+#20467 := [rewrite]: #20466
+#20463 := (iff #20444 #20462)
+#20460 := (= #20443 #20415)
+#20461 := [rewrite]: #20460
+#20464 := [monotonicity #20461]: #20463
+#20469 := [trans #20464 #20467]: #20468
+#20472 := [monotonicity #20469]: #20471
+#20458 := (iff #20446 #20455)
+#20448 := (+ #2307 #20218)
+#20451 := (>= #20448 0::int)
+#20456 := (iff #20451 #20455)
+#20457 := [rewrite]: #20456
+#20452 := (iff #20446 #20451)
+#20449 := (= #20406 #20448)
+#20450 := [rewrite]: #20449
+#20453 := [monotonicity #20450]: #20452
+#20459 := [trans #20453 #20457]: #20458
+#20475 := [monotonicity #20459 #20472]: #20474
+#26696 := [monotonicity #20475]: #25435
+#26698 := [trans #26696 #26704]: #26705
+#26504 := [quant-inst]: #26505
+#26615 := [mp #26504 #26698]: #25436
+#29644 := [unit-resolution #26615 #29781]: #20473
+#29611 := [unit-resolution #29644 #38927 #32375]: #20470
+#32349 := (not #26473)
+#31762 := (or #20465 #31764 #32349)
+#29679 := [th-lemma]: #31762
+#32366 := [unit-resolution #29679 #29611 #32336]: #31764
+#20428 := (or #20217 #20412 #20423)
+#4260 := (or #4523 #4506)
+#3982 := [def-axiom]: #4260
+#29894 := [unit-resolution #3982 #29780]: #4506
+#26338 := (or #4511 #20217 #20412 #20423)
+#20407 := (+ #15994 #20406)
+#20410 := (>= #20407 0::int)
+#20413 := (or #20217 #20412 #20410)
+#26340 := (or #4511 #20413)
+#25469 := (iff #26340 #26338)
+#10685 := (or #4511 #20428)
+#25478 := (iff #10685 #26338)
+#25474 := [rewrite]: #25478
+#25437 := (iff #26340 #10685)
+#20429 := (iff #20413 #20428)
+#20426 := (iff #20410 #20423)
+#20418 := (>= #20415 0::int)
+#20424 := (iff #20418 #20423)
+#20425 := [rewrite]: #20424
+#20419 := (iff #20410 #20418)
+#20416 := (= #20407 #20415)
+#20417 := [rewrite]: #20416
+#20420 := [monotonicity #20417]: #20419
+#20427 := [trans #20420 #20425]: #20426
+#20430 := [monotonicity #20427]: #20429
+#25388 := [monotonicity #20430]: #25437
+#25466 := [trans #25388 #25474]: #25469
+#25477 := [quant-inst]: #26340
+#25432 := [mp #25477 #25466]: #26338
+#31826 := [unit-resolution #25432 #29894]: #20428
+#29616 := [unit-resolution #31826 #32366 #38927]: #20412
+[th-lemma #34292 #39377 #29616 #29612 #29563]: false
+unsat
--- a/src/HOL/Boogie/Examples/cert/Boogie_b_Dijkstra	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-(benchmark Isabelle
-:extrasorts ( T1 T4 T3 T5 T2)
-:extrafuns (
-  (uf_2 T1 T2)
-  (uf_3 T1 T2)
-  (uf_1 T2 T2 T1)
-  (uf_8 T5)
-  (uf_7 T4 T2 T5 T4)
-  (uf_5 T3 T2 Int T3)
-  (uf_6 T4 T2 T5)
-  (uf_4 T3 T2 Int)
-  (uf_10 T1 Int)
-  (uf_11 T2)
-  (uf_9 Int)
-  (uf_21 T2)
-  (uf_16 T2)
-  (uf_20 T2)
-  (uf_12 T2 Int)
-  (uf_14 T3)
-  (uf_18 T2 Int)
-  (uf_22 T3)
-  (uf_24 T3)
-  (uf_23 T3)
-  (uf_15 T4)
-  (uf_17 T4)
-  (uf_19 T4)
- )
-:extrapreds (
-  (up_13 T2)
- )
-:assumption (forall (?x1 T1) (= (uf_1 (uf_2 ?x1) (uf_3 ?x1)) ?x1))
-:assumption (forall (?x2 T2) (?x3 T2) (= (uf_3 (uf_1 ?x2 ?x3)) ?x3))
-:assumption (forall (?x4 T2) (?x5 T2) (= (uf_2 (uf_1 ?x4 ?x5)) ?x4))
-:assumption (forall (?x6 T3) (?x7 T2) (?x8 Int) (?x9 T2) (= (uf_4 (uf_5 ?x6 ?x7 ?x8) ?x9) (ite (= ?x9 ?x7) ?x8 (uf_4 ?x6 ?x9))))
-:assumption (forall (?x10 T4) (?x11 T2) (?x12 T5) (?x13 T2) (iff (= (uf_6 (uf_7 ?x10 ?x11 ?x12) ?x13) uf_8) (if_then_else (= ?x13 ?x11) (= ?x12 uf_8) (= (uf_6 ?x10 ?x13) uf_8))))
-:assumption (forall (?x14 T3) (?x15 T2) (?x16 Int) (= (uf_4 (uf_5 ?x14 ?x15 ?x16) ?x15) ?x16))
-:assumption (forall (?x17 T4) (?x18 T2) (?x19 T5) (iff (= (uf_6 (uf_7 ?x17 ?x18 ?x19) ?x18) uf_8) (= ?x19 uf_8)))
-:assumption (< 0 uf_9)
-:assumption (forall (?x20 T2) (?x21 T2) (implies (= ?x20 ?x21) (= (uf_10 (uf_1 ?x20 ?x21)) 0)))
-:assumption (forall (?x22 T2) (?x23 T2) (implies (not (= ?x22 ?x23)) (< 0 (uf_10 (uf_1 ?x22 ?x23)))))
-:assumption (not (implies true (implies true (implies (forall (?x24 T2) (implies (= ?x24 uf_11) (= (uf_12 ?x24) 0))) (implies (forall (?x25 T2) (implies (not (= ?x25 uf_11)) (= (uf_12 ?x25) uf_9))) (implies (forall (?x26 T2) (not (up_13 ?x26))) (implies true (and (implies (= (uf_12 uf_11) 0) (and (implies (forall (?x27 T2) (<= 0 (uf_12 ?x27))) (and (implies (forall (?x28 T2) (?x29 T2) (implies (and (up_13 ?x28) (not (up_13 ?x29))) (<= (uf_12 ?x28) (uf_12 ?x29)))) (and (implies (forall (?x30 T2) (?x31 T2) (implies (and (< (uf_10 (uf_1 ?x31 ?x30)) uf_9) (up_13 ?x31)) (<= (uf_12 ?x30) (+ (uf_12 ?x31) (uf_10 (uf_1 ?x31 ?x30)))))) (and (implies (forall (?x32 T2) (implies (and (< (uf_12 ?x32) uf_9) (not (= ?x32 uf_11))) (exists (?x33 T2) (and (= (uf_12 ?x32) (+ (uf_12 ?x33) (uf_10 (uf_1 ?x33 ?x32)))) (and (up_13 ?x33) (< (uf_12 ?x33) (uf_12 ?x32))))))) (implies true (implies true (implies (= (uf_4 uf_14 uf_11) 0) (implies (forall (?x34 T2) (<= 0 (uf_4 uf_14 ?x34))) (implies (forall (?x35 T2) (?x36 T2) (implies (and (= (uf_6 uf_15 ?x35) uf_8) (not (= (uf_6 uf_15 ?x36) uf_8))) (<= (uf_4 uf_14 ?x35) (uf_4 uf_14 ?x36)))) (implies (forall (?x37 T2) (?x38 T2) (implies (and (< (uf_10 (uf_1 ?x38 ?x37)) uf_9) (= (uf_6 uf_15 ?x38) uf_8)) (<= (uf_4 uf_14 ?x37) (+ (uf_4 uf_14 ?x38) (uf_10 (uf_1 ?x38 ?x37)))))) (implies (forall (?x39 T2) (implies (and (< (uf_4 uf_14 ?x39) uf_9) (not (= ?x39 uf_11))) (exists (?x40 T2) (and (= (uf_4 uf_14 ?x39) (+ (uf_4 uf_14 ?x40) (uf_10 (uf_1 ?x40 ?x39)))) (and (= (uf_6 uf_15 ?x40) uf_8) (< (uf_4 uf_14 ?x40) (uf_4 uf_14 ?x39))))))) (implies true (and (implies true (implies true (implies (exists (?x41 T2) (and (< (uf_4 uf_14 ?x41) uf_9) (not (= (uf_6 uf_15 ?x41) uf_8)))) (implies (not (= (uf_6 uf_15 uf_16) uf_8)) (implies (< (uf_4 uf_14 uf_16) uf_9) (implies (forall (?x42 T2) (implies (not (= (uf_6 uf_15 ?x42) uf_8)) (<= (uf_4 uf_14 uf_16) (uf_4 uf_14 ?x42)))) (implies (= uf_17 (uf_7 uf_15 uf_16 uf_8)) (implies (forall (?x43 T2) (implies (and (< (+ (uf_4 uf_14 uf_16) (uf_10 (uf_1 uf_16 ?x43))) (uf_4 uf_14 ?x43)) (< (uf_10 (uf_1 uf_16 ?x43)) uf_9)) (= (uf_18 ?x43) (+ (uf_4 uf_14 uf_16) (uf_10 (uf_1 uf_16 ?x43)))))) (implies (forall (?x44 T2) (implies (not (and (< (+ (uf_4 uf_14 uf_16) (uf_10 (uf_1 uf_16 ?x44))) (uf_4 uf_14 ?x44)) (< (uf_10 (uf_1 uf_16 ?x44)) uf_9))) (= (uf_18 ?x44) (uf_4 uf_14 ?x44)))) (and (implies (forall (?x45 T2) (<= (uf_18 ?x45) (uf_4 uf_14 ?x45))) (and (implies (forall (?x46 T2) (implies (= (uf_6 uf_17 ?x46) uf_8) (= (uf_18 ?x46) (uf_4 uf_14 ?x46)))) (implies true (implies true (and (implies (= (uf_18 uf_11) 0) (and (implies (forall (?x47 T2) (<= 0 (uf_18 ?x47))) (and (implies (forall (?x48 T2) (?x49 T2) (implies (and (= (uf_6 uf_17 ?x48) uf_8) (not (= (uf_6 uf_17 ?x49) uf_8))) (<= (uf_18 ?x48) (uf_18 ?x49)))) (and (implies (forall (?x50 T2) (?x51 T2) (implies (and (< (uf_10 (uf_1 ?x51 ?x50)) uf_9) (= (uf_6 uf_17 ?x51) uf_8)) (<= (uf_18 ?x50) (+ (uf_18 ?x51) (uf_10 (uf_1 ?x51 ?x50)))))) (and (implies (forall (?x52 T2) (implies (and (< (uf_18 ?x52) uf_9) (not (= ?x52 uf_11))) (exists (?x53 T2) (and (= (uf_18 ?x52) (+ (uf_18 ?x53) (uf_10 (uf_1 ?x53 ?x52)))) (and (= (uf_6 uf_17 ?x53) uf_8) (< (uf_18 ?x53) (uf_18 ?x52))))))) (implies false true)) (forall (?x54 T2) (implies (and (< (uf_18 ?x54) uf_9) (not (= ?x54 uf_11))) (exists (?x55 T2) (and (= (uf_18 ?x54) (+ (uf_18 ?x55) (uf_10 (uf_1 ?x55 ?x54)))) (and (= (uf_6 uf_17 ?x55) uf_8) (< (uf_18 ?x55) (uf_18 ?x54))))))))) (forall (?x56 T2) (?x57 T2) (implies (and (< (uf_10 (uf_1 ?x57 ?x56)) uf_9) (= (uf_6 uf_17 ?x57) uf_8)) (<= (uf_18 ?x56) (+ (uf_18 ?x57) (uf_10 (uf_1 ?x57 ?x56)))))))) (forall (?x58 T2) (?x59 T2) (implies (and (= (uf_6 uf_17 ?x58) uf_8) (not (= (uf_6 uf_17 ?x59) uf_8))) (<= (uf_18 ?x58) (uf_18 ?x59)))))) (forall (?x60 T2) (<= 0 (uf_18 ?x60))))) (= (uf_18 uf_11) 0))))) (forall (?x61 T2) (implies (= (uf_6 uf_17 ?x61) uf_8) (= (uf_18 ?x61) (uf_4 uf_14 ?x61)))))) (forall (?x62 T2) (<= (uf_18 ?x62) (uf_4 uf_14 ?x62))))))))))))) (implies true (implies true (implies (not (exists (?x63 T2) (and (< (uf_4 uf_14 ?x63) uf_9) (not (= (uf_6 uf_15 ?x63) uf_8))))) (implies true (implies true (implies (= uf_19 uf_15) (implies (= uf_20 uf_21) (implies (= uf_22 uf_14) (implies (= uf_23 uf_24) (implies true (and (implies (forall (?x64 T2) (implies (and (< (uf_4 uf_22 ?x64) uf_9) (not (= ?x64 uf_11))) (exists (?x65 T2) (and (= (uf_4 uf_22 ?x64) (+ (uf_4 uf_22 ?x65) (uf_10 (uf_1 ?x65 ?x64)))) (< (uf_4 uf_22 ?x65) (uf_4 uf_22 ?x64)))))) (and (implies (forall (?x66 T2) (?x67 T2) (implies (and (< (uf_10 (uf_1 ?x67 ?x66)) uf_9) (< (uf_4 uf_22 ?x67) uf_9)) (<= (uf_4 uf_22 ?x66) (+ (uf_4 uf_22 ?x67) (uf_10 (uf_1 ?x67 ?x66)))))) (and (implies (= (uf_4 uf_22 uf_11) 0) true) (= (uf_4 uf_22 uf_11) 0))) (forall (?x68 T2) (?x69 T2) (implies (and (< (uf_10 (uf_1 ?x69 ?x68)) uf_9) (< (uf_4 uf_22 ?x69) uf_9)) (<= (uf_4 uf_22 ?x68) (+ (uf_4 uf_22 ?x69) (uf_10 (uf_1 ?x69 ?x68)))))))) (forall (?x70 T2) (implies (and (< (uf_4 uf_22 ?x70) uf_9) (not (= ?x70 uf_11))) (exists (?x71 T2) (and (= (uf_4 uf_22 ?x70) (+ (uf_4 uf_22 ?x71) (uf_10 (uf_1 ?x71 ?x70)))) (< (uf_4 uf_22 ?x71) (uf_4 uf_22 ?x70))))))))))))))))))))))))))) (forall (?x72 T2) (implies (and (< (uf_12 ?x72) uf_9) (not (= ?x72 uf_11))) (exists (?x73 T2) (and (= (uf_12 ?x72) (+ (uf_12 ?x73) (uf_10 (uf_1 ?x73 ?x72)))) (and (up_13 ?x73) (< (uf_12 ?x73) (uf_12 ?x72))))))))) (forall (?x74 T2) (?x75 T2) (implies (and (< (uf_10 (uf_1 ?x75 ?x74)) uf_9) (up_13 ?x75)) (<= (uf_12 ?x74) (+ (uf_12 ?x75) (uf_10 (uf_1 ?x75 ?x74)))))))) (forall (?x76 T2) (?x77 T2) (implies (and (up_13 ?x76) (not (up_13 ?x77))) (<= (uf_12 ?x76) (uf_12 ?x77)))))) (forall (?x78 T2) (<= 0 (uf_12 ?x78))))) (= (uf_12 uf_11) 0)))))))))
-:formula true
-)
--- a/src/HOL/Boogie/Examples/cert/Boogie_b_Dijkstra.proof	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7081 +0,0 @@
-#2 := false
-#55 := 0::int
-decl uf_4 :: (-> T3 T2 int)
-decl ?x40!7 :: (-> T2 T2)
-decl ?x52!15 :: T2
-#2305 := ?x52!15
-#15992 := (?x40!7 ?x52!15)
-decl uf_14 :: T3
-#107 := uf_14
-#15996 := (uf_4 uf_14 #15992)
-#20405 := (>= #15996 0::int)
-#11 := (:var 0 T2)
-#110 := (uf_4 uf_14 #11)
-#4403 := (pattern #110)
-#1843 := (>= #110 0::int)
-#4404 := (forall (vars (?x34 T2)) (:pat #4403) #1843)
-decl uf_10 :: (-> T1 int)
-decl uf_1 :: (-> T2 T2 T1)
-decl ?x66!20 :: T2
-#2511 := ?x66!20
-decl ?x67!19 :: T2
-#2510 := ?x67!19
-#2516 := (uf_1 ?x67!19 ?x66!20)
-#2517 := (uf_10 #2516)
-#1320 := -1::int
-#2524 := (* -1::int #2517)
-decl uf_22 :: T3
-#230 := uf_22
-#2514 := (uf_4 uf_22 ?x67!19)
-#2520 := (* -1::int #2514)
-#3094 := (+ #2520 #2524)
-#2512 := (uf_4 uf_22 ?x66!20)
-#3095 := (+ #2512 #3094)
-#3096 := (<= #3095 0::int)
-decl uf_9 :: int
-#56 := uf_9
-#2525 := (+ uf_9 #2524)
-#2526 := (<= #2525 0::int)
-#2521 := (+ uf_9 #2520)
-#2522 := (<= #2521 0::int)
-#3693 := (or #2522 #2526 #3096)
-#3698 := (not #3693)
-#10 := (:var 1 T2)
-#90 := (uf_1 #11 #10)
-#4379 := (pattern #90)
-#238 := (uf_4 uf_22 #10)
-#1720 := (* -1::int #238)
-#235 := (uf_4 uf_22 #11)
-#1721 := (+ #235 #1720)
-#91 := (uf_10 #90)
-#1727 := (+ #91 #1721)
-#1750 := (>= #1727 0::int)
-#1707 := (* -1::int #235)
-#1708 := (+ uf_9 #1707)
-#1709 := (<= #1708 0::int)
-#1343 := (* -1::int #91)
-#1346 := (+ uf_9 #1343)
-#1347 := (<= #1346 0::int)
-#3661 := (or #1347 #1709 #1750)
-#4633 := (forall (vars (?x66 T2) (?x67 T2)) (:pat #4379) #3661)
-#4638 := (not #4633)
-decl uf_11 :: T2
-#67 := uf_11
-#250 := (uf_4 uf_22 uf_11)
-#251 := (= #250 0::int)
-#4641 := (or #251 #4638)
-#4644 := (not #4641)
-#4647 := (or #4644 #3698)
-#4650 := (not #4647)
-#4609 := (pattern #235)
-decl ?x65!18 :: (-> T2 T2)
-#2487 := (?x65!18 #11)
-#2490 := (uf_1 #2487 #11)
-#2491 := (uf_10 #2490)
-#3064 := (* -1::int #2491)
-#2488 := (uf_4 uf_22 #2487)
-#3047 := (* -1::int #2488)
-#3065 := (+ #3047 #3064)
-#3066 := (+ #235 #3065)
-#3067 := (= #3066 0::int)
-#3631 := (not #3067)
-#3048 := (+ #235 #3047)
-#3049 := (<= #3048 0::int)
-#3632 := (or #3049 #3631)
-#3633 := (not #3632)
-#68 := (= #11 uf_11)
-#3639 := (or #68 #1709 #3633)
-#4625 := (forall (vars (?x64 T2)) (:pat #4609) #3639)
-#4630 := (not #4625)
-#4653 := (or #4630 #4650)
-#4656 := (not #4653)
-decl ?x64!17 :: T2
-#2447 := ?x64!17
-#2451 := (uf_1 #11 ?x64!17)
-#4610 := (pattern #2451)
-#2452 := (uf_10 #2451)
-#2448 := (uf_4 uf_22 ?x64!17)
-#2449 := (* -1::int #2448)
-#3017 := (+ #2449 #2452)
-#3018 := (+ #235 #3017)
-#3021 := (= #3018 0::int)
-#3595 := (not #3021)
-#2450 := (+ #235 #2449)
-#2455 := (>= #2450 0::int)
-#3596 := (or #2455 #3595)
-#4611 := (forall (vars (?x65 T2)) (:pat #4609 #4610) #3596)
-#4616 := (not #4611)
-#2993 := (= uf_11 ?x64!17)
-#2459 := (+ uf_9 #2449)
-#2460 := (<= #2459 0::int)
-#4619 := (or #2460 #2993 #4616)
-#4622 := (not #4619)
-#4659 := (or #4622 #4656)
-#4662 := (not #4659)
-decl uf_6 :: (-> T4 T2 T5)
-decl uf_15 :: T4
-#113 := uf_15
-#116 := (uf_6 uf_15 #11)
-#4445 := (pattern #116)
-#1404 := (* -1::int #110)
-#1405 := (+ uf_9 #1404)
-#1406 := (<= #1405 0::int)
-decl uf_8 :: T5
-#33 := uf_8
-#505 := (= uf_8 #116)
-#3581 := (or #505 #1406)
-#4601 := (forall (vars (?x41 T2)) (:pat #4445 #4403) #3581)
-#4606 := (not #4601)
-#933 := (= uf_14 uf_22)
-#1053 := (not #933)
-decl uf_19 :: T4
-#225 := uf_19
-#930 := (= uf_15 uf_19)
-#1071 := (not #930)
-decl uf_24 :: T3
-#233 := uf_24
-decl uf_23 :: T3
-#232 := uf_23
-#234 := (= uf_23 uf_24)
-#1044 := (not #234)
-decl uf_21 :: T2
-#228 := uf_21
-decl uf_20 :: T2
-#227 := uf_20
-#229 := (= uf_20 uf_21)
-#1062 := (not #229)
-#4665 := (or #1062 #1044 #1071 #1053 #4606 #4662)
-#4668 := (not #4665)
-#2309 := (uf_1 #11 ?x52!15)
-#4514 := (pattern #2309)
-decl uf_18 :: (-> T2 int)
-#158 := (uf_18 #11)
-#4454 := (pattern #158)
-decl uf_17 :: T4
-#149 := uf_17
-#168 := (uf_6 uf_17 #11)
-#4480 := (pattern #168)
-#2310 := (uf_10 #2309)
-#2306 := (uf_18 ?x52!15)
-#2307 := (* -1::int #2306)
-#2917 := (+ #2307 #2310)
-#2918 := (+ #158 #2917)
-#2921 := (= #2918 0::int)
-#3474 := (not #2921)
-#2308 := (+ #158 #2307)
-#2313 := (>= #2308 0::int)
-#630 := (= uf_8 #168)
-#636 := (not #630)
-#3475 := (or #636 #2313 #3474)
-#4515 := (forall (vars (?x53 T2)) (:pat #4480 #4454 #4514) #3475)
-#4520 := (not #4515)
-#180 := (uf_18 #10)
-#1505 := (* -1::int #180)
-#1506 := (+ #158 #1505)
-#1536 := (+ #91 #1506)
-#1534 := (>= #1536 0::int)
-#3466 := (or #636 #1347 #1534)
-#4506 := (forall (vars (?x50 T2) (?x51 T2)) (:pat #4379) #3466)
-#4511 := (not #4506)
-#2893 := (= uf_11 ?x52!15)
-#2317 := (+ uf_9 #2307)
-#2318 := (<= #2317 0::int)
-#4523 := (or #2318 #2893 #4511 #4520)
-#4526 := (not #4523)
-decl ?x50!14 :: T2
-#2275 := ?x50!14
-decl ?x51!13 :: T2
-#2274 := ?x51!13
-#2280 := (uf_1 ?x51!13 ?x50!14)
-#2281 := (uf_10 #2280)
-#2284 := (* -1::int #2281)
-#2278 := (uf_18 ?x51!13)
-#2879 := (* -1::int #2278)
-#2880 := (+ #2879 #2284)
-#2276 := (uf_18 ?x50!14)
-#2881 := (+ #2276 #2880)
-#2882 := (<= #2881 0::int)
-#2288 := (uf_6 uf_17 ?x51!13)
-#2289 := (= uf_8 #2288)
-#3429 := (not #2289)
-#2285 := (+ uf_9 #2284)
-#2286 := (<= #2285 0::int)
-#3444 := (or #2286 #3429 #2882)
-#3449 := (not #3444)
-#4529 := (or #3449 #4526)
-#4532 := (not #4529)
-#4497 := (pattern #158 #180)
-#1504 := (>= #1506 0::int)
-#176 := (uf_6 uf_17 #10)
-#648 := (= uf_8 #176)
-#3406 := (not #648)
-#3421 := (or #630 #3406 #1504)
-#4498 := (forall (vars (?x48 T2) (?x49 T2)) (:pat #4497) #3421)
-#4503 := (not #4498)
-#4535 := (or #4503 #4532)
-#4538 := (not #4535)
-decl ?x49!11 :: T2
-#2247 := ?x49!11
-#2251 := (uf_18 ?x49!11)
-#2853 := (* -1::int #2251)
-decl ?x48!12 :: T2
-#2248 := ?x48!12
-#2249 := (uf_18 ?x48!12)
-#2854 := (+ #2249 #2853)
-#2855 := (<= #2854 0::int)
-#2256 := (uf_6 uf_17 ?x49!11)
-#2257 := (= uf_8 #2256)
-#2254 := (uf_6 uf_17 ?x48!12)
-#2255 := (= uf_8 #2254)
-#3383 := (not #2255)
-#3398 := (or #3383 #2257 #2855)
-#3403 := (not #3398)
-#4541 := (or #3403 #4538)
-#4544 := (not #4541)
-#1495 := (>= #158 0::int)
-#4489 := (forall (vars (?x47 T2)) (:pat #4454) #1495)
-#4494 := (not #4489)
-#4547 := (or #4494 #4544)
-#4550 := (not #4547)
-decl ?x47!10 :: T2
-#2232 := ?x47!10
-#2233 := (uf_18 ?x47!10)
-#2234 := (>= #2233 0::int)
-#2235 := (not #2234)
-#4553 := (or #2235 #4550)
-#4556 := (not #4553)
-#172 := (uf_18 uf_11)
-#173 := (= #172 0::int)
-#1492 := (not #173)
-#4559 := (or #1492 #4556)
-#4562 := (not #4559)
-#4565 := (or #1492 #4562)
-#4568 := (not #4565)
-#616 := (= #110 #158)
-#637 := (or #616 #636)
-#4481 := (forall (vars (?x46 T2)) (:pat #4403 #4454 #4480) #637)
-#4486 := (not #4481)
-#4571 := (or #4486 #4568)
-#4574 := (not #4571)
-decl ?x46!9 :: T2
-#2207 := ?x46!9
-#2212 := (uf_4 uf_14 ?x46!9)
-#2211 := (uf_18 ?x46!9)
-#2825 := (= #2211 #2212)
-#2208 := (uf_6 uf_17 ?x46!9)
-#2209 := (= uf_8 #2208)
-#2210 := (not #2209)
-#2831 := (or #2210 #2825)
-#2836 := (not #2831)
-#4577 := (or #2836 #4574)
-#4580 := (not #4577)
-#1480 := (* -1::int #158)
-#1481 := (+ #110 #1480)
-#1479 := (>= #1481 0::int)
-#4472 := (forall (vars (?x45 T2)) (:pat #4403 #4454) #1479)
-#4477 := (not #4472)
-#4583 := (or #4477 #4580)
-#4586 := (not #4583)
-decl ?x45!8 :: T2
-#2189 := ?x45!8
-#2192 := (uf_4 uf_14 ?x45!8)
-#2815 := (* -1::int #2192)
-#2190 := (uf_18 ?x45!8)
-#2816 := (+ #2190 #2815)
-#2817 := (<= #2816 0::int)
-#2822 := (not #2817)
-#4589 := (or #2822 #4586)
-#4592 := (not #4589)
-decl uf_16 :: T2
-#140 := uf_16
-#152 := (uf_1 uf_16 #11)
-#4455 := (pattern #152)
-#153 := (uf_10 #152)
-#1623 := (+ #153 #1480)
-#144 := (uf_4 uf_14 uf_16)
-#1624 := (+ #144 #1623)
-#1625 := (= #1624 0::int)
-#1450 := (* -1::int #153)
-#1457 := (+ uf_9 #1450)
-#1458 := (<= #1457 0::int)
-#1449 := (* -1::int #144)
-#1451 := (+ #1449 #1450)
-#1452 := (+ #110 #1451)
-#1453 := (<= #1452 0::int)
-#3375 := (or #1453 #1458 #1625)
-#4464 := (forall (vars (?x43 T2)) (:pat #4403 #4455 #4454) #3375)
-#4469 := (not #4464)
-#3355 := (or #1453 #1458)
-#3356 := (not #3355)
-#3359 := (or #616 #3356)
-#4456 := (forall (vars (?x44 T2)) (:pat #4403 #4454 #4455) #3359)
-#4461 := (not #4456)
-decl ?x41!16 :: T2
-#2408 := ?x41!16
-#2414 := (uf_6 uf_15 ?x41!16)
-#2415 := (= uf_8 #2414)
-#2409 := (uf_4 uf_14 ?x41!16)
-#2410 := (* -1::int #2409)
-#2411 := (+ uf_9 #2410)
-#2412 := (<= #2411 0::int)
-#1655 := (+ uf_9 #1449)
-#1656 := (<= #1655 0::int)
-#1638 := (+ #110 #1449)
-#1637 := (>= #1638 0::int)
-#1644 := (or #505 #1637)
-#4446 := (forall (vars (?x42 T2)) (:pat #4445 #4403) #1644)
-#4451 := (not #4446)
-#141 := (uf_6 uf_15 uf_16)
-#585 := (= uf_8 #141)
-decl uf_7 :: (-> T4 T2 T5 T4)
-#150 := (uf_7 uf_15 uf_16 uf_8)
-#151 := (= uf_17 #150)
-#876 := (not #151)
-#4595 := (or #876 #585 #4451 #1656 #2412 #2415 #4461 #4469 #4592)
-#4598 := (not #4595)
-#4671 := (or #4598 #4668)
-#4674 := (not #4671)
-#2152 := (?x40!7 #11)
-#2155 := (uf_1 #2152 #11)
-#2156 := (uf_10 #2155)
-#2790 := (* -1::int #2156)
-#2153 := (uf_4 uf_14 #2152)
-#2773 := (* -1::int #2153)
-#2791 := (+ #2773 #2790)
-#2792 := (+ #110 #2791)
-#2793 := (= #2792 0::int)
-#3339 := (not #2793)
-#2774 := (+ #110 #2773)
-#2775 := (<= #2774 0::int)
-#2161 := (uf_6 uf_15 #2152)
-#2162 := (= uf_8 #2161)
-#3338 := (not #2162)
-#3340 := (or #3338 #2775 #3339)
-#3341 := (not #3340)
-#3347 := (or #68 #1406 #3341)
-#4437 := (forall (vars (?x39 T2)) (:pat #4403) #3347)
-#4442 := (not #4437)
-decl uf_12 :: (-> T2 int)
-#69 := (uf_12 #11)
-#4355 := (pattern #69)
-decl ?x33!6 :: (-> T2 T2)
-#2123 := (?x33!6 #11)
-#2127 := (uf_12 #2123)
-#2728 := (* -1::int #2127)
-#2124 := (uf_1 #2123 #11)
-#2125 := (uf_10 #2124)
-#2745 := (* -1::int #2125)
-#2746 := (+ #2745 #2728)
-#2747 := (+ #69 #2746)
-#2748 := (= #2747 0::int)
-#3311 := (not #2748)
-#2729 := (+ #69 #2728)
-#2730 := (<= #2729 0::int)
-decl up_13 :: (-> T2 bool)
-#2133 := (up_13 #2123)
-#3310 := (not #2133)
-#3312 := (or #3310 #2730 #3311)
-#3313 := (not #3312)
-#1386 := (* -1::int #69)
-#1387 := (+ uf_9 #1386)
-#1388 := (<= #1387 0::int)
-#3319 := (or #68 #1388 #3313)
-#4429 := (forall (vars (?x32 T2)) (:pat #4355) #3319)
-#4434 := (not #4429)
-#114 := (uf_6 uf_15 #10)
-#4420 := (pattern #114 #116)
-#120 := (uf_4 uf_14 #10)
-#1417 := (* -1::int #120)
-#1418 := (+ #110 #1417)
-#1416 := (>= #1418 0::int)
-#502 := (= uf_8 #114)
-#3276 := (not #502)
-#3291 := (or #3276 #505 #1416)
-#4421 := (forall (vars (?x35 T2) (?x36 T2)) (:pat #4420) #3291)
-#4426 := (not #4421)
-#1424 := (+ #91 #1418)
-#1815 := (>= #1424 0::int)
-#508 := (not #505)
-#3268 := (or #508 #1347 #1815)
-#4412 := (forall (vars (?x37 T2) (?x38 T2)) (:pat #4379) #3268)
-#4417 := (not #4412)
-#4409 := (not #4404)
-#108 := (uf_4 uf_14 uf_11)
-#109 := (= #108 0::int)
-#1854 := (not #109)
-#4677 := (or #1854 #4409 #4417 #4426 #4434 #4442 #4674)
-#4680 := (not #4677)
-decl ?x32!5 :: T2
-#2081 := ?x32!5
-#2091 := (uf_1 #11 ?x32!5)
-#4388 := (pattern #2091)
-#77 := (up_13 #11)
-#4348 := (pattern #77)
-#2082 := (uf_12 ?x32!5)
-#2083 := (* -1::int #2082)
-#2096 := (+ #69 #2083)
-#2097 := (>= #2096 0::int)
-#2092 := (uf_10 #2091)
-#2093 := (+ #2083 #2092)
-#2094 := (+ #69 #2093)
-#2095 := (= #2094 0::int)
-#3229 := (not #2095)
-#78 := (not #77)
-#3230 := (or #78 #3229 #2097)
-#4389 := (forall (vars (?x33 T2)) (:pat #4348 #4355 #4388) #3230)
-#4394 := (not #4389)
-#2688 := (= uf_11 ?x32!5)
-#2084 := (+ uf_9 #2083)
-#2085 := (<= #2084 0::int)
-#4397 := (or #2085 #2688 #4394)
-#4400 := (not #4397)
-#4683 := (or #4400 #4680)
-#4686 := (not #4683)
-#86 := (uf_12 #10)
-#1323 := (* -1::int #86)
-#1344 := (+ #1323 #91)
-#1345 := (+ #69 #1344)
-#1342 := (>= #1345 0::int)
-#3221 := (or #78 #1342 #1347)
-#4380 := (forall (vars (?x30 T2) (?x31 T2)) (:pat #4379) #3221)
-#4385 := (not #4380)
-#4689 := (or #4385 #4686)
-#4692 := (not #4689)
-decl ?x31!3 :: T2
-#2051 := ?x31!3
-#2065 := (uf_12 ?x31!3)
-decl ?x30!4 :: T2
-#2052 := ?x30!4
-#2062 := (uf_12 ?x30!4)
-#2063 := (* -1::int #2062)
-#2660 := (+ #2063 #2065)
-#2053 := (uf_1 ?x31!3 ?x30!4)
-#2054 := (uf_10 #2053)
-#2661 := (+ #2054 #2660)
-#2664 := (>= #2661 0::int)
-#2059 := (up_13 ?x31!3)
-#3184 := (not #2059)
-#2055 := (* -1::int #2054)
-#2056 := (+ uf_9 #2055)
-#2057 := (<= #2056 0::int)
-#3199 := (or #2057 #3184 #2664)
-#3204 := (not #3199)
-#4695 := (or #3204 #4692)
-#4698 := (not #4695)
-#84 := (up_13 #10)
-#4370 := (pattern #77 #84)
-#1324 := (+ #69 #1323)
-#1322 := (>= #1324 0::int)
-#2632 := (not #84)
-#3176 := (or #77 #2632 #1322)
-#4371 := (forall (vars (?x28 T2) (?x29 T2)) (:pat #4370) #3176)
-#4376 := (not #4371)
-#4701 := (or #4376 #4698)
-#4704 := (not #4701)
-decl ?x29!1 :: T2
-#2026 := ?x29!1
-#2030 := (uf_12 ?x29!1)
-#2647 := (* -1::int #2030)
-decl ?x28!2 :: T2
-#2027 := ?x28!2
-#2028 := (uf_12 ?x28!2)
-#2648 := (+ #2028 #2647)
-#2649 := (<= #2648 0::int)
-#2034 := (up_13 ?x29!1)
-#2033 := (up_13 ?x28!2)
-#2266 := (not #2033)
-#2166 := (or #2266 #2034 #2649)
-#6004 := [hypothesis]: #2033
-#4349 := (forall (vars (?x26 T2)) (:pat #4348) #78)
-#79 := (forall (vars (?x26 T2)) #78)
-#4352 := (iff #79 #4349)
-#4350 := (iff #78 #78)
-#4351 := [refl]: #4350
-#4353 := [quant-intro #4351]: #4352
-#1965 := (~ #79 #79)
-#2002 := (~ #78 #78)
-#2003 := [refl]: #2002
-#1966 := [nnf-pos #2003]: #1965
-#70 := (= #69 0::int)
-#73 := (not #68)
-#1912 := (or #73 #70)
-#1915 := (forall (vars (?x24 T2)) #1912)
-#1918 := (not #1915)
-#1846 := (forall (vars (?x34 T2)) #1843)
-#1849 := (not #1846)
-#511 := (and #502 #508)
-#517 := (not #511)
-#1832 := (or #517 #1416)
-#1837 := (forall (vars (?x35 T2) (?x36 T2)) #1832)
-#1840 := (not #1837)
-#1348 := (not #1347)
-#1807 := (and #505 #1348)
-#1812 := (not #1807)
-#1818 := (or #1812 #1815)
-#1821 := (forall (vars (?x37 T2) (?x38 T2)) #1818)
-#1824 := (not #1821)
-#1710 := (not #1709)
-#1744 := (and #1348 #1710)
-#1747 := (not #1744)
-#1753 := (or #1747 #1750)
-#1756 := (forall (vars (?x66 T2) (?x67 T2)) #1753)
-#1759 := (not #1756)
-#1767 := (or #251 #1759)
-#1772 := (and #1756 #1767)
-#1725 := (= #1727 0::int)
-#1719 := (>= #1721 0::int)
-#1722 := (not #1719)
-#1729 := (and #1722 #1725)
-#1732 := (exists (vars (?x65 T2)) #1729)
-#1713 := (and #73 #1710)
-#1716 := (not #1713)
-#1735 := (or #1716 #1732)
-#1738 := (forall (vars (?x64 T2)) #1735)
-#1741 := (not #1738)
-#1775 := (or #1741 #1772)
-#1778 := (and #1738 #1775)
-#1407 := (not #1406)
-#1670 := (and #508 #1407)
-#1675 := (exists (vars (?x41 T2)) #1670)
-#1796 := (or #1062 #1044 #1071 #1053 #1675 #1778)
-#1678 := (not #1675)
-#1649 := (forall (vars (?x42 T2)) #1644)
-#1652 := (not #1649)
-#1459 := (not #1458)
-#1454 := (not #1453)
-#1462 := (and #1454 #1459)
-#1620 := (not #1462)
-#1628 := (or #1620 #1625)
-#1631 := (forall (vars (?x43 T2)) #1628)
-#1634 := (not #1631)
-#1561 := (= #1536 0::int)
-#1558 := (not #1504)
-#1570 := (and #630 #1558 #1561)
-#1575 := (exists (vars (?x53 T2)) #1570)
-#1547 := (+ uf_9 #1480)
-#1548 := (<= #1547 0::int)
-#1549 := (not #1548)
-#1552 := (and #73 #1549)
-#1555 := (not #1552)
-#1578 := (or #1555 #1575)
-#1581 := (forall (vars (?x52 T2)) #1578)
-#1526 := (and #630 #1348)
-#1531 := (not #1526)
-#1538 := (or #1531 #1534)
-#1541 := (forall (vars (?x50 T2) (?x51 T2)) #1538)
-#1544 := (not #1541)
-#1584 := (or #1544 #1581)
-#1587 := (and #1541 #1584)
-#656 := (and #636 #648)
-#664 := (not #656)
-#1512 := (or #664 #1504)
-#1517 := (forall (vars (?x48 T2) (?x49 T2)) #1512)
-#1520 := (not #1517)
-#1590 := (or #1520 #1587)
-#1593 := (and #1517 #1590)
-#1498 := (forall (vars (?x47 T2)) #1495)
-#1501 := (not #1498)
-#1596 := (or #1501 #1593)
-#1599 := (and #1498 #1596)
-#1602 := (or #1492 #1599)
-#1605 := (and #173 #1602)
-#642 := (forall (vars (?x46 T2)) #637)
-#824 := (not #642)
-#1608 := (or #824 #1605)
-#1611 := (and #642 #1608)
-#1484 := (forall (vars (?x45 T2)) #1479)
-#1487 := (not #1484)
-#1614 := (or #1487 #1611)
-#1617 := (and #1484 #1614)
-#1468 := (or #616 #1462)
-#1473 := (forall (vars (?x44 T2)) #1468)
-#1476 := (not #1473)
-#1702 := (or #876 #585 #1476 #1617 #1634 #1652 #1656 #1678)
-#1801 := (and #1702 #1796)
-#1422 := (= #1424 0::int)
-#1419 := (not #1416)
-#1432 := (and #505 #1419 #1422)
-#1437 := (exists (vars (?x40 T2)) #1432)
-#1410 := (and #73 #1407)
-#1413 := (not #1410)
-#1440 := (or #1413 #1437)
-#1443 := (forall (vars (?x39 T2)) #1440)
-#1446 := (not #1443)
-#1389 := (not #1388)
-#1392 := (and #73 #1389)
-#1395 := (not #1392)
-#1370 := (= #1345 0::int)
-#1366 := (not #1322)
-#1378 := (and #77 #1366 #1370)
-#1383 := (exists (vars (?x33 T2)) #1378)
-#1398 := (or #1383 #1395)
-#1401 := (forall (vars (?x32 T2)) #1398)
-#1857 := (not #1401)
-#1878 := (or #1854 #1857 #1446 #1801 #1824 #1840 #1849)
-#1883 := (and #1401 #1878)
-#1351 := (and #77 #1348)
-#1354 := (not #1351)
-#1357 := (or #1342 #1354)
-#1360 := (forall (vars (?x30 T2) (?x31 T2)) #1357)
-#1363 := (not #1360)
-#1886 := (or #1363 #1883)
-#1889 := (and #1360 #1886)
-#454 := (and #78 #84)
-#460 := (not #454)
-#1329 := (or #460 #1322)
-#1334 := (forall (vars (?x28 T2) (?x29 T2)) #1329)
-#1337 := (not #1334)
-#1892 := (or #1337 #1889)
-#1895 := (and #1334 #1892)
-#1313 := (>= #69 0::int)
-#1314 := (forall (vars (?x27 T2)) #1313)
-#1317 := (not #1314)
-#1898 := (or #1317 #1895)
-#1901 := (and #1314 #1898)
-#80 := (uf_12 uf_11)
-#81 := (= #80 0::int)
-#1308 := (not #81)
-#1904 := (or #1308 #1901)
-#1907 := (and #81 #1904)
-#437 := (= uf_9 #69)
-#443 := (or #68 #437)
-#448 := (forall (vars (?x25 T2)) #443)
-#1277 := (not #448)
-#1268 := (not #79)
-#1930 := (or #1268 #1277 #1907 #1918)
-#1935 := (not #1930)
-#82 := (<= 0::int #69)
-#83 := (forall (vars (?x27 T2)) #82)
-#87 := (<= #86 #69)
-#85 := (and #84 #78)
-#88 := (implies #85 #87)
-#89 := (forall (vars (?x28 T2) (?x29 T2)) #88)
-#94 := (+ #69 #91)
-#95 := (<= #86 #94)
-#92 := (< #91 uf_9)
-#93 := (and #92 #77)
-#96 := (implies #93 #95)
-#97 := (forall (vars (?x30 T2) (?x31 T2)) #96)
-#101 := (< #69 #86)
-#102 := (and #77 #101)
-#100 := (= #86 #94)
-#103 := (and #100 #102)
-#104 := (exists (vars (?x33 T2)) #103)
-#98 := (< #69 uf_9)
-#99 := (and #98 #73)
-#105 := (implies #99 #104)
-#106 := (forall (vars (?x32 T2)) #105)
-#241 := (< #235 #238)
-#239 := (+ #235 #91)
-#240 := (= #238 #239)
-#242 := (and #240 #241)
-#243 := (exists (vars (?x65 T2)) #242)
-#236 := (< #235 uf_9)
-#237 := (and #236 #73)
-#244 := (implies #237 #243)
-#245 := (forall (vars (?x64 T2)) #244)
-#247 := (<= #238 #239)
-#246 := (and #92 #236)
-#248 := (implies #246 #247)
-#249 := (forall (vars (?x66 T2) (?x67 T2)) #248)
-#1 := true
-#252 := (implies #251 true)
-#253 := (and #252 #251)
-#254 := (implies #249 #253)
-#255 := (and #254 #249)
-#256 := (implies #245 #255)
-#257 := (and #256 #245)
-#258 := (implies true #257)
-#259 := (implies #234 #258)
-#231 := (= uf_22 uf_14)
-#260 := (implies #231 #259)
-#261 := (implies #229 #260)
-#226 := (= uf_19 uf_15)
-#262 := (implies #226 #261)
-#263 := (implies true #262)
-#264 := (implies true #263)
-#117 := (= #116 uf_8)
-#118 := (not #117)
-#129 := (< #110 uf_9)
-#138 := (and #129 #118)
-#139 := (exists (vars (?x41 T2)) #138)
-#224 := (not #139)
-#265 := (implies #224 #264)
-#266 := (implies true #265)
-#267 := (implies true #266)
-#166 := (<= #158 #110)
-#167 := (forall (vars (?x45 T2)) #166)
-#163 := (= #158 #110)
-#169 := (= #168 uf_8)
-#170 := (implies #169 #163)
-#171 := (forall (vars (?x46 T2)) #170)
-#174 := (<= 0::int #158)
-#175 := (forall (vars (?x47 T2)) #174)
-#181 := (<= #180 #158)
-#178 := (not #169)
-#177 := (= #176 uf_8)
-#179 := (and #177 #178)
-#182 := (implies #179 #181)
-#183 := (forall (vars (?x48 T2) (?x49 T2)) #182)
-#185 := (+ #158 #91)
-#186 := (<= #180 #185)
-#184 := (and #92 #169)
-#187 := (implies #184 #186)
-#188 := (forall (vars (?x50 T2) (?x51 T2)) #187)
-#192 := (< #158 #180)
-#193 := (and #169 #192)
-#191 := (= #180 #185)
-#194 := (and #191 #193)
-#195 := (exists (vars (?x53 T2)) #194)
-#189 := (< #158 uf_9)
-#190 := (and #189 #73)
-#196 := (implies #190 #195)
-#197 := (forall (vars (?x52 T2)) #196)
-#198 := (implies false true)
-#199 := (implies #197 #198)
-#200 := (and #199 #197)
-#201 := (implies #188 #200)
-#202 := (and #201 #188)
-#203 := (implies #183 #202)
-#204 := (and #203 #183)
-#205 := (implies #175 #204)
-#206 := (and #205 #175)
-#207 := (implies #173 #206)
-#208 := (and #207 #173)
-#209 := (implies true #208)
-#210 := (implies true #209)
-#211 := (implies #171 #210)
-#212 := (and #211 #171)
-#213 := (implies #167 #212)
-#214 := (and #213 #167)
-#156 := (< #153 uf_9)
-#154 := (+ #144 #153)
-#155 := (< #154 #110)
-#157 := (and #155 #156)
-#162 := (not #157)
-#164 := (implies #162 #163)
-#165 := (forall (vars (?x44 T2)) #164)
-#215 := (implies #165 #214)
-#159 := (= #158 #154)
-#160 := (implies #157 #159)
-#161 := (forall (vars (?x43 T2)) #160)
-#216 := (implies #161 #215)
-#217 := (implies #151 #216)
-#146 := (<= #144 #110)
-#147 := (implies #118 #146)
-#148 := (forall (vars (?x42 T2)) #147)
-#218 := (implies #148 #217)
-#145 := (< #144 uf_9)
-#219 := (implies #145 #218)
-#142 := (= #141 uf_8)
-#143 := (not #142)
-#220 := (implies #143 #219)
-#221 := (implies #139 #220)
-#222 := (implies true #221)
-#223 := (implies true #222)
-#268 := (and #223 #267)
-#269 := (implies true #268)
-#132 := (< #110 #120)
-#133 := (and #117 #132)
-#125 := (+ #110 #91)
-#131 := (= #120 #125)
-#134 := (and #131 #133)
-#135 := (exists (vars (?x40 T2)) #134)
-#130 := (and #129 #73)
-#136 := (implies #130 #135)
-#137 := (forall (vars (?x39 T2)) #136)
-#270 := (implies #137 #269)
-#126 := (<= #120 #125)
-#124 := (and #92 #117)
-#127 := (implies #124 #126)
-#128 := (forall (vars (?x37 T2) (?x38 T2)) #127)
-#271 := (implies #128 #270)
-#121 := (<= #120 #110)
-#115 := (= #114 uf_8)
-#119 := (and #115 #118)
-#122 := (implies #119 #121)
-#123 := (forall (vars (?x35 T2) (?x36 T2)) #122)
-#272 := (implies #123 #271)
-#111 := (<= 0::int #110)
-#112 := (forall (vars (?x34 T2)) #111)
-#273 := (implies #112 #272)
-#274 := (implies #109 #273)
-#275 := (implies true #274)
-#276 := (implies true #275)
-#277 := (implies #106 #276)
-#278 := (and #277 #106)
-#279 := (implies #97 #278)
-#280 := (and #279 #97)
-#281 := (implies #89 #280)
-#282 := (and #281 #89)
-#283 := (implies #83 #282)
-#284 := (and #283 #83)
-#285 := (implies #81 #284)
-#286 := (and #285 #81)
-#287 := (implies true #286)
-#288 := (implies #79 #287)
-#74 := (= #69 uf_9)
-#75 := (implies #73 #74)
-#76 := (forall (vars (?x25 T2)) #75)
-#289 := (implies #76 #288)
-#71 := (implies #68 #70)
-#72 := (forall (vars (?x24 T2)) #71)
-#290 := (implies #72 #289)
-#291 := (implies true #290)
-#292 := (implies true #291)
-#293 := (not #292)
-#1938 := (iff #293 #1935)
-#983 := (= 0::int #250)
-#939 := (+ #91 #235)
-#968 := (<= #238 #939)
-#974 := (not #246)
-#975 := (or #974 #968)
-#980 := (forall (vars (?x66 T2) (?x67 T2)) #975)
-#1003 := (not #980)
-#1004 := (or #1003 #983)
-#1012 := (and #980 #1004)
-#942 := (= #238 #939)
-#948 := (and #241 #942)
-#953 := (exists (vars (?x65 T2)) #948)
-#936 := (and #73 #236)
-#959 := (not #936)
-#960 := (or #959 #953)
-#965 := (forall (vars (?x64 T2)) #960)
-#1020 := (not #965)
-#1021 := (or #1020 #1012)
-#1029 := (and #965 #1021)
-#1045 := (or #1044 #1029)
-#1054 := (or #1053 #1045)
-#1063 := (or #1062 #1054)
-#1072 := (or #1071 #1063)
-#579 := (and #129 #508)
-#582 := (exists (vars (?x41 T2)) #579)
-#1091 := (or #582 #1072)
-#703 := (and #192 #630)
-#676 := (+ #91 #158)
-#697 := (= #180 #676)
-#708 := (and #697 #703)
-#711 := (exists (vars (?x53 T2)) #708)
-#694 := (and #73 #189)
-#717 := (not #694)
-#718 := (or #717 #711)
-#723 := (forall (vars (?x52 T2)) #718)
-#679 := (<= #180 #676)
-#673 := (and #92 #630)
-#685 := (not #673)
-#686 := (or #685 #679)
-#691 := (forall (vars (?x50 T2) (?x51 T2)) #686)
-#745 := (not #691)
-#746 := (or #745 #723)
-#754 := (and #691 #746)
-#665 := (or #181 #664)
-#670 := (forall (vars (?x48 T2) (?x49 T2)) #665)
-#762 := (not #670)
-#763 := (or #762 #754)
-#771 := (and #670 #763)
-#779 := (not #175)
-#780 := (or #779 #771)
-#788 := (and #175 #780)
-#645 := (= 0::int #172)
-#796 := (not #645)
-#797 := (or #796 #788)
-#805 := (and #645 #797)
-#825 := (or #824 #805)
-#833 := (and #642 #825)
-#841 := (not #167)
-#842 := (or #841 #833)
-#850 := (and #167 #842)
-#622 := (or #157 #616)
-#627 := (forall (vars (?x44 T2)) #622)
-#858 := (not #627)
-#859 := (or #858 #850)
-#602 := (= #154 #158)
-#608 := (or #162 #602)
-#613 := (forall (vars (?x43 T2)) #608)
-#867 := (not #613)
-#868 := (or #867 #859)
-#877 := (or #876 #868)
-#594 := (or #146 #505)
-#599 := (forall (vars (?x42 T2)) #594)
-#885 := (not #599)
-#886 := (or #885 #877)
-#894 := (not #145)
-#895 := (or #894 #886)
-#903 := (or #585 #895)
-#911 := (not #582)
-#912 := (or #911 #903)
-#1107 := (and #912 #1091)
-#556 := (and #132 #505)
-#529 := (+ #91 #110)
-#550 := (= #120 #529)
-#561 := (and #550 #556)
-#564 := (exists (vars (?x40 T2)) #561)
-#547 := (and #73 #129)
-#570 := (not #547)
-#571 := (or #570 #564)
-#576 := (forall (vars (?x39 T2)) #571)
-#1120 := (not #576)
-#1121 := (or #1120 #1107)
-#532 := (<= #120 #529)
-#526 := (and #92 #505)
-#538 := (not #526)
-#539 := (or #538 #532)
-#544 := (forall (vars (?x37 T2) (?x38 T2)) #539)
-#1129 := (not #544)
-#1130 := (or #1129 #1121)
-#518 := (or #121 #517)
-#523 := (forall (vars (?x35 T2) (?x36 T2)) #518)
-#1138 := (not #523)
-#1139 := (or #1138 #1130)
-#1147 := (not #112)
-#1148 := (or #1147 #1139)
-#499 := (= 0::int #108)
-#1156 := (not #499)
-#1157 := (or #1156 #1148)
-#484 := (and #73 #98)
-#490 := (not #484)
-#491 := (or #104 #490)
-#496 := (forall (vars (?x32 T2)) #491)
-#1176 := (not #496)
-#1177 := (or #1176 #1157)
-#1185 := (and #496 #1177)
-#469 := (and #77 #92)
-#475 := (not #469)
-#476 := (or #95 #475)
-#481 := (forall (vars (?x30 T2) (?x31 T2)) #476)
-#1193 := (not #481)
-#1194 := (or #1193 #1185)
-#1202 := (and #481 #1194)
-#461 := (or #87 #460)
-#466 := (forall (vars (?x28 T2) (?x29 T2)) #461)
-#1210 := (not #466)
-#1211 := (or #1210 #1202)
-#1219 := (and #466 #1211)
-#1227 := (not #83)
-#1228 := (or #1227 #1219)
-#1236 := (and #83 #1228)
-#451 := (= 0::int #80)
-#1244 := (not #451)
-#1245 := (or #1244 #1236)
-#1253 := (and #451 #1245)
-#1269 := (or #1268 #1253)
-#1278 := (or #1277 #1269)
-#423 := (= 0::int #69)
-#429 := (or #73 #423)
-#434 := (forall (vars (?x24 T2)) #429)
-#1286 := (not #434)
-#1287 := (or #1286 #1278)
-#1303 := (not #1287)
-#1936 := (iff #1303 #1935)
-#1933 := (iff #1287 #1930)
-#1921 := (or #1268 #1907)
-#1924 := (or #1277 #1921)
-#1927 := (or #1918 #1924)
-#1931 := (iff #1927 #1930)
-#1932 := [rewrite]: #1931
-#1928 := (iff #1287 #1927)
-#1925 := (iff #1278 #1924)
-#1922 := (iff #1269 #1921)
-#1908 := (iff #1253 #1907)
-#1905 := (iff #1245 #1904)
-#1902 := (iff #1236 #1901)
-#1899 := (iff #1228 #1898)
-#1896 := (iff #1219 #1895)
-#1893 := (iff #1211 #1892)
-#1890 := (iff #1202 #1889)
-#1887 := (iff #1194 #1886)
-#1884 := (iff #1185 #1883)
-#1881 := (iff #1177 #1878)
-#1860 := (or #1446 #1801)
-#1863 := (or #1824 #1860)
-#1866 := (or #1840 #1863)
-#1869 := (or #1849 #1866)
-#1872 := (or #1854 #1869)
-#1875 := (or #1857 #1872)
-#1879 := (iff #1875 #1878)
-#1880 := [rewrite]: #1879
-#1876 := (iff #1177 #1875)
-#1873 := (iff #1157 #1872)
-#1870 := (iff #1148 #1869)
-#1867 := (iff #1139 #1866)
-#1864 := (iff #1130 #1863)
-#1861 := (iff #1121 #1860)
-#1802 := (iff #1107 #1801)
-#1799 := (iff #1091 #1796)
-#1781 := (or #1044 #1778)
-#1784 := (or #1053 #1781)
-#1787 := (or #1062 #1784)
-#1790 := (or #1071 #1787)
-#1793 := (or #1675 #1790)
-#1797 := (iff #1793 #1796)
-#1798 := [rewrite]: #1797
-#1794 := (iff #1091 #1793)
-#1791 := (iff #1072 #1790)
-#1788 := (iff #1063 #1787)
-#1785 := (iff #1054 #1784)
-#1782 := (iff #1045 #1781)
-#1779 := (iff #1029 #1778)
-#1776 := (iff #1021 #1775)
-#1773 := (iff #1012 #1772)
-#1770 := (iff #1004 #1767)
-#1764 := (or #1759 #251)
-#1768 := (iff #1764 #1767)
-#1769 := [rewrite]: #1768
-#1765 := (iff #1004 #1764)
-#1762 := (iff #983 #251)
-#1763 := [rewrite]: #1762
-#1760 := (iff #1003 #1759)
-#1757 := (iff #980 #1756)
-#1754 := (iff #975 #1753)
-#1751 := (iff #968 #1750)
-#1752 := [rewrite]: #1751
-#1748 := (iff #974 #1747)
-#1745 := (iff #246 #1744)
-#1711 := (iff #236 #1710)
-#1712 := [rewrite]: #1711
-#1349 := (iff #92 #1348)
-#1350 := [rewrite]: #1349
-#1746 := [monotonicity #1350 #1712]: #1745
-#1749 := [monotonicity #1746]: #1748
-#1755 := [monotonicity #1749 #1752]: #1754
-#1758 := [quant-intro #1755]: #1757
-#1761 := [monotonicity #1758]: #1760
-#1766 := [monotonicity #1761 #1763]: #1765
-#1771 := [trans #1766 #1769]: #1770
-#1774 := [monotonicity #1758 #1771]: #1773
-#1742 := (iff #1020 #1741)
-#1739 := (iff #965 #1738)
-#1736 := (iff #960 #1735)
-#1733 := (iff #953 #1732)
-#1730 := (iff #948 #1729)
-#1726 := (iff #942 #1725)
-#1728 := [rewrite]: #1726
-#1723 := (iff #241 #1722)
-#1724 := [rewrite]: #1723
-#1731 := [monotonicity #1724 #1728]: #1730
-#1734 := [quant-intro #1731]: #1733
-#1717 := (iff #959 #1716)
-#1714 := (iff #936 #1713)
-#1715 := [monotonicity #1712]: #1714
-#1718 := [monotonicity #1715]: #1717
-#1737 := [monotonicity #1718 #1734]: #1736
-#1740 := [quant-intro #1737]: #1739
-#1743 := [monotonicity #1740]: #1742
-#1777 := [monotonicity #1743 #1774]: #1776
-#1780 := [monotonicity #1740 #1777]: #1779
-#1783 := [monotonicity #1780]: #1782
-#1786 := [monotonicity #1783]: #1785
-#1789 := [monotonicity #1786]: #1788
-#1792 := [monotonicity #1789]: #1791
-#1676 := (iff #582 #1675)
-#1673 := (iff #579 #1670)
-#1667 := (and #1407 #508)
-#1671 := (iff #1667 #1670)
-#1672 := [rewrite]: #1671
-#1668 := (iff #579 #1667)
-#1408 := (iff #129 #1407)
-#1409 := [rewrite]: #1408
-#1669 := [monotonicity #1409]: #1668
-#1674 := [trans #1669 #1672]: #1673
-#1677 := [quant-intro #1674]: #1676
-#1795 := [monotonicity #1677 #1792]: #1794
-#1800 := [trans #1795 #1798]: #1799
-#1705 := (iff #912 #1702)
-#1681 := (or #1476 #1617)
-#1684 := (or #1634 #1681)
-#1687 := (or #876 #1684)
-#1690 := (or #1652 #1687)
-#1693 := (or #1656 #1690)
-#1696 := (or #585 #1693)
-#1699 := (or #1678 #1696)
-#1703 := (iff #1699 #1702)
-#1704 := [rewrite]: #1703
-#1700 := (iff #912 #1699)
-#1697 := (iff #903 #1696)
-#1694 := (iff #895 #1693)
-#1691 := (iff #886 #1690)
-#1688 := (iff #877 #1687)
-#1685 := (iff #868 #1684)
-#1682 := (iff #859 #1681)
-#1618 := (iff #850 #1617)
-#1615 := (iff #842 #1614)
-#1612 := (iff #833 #1611)
-#1609 := (iff #825 #1608)
-#1606 := (iff #805 #1605)
-#1603 := (iff #797 #1602)
-#1600 := (iff #788 #1599)
-#1597 := (iff #780 #1596)
-#1594 := (iff #771 #1593)
-#1591 := (iff #763 #1590)
-#1588 := (iff #754 #1587)
-#1585 := (iff #746 #1584)
-#1582 := (iff #723 #1581)
-#1579 := (iff #718 #1578)
-#1576 := (iff #711 #1575)
-#1573 := (iff #708 #1570)
-#1564 := (and #1558 #630)
-#1567 := (and #1561 #1564)
-#1571 := (iff #1567 #1570)
-#1572 := [rewrite]: #1571
-#1568 := (iff #708 #1567)
-#1565 := (iff #703 #1564)
-#1559 := (iff #192 #1558)
-#1560 := [rewrite]: #1559
-#1566 := [monotonicity #1560]: #1565
-#1562 := (iff #697 #1561)
-#1563 := [rewrite]: #1562
-#1569 := [monotonicity #1563 #1566]: #1568
-#1574 := [trans #1569 #1572]: #1573
-#1577 := [quant-intro #1574]: #1576
-#1556 := (iff #717 #1555)
-#1553 := (iff #694 #1552)
-#1550 := (iff #189 #1549)
-#1551 := [rewrite]: #1550
-#1554 := [monotonicity #1551]: #1553
-#1557 := [monotonicity #1554]: #1556
-#1580 := [monotonicity #1557 #1577]: #1579
-#1583 := [quant-intro #1580]: #1582
-#1545 := (iff #745 #1544)
-#1542 := (iff #691 #1541)
-#1539 := (iff #686 #1538)
-#1535 := (iff #679 #1534)
-#1537 := [rewrite]: #1535
-#1532 := (iff #685 #1531)
-#1529 := (iff #673 #1526)
-#1523 := (and #1348 #630)
-#1527 := (iff #1523 #1526)
-#1528 := [rewrite]: #1527
-#1524 := (iff #673 #1523)
-#1525 := [monotonicity #1350]: #1524
-#1530 := [trans #1525 #1528]: #1529
-#1533 := [monotonicity #1530]: #1532
-#1540 := [monotonicity #1533 #1537]: #1539
-#1543 := [quant-intro #1540]: #1542
-#1546 := [monotonicity #1543]: #1545
-#1586 := [monotonicity #1546 #1583]: #1585
-#1589 := [monotonicity #1543 #1586]: #1588
-#1521 := (iff #762 #1520)
-#1518 := (iff #670 #1517)
-#1515 := (iff #665 #1512)
-#1509 := (or #1504 #664)
-#1513 := (iff #1509 #1512)
-#1514 := [rewrite]: #1513
-#1510 := (iff #665 #1509)
-#1507 := (iff #181 #1504)
-#1508 := [rewrite]: #1507
-#1511 := [monotonicity #1508]: #1510
-#1516 := [trans #1511 #1514]: #1515
-#1519 := [quant-intro #1516]: #1518
-#1522 := [monotonicity #1519]: #1521
-#1592 := [monotonicity #1522 #1589]: #1591
-#1595 := [monotonicity #1519 #1592]: #1594
-#1502 := (iff #779 #1501)
-#1499 := (iff #175 #1498)
-#1496 := (iff #174 #1495)
-#1497 := [rewrite]: #1496
-#1500 := [quant-intro #1497]: #1499
-#1503 := [monotonicity #1500]: #1502
-#1598 := [monotonicity #1503 #1595]: #1597
-#1601 := [monotonicity #1500 #1598]: #1600
-#1493 := (iff #796 #1492)
-#1490 := (iff #645 #173)
-#1491 := [rewrite]: #1490
-#1494 := [monotonicity #1491]: #1493
-#1604 := [monotonicity #1494 #1601]: #1603
-#1607 := [monotonicity #1491 #1604]: #1606
-#1610 := [monotonicity #1607]: #1609
-#1613 := [monotonicity #1610]: #1612
-#1488 := (iff #841 #1487)
-#1485 := (iff #167 #1484)
-#1482 := (iff #166 #1479)
-#1483 := [rewrite]: #1482
-#1486 := [quant-intro #1483]: #1485
-#1489 := [monotonicity #1486]: #1488
-#1616 := [monotonicity #1489 #1613]: #1615
-#1619 := [monotonicity #1486 #1616]: #1618
-#1477 := (iff #858 #1476)
-#1474 := (iff #627 #1473)
-#1471 := (iff #622 #1468)
-#1465 := (or #1462 #616)
-#1469 := (iff #1465 #1468)
-#1470 := [rewrite]: #1469
-#1466 := (iff #622 #1465)
-#1463 := (iff #157 #1462)
-#1460 := (iff #156 #1459)
-#1461 := [rewrite]: #1460
-#1455 := (iff #155 #1454)
-#1456 := [rewrite]: #1455
-#1464 := [monotonicity #1456 #1461]: #1463
-#1467 := [monotonicity #1464]: #1466
-#1472 := [trans #1467 #1470]: #1471
-#1475 := [quant-intro #1472]: #1474
-#1478 := [monotonicity #1475]: #1477
-#1683 := [monotonicity #1478 #1619]: #1682
-#1635 := (iff #867 #1634)
-#1632 := (iff #613 #1631)
-#1629 := (iff #608 #1628)
-#1626 := (iff #602 #1625)
-#1627 := [rewrite]: #1626
-#1621 := (iff #162 #1620)
-#1622 := [monotonicity #1464]: #1621
-#1630 := [monotonicity #1622 #1627]: #1629
-#1633 := [quant-intro #1630]: #1632
-#1636 := [monotonicity #1633]: #1635
-#1686 := [monotonicity #1636 #1683]: #1685
-#1689 := [monotonicity #1686]: #1688
-#1653 := (iff #885 #1652)
-#1650 := (iff #599 #1649)
-#1647 := (iff #594 #1644)
-#1641 := (or #1637 #505)
-#1645 := (iff #1641 #1644)
-#1646 := [rewrite]: #1645
-#1642 := (iff #594 #1641)
-#1639 := (iff #146 #1637)
-#1640 := [rewrite]: #1639
-#1643 := [monotonicity #1640]: #1642
-#1648 := [trans #1643 #1646]: #1647
-#1651 := [quant-intro #1648]: #1650
-#1654 := [monotonicity #1651]: #1653
-#1692 := [monotonicity #1654 #1689]: #1691
-#1665 := (iff #894 #1656)
-#1657 := (not #1656)
-#1660 := (not #1657)
-#1663 := (iff #1660 #1656)
-#1664 := [rewrite]: #1663
-#1661 := (iff #894 #1660)
-#1658 := (iff #145 #1657)
-#1659 := [rewrite]: #1658
-#1662 := [monotonicity #1659]: #1661
-#1666 := [trans #1662 #1664]: #1665
-#1695 := [monotonicity #1666 #1692]: #1694
-#1698 := [monotonicity #1695]: #1697
-#1679 := (iff #911 #1678)
-#1680 := [monotonicity #1677]: #1679
-#1701 := [monotonicity #1680 #1698]: #1700
-#1706 := [trans #1701 #1704]: #1705
-#1803 := [monotonicity #1706 #1800]: #1802
-#1447 := (iff #1120 #1446)
-#1444 := (iff #576 #1443)
-#1441 := (iff #571 #1440)
-#1438 := (iff #564 #1437)
-#1435 := (iff #561 #1432)
-#1426 := (and #1419 #505)
-#1429 := (and #1422 #1426)
-#1433 := (iff #1429 #1432)
-#1434 := [rewrite]: #1433
-#1430 := (iff #561 #1429)
-#1427 := (iff #556 #1426)
-#1420 := (iff #132 #1419)
-#1421 := [rewrite]: #1420
-#1428 := [monotonicity #1421]: #1427
-#1423 := (iff #550 #1422)
-#1425 := [rewrite]: #1423
-#1431 := [monotonicity #1425 #1428]: #1430
-#1436 := [trans #1431 #1434]: #1435
-#1439 := [quant-intro #1436]: #1438
-#1414 := (iff #570 #1413)
-#1411 := (iff #547 #1410)
-#1412 := [monotonicity #1409]: #1411
-#1415 := [monotonicity #1412]: #1414
-#1442 := [monotonicity #1415 #1439]: #1441
-#1445 := [quant-intro #1442]: #1444
-#1448 := [monotonicity #1445]: #1447
-#1862 := [monotonicity #1448 #1803]: #1861
-#1825 := (iff #1129 #1824)
-#1822 := (iff #544 #1821)
-#1819 := (iff #539 #1818)
-#1816 := (iff #532 #1815)
-#1817 := [rewrite]: #1816
-#1813 := (iff #538 #1812)
-#1810 := (iff #526 #1807)
-#1804 := (and #1348 #505)
-#1808 := (iff #1804 #1807)
-#1809 := [rewrite]: #1808
-#1805 := (iff #526 #1804)
-#1806 := [monotonicity #1350]: #1805
-#1811 := [trans #1806 #1809]: #1810
-#1814 := [monotonicity #1811]: #1813
-#1820 := [monotonicity #1814 #1817]: #1819
-#1823 := [quant-intro #1820]: #1822
-#1826 := [monotonicity #1823]: #1825
-#1865 := [monotonicity #1826 #1862]: #1864
-#1841 := (iff #1138 #1840)
-#1838 := (iff #523 #1837)
-#1835 := (iff #518 #1832)
-#1829 := (or #1416 #517)
-#1833 := (iff #1829 #1832)
-#1834 := [rewrite]: #1833
-#1830 := (iff #518 #1829)
-#1827 := (iff #121 #1416)
-#1828 := [rewrite]: #1827
-#1831 := [monotonicity #1828]: #1830
-#1836 := [trans #1831 #1834]: #1835
-#1839 := [quant-intro #1836]: #1838
-#1842 := [monotonicity #1839]: #1841
-#1868 := [monotonicity #1842 #1865]: #1867
-#1850 := (iff #1147 #1849)
-#1847 := (iff #112 #1846)
-#1844 := (iff #111 #1843)
-#1845 := [rewrite]: #1844
-#1848 := [quant-intro #1845]: #1847
-#1851 := [monotonicity #1848]: #1850
-#1871 := [monotonicity #1851 #1868]: #1870
-#1855 := (iff #1156 #1854)
-#1852 := (iff #499 #109)
-#1853 := [rewrite]: #1852
-#1856 := [monotonicity #1853]: #1855
-#1874 := [monotonicity #1856 #1871]: #1873
-#1858 := (iff #1176 #1857)
-#1402 := (iff #496 #1401)
-#1399 := (iff #491 #1398)
-#1396 := (iff #490 #1395)
-#1393 := (iff #484 #1392)
-#1390 := (iff #98 #1389)
-#1391 := [rewrite]: #1390
-#1394 := [monotonicity #1391]: #1393
-#1397 := [monotonicity #1394]: #1396
-#1384 := (iff #104 #1383)
-#1381 := (iff #103 #1378)
-#1372 := (and #77 #1366)
-#1375 := (and #1370 #1372)
-#1379 := (iff #1375 #1378)
-#1380 := [rewrite]: #1379
-#1376 := (iff #103 #1375)
-#1373 := (iff #102 #1372)
-#1367 := (iff #101 #1366)
-#1368 := [rewrite]: #1367
-#1374 := [monotonicity #1368]: #1373
-#1369 := (iff #100 #1370)
-#1371 := [rewrite]: #1369
-#1377 := [monotonicity #1371 #1374]: #1376
-#1382 := [trans #1377 #1380]: #1381
-#1385 := [quant-intro #1382]: #1384
-#1400 := [monotonicity #1385 #1397]: #1399
-#1403 := [quant-intro #1400]: #1402
-#1859 := [monotonicity #1403]: #1858
-#1877 := [monotonicity #1859 #1874]: #1876
-#1882 := [trans #1877 #1880]: #1881
-#1885 := [monotonicity #1403 #1882]: #1884
-#1364 := (iff #1193 #1363)
-#1361 := (iff #481 #1360)
-#1358 := (iff #476 #1357)
-#1355 := (iff #475 #1354)
-#1352 := (iff #469 #1351)
-#1353 := [monotonicity #1350]: #1352
-#1356 := [monotonicity #1353]: #1355
-#1341 := (iff #95 #1342)
-#1340 := [rewrite]: #1341
-#1359 := [monotonicity #1340 #1356]: #1358
-#1362 := [quant-intro #1359]: #1361
-#1365 := [monotonicity #1362]: #1364
-#1888 := [monotonicity #1365 #1885]: #1887
-#1891 := [monotonicity #1362 #1888]: #1890
-#1338 := (iff #1210 #1337)
-#1335 := (iff #466 #1334)
-#1332 := (iff #461 #1329)
-#1326 := (or #1322 #460)
-#1330 := (iff #1326 #1329)
-#1331 := [rewrite]: #1330
-#1327 := (iff #461 #1326)
-#1321 := (iff #87 #1322)
-#1325 := [rewrite]: #1321
-#1328 := [monotonicity #1325]: #1327
-#1333 := [trans #1328 #1331]: #1332
-#1336 := [quant-intro #1333]: #1335
-#1339 := [monotonicity #1336]: #1338
-#1894 := [monotonicity #1339 #1891]: #1893
-#1897 := [monotonicity #1336 #1894]: #1896
-#1318 := (iff #1227 #1317)
-#1315 := (iff #83 #1314)
-#1311 := (iff #82 #1313)
-#1312 := [rewrite]: #1311
-#1316 := [quant-intro #1312]: #1315
-#1319 := [monotonicity #1316]: #1318
-#1900 := [monotonicity #1319 #1897]: #1899
-#1903 := [monotonicity #1316 #1900]: #1902
-#1309 := (iff #1244 #1308)
-#1306 := (iff #451 #81)
-#1307 := [rewrite]: #1306
-#1310 := [monotonicity #1307]: #1309
-#1906 := [monotonicity #1310 #1903]: #1905
-#1909 := [monotonicity #1307 #1906]: #1908
-#1923 := [monotonicity #1909]: #1922
-#1926 := [monotonicity #1923]: #1925
-#1919 := (iff #1286 #1918)
-#1916 := (iff #434 #1915)
-#1913 := (iff #429 #1912)
-#1910 := (iff #423 #70)
-#1911 := [rewrite]: #1910
-#1914 := [monotonicity #1911]: #1913
-#1917 := [quant-intro #1914]: #1916
-#1920 := [monotonicity #1917]: #1919
-#1929 := [monotonicity #1920 #1926]: #1928
-#1934 := [trans #1929 #1932]: #1933
-#1937 := [monotonicity #1934]: #1936
-#1304 := (iff #293 #1303)
-#1301 := (iff #292 #1287)
-#1292 := (implies true #1287)
-#1295 := (iff #1292 #1287)
-#1296 := [rewrite]: #1295
-#1299 := (iff #292 #1292)
-#1297 := (iff #291 #1287)
-#1293 := (iff #291 #1292)
-#1290 := (iff #290 #1287)
-#1283 := (implies #434 #1278)
-#1288 := (iff #1283 #1287)
-#1289 := [rewrite]: #1288
-#1284 := (iff #290 #1283)
-#1281 := (iff #289 #1278)
-#1274 := (implies #448 #1269)
-#1279 := (iff #1274 #1278)
-#1280 := [rewrite]: #1279
-#1275 := (iff #289 #1274)
-#1272 := (iff #288 #1269)
-#1265 := (implies #79 #1253)
-#1270 := (iff #1265 #1269)
-#1271 := [rewrite]: #1270
-#1266 := (iff #288 #1265)
-#1263 := (iff #287 #1253)
-#1258 := (implies true #1253)
-#1261 := (iff #1258 #1253)
-#1262 := [rewrite]: #1261
-#1259 := (iff #287 #1258)
-#1256 := (iff #286 #1253)
-#1250 := (and #1245 #451)
-#1254 := (iff #1250 #1253)
-#1255 := [rewrite]: #1254
-#1251 := (iff #286 #1250)
-#452 := (iff #81 #451)
-#453 := [rewrite]: #452
-#1248 := (iff #285 #1245)
-#1241 := (implies #451 #1236)
-#1246 := (iff #1241 #1245)
-#1247 := [rewrite]: #1246
-#1242 := (iff #285 #1241)
-#1239 := (iff #284 #1236)
-#1233 := (and #1228 #83)
-#1237 := (iff #1233 #1236)
-#1238 := [rewrite]: #1237
-#1234 := (iff #284 #1233)
-#1231 := (iff #283 #1228)
-#1224 := (implies #83 #1219)
-#1229 := (iff #1224 #1228)
-#1230 := [rewrite]: #1229
-#1225 := (iff #283 #1224)
-#1222 := (iff #282 #1219)
-#1216 := (and #1211 #466)
-#1220 := (iff #1216 #1219)
-#1221 := [rewrite]: #1220
-#1217 := (iff #282 #1216)
-#467 := (iff #89 #466)
-#464 := (iff #88 #461)
-#457 := (implies #454 #87)
-#462 := (iff #457 #461)
-#463 := [rewrite]: #462
-#458 := (iff #88 #457)
-#455 := (iff #85 #454)
-#456 := [rewrite]: #455
-#459 := [monotonicity #456]: #458
-#465 := [trans #459 #463]: #464
-#468 := [quant-intro #465]: #467
-#1214 := (iff #281 #1211)
-#1207 := (implies #466 #1202)
-#1212 := (iff #1207 #1211)
-#1213 := [rewrite]: #1212
-#1208 := (iff #281 #1207)
-#1205 := (iff #280 #1202)
-#1199 := (and #1194 #481)
-#1203 := (iff #1199 #1202)
-#1204 := [rewrite]: #1203
-#1200 := (iff #280 #1199)
-#482 := (iff #97 #481)
-#479 := (iff #96 #476)
-#472 := (implies #469 #95)
-#477 := (iff #472 #476)
-#478 := [rewrite]: #477
-#473 := (iff #96 #472)
-#470 := (iff #93 #469)
-#471 := [rewrite]: #470
-#474 := [monotonicity #471]: #473
-#480 := [trans #474 #478]: #479
-#483 := [quant-intro #480]: #482
-#1197 := (iff #279 #1194)
-#1190 := (implies #481 #1185)
-#1195 := (iff #1190 #1194)
-#1196 := [rewrite]: #1195
-#1191 := (iff #279 #1190)
-#1188 := (iff #278 #1185)
-#1182 := (and #1177 #496)
-#1186 := (iff #1182 #1185)
-#1187 := [rewrite]: #1186
-#1183 := (iff #278 #1182)
-#497 := (iff #106 #496)
-#494 := (iff #105 #491)
-#487 := (implies #484 #104)
-#492 := (iff #487 #491)
-#493 := [rewrite]: #492
-#488 := (iff #105 #487)
-#485 := (iff #99 #484)
-#486 := [rewrite]: #485
-#489 := [monotonicity #486]: #488
-#495 := [trans #489 #493]: #494
-#498 := [quant-intro #495]: #497
-#1180 := (iff #277 #1177)
-#1173 := (implies #496 #1157)
-#1178 := (iff #1173 #1177)
-#1179 := [rewrite]: #1178
-#1174 := (iff #277 #1173)
-#1171 := (iff #276 #1157)
-#1162 := (implies true #1157)
-#1165 := (iff #1162 #1157)
-#1166 := [rewrite]: #1165
-#1169 := (iff #276 #1162)
-#1167 := (iff #275 #1157)
-#1163 := (iff #275 #1162)
-#1160 := (iff #274 #1157)
-#1153 := (implies #499 #1148)
-#1158 := (iff #1153 #1157)
-#1159 := [rewrite]: #1158
-#1154 := (iff #274 #1153)
-#1151 := (iff #273 #1148)
-#1144 := (implies #112 #1139)
-#1149 := (iff #1144 #1148)
-#1150 := [rewrite]: #1149
-#1145 := (iff #273 #1144)
-#1142 := (iff #272 #1139)
-#1135 := (implies #523 #1130)
-#1140 := (iff #1135 #1139)
-#1141 := [rewrite]: #1140
-#1136 := (iff #272 #1135)
-#1133 := (iff #271 #1130)
-#1126 := (implies #544 #1121)
-#1131 := (iff #1126 #1130)
-#1132 := [rewrite]: #1131
-#1127 := (iff #271 #1126)
-#1124 := (iff #270 #1121)
-#1117 := (implies #576 #1107)
-#1122 := (iff #1117 #1121)
-#1123 := [rewrite]: #1122
-#1118 := (iff #270 #1117)
-#1115 := (iff #269 #1107)
-#1110 := (implies true #1107)
-#1113 := (iff #1110 #1107)
-#1114 := [rewrite]: #1113
-#1111 := (iff #269 #1110)
-#1108 := (iff #268 #1107)
-#1105 := (iff #267 #1091)
-#1096 := (implies true #1091)
-#1099 := (iff #1096 #1091)
-#1100 := [rewrite]: #1099
-#1103 := (iff #267 #1096)
-#1101 := (iff #266 #1091)
-#1097 := (iff #266 #1096)
-#1094 := (iff #265 #1091)
-#1088 := (implies #911 #1072)
-#1092 := (iff #1088 #1091)
-#1093 := [rewrite]: #1092
-#1089 := (iff #265 #1088)
-#1086 := (iff #264 #1072)
-#1077 := (implies true #1072)
-#1080 := (iff #1077 #1072)
-#1081 := [rewrite]: #1080
-#1084 := (iff #264 #1077)
-#1082 := (iff #263 #1072)
-#1078 := (iff #263 #1077)
-#1075 := (iff #262 #1072)
-#1068 := (implies #930 #1063)
-#1073 := (iff #1068 #1072)
-#1074 := [rewrite]: #1073
-#1069 := (iff #262 #1068)
-#1066 := (iff #261 #1063)
-#1059 := (implies #229 #1054)
-#1064 := (iff #1059 #1063)
-#1065 := [rewrite]: #1064
-#1060 := (iff #261 #1059)
-#1057 := (iff #260 #1054)
-#1050 := (implies #933 #1045)
-#1055 := (iff #1050 #1054)
-#1056 := [rewrite]: #1055
-#1051 := (iff #260 #1050)
-#1048 := (iff #259 #1045)
-#1041 := (implies #234 #1029)
-#1046 := (iff #1041 #1045)
-#1047 := [rewrite]: #1046
-#1042 := (iff #259 #1041)
-#1039 := (iff #258 #1029)
-#1034 := (implies true #1029)
-#1037 := (iff #1034 #1029)
-#1038 := [rewrite]: #1037
-#1035 := (iff #258 #1034)
-#1032 := (iff #257 #1029)
-#1026 := (and #1021 #965)
-#1030 := (iff #1026 #1029)
-#1031 := [rewrite]: #1030
-#1027 := (iff #257 #1026)
-#966 := (iff #245 #965)
-#963 := (iff #244 #960)
-#956 := (implies #936 #953)
-#961 := (iff #956 #960)
-#962 := [rewrite]: #961
-#957 := (iff #244 #956)
-#954 := (iff #243 #953)
-#951 := (iff #242 #948)
-#945 := (and #942 #241)
-#949 := (iff #945 #948)
-#950 := [rewrite]: #949
-#946 := (iff #242 #945)
-#943 := (iff #240 #942)
-#940 := (= #239 #939)
-#941 := [rewrite]: #940
-#944 := [monotonicity #941]: #943
-#947 := [monotonicity #944]: #946
-#952 := [trans #947 #950]: #951
-#955 := [quant-intro #952]: #954
-#937 := (iff #237 #936)
-#938 := [rewrite]: #937
-#958 := [monotonicity #938 #955]: #957
-#964 := [trans #958 #962]: #963
-#967 := [quant-intro #964]: #966
-#1024 := (iff #256 #1021)
-#1017 := (implies #965 #1012)
-#1022 := (iff #1017 #1021)
-#1023 := [rewrite]: #1022
-#1018 := (iff #256 #1017)
-#1015 := (iff #255 #1012)
-#1009 := (and #1004 #980)
-#1013 := (iff #1009 #1012)
-#1014 := [rewrite]: #1013
-#1010 := (iff #255 #1009)
-#981 := (iff #249 #980)
-#978 := (iff #248 #975)
-#971 := (implies #246 #968)
-#976 := (iff #971 #975)
-#977 := [rewrite]: #976
-#972 := (iff #248 #971)
-#969 := (iff #247 #968)
-#970 := [monotonicity #941]: #969
-#973 := [monotonicity #970]: #972
-#979 := [trans #973 #977]: #978
-#982 := [quant-intro #979]: #981
-#1007 := (iff #254 #1004)
-#1000 := (implies #980 #983)
-#1005 := (iff #1000 #1004)
-#1006 := [rewrite]: #1005
-#1001 := (iff #254 #1000)
-#998 := (iff #253 #983)
-#993 := (and true #983)
-#996 := (iff #993 #983)
-#997 := [rewrite]: #996
-#994 := (iff #253 #993)
-#984 := (iff #251 #983)
-#985 := [rewrite]: #984
-#991 := (iff #252 true)
-#986 := (implies #983 true)
-#989 := (iff #986 true)
-#990 := [rewrite]: #989
-#987 := (iff #252 #986)
-#988 := [monotonicity #985]: #987
-#992 := [trans #988 #990]: #991
-#995 := [monotonicity #992 #985]: #994
-#999 := [trans #995 #997]: #998
-#1002 := [monotonicity #982 #999]: #1001
-#1008 := [trans #1002 #1006]: #1007
-#1011 := [monotonicity #1008 #982]: #1010
-#1016 := [trans #1011 #1014]: #1015
-#1019 := [monotonicity #967 #1016]: #1018
-#1025 := [trans #1019 #1023]: #1024
-#1028 := [monotonicity #1025 #967]: #1027
-#1033 := [trans #1028 #1031]: #1032
-#1036 := [monotonicity #1033]: #1035
-#1040 := [trans #1036 #1038]: #1039
-#1043 := [monotonicity #1040]: #1042
-#1049 := [trans #1043 #1047]: #1048
-#934 := (iff #231 #933)
-#935 := [rewrite]: #934
-#1052 := [monotonicity #935 #1049]: #1051
-#1058 := [trans #1052 #1056]: #1057
-#1061 := [monotonicity #1058]: #1060
-#1067 := [trans #1061 #1065]: #1066
-#931 := (iff #226 #930)
-#932 := [rewrite]: #931
-#1070 := [monotonicity #932 #1067]: #1069
-#1076 := [trans #1070 #1074]: #1075
-#1079 := [monotonicity #1076]: #1078
-#1083 := [trans #1079 #1081]: #1082
-#1085 := [monotonicity #1083]: #1084
-#1087 := [trans #1085 #1081]: #1086
-#928 := (iff #224 #911)
-#583 := (iff #139 #582)
-#580 := (iff #138 #579)
-#509 := (iff #118 #508)
-#506 := (iff #117 #505)
-#507 := [rewrite]: #506
-#510 := [monotonicity #507]: #509
-#581 := [monotonicity #510]: #580
-#584 := [quant-intro #581]: #583
-#929 := [monotonicity #584]: #928
-#1090 := [monotonicity #929 #1087]: #1089
-#1095 := [trans #1090 #1093]: #1094
-#1098 := [monotonicity #1095]: #1097
-#1102 := [trans #1098 #1100]: #1101
-#1104 := [monotonicity #1102]: #1103
-#1106 := [trans #1104 #1100]: #1105
-#926 := (iff #223 #912)
-#917 := (implies true #912)
-#920 := (iff #917 #912)
-#921 := [rewrite]: #920
-#924 := (iff #223 #917)
-#922 := (iff #222 #912)
-#918 := (iff #222 #917)
-#915 := (iff #221 #912)
-#908 := (implies #582 #903)
-#913 := (iff #908 #912)
-#914 := [rewrite]: #913
-#909 := (iff #221 #908)
-#906 := (iff #220 #903)
-#588 := (not #585)
-#900 := (implies #588 #895)
-#904 := (iff #900 #903)
-#905 := [rewrite]: #904
-#901 := (iff #220 #900)
-#898 := (iff #219 #895)
-#891 := (implies #145 #886)
-#896 := (iff #891 #895)
-#897 := [rewrite]: #896
-#892 := (iff #219 #891)
-#889 := (iff #218 #886)
-#882 := (implies #599 #877)
-#887 := (iff #882 #886)
-#888 := [rewrite]: #887
-#883 := (iff #218 #882)
-#880 := (iff #217 #877)
-#873 := (implies #151 #868)
-#878 := (iff #873 #877)
-#879 := [rewrite]: #878
-#874 := (iff #217 #873)
-#871 := (iff #216 #868)
-#864 := (implies #613 #859)
-#869 := (iff #864 #868)
-#870 := [rewrite]: #869
-#865 := (iff #216 #864)
-#862 := (iff #215 #859)
-#855 := (implies #627 #850)
-#860 := (iff #855 #859)
-#861 := [rewrite]: #860
-#856 := (iff #215 #855)
-#853 := (iff #214 #850)
-#847 := (and #842 #167)
-#851 := (iff #847 #850)
-#852 := [rewrite]: #851
-#848 := (iff #214 #847)
-#845 := (iff #213 #842)
-#838 := (implies #167 #833)
-#843 := (iff #838 #842)
-#844 := [rewrite]: #843
-#839 := (iff #213 #838)
-#836 := (iff #212 #833)
-#830 := (and #825 #642)
-#834 := (iff #830 #833)
-#835 := [rewrite]: #834
-#831 := (iff #212 #830)
-#643 := (iff #171 #642)
-#640 := (iff #170 #637)
-#633 := (implies #630 #616)
-#638 := (iff #633 #637)
-#639 := [rewrite]: #638
-#634 := (iff #170 #633)
-#617 := (iff #163 #616)
-#618 := [rewrite]: #617
-#631 := (iff #169 #630)
-#632 := [rewrite]: #631
-#635 := [monotonicity #632 #618]: #634
-#641 := [trans #635 #639]: #640
-#644 := [quant-intro #641]: #643
-#828 := (iff #211 #825)
-#821 := (implies #642 #805)
-#826 := (iff #821 #825)
-#827 := [rewrite]: #826
-#822 := (iff #211 #821)
-#819 := (iff #210 #805)
-#810 := (implies true #805)
-#813 := (iff #810 #805)
-#814 := [rewrite]: #813
-#817 := (iff #210 #810)
-#815 := (iff #209 #805)
-#811 := (iff #209 #810)
-#808 := (iff #208 #805)
-#802 := (and #797 #645)
-#806 := (iff #802 #805)
-#807 := [rewrite]: #806
-#803 := (iff #208 #802)
-#646 := (iff #173 #645)
-#647 := [rewrite]: #646
-#800 := (iff #207 #797)
-#793 := (implies #645 #788)
-#798 := (iff #793 #797)
-#799 := [rewrite]: #798
-#794 := (iff #207 #793)
-#791 := (iff #206 #788)
-#785 := (and #780 #175)
-#789 := (iff #785 #788)
-#790 := [rewrite]: #789
-#786 := (iff #206 #785)
-#783 := (iff #205 #780)
-#776 := (implies #175 #771)
-#781 := (iff #776 #780)
-#782 := [rewrite]: #781
-#777 := (iff #205 #776)
-#774 := (iff #204 #771)
-#768 := (and #763 #670)
-#772 := (iff #768 #771)
-#773 := [rewrite]: #772
-#769 := (iff #204 #768)
-#671 := (iff #183 #670)
-#668 := (iff #182 #665)
-#661 := (implies #656 #181)
-#666 := (iff #661 #665)
-#667 := [rewrite]: #666
-#662 := (iff #182 #661)
-#659 := (iff #179 #656)
-#653 := (and #648 #636)
-#657 := (iff #653 #656)
-#658 := [rewrite]: #657
-#654 := (iff #179 #653)
-#651 := (iff #178 #636)
-#652 := [monotonicity #632]: #651
-#649 := (iff #177 #648)
-#650 := [rewrite]: #649
-#655 := [monotonicity #650 #652]: #654
-#660 := [trans #655 #658]: #659
-#663 := [monotonicity #660]: #662
-#669 := [trans #663 #667]: #668
-#672 := [quant-intro #669]: #671
-#766 := (iff #203 #763)
-#759 := (implies #670 #754)
-#764 := (iff #759 #763)
-#765 := [rewrite]: #764
-#760 := (iff #203 #759)
-#757 := (iff #202 #754)
-#751 := (and #746 #691)
-#755 := (iff #751 #754)
-#756 := [rewrite]: #755
-#752 := (iff #202 #751)
-#692 := (iff #188 #691)
-#689 := (iff #187 #686)
-#682 := (implies #673 #679)
-#687 := (iff #682 #686)
-#688 := [rewrite]: #687
-#683 := (iff #187 #682)
-#680 := (iff #186 #679)
-#677 := (= #185 #676)
-#678 := [rewrite]: #677
-#681 := [monotonicity #678]: #680
-#674 := (iff #184 #673)
-#675 := [monotonicity #632]: #674
-#684 := [monotonicity #675 #681]: #683
-#690 := [trans #684 #688]: #689
-#693 := [quant-intro #690]: #692
-#749 := (iff #201 #746)
-#742 := (implies #691 #723)
-#747 := (iff #742 #746)
-#748 := [rewrite]: #747
-#743 := (iff #201 #742)
-#740 := (iff #200 #723)
-#735 := (and true #723)
-#738 := (iff #735 #723)
-#739 := [rewrite]: #738
-#736 := (iff #200 #735)
-#724 := (iff #197 #723)
-#721 := (iff #196 #718)
-#714 := (implies #694 #711)
-#719 := (iff #714 #718)
-#720 := [rewrite]: #719
-#715 := (iff #196 #714)
-#712 := (iff #195 #711)
-#709 := (iff #194 #708)
-#706 := (iff #193 #703)
-#700 := (and #630 #192)
-#704 := (iff #700 #703)
-#705 := [rewrite]: #704
-#701 := (iff #193 #700)
-#702 := [monotonicity #632]: #701
-#707 := [trans #702 #705]: #706
-#698 := (iff #191 #697)
-#699 := [monotonicity #678]: #698
-#710 := [monotonicity #699 #707]: #709
-#713 := [quant-intro #710]: #712
-#695 := (iff #190 #694)
-#696 := [rewrite]: #695
-#716 := [monotonicity #696 #713]: #715
-#722 := [trans #716 #720]: #721
-#725 := [quant-intro #722]: #724
-#733 := (iff #199 true)
-#728 := (implies #723 true)
-#731 := (iff #728 true)
-#732 := [rewrite]: #731
-#729 := (iff #199 #728)
-#726 := (iff #198 true)
-#727 := [rewrite]: #726
-#730 := [monotonicity #725 #727]: #729
-#734 := [trans #730 #732]: #733
-#737 := [monotonicity #734 #725]: #736
-#741 := [trans #737 #739]: #740
-#744 := [monotonicity #693 #741]: #743
-#750 := [trans #744 #748]: #749
-#753 := [monotonicity #750 #693]: #752
-#758 := [trans #753 #756]: #757
-#761 := [monotonicity #672 #758]: #760
-#767 := [trans #761 #765]: #766
-#770 := [monotonicity #767 #672]: #769
-#775 := [trans #770 #773]: #774
-#778 := [monotonicity #775]: #777
-#784 := [trans #778 #782]: #783
-#787 := [monotonicity #784]: #786
-#792 := [trans #787 #790]: #791
-#795 := [monotonicity #647 #792]: #794
-#801 := [trans #795 #799]: #800
-#804 := [monotonicity #801 #647]: #803
-#809 := [trans #804 #807]: #808
-#812 := [monotonicity #809]: #811
-#816 := [trans #812 #814]: #815
-#818 := [monotonicity #816]: #817
-#820 := [trans #818 #814]: #819
-#823 := [monotonicity #644 #820]: #822
-#829 := [trans #823 #827]: #828
-#832 := [monotonicity #829 #644]: #831
-#837 := [trans #832 #835]: #836
-#840 := [monotonicity #837]: #839
-#846 := [trans #840 #844]: #845
-#849 := [monotonicity #846]: #848
-#854 := [trans #849 #852]: #853
-#628 := (iff #165 #627)
-#625 := (iff #164 #622)
-#619 := (implies #162 #616)
-#623 := (iff #619 #622)
-#624 := [rewrite]: #623
-#620 := (iff #164 #619)
-#621 := [monotonicity #618]: #620
-#626 := [trans #621 #624]: #625
-#629 := [quant-intro #626]: #628
-#857 := [monotonicity #629 #854]: #856
-#863 := [trans #857 #861]: #862
-#614 := (iff #161 #613)
-#611 := (iff #160 #608)
-#605 := (implies #157 #602)
-#609 := (iff #605 #608)
-#610 := [rewrite]: #609
-#606 := (iff #160 #605)
-#603 := (iff #159 #602)
-#604 := [rewrite]: #603
-#607 := [monotonicity #604]: #606
-#612 := [trans #607 #610]: #611
-#615 := [quant-intro #612]: #614
-#866 := [monotonicity #615 #863]: #865
-#872 := [trans #866 #870]: #871
-#875 := [monotonicity #872]: #874
-#881 := [trans #875 #879]: #880
-#600 := (iff #148 #599)
-#597 := (iff #147 #594)
-#591 := (implies #508 #146)
-#595 := (iff #591 #594)
-#596 := [rewrite]: #595
-#592 := (iff #147 #591)
-#593 := [monotonicity #510]: #592
-#598 := [trans #593 #596]: #597
-#601 := [quant-intro #598]: #600
-#884 := [monotonicity #601 #881]: #883
-#890 := [trans #884 #888]: #889
-#893 := [monotonicity #890]: #892
-#899 := [trans #893 #897]: #898
-#589 := (iff #143 #588)
-#586 := (iff #142 #585)
-#587 := [rewrite]: #586
-#590 := [monotonicity #587]: #589
-#902 := [monotonicity #590 #899]: #901
-#907 := [trans #902 #905]: #906
-#910 := [monotonicity #584 #907]: #909
-#916 := [trans #910 #914]: #915
-#919 := [monotonicity #916]: #918
-#923 := [trans #919 #921]: #922
-#925 := [monotonicity #923]: #924
-#927 := [trans #925 #921]: #926
-#1109 := [monotonicity #927 #1106]: #1108
-#1112 := [monotonicity #1109]: #1111
-#1116 := [trans #1112 #1114]: #1115
-#577 := (iff #137 #576)
-#574 := (iff #136 #571)
-#567 := (implies #547 #564)
-#572 := (iff #567 #571)
-#573 := [rewrite]: #572
-#568 := (iff #136 #567)
-#565 := (iff #135 #564)
-#562 := (iff #134 #561)
-#559 := (iff #133 #556)
-#553 := (and #505 #132)
-#557 := (iff #553 #556)
-#558 := [rewrite]: #557
-#554 := (iff #133 #553)
-#555 := [monotonicity #507]: #554
-#560 := [trans #555 #558]: #559
-#551 := (iff #131 #550)
-#530 := (= #125 #529)
-#531 := [rewrite]: #530
-#552 := [monotonicity #531]: #551
-#563 := [monotonicity #552 #560]: #562
-#566 := [quant-intro #563]: #565
-#548 := (iff #130 #547)
-#549 := [rewrite]: #548
-#569 := [monotonicity #549 #566]: #568
-#575 := [trans #569 #573]: #574
-#578 := [quant-intro #575]: #577
-#1119 := [monotonicity #578 #1116]: #1118
-#1125 := [trans #1119 #1123]: #1124
-#545 := (iff #128 #544)
-#542 := (iff #127 #539)
-#535 := (implies #526 #532)
-#540 := (iff #535 #539)
-#541 := [rewrite]: #540
-#536 := (iff #127 #535)
-#533 := (iff #126 #532)
-#534 := [monotonicity #531]: #533
-#527 := (iff #124 #526)
-#528 := [monotonicity #507]: #527
-#537 := [monotonicity #528 #534]: #536
-#543 := [trans #537 #541]: #542
-#546 := [quant-intro #543]: #545
-#1128 := [monotonicity #546 #1125]: #1127
-#1134 := [trans #1128 #1132]: #1133
-#524 := (iff #123 #523)
-#521 := (iff #122 #518)
-#514 := (implies #511 #121)
-#519 := (iff #514 #518)
-#520 := [rewrite]: #519
-#515 := (iff #122 #514)
-#512 := (iff #119 #511)
-#503 := (iff #115 #502)
-#504 := [rewrite]: #503
-#513 := [monotonicity #504 #510]: #512
-#516 := [monotonicity #513]: #515
-#522 := [trans #516 #520]: #521
-#525 := [quant-intro #522]: #524
-#1137 := [monotonicity #525 #1134]: #1136
-#1143 := [trans #1137 #1141]: #1142
-#1146 := [monotonicity #1143]: #1145
-#1152 := [trans #1146 #1150]: #1151
-#500 := (iff #109 #499)
-#501 := [rewrite]: #500
-#1155 := [monotonicity #501 #1152]: #1154
-#1161 := [trans #1155 #1159]: #1160
-#1164 := [monotonicity #1161]: #1163
-#1168 := [trans #1164 #1166]: #1167
-#1170 := [monotonicity #1168]: #1169
-#1172 := [trans #1170 #1166]: #1171
-#1175 := [monotonicity #498 #1172]: #1174
-#1181 := [trans #1175 #1179]: #1180
-#1184 := [monotonicity #1181 #498]: #1183
-#1189 := [trans #1184 #1187]: #1188
-#1192 := [monotonicity #483 #1189]: #1191
-#1198 := [trans #1192 #1196]: #1197
-#1201 := [monotonicity #1198 #483]: #1200
-#1206 := [trans #1201 #1204]: #1205
-#1209 := [monotonicity #468 #1206]: #1208
-#1215 := [trans #1209 #1213]: #1214
-#1218 := [monotonicity #1215 #468]: #1217
-#1223 := [trans #1218 #1221]: #1222
-#1226 := [monotonicity #1223]: #1225
-#1232 := [trans #1226 #1230]: #1231
-#1235 := [monotonicity #1232]: #1234
-#1240 := [trans #1235 #1238]: #1239
-#1243 := [monotonicity #453 #1240]: #1242
-#1249 := [trans #1243 #1247]: #1248
-#1252 := [monotonicity #1249 #453]: #1251
-#1257 := [trans #1252 #1255]: #1256
-#1260 := [monotonicity #1257]: #1259
-#1264 := [trans #1260 #1262]: #1263
-#1267 := [monotonicity #1264]: #1266
-#1273 := [trans #1267 #1271]: #1272
-#449 := (iff #76 #448)
-#446 := (iff #75 #443)
-#440 := (implies #73 #437)
-#444 := (iff #440 #443)
-#445 := [rewrite]: #444
-#441 := (iff #75 #440)
-#438 := (iff #74 #437)
-#439 := [rewrite]: #438
-#442 := [monotonicity #439]: #441
-#447 := [trans #442 #445]: #446
-#450 := [quant-intro #447]: #449
-#1276 := [monotonicity #450 #1273]: #1275
-#1282 := [trans #1276 #1280]: #1281
-#435 := (iff #72 #434)
-#432 := (iff #71 #429)
-#426 := (implies #68 #423)
-#430 := (iff #426 #429)
-#431 := [rewrite]: #430
-#427 := (iff #71 #426)
-#424 := (iff #70 #423)
-#425 := [rewrite]: #424
-#428 := [monotonicity #425]: #427
-#433 := [trans #428 #431]: #432
-#436 := [quant-intro #433]: #435
-#1285 := [monotonicity #436 #1282]: #1284
-#1291 := [trans #1285 #1289]: #1290
-#1294 := [monotonicity #1291]: #1293
-#1298 := [trans #1294 #1296]: #1297
-#1300 := [monotonicity #1298]: #1299
-#1302 := [trans #1300 #1296]: #1301
-#1305 := [monotonicity #1302]: #1304
-#1939 := [trans #1305 #1937]: #1938
-#422 := [asserted]: #293
-#1940 := [mp #422 #1939]: #1935
-#1941 := [not-or-elim #1940]: #79
-#2004 := [mp~ #1941 #1966]: #79
-#4354 := [mp #2004 #4353]: #4349
-#5709 := (not #4349)
-#5715 := (or #5709 #2266)
-#5470 := [quant-inst]: #5715
-#6005 := [unit-resolution #5470 #4354 #6004]: false
-#6009 := [lemma #6005]: #2266
-#3870 := (or #2166 #2033)
-#3957 := [def-axiom]: #3870
-#7294 := [unit-resolution #3957 #6009]: #2166
-#2421 := (not #2166)
-#4707 := (or #2421 #4704)
-#4710 := (not #4707)
-#4362 := (forall (vars (?x27 T2)) (:pat #4355) #1313)
-#4367 := (not #4362)
-#4713 := (or #4367 #4710)
-#4716 := (not #4713)
-decl ?x27!0 :: T2
-#2011 := ?x27!0
-#2012 := (uf_12 ?x27!0)
-#2013 := (>= #2012 0::int)
-#2014 := (not #2013)
-#4719 := (or #2014 #4716)
-#4722 := (not #4719)
-#4725 := (or #1308 #4722)
-#4728 := (not #4725)
-#4735 := (forall (vars (?x24 T2)) (:pat #4355) #1912)
-#4738 := (iff #1915 #4735)
-#4736 := (iff #1912 #1912)
-#4737 := [refl]: #4736
-#4739 := [quant-intro #4737]: #4738
-#2238 := (~ #1915 #1915)
-#2072 := (~ #1912 #1912)
-#2073 := [refl]: #2072
-#2239 := [nnf-pos #2073]: #2238
-#1945 := [not-or-elim #1940]: #1915
-#2265 := [mp~ #1945 #2239]: #1915
-#4740 := [mp #2265 #4739]: #4735
-#5485 := [hypothesis]: #1308
-#5347 := (not #4735)
-#5348 := (or #5347 #81)
-#4030 := (= uf_11 uf_11)
-#4033 := (not #4030)
-#4034 := (or #4033 #81)
-#5341 := (or #5347 #4034)
-#5350 := (iff #5341 #5348)
-#5361 := (iff #5348 #5348)
-#5363 := [rewrite]: #5361
-#5108 := (iff #4034 #81)
-#5046 := (or false #81)
-#5106 := (iff #5046 #81)
-#5107 := [rewrite]: #5106
-#5104 := (iff #4034 #5046)
-#3956 := (iff #4033 false)
-#6849 := (not true)
-#6852 := (iff #6849 false)
-#6853 := [rewrite]: #6852
-#5051 := (iff #4033 #6849)
-#4038 := (iff #4030 true)
-#5050 := [rewrite]: #4038
-#5052 := [monotonicity #5050]: #5051
-#3939 := [trans #5052 #6853]: #3956
-#5105 := [monotonicity #3939]: #5104
-#5346 := [trans #5105 #5107]: #5108
-#5351 := [monotonicity #5346]: #5350
-#5364 := [trans #5351 #5363]: #5350
-#5349 := [quant-inst]: #5341
-#5484 := [mp #5349 #5364]: #5348
-#5486 := [unit-resolution #5484 #5485 #4740]: false
-#5487 := [lemma #5486]: #81
-#4731 := (or #1308 #4728)
-#3666 := (forall (vars (?x66 T2) (?x67 T2)) #3661)
-#3672 := (not #3666)
-#3673 := (or #251 #3672)
-#3674 := (not #3673)
-#3701 := (or #3674 #3698)
-#3708 := (not #3701)
-#3644 := (forall (vars (?x64 T2)) #3639)
-#3707 := (not #3644)
-#3709 := (or #3707 #3708)
-#3710 := (not #3709)
-#3607 := (forall (vars (?x65 T2)) #3596)
-#3613 := (not #3607)
-#3614 := (or #2460 #2993 #3613)
-#3615 := (not #3614)
-#3715 := (or #3615 #3710)
-#3722 := (not #3715)
-#3592 := (forall (vars (?x41 T2)) #3581)
-#3721 := (not #3592)
-#3723 := (or #1062 #1044 #1071 #1053 #3721 #3722)
-#3724 := (not #3723)
-#3486 := (forall (vars (?x53 T2)) #3475)
-#3493 := (not #3486)
-#3471 := (forall (vars (?x50 T2) (?x51 T2)) #3466)
-#3492 := (not #3471)
-#3494 := (or #2318 #2893 #3492 #3493)
-#3495 := (not #3494)
-#3500 := (or #3449 #3495)
-#3507 := (not #3500)
-#3426 := (forall (vars (?x48 T2) (?x49 T2)) #3421)
-#3506 := (not #3426)
-#3508 := (or #3506 #3507)
-#3509 := (not #3508)
-#3514 := (or #3403 #3509)
-#3520 := (not #3514)
-#3521 := (or #1501 #3520)
-#3522 := (not #3521)
-#3527 := (or #2235 #3522)
-#3533 := (not #3527)
-#3534 := (or #1492 #3533)
-#3535 := (not #3534)
-#3540 := (or #1492 #3535)
-#3546 := (not #3540)
-#3547 := (or #824 #3546)
-#3548 := (not #3547)
-#3553 := (or #2836 #3548)
-#3559 := (not #3553)
-#3560 := (or #1487 #3559)
-#3561 := (not #3560)
-#3566 := (or #2822 #3561)
-#3574 := (not #3566)
-#3380 := (forall (vars (?x43 T2)) #3375)
-#3573 := (not #3380)
-#3362 := (forall (vars (?x44 T2)) #3359)
-#3572 := (not #3362)
-#3575 := (or #876 #585 #1652 #1656 #2412 #2415 #3572 #3573 #3574)
-#3576 := (not #3575)
-#3729 := (or #3576 #3724)
-#3739 := (not #3729)
-#3352 := (forall (vars (?x39 T2)) #3347)
-#3738 := (not #3352)
-#3324 := (forall (vars (?x32 T2)) #3319)
-#3737 := (not #3324)
-#3296 := (forall (vars (?x35 T2) (?x36 T2)) #3291)
-#3736 := (not #3296)
-#3273 := (forall (vars (?x37 T2) (?x38 T2)) #3268)
-#3735 := (not #3273)
-#3740 := (or #1854 #1849 #3735 #3736 #3737 #3738 #3739)
-#3741 := (not #3740)
-#3241 := (forall (vars (?x33 T2)) #3230)
-#3247 := (not #3241)
-#3248 := (or #2085 #2688 #3247)
-#3249 := (not #3248)
-#3746 := (or #3249 #3741)
-#3753 := (not #3746)
-#3226 := (forall (vars (?x30 T2) (?x31 T2)) #3221)
-#3752 := (not #3226)
-#3754 := (or #3752 #3753)
-#3755 := (not #3754)
-#3760 := (or #3204 #3755)
-#3767 := (not #3760)
-#3181 := (forall (vars (?x28 T2) (?x29 T2)) #3176)
-#3766 := (not #3181)
-#3768 := (or #3766 #3767)
-#3769 := (not #3768)
-#3774 := (or #2421 #3769)
-#3780 := (not #3774)
-#3781 := (or #1317 #3780)
-#3782 := (not #3781)
-#3787 := (or #2014 #3782)
-#3793 := (not #3787)
-#3794 := (or #1308 #3793)
-#3795 := (not #3794)
-#3800 := (or #1308 #3795)
-#4732 := (iff #3800 #4731)
-#4729 := (iff #3795 #4728)
-#4726 := (iff #3794 #4725)
-#4723 := (iff #3793 #4722)
-#4720 := (iff #3787 #4719)
-#4717 := (iff #3782 #4716)
-#4714 := (iff #3781 #4713)
-#4711 := (iff #3780 #4710)
-#4708 := (iff #3774 #4707)
-#4705 := (iff #3769 #4704)
-#4702 := (iff #3768 #4701)
-#4699 := (iff #3767 #4698)
-#4696 := (iff #3760 #4695)
-#4693 := (iff #3755 #4692)
-#4690 := (iff #3754 #4689)
-#4687 := (iff #3753 #4686)
-#4684 := (iff #3746 #4683)
-#4681 := (iff #3741 #4680)
-#4678 := (iff #3740 #4677)
-#4675 := (iff #3739 #4674)
-#4672 := (iff #3729 #4671)
-#4669 := (iff #3724 #4668)
-#4666 := (iff #3723 #4665)
-#4663 := (iff #3722 #4662)
-#4660 := (iff #3715 #4659)
-#4657 := (iff #3710 #4656)
-#4654 := (iff #3709 #4653)
-#4651 := (iff #3708 #4650)
-#4648 := (iff #3701 #4647)
-#4645 := (iff #3674 #4644)
-#4642 := (iff #3673 #4641)
-#4639 := (iff #3672 #4638)
-#4636 := (iff #3666 #4633)
-#4634 := (iff #3661 #3661)
-#4635 := [refl]: #4634
-#4637 := [quant-intro #4635]: #4636
-#4640 := [monotonicity #4637]: #4639
-#4643 := [monotonicity #4640]: #4642
-#4646 := [monotonicity #4643]: #4645
-#4649 := [monotonicity #4646]: #4648
-#4652 := [monotonicity #4649]: #4651
-#4631 := (iff #3707 #4630)
-#4628 := (iff #3644 #4625)
-#4626 := (iff #3639 #3639)
-#4627 := [refl]: #4626
-#4629 := [quant-intro #4627]: #4628
-#4632 := [monotonicity #4629]: #4631
-#4655 := [monotonicity #4632 #4652]: #4654
-#4658 := [monotonicity #4655]: #4657
-#4623 := (iff #3615 #4622)
-#4620 := (iff #3614 #4619)
-#4617 := (iff #3613 #4616)
-#4614 := (iff #3607 #4611)
-#4612 := (iff #3596 #3596)
-#4613 := [refl]: #4612
-#4615 := [quant-intro #4613]: #4614
-#4618 := [monotonicity #4615]: #4617
-#4621 := [monotonicity #4618]: #4620
-#4624 := [monotonicity #4621]: #4623
-#4661 := [monotonicity #4624 #4658]: #4660
-#4664 := [monotonicity #4661]: #4663
-#4607 := (iff #3721 #4606)
-#4604 := (iff #3592 #4601)
-#4602 := (iff #3581 #3581)
-#4603 := [refl]: #4602
-#4605 := [quant-intro #4603]: #4604
-#4608 := [monotonicity #4605]: #4607
-#4667 := [monotonicity #4608 #4664]: #4666
-#4670 := [monotonicity #4667]: #4669
-#4599 := (iff #3576 #4598)
-#4596 := (iff #3575 #4595)
-#4593 := (iff #3574 #4592)
-#4590 := (iff #3566 #4589)
-#4587 := (iff #3561 #4586)
-#4584 := (iff #3560 #4583)
-#4581 := (iff #3559 #4580)
-#4578 := (iff #3553 #4577)
-#4575 := (iff #3548 #4574)
-#4572 := (iff #3547 #4571)
-#4569 := (iff #3546 #4568)
-#4566 := (iff #3540 #4565)
-#4563 := (iff #3535 #4562)
-#4560 := (iff #3534 #4559)
-#4557 := (iff #3533 #4556)
-#4554 := (iff #3527 #4553)
-#4551 := (iff #3522 #4550)
-#4548 := (iff #3521 #4547)
-#4545 := (iff #3520 #4544)
-#4542 := (iff #3514 #4541)
-#4539 := (iff #3509 #4538)
-#4536 := (iff #3508 #4535)
-#4533 := (iff #3507 #4532)
-#4530 := (iff #3500 #4529)
-#4527 := (iff #3495 #4526)
-#4524 := (iff #3494 #4523)
-#4521 := (iff #3493 #4520)
-#4518 := (iff #3486 #4515)
-#4516 := (iff #3475 #3475)
-#4517 := [refl]: #4516
-#4519 := [quant-intro #4517]: #4518
-#4522 := [monotonicity #4519]: #4521
-#4512 := (iff #3492 #4511)
-#4509 := (iff #3471 #4506)
-#4507 := (iff #3466 #3466)
-#4508 := [refl]: #4507
-#4510 := [quant-intro #4508]: #4509
-#4513 := [monotonicity #4510]: #4512
-#4525 := [monotonicity #4513 #4522]: #4524
-#4528 := [monotonicity #4525]: #4527
-#4531 := [monotonicity #4528]: #4530
-#4534 := [monotonicity #4531]: #4533
-#4504 := (iff #3506 #4503)
-#4501 := (iff #3426 #4498)
-#4499 := (iff #3421 #3421)
-#4500 := [refl]: #4499
-#4502 := [quant-intro #4500]: #4501
-#4505 := [monotonicity #4502]: #4504
-#4537 := [monotonicity #4505 #4534]: #4536
-#4540 := [monotonicity #4537]: #4539
-#4543 := [monotonicity #4540]: #4542
-#4546 := [monotonicity #4543]: #4545
-#4495 := (iff #1501 #4494)
-#4492 := (iff #1498 #4489)
-#4490 := (iff #1495 #1495)
-#4491 := [refl]: #4490
-#4493 := [quant-intro #4491]: #4492
-#4496 := [monotonicity #4493]: #4495
-#4549 := [monotonicity #4496 #4546]: #4548
-#4552 := [monotonicity #4549]: #4551
-#4555 := [monotonicity #4552]: #4554
-#4558 := [monotonicity #4555]: #4557
-#4561 := [monotonicity #4558]: #4560
-#4564 := [monotonicity #4561]: #4563
-#4567 := [monotonicity #4564]: #4566
-#4570 := [monotonicity #4567]: #4569
-#4487 := (iff #824 #4486)
-#4484 := (iff #642 #4481)
-#4482 := (iff #637 #637)
-#4483 := [refl]: #4482
-#4485 := [quant-intro #4483]: #4484
-#4488 := [monotonicity #4485]: #4487
-#4573 := [monotonicity #4488 #4570]: #4572
-#4576 := [monotonicity #4573]: #4575
-#4579 := [monotonicity #4576]: #4578
-#4582 := [monotonicity #4579]: #4581
-#4478 := (iff #1487 #4477)
-#4475 := (iff #1484 #4472)
-#4473 := (iff #1479 #1479)
-#4474 := [refl]: #4473
-#4476 := [quant-intro #4474]: #4475
-#4479 := [monotonicity #4476]: #4478
-#4585 := [monotonicity #4479 #4582]: #4584
-#4588 := [monotonicity #4585]: #4587
-#4591 := [monotonicity #4588]: #4590
-#4594 := [monotonicity #4591]: #4593
-#4470 := (iff #3573 #4469)
-#4467 := (iff #3380 #4464)
-#4465 := (iff #3375 #3375)
-#4466 := [refl]: #4465
-#4468 := [quant-intro #4466]: #4467
-#4471 := [monotonicity #4468]: #4470
-#4462 := (iff #3572 #4461)
-#4459 := (iff #3362 #4456)
-#4457 := (iff #3359 #3359)
-#4458 := [refl]: #4457
-#4460 := [quant-intro #4458]: #4459
-#4463 := [monotonicity #4460]: #4462
-#4452 := (iff #1652 #4451)
-#4449 := (iff #1649 #4446)
-#4447 := (iff #1644 #1644)
-#4448 := [refl]: #4447
-#4450 := [quant-intro #4448]: #4449
-#4453 := [monotonicity #4450]: #4452
-#4597 := [monotonicity #4453 #4463 #4471 #4594]: #4596
-#4600 := [monotonicity #4597]: #4599
-#4673 := [monotonicity #4600 #4670]: #4672
-#4676 := [monotonicity #4673]: #4675
-#4443 := (iff #3738 #4442)
-#4440 := (iff #3352 #4437)
-#4438 := (iff #3347 #3347)
-#4439 := [refl]: #4438
-#4441 := [quant-intro #4439]: #4440
-#4444 := [monotonicity #4441]: #4443
-#4435 := (iff #3737 #4434)
-#4432 := (iff #3324 #4429)
-#4430 := (iff #3319 #3319)
-#4431 := [refl]: #4430
-#4433 := [quant-intro #4431]: #4432
-#4436 := [monotonicity #4433]: #4435
-#4427 := (iff #3736 #4426)
-#4424 := (iff #3296 #4421)
-#4422 := (iff #3291 #3291)
-#4423 := [refl]: #4422
-#4425 := [quant-intro #4423]: #4424
-#4428 := [monotonicity #4425]: #4427
-#4418 := (iff #3735 #4417)
-#4415 := (iff #3273 #4412)
-#4413 := (iff #3268 #3268)
-#4414 := [refl]: #4413
-#4416 := [quant-intro #4414]: #4415
-#4419 := [monotonicity #4416]: #4418
-#4410 := (iff #1849 #4409)
-#4407 := (iff #1846 #4404)
-#4405 := (iff #1843 #1843)
-#4406 := [refl]: #4405
-#4408 := [quant-intro #4406]: #4407
-#4411 := [monotonicity #4408]: #4410
-#4679 := [monotonicity #4411 #4419 #4428 #4436 #4444 #4676]: #4678
-#4682 := [monotonicity #4679]: #4681
-#4401 := (iff #3249 #4400)
-#4398 := (iff #3248 #4397)
-#4395 := (iff #3247 #4394)
-#4392 := (iff #3241 #4389)
-#4390 := (iff #3230 #3230)
-#4391 := [refl]: #4390
-#4393 := [quant-intro #4391]: #4392
-#4396 := [monotonicity #4393]: #4395
-#4399 := [monotonicity #4396]: #4398
-#4402 := [monotonicity #4399]: #4401
-#4685 := [monotonicity #4402 #4682]: #4684
-#4688 := [monotonicity #4685]: #4687
-#4386 := (iff #3752 #4385)
-#4383 := (iff #3226 #4380)
-#4381 := (iff #3221 #3221)
-#4382 := [refl]: #4381
-#4384 := [quant-intro #4382]: #4383
-#4387 := [monotonicity #4384]: #4386
-#4691 := [monotonicity #4387 #4688]: #4690
-#4694 := [monotonicity #4691]: #4693
-#4697 := [monotonicity #4694]: #4696
-#4700 := [monotonicity #4697]: #4699
-#4377 := (iff #3766 #4376)
-#4374 := (iff #3181 #4371)
-#4372 := (iff #3176 #3176)
-#4373 := [refl]: #4372
-#4375 := [quant-intro #4373]: #4374
-#4378 := [monotonicity #4375]: #4377
-#4703 := [monotonicity #4378 #4700]: #4702
-#4706 := [monotonicity #4703]: #4705
-#4709 := [monotonicity #4706]: #4708
-#4712 := [monotonicity #4709]: #4711
-#4368 := (iff #1317 #4367)
-#4365 := (iff #1314 #4362)
-#4363 := (iff #1313 #1313)
-#4364 := [refl]: #4363
-#4366 := [quant-intro #4364]: #4365
-#4369 := [monotonicity #4366]: #4368
-#4715 := [monotonicity #4369 #4712]: #4714
-#4718 := [monotonicity #4715]: #4717
-#4721 := [monotonicity #4718]: #4720
-#4724 := [monotonicity #4721]: #4723
-#4727 := [monotonicity #4724]: #4726
-#4730 := [monotonicity #4727]: #4729
-#4733 := [monotonicity #4730]: #4732
-#2527 := (not #2526)
-#2523 := (not #2522)
-#3081 := (and #2523 #2527)
-#3084 := (not #3081)
-#3101 := (or #3084 #3096)
-#3104 := (not #3101)
-#2536 := (not #251)
-#2546 := (and #2536 #1756)
-#3110 := (or #2546 #3104)
-#3054 := (not #3049)
-#3072 := (and #3054 #3067)
-#3075 := (or #1716 #3072)
-#3078 := (forall (vars (?x64 T2)) #3075)
-#3115 := (and #3078 #3110)
-#2456 := (not #2455)
-#3024 := (and #2456 #3021)
-#3027 := (not #3024)
-#3030 := (forall (vars (?x65 T2)) #3027)
-#2996 := (not #2993)
-#2461 := (not #2460)
-#3036 := (and #2461 #2996 #3030)
-#3118 := (or #3036 #3115)
-#2441 := (not #1670)
-#2444 := (forall (vars (?x41 T2)) #2441)
-#3121 := (and #229 #234 #930 #933 #2444 #3118)
-#2314 := (not #2313)
-#2924 := (and #630 #2314 #2921)
-#2927 := (not #2924)
-#2930 := (forall (vars (?x53 T2)) #2927)
-#2896 := (not #2893)
-#2319 := (not #2318)
-#2939 := (and #1541 #2319 #2896 #2930)
-#2287 := (not #2286)
-#2866 := (and #2287 #2289)
-#2869 := (not #2866)
-#2887 := (or #2869 #2882)
-#2890 := (not #2887)
-#2944 := (or #2890 #2939)
-#2947 := (and #1517 #2944)
-#2258 := (not #2257)
-#2841 := (and #2255 #2258)
-#2844 := (not #2841)
-#2860 := (or #2844 #2855)
-#2863 := (not #2860)
-#2950 := (or #2863 #2947)
-#2953 := (and #1498 #2950)
-#2956 := (or #2235 #2953)
-#2959 := (and #173 #2956)
-#2962 := (or #1492 #2959)
-#2965 := (and #642 #2962)
-#2968 := (or #2836 #2965)
-#2971 := (and #1484 #2968)
-#2974 := (or #2822 #2971)
-#2416 := (not #2415)
-#2413 := (not #2412)
-#2980 := (and #151 #588 #1473 #1631 #1649 #1657 #2413 #2416 #2974)
-#3124 := (or #2980 #3121)
-#2780 := (not #2775)
-#2798 := (and #2162 #2780 #2793)
-#2801 := (or #1413 #2798)
-#2804 := (forall (vars (?x39 T2)) #2801)
-#2735 := (not #2730)
-#2753 := (and #2133 #2735 #2748)
-#2759 := (or #1395 #2753)
-#2764 := (forall (vars (?x32 T2)) #2759)
-#3130 := (and #109 #1821 #1837 #1846 #2764 #2804 #3124)
-#2691 := (not #2688)
-#2098 := (not #2097)
-#2679 := (and #77 #2095 #2098)
-#2682 := (not #2679)
-#2685 := (forall (vars (?x33 T2)) #2682)
-#2086 := (not #2085)
-#2715 := (and #2086 #2685 #2691)
-#3135 := (or #2715 #3130)
-#3138 := (and #1360 #3135)
-#2058 := (not #2057)
-#2667 := (and #2058 #2059)
-#2670 := (not #2667)
-#2673 := (or #2664 #2670)
-#2676 := (not #2673)
-#3141 := (or #2676 #3138)
-#3144 := (and #1334 #3141)
-#2035 := (not #2034)
-#2635 := (and #2033 #2035)
-#2638 := (not #2635)
-#2654 := (or #2638 #2649)
-#2657 := (not #2654)
-#3147 := (or #2657 #3144)
-#3150 := (and #1314 #3147)
-#3153 := (or #2014 #3150)
-#3156 := (and #81 #3153)
-#3159 := (or #1308 #3156)
-#3801 := (iff #3159 #3800)
-#3798 := (iff #3156 #3795)
-#3790 := (and #81 #3787)
-#3796 := (iff #3790 #3795)
-#3797 := [rewrite]: #3796
-#3791 := (iff #3156 #3790)
-#3788 := (iff #3153 #3787)
-#3785 := (iff #3150 #3782)
-#3777 := (and #1314 #3774)
-#3783 := (iff #3777 #3782)
-#3784 := [rewrite]: #3783
-#3778 := (iff #3150 #3777)
-#3775 := (iff #3147 #3774)
-#3772 := (iff #3144 #3769)
-#3763 := (and #3181 #3760)
-#3770 := (iff #3763 #3769)
-#3771 := [rewrite]: #3770
-#3764 := (iff #3144 #3763)
-#3761 := (iff #3141 #3760)
-#3758 := (iff #3138 #3755)
-#3749 := (and #3226 #3746)
-#3756 := (iff #3749 #3755)
-#3757 := [rewrite]: #3756
-#3750 := (iff #3138 #3749)
-#3747 := (iff #3135 #3746)
-#3744 := (iff #3130 #3741)
-#3732 := (and #109 #3273 #3296 #1846 #3324 #3352 #3729)
-#3742 := (iff #3732 #3741)
-#3743 := [rewrite]: #3742
-#3733 := (iff #3130 #3732)
-#3730 := (iff #3124 #3729)
-#3727 := (iff #3121 #3724)
-#3718 := (and #229 #234 #930 #933 #3592 #3715)
-#3725 := (iff #3718 #3724)
-#3726 := [rewrite]: #3725
-#3719 := (iff #3121 #3718)
-#3716 := (iff #3118 #3715)
-#3713 := (iff #3115 #3710)
-#3704 := (and #3644 #3701)
-#3711 := (iff #3704 #3710)
-#3712 := [rewrite]: #3711
-#3705 := (iff #3115 #3704)
-#3702 := (iff #3110 #3701)
-#3699 := (iff #3104 #3698)
-#3696 := (iff #3101 #3693)
-#3679 := (or #2522 #2526)
-#3690 := (or #3679 #3096)
-#3694 := (iff #3690 #3693)
-#3695 := [rewrite]: #3694
-#3691 := (iff #3101 #3690)
-#3688 := (iff #3084 #3679)
-#3680 := (not #3679)
-#3683 := (not #3680)
-#3686 := (iff #3683 #3679)
-#3687 := [rewrite]: #3686
-#3684 := (iff #3084 #3683)
-#3681 := (iff #3081 #3680)
-#3682 := [rewrite]: #3681
-#3685 := [monotonicity #3682]: #3684
-#3689 := [trans #3685 #3687]: #3688
-#3692 := [monotonicity #3689]: #3691
-#3697 := [trans #3692 #3695]: #3696
-#3700 := [monotonicity #3697]: #3699
-#3677 := (iff #2546 #3674)
-#3669 := (and #2536 #3666)
-#3675 := (iff #3669 #3674)
-#3676 := [rewrite]: #3675
-#3670 := (iff #2546 #3669)
-#3667 := (iff #1756 #3666)
-#3664 := (iff #1753 #3661)
-#3647 := (or #1347 #1709)
-#3658 := (or #3647 #1750)
-#3662 := (iff #3658 #3661)
-#3663 := [rewrite]: #3662
-#3659 := (iff #1753 #3658)
-#3656 := (iff #1747 #3647)
-#3648 := (not #3647)
-#3651 := (not #3648)
-#3654 := (iff #3651 #3647)
-#3655 := [rewrite]: #3654
-#3652 := (iff #1747 #3651)
-#3649 := (iff #1744 #3648)
-#3650 := [rewrite]: #3649
-#3653 := [monotonicity #3650]: #3652
-#3657 := [trans #3653 #3655]: #3656
-#3660 := [monotonicity #3657]: #3659
-#3665 := [trans #3660 #3663]: #3664
-#3668 := [quant-intro #3665]: #3667
-#3671 := [monotonicity #3668]: #3670
-#3678 := [trans #3671 #3676]: #3677
-#3703 := [monotonicity #3678 #3700]: #3702
-#3645 := (iff #3078 #3644)
-#3642 := (iff #3075 #3639)
-#3620 := (or #68 #1709)
-#3636 := (or #3620 #3633)
-#3640 := (iff #3636 #3639)
-#3641 := [rewrite]: #3640
-#3637 := (iff #3075 #3636)
-#3634 := (iff #3072 #3633)
-#3635 := [rewrite]: #3634
-#3629 := (iff #1716 #3620)
-#3621 := (not #3620)
-#3624 := (not #3621)
-#3627 := (iff #3624 #3620)
-#3628 := [rewrite]: #3627
-#3625 := (iff #1716 #3624)
-#3622 := (iff #1713 #3621)
-#3623 := [rewrite]: #3622
-#3626 := [monotonicity #3623]: #3625
-#3630 := [trans #3626 #3628]: #3629
-#3638 := [monotonicity #3630 #3635]: #3637
-#3643 := [trans #3638 #3641]: #3642
-#3646 := [quant-intro #3643]: #3645
-#3706 := [monotonicity #3646 #3703]: #3705
-#3714 := [trans #3706 #3712]: #3713
-#3618 := (iff #3036 #3615)
-#3610 := (and #2461 #2996 #3607)
-#3616 := (iff #3610 #3615)
-#3617 := [rewrite]: #3616
-#3611 := (iff #3036 #3610)
-#3608 := (iff #3030 #3607)
-#3605 := (iff #3027 #3596)
-#3597 := (not #3596)
-#3600 := (not #3597)
-#3603 := (iff #3600 #3596)
-#3604 := [rewrite]: #3603
-#3601 := (iff #3027 #3600)
-#3598 := (iff #3024 #3597)
-#3599 := [rewrite]: #3598
-#3602 := [monotonicity #3599]: #3601
-#3606 := [trans #3602 #3604]: #3605
-#3609 := [quant-intro #3606]: #3608
-#3612 := [monotonicity #3609]: #3611
-#3619 := [trans #3612 #3617]: #3618
-#3717 := [monotonicity #3619 #3714]: #3716
-#3593 := (iff #2444 #3592)
-#3590 := (iff #2441 #3581)
-#3582 := (not #3581)
-#3585 := (not #3582)
-#3588 := (iff #3585 #3581)
-#3589 := [rewrite]: #3588
-#3586 := (iff #2441 #3585)
-#3583 := (iff #1670 #3582)
-#3584 := [rewrite]: #3583
-#3587 := [monotonicity #3584]: #3586
-#3591 := [trans #3587 #3589]: #3590
-#3594 := [quant-intro #3591]: #3593
-#3720 := [monotonicity #3594 #3717]: #3719
-#3728 := [trans #3720 #3726]: #3727
-#3579 := (iff #2980 #3576)
-#3569 := (and #151 #588 #3362 #3380 #1649 #1657 #2413 #2416 #3566)
-#3577 := (iff #3569 #3576)
-#3578 := [rewrite]: #3577
-#3570 := (iff #2980 #3569)
-#3567 := (iff #2974 #3566)
-#3564 := (iff #2971 #3561)
-#3556 := (and #1484 #3553)
-#3562 := (iff #3556 #3561)
-#3563 := [rewrite]: #3562
-#3557 := (iff #2971 #3556)
-#3554 := (iff #2968 #3553)
-#3551 := (iff #2965 #3548)
-#3543 := (and #642 #3540)
-#3549 := (iff #3543 #3548)
-#3550 := [rewrite]: #3549
-#3544 := (iff #2965 #3543)
-#3541 := (iff #2962 #3540)
-#3538 := (iff #2959 #3535)
-#3530 := (and #173 #3527)
-#3536 := (iff #3530 #3535)
-#3537 := [rewrite]: #3536
-#3531 := (iff #2959 #3530)
-#3528 := (iff #2956 #3527)
-#3525 := (iff #2953 #3522)
-#3517 := (and #1498 #3514)
-#3523 := (iff #3517 #3522)
-#3524 := [rewrite]: #3523
-#3518 := (iff #2953 #3517)
-#3515 := (iff #2950 #3514)
-#3512 := (iff #2947 #3509)
-#3503 := (and #3426 #3500)
-#3510 := (iff #3503 #3509)
-#3511 := [rewrite]: #3510
-#3504 := (iff #2947 #3503)
-#3501 := (iff #2944 #3500)
-#3498 := (iff #2939 #3495)
-#3489 := (and #3471 #2319 #2896 #3486)
-#3496 := (iff #3489 #3495)
-#3497 := [rewrite]: #3496
-#3490 := (iff #2939 #3489)
-#3487 := (iff #2930 #3486)
-#3484 := (iff #2927 #3475)
-#3476 := (not #3475)
-#3479 := (not #3476)
-#3482 := (iff #3479 #3475)
-#3483 := [rewrite]: #3482
-#3480 := (iff #2927 #3479)
-#3477 := (iff #2924 #3476)
-#3478 := [rewrite]: #3477
-#3481 := [monotonicity #3478]: #3480
-#3485 := [trans #3481 #3483]: #3484
-#3488 := [quant-intro #3485]: #3487
-#3472 := (iff #1541 #3471)
-#3469 := (iff #1538 #3466)
-#3452 := (or #636 #1347)
-#3463 := (or #3452 #1534)
-#3467 := (iff #3463 #3466)
-#3468 := [rewrite]: #3467
-#3464 := (iff #1538 #3463)
-#3461 := (iff #1531 #3452)
-#3453 := (not #3452)
-#3456 := (not #3453)
-#3459 := (iff #3456 #3452)
-#3460 := [rewrite]: #3459
-#3457 := (iff #1531 #3456)
-#3454 := (iff #1526 #3453)
-#3455 := [rewrite]: #3454
-#3458 := [monotonicity #3455]: #3457
-#3462 := [trans #3458 #3460]: #3461
-#3465 := [monotonicity #3462]: #3464
-#3470 := [trans #3465 #3468]: #3469
-#3473 := [quant-intro #3470]: #3472
-#3491 := [monotonicity #3473 #3488]: #3490
-#3499 := [trans #3491 #3497]: #3498
-#3450 := (iff #2890 #3449)
-#3447 := (iff #2887 #3444)
-#3430 := (or #2286 #3429)
-#3441 := (or #3430 #2882)
-#3445 := (iff #3441 #3444)
-#3446 := [rewrite]: #3445
-#3442 := (iff #2887 #3441)
-#3439 := (iff #2869 #3430)
-#3431 := (not #3430)
-#3434 := (not #3431)
-#3437 := (iff #3434 #3430)
-#3438 := [rewrite]: #3437
-#3435 := (iff #2869 #3434)
-#3432 := (iff #2866 #3431)
-#3433 := [rewrite]: #3432
-#3436 := [monotonicity #3433]: #3435
-#3440 := [trans #3436 #3438]: #3439
-#3443 := [monotonicity #3440]: #3442
-#3448 := [trans #3443 #3446]: #3447
-#3451 := [monotonicity #3448]: #3450
-#3502 := [monotonicity #3451 #3499]: #3501
-#3427 := (iff #1517 #3426)
-#3424 := (iff #1512 #3421)
-#3407 := (or #630 #3406)
-#3418 := (or #3407 #1504)
-#3422 := (iff #3418 #3421)
-#3423 := [rewrite]: #3422
-#3419 := (iff #1512 #3418)
-#3416 := (iff #664 #3407)
-#3408 := (not #3407)
-#3411 := (not #3408)
-#3414 := (iff #3411 #3407)
-#3415 := [rewrite]: #3414
-#3412 := (iff #664 #3411)
-#3409 := (iff #656 #3408)
-#3410 := [rewrite]: #3409
-#3413 := [monotonicity #3410]: #3412
-#3417 := [trans #3413 #3415]: #3416
-#3420 := [monotonicity #3417]: #3419
-#3425 := [trans #3420 #3423]: #3424
-#3428 := [quant-intro #3425]: #3427
-#3505 := [monotonicity #3428 #3502]: #3504
-#3513 := [trans #3505 #3511]: #3512
-#3404 := (iff #2863 #3403)
-#3401 := (iff #2860 #3398)
-#3384 := (or #3383 #2257)
-#3395 := (or #3384 #2855)
-#3399 := (iff #3395 #3398)
-#3400 := [rewrite]: #3399
-#3396 := (iff #2860 #3395)
-#3393 := (iff #2844 #3384)
-#3385 := (not #3384)
-#3388 := (not #3385)
-#3391 := (iff #3388 #3384)
-#3392 := [rewrite]: #3391
-#3389 := (iff #2844 #3388)
-#3386 := (iff #2841 #3385)
-#3387 := [rewrite]: #3386
-#3390 := [monotonicity #3387]: #3389
-#3394 := [trans #3390 #3392]: #3393
-#3397 := [monotonicity #3394]: #3396
-#3402 := [trans #3397 #3400]: #3401
-#3405 := [monotonicity #3402]: #3404
-#3516 := [monotonicity #3405 #3513]: #3515
-#3519 := [monotonicity #3516]: #3518
-#3526 := [trans #3519 #3524]: #3525
-#3529 := [monotonicity #3526]: #3528
-#3532 := [monotonicity #3529]: #3531
-#3539 := [trans #3532 #3537]: #3538
-#3542 := [monotonicity #3539]: #3541
-#3545 := [monotonicity #3542]: #3544
-#3552 := [trans #3545 #3550]: #3551
-#3555 := [monotonicity #3552]: #3554
-#3558 := [monotonicity #3555]: #3557
-#3565 := [trans #3558 #3563]: #3564
-#3568 := [monotonicity #3565]: #3567
-#3381 := (iff #1631 #3380)
-#3378 := (iff #1628 #3375)
-#3372 := (or #3355 #1625)
-#3376 := (iff #3372 #3375)
-#3377 := [rewrite]: #3376
-#3373 := (iff #1628 #3372)
-#3370 := (iff #1620 #3355)
-#3365 := (not #3356)
-#3368 := (iff #3365 #3355)
-#3369 := [rewrite]: #3368
-#3366 := (iff #1620 #3365)
-#3357 := (iff #1462 #3356)
-#3358 := [rewrite]: #3357
-#3367 := [monotonicity #3358]: #3366
-#3371 := [trans #3367 #3369]: #3370
-#3374 := [monotonicity #3371]: #3373
-#3379 := [trans #3374 #3377]: #3378
-#3382 := [quant-intro #3379]: #3381
-#3363 := (iff #1473 #3362)
-#3360 := (iff #1468 #3359)
-#3361 := [monotonicity #3358]: #3360
-#3364 := [quant-intro #3361]: #3363
-#3571 := [monotonicity #3364 #3382 #3568]: #3570
-#3580 := [trans #3571 #3578]: #3579
-#3731 := [monotonicity #3580 #3728]: #3730
-#3353 := (iff #2804 #3352)
-#3350 := (iff #2801 #3347)
-#3327 := (or #68 #1406)
-#3344 := (or #3327 #3341)
-#3348 := (iff #3344 #3347)
-#3349 := [rewrite]: #3348
-#3345 := (iff #2801 #3344)
-#3342 := (iff #2798 #3341)
-#3343 := [rewrite]: #3342
-#3336 := (iff #1413 #3327)
-#3328 := (not #3327)
-#3331 := (not #3328)
-#3334 := (iff #3331 #3327)
-#3335 := [rewrite]: #3334
-#3332 := (iff #1413 #3331)
-#3329 := (iff #1410 #3328)
-#3330 := [rewrite]: #3329
-#3333 := [monotonicity #3330]: #3332
-#3337 := [trans #3333 #3335]: #3336
-#3346 := [monotonicity #3337 #3343]: #3345
-#3351 := [trans #3346 #3349]: #3350
-#3354 := [quant-intro #3351]: #3353
-#3325 := (iff #2764 #3324)
-#3322 := (iff #2759 #3319)
-#3299 := (or #68 #1388)
-#3316 := (or #3299 #3313)
-#3320 := (iff #3316 #3319)
-#3321 := [rewrite]: #3320
-#3317 := (iff #2759 #3316)
-#3314 := (iff #2753 #3313)
-#3315 := [rewrite]: #3314
-#3308 := (iff #1395 #3299)
-#3300 := (not #3299)
-#3303 := (not #3300)
-#3306 := (iff #3303 #3299)
-#3307 := [rewrite]: #3306
-#3304 := (iff #1395 #3303)
-#3301 := (iff #1392 #3300)
-#3302 := [rewrite]: #3301
-#3305 := [monotonicity #3302]: #3304
-#3309 := [trans #3305 #3307]: #3308
-#3318 := [monotonicity #3309 #3315]: #3317
-#3323 := [trans #3318 #3321]: #3322
-#3326 := [quant-intro #3323]: #3325
-#3297 := (iff #1837 #3296)
-#3294 := (iff #1832 #3291)
-#3277 := (or #3276 #505)
-#3288 := (or #3277 #1416)
-#3292 := (iff #3288 #3291)
-#3293 := [rewrite]: #3292
-#3289 := (iff #1832 #3288)
-#3286 := (iff #517 #3277)
-#3278 := (not #3277)
-#3281 := (not #3278)
-#3284 := (iff #3281 #3277)
-#3285 := [rewrite]: #3284
-#3282 := (iff #517 #3281)
-#3279 := (iff #511 #3278)
-#3280 := [rewrite]: #3279
-#3283 := [monotonicity #3280]: #3282
-#3287 := [trans #3283 #3285]: #3286
-#3290 := [monotonicity #3287]: #3289
-#3295 := [trans #3290 #3293]: #3294
-#3298 := [quant-intro #3295]: #3297
-#3274 := (iff #1821 #3273)
-#3271 := (iff #1818 #3268)
-#3254 := (or #508 #1347)
-#3265 := (or #3254 #1815)
-#3269 := (iff #3265 #3268)
-#3270 := [rewrite]: #3269
-#3266 := (iff #1818 #3265)
-#3263 := (iff #1812 #3254)
-#3255 := (not #3254)
-#3258 := (not #3255)
-#3261 := (iff #3258 #3254)
-#3262 := [rewrite]: #3261
-#3259 := (iff #1812 #3258)
-#3256 := (iff #1807 #3255)
-#3257 := [rewrite]: #3256
-#3260 := [monotonicity #3257]: #3259
-#3264 := [trans #3260 #3262]: #3263
-#3267 := [monotonicity #3264]: #3266
-#3272 := [trans #3267 #3270]: #3271
-#3275 := [quant-intro #3272]: #3274
-#3734 := [monotonicity #3275 #3298 #3326 #3354 #3731]: #3733
-#3745 := [trans #3734 #3743]: #3744
-#3252 := (iff #2715 #3249)
-#3244 := (and #2086 #3241 #2691)
-#3250 := (iff #3244 #3249)
-#3251 := [rewrite]: #3250
-#3245 := (iff #2715 #3244)
-#3242 := (iff #2685 #3241)
-#3239 := (iff #2682 #3230)
-#3231 := (not #3230)
-#3234 := (not #3231)
-#3237 := (iff #3234 #3230)
-#3238 := [rewrite]: #3237
-#3235 := (iff #2682 #3234)
-#3232 := (iff #2679 #3231)
-#3233 := [rewrite]: #3232
-#3236 := [monotonicity #3233]: #3235
-#3240 := [trans #3236 #3238]: #3239
-#3243 := [quant-intro #3240]: #3242
-#3246 := [monotonicity #3243]: #3245
-#3253 := [trans #3246 #3251]: #3252
-#3748 := [monotonicity #3253 #3745]: #3747
-#3227 := (iff #1360 #3226)
-#3224 := (iff #1357 #3221)
-#3207 := (or #78 #1347)
-#3218 := (or #1342 #3207)
-#3222 := (iff #3218 #3221)
-#3223 := [rewrite]: #3222
-#3219 := (iff #1357 #3218)
-#3216 := (iff #1354 #3207)
-#3208 := (not #3207)
-#3211 := (not #3208)
-#3214 := (iff #3211 #3207)
-#3215 := [rewrite]: #3214
-#3212 := (iff #1354 #3211)
-#3209 := (iff #1351 #3208)
-#3210 := [rewrite]: #3209
-#3213 := [monotonicity #3210]: #3212
-#3217 := [trans #3213 #3215]: #3216
-#3220 := [monotonicity #3217]: #3219
-#3225 := [trans #3220 #3223]: #3224
-#3228 := [quant-intro #3225]: #3227
-#3751 := [monotonicity #3228 #3748]: #3750
-#3759 := [trans #3751 #3757]: #3758
-#3205 := (iff #2676 #3204)
-#3202 := (iff #2673 #3199)
-#3185 := (or #2057 #3184)
-#3196 := (or #2664 #3185)
-#3200 := (iff #3196 #3199)
-#3201 := [rewrite]: #3200
-#3197 := (iff #2673 #3196)
-#3194 := (iff #2670 #3185)
-#3186 := (not #3185)
-#3189 := (not #3186)
-#3192 := (iff #3189 #3185)
-#3193 := [rewrite]: #3192
-#3190 := (iff #2670 #3189)
-#3187 := (iff #2667 #3186)
-#3188 := [rewrite]: #3187
-#3191 := [monotonicity #3188]: #3190
-#3195 := [trans #3191 #3193]: #3194
-#3198 := [monotonicity #3195]: #3197
-#3203 := [trans #3198 #3201]: #3202
-#3206 := [monotonicity #3203]: #3205
-#3762 := [monotonicity #3206 #3759]: #3761
-#3182 := (iff #1334 #3181)
-#3179 := (iff #1329 #3176)
-#3162 := (or #77 #2632)
-#3173 := (or #3162 #1322)
-#3177 := (iff #3173 #3176)
-#3178 := [rewrite]: #3177
-#3174 := (iff #1329 #3173)
-#3171 := (iff #460 #3162)
-#3163 := (not #3162)
-#3166 := (not #3163)
-#3169 := (iff #3166 #3162)
-#3170 := [rewrite]: #3169
-#3167 := (iff #460 #3166)
-#3164 := (iff #454 #3163)
-#3165 := [rewrite]: #3164
-#3168 := [monotonicity #3165]: #3167
-#3172 := [trans #3168 #3170]: #3171
-#3175 := [monotonicity #3172]: #3174
-#3180 := [trans #3175 #3178]: #3179
-#3183 := [quant-intro #3180]: #3182
-#3765 := [monotonicity #3183 #3762]: #3764
-#3773 := [trans #3765 #3771]: #3772
-#2534 := (iff #2657 #2421)
-#2199 := (iff #2654 #2166)
-#2042 := (or #2266 #2034)
-#2297 := (or #2042 #2649)
-#2167 := (iff #2297 #2166)
-#2198 := [rewrite]: #2167
-#2499 := (iff #2654 #2297)
-#2138 := (iff #2638 #2042)
-#1973 := (not #2042)
-#2218 := (not #1973)
-#2018 := (iff #2218 #2042)
-#2137 := [rewrite]: #2018
-#2219 := (iff #2638 #2218)
-#1974 := (iff #2635 #1973)
-#2043 := [rewrite]: #1974
-#2017 := [monotonicity #2043]: #2219
-#2296 := [trans #2017 #2137]: #2138
-#2500 := [monotonicity #2296]: #2499
-#2420 := [trans #2500 #2198]: #2199
-#2535 := [monotonicity #2420]: #2534
-#3776 := [monotonicity #2535 #3773]: #3775
-#3779 := [monotonicity #3776]: #3778
-#3786 := [trans #3779 #3784]: #3785
-#3789 := [monotonicity #3786]: #3788
-#3792 := [monotonicity #3789]: #3791
-#3799 := [trans #3792 #3797]: #3798
-#3802 := [monotonicity #3799]: #3801
-#2513 := (* -1::int #2512)
-#2515 := (+ #2514 #2513)
-#2518 := (+ #2517 #2515)
-#2519 := (>= #2518 0::int)
-#2528 := (and #2527 #2523)
-#2529 := (not #2528)
-#2530 := (or #2529 #2519)
-#2531 := (not #2530)
-#2550 := (or #2531 #2546)
-#2489 := (+ #2488 #1707)
-#2492 := (+ #2491 #2489)
-#2493 := (= #2492 0::int)
-#2494 := (>= #2489 0::int)
-#2495 := (not #2494)
-#2496 := (and #2495 #2493)
-#2501 := (or #1716 #2496)
-#2504 := (forall (vars (?x64 T2)) #2501)
-#2554 := (and #2504 #2550)
-#2453 := (+ #2452 #2450)
-#2454 := (= #2453 0::int)
-#2457 := (and #2456 #2454)
-#2473 := (not #2457)
-#2476 := (forall (vars (?x65 T2)) #2473)
-#2462 := (= ?x64!17 uf_11)
-#2463 := (not #2462)
-#2464 := (and #2463 #2461)
-#2465 := (not #2464)
-#2470 := (not #2465)
-#2480 := (and #2470 #2476)
-#2558 := (or #2480 #2554)
-#2438 := (not #1053)
-#2435 := (not #1071)
-#2432 := (not #1044)
-#2429 := (not #1062)
-#2562 := (and #2429 #2432 #2435 #2438 #2444 #2558)
-#2417 := (and #2416 #2413)
-#2311 := (+ #2310 #2308)
-#2312 := (= #2311 0::int)
-#2315 := (and #630 #2314 #2312)
-#2332 := (not #2315)
-#2335 := (forall (vars (?x53 T2)) #2332)
-#2320 := (= ?x52!15 uf_11)
-#2321 := (not #2320)
-#2322 := (and #2321 #2319)
-#2323 := (not #2322)
-#2329 := (not #2323)
-#2339 := (and #2329 #2335)
-#2344 := (and #1541 #2339)
-#2277 := (* -1::int #2276)
-#2279 := (+ #2278 #2277)
-#2282 := (+ #2281 #2279)
-#2283 := (>= #2282 0::int)
-#2290 := (and #2289 #2287)
-#2291 := (not #2290)
-#2292 := (or #2291 #2283)
-#2293 := (not #2292)
-#2348 := (or #2293 #2344)
-#2352 := (and #1517 #2348)
-#2250 := (* -1::int #2249)
-#2252 := (+ #2251 #2250)
-#2253 := (>= #2252 0::int)
-#2259 := (and #2258 #2255)
-#2260 := (not #2259)
-#2261 := (or #2260 #2253)
-#2262 := (not #2261)
-#2356 := (or #2262 #2352)
-#2360 := (and #1498 #2356)
-#2364 := (or #2235 #2360)
-#2229 := (not #1492)
-#2368 := (and #2229 #2364)
-#2372 := (or #1492 #2368)
-#2376 := (and #642 #2372)
-#2213 := (= #2212 #2211)
-#2214 := (or #2213 #2210)
-#2215 := (not #2214)
-#2380 := (or #2215 #2376)
-#2384 := (and #1484 #2380)
-#2191 := (* -1::int #2190)
-#2193 := (+ #2192 #2191)
-#2194 := (>= #2193 0::int)
-#2195 := (not #2194)
-#2388 := (or #2195 #2384)
-#2177 := (not #876)
-#2425 := (and #2177 #588 #1473 #2388 #1631 #1649 #1657 #2417)
-#2566 := (or #2425 #2562)
-#2154 := (+ #2153 #1404)
-#2157 := (+ #2156 #2154)
-#2158 := (= #2157 0::int)
-#2159 := (>= #2154 0::int)
-#2160 := (not #2159)
-#2163 := (and #2162 #2160 #2158)
-#2168 := (or #1413 #2163)
-#2171 := (forall (vars (?x39 T2)) #2168)
-#2126 := (+ #1386 #2125)
-#2128 := (+ #2127 #2126)
-#2129 := (= #2128 0::int)
-#2130 := (+ #2127 #1386)
-#2131 := (>= #2130 0::int)
-#2132 := (not #2131)
-#2134 := (and #2133 #2132 #2129)
-#2141 := (or #2134 #1395)
-#2144 := (forall (vars (?x32 T2)) #2141)
-#2120 := (not #1854)
-#2591 := (and #2120 #2144 #2171 #2566 #1821 #1837 #1846)
-#2087 := (= ?x32!5 uf_11)
-#2088 := (not #2087)
-#2089 := (and #2088 #2086)
-#2090 := (not #2089)
-#2112 := (not #2090)
-#2099 := (and #77 #2098 #2095)
-#2105 := (not #2099)
-#2108 := (forall (vars (?x33 T2)) #2105)
-#2115 := (and #2108 #2112)
-#2595 := (or #2115 #2591)
-#2599 := (and #1360 #2595)
-#2060 := (and #2059 #2058)
-#2061 := (not #2060)
-#2064 := (+ #2063 #2054)
-#2066 := (+ #2065 #2064)
-#2067 := (>= #2066 0::int)
-#2068 := (or #2067 #2061)
-#2069 := (not #2068)
-#2603 := (or #2069 #2599)
-#2607 := (and #1334 #2603)
-#2029 := (* -1::int #2028)
-#2031 := (+ #2030 #2029)
-#2032 := (>= #2031 0::int)
-#2036 := (and #2035 #2033)
-#2037 := (not #2036)
-#2038 := (or #2037 #2032)
-#2039 := (not #2038)
-#2611 := (or #2039 #2607)
-#2615 := (and #1314 #2611)
-#2619 := (or #2014 #2615)
-#1969 := (not #1308)
-#2623 := (and #1969 #2619)
-#2627 := (or #1308 #2623)
-#3160 := (iff #2627 #3159)
-#3157 := (iff #2623 #3156)
-#3154 := (iff #2619 #3153)
-#3151 := (iff #2615 #3150)
-#3148 := (iff #2611 #3147)
-#3145 := (iff #2607 #3144)
-#3142 := (iff #2603 #3141)
-#3139 := (iff #2599 #3138)
-#3136 := (iff #2595 #3135)
-#3133 := (iff #2591 #3130)
-#3127 := (and #109 #2764 #2804 #3124 #1821 #1837 #1846)
-#3131 := (iff #3127 #3130)
-#3132 := [rewrite]: #3131
-#3128 := (iff #2591 #3127)
-#3125 := (iff #2566 #3124)
-#3122 := (iff #2562 #3121)
-#3119 := (iff #2558 #3118)
-#3116 := (iff #2554 #3115)
-#3113 := (iff #2550 #3110)
-#3107 := (or #3104 #2546)
-#3111 := (iff #3107 #3110)
-#3112 := [rewrite]: #3111
-#3108 := (iff #2550 #3107)
-#3105 := (iff #2531 #3104)
-#3102 := (iff #2530 #3101)
-#3099 := (iff #2519 #3096)
-#3087 := (+ #2514 #2517)
-#3088 := (+ #2513 #3087)
-#3091 := (>= #3088 0::int)
-#3097 := (iff #3091 #3096)
-#3098 := [rewrite]: #3097
-#3092 := (iff #2519 #3091)
-#3089 := (= #2518 #3088)
-#3090 := [rewrite]: #3089
-#3093 := [monotonicity #3090]: #3092
-#3100 := [trans #3093 #3098]: #3099
-#3085 := (iff #2529 #3084)
-#3082 := (iff #2528 #3081)
-#3083 := [rewrite]: #3082
-#3086 := [monotonicity #3083]: #3085
-#3103 := [monotonicity #3086 #3100]: #3102
-#3106 := [monotonicity #3103]: #3105
-#3109 := [monotonicity #3106]: #3108
-#3114 := [trans #3109 #3112]: #3113
-#3079 := (iff #2504 #3078)
-#3076 := (iff #2501 #3075)
-#3073 := (iff #2496 #3072)
-#3070 := (iff #2493 #3067)
-#3057 := (+ #2488 #2491)
-#3058 := (+ #1707 #3057)
-#3061 := (= #3058 0::int)
-#3068 := (iff #3061 #3067)
-#3069 := [rewrite]: #3068
-#3062 := (iff #2493 #3061)
-#3059 := (= #2492 #3058)
-#3060 := [rewrite]: #3059
-#3063 := [monotonicity #3060]: #3062
-#3071 := [trans #3063 #3069]: #3070
-#3055 := (iff #2495 #3054)
-#3052 := (iff #2494 #3049)
-#3041 := (+ #1707 #2488)
-#3044 := (>= #3041 0::int)
-#3050 := (iff #3044 #3049)
-#3051 := [rewrite]: #3050
-#3045 := (iff #2494 #3044)
-#3042 := (= #2489 #3041)
-#3043 := [rewrite]: #3042
-#3046 := [monotonicity #3043]: #3045
-#3053 := [trans #3046 #3051]: #3052
-#3056 := [monotonicity #3053]: #3055
-#3074 := [monotonicity #3056 #3071]: #3073
-#3077 := [monotonicity #3074]: #3076
-#3080 := [quant-intro #3077]: #3079
-#3117 := [monotonicity #3080 #3114]: #3116
-#3039 := (iff #2480 #3036)
-#3002 := (and #2461 #2996)
-#3033 := (and #3002 #3030)
-#3037 := (iff #3033 #3036)
-#3038 := [rewrite]: #3037
-#3034 := (iff #2480 #3033)
-#3031 := (iff #2476 #3030)
-#3028 := (iff #2473 #3027)
-#3025 := (iff #2457 #3024)
-#3022 := (iff #2454 #3021)
-#3019 := (= #2453 #3018)
-#3020 := [rewrite]: #3019
-#3023 := [monotonicity #3020]: #3022
-#3026 := [monotonicity #3023]: #3025
-#3029 := [monotonicity #3026]: #3028
-#3032 := [quant-intro #3029]: #3031
-#3015 := (iff #2470 #3002)
-#3007 := (not #3002)
-#3010 := (not #3007)
-#3013 := (iff #3010 #3002)
-#3014 := [rewrite]: #3013
-#3011 := (iff #2470 #3010)
-#3008 := (iff #2465 #3007)
-#3005 := (iff #2464 #3002)
-#2999 := (and #2996 #2461)
-#3003 := (iff #2999 #3002)
-#3004 := [rewrite]: #3003
-#3000 := (iff #2464 #2999)
-#2997 := (iff #2463 #2996)
-#2994 := (iff #2462 #2993)
-#2995 := [rewrite]: #2994
-#2998 := [monotonicity #2995]: #2997
-#3001 := [monotonicity #2998]: #3000
-#3006 := [trans #3001 #3004]: #3005
-#3009 := [monotonicity #3006]: #3008
-#3012 := [monotonicity #3009]: #3011
-#3016 := [trans #3012 #3014]: #3015
-#3035 := [monotonicity #3016 #3032]: #3034
-#3040 := [trans #3035 #3038]: #3039
-#3120 := [monotonicity #3040 #3117]: #3119
-#2991 := (iff #2438 #933)
-#2992 := [rewrite]: #2991
-#2989 := (iff #2435 #930)
-#2990 := [rewrite]: #2989
-#2987 := (iff #2432 #234)
-#2988 := [rewrite]: #2987
-#2985 := (iff #2429 #229)
-#2986 := [rewrite]: #2985
-#3123 := [monotonicity #2986 #2988 #2990 #2992 #3120]: #3122
-#2983 := (iff #2425 #2980)
-#2977 := (and #151 #588 #1473 #2974 #1631 #1649 #1657 #2417)
-#2981 := (iff #2977 #2980)
-#2982 := [rewrite]: #2981
-#2978 := (iff #2425 #2977)
-#2975 := (iff #2388 #2974)
-#2972 := (iff #2384 #2971)
-#2969 := (iff #2380 #2968)
-#2966 := (iff #2376 #2965)
-#2963 := (iff #2372 #2962)
-#2960 := (iff #2368 #2959)
-#2957 := (iff #2364 #2956)
-#2954 := (iff #2360 #2953)
-#2951 := (iff #2356 #2950)
-#2948 := (iff #2352 #2947)
-#2945 := (iff #2348 #2944)
-#2942 := (iff #2344 #2939)
-#2902 := (and #2319 #2896)
-#2933 := (and #2902 #2930)
-#2936 := (and #1541 #2933)
-#2940 := (iff #2936 #2939)
-#2941 := [rewrite]: #2940
-#2937 := (iff #2344 #2936)
-#2934 := (iff #2339 #2933)
-#2931 := (iff #2335 #2930)
-#2928 := (iff #2332 #2927)
-#2925 := (iff #2315 #2924)
-#2922 := (iff #2312 #2921)
-#2919 := (= #2311 #2918)
-#2920 := [rewrite]: #2919
-#2923 := [monotonicity #2920]: #2922
-#2926 := [monotonicity #2923]: #2925
-#2929 := [monotonicity #2926]: #2928
-#2932 := [quant-intro #2929]: #2931
-#2915 := (iff #2329 #2902)
-#2907 := (not #2902)
-#2910 := (not #2907)
-#2913 := (iff #2910 #2902)
-#2914 := [rewrite]: #2913
-#2911 := (iff #2329 #2910)
-#2908 := (iff #2323 #2907)
-#2905 := (iff #2322 #2902)
-#2899 := (and #2896 #2319)
-#2903 := (iff #2899 #2902)
-#2904 := [rewrite]: #2903
-#2900 := (iff #2322 #2899)
-#2897 := (iff #2321 #2896)
-#2894 := (iff #2320 #2893)
-#2895 := [rewrite]: #2894
-#2898 := [monotonicity #2895]: #2897
-#2901 := [monotonicity #2898]: #2900
-#2906 := [trans #2901 #2904]: #2905
-#2909 := [monotonicity #2906]: #2908
-#2912 := [monotonicity #2909]: #2911
-#2916 := [trans #2912 #2914]: #2915
-#2935 := [monotonicity #2916 #2932]: #2934
-#2938 := [monotonicity #2935]: #2937
-#2943 := [trans #2938 #2941]: #2942
-#2891 := (iff #2293 #2890)
-#2888 := (iff #2292 #2887)
-#2885 := (iff #2283 #2882)
-#2872 := (+ #2278 #2281)
-#2873 := (+ #2277 #2872)
-#2876 := (>= #2873 0::int)
-#2883 := (iff #2876 #2882)
-#2884 := [rewrite]: #2883
-#2877 := (iff #2283 #2876)
-#2874 := (= #2282 #2873)
-#2875 := [rewrite]: #2874
-#2878 := [monotonicity #2875]: #2877
-#2886 := [trans #2878 #2884]: #2885
-#2870 := (iff #2291 #2869)
-#2867 := (iff #2290 #2866)
-#2868 := [rewrite]: #2867
-#2871 := [monotonicity #2868]: #2870
-#2889 := [monotonicity #2871 #2886]: #2888
-#2892 := [monotonicity #2889]: #2891
-#2946 := [monotonicity #2892 #2943]: #2945
-#2949 := [monotonicity #2946]: #2948
-#2864 := (iff #2262 #2863)
-#2861 := (iff #2261 #2860)
-#2858 := (iff #2253 #2855)
-#2847 := (+ #2250 #2251)
-#2850 := (>= #2847 0::int)
-#2856 := (iff #2850 #2855)
-#2857 := [rewrite]: #2856
-#2851 := (iff #2253 #2850)
-#2848 := (= #2252 #2847)
-#2849 := [rewrite]: #2848
-#2852 := [monotonicity #2849]: #2851
-#2859 := [trans #2852 #2857]: #2858
-#2845 := (iff #2260 #2844)
-#2842 := (iff #2259 #2841)
-#2843 := [rewrite]: #2842
-#2846 := [monotonicity #2843]: #2845
-#2862 := [monotonicity #2846 #2859]: #2861
-#2865 := [monotonicity #2862]: #2864
-#2952 := [monotonicity #2865 #2949]: #2951
-#2955 := [monotonicity #2952]: #2954
-#2958 := [monotonicity #2955]: #2957
-#2839 := (iff #2229 #173)
-#2840 := [rewrite]: #2839
-#2961 := [monotonicity #2840 #2958]: #2960
-#2964 := [monotonicity #2961]: #2963
-#2967 := [monotonicity #2964]: #2966
-#2837 := (iff #2215 #2836)
-#2834 := (iff #2214 #2831)
-#2828 := (or #2825 #2210)
-#2832 := (iff #2828 #2831)
-#2833 := [rewrite]: #2832
-#2829 := (iff #2214 #2828)
-#2826 := (iff #2213 #2825)
-#2827 := [rewrite]: #2826
-#2830 := [monotonicity #2827]: #2829
-#2835 := [trans #2830 #2833]: #2834
-#2838 := [monotonicity #2835]: #2837
-#2970 := [monotonicity #2838 #2967]: #2969
-#2973 := [monotonicity #2970]: #2972
-#2823 := (iff #2195 #2822)
-#2820 := (iff #2194 #2817)
-#2809 := (+ #2191 #2192)
-#2812 := (>= #2809 0::int)
-#2818 := (iff #2812 #2817)
-#2819 := [rewrite]: #2818
-#2813 := (iff #2194 #2812)
-#2810 := (= #2193 #2809)
-#2811 := [rewrite]: #2810
-#2814 := [monotonicity #2811]: #2813
-#2821 := [trans #2814 #2819]: #2820
-#2824 := [monotonicity #2821]: #2823
-#2976 := [monotonicity #2824 #2973]: #2975
-#2807 := (iff #2177 #151)
-#2808 := [rewrite]: #2807
-#2979 := [monotonicity #2808 #2976]: #2978
-#2984 := [trans #2979 #2982]: #2983
-#3126 := [monotonicity #2984 #3123]: #3125
-#2805 := (iff #2171 #2804)
-#2802 := (iff #2168 #2801)
-#2799 := (iff #2163 #2798)
-#2796 := (iff #2158 #2793)
-#2783 := (+ #2153 #2156)
-#2784 := (+ #1404 #2783)
-#2787 := (= #2784 0::int)
-#2794 := (iff #2787 #2793)
-#2795 := [rewrite]: #2794
-#2788 := (iff #2158 #2787)
-#2785 := (= #2157 #2784)
-#2786 := [rewrite]: #2785
-#2789 := [monotonicity #2786]: #2788
-#2797 := [trans #2789 #2795]: #2796
-#2781 := (iff #2160 #2780)
-#2778 := (iff #2159 #2775)
-#2767 := (+ #1404 #2153)
-#2770 := (>= #2767 0::int)
-#2776 := (iff #2770 #2775)
-#2777 := [rewrite]: #2776
-#2771 := (iff #2159 #2770)
-#2768 := (= #2154 #2767)
-#2769 := [rewrite]: #2768
-#2772 := [monotonicity #2769]: #2771
-#2779 := [trans #2772 #2777]: #2778
-#2782 := [monotonicity #2779]: #2781
-#2800 := [monotonicity #2782 #2797]: #2799
-#2803 := [monotonicity #2800]: #2802
-#2806 := [quant-intro #2803]: #2805
-#2765 := (iff #2144 #2764)
-#2762 := (iff #2141 #2759)
-#2756 := (or #2753 #1395)
-#2760 := (iff #2756 #2759)
-#2761 := [rewrite]: #2760
-#2757 := (iff #2141 #2756)
-#2754 := (iff #2134 #2753)
-#2751 := (iff #2129 #2748)
-#2738 := (+ #2125 #2127)
-#2739 := (+ #1386 #2738)
-#2742 := (= #2739 0::int)
-#2749 := (iff #2742 #2748)
-#2750 := [rewrite]: #2749
-#2743 := (iff #2129 #2742)
-#2740 := (= #2128 #2739)
-#2741 := [rewrite]: #2740
-#2744 := [monotonicity #2741]: #2743
-#2752 := [trans #2744 #2750]: #2751
-#2736 := (iff #2132 #2735)
-#2733 := (iff #2131 #2730)
-#2722 := (+ #1386 #2127)
-#2725 := (>= #2722 0::int)
-#2731 := (iff #2725 #2730)
-#2732 := [rewrite]: #2731
-#2726 := (iff #2131 #2725)
-#2723 := (= #2130 #2722)
-#2724 := [rewrite]: #2723
-#2727 := [monotonicity #2724]: #2726
-#2734 := [trans #2727 #2732]: #2733
-#2737 := [monotonicity #2734]: #2736
-#2755 := [monotonicity #2737 #2752]: #2754
-#2758 := [monotonicity #2755]: #2757
-#2763 := [trans #2758 #2761]: #2762
-#2766 := [quant-intro #2763]: #2765
-#2720 := (iff #2120 #109)
-#2721 := [rewrite]: #2720
-#3129 := [monotonicity #2721 #2766 #2806 #3126]: #3128
-#3134 := [trans #3129 #3132]: #3133
-#2718 := (iff #2115 #2715)
-#2697 := (and #2086 #2691)
-#2712 := (and #2685 #2697)
-#2716 := (iff #2712 #2715)
-#2717 := [rewrite]: #2716
-#2713 := (iff #2115 #2712)
-#2710 := (iff #2112 #2697)
-#2702 := (not #2697)
-#2705 := (not #2702)
-#2708 := (iff #2705 #2697)
-#2709 := [rewrite]: #2708
-#2706 := (iff #2112 #2705)
-#2703 := (iff #2090 #2702)
-#2700 := (iff #2089 #2697)
-#2694 := (and #2691 #2086)
-#2698 := (iff #2694 #2697)
-#2699 := [rewrite]: #2698
-#2695 := (iff #2089 #2694)
-#2692 := (iff #2088 #2691)
-#2689 := (iff #2087 #2688)
-#2690 := [rewrite]: #2689
-#2693 := [monotonicity #2690]: #2692
-#2696 := [monotonicity #2693]: #2695
-#2701 := [trans #2696 #2699]: #2700
-#2704 := [monotonicity #2701]: #2703
-#2707 := [monotonicity #2704]: #2706
-#2711 := [trans #2707 #2709]: #2710
-#2686 := (iff #2108 #2685)
-#2683 := (iff #2105 #2682)
-#2680 := (iff #2099 #2679)
-#2681 := [rewrite]: #2680
-#2684 := [monotonicity #2681]: #2683
-#2687 := [quant-intro #2684]: #2686
-#2714 := [monotonicity #2687 #2711]: #2713
-#2719 := [trans #2714 #2717]: #2718
-#3137 := [monotonicity #2719 #3134]: #3136
-#3140 := [monotonicity #3137]: #3139
-#2677 := (iff #2069 #2676)
-#2674 := (iff #2068 #2673)
-#2671 := (iff #2061 #2670)
-#2668 := (iff #2060 #2667)
-#2669 := [rewrite]: #2668
-#2672 := [monotonicity #2669]: #2671
-#2665 := (iff #2067 #2664)
-#2662 := (= #2066 #2661)
-#2663 := [rewrite]: #2662
-#2666 := [monotonicity #2663]: #2665
-#2675 := [monotonicity #2666 #2672]: #2674
-#2678 := [monotonicity #2675]: #2677
-#3143 := [monotonicity #2678 #3140]: #3142
-#3146 := [monotonicity #3143]: #3145
-#2658 := (iff #2039 #2657)
-#2655 := (iff #2038 #2654)
-#2652 := (iff #2032 #2649)
-#2641 := (+ #2029 #2030)
-#2644 := (>= #2641 0::int)
-#2650 := (iff #2644 #2649)
-#2651 := [rewrite]: #2650
-#2645 := (iff #2032 #2644)
-#2642 := (= #2031 #2641)
-#2643 := [rewrite]: #2642
-#2646 := [monotonicity #2643]: #2645
-#2653 := [trans #2646 #2651]: #2652
-#2639 := (iff #2037 #2638)
-#2636 := (iff #2036 #2635)
-#2637 := [rewrite]: #2636
-#2640 := [monotonicity #2637]: #2639
-#2656 := [monotonicity #2640 #2653]: #2655
-#2659 := [monotonicity #2656]: #2658
-#3149 := [monotonicity #2659 #3146]: #3148
-#3152 := [monotonicity #3149]: #3151
-#3155 := [monotonicity #3152]: #3154
-#2633 := (iff #1969 #81)
-#2634 := [rewrite]: #2633
-#3158 := [monotonicity #2634 #3155]: #3157
-#3161 := [monotonicity #3158]: #3160
-#1943 := (not #1907)
-#2628 := (~ #1943 #2627)
-#2624 := (not #1904)
-#2625 := (~ #2624 #2623)
-#2620 := (not #1901)
-#2621 := (~ #2620 #2619)
-#2616 := (not #1898)
-#2617 := (~ #2616 #2615)
-#2612 := (not #1895)
-#2613 := (~ #2612 #2611)
-#2608 := (not #1892)
-#2609 := (~ #2608 #2607)
-#2604 := (not #1889)
-#2605 := (~ #2604 #2603)
-#2600 := (not #1886)
-#2601 := (~ #2600 #2599)
-#2596 := (not #1883)
-#2597 := (~ #2596 #2595)
-#2592 := (not #1878)
-#2593 := (~ #2592 #2591)
-#2588 := (not #1849)
-#2589 := (~ #2588 #1846)
-#2586 := (~ #1846 #1846)
-#2584 := (~ #1843 #1843)
-#2585 := [refl]: #2584
-#2587 := [nnf-pos #2585]: #2586
-#2590 := [nnf-neg #2587]: #2589
-#2581 := (not #1840)
-#2582 := (~ #2581 #1837)
-#2579 := (~ #1837 #1837)
-#2577 := (~ #1832 #1832)
-#2578 := [refl]: #2577
-#2580 := [nnf-pos #2578]: #2579
-#2583 := [nnf-neg #2580]: #2582
-#2574 := (not #1824)
-#2575 := (~ #2574 #1821)
-#2572 := (~ #1821 #1821)
-#2570 := (~ #1818 #1818)
-#2571 := [refl]: #2570
-#2573 := [nnf-pos #2571]: #2572
-#2576 := [nnf-neg #2573]: #2575
-#2567 := (not #1801)
-#2568 := (~ #2567 #2566)
-#2563 := (not #1796)
-#2564 := (~ #2563 #2562)
-#2559 := (not #1778)
-#2560 := (~ #2559 #2558)
-#2555 := (not #1775)
-#2556 := (~ #2555 #2554)
-#2551 := (not #1772)
-#2552 := (~ #2551 #2550)
-#2547 := (not #1767)
-#2548 := (~ #2547 #2546)
-#2543 := (not #1759)
-#2544 := (~ #2543 #1756)
-#2541 := (~ #1756 #1756)
-#2539 := (~ #1753 #1753)
-#2540 := [refl]: #2539
-#2542 := [nnf-pos #2540]: #2541
-#2545 := [nnf-neg #2542]: #2544
-#2537 := (~ #2536 #2536)
-#2538 := [refl]: #2537
-#2549 := [nnf-neg #2538 #2545]: #2548
-#2532 := (~ #1759 #2531)
-#2533 := [sk]: #2532
-#2553 := [nnf-neg #2533 #2549]: #2552
-#2507 := (not #1741)
-#2508 := (~ #2507 #2504)
-#2505 := (~ #1738 #2504)
-#2502 := (~ #1735 #2501)
-#2497 := (~ #1732 #2496)
-#2498 := [sk]: #2497
-#2485 := (~ #1716 #1716)
-#2486 := [refl]: #2485
-#2503 := [monotonicity #2486 #2498]: #2502
-#2506 := [nnf-pos #2503]: #2505
-#2509 := [nnf-neg #2506]: #2508
-#2557 := [nnf-neg #2509 #2553]: #2556
-#2483 := (~ #1741 #2480)
-#2458 := (exists (vars (?x65 T2)) #2457)
-#2466 := (or #2465 #2458)
-#2467 := (not #2466)
-#2481 := (~ #2467 #2480)
-#2477 := (not #2458)
-#2478 := (~ #2477 #2476)
-#2474 := (~ #2473 #2473)
-#2475 := [refl]: #2474
-#2479 := [nnf-neg #2475]: #2478
-#2471 := (~ #2470 #2470)
-#2472 := [refl]: #2471
-#2482 := [nnf-neg #2472 #2479]: #2481
-#2468 := (~ #1741 #2467)
-#2469 := [sk]: #2468
-#2484 := [trans #2469 #2482]: #2483
-#2561 := [nnf-neg #2484 #2557]: #2560
-#2445 := (~ #1678 #2444)
-#2442 := (~ #2441 #2441)
-#2443 := [refl]: #2442
-#2446 := [nnf-neg #2443]: #2445
-#2439 := (~ #2438 #2438)
-#2440 := [refl]: #2439
-#2436 := (~ #2435 #2435)
-#2437 := [refl]: #2436
-#2433 := (~ #2432 #2432)
-#2434 := [refl]: #2433
-#2430 := (~ #2429 #2429)
-#2431 := [refl]: #2430
-#2565 := [nnf-neg #2431 #2434 #2437 #2440 #2446 #2561]: #2564
-#2426 := (not #1702)
-#2427 := (~ #2426 #2425)
-#2422 := (not #1678)
-#2423 := (~ #2422 #2417)
-#2418 := (~ #1675 #2417)
-#2419 := [sk]: #2418
-#2424 := [nnf-neg #2419]: #2423
-#2406 := (~ #1657 #1657)
-#2407 := [refl]: #2406
-#2403 := (not #1652)
-#2404 := (~ #2403 #1649)
-#2401 := (~ #1649 #1649)
-#2399 := (~ #1644 #1644)
-#2400 := [refl]: #2399
-#2402 := [nnf-pos #2400]: #2401
-#2405 := [nnf-neg #2402]: #2404
-#2396 := (not #1634)
-#2397 := (~ #2396 #1631)
-#2394 := (~ #1631 #1631)
-#2392 := (~ #1628 #1628)
-#2393 := [refl]: #2392
-#2395 := [nnf-pos #2393]: #2394
-#2398 := [nnf-neg #2395]: #2397
-#2389 := (not #1617)
-#2390 := (~ #2389 #2388)
-#2385 := (not #1614)
-#2386 := (~ #2385 #2384)
-#2381 := (not #1611)
-#2382 := (~ #2381 #2380)
-#2377 := (not #1608)
-#2378 := (~ #2377 #2376)
-#2373 := (not #1605)
-#2374 := (~ #2373 #2372)
-#2369 := (not #1602)
-#2370 := (~ #2369 #2368)
-#2365 := (not #1599)
-#2366 := (~ #2365 #2364)
-#2361 := (not #1596)
-#2362 := (~ #2361 #2360)
-#2357 := (not #1593)
-#2358 := (~ #2357 #2356)
-#2353 := (not #1590)
-#2354 := (~ #2353 #2352)
-#2349 := (not #1587)
-#2350 := (~ #2349 #2348)
-#2345 := (not #1584)
-#2346 := (~ #2345 #2344)
-#2326 := (not #1581)
-#2342 := (~ #2326 #2339)
-#2316 := (exists (vars (?x53 T2)) #2315)
-#2324 := (or #2323 #2316)
-#2325 := (not #2324)
-#2340 := (~ #2325 #2339)
-#2336 := (not #2316)
-#2337 := (~ #2336 #2335)
-#2333 := (~ #2332 #2332)
-#2334 := [refl]: #2333
-#2338 := [nnf-neg #2334]: #2337
-#2330 := (~ #2329 #2329)
-#2331 := [refl]: #2330
-#2341 := [nnf-neg #2331 #2338]: #2340
-#2327 := (~ #2326 #2325)
-#2328 := [sk]: #2327
-#2343 := [trans #2328 #2341]: #2342
-#2302 := (not #1544)
-#2303 := (~ #2302 #1541)
-#2300 := (~ #1541 #1541)
-#2298 := (~ #1538 #1538)
-#2299 := [refl]: #2298
-#2301 := [nnf-pos #2299]: #2300
-#2304 := [nnf-neg #2301]: #2303
-#2347 := [nnf-neg #2304 #2343]: #2346
-#2294 := (~ #1544 #2293)
-#2295 := [sk]: #2294
-#2351 := [nnf-neg #2295 #2347]: #2350
-#2271 := (not #1520)
-#2272 := (~ #2271 #1517)
-#2269 := (~ #1517 #1517)
-#2267 := (~ #1512 #1512)
-#2268 := [refl]: #2267
-#2270 := [nnf-pos #2268]: #2269
-#2273 := [nnf-neg #2270]: #2272
-#2355 := [nnf-neg #2273 #2351]: #2354
-#2263 := (~ #1520 #2262)
-#2264 := [sk]: #2263
-#2359 := [nnf-neg #2264 #2355]: #2358
-#2244 := (not #1501)
-#2245 := (~ #2244 #1498)
-#2242 := (~ #1498 #1498)
-#2240 := (~ #1495 #1495)
-#2241 := [refl]: #2240
-#2243 := [nnf-pos #2241]: #2242
-#2246 := [nnf-neg #2243]: #2245
-#2363 := [nnf-neg #2246 #2359]: #2362
-#2236 := (~ #1501 #2235)
-#2237 := [sk]: #2236
-#2367 := [nnf-neg #2237 #2363]: #2366
-#2230 := (~ #2229 #2229)
-#2231 := [refl]: #2230
-#2371 := [nnf-neg #2231 #2367]: #2370
-#2227 := (~ #1492 #1492)
-#2228 := [refl]: #2227
-#2375 := [nnf-neg #2228 #2371]: #2374
-#2224 := (not #824)
-#2225 := (~ #2224 #642)
-#2222 := (~ #642 #642)
-#2220 := (~ #637 #637)
-#2221 := [refl]: #2220
-#2223 := [nnf-pos #2221]: #2222
-#2226 := [nnf-neg #2223]: #2225
-#2379 := [nnf-neg #2226 #2375]: #2378
-#2216 := (~ #824 #2215)
-#2217 := [sk]: #2216
-#2383 := [nnf-neg #2217 #2379]: #2382
-#2204 := (not #1487)
-#2205 := (~ #2204 #1484)
-#2202 := (~ #1484 #1484)
-#2200 := (~ #1479 #1479)
-#2201 := [refl]: #2200
-#2203 := [nnf-pos #2201]: #2202
-#2206 := [nnf-neg #2203]: #2205
-#2387 := [nnf-neg #2206 #2383]: #2386
-#2196 := (~ #1487 #2195)
-#2197 := [sk]: #2196
-#2391 := [nnf-neg #2197 #2387]: #2390
-#2186 := (not #1476)
-#2187 := (~ #2186 #1473)
-#2184 := (~ #1473 #1473)
-#2182 := (~ #1468 #1468)
-#2183 := [refl]: #2182
-#2185 := [nnf-pos #2183]: #2184
-#2188 := [nnf-neg #2185]: #2187
-#2180 := (~ #588 #588)
-#2181 := [refl]: #2180
-#2178 := (~ #2177 #2177)
-#2179 := [refl]: #2178
-#2428 := [nnf-neg #2179 #2181 #2188 #2391 #2398 #2405 #2407 #2424]: #2427
-#2569 := [nnf-neg #2428 #2565]: #2568
-#2174 := (not #1446)
-#2175 := (~ #2174 #2171)
-#2172 := (~ #1443 #2171)
-#2169 := (~ #1440 #2168)
-#2164 := (~ #1437 #2163)
-#2165 := [sk]: #2164
-#2150 := (~ #1413 #1413)
-#2151 := [refl]: #2150
-#2170 := [monotonicity #2151 #2165]: #2169
-#2173 := [nnf-pos #2170]: #2172
-#2176 := [nnf-neg #2173]: #2175
-#2147 := (not #1857)
-#2148 := (~ #2147 #2144)
-#2145 := (~ #1401 #2144)
-#2142 := (~ #1398 #2141)
-#2139 := (~ #1395 #1395)
-#2140 := [refl]: #2139
-#2135 := (~ #1383 #2134)
-#2136 := [sk]: #2135
-#2143 := [monotonicity #2136 #2140]: #2142
-#2146 := [nnf-pos #2143]: #2145
-#2149 := [nnf-neg #2146]: #2148
-#2121 := (~ #2120 #2120)
-#2122 := [refl]: #2121
-#2594 := [nnf-neg #2122 #2149 #2176 #2569 #2576 #2583 #2590]: #2593
-#2118 := (~ #1857 #2115)
-#2100 := (exists (vars (?x33 T2)) #2099)
-#2101 := (or #2100 #2090)
-#2102 := (not #2101)
-#2116 := (~ #2102 #2115)
-#2113 := (~ #2112 #2112)
-#2114 := [refl]: #2113
-#2109 := (not #2100)
-#2110 := (~ #2109 #2108)
-#2106 := (~ #2105 #2105)
-#2107 := [refl]: #2106
-#2111 := [nnf-neg #2107]: #2110
-#2117 := [nnf-neg #2111 #2114]: #2116
-#2103 := (~ #1857 #2102)
-#2104 := [sk]: #2103
-#2119 := [trans #2104 #2117]: #2118
-#2598 := [nnf-neg #2119 #2594]: #2597
-#2078 := (not #1363)
-#2079 := (~ #2078 #1360)
-#2076 := (~ #1360 #1360)
-#2074 := (~ #1357 #1357)
-#2075 := [refl]: #2074
-#2077 := [nnf-pos #2075]: #2076
-#2080 := [nnf-neg #2077]: #2079
-#2602 := [nnf-neg #2080 #2598]: #2601
-#2070 := (~ #1363 #2069)
-#2071 := [sk]: #2070
-#2606 := [nnf-neg #2071 #2602]: #2605
-#2048 := (not #1337)
-#2049 := (~ #2048 #1334)
-#2046 := (~ #1334 #1334)
-#2044 := (~ #1329 #1329)
-#2045 := [refl]: #2044
-#2047 := [nnf-pos #2045]: #2046
-#2050 := [nnf-neg #2047]: #2049
-#2610 := [nnf-neg #2050 #2606]: #2609
-#2040 := (~ #1337 #2039)
-#2041 := [sk]: #2040
-#2614 := [nnf-neg #2041 #2610]: #2613
-#2023 := (not #1317)
-#2024 := (~ #2023 #1314)
-#2021 := (~ #1314 #1314)
-#2019 := (~ #1313 #1313)
-#2020 := [refl]: #2019
-#2022 := [nnf-pos #2020]: #2021
-#2025 := [nnf-neg #2022]: #2024
-#2618 := [nnf-neg #2025 #2614]: #2617
-#2015 := (~ #1317 #2014)
-#2016 := [sk]: #2015
-#2622 := [nnf-neg #2016 #2618]: #2621
-#1970 := (~ #1969 #1969)
-#2010 := [refl]: #1970
-#2626 := [nnf-neg #2010 #2622]: #2625
-#2008 := (~ #1308 #1308)
-#2009 := [refl]: #2008
-#2629 := [nnf-neg #2009 #2626]: #2628
-#1944 := [not-or-elim #1940]: #1943
-#2630 := [mp~ #1944 #2629]: #2627
-#2631 := [mp #2630 #3161]: #3159
-#3803 := [mp #2631 #3802]: #3800
-#4734 := [mp #3803 #4733]: #4731
-#7295 := [unit-resolution #4734 #5487]: #4728
-#4058 := (or #4725 #4719)
-#4059 := [def-axiom]: #4058
-#7296 := [unit-resolution #4059 #7295]: #4719
-#373 := (<= uf_9 0::int)
-#374 := (not #373)
-#57 := (< 0::int uf_9)
-#375 := (iff #57 #374)
-#376 := [rewrite]: #375
-#369 := [asserted]: #57
-#377 := [mp #369 #376]: #374
-#5901 := (* -1::int #2012)
-#5891 := (+ uf_9 #5901)
-#5892 := (<= #5891 0::int)
-#5472 := (= uf_9 #2012)
-#5745 := (= uf_11 ?x27!0)
-#5918 := (not #5745)
-#5916 := (= #2012 0::int)
-#5836 := (not #5916)
-#5835 := [hypothesis]: #2014
-#5837 := (or #5836 #2013)
-#5896 := [th-lemma]: #5837
-#5922 := [unit-resolution #5896 #5835]: #5836
-#5981 := (or #5347 #5918 #5916)
-#5477 := (= ?x27!0 uf_11)
-#5917 := (not #5477)
-#5890 := (or #5917 #5916)
-#5982 := (or #5347 #5890)
-#5987 := (iff #5982 #5981)
-#5915 := (or #5918 #5916)
-#5984 := (or #5347 #5915)
-#5985 := (iff #5984 #5981)
-#5986 := [rewrite]: #5985
-#6000 := (iff #5982 #5984)
-#5921 := (iff #5890 #5915)
-#5919 := (iff #5917 #5918)
-#5743 := (iff #5477 #5745)
-#5746 := [rewrite]: #5743
-#5920 := [monotonicity #5746]: #5919
-#5980 := [monotonicity #5920]: #5921
-#5979 := [monotonicity #5980]: #6000
-#5988 := [trans #5979 #5986]: #5987
-#5983 := [quant-inst]: #5982
-#6010 := [mp #5983 #5988]: #5981
-#5923 := [unit-resolution #6010 #4740 #5922]: #5918
-#5748 := (or #5472 #5745)
-#4356 := (forall (vars (?x25 T2)) (:pat #4355) #443)
-#4359 := (iff #448 #4356)
-#4357 := (iff #443 #443)
-#4358 := [refl]: #4357
-#4360 := [quant-intro #4358]: #4359
-#1967 := (~ #448 #448)
-#2005 := (~ #443 #443)
-#2006 := [refl]: #2005
-#1968 := [nnf-pos #2006]: #1967
-#1942 := [not-or-elim #1940]: #448
-#2007 := [mp~ #1942 #1968]: #448
-#4361 := [mp #2007 #4360]: #4356
-#5821 := (not #4356)
-#5827 := (or #5821 #5472 #5745)
-#5737 := (or #5477 #5472)
-#5828 := (or #5821 #5737)
-#5894 := (iff #5828 #5827)
-#5830 := (or #5821 #5748)
-#5846 := (iff #5830 #5827)
-#5847 := [rewrite]: #5846
-#5826 := (iff #5828 #5830)
-#5756 := (iff #5737 #5748)
-#5736 := (or #5745 #5472)
-#5752 := (iff #5736 #5748)
-#5753 := [rewrite]: #5752
-#5747 := (iff #5737 #5736)
-#5744 := [monotonicity #5746]: #5747
-#5834 := [trans #5744 #5753]: #5756
-#5831 := [monotonicity #5834]: #5826
-#5895 := [trans #5831 #5847]: #5894
-#5829 := [quant-inst]: #5828
-#5900 := [mp #5829 #5895]: #5827
-#5924 := [unit-resolution #5900 #4361]: #5748
-#5989 := [unit-resolution #5924 #5923]: #5472
-#6012 := (not #5472)
-#6013 := (or #6012 #5892)
-#6014 := [th-lemma]: #6013
-#6042 := [unit-resolution #6014 #5989]: #5892
-#6011 := (<= #2012 0::int)
-#6043 := (or #6011 #2013)
-#6044 := [th-lemma]: #6043
-#6045 := [unit-resolution #6044 #5835]: #6011
-#6046 := [th-lemma #6045 #6042 #377]: false
-#6041 := [lemma #6046]: #2013
-#4053 := (or #4722 #2014 #4716)
-#4054 := [def-axiom]: #4053
-#7297 := [unit-resolution #4054 #6041 #7296]: #4716
-#4077 := (or #4713 #4707)
-#4078 := [def-axiom]: #4077
-#7298 := [unit-resolution #4078 #7297]: #4707
-#4071 := (or #4710 #2421 #4704)
-#4073 := [def-axiom]: #4071
-#7299 := [unit-resolution #4073 #7298 #7294]: #4704
-#4098 := (or #4701 #4695)
-#4099 := [def-axiom]: #4098
-#7300 := [unit-resolution #4099 #7299]: #4695
-#6817 := [hypothesis]: #2059
-#6051 := (or #5709 #3184)
-#6081 := [quant-inst]: #6051
-#6818 := [unit-resolution #6081 #4354 #6817]: false
-#6839 := [lemma #6818]: #3184
-#3960 := (or #3199 #2059)
-#3964 := [def-axiom]: #3960
-#7301 := [unit-resolution #3964 #6839]: #3199
-#4094 := (or #4698 #3204 #4692)
-#4095 := [def-axiom]: #4094
-#7302 := [unit-resolution #4095 #7301 #7300]: #4692
-#4108 := (or #4689 #4683)
-#4129 := [def-axiom]: #4108
-#7303 := [unit-resolution #4129 #7302]: #4683
-#6633 := (= uf_9 #2082)
-#6706 := (not #6633)
-#6684 := [hypothesis]: #4400
-#4274 := (or #4397 #2086)
-#3948 := [def-axiom]: #4274
-#6685 := [unit-resolution #3948 #6684]: #2086
-#6798 := (or #6706 #2085)
-#6840 := [th-lemma]: #6798
-#6835 := [unit-resolution #6840 #6685]: #6706
-#3949 := (or #4397 #2691)
-#4281 := [def-axiom]: #3949
-#6841 := [unit-resolution #4281 #6684]: #2691
-#6695 := (or #5821 #2688 #6633)
-#6680 := (or #2087 #6633)
-#6696 := (or #5821 #6680)
-#6732 := (iff #6696 #6695)
-#6548 := (or #2688 #6633)
-#6694 := (or #5821 #6548)
-#6699 := (iff #6694 #6695)
-#6705 := [rewrite]: #6699
-#6697 := (iff #6696 #6694)
-#6608 := (iff #6680 #6548)
-#6665 := [monotonicity #2690]: #6608
-#6698 := [monotonicity #6665]: #6697
-#6728 := [trans #6698 #6705]: #6732
-#6547 := [quant-inst]: #6696
-#6734 := [mp #6547 #6728]: #6695
-#6842 := [unit-resolution #6734 #4361 #6841 #6835]: false
-#6843 := [lemma #6842]: #4397
-#4116 := (or #4686 #4400 #4680)
-#4117 := [def-axiom]: #4116
-#7304 := [unit-resolution #4117 #6843 #7303]: #4680
-#4149 := (or #4677 #4404)
-#4145 := [def-axiom]: #4149
-#7305 := [unit-resolution #4145 #7304]: #4404
-#24124 := (or #4409 #20405)
-#25438 := [quant-inst]: #24124
-#29563 := [unit-resolution #25438 #7305]: #20405
-#15997 := (* -1::int #15996)
-#15993 := (uf_1 #15992 ?x52!15)
-#15994 := (uf_10 #15993)
-#15995 := (* -1::int #15994)
-#16012 := (+ #15995 #15997)
-#15362 := (uf_4 uf_14 ?x52!15)
-#16013 := (+ #15362 #16012)
-#22006 := (>= #16013 0::int)
-#16016 := (= #16013 0::int)
-#16019 := (not #16016)
-#16004 := (uf_6 uf_15 #15992)
-#16005 := (= uf_8 #16004)
-#16006 := (not #16005)
-#16002 := (+ #15362 #15997)
-#16003 := (<= #16002 0::int)
-#16025 := (or #16003 #16006 #16019)
-#16030 := (not #16025)
-#15397 := (* -1::int #15362)
-#16009 := (+ uf_9 #15397)
-#16010 := (<= #16009 0::int)
-#34324 := (not #16010)
-#15398 := (+ #2306 #15397)
-#14218 := (>= #15398 0::int)
-#15367 := (= #2306 #15362)
-decl uf_3 :: (-> T1 T2)
-#20604 := (uf_3 #15993)
-#32578 := (uf_6 uf_15 #20604)
-#32576 := (= uf_8 #32578)
-#5319 := (uf_6 #150 uf_16)
-#5314 := (= uf_8 #5319)
-decl uf_2 :: (-> T1 T2)
-#6008 := (uf_1 uf_16 uf_11)
-#7128 := (uf_2 #6008)
-#32602 := (= #7128 #20604)
-#32591 := (ite #32602 #5314 #32576)
-#7203 := (uf_7 uf_15 #7128 #5319)
-#32554 := (uf_6 #7203 #20604)
-#32538 := (= uf_8 #32554)
-#32564 := (iff #32538 #32591)
-#30 := (:var 1 T5)
-#20 := (:var 2 T2)
-#29 := (:var 3 T4)
-#31 := (uf_7 #29 #20 #30)
-#32 := (uf_6 #31 #11)
-#4314 := (pattern #32)
-#36 := (uf_6 #29 #11)
-#335 := (= uf_8 #36)
-#35 := (= #30 uf_8)
-#24 := (= #11 #20)
-#338 := (ite #24 #35 #335)
-#34 := (= #32 uf_8)
-#341 := (iff #34 #338)
-#4315 := (forall (vars (?x10 T4) (?x11 T2) (?x12 T5) (?x13 T2)) (:pat #4314) #341)
-#344 := (forall (vars (?x10 T4) (?x11 T2) (?x12 T5) (?x13 T2)) #341)
-#4318 := (iff #344 #4315)
-#4316 := (iff #341 #341)
-#4317 := [refl]: #4316
-#4319 := [quant-intro #4317]: #4318
-#1953 := (~ #344 #344)
-#1989 := (~ #341 #341)
-#1990 := [refl]: #1989
-#1954 := [nnf-pos #1990]: #1953
-#37 := (= #36 uf_8)
-#38 := (ite #24 #35 #37)
-#39 := (iff #34 #38)
-#40 := (forall (vars (?x10 T4) (?x11 T2) (?x12 T5) (?x13 T2)) #39)
-#345 := (iff #40 #344)
-#342 := (iff #39 #341)
-#339 := (iff #38 #338)
-#336 := (iff #37 #335)
-#337 := [rewrite]: #336
-#340 := [monotonicity #337]: #339
-#343 := [monotonicity #340]: #342
-#346 := [quant-intro #343]: #345
-#333 := [asserted]: #40
-#349 := [mp #333 #346]: #344
-#1991 := [mp~ #349 #1954]: #344
-#4320 := [mp #1991 #4319]: #4315
-#7026 := (not #4315)
-#32561 := (or #7026 #32564)
-#6089 := (= #5319 uf_8)
-#32580 := (= #20604 #7128)
-#32553 := (ite #32580 #6089 #32576)
-#32556 := (= #32554 uf_8)
-#32579 := (iff #32556 #32553)
-#32603 := (or #7026 #32579)
-#32548 := (iff #32603 #32561)
-#32606 := (iff #32561 #32561)
-#32631 := [rewrite]: #32606
-#32629 := (iff #32579 #32564)
-#32535 := (iff #32553 #32591)
-#6101 := (iff #6089 #5314)
-#6102 := [rewrite]: #6101
-#32601 := (iff #32580 #32602)
-#32563 := [rewrite]: #32601
-#32560 := [monotonicity #32563 #6102]: #32535
-#32537 := (iff #32556 #32538)
-#32557 := [rewrite]: #32537
-#32565 := [monotonicity #32557 #32560]: #32629
-#32587 := [monotonicity #32565]: #32548
-#32604 := [trans #32587 #32631]: #32548
-#32558 := [quant-inst]: #32603
-#32623 := [mp #32558 #32604]: #32561
-#32954 := [unit-resolution #32623 #4320]: #32564
-#30313 := (not #32538)
-#8488 := (uf_6 uf_17 ?x52!15)
-#9319 := (= uf_8 #8488)
-#9846 := (not #9319)
-#32968 := (iff #9846 #30313)
-#32955 := (iff #9319 #32538)
-#32985 := (iff #32538 #9319)
-#32980 := (= #32554 #8488)
-#32983 := (= #20604 ?x52!15)
-#20605 := (= ?x52!15 #20604)
-#12 := (uf_1 #10 #11)
-#4294 := (pattern #12)
-#13 := (uf_3 #12)
-#317 := (= #11 #13)
-#4295 := (forall (vars (?x2 T2) (?x3 T2)) (:pat #4294) #317)
-#321 := (forall (vars (?x2 T2) (?x3 T2)) #317)
-#4298 := (iff #321 #4295)
-#4296 := (iff #317 #317)
-#4297 := [refl]: #4296
-#4299 := [quant-intro #4297]: #4298
-#1948 := (~ #321 #321)
-#1980 := (~ #317 #317)
-#1981 := [refl]: #1980
-#1946 := [nnf-pos #1981]: #1948
-#14 := (= #13 #11)
-#15 := (forall (vars (?x2 T2) (?x3 T2)) #14)
-#322 := (iff #15 #321)
-#319 := (iff #14 #317)
-#320 := [rewrite]: #319
-#323 := [quant-intro #320]: #322
-#316 := [asserted]: #15
-#326 := [mp #316 #323]: #321
-#1982 := [mp~ #326 #1946]: #321
-#4300 := [mp #1982 #4299]: #4295
-#5378 := (not #4295)
-#27981 := (or #5378 #20605)
-#27945 := [quant-inst]: #27981
-#32953 := [unit-resolution #27945 #4300]: #20605
-#32984 := [symm #32953]: #32983
-#8596 := (= #7203 uf_17)
-#8594 := (= #150 uf_17)
-#4147 := (or #4677 #109)
-#4148 := [def-axiom]: #4147
-#7307 := [unit-resolution #4148 #7304]: #109
-#4150 := (or #4677 #4412)
-#4130 := [def-axiom]: #4150
-#8027 := [unit-resolution #4130 #7304]: #4412
-#4137 := (or #4677 #4437)
-#4132 := [def-axiom]: #4137
-#8030 := [unit-resolution #4132 #7304]: #4437
-#5284 := (or #4665 #4442 #4417 #1854)
-#4776 := (uf_4 uf_14 ?x64!17)
-#4777 := (* -1::int #4776)
-#4778 := (+ uf_9 #4777)
-#4779 := (<= #4778 0::int)
-#4845 := (?x40!7 ?x64!17)
-#4941 := (uf_6 uf_15 #4845)
-#4942 := (= uf_8 #4941)
-#4943 := (not #4942)
-#4848 := (uf_4 uf_14 #4845)
-#4849 := (* -1::int #4848)
-#4939 := (+ #4776 #4849)
-#4940 := (<= #4939 0::int)
-#4846 := (uf_1 #4845 ?x64!17)
-#4847 := (uf_10 #4846)
-#4842 := (* -1::int #4847)
-#4926 := (+ #4842 #4849)
-#4927 := (+ #4776 #4926)
-#4930 := (= #4927 0::int)
-#4932 := (not #4930)
-#5006 := (or #4932 #4940 #4943)
-#5242 := [hypothesis]: #4668
-#4159 := (or #4665 #933)
-#4154 := [def-axiom]: #4159
-#5243 := [unit-resolution #4154 #5242]: #933
-#4134 := (or #4665 #4659)
-#4135 := [def-axiom]: #4134
-#5244 := [unit-resolution #4135 #5242]: #4659
-#5245 := [hypothesis]: #109
-#5247 := (= #250 #108)
-#5246 := [symm #5243]: #231
-#5248 := [monotonicity #5246]: #5247
-#5249 := [trans #5248 #5245]: #251
-#4193 := (or #4641 #2536)
-#4198 := [def-axiom]: #4193
-#5250 := [unit-resolution #4198 #5249]: #4641
-#5087 := [hypothesis]: #4412
-#4160 := (or #4665 #4601)
-#4133 := [def-axiom]: #4160
-#5230 := [unit-resolution #4133 #5242]: #4601
-#5100 := (or #3693 #4417 #4606 #1053)
-#4862 := (uf_4 uf_14 ?x67!19)
-#3931 := (uf_4 uf_14 ?x66!20)
-#3932 := (* -1::int #3931)
-#4955 := (+ #3932 #4862)
-#4956 := (+ #2517 #4955)
-#4959 := (>= #4956 0::int)
-#4866 := (uf_6 uf_15 ?x67!19)
-#4867 := (= uf_8 #4866)
-#4863 := (* -1::int #4862)
-#4864 := (+ uf_9 #4863)
-#4865 := (<= #4864 0::int)
-#5068 := (not #4865)
-#5072 := [hypothesis]: #3698
-#4189 := (or #3693 #2523)
-#4186 := [def-axiom]: #4189
-#5073 := [unit-resolution #4186 #5072]: #2523
-#5061 := (+ #2514 #4863)
-#5063 := (>= #5061 0::int)
-#5060 := (= #2514 #4862)
-#5075 := (= #4862 #2514)
-#5074 := [hypothesis]: #933
-#5076 := [monotonicity #5074]: #5075
-#5077 := [symm #5076]: #5060
-#5078 := (not #5060)
-#5079 := (or #5078 #5063)
-#5080 := [th-lemma]: #5079
-#5081 := [unit-resolution #5080 #5077]: #5063
-#5069 := (not #5063)
-#5070 := (or #5068 #5069 #2522)
-#5064 := [hypothesis]: #2523
-#5065 := [hypothesis]: #4865
-#5066 := [hypothesis]: #5063
-#5067 := [th-lemma #5066 #5065 #5064]: false
-#5071 := [lemma #5067]: #5070
-#5082 := [unit-resolution #5071 #5081 #5073]: #5068
-#4869 := (or #4865 #4867)
-#5083 := [hypothesis]: #4601
-#4872 := (or #4606 #4865 #4867)
-#4868 := (or #4867 #4865)
-#4873 := (or #4606 #4868)
-#4880 := (iff #4873 #4872)
-#4875 := (or #4606 #4869)
-#4878 := (iff #4875 #4872)
-#4879 := [rewrite]: #4878
-#4876 := (iff #4873 #4875)
-#4870 := (iff #4868 #4869)
-#4871 := [rewrite]: #4870
-#4877 := [monotonicity #4871]: #4876
-#4881 := [trans #4877 #4879]: #4880
-#4874 := [quant-inst]: #4873
-#4882 := [mp #4874 #4881]: #4872
-#5084 := [unit-resolution #4882 #5083]: #4869
-#5085 := [unit-resolution #5084 #5082]: #4867
-#4953 := (not #4867)
-#5088 := (or #4953 #4959)
-#4190 := (or #3693 #2527)
-#4170 := [def-axiom]: #4190
-#5086 := [unit-resolution #4170 #5072]: #2527
-#4970 := (or #4417 #2526 #4953 #4959)
-#4948 := (+ #4862 #3932)
-#4949 := (+ #2517 #4948)
-#4952 := (>= #4949 0::int)
-#4954 := (or #4953 #2526 #4952)
-#4971 := (or #4417 #4954)
-#4978 := (iff #4971 #4970)
-#4965 := (or #2526 #4953 #4959)
-#4973 := (or #4417 #4965)
-#4976 := (iff #4973 #4970)
-#4977 := [rewrite]: #4976
-#4974 := (iff #4971 #4973)
-#4968 := (iff #4954 #4965)
-#4962 := (or #4953 #2526 #4959)
-#4966 := (iff #4962 #4965)
-#4967 := [rewrite]: #4966
-#4963 := (iff #4954 #4962)
-#4960 := (iff #4952 #4959)
-#4957 := (= #4949 #4956)
-#4958 := [rewrite]: #4957
-#4961 := [monotonicity #4958]: #4960
-#4964 := [monotonicity #4961]: #4963
-#4969 := [trans #4964 #4967]: #4968
-#4975 := [monotonicity #4969]: #4974
-#4979 := [trans #4975 #4977]: #4978
-#4972 := [quant-inst]: #4971
-#4980 := [mp #4972 #4979]: #4970
-#5089 := [unit-resolution #4980 #5087 #5086]: #5088
-#5090 := [unit-resolution #5089 #5085]: #4959
-#4171 := (not #3096)
-#4173 := (or #3693 #4171)
-#4174 := [def-axiom]: #4173
-#5091 := [unit-resolution #4174 #5072]: #4171
-#5054 := (+ #2512 #3932)
-#5058 := (<= #5054 0::int)
-#5053 := (= #2512 #3931)
-#5092 := (= #3931 #2512)
-#5093 := [monotonicity #5074]: #5092
-#5094 := [symm #5093]: #5053
-#5095 := (not #5053)
-#5096 := (or #5095 #5058)
-#5097 := [th-lemma]: #5096
-#5098 := [unit-resolution #5097 #5094]: #5058
-#5099 := [th-lemma #5098 #5091 #5081 #5090]: false
-#5101 := [lemma #5099]: #5100
-#5231 := [unit-resolution #5101 #5230 #5087 #5243]: #3693
-#4181 := (or #4650 #4644 #3698)
-#4182 := [def-axiom]: #4181
-#5232 := [unit-resolution #4182 #5231 #5250]: #4650
-#4161 := (or #4653 #4647)
-#4162 := [def-axiom]: #4161
-#5233 := [unit-resolution #4162 #5232]: #4653
-#4169 := (or #4662 #4622 #4656)
-#4155 := [def-axiom]: #4169
-#5234 := [unit-resolution #4155 #5233 #5244]: #4622
-#4194 := (or #4619 #4611)
-#4195 := [def-axiom]: #4194
-#5229 := [unit-resolution #4195 #5234]: #4611
-#5713 := (or #5006 #4616 #1053)
-#5123 := (uf_4 uf_22 #4845)
-#5136 := (* -1::int #5123)
-#5137 := (+ #2448 #5136)
-#5138 := (<= #5137 0::int)
-#5150 := (+ #4842 #5136)
-#5151 := (+ #2448 #5150)
-#5152 := (= #5151 0::int)
-#5382 := (+ #4848 #5136)
-#5387 := (>= #5382 0::int)
-#5381 := (= #4848 #5123)
-#5643 := (= #5123 #4848)
-#5642 := [symm #5074]: #231
-#5644 := [monotonicity #5642]: #5643
-#5645 := [symm #5644]: #5381
-#5646 := (not #5381)
-#5647 := (or #5646 #5387)
-#5648 := [th-lemma]: #5647
-#5649 := [unit-resolution #5648 #5645]: #5387
-#5119 := (+ #2448 #4777)
-#5121 := (>= #5119 0::int)
-#5118 := (= #2448 #4776)
-#5629 := (= #4776 #2448)
-#5630 := [monotonicity #5074]: #5629
-#5631 := [symm #5630]: #5118
-#5632 := (not #5118)
-#5633 := (or #5632 #5121)
-#5628 := [th-lemma]: #5633
-#5634 := [unit-resolution #5628 #5631]: #5121
-#5040 := (>= #4927 0::int)
-#5005 := (not #5006)
-#5635 := [hypothesis]: #5005
-#5042 := (or #5006 #4930)
-#5043 := [def-axiom]: #5042
-#5636 := [unit-resolution #5043 #5635]: #4930
-#5637 := (or #4932 #5040)
-#5638 := [th-lemma]: #5637
-#5653 := [unit-resolution #5638 #5636]: #5040
-#5386 := (<= #5382 0::int)
-#5654 := (or #5646 #5386)
-#5675 := [th-lemma]: #5654
-#5676 := [unit-resolution #5675 #5645]: #5386
-#5120 := (<= #5119 0::int)
-#5677 := (or #5632 #5120)
-#5678 := [th-lemma]: #5677
-#5679 := [unit-resolution #5678 #5631]: #5120
-#5034 := (<= #4927 0::int)
-#5674 := (or #4932 #5034)
-#5680 := [th-lemma]: #5674
-#5681 := [unit-resolution #5680 #5636]: #5034
-#5562 := (not #5387)
-#5567 := (not #5121)
-#5566 := (not #5040)
-#5779 := (not #5386)
-#5778 := (not #5120)
-#5777 := (not #5034)
-#5572 := (or #5152 #5777 #5778 #5779 #5566 #5567 #5562)
-#5774 := [hypothesis]: #5386
-#5775 := [hypothesis]: #5120
-#5776 := [hypothesis]: #5034
-#5157 := (not #5152)
-#5772 := [hypothesis]: #5157
-#5175 := (>= #5151 0::int)
-#5563 := [hypothesis]: #5387
-#5564 := [hypothesis]: #5121
-#5565 := [hypothesis]: #5040
-#5568 := (or #5175 #5566 #5567 #5562)
-#5569 := [th-lemma]: #5568
-#5570 := [unit-resolution #5569 #5565 #5564 #5563]: #5175
-#5784 := (not #5175)
-#5788 := (or #5784 #5152 #5777 #5778 #5779)
-#5773 := [hypothesis]: #5175
-#5174 := (<= #5151 0::int)
-#5780 := (or #5174 #5777 #5778 #5779)
-#5781 := [th-lemma]: #5780
-#5782 := [unit-resolution #5781 #5776 #5775 #5774]: #5174
-#5783 := (not #5174)
-#5785 := (or #5152 #5783 #5784)
-#5786 := [th-lemma]: #5785
-#5787 := [unit-resolution #5786 #5782 #5773 #5772]: false
-#5789 := [lemma #5787]: #5788
-#5571 := [unit-resolution #5789 #5570 #5772 #5776 #5775 #5774]: false
-#5641 := [lemma #5571]: #5572
-#5682 := [unit-resolution #5641 #5681 #5679 #5676 #5653 #5634 #5649]: #5152
-#5160 := (or #5138 #5157)
-#5683 := [hypothesis]: #4611
-#5163 := (or #4616 #5138 #5157)
-#5122 := (+ #2449 #4847)
-#5124 := (+ #5123 #5122)
-#5125 := (= #5124 0::int)
-#5126 := (not #5125)
-#5127 := (+ #5123 #2449)
-#5128 := (>= #5127 0::int)
-#5129 := (or #5128 #5126)
-#5164 := (or #4616 #5129)
-#5171 := (iff #5164 #5163)
-#5166 := (or #4616 #5160)
-#5169 := (iff #5166 #5163)
-#5170 := [rewrite]: #5169
-#5167 := (iff #5164 #5166)
-#5161 := (iff #5129 #5160)
-#5158 := (iff #5126 #5157)
-#5155 := (iff #5125 #5152)
-#5143 := (+ #4847 #5123)
-#5144 := (+ #2449 #5143)
-#5147 := (= #5144 0::int)
-#5153 := (iff #5147 #5152)
-#5154 := [rewrite]: #5153
-#5148 := (iff #5125 #5147)
-#5145 := (= #5124 #5144)
-#5146 := [rewrite]: #5145
-#5149 := [monotonicity #5146]: #5148
-#5156 := [trans #5149 #5154]: #5155
-#5159 := [monotonicity #5156]: #5158
-#5141 := (iff #5128 #5138)
-#5130 := (+ #2449 #5123)
-#5133 := (>= #5130 0::int)
-#5139 := (iff #5133 #5138)
-#5140 := [rewrite]: #5139
-#5134 := (iff #5128 #5133)
-#5131 := (= #5127 #5130)
-#5132 := [rewrite]: #5131
-#5135 := [monotonicity #5132]: #5134
-#5142 := [trans #5135 #5140]: #5141
-#5162 := [monotonicity #5142 #5159]: #5161
-#5168 := [monotonicity #5162]: #5167
-#5172 := [trans #5168 #5170]: #5171
-#5165 := [quant-inst]: #5164
-#5173 := [mp #5165 #5172]: #5163
-#5684 := [unit-resolution #5173 #5683]: #5160
-#5710 := [unit-resolution #5684 #5682]: #5138
-#5041 := (not #4940)
-#5044 := (or #5006 #5041)
-#5045 := [def-axiom]: #5044
-#5711 := [unit-resolution #5045 #5635]: #5041
-#5712 := [th-lemma #5634 #5711 #5649 #5710]: false
-#5714 := [lemma #5712]: #5713
-#5235 := [unit-resolution #5714 #5229 #5243]: #5006
-#5238 := (or #4779 #5005)
-#4191 := (or #4619 #2996)
-#4192 := [def-axiom]: #4191
-#5236 := [unit-resolution #4192 #5234]: #2996
-#5237 := [hypothesis]: #4437
-#5023 := (or #4442 #2993 #4779 #5005)
-#4850 := (+ #4849 #4842)
-#4851 := (+ #4776 #4850)
-#4852 := (= #4851 0::int)
-#4938 := (not #4852)
-#4944 := (or #4943 #4940 #4938)
-#4945 := (not #4944)
-#4946 := (or #2462 #4779 #4945)
-#5025 := (or #4442 #4946)
-#5031 := (iff #5025 #5023)
-#5013 := (or #2993 #4779 #5005)
-#5027 := (or #4442 #5013)
-#5024 := (iff #5027 #5023)
-#5030 := [rewrite]: #5024
-#5028 := (iff #5025 #5027)
-#5014 := (iff #4946 #5013)
-#5011 := (iff #4945 #5005)
-#5009 := (iff #4944 #5006)
-#4935 := (or #4943 #4940 #4932)
-#5007 := (iff #4935 #5006)
-#5008 := [rewrite]: #5007
-#4950 := (iff #4944 #4935)
-#4933 := (iff #4938 #4932)
-#4925 := (iff #4852 #4930)
-#4928 := (= #4851 #4927)
-#4929 := [rewrite]: #4928
-#4931 := [monotonicity #4929]: #4925
-#4934 := [monotonicity #4931]: #4933
-#4951 := [monotonicity #4934]: #4950
-#5010 := [trans #4951 #5008]: #5009
-#5012 := [monotonicity #5010]: #5011
-#5015 := [monotonicity #2995 #5012]: #5014
-#5029 := [monotonicity #5015]: #5028
-#5032 := [trans #5029 #5030]: #5031
-#5026 := [quant-inst]: #5025
-#5033 := [mp #5026 #5032]: #5023
-#5239 := [unit-resolution #5033 #5237 #5236]: #5238
-#5254 := [unit-resolution #5239 #5235]: #4779
-#4200 := (or #4619 #2461)
-#4207 := [def-axiom]: #4200
-#5255 := [unit-resolution #4207 #5234]: #2461
-#5280 := [monotonicity #5243]: #5629
-#5281 := [symm #5280]: #5118
-#5282 := [unit-resolution #5628 #5281]: #5121
-#5283 := [th-lemma #5282 #5255 #5254]: false
-#5279 := [lemma #5283]: #5284
-#8031 := [unit-resolution #5279 #8030 #8027 #7307]: #4665
-#4138 := (or #4677 #4671)
-#4106 := [def-axiom]: #4138
-#7357 := [unit-resolution #4106 #7304]: #4671
-#4143 := (or #4674 #4598 #4668)
-#4144 := [def-axiom]: #4143
-#7389 := [unit-resolution #4144 #7357 #8031]: #4598
-#4125 := (or #4595 #151)
-#4126 := [def-axiom]: #4125
-#8578 := [unit-resolution #4126 #7389]: #151
-#8595 := [symm #8578]: #8594
-#8592 := (= #7203 #150)
-#48 := (:var 0 T5)
-#47 := (:var 2 T4)
-#49 := (uf_7 #47 #10 #48)
-#4329 := (pattern #49)
-#360 := (= uf_8 #48)
-#50 := (uf_6 #49 #10)
-#356 := (= uf_8 #50)
-#363 := (iff #356 #360)
-#4330 := (forall (vars (?x17 T4) (?x18 T2) (?x19 T5)) (:pat #4329) #363)
-#366 := (forall (vars (?x17 T4) (?x18 T2) (?x19 T5)) #363)
-#4333 := (iff #366 #4330)
-#4331 := (iff #363 #363)
-#4332 := [refl]: #4331
-#4334 := [quant-intro #4332]: #4333
-#1957 := (~ #366 #366)
-#1995 := (~ #363 #363)
-#1996 := [refl]: #1995
-#1958 := [nnf-pos #1996]: #1957
-#52 := (= #48 uf_8)
-#51 := (= #50 uf_8)
-#53 := (iff #51 #52)
-#54 := (forall (vars (?x17 T4) (?x18 T2) (?x19 T5)) #53)
-#367 := (iff #54 #366)
-#364 := (iff #53 #363)
-#361 := (iff #52 #360)
-#362 := [rewrite]: #361
-#358 := (iff #51 #356)
-#359 := [rewrite]: #358
-#365 := [monotonicity #359 #362]: #364
-#368 := [quant-intro #365]: #367
-#355 := [asserted]: #54
-#371 := [mp #355 #368]: #366
-#1997 := [mp~ #371 #1958]: #366
-#4335 := [mp #1997 #4334]: #4330
-#7014 := (not #4330)
-#7015 := (or #7014 #5314)
-#5318 := (= uf_8 uf_8)
-#5320 := (iff #5314 #5318)
-#7018 := (or #7014 #5320)
-#7020 := (iff #7018 #7015)
-#7022 := (iff #7015 #7015)
-#7023 := [rewrite]: #7022
-#5344 := (iff #5320 #5314)
-#5323 := (iff #5314 true)
-#5342 := (iff #5323 #5314)
-#5343 := [rewrite]: #5342
-#5324 := (iff #5320 #5323)
-#5321 := (iff #5318 true)
-#5322 := [rewrite]: #5321
-#5340 := [monotonicity #5322]: #5324
-#5345 := [trans #5340 #5343]: #5344
-#7021 := [monotonicity #5345]: #7020
-#7024 := [trans #7021 #7023]: #7020
-#7019 := [quant-inst]: #7018
-#7025 := [mp #7019 #7024]: #7015
-#8579 := [unit-resolution #7025 #4335]: #5314
-#8580 := [symm #8579]: #6089
-#8035 := (= #7128 uf_16)
-#7129 := (= uf_16 #7128)
-#16 := (uf_2 #12)
-#325 := (= #10 #16)
-#4301 := (forall (vars (?x4 T2) (?x5 T2)) (:pat #4294) #325)
-#329 := (forall (vars (?x4 T2) (?x5 T2)) #325)
-#4304 := (iff #329 #4301)
-#4302 := (iff #325 #325)
-#4303 := [refl]: #4302
-#4305 := [quant-intro #4303]: #4304
-#1949 := (~ #329 #329)
-#1983 := (~ #325 #325)
-#1984 := [refl]: #1983
-#1950 := [nnf-pos #1984]: #1949
-#17 := (= #16 #10)
-#18 := (forall (vars (?x4 T2) (?x5 T2)) #17)
-#330 := (iff #18 #329)
-#327 := (iff #17 #325)
-#328 := [rewrite]: #327
-#331 := [quant-intro #328]: #330
-#324 := [asserted]: #18
-#334 := [mp #324 #331]: #329
-#1985 := [mp~ #334 #1950]: #329
-#4306 := [mp #1985 #4305]: #4301
-#7136 := (not #4301)
-#7154 := (or #7136 #7129)
-#7155 := [quant-inst]: #7154
-#8034 := [unit-resolution #7155 #4306]: #7129
-#8036 := [symm #8034]: #8035
-#8593 := [monotonicity #8036 #8580]: #8592
-#8591 := [trans #8593 #8595]: #8596
-#32982 := [monotonicity #8591 #32984]: #32980
-#32970 := [monotonicity #32982]: #32985
-#32965 := [symm #32970]: #32955
-#32971 := [monotonicity #32965]: #32968
-#32956 := (not #15367)
-#32950 := [hypothesis]: #32956
-#15373 := (or #9846 #15367)
-#8693 := (= #144 #2212)
-#8633 := (= #2212 #144)
-#6559 := (= ?x46!9 uf_16)
-#7707 := (= ?x46!9 #7128)
-#6330 := (uf_6 uf_15 ?x46!9)
-#6365 := (= uf_8 #6330)
-#7717 := (ite #7707 #5314 #6365)
-#7711 := (uf_6 #7203 ?x46!9)
-#7714 := (= uf_8 #7711)
-#7720 := (iff #7714 #7717)
-#8351 := (or #7026 #7720)
-#7708 := (ite #7707 #6089 #6365)
-#7712 := (= #7711 uf_8)
-#7713 := (iff #7712 #7708)
-#8361 := (or #7026 #7713)
-#8363 := (iff #8361 #8351)
-#8365 := (iff #8351 #8351)
-#8366 := [rewrite]: #8365
-#7721 := (iff #7713 #7720)
-#7718 := (iff #7708 #7717)
-#7719 := [monotonicity #6102]: #7718
-#7715 := (iff #7712 #7714)
-#7716 := [rewrite]: #7715
-#7722 := [monotonicity #7716 #7719]: #7721
-#8364 := [monotonicity #7722]: #8363
-#8367 := [trans #8364 #8366]: #8363
-#8362 := [quant-inst]: #8361
-#8368 := [mp #8362 #8367]: #8351
-#8576 := [unit-resolution #8368 #4320]: #7720
-#8601 := (= #2208 #7711)
-#8597 := (= #7711 #2208)
-#8598 := [monotonicity #8591]: #8597
-#8625 := [symm #8598]: #8601
-#8571 := [hypothesis]: #2836
-#4285 := (or #2831 #2209)
-#4275 := [def-axiom]: #4285
-#8577 := [unit-resolution #4275 #8571]: #2209
-#8626 := [trans #8577 #8625]: #7714
-#8404 := (not #7714)
-#8401 := (not #7720)
-#8405 := (or #8401 #8404 #7717)
-#8400 := [def-axiom]: #8405
-#8627 := [unit-resolution #8400 #8626 #8576]: #7717
-#6393 := (uf_1 uf_16 ?x46!9)
-#6394 := (uf_10 #6393)
-#6337 := (* -1::int #2212)
-#6411 := (+ #6337 #6394)
-#6412 := (+ #144 #6411)
-#6413 := (>= #6412 0::int)
-#8287 := (not #6413)
-#6395 := (* -1::int #6394)
-#6396 := (+ uf_9 #6395)
-#6397 := (<= #6396 0::int)
-#6421 := (or #6397 #6413)
-#6426 := (not #6421)
-#3935 := (not #2825)
-#3940 := (or #2831 #3935)
-#4276 := [def-axiom]: #3940
-#8572 := [unit-resolution #4276 #8571]: #3935
-#4212 := (or #4595 #4456)
-#4213 := [def-axiom]: #4212
-#8574 := [unit-resolution #4213 #7389]: #4456
-#8302 := (or #4461 #2825 #6426)
-#6398 := (+ #1449 #6395)
-#6399 := (+ #2212 #6398)
-#6400 := (<= #6399 0::int)
-#6401 := (or #6400 #6397)
-#6402 := (not #6401)
-#6403 := (or #2213 #6402)
-#8303 := (or #4461 #6403)
-#8310 := (iff #8303 #8302)
-#6429 := (or #2825 #6426)
-#8305 := (or #4461 #6429)
-#8308 := (iff #8305 #8302)
-#8309 := [rewrite]: #8308
-#8306 := (iff #8303 #8305)
-#6430 := (iff #6403 #6429)
-#6427 := (iff #6402 #6426)
-#6424 := (iff #6401 #6421)
-#6418 := (or #6413 #6397)
-#6422 := (iff #6418 #6421)
-#6423 := [rewrite]: #6422
-#6419 := (iff #6401 #6418)
-#6416 := (iff #6400 #6413)
-#6404 := (+ #2212 #6395)
-#6405 := (+ #1449 #6404)
-#6408 := (<= #6405 0::int)
-#6414 := (iff #6408 #6413)
-#6415 := [rewrite]: #6414
-#6409 := (iff #6400 #6408)
-#6406 := (= #6399 #6405)
-#6407 := [rewrite]: #6406
-#6410 := [monotonicity #6407]: #6409
-#6417 := [trans #6410 #6415]: #6416
-#6420 := [monotonicity #6417]: #6419
-#6425 := [trans #6420 #6423]: #6424
-#6428 := [monotonicity #6425]: #6427
-#6431 := [monotonicity #2827 #6428]: #6430
-#8307 := [monotonicity #6431]: #8306
-#8311 := [trans #8307 #8309]: #8310
-#8304 := [quant-inst]: #8303
-#8312 := [mp #8304 #8311]: #8302
-#8628 := [unit-resolution #8312 #8574 #8572]: #6426
-#8288 := (or #6421 #8287)
-#8289 := [def-axiom]: #8288
-#8629 := [unit-resolution #8289 #8628]: #8287
-#8369 := (not #7717)
-#9187 := (or #7707 #6413 #8369)
-#7754 := (uf_1 #7128 ?x46!9)
-#7838 := (uf_3 #7754)
-#9086 := (uf_4 uf_14 #7838)
-#9087 := (* -1::int #9086)
-#7168 := (uf_4 uf_14 #7128)
-#9088 := (+ #7168 #9087)
-#9089 := (>= #9088 0::int)
-#9090 := (uf_6 uf_15 #7838)
-#9091 := (= uf_8 #9090)
-#9139 := (= #6330 #9090)
-#9135 := (= #9090 #6330)
-#9133 := (= #7838 ?x46!9)
-#7839 := (= ?x46!9 #7838)
-#8519 := (or #5378 #7839)
-#8257 := [quant-inst]: #8519
-#9132 := [unit-resolution #8257 #4300]: #7839
-#9134 := [symm #9132]: #9133
-#9136 := [monotonicity #9134]: #9135
-#9140 := [symm #9136]: #9139
-#9129 := [hypothesis]: #7717
-#7733 := (not #7707)
-#9130 := [hypothesis]: #7733
-#8347 := (or #8369 #7707 #6365)
-#8354 := [def-axiom]: #8347
-#9131 := [unit-resolution #8354 #9130 #9129]: #6365
-#9141 := [trans #9131 #9140]: #9091
-#9092 := (not #9091)
-#9154 := (or #9089 #9092)
-#7246 := (uf_6 uf_15 #7128)
-#7247 := (= uf_8 #7246)
-#9149 := (not #7247)
-#9150 := (iff #588 #9149)
-#9147 := (iff #585 #7247)
-#9145 := (iff #7247 #585)
-#9143 := (= #7246 #141)
-#9144 := [monotonicity #8036]: #9143
-#9146 := [monotonicity #9144]: #9145
-#9148 := [symm #9146]: #9147
-#9151 := [monotonicity #9148]: #9150
-#4127 := (or #4595 #588)
-#4220 := [def-axiom]: #4127
-#9142 := [unit-resolution #4220 #7389]: #588
-#9152 := [mp #9142 #9151]: #9149
-#4076 := (or #4677 #4421)
-#4131 := [def-axiom]: #4076
-#9153 := [unit-resolution #4131 #7304]: #4421
-#9097 := (or #4426 #7247 #9089 #9092)
-#9093 := (or #9092 #7247 #9089)
-#9098 := (or #4426 #9093)
-#9105 := (iff #9098 #9097)
-#9094 := (or #7247 #9089 #9092)
-#9100 := (or #4426 #9094)
-#9103 := (iff #9100 #9097)
-#9104 := [rewrite]: #9103
-#9101 := (iff #9098 #9100)
-#9095 := (iff #9093 #9094)
-#9096 := [rewrite]: #9095
-#9102 := [monotonicity #9096]: #9101
-#9106 := [trans #9102 #9104]: #9105
-#9099 := [quant-inst]: #9098
-#9107 := [mp #9099 #9106]: #9097
-#9155 := [unit-resolution #9107 #9153 #9152]: #9154
-#9156 := [unit-resolution #9155 #9141]: #9089
-#9157 := [hypothesis]: #8287
-#7755 := (uf_10 #7754)
-#7756 := (* -1::int #7755)
-#8520 := (+ #6394 #7756)
-#8524 := (>= #8520 0::int)
-#8517 := (= #6394 #7755)
-#9160 := (= #7755 #6394)
-#9158 := (= #7754 #6393)
-#9159 := [monotonicity #8036]: #9158
-#9161 := [monotonicity #9159]: #9160
-#9162 := [symm #9161]: #8517
-#9163 := (not #8517)
-#9164 := (or #9163 #8524)
-#9165 := [th-lemma]: #9164
-#9166 := [unit-resolution #9165 #9162]: #8524
-#8514 := (>= #7755 0::int)
-#7798 := (<= #7755 0::int)
-#7799 := (not #7798)
-#7804 := (or #7707 #7799)
-#59 := (uf_10 #12)
-#409 := (<= #59 0::int)
-#410 := (not #409)
-#58 := (= #10 #11)
-#413 := (or #58 #410)
-#4342 := (forall (vars (?x22 T2) (?x23 T2)) (:pat #4294) #413)
-#416 := (forall (vars (?x22 T2) (?x23 T2)) #413)
-#4345 := (iff #416 #4342)
-#4343 := (iff #413 #413)
-#4344 := [refl]: #4343
-#4346 := [quant-intro #4344]: #4345
-#1963 := (~ #416 #416)
-#1962 := (~ #413 #413)
-#2000 := [refl]: #1962
-#1964 := [nnf-pos #2000]: #1963
-#64 := (< 0::int #59)
-#63 := (not #58)
-#65 := (implies #63 #64)
-#66 := (forall (vars (?x22 T2) (?x23 T2)) #65)
-#419 := (iff #66 #416)
-#403 := (or #58 #64)
-#406 := (forall (vars (?x22 T2) (?x23 T2)) #403)
-#417 := (iff #406 #416)
-#414 := (iff #403 #413)
-#411 := (iff #64 #410)
-#412 := [rewrite]: #411
-#415 := [monotonicity #412]: #414
-#418 := [quant-intro #415]: #417
-#407 := (iff #66 #406)
-#404 := (iff #65 #403)
-#405 := [rewrite]: #404
-#408 := [quant-intro #405]: #407
-#420 := [trans #408 #418]: #419
-#402 := [asserted]: #66
-#421 := [mp #402 #420]: #416
-#2001 := [mp~ #421 #1964]: #416
-#4347 := [mp #2001 #4346]: #4342
-#7093 := (not #4342)
-#8435 := (or #7093 #7707 #7799)
-#7800 := (= #7128 ?x46!9)
-#7801 := (or #7800 #7799)
-#8436 := (or #7093 #7801)
-#8447 := (iff #8436 #8435)
-#8437 := (or #7093 #7804)
-#8443 := (iff #8437 #8435)
-#8444 := [rewrite]: #8443
-#8438 := (iff #8436 #8437)
-#7805 := (iff #7801 #7804)
-#7802 := (iff #7800 #7707)
-#7803 := [rewrite]: #7802
-#7806 := [monotonicity #7803]: #7805
-#8439 := [monotonicity #7806]: #8438
-#8448 := [trans #8439 #8444]: #8447
-#8434 := [quant-inst]: #8436
-#8482 := [mp #8434 #8448]: #8435
-#9167 := [unit-resolution #8482 #4347]: #7804
-#9168 := [unit-resolution #9167 #9130]: #7799
-#9169 := (or #8514 #7798)
-#9170 := [th-lemma]: #9169
-#9171 := [unit-resolution #9170 #9168]: #8514
-#9126 := (+ #2212 #9087)
-#9127 := (<= #9126 0::int)
-#9125 := (= #2212 #9086)
-#9172 := (= #9086 #2212)
-#9173 := [monotonicity #9134]: #9172
-#9174 := [symm #9173]: #9125
-#9175 := (not #9125)
-#9176 := (or #9175 #9127)
-#9177 := [th-lemma]: #9176
-#9178 := [unit-resolution #9177 #9174]: #9127
-#7162 := (* -1::int #7168)
-#7568 := (+ #144 #7162)
-#7572 := (>= #7568 0::int)
-#7233 := (= #144 #7168)
-#9179 := (= #7168 #144)
-#9180 := [monotonicity #8036]: #9179
-#9181 := [symm #9180]: #7233
-#9182 := (not #7233)
-#9183 := (or #9182 #7572)
-#9184 := [th-lemma]: #9183
-#9185 := [unit-resolution #9184 #9181]: #7572
-#9186 := [th-lemma #9185 #9178 #9171 #9166 #9157 #9156]: false
-#9188 := [lemma #9186]: #9187
-#8624 := [unit-resolution #9188 #8629 #8627]: #7707
-#8630 := [trans #8624 #8036]: #6559
-#8634 := [monotonicity #8630]: #8633
-#8694 := [symm #8634]: #8693
-#8695 := (= #2211 #144)
-#5856 := (uf_18 uf_16)
-#8641 := (= #5856 #144)
-#5857 := (= #144 #5856)
-#5844 := (uf_1 uf_16 uf_16)
-#5845 := (uf_10 #5844)
-#5864 := (>= #5845 0::int)
-#5848 := (* -1::int #5845)
-#5849 := (+ uf_9 #5848)
-#5850 := (<= #5849 0::int)
-#5872 := (or #5850 #5864)
-#7965 := (uf_1 #7128 #7128)
-#7966 := (uf_10 #7965)
-#7967 := (* -1::int #7966)
-#8029 := (+ #5845 #7967)
-#8033 := (>= #8029 0::int)
-#8028 := (= #5845 #7966)
-#8039 := (= #5844 #7965)
-#8037 := (= #7965 #5844)
-#8038 := [monotonicity #8036 #8036]: #8037
-#8040 := [symm #8038]: #8039
-#8041 := [monotonicity #8040]: #8028
-#8042 := (not #8028)
-#8043 := (or #8042 #8033)
-#8044 := [th-lemma]: #8043
-#8045 := [unit-resolution #8044 #8041]: #8033
-#7976 := (>= #7966 0::int)
-#7998 := (= #7966 0::int)
-#60 := (= #59 0::int)
-#393 := (or #63 #60)
-#4336 := (forall (vars (?x20 T2) (?x21 T2)) (:pat #4294) #393)
-#396 := (forall (vars (?x20 T2) (?x21 T2)) #393)
-#4339 := (iff #396 #4336)
-#4337 := (iff #393 #393)
-#4338 := [refl]: #4337
-#4340 := [quant-intro #4338]: #4339
-#1959 := (~ #396 #396)
-#1998 := (~ #393 #393)
-#1999 := [refl]: #1998
-#1960 := [nnf-pos #1999]: #1959
-#61 := (implies #58 #60)
-#62 := (forall (vars (?x20 T2) (?x21 T2)) #61)
-#399 := (iff #62 #396)
-#372 := (= 0::int #59)
-#383 := (or #63 #372)
-#388 := (forall (vars (?x20 T2) (?x21 T2)) #383)
-#397 := (iff #388 #396)
-#394 := (iff #383 #393)
-#391 := (iff #372 #60)
-#392 := [rewrite]: #391
-#395 := [monotonicity #392]: #394
-#398 := [quant-intro #395]: #397
-#389 := (iff #62 #388)
-#386 := (iff #61 #383)
-#380 := (implies #58 #372)
-#384 := (iff #380 #383)
-#385 := [rewrite]: #384
-#381 := (iff #61 #380)
-#378 := (iff #60 #372)
-#379 := [rewrite]: #378
-#382 := [monotonicity #379]: #381
-#387 := [trans #382 #385]: #386
-#390 := [quant-intro #387]: #389
-#400 := [trans #390 #398]: #399
-#370 := [asserted]: #62
-#401 := [mp #370 #400]: #396
-#1961 := [mp~ #401 #1960]: #396
-#4341 := [mp #1961 #4340]: #4336
-#6863 := (not #4336)
-#8012 := (or #6863 #7998)
-#7248 := (= #7128 #7128)
-#7999 := (not #7248)
-#8000 := (or #7999 #7998)
-#8013 := (or #6863 #8000)
-#8015 := (iff #8013 #8012)
-#8017 := (iff #8012 #8012)
-#8018 := [rewrite]: #8017
-#8010 := (iff #8000 #7998)
-#8005 := (or false #7998)
-#8008 := (iff #8005 #7998)
-#8009 := [rewrite]: #8008
-#8006 := (iff #8000 #8005)
-#8003 := (iff #7999 false)
-#8001 := (iff #7999 #6849)
-#7256 := (iff #7248 true)
-#7257 := [rewrite]: #7256
-#8002 := [monotonicity #7257]: #8001
-#8004 := [trans #8002 #6853]: #8003
-#8007 := [monotonicity #8004]: #8006
-#8011 := [trans #8007 #8009]: #8010
-#8016 := [monotonicity #8011]: #8015
-#8019 := [trans #8016 #8018]: #8015
-#8014 := [quant-inst]: #8013
-#8020 := [mp #8014 #8019]: #8012
-#8046 := [unit-resolution #8020 #4341]: #7998
-#8047 := (not #7998)
-#8048 := (or #8047 #7976)
-#8049 := [th-lemma]: #8048
-#8050 := [unit-resolution #8049 #8046]: #7976
-#6974 := (not #5864)
-#8051 := [hypothesis]: #6974
-#8052 := [th-lemma #8051 #8050 #8045]: false
-#8053 := [lemma #8052]: #5864
-#6975 := (or #5872 #6974)
-#6976 := [def-axiom]: #6975
-#8573 := [unit-resolution #6976 #8053]: #5872
-#5877 := (not #5872)
-#5880 := (or #5857 #5877)
-#6955 := (or #4461 #5857 #5877)
-#5851 := (+ #1449 #5848)
-#5852 := (+ #144 #5851)
-#5853 := (<= #5852 0::int)
-#5854 := (or #5853 #5850)
-#5855 := (not #5854)
-#5858 := (or #5857 #5855)
-#6956 := (or #4461 #5858)
-#6967 := (iff #6956 #6955)
-#6962 := (or #4461 #5880)
-#6965 := (iff #6962 #6955)
-#6966 := [rewrite]: #6965
-#6963 := (iff #6956 #6962)
-#5881 := (iff #5858 #5880)
-#5878 := (iff #5855 #5877)
-#5875 := (iff #5854 #5872)
-#5869 := (or #5864 #5850)
-#5873 := (iff #5869 #5872)
-#5874 := [rewrite]: #5873
-#5870 := (iff #5854 #5869)
-#5867 := (iff #5853 #5864)
-#5861 := (<= #5848 0::int)
-#5865 := (iff #5861 #5864)
-#5866 := [rewrite]: #5865
-#5862 := (iff #5853 #5861)
-#5859 := (= #5852 #5848)
-#5860 := [rewrite]: #5859
-#5863 := [monotonicity #5860]: #5862
-#5868 := [trans #5863 #5866]: #5867
-#5871 := [monotonicity #5868]: #5870
-#5876 := [trans #5871 #5874]: #5875
-#5879 := [monotonicity #5876]: #5878
-#5882 := [monotonicity #5879]: #5881
-#6964 := [monotonicity #5882]: #6963
-#6968 := [trans #6964 #6966]: #6967
-#6961 := [quant-inst]: #6956
-#6969 := [mp #6961 #6968]: #6955
-#8575 := [unit-resolution #6969 #8574]: #5880
-#8570 := [unit-resolution #8575 #8573]: #5857
-#8642 := [symm #8570]: #8641
-#8631 := (= #2211 #5856)
-#8632 := [monotonicity #8630]: #8631
-#8696 := [trans #8632 #8642]: #8695
-#8697 := [trans #8696 #8694]: #2825
-#8698 := [unit-resolution #8572 #8697]: false
-#8699 := [lemma #8698]: #2831
-#4203 := (or #4595 #4589)
-#4204 := [def-axiom]: #4203
-#9435 := [unit-resolution #4204 #7389]: #4589
-#4209 := (or #4595 #4464)
-#4214 := [def-axiom]: #4209
-#7390 := [unit-resolution #4214 #7389]: #4464
-#6363 := (or #2817 #4469 #4461)
-#6139 := (uf_1 uf_16 ?x45!8)
-#6140 := (uf_10 #6139)
-#6165 := (+ #2191 #6140)
-#6166 := (+ #144 #6165)
-#6192 := (>= #6166 0::int)
-#6169 := (= #6166 0::int)
-#6144 := (* -1::int #6140)
-#6145 := (+ uf_9 #6144)
-#6146 := (<= #6145 0::int)
-#6226 := (not #6146)
-#6158 := (+ #2815 #6140)
-#6159 := (+ #144 #6158)
-#6160 := (>= #6159 0::int)
-#6203 := (or #6146 #6160)
-#6208 := (not #6203)
-#6197 := (= #2190 #2192)
-#6342 := (not #6197)
-#6341 := [hypothesis]: #2822
-#6345 := (or #6342 #2817)
-#6346 := [th-lemma]: #6345
-#6347 := [unit-resolution #6346 #6341]: #6342
-#6348 := [hypothesis]: #4456
-#6214 := (or #4461 #6197 #6208)
-#6147 := (+ #1449 #6144)
-#6148 := (+ #2192 #6147)
-#6149 := (<= #6148 0::int)
-#6193 := (or #6149 #6146)
-#6194 := (not #6193)
-#6195 := (= #2192 #2190)
-#6196 := (or #6195 #6194)
-#6215 := (or #4461 #6196)
-#6222 := (iff #6215 #6214)
-#6211 := (or #6197 #6208)
-#6217 := (or #4461 #6211)
-#6220 := (iff #6217 #6214)
-#6221 := [rewrite]: #6220
-#6218 := (iff #6215 #6217)
-#6212 := (iff #6196 #6211)
-#6209 := (iff #6194 #6208)
-#6206 := (iff #6193 #6203)
-#6200 := (or #6160 #6146)
-#6204 := (iff #6200 #6203)
-#6205 := [rewrite]: #6204
-#6201 := (iff #6193 #6200)
-#6163 := (iff #6149 #6160)
-#6151 := (+ #2192 #6144)
-#6152 := (+ #1449 #6151)
-#6155 := (<= #6152 0::int)
-#6161 := (iff #6155 #6160)
-#6162 := [rewrite]: #6161
-#6156 := (iff #6149 #6155)
-#6153 := (= #6148 #6152)
-#6154 := [rewrite]: #6153
-#6157 := [monotonicity #6154]: #6156
-#6164 := [trans #6157 #6162]: #6163
-#6202 := [monotonicity #6164]: #6201
-#6207 := [trans #6202 #6205]: #6206
-#6210 := [monotonicity #6207]: #6209
-#6198 := (iff #6195 #6197)
-#6199 := [rewrite]: #6198
-#6213 := [monotonicity #6199 #6210]: #6212
-#6219 := [monotonicity #6213]: #6218
-#6223 := [trans #6219 #6221]: #6222
-#6216 := [quant-inst]: #6215
-#6224 := [mp #6216 #6223]: #6214
-#6349 := [unit-resolution #6224 #6348 #6347]: #6208
-#6227 := (or #6203 #6226)
-#6228 := [def-axiom]: #6227
-#6350 := [unit-resolution #6228 #6349]: #6226
-#6229 := (not #6160)
-#6230 := (or #6203 #6229)
-#6231 := [def-axiom]: #6230
-#6351 := [unit-resolution #6231 #6349]: #6229
-#6175 := (or #6146 #6160 #6169)
-#6352 := [hypothesis]: #4464
-#6180 := (or #4469 #6146 #6160 #6169)
-#6141 := (+ #6140 #2191)
-#6142 := (+ #144 #6141)
-#6143 := (= #6142 0::int)
-#6150 := (or #6149 #6146 #6143)
-#6181 := (or #4469 #6150)
-#6188 := (iff #6181 #6180)
-#6183 := (or #4469 #6175)
-#6186 := (iff #6183 #6180)
-#6187 := [rewrite]: #6186
-#6184 := (iff #6181 #6183)
-#6178 := (iff #6150 #6175)
-#6172 := (or #6160 #6146 #6169)
-#6176 := (iff #6172 #6175)
-#6177 := [rewrite]: #6176
-#6173 := (iff #6150 #6172)
-#6170 := (iff #6143 #6169)
-#6167 := (= #6142 #6166)
-#6168 := [rewrite]: #6167
-#6171 := [monotonicity #6168]: #6170
-#6174 := [monotonicity #6164 #6171]: #6173
-#6179 := [trans #6174 #6177]: #6178
-#6185 := [monotonicity #6179]: #6184
-#6189 := [trans #6185 #6187]: #6188
-#6182 := [quant-inst]: #6181
-#6190 := [mp #6182 #6189]: #6180
-#6353 := [unit-resolution #6190 #6352]: #6175
-#6354 := [unit-resolution #6353 #6351 #6350]: #6169
-#6355 := (not #6169)
-#6356 := (or #6355 #6192)
-#6357 := [th-lemma]: #6356
-#6358 := [unit-resolution #6357 #6354]: #6192
-#6225 := (>= #2816 0::int)
-#6359 := (or #6225 #2817)
-#6360 := [th-lemma]: #6359
-#6361 := [unit-resolution #6360 #6341]: #6225
-#6362 := [th-lemma #6361 #6351 #6358]: false
-#6364 := [lemma #6362]: #6363
-#9436 := [unit-resolution #6364 #7390 #8574]: #2817
-#4123 := (or #4592 #2822 #4586)
-#4124 := [def-axiom]: #4123
-#9437 := [unit-resolution #4124 #9436 #9435]: #4586
-#4215 := (or #4583 #4577)
-#4216 := [def-axiom]: #4215
-#9438 := [unit-resolution #4216 #9437]: #4577
-#4111 := (or #4580 #2836 #4574)
-#4070 := [def-axiom]: #4111
-#9439 := [unit-resolution #4070 #9438]: #4577
-#9422 := [unit-resolution #9439 #8699]: #4574
-#4068 := (or #4571 #4481)
-#4069 := [def-axiom]: #4068
-#9423 := [unit-resolution #4069 #9422]: #4481
-#10877 := (or #4486 #9846 #15367)
-#15363 := (= #15362 #2306)
-#15366 := (or #15363 #9846)
-#14529 := (or #4486 #15366)
-#14658 := (iff #14529 #10877)
-#14681 := (or #4486 #15373)
-#14554 := (iff #14681 #10877)
-#14690 := [rewrite]: #14554
-#12540 := (iff #14529 #14681)
-#15376 := (iff #15366 #15373)
-#15370 := (or #15367 #9846)
-#15374 := (iff #15370 #15373)
-#15375 := [rewrite]: #15374
-#15371 := (iff #15366 #15370)
-#15368 := (iff #15363 #15367)
-#15369 := [rewrite]: #15368
-#15372 := [monotonicity #15369]: #15371
-#15377 := [trans #15372 #15375]: #15376
-#14677 := [monotonicity #15377]: #12540
-#14520 := [trans #14677 #14690]: #14658
-#14692 := [quant-inst]: #14529
-#10887 := [mp #14692 #14520]: #10877
-#32978 := [unit-resolution #10887 #9423]: #15373
-#32979 := [unit-resolution #32978 #32950]: #9846
-#32981 := [mp #32979 #32971]: #30313
-#18779 := (= ?x52!15 #7128)
-#32989 := (iff #18779 #32602)
-#32770 := (iff #32602 #18779)
-#25219 := (= #7128 ?x52!15)
-#25223 := (iff #25219 #18779)
-#29787 := [commutativity]: #25223
-#32974 := (iff #32602 #25219)
-#32975 := [monotonicity #32984]: #32974
-#32986 := [trans #32975 #29787]: #32770
-#32991 := [symm #32986]: #32989
-#15413 := (uf_1 uf_16 ?x52!15)
-#15414 := (uf_10 #15413)
-#15439 := (+ #2307 #15414)
-#15440 := (+ #144 #15439)
-#15443 := (= #15440 0::int)
-#15432 := (+ #15397 #15414)
-#15433 := (+ #144 #15432)
-#15434 := (>= #15433 0::int)
-#15418 := (* -1::int #15414)
-#15419 := (+ uf_9 #15418)
-#15420 := (<= #15419 0::int)
-#15473 := (or #15420 #15434)
-#15478 := (not #15473)
-#15481 := (or #15367 #15478)
-#14730 := (or #4461 #15367 #15478)
-#15421 := (+ #1449 #15418)
-#15422 := (+ #15362 #15421)
-#15423 := (<= #15422 0::int)
-#15467 := (or #15423 #15420)
-#15468 := (not #15467)
-#15469 := (or #15363 #15468)
-#14738 := (or #4461 #15469)
-#14986 := (iff #14738 #14730)
-#14556 := (or #4461 #15481)
-#14896 := (iff #14556 #14730)
-#15034 := [rewrite]: #14896
-#14832 := (iff #14738 #14556)
-#15482 := (iff #15469 #15481)
-#15479 := (iff #15468 #15478)
-#15476 := (iff #15467 #15473)
-#15470 := (or #15434 #15420)
-#15474 := (iff #15470 #15473)
-#15475 := [rewrite]: #15474
-#15471 := (iff #15467 #15470)
-#15437 := (iff #15423 #15434)
-#15425 := (+ #15362 #15418)
-#15426 := (+ #1449 #15425)
-#15429 := (<= #15426 0::int)
-#15435 := (iff #15429 #15434)
-#15436 := [rewrite]: #15435
-#15430 := (iff #15423 #15429)
-#15427 := (= #15422 #15426)
-#15428 := [rewrite]: #15427
-#15431 := [monotonicity #15428]: #15430
-#15438 := [trans #15431 #15436]: #15437
-#15472 := [monotonicity #15438]: #15471
-#15477 := [trans #15472 #15475]: #15476
-#15480 := [monotonicity #15477]: #15479
-#15483 := [monotonicity #15369 #15480]: #15482
-#15031 := [monotonicity #15483]: #14832
-#14985 := [trans #15031 #15034]: #14986
-#12501 := [quant-inst]: #14738
-#15678 := [mp #12501 #14985]: #14730
-#32969 := [unit-resolution #15678 #8574]: #15481
-#32952 := [unit-resolution #32969 #32950]: #15478
-#29629 := (or #15473 #15443)
-#25301 := (not #15443)
-#29623 := [hypothesis]: #25301
-#15187 := (not #15420)
-#29624 := [hypothesis]: #15478
-#14833 := (or #15473 #15187)
-#15233 := [def-axiom]: #14833
-#29625 := [unit-resolution #15233 #29624]: #15187
-#8899 := (not #15434)
-#15050 := (or #15473 #8899)
-#15028 := [def-axiom]: #15050
-#29626 := [unit-resolution #15028 #29624]: #8899
-#15449 := (or #15420 #15434 #15443)
-#12503 := (or #4469 #15420 #15434 #15443)
-#15415 := (+ #15414 #2307)
-#15416 := (+ #144 #15415)
-#15417 := (= #15416 0::int)
-#15424 := (or #15423 #15420 #15417)
-#12502 := (or #4469 #15424)
-#14824 := (iff #12502 #12503)
-#14693 := (or #4469 #15449)
-#14698 := (iff #14693 #12503)
-#14734 := [rewrite]: #14698
-#14675 := (iff #12502 #14693)
-#15452 := (iff #15424 #15449)
-#15446 := (or #15434 #15420 #15443)
-#15450 := (iff #15446 #15449)
-#15451 := [rewrite]: #15450
-#15447 := (iff #15424 #15446)
-#15444 := (iff #15417 #15443)
-#15441 := (= #15416 #15440)
-#15442 := [rewrite]: #15441
-#15445 := [monotonicity #15442]: #15444
-#15448 := [monotonicity #15438 #15445]: #15447
-#15453 := [trans #15448 #15451]: #15452
-#14648 := [monotonicity #15453]: #14675
-#14687 := [trans #14648 #14734]: #14824
-#14736 := [quant-inst]: #12502
-#13488 := [mp #14736 #14687]: #12503
-#29627 := [unit-resolution #13488 #7390]: #15449
-#29628 := [unit-resolution #29627 #29626 #29625 #29623]: false
-#29630 := [lemma #29628]: #29629
-#32972 := [unit-resolution #29630 #32952]: #15443
-#29799 := (or #25301 #18779)
-#7126 := (uf_3 #6008)
-#15598 := (uf_1 #7126 ?x52!15)
-#27533 := (uf_3 #15598)
-#28710 := (uf_1 #7128 #27533)
-#28711 := (uf_10 #28710)
-#28714 := (* -1::int #28711)
-#28814 := (+ #15414 #28714)
-#28506 := (>= #28814 0::int)
-#28505 := (= #15414 #28711)
-#29767 := (= #28711 #15414)
-#29765 := (= #28710 #15413)
-#29763 := (= #27533 ?x52!15)
-#27534 := (= ?x52!15 #27533)
-#27563 := (or #5378 #27534)
-#27564 := [quant-inst]: #27563
-#29762 := [unit-resolution #27564 #4300]: #27534
-#29764 := [symm #29762]: #29763
-#29766 := [monotonicity #8036 #29764]: #29765
-#29768 := [monotonicity #29766]: #29767
-#29769 := [symm #29768]: #28505
-#29770 := (not #28505)
-#29771 := (or #29770 #28506)
-#29772 := [th-lemma]: #29771
-#29773 := [unit-resolution #29772 #29769]: #28506
-#5902 := (* -1::int #5856)
-#6232 := (+ #144 #5902)
-#6233 := (>= #6232 0::int)
-#4218 := (or #4583 #4472)
-#4120 := [def-axiom]: #4218
-#14110 := [unit-resolution #4120 #9437]: #4472
-#6959 := (or #4477 #6233)
-#6960 := [quant-inst]: #6959
-#12934 := [unit-resolution #6960 #14110]: #6233
-#7167 := (uf_18 #7128)
-#8141 := (* -1::int #7167)
-#10187 := (+ #5856 #8141)
-#7462 := (>= #10187 0::int)
-#10181 := (= #5856 #7167)
-#14102 := (= #7167 #5856)
-#14103 := [monotonicity #8036]: #14102
-#14104 := [symm #14103]: #10181
-#14105 := (not #10181)
-#25236 := (or #14105 #7462)
-#25243 := [th-lemma]: #25236
-#25235 := [unit-resolution #25243 #14104]: #7462
-#14406 := (<= #15440 0::int)
-#25300 := [hypothesis]: #15443
-#25302 := (or #25301 #14406)
-#25303 := [th-lemma]: #25302
-#25304 := [unit-resolution #25303 #25300]: #14406
-#15344 := (+ #2306 #8141)
-#15518 := (<= #15344 0::int)
-#7164 := (uf_6 uf_17 #7128)
-#7165 := (= uf_8 #7164)
-#25365 := (= #5319 #7164)
-#25361 := (= #7164 #5319)
-#25364 := [monotonicity #8578 #8036]: #25361
-#25366 := [symm #25364]: #25365
-#25367 := [trans #8579 #25366]: #7165
-#15503 := (uf_1 #7128 ?x52!15)
-#15504 := (uf_10 #15503)
-#15530 := (* -1::int #15504)
-#15531 := (+ #8141 #15530)
-#15532 := (+ #2306 #15531)
-#15533 := (= #15532 0::int)
-#25324 := (or #25301 #15533)
-#15538 := (not #15533)
-#25256 := [hypothesis]: #15538
-#14445 := (>= #15532 0::int)
-#14444 := (+ #15414 #15530)
-#14494 := (>= #14444 0::int)
-#14488 := (= #15414 #15504)
-#25275 := (= #15504 #15414)
-#25257 := (= #15503 #15413)
-#25274 := [monotonicity #8036]: #25257
-#25270 := [monotonicity #25274]: #25275
-#25276 := [symm #25270]: #14488
-#25277 := (not #14488)
-#25278 := (or #25277 #14494)
-#25279 := [th-lemma]: #25278
-#25280 := [unit-resolution #25279 #25276]: #14494
-#25306 := (not #14406)
-#25305 := (not #14494)
-#13409 := (not #6233)
-#25299 := (not #7462)
-#25307 := (or #14445 #25299 #13409 #25305 #25306)
-#25308 := [th-lemma]: #25307
-#25309 := [unit-resolution #25308 #25304 #25235 #12934 #25280]: #14445
-#14391 := (<= #15532 0::int)
-#14441 := (<= #14444 0::int)
-#25316 := (or #25277 #14441)
-#25317 := [th-lemma]: #25316
-#25315 := [unit-resolution #25317 #25276]: #14441
-#6970 := (<= #6232 0::int)
-#14098 := (not #5857)
-#14099 := (or #14098 #6970)
-#14100 := [th-lemma]: #14099
-#14101 := [unit-resolution #14100 #8570]: #6970
-#10188 := (<= #10187 0::int)
-#14106 := (or #14105 #10188)
-#14107 := [th-lemma]: #14106
-#14108 := [unit-resolution #14107 #14104]: #10188
-#14435 := (>= #15440 0::int)
-#25318 := (or #25301 #14435)
-#25319 := [th-lemma]: #25318
-#25320 := [unit-resolution #25319 #25300]: #14435
-#25333 := (not #14435)
-#25332 := (not #14441)
-#12642 := (not #6970)
-#25331 := (not #10188)
-#25334 := (or #14391 #25331 #12642 #25332 #25333)
-#25335 := [th-lemma]: #25334
-#25336 := [unit-resolution #25335 #25320 #14108 #14101 #25315]: #14391
-#25314 := (not #14445)
-#25337 := (not #14391)
-#25321 := (or #15533 #25337 #25314)
-#25322 := [th-lemma]: #25321
-#25323 := [unit-resolution #25322 #25336 #25309 #25256]: false
-#25313 := [lemma #25323]: #25324
-#29774 := [unit-resolution #25313 #25300]: #15533
-#7166 := (not #7165)
-#15541 := (or #7166 #15518 #15538)
-#6002 := (+ #108 #1449)
-#7864 := (<= #6002 0::int)
-#23377 := (= #108 #144)
-#12197 := (= #144 #108)
-#5945 := (= uf_16 uf_11)
-#5947 := (= uf_11 uf_16)
-#5928 := (?x40!7 uf_16)
-#5932 := (uf_4 uf_14 #5928)
-#5933 := (* -1::int #5932)
-#5929 := (uf_1 #5928 uf_16)
-#5930 := (uf_10 #5929)
-#5931 := (* -1::int #5930)
-#5950 := (+ #5931 #5933)
-#5951 := (+ #144 #5950)
-#5954 := (= #5951 0::int)
-#5957 := (not #5954)
-#5940 := (uf_6 uf_15 #5928)
-#5941 := (= uf_8 #5940)
-#5942 := (not #5941)
-#5938 := (+ #144 #5933)
-#5939 := (<= #5938 0::int)
-#5963 := (or #5939 #5942 #5957)
-#6003 := (>= #6002 0::int)
-#9539 := (not #7864)
-#23470 := [hypothesis]: #9539
-#23505 := (or #7864 #6003)
-#23465 := [th-lemma]: #23505
-#23464 := [unit-resolution #23465 #23470]: #6003
-#9672 := (not #6003)
-#18009 := (or #9672 #5939)
-#7466 := (>= #5932 0::int)
-#8252 := (not #7466)
-#8253 := [hypothesis]: #8252
-#8212 := (or #4409 #7466)
-#8206 := [quant-inst]: #8212
-#8263 := [unit-resolution #8206 #7305 #8253]: false
-#8264 := [lemma #8263]: #7466
-#17999 := (or #9672 #8252 #5939)
-#4050 := (<= #108 0::int)
-#7308 := (or #1854 #4050)
-#7309 := [th-lemma]: #7308
-#7310 := [unit-resolution #7309 #7307]: #4050
-#5512 := (not #4050)
-#17980 := (or #9672 #5512 #8252 #5939)
-#17982 := [th-lemma]: #17980
-#17995 := [unit-resolution #17982 #7310]: #17999
-#18007 := [unit-resolution #17995 #8264]: #18009
-#23469 := [unit-resolution #18007 #23464]: #5939
-#7005 := (not #5939)
-#7006 := (or #5963 #7005)
-#7007 := [def-axiom]: #7006
-#23506 := [unit-resolution #7007 #23469]: #5963
-#5968 := (not #5963)
-#18000 := (or #5947 #5968)
-#4208 := (or #4595 #1657)
-#4210 := [def-axiom]: #4208
-#16348 := [unit-resolution #4210 #7389]: #1657
-#6992 := (or #4442 #1656 #5947 #5968)
-#5934 := (+ #5933 #5931)
-#5935 := (+ #144 #5934)
-#5936 := (= #5935 0::int)
-#5937 := (not #5936)
-#5943 := (or #5942 #5939 #5937)
-#5944 := (not #5943)
-#5946 := (or #5945 #1656 #5944)
-#6993 := (or #4442 #5946)
-#7000 := (iff #6993 #6992)
-#5974 := (or #1656 #5947 #5968)
-#6995 := (or #4442 #5974)
-#6998 := (iff #6995 #6992)
-#6999 := [rewrite]: #6998
-#6996 := (iff #6993 #6995)
-#5977 := (iff #5946 #5974)
-#5971 := (or #5947 #1656 #5968)
-#5975 := (iff #5971 #5974)
-#5976 := [rewrite]: #5975
-#5972 := (iff #5946 #5971)
-#5969 := (iff #5944 #5968)
-#5966 := (iff #5943 #5963)
-#5960 := (or #5942 #5939 #5957)
-#5964 := (iff #5960 #5963)
-#5965 := [rewrite]: #5964
-#5961 := (iff #5943 #5960)
-#5958 := (iff #5937 #5957)
-#5955 := (iff #5936 #5954)
-#5952 := (= #5935 #5951)
-#5953 := [rewrite]: #5952
-#5956 := [monotonicity #5953]: #5955
-#5959 := [monotonicity #5956]: #5958
-#5962 := [monotonicity #5959]: #5961
-#5967 := [trans #5962 #5965]: #5966
-#5970 := [monotonicity #5967]: #5969
-#5948 := (iff #5945 #5947)
-#5949 := [rewrite]: #5948
-#5973 := [monotonicity #5949 #5970]: #5972
-#5978 := [trans #5973 #5976]: #5977
-#6997 := [monotonicity #5978]: #6996
-#7001 := [trans #6997 #6999]: #7000
-#6994 := [quant-inst]: #6993
-#7002 := [mp #6994 #7001]: #6992
-#18030 := [unit-resolution #7002 #8030 #16348]: #18000
-#23510 := [unit-resolution #18030 #23506]: #5947
-#12009 := [symm #23510]: #5945
-#12163 := [monotonicity #12009]: #12197
-#12023 := [symm #12163]: #23377
-#12215 := (not #23377)
-#12216 := (or #12215 #7864)
-#11464 := [th-lemma]: #12216
-#12217 := [unit-resolution #11464 #23470 #12023]: false
-#12311 := [lemma #12217]: #7864
-#9540 := (or #2234 #9539)
-#6554 := (uf_1 uf_16 ?x47!10)
-#6555 := (uf_10 #6554)
-#6435 := (* -1::int #2233)
-#6597 := (+ #6435 #6555)
-#6598 := (+ #144 #6597)
-#8322 := (<= #6598 0::int)
-#6601 := (= #6598 0::int)
-#6538 := (* -1::int #6555)
-#6539 := (+ uf_9 #6538)
-#6540 := (<= #6539 0::int)
-#8336 := (not #6540)
-#6327 := (uf_4 uf_14 ?x47!10)
-#6471 := (* -1::int #6327)
-#6590 := (+ #6471 #6555)
-#6591 := (+ #144 #6590)
-#6592 := (>= #6591 0::int)
-#6650 := (or #6540 #6592)
-#6660 := (not #6650)
-#6344 := (= #2233 #6327)
-#9327 := (not #6344)
-#6472 := (+ #2233 #6471)
-#8301 := (>= #6472 0::int)
-#9317 := (not #8301)
-#9321 := [hypothesis]: #2235
-#6814 := (>= #6327 0::int)
-#7656 := (or #4409 #6814)
-#7657 := [quant-inst]: #7656
-#9322 := [unit-resolution #7657 #7305]: #6814
-#9323 := (not #6814)
-#9324 := (or #9317 #2234 #9323)
-#9325 := [th-lemma]: #9324
-#9326 := [unit-resolution #9325 #9322 #9321]: #9317
-#9347 := (or #9327 #8301)
-#9348 := [th-lemma]: #9347
-#9349 := [unit-resolution #9348 #9326]: #9327
-#6662 := (or #6344 #6660)
-#8339 := (or #4461 #6344 #6660)
-#6541 := (+ #1449 #6538)
-#6536 := (+ #6327 #6541)
-#6542 := (<= #6536 0::int)
-#6641 := (or #6542 #6540)
-#6642 := (not #6641)
-#6328 := (= #6327 #2233)
-#6643 := (or #6328 #6642)
-#8314 := (or #4461 #6643)
-#8333 := (iff #8314 #8339)
-#8281 := (or #4461 #6662)
-#8343 := (iff #8281 #8339)
-#8332 := [rewrite]: #8343
-#8341 := (iff #8314 #8281)
-#6663 := (iff #6643 #6662)
-#6661 := (iff #6642 #6660)
-#6655 := (iff #6641 #6650)
-#6649 := (or #6592 #6540)
-#6653 := (iff #6649 #6650)
-#6654 := [rewrite]: #6653
-#6651 := (iff #6641 #6649)
-#6595 := (iff #6542 #6592)
-#6544 := (+ #6327 #6538)
-#6545 := (+ #1449 #6544)
-#6562 := (<= #6545 0::int)
-#6593 := (iff #6562 #6592)
-#6594 := [rewrite]: #6593
-#6587 := (iff #6542 #6562)
-#6546 := (= #6536 #6545)
-#6561 := [rewrite]: #6546
-#6589 := [monotonicity #6561]: #6587
-#6596 := [trans #6589 #6594]: #6595
-#6652 := [monotonicity #6596]: #6651
-#6658 := [trans #6652 #6654]: #6655
-#6659 := [monotonicity #6658]: #6661
-#6383 := (iff #6328 #6344)
-#6384 := [rewrite]: #6383
-#6664 := [monotonicity #6384 #6659]: #6663
-#8342 := [monotonicity #6664]: #8341
-#8334 := [trans #8342 #8332]: #8333
-#8340 := [quant-inst]: #8314
-#8335 := [mp #8340 #8334]: #8339
-#9350 := [unit-resolution #8335 #8574]: #6662
-#9351 := [unit-resolution #9350 #9349]: #6660
-#8327 := (or #6650 #8336)
-#8352 := [def-axiom]: #8327
-#9346 := [unit-resolution #8352 #9351]: #8336
-#8360 := (not #6592)
-#8348 := (or #6650 #8360)
-#8353 := [def-axiom]: #8348
-#9352 := [unit-resolution #8353 #9351]: #8360
-#6607 := (or #6540 #6592 #6601)
-#8318 := (or #4469 #6540 #6592 #6601)
-#6556 := (+ #6555 #6435)
-#6557 := (+ #144 #6556)
-#6537 := (= #6557 0::int)
-#6543 := (or #6542 #6540 #6537)
-#8344 := (or #4469 #6543)
-#8331 := (iff #8344 #8318)
-#8349 := (or #4469 #6607)
-#8330 := (iff #8349 #8318)
-#8325 := [rewrite]: #8330
-#8328 := (iff #8344 #8349)
-#6578 := (iff #6543 #6607)
-#6604 := (or #6592 #6540 #6601)
-#6579 := (iff #6604 #6607)
-#6580 := [rewrite]: #6579
-#6605 := (iff #6543 #6604)
-#6602 := (iff #6537 #6601)
-#6599 := (= #6557 #6598)
-#6600 := [rewrite]: #6599
-#6603 := [monotonicity #6600]: #6602
-#6606 := [monotonicity #6596 #6603]: #6605
-#6581 := [trans #6606 #6580]: #6578
-#8329 := [monotonicity #6581]: #8328
-#8320 := [trans #8329 #8325]: #8331
-#8345 := [quant-inst]: #8344
-#8321 := [mp #8345 #8320]: #8318
-#9353 := [unit-resolution #8321 #7390]: #6607
-#9354 := [unit-resolution #9353 #9352 #9346]: #6601
-#9355 := (not #6601)
-#9356 := (or #9355 #8322)
-#9367 := [th-lemma]: #9356
-#9368 := [unit-resolution #9367 #9354]: #8322
-#9369 := [hypothesis]: #7864
-#4041 := (>= #108 0::int)
-#9370 := (or #1854 #4041)
-#9371 := [th-lemma]: #9370
-#9366 := [unit-resolution #9371 #7307]: #4041
-#8900 := (uf_1 #7128 ?x47!10)
-#8901 := (uf_10 #8900)
-#8908 := (* -1::int #8901)
-#9307 := (+ #6555 #8908)
-#9320 := (>= #9307 0::int)
-#9304 := (= #6555 #8901)
-#9374 := (= #8901 #6555)
-#9372 := (= #8900 #6554)
-#9373 := [monotonicity #8036]: #9372
-#9375 := [monotonicity #9373]: #9374
-#9376 := [symm #9375]: #9304
-#9382 := (not #9304)
-#9383 := (or #9382 #9320)
-#9432 := [th-lemma]: #9383
-#9433 := [unit-resolution #9432 #9376]: #9320
-#9287 := (>= #8901 0::int)
-#9080 := (<= #8901 0::int)
-#9207 := (not #9080)
-#8373 := (= ?x47!10 #7128)
-#8730 := (not #8373)
-#6710 := (uf_6 uf_15 ?x47!10)
-#6711 := (= uf_8 #6710)
-#8599 := (ite #8373 #5314 #6711)
-#8729 := (not #8599)
-#7658 := (uf_6 #7203 ?x47!10)
-#8338 := (= uf_8 #7658)
-#8700 := (iff #8338 #8599)
-#8684 := (or #7026 #8700)
-#7640 := (ite #8373 #6089 #6711)
-#7653 := (= #7658 uf_8)
-#8337 := (iff #7653 #7640)
-#8723 := (or #7026 #8337)
-#8725 := (iff #8723 #8684)
-#8726 := (iff #8684 #8684)
-#8722 := [rewrite]: #8726
-#8682 := (iff #8337 #8700)
-#8326 := (iff #7640 #8599)
-#8600 := [monotonicity #6102]: #8326
-#8410 := (iff #7653 #8338)
-#8521 := [rewrite]: #8410
-#8683 := [monotonicity #8521 #8600]: #8682
-#8720 := [monotonicity #8683]: #8725
-#8727 := [trans #8720 #8722]: #8725
-#8724 := [quant-inst]: #8723
-#8728 := [mp #8724 #8727]: #8684
-#9434 := [unit-resolution #8728 #4320]: #8700
-#8895 := (not #8338)
-#6323 := (uf_6 uf_17 ?x47!10)
-#6325 := (= uf_8 #6323)
-#6326 := (not #6325)
-#9431 := (iff #6326 #8895)
-#9429 := (iff #6325 #8338)
-#9427 := (iff #8338 #6325)
-#9426 := (= #7658 #6323)
-#9421 := [monotonicity #8591]: #9426
-#9428 := [monotonicity #9421]: #9427
-#9430 := [symm #9428]: #9429
-#9460 := [monotonicity #9430]: #9431
-#6382 := (or #6326 #6344)
-#8268 := (or #4486 #6326 #6344)
-#6343 := (or #6328 #6326)
-#8269 := (or #4486 #6343)
-#8297 := (iff #8269 #8268)
-#8294 := (or #4486 #6382)
-#8296 := (iff #8294 #8268)
-#8283 := [rewrite]: #8296
-#8284 := (iff #8269 #8294)
-#6390 := (iff #6343 #6382)
-#6385 := (or #6344 #6326)
-#6388 := (iff #6385 #6382)
-#6389 := [rewrite]: #6388
-#6386 := (iff #6343 #6385)
-#6387 := [monotonicity #6384]: #6386
-#6391 := [trans #6387 #6389]: #6390
-#8295 := [monotonicity #6391]: #8284
-#8298 := [trans #8295 #8283]: #8297
-#8293 := [quant-inst]: #8269
-#8299 := [mp #8293 #8298]: #8268
-#9424 := [unit-resolution #8299 #9423]: #6382
-#9425 := [unit-resolution #9424 #9349]: #6326
-#9461 := [mp #9425 #9460]: #8895
-#8917 := (not #8700)
-#8920 := (or #8917 #8338 #8729)
-#8894 := [def-axiom]: #8920
-#9462 := [unit-resolution #8894 #9461 #9434]: #8729
-#9463 := (or #8599 #8730)
-#7040 := (not #5314)
-#8907 := (or #8599 #8730 #7040)
-#8910 := [def-axiom]: #8907
-#9464 := [unit-resolution #8910 #8579]: #9463
-#9459 := [unit-resolution #9464 #9462]: #8730
-#9206 := (or #8373 #9207)
-#9214 := (or #7093 #8373 #9207)
-#9208 := (= #7128 ?x47!10)
-#9209 := (or #9208 #9207)
-#9215 := (or #7093 #9209)
-#9241 := (iff #9215 #9214)
-#9242 := (or #7093 #9206)
-#9245 := (iff #9242 #9214)
-#9246 := [rewrite]: #9245
-#9243 := (iff #9215 #9242)
-#9212 := (iff #9209 #9206)
-#9210 := (iff #9208 #8373)
-#9211 := [rewrite]: #9210
-#9213 := [monotonicity #9211]: #9212
-#9244 := [monotonicity #9213]: #9243
-#9247 := [trans #9244 #9246]: #9241
-#9216 := [quant-inst]: #9215
-#9248 := [mp #9216 #9247]: #9214
-#9465 := [unit-resolution #9248 #4347]: #9206
-#9466 := [unit-resolution #9465 #9459]: #9207
-#9467 := (or #9287 #9080)
-#9468 := [th-lemma]: #9467
-#9469 := [unit-resolution #9468 #9466]: #9287
-#9538 := [th-lemma #9321 #9469 #9433 #9366 #9369 #9368]: false
-#9541 := [lemma #9538]: #9540
-#29775 := [unit-resolution #9541 #12311]: #2234
-#4222 := (or #4571 #4565)
-#4223 := [def-axiom]: #4222
-#25326 := [unit-resolution #4223 #9422]: #4565
-#25357 := (or #4568 #4562)
-#6056 := (= #108 #172)
-#25354 := (iff #6056 #173)
-#25353 := [commutativity]: #1490
-#25351 := (iff #6056 #645)
-#25352 := [monotonicity #7307]: #25351
-#25355 := [trans #25352 #25353]: #25354
-#6015 := (uf_10 #6008)
-#6019 := (* -1::int #6015)
-#6022 := (+ #1449 #6019)
-#6023 := (+ #108 #6022)
-#6024 := (<= #6023 0::int)
-#6020 := (+ uf_9 #6019)
-#6021 := (<= #6020 0::int)
-#6058 := (or #6021 #6024)
-#7125 := (>= #6015 0::int)
-#7105 := (= #6015 0::int)
-#7087 := (<= #6015 0::int)
-#4062 := (not #6024)
-#7293 := [hypothesis]: #4062
-#7312 := (or #7087 #6024)
-#7088 := (not #7087)
-#7292 := [hypothesis]: #7088
-#6001 := (>= #144 0::int)
-#7016 := (or #4409 #6001)
-#7017 := [quant-inst]: #7016
-#7306 := [unit-resolution #7017 #7305]: #6001
-#7311 := [th-lemma #7310 #7306 #7293 #7292]: false
-#7313 := [lemma #7311]: #7312
-#7186 := [unit-resolution #7313 #7293]: #7087
-#7090 := (or #5947 #7088)
-#7094 := (or #7093 #5947 #7088)
-#7089 := (or #5945 #7088)
-#7095 := (or #7093 #7089)
-#7102 := (iff #7095 #7094)
-#7097 := (or #7093 #7090)
-#7100 := (iff #7097 #7094)
-#7101 := [rewrite]: #7100
-#7098 := (iff #7095 #7097)
-#7091 := (iff #7089 #7090)
-#7092 := [monotonicity #5949]: #7091
-#7099 := [monotonicity #7092]: #7098
-#7103 := [trans #7099 #7101]: #7102
-#7096 := [quant-inst]: #7095
-#7104 := [mp #7096 #7103]: #7094
-#7187 := [unit-resolution #7104 #4347]: #7090
-#7182 := [unit-resolution #7187 #7186]: #5947
-#7108 := (not #5947)
-#7111 := (or #7108 #7105)
-#7114 := (or #6863 #7108 #7105)
-#7106 := (not #5945)
-#7107 := (or #7106 #7105)
-#7115 := (or #6863 #7107)
-#7122 := (iff #7115 #7114)
-#7117 := (or #6863 #7111)
-#7120 := (iff #7117 #7114)
-#7121 := [rewrite]: #7120
-#7118 := (iff #7115 #7117)
-#7112 := (iff #7107 #7111)
-#7109 := (iff #7106 #7108)
-#7110 := [monotonicity #5949]: #7109
-#7113 := [monotonicity #7110]: #7112
-#7119 := [monotonicity #7113]: #7118
-#7123 := [trans #7119 #7121]: #7122
-#7116 := [quant-inst]: #7115
-#7124 := [mp #7116 #7123]: #7114
-#7188 := [unit-resolution #7124 #4341]: #7111
-#7189 := [unit-resolution #7188 #7182]: #7105
-#7190 := (not #7105)
-#7191 := (or #7190 #7125)
-#7192 := [th-lemma]: #7191
-#7196 := [unit-resolution #7192 #7189]: #7125
-#7197 := [th-lemma #7310 #7306 #7293 #7196]: false
-#7195 := [lemma #7197]: #6024
-#5757 := (or #6058 #4062)
-#5573 := [def-axiom]: #5757
-#25327 := [unit-resolution #5573 #7195]: #6058
-#6061 := (not #6058)
-#6064 := (or #6056 #6061)
-#6681 := (or #4461 #6056 #6061)
-#6054 := (or #6024 #6021)
-#6055 := (not #6054)
-#6057 := (or #6056 #6055)
-#6682 := (or #4461 #6057)
-#6844 := (iff #6682 #6681)
-#6138 := (or #4461 #6064)
-#6392 := (iff #6138 #6681)
-#6683 := [rewrite]: #6392
-#6118 := (iff #6682 #6138)
-#6065 := (iff #6057 #6064)
-#6062 := (iff #6055 #6061)
-#6059 := (iff #6054 #6058)
-#6060 := [rewrite]: #6059
-#6063 := [monotonicity #6060]: #6062
-#6066 := [monotonicity #6063]: #6065
-#6735 := [monotonicity #6066]: #6118
-#6845 := [trans #6735 #6683]: #6844
-#6137 := [quant-inst]: #6682
-#6878 := [mp #6137 #6845]: #6681
-#25328 := [unit-resolution #6878 #8574]: #6064
-#25329 := [unit-resolution #25328 #25327]: #6056
-#25356 := [mp #25329 #25355]: #173
-#4237 := (or #4568 #1492 #4562)
-#4066 := [def-axiom]: #4237
-#25358 := [unit-resolution #4066 #25356]: #25357
-#25359 := [unit-resolution #25358 #25326]: #4562
-#4232 := (or #4559 #4553)
-#4233 := [def-axiom]: #4232
-#25339 := [unit-resolution #4233 #25359]: #4553
-#4087 := (or #4556 #2235 #4550)
-#4088 := [def-axiom]: #4087
-#25340 := [unit-resolution #4088 #25339]: #4553
-#29776 := [unit-resolution #25340 #29775]: #4550
-#4242 := (or #4547 #4541)
-#4243 := [def-axiom]: #4242
-#29777 := [unit-resolution #4243 #29776]: #4541
-#25343 := (or #4544 #4538)
-#12812 := (= #2249 #5856)
-#12998 := (= ?x48!12 uf_16)
-#10849 := (= ?x48!12 #7128)
-#10847 := (uf_6 uf_15 ?x48!12)
-#10848 := (= uf_8 #10847)
-#10857 := (ite #10849 #5314 #10848)
-#10851 := (uf_6 #7203 ?x48!12)
-#10854 := (= uf_8 #10851)
-#10860 := (iff #10854 #10857)
-#12152 := (or #7026 #10860)
-#10850 := (ite #10849 #6089 #10848)
-#10852 := (= #10851 uf_8)
-#10853 := (iff #10852 #10850)
-#12155 := (or #7026 #10853)
-#10823 := (iff #12155 #12152)
-#10879 := (iff #12152 #12152)
-#10880 := [rewrite]: #10879
-#10861 := (iff #10853 #10860)
-#10858 := (iff #10850 #10857)
-#10859 := [monotonicity #6102]: #10858
-#10855 := (iff #10852 #10854)
-#10856 := [rewrite]: #10855
-#10862 := [monotonicity #10856 #10859]: #10861
-#10824 := [monotonicity #10862]: #10823
-#11111 := [trans #10824 #10880]: #10823
-#12156 := [quant-inst]: #12155
-#11091 := [mp #12156 #11111]: #12152
-#13286 := [unit-resolution #11091 #4320]: #10860
-#12615 := (= #2254 #10851)
-#12608 := (= #10851 #2254)
-#12613 := [monotonicity #8591]: #12608
-#12730 := [symm #12613]: #12615
-#12965 := [hypothesis]: #3403
-#3920 := (or #3398 #2255)
-#4261 := [def-axiom]: #3920
-#12611 := [unit-resolution #4261 #12965]: #2255
-#13209 := [trans #12611 #12730]: #10854
-#11918 := (not #10854)
-#10920 := (not #10860)
-#11919 := (or #10920 #11918 #10857)
-#12057 := [def-axiom]: #11919
-#13217 := [unit-resolution #12057 #13209 #13286]: #10857
-#10236 := (not #10848)
-#11183 := (uf_4 uf_14 ?x48!12)
-#11200 := (* -1::int #11183)
-#13667 := (+ #7168 #11200)
-#13668 := (>= #13667 0::int)
-#13764 := (not #13668)
-#12813 := (+ #2249 #5902)
-#12814 := (<= #12813 0::int)
-#13407 := (not #12814)
-#11572 := (uf_4 uf_14 ?x49!11)
-#11589 := (* -1::int #11572)
-#11709 := (+ #144 #11589)
-#11710 := (<= #11709 0::int)
-#11467 := (uf_6 uf_15 ?x49!11)
-#11468 := (= uf_8 #11467)
-#12026 := (not #11468)
-#11469 := (= ?x49!11 #7128)
-#11477 := (ite #11469 #5314 #11468)
-#12038 := (not #11477)
-#11471 := (uf_6 #7203 ?x49!11)
-#11474 := (= uf_8 #11471)
-#11480 := (iff #11474 #11477)
-#12030 := (or #7026 #11480)
-#11470 := (ite #11469 #6089 #11468)
-#11472 := (= #11471 uf_8)
-#11473 := (iff #11472 #11470)
-#12028 := (or #7026 #11473)
-#12024 := (iff #12028 #12030)
-#12033 := (iff #12030 #12030)
-#12035 := [rewrite]: #12033
-#11481 := (iff #11473 #11480)
-#11478 := (iff #11470 #11477)
-#11479 := [monotonicity #6102]: #11478
-#11475 := (iff #11472 #11474)
-#11476 := [rewrite]: #11475
-#11482 := [monotonicity #11476 #11479]: #11481
-#12032 := [monotonicity #11482]: #12024
-#12036 := [trans #12032 #12035]: #12024
-#12031 := [quant-inst]: #12028
-#12034 := [mp #12031 #12036]: #12030
-#13262 := [unit-resolution #12034 #4320]: #11480
-#12051 := (not #11474)
-#13387 := (iff #2258 #12051)
-#13353 := (iff #2257 #11474)
-#12939 := (iff #11474 #2257)
-#13219 := (= #11471 #2256)
-#13243 := [monotonicity #8591]: #13219
-#13039 := [monotonicity #13243]: #12939
-#13377 := [symm #13039]: #13353
-#13388 := [monotonicity #13377]: #13387
-#3924 := (or #3398 #2258)
-#3925 := [def-axiom]: #3924
-#12937 := [unit-resolution #3925 #12965]: #2258
-#12543 := [mp #12937 #13388]: #12051
-#12047 := (not #11480)
-#12048 := (or #12047 #11474 #12038)
-#12050 := [def-axiom]: #12048
-#12544 := [unit-resolution #12050 #12543 #13262]: #12038
-#12039 := (not #11469)
-#12539 := (or #11477 #12039)
-#12042 := (or #11477 #12039 #7040)
-#12043 := [def-axiom]: #12042
-#12545 := [unit-resolution #12043 #8579]: #12539
-#12546 := [unit-resolution #12545 #12544]: #12039
-#12044 := (or #11477 #11469 #12026)
-#12045 := [def-axiom]: #12044
-#12548 := [unit-resolution #12045 #12546 #12544]: #12026
-#11715 := (or #11468 #11710)
-#4217 := (or #4595 #4446)
-#4221 := [def-axiom]: #4217
-#12574 := [unit-resolution #4221 #7389]: #4446
-#12438 := (or #4451 #11468 #11710)
-#11700 := (+ #11572 #1449)
-#11701 := (>= #11700 0::int)
-#11702 := (or #11468 #11701)
-#12444 := (or #4451 #11702)
-#12454 := (iff #12444 #12438)
-#12448 := (or #4451 #11715)
-#12452 := (iff #12448 #12438)
-#12453 := [rewrite]: #12452
-#12450 := (iff #12444 #12448)
-#11716 := (iff #11702 #11715)
-#11713 := (iff #11701 #11710)
-#11703 := (+ #1449 #11572)
-#11706 := (>= #11703 0::int)
-#11711 := (iff #11706 #11710)
-#11712 := [rewrite]: #11711
-#11707 := (iff #11701 #11706)
-#11704 := (= #11700 #11703)
-#11705 := [rewrite]: #11704
-#11708 := [monotonicity #11705]: #11707
-#11714 := [trans #11708 #11712]: #11713
-#11717 := [monotonicity #11714]: #11716
-#12451 := [monotonicity #11717]: #12450
-#12449 := [trans #12451 #12453]: #12454
-#12447 := [quant-inst]: #12444
-#12455 := [mp #12447 #12449]: #12438
-#12575 := [unit-resolution #12455 #12574]: #11715
-#12576 := [unit-resolution #12575 #12548]: #11710
-#3926 := (not #2855)
-#3927 := (or #3398 #3926)
-#4263 := [def-axiom]: #3927
-#12577 := [unit-resolution #4263 #12965]: #3926
-#13397 := (not #11710)
-#12612 := (or #13407 #2855 #11469 #13397)
-#11605 := (uf_1 uf_16 ?x49!11)
-#11606 := (uf_10 #11605)
-#11631 := (+ #2853 #11606)
-#11632 := (+ #144 #11631)
-#12233 := (<= #11632 0::int)
-#11635 := (= #11632 0::int)
-#11610 := (* -1::int #11606)
-#11611 := (+ uf_9 #11610)
-#11612 := (<= #11611 0::int)
-#12253 := (not #11612)
-#11624 := (+ #11589 #11606)
-#11625 := (+ #144 #11624)
-#11626 := (>= #11625 0::int)
-#11669 := (or #11612 #11626)
-#11674 := (not #11669)
-#11663 := (= #2251 #11572)
-#13437 := (not #11663)
-#11590 := (+ #2251 #11589)
-#12252 := (>= #11590 0::int)
-#13367 := (not #12252)
-#13284 := [hypothesis]: #11710
-#13478 := [hypothesis]: #3926
-#13215 := [hypothesis]: #12814
-#13389 := (or #13367 #13397 #2855 #13407 #13409)
-#13410 := [th-lemma]: #13389
-#13436 := [unit-resolution #13410 #13215 #13478 #13284 #12934]: #13367
-#13434 := (or #13437 #12252)
-#12573 := [th-lemma]: #13434
-#13419 := [unit-resolution #12573 #13436]: #13437
-#11677 := (or #11663 #11674)
-#12241 := (or #4461 #11663 #11674)
-#11613 := (+ #1449 #11610)
-#11614 := (+ #11572 #11613)
-#11615 := (<= #11614 0::int)
-#11659 := (or #11615 #11612)
-#11660 := (not #11659)
-#11661 := (= #11572 #2251)
-#11662 := (or #11661 #11660)
-#12242 := (or #4461 #11662)
-#12249 := (iff #12242 #12241)
-#12245 := (or #4461 #11677)
-#12247 := (iff #12245 #12241)
-#12248 := [rewrite]: #12247
-#12239 := (iff #12242 #12245)
-#11678 := (iff #11662 #11677)
-#11675 := (iff #11660 #11674)
-#11672 := (iff #11659 #11669)
-#11666 := (or #11626 #11612)
-#11670 := (iff #11666 #11669)
-#11671 := [rewrite]: #11670
-#11667 := (iff #11659 #11666)
-#11629 := (iff #11615 #11626)
-#11617 := (+ #11572 #11610)
-#11618 := (+ #1449 #11617)
-#11621 := (<= #11618 0::int)
-#11627 := (iff #11621 #11626)
-#11628 := [rewrite]: #11627
-#11622 := (iff #11615 #11621)
-#11619 := (= #11614 #11618)
-#11620 := [rewrite]: #11619
-#11623 := [monotonicity #11620]: #11622
-#11630 := [trans #11623 #11628]: #11629
-#11668 := [monotonicity #11630]: #11667
-#11673 := [trans #11668 #11671]: #11672
-#11676 := [monotonicity #11673]: #11675
-#11664 := (iff #11661 #11663)
-#11665 := [rewrite]: #11664
-#11679 := [monotonicity #11665 #11676]: #11678
-#12246 := [monotonicity #11679]: #12239
-#12244 := [trans #12246 #12248]: #12249
-#12243 := [quant-inst]: #12242
-#12251 := [mp #12243 #12244]: #12241
-#13417 := [unit-resolution #12251 #8574]: #11677
-#13423 := [unit-resolution #13417 #13419]: #11674
-#12254 := (or #11669 #12253)
-#12258 := [def-axiom]: #12254
-#13426 := [unit-resolution #12258 #13423]: #12253
-#12250 := (not #11626)
-#12259 := (or #11669 #12250)
-#12257 := [def-axiom]: #12259
-#13412 := [unit-resolution #12257 #13423]: #12250
-#11641 := (or #11612 #11626 #11635)
-#12229 := (or #4469 #11612 #11626 #11635)
-#11607 := (+ #11606 #2853)
-#11608 := (+ #144 #11607)
-#11609 := (= #11608 0::int)
-#11616 := (or #11615 #11612 #11609)
-#12222 := (or #4469 #11616)
-#12236 := (iff #12222 #12229)
-#12231 := (or #4469 #11641)
-#12227 := (iff #12231 #12229)
-#12235 := [rewrite]: #12227
-#12232 := (iff #12222 #12231)
-#11644 := (iff #11616 #11641)
-#11638 := (or #11626 #11612 #11635)
-#11642 := (iff #11638 #11641)
-#11643 := [rewrite]: #11642
-#11639 := (iff #11616 #11638)
-#11636 := (iff #11609 #11635)
-#11633 := (= #11608 #11632)
-#11634 := [rewrite]: #11633
-#11637 := [monotonicity #11634]: #11636
-#11640 := [monotonicity #11630 #11637]: #11639
-#11645 := [trans #11640 #11643]: #11644
-#12234 := [monotonicity #11645]: #12232
-#12237 := [trans #12234 #12235]: #12236
-#12230 := [quant-inst]: #12222
-#12238 := [mp #12230 #12237]: #12229
-#13413 := [unit-resolution #12238 #7390]: #11641
-#13433 := [unit-resolution #13413 #13412 #13426]: #11635
-#13370 := (not #11635)
-#13390 := (or #13370 #12233)
-#13391 := [th-lemma]: #13390
-#13385 := [unit-resolution #13391 #13433]: #12233
-#12787 := (uf_1 #7128 ?x49!11)
-#12788 := (uf_10 #12787)
-#12790 := (* -1::int #12788)
-#13285 := (+ #11606 #12790)
-#13280 := (>= #13285 0::int)
-#13216 := (= #11606 #12788)
-#12644 := (= #12788 #11606)
-#12645 := (= #12787 #11605)
-#13418 := [monotonicity #8036]: #12645
-#12646 := [monotonicity #13418]: #12644
-#12578 := [symm #12646]: #13216
-#12641 := (not #13216)
-#12647 := (or #12641 #13280)
-#12643 := [th-lemma]: #12647
-#12582 := [unit-resolution #12643 #12578]: #13280
-#13068 := (<= #12788 0::int)
-#13063 := (not #13068)
-#12581 := [hypothesis]: #12039
-#13211 := (or #7093 #11469 #13063)
-#12936 := (= #7128 ?x49!11)
-#13162 := (or #12936 #13063)
-#13263 := (or #7093 #13162)
-#13354 := (iff #13263 #13211)
-#13255 := (or #11469 #13063)
-#13161 := (or #7093 #13255)
-#13351 := (iff #13161 #13211)
-#13352 := [rewrite]: #13351
-#13071 := (iff #13263 #13161)
-#13069 := (iff #13162 #13255)
-#13204 := (iff #12936 #11469)
-#13265 := [rewrite]: #13204
-#13210 := [monotonicity #13265]: #13069
-#13163 := [monotonicity #13210]: #13071
-#13067 := [trans #13163 #13352]: #13354
-#13160 := [quant-inst]: #13263
-#13355 := [mp #13160 #13067]: #13211
-#12609 := [unit-resolution #13355 #4347 #12581]: #13063
-#12610 := [th-lemma #13478 #13215 #12934 #12609 #12582 #13385]: false
-#12583 := [lemma #12610]: #12612
-#12780 := [unit-resolution #12583 #12577 #12546 #12576]: #13407
-#11201 := (+ #2249 #11200)
-#11202 := (<= #11201 0::int)
-#12087 := (or #4477 #11202)
-#11190 := (+ #11183 #2250)
-#11193 := (>= #11190 0::int)
-#12088 := (or #4477 #11193)
-#12090 := (iff #12088 #12087)
-#12092 := (iff #12087 #12087)
-#12093 := [rewrite]: #12092
-#11205 := (iff #11193 #11202)
-#11194 := (+ #2250 #11183)
-#11197 := (>= #11194 0::int)
-#11203 := (iff #11197 #11202)
-#11204 := [rewrite]: #11203
-#11198 := (iff #11193 #11197)
-#11195 := (= #11190 #11194)
-#11196 := [rewrite]: #11195
-#11199 := [monotonicity #11196]: #11198
-#11206 := [trans #11199 #11204]: #11205
-#12091 := [monotonicity #11206]: #12090
-#12095 := [trans #12091 #12093]: #12090
-#12085 := [quant-inst]: #12088
-#12097 := [mp #12085 #12095]: #12087
-#13218 := [unit-resolution #12097 #14110]: #11202
-#12617 := (not #11202)
-#12729 := (not #7572)
-#12728 := (or #13764 #12729 #12814 #12617 #12642)
-#12733 := [th-lemma]: #12728
-#12616 := [unit-resolution #12733 #13218 #9185 #14101 #12780]: #13764
-#13844 := (or #10236 #13668)
-#13842 := [hypothesis]: #13764
-#13843 := [hypothesis]: #10848
-#13801 := (or #4426 #7247 #10236 #13668)
-#13669 := (or #10236 #7247 #13668)
-#13802 := (or #4426 #13669)
-#13788 := (iff #13802 #13801)
-#13670 := (or #7247 #10236 #13668)
-#13804 := (or #4426 #13670)
-#13786 := (iff #13804 #13801)
-#13787 := [rewrite]: #13786
-#13805 := (iff #13802 #13804)
-#13665 := (iff #13669 #13670)
-#13671 := [rewrite]: #13665
-#13806 := [monotonicity #13671]: #13805
-#13789 := [trans #13806 #13787]: #13788
-#13803 := [quant-inst]: #13802
-#13790 := [mp #13803 #13789]: #13801
-#13838 := [unit-resolution #13790 #9153 #9152 #13843 #13842]: false
-#13845 := [lemma #13838]: #13844
-#12734 := [unit-resolution #13845 #12616]: #10236
-#11030 := (not #10857)
-#11307 := (or #11030 #10849 #10848)
-#11294 := [def-axiom]: #11307
-#12742 := [unit-resolution #11294 #12734 #13217]: #10849
-#12732 := [trans #12742 #8036]: #12998
-#12743 := [monotonicity #12732]: #12812
-#12969 := (not #12812)
-#12967 := (or #12969 #12814)
-#12973 := [th-lemma]: #12967
-#12786 := [unit-resolution #12973 #12780]: #12969
-#12771 := [unit-resolution #12786 #12743]: false
-#12735 := [lemma #12771]: #3398
-#4251 := (or #4544 #3403 #4538)
-#4248 := [def-axiom]: #4251
-#25338 := [unit-resolution #4248 #12735]: #25343
-#29778 := [unit-resolution #25338 #29777]: #4538
-#3968 := (or #4535 #4529)
-#3969 := [def-axiom]: #3968
-#29779 := [unit-resolution #3969 #29778]: #4529
-#25346 := (or #4532 #4526)
-#17148 := [hypothesis]: #3449
-#4266 := (or #3444 #2287)
-#4267 := [def-axiom]: #4266
-#17149 := [unit-resolution #4267 #17148]: #2287
-#9931 := (uf_1 uf_16 ?x50!14)
-#9932 := (uf_10 #9931)
-#9936 := (* -1::int #9932)
-#17081 := (+ #2281 #9936)
-#17083 := (>= #17081 0::int)
-#17080 := (= #2281 #9932)
-#17180 := (= #2280 #9931)
-#17179 := (= ?x51!13 uf_16)
-#10336 := (= ?x51!13 #7128)
-#10334 := (uf_6 uf_15 ?x51!13)
-#10335 := (= uf_8 #10334)
-#10367 := (not #10335)
-#10193 := (uf_4 uf_14 ?x51!13)
-#9874 := (uf_4 uf_14 ?x50!14)
-#9915 := (* -1::int #9874)
-#10384 := (+ #9915 #10193)
-#10385 := (+ #2281 #10384)
-#10388 := (>= #10385 0::int)
-#17156 := (not #10388)
-#9916 := (+ #2276 #9915)
-#9917 := (<= #9916 0::int)
-#16708 := (or #4477 #9917)
-#9907 := (+ #9874 #2277)
-#9908 := (>= #9907 0::int)
-#16709 := (or #4477 #9908)
-#16711 := (iff #16709 #16708)
-#16713 := (iff #16708 #16708)
-#16714 := [rewrite]: #16713
-#9920 := (iff #9908 #9917)
-#9909 := (+ #2277 #9874)
-#9912 := (>= #9909 0::int)
-#9918 := (iff #9912 #9917)
-#9919 := [rewrite]: #9918
-#9913 := (iff #9908 #9912)
-#9910 := (= #9907 #9909)
-#9911 := [rewrite]: #9910
-#9914 := [monotonicity #9911]: #9913
-#9921 := [trans #9914 #9919]: #9920
-#16712 := [monotonicity #9921]: #16711
-#16715 := [trans #16712 #16714]: #16711
-#16710 := [quant-inst]: #16709
-#16716 := [mp #16710 #16715]: #16708
-#17308 := [unit-resolution #16716 #14110]: #9917
-#3906 := (not #2882)
-#4269 := (or #3444 #3906)
-#4271 := [def-axiom]: #4269
-#17151 := [unit-resolution #4271 #17148]: #3906
-#10228 := (* -1::int #10193)
-#10229 := (+ #2278 #10228)
-#15878 := (>= #10229 0::int)
-#10198 := (= #2278 #10193)
-#4262 := (or #3444 #2289)
-#4268 := [def-axiom]: #4262
-#17152 := [unit-resolution #4268 #17148]: #2289
-#16493 := (or #4486 #3429 #10198)
-#10194 := (= #10193 #2278)
-#10197 := (or #10194 #3429)
-#16494 := (or #4486 #10197)
-#16503 := (iff #16494 #16493)
-#10204 := (or #3429 #10198)
-#16498 := (or #4486 #10204)
-#16501 := (iff #16498 #16493)
-#16502 := [rewrite]: #16501
-#16499 := (iff #16494 #16498)
-#10207 := (iff #10197 #10204)
-#10201 := (or #10198 #3429)
-#10205 := (iff #10201 #10204)
-#10206 := [rewrite]: #10205
-#10202 := (iff #10197 #10201)
-#10199 := (iff #10194 #10198)
-#10200 := [rewrite]: #10199
-#10203 := [monotonicity #10200]: #10202
-#10208 := [trans #10203 #10206]: #10207
-#16500 := [monotonicity #10208]: #16499
-#16504 := [trans #16500 #16502]: #16503
-#16497 := [quant-inst]: #16494
-#16505 := [mp #16497 #16504]: #16493
-#17150 := [unit-resolution #16505 #9423 #17152]: #10198
-#17153 := (not #10198)
-#17154 := (or #17153 #15878)
-#17155 := [th-lemma]: #17154
-#17147 := [unit-resolution #17155 #17150]: #15878
-#17313 := (not #9917)
-#17315 := (not #15878)
-#17157 := (or #17156 #17315 #17313 #2882)
-#17158 := [th-lemma]: #17157
-#17159 := [unit-resolution #17158 #17147 #17151 #17308]: #17156
-#17146 := (or #10367 #10388)
-#16749 := (or #4417 #2286 #10367 #10388)
-#10380 := (+ #10193 #9915)
-#10381 := (+ #2281 #10380)
-#10382 := (>= #10381 0::int)
-#10383 := (or #10367 #2286 #10382)
-#16750 := (or #4417 #10383)
-#16757 := (iff #16750 #16749)
-#10394 := (or #2286 #10367 #10388)
-#16752 := (or #4417 #10394)
-#16755 := (iff #16752 #16749)
-#16756 := [rewrite]: #16755
-#16753 := (iff #16750 #16752)
-#10397 := (iff #10383 #10394)
-#10391 := (or #10367 #2286 #10388)
-#10395 := (iff #10391 #10394)
-#10396 := [rewrite]: #10395
-#10392 := (iff #10383 #10391)
-#10389 := (iff #10382 #10388)
-#10386 := (= #10381 #10385)
-#10387 := [rewrite]: #10386
-#10390 := [monotonicity #10387]: #10389
-#10393 := [monotonicity #10390]: #10392
-#10398 := [trans #10393 #10396]: #10397
-#16754 := [monotonicity #10398]: #16753
-#16758 := [trans #16754 #16756]: #16757
-#16751 := [quant-inst]: #16750
-#16759 := [mp #16751 #16758]: #16749
-#17160 := [unit-resolution #16759 #8027 #17149]: #17146
-#17161 := [unit-resolution #17160 #17159]: #10367
-#10344 := (ite #10336 #5314 #10335)
-#10338 := (uf_6 #7203 ?x51!13)
-#10341 := (= uf_8 #10338)
-#10347 := (iff #10341 #10344)
-#16506 := (or #7026 #10347)
-#10337 := (ite #10336 #6089 #10335)
-#10339 := (= #10338 uf_8)
-#10340 := (iff #10339 #10337)
-#16507 := (or #7026 #10340)
-#16509 := (iff #16507 #16506)
-#16511 := (iff #16506 #16506)
-#16512 := [rewrite]: #16511
-#10348 := (iff #10340 #10347)
-#10345 := (iff #10337 #10344)
-#10346 := [monotonicity #6102]: #10345
-#10342 := (iff #10339 #10341)
-#10343 := [rewrite]: #10342
-#10349 := [monotonicity #10343 #10346]: #10348
-#16510 := [monotonicity #10349]: #16509
-#16513 := [trans #16510 #16512]: #16509
-#16508 := [quant-inst]: #16507
-#16514 := [mp #16508 #16513]: #16506
-#17162 := [unit-resolution #16514 #4320]: #10347
-#17171 := (= #2288 #10338)
-#17163 := (= #10338 #2288)
-#17164 := [monotonicity #8591]: #17163
-#17174 := [symm #17164]: #17171
-#17175 := [trans #17152 #17174]: #10341
-#16528 := (not #10341)
-#16525 := (not #10347)
-#16529 := (or #16525 #16528 #10344)
-#16530 := [def-axiom]: #16529
-#17176 := [unit-resolution #16530 #17175 #17162]: #10344
-#16515 := (not #10344)
-#16519 := (or #16515 #10336 #10335)
-#16520 := [def-axiom]: #16519
-#17178 := [unit-resolution #16520 #17176 #17161]: #10336
-#17177 := [trans #17178 #8036]: #17179
-#17181 := [monotonicity #17177]: #17180
-#17182 := [monotonicity #17181]: #17080
-#17187 := (not #17080)
-#17188 := (or #17187 #17083)
-#17186 := [th-lemma]: #17188
-#17189 := [unit-resolution #17186 #17182]: #17083
-#9937 := (+ uf_9 #9936)
-#9938 := (<= #9937 0::int)
-#9950 := (+ #9915 #9932)
-#9951 := (+ #144 #9950)
-#9952 := (>= #9951 0::int)
-#16744 := (not #9952)
-#10475 := (uf_2 #2280)
-#11002 := (uf_4 uf_14 #10475)
-#11016 := (* -1::int #11002)
-#16798 := (+ #10193 #11016)
-#16800 := (>= #16798 0::int)
-#16797 := (= #10193 #11002)
-#10476 := (= ?x51!13 #10475)
-#16793 := (or #7136 #10476)
-#16794 := [quant-inst]: #16793
-#17292 := [unit-resolution #16794 #4306]: #10476
-#17295 := [monotonicity #17292]: #16797
-#17296 := (not #16797)
-#17297 := (or #17296 #16800)
-#17298 := [th-lemma]: #17297
-#17299 := [unit-resolution #17298 #17295]: #16800
-#11017 := (+ #144 #11016)
-#11018 := (<= #11017 0::int)
-#17065 := (= #144 #11002)
-#17202 := (= #11002 #144)
-#17194 := (= #10475 uf_16)
-#17192 := (= #10475 #7128)
-#17190 := (= #10475 ?x51!13)
-#17191 := [symm #17292]: #17190
-#17193 := [trans #17191 #17178]: #17192
-#17195 := [trans #17193 #8036]: #17194
-#17203 := [monotonicity #17195]: #17202
-#17204 := [symm #17203]: #17065
-#17205 := (not #17065)
-#17206 := (or #17205 #11018)
-#17201 := [th-lemma]: #17206
-#17207 := [unit-resolution #17201 #17204]: #11018
-#17316 := (not #11018)
-#17314 := (not #16800)
-#17208 := (not #17083)
-#17209 := (or #16744 #17208 #17313 #2882 #17314 #17315 #17316)
-#17210 := [th-lemma]: #17209
-#17211 := [unit-resolution #17210 #17207 #17308 #17147 #17151 #17299 #17189]: #16744
-#9957 := (+ #2277 #9932)
-#9958 := (+ #144 #9957)
-#9961 := (= #9958 0::int)
-#17223 := (not #9961)
-#16729 := (>= #9958 0::int)
-#17219 := (not #16729)
-#17220 := (or #17219 #17208 #2882 #17314 #17315 #17316)
-#17221 := [th-lemma]: #17220
-#17222 := [unit-resolution #17221 #17207 #17147 #17151 #17299 #17189]: #17219
-#17218 := (or #17223 #16729)
-#17224 := [th-lemma]: #17218
-#17225 := [unit-resolution #17224 #17222]: #17223
-#9967 := (or #9938 #9952 #9961)
-#16717 := (or #4469 #9938 #9952 #9961)
-#9933 := (+ #9932 #2277)
-#9934 := (+ #144 #9933)
-#9935 := (= #9934 0::int)
-#9939 := (+ #1449 #9936)
-#9940 := (+ #9874 #9939)
-#9941 := (<= #9940 0::int)
-#9942 := (or #9941 #9938 #9935)
-#16718 := (or #4469 #9942)
-#16725 := (iff #16718 #16717)
-#16720 := (or #4469 #9967)
-#16723 := (iff #16720 #16717)
-#16724 := [rewrite]: #16723
-#16721 := (iff #16718 #16720)
-#9970 := (iff #9942 #9967)
-#9964 := (or #9952 #9938 #9961)
-#9968 := (iff #9964 #9967)
-#9969 := [rewrite]: #9968
-#9965 := (iff #9942 #9964)
-#9962 := (iff #9935 #9961)
-#9959 := (= #9934 #9958)
-#9960 := [rewrite]: #9959
-#9963 := [monotonicity #9960]: #9962
-#9955 := (iff #9941 #9952)
-#9943 := (+ #9874 #9936)
-#9944 := (+ #1449 #9943)
-#9947 := (<= #9944 0::int)
-#9953 := (iff #9947 #9952)
-#9954 := [rewrite]: #9953
-#9948 := (iff #9941 #9947)
-#9945 := (= #9940 #9944)
-#9946 := [rewrite]: #9945
-#9949 := [monotonicity #9946]: #9948
-#9956 := [trans #9949 #9954]: #9955
-#9966 := [monotonicity #9956 #9963]: #9965
-#9971 := [trans #9966 #9969]: #9970
-#16722 := [monotonicity #9971]: #16721
-#16726 := [trans #16722 #16724]: #16725
-#16719 := [quant-inst]: #16718
-#16727 := [mp #16719 #16726]: #16717
-#17226 := [unit-resolution #16727 #7390]: #9967
-#17227 := [unit-resolution #17226 #17225 #17211]: #9938
-#17228 := [th-lemma #17227 #17189 #17149]: false
-#17253 := [lemma #17228]: #3444
-#4253 := (or #4532 #3449 #4526)
-#4257 := [def-axiom]: #4253
-#25347 := [unit-resolution #4257 #17253]: #25346
-#29780 := [unit-resolution #25347 #29779]: #4526
-#3983 := (or #4523 #4515)
-#3984 := [def-axiom]: #3983
-#29781 := [unit-resolution #3984 #29780]: #4515
-#20547 := (or #4520 #7166 #15518 #15538)
-#15505 := (+ #2307 #15504)
-#15506 := (+ #7167 #15505)
-#15507 := (= #15506 0::int)
-#15508 := (not #15507)
-#15509 := (+ #7167 #2307)
-#15510 := (>= #15509 0::int)
-#15511 := (or #7166 #15510 #15508)
-#17626 := (or #4520 #15511)
-#20578 := (iff #17626 #20547)
-#20549 := (or #4520 #15541)
-#20516 := (iff #20549 #20547)
-#20517 := [rewrite]: #20516
-#20386 := (iff #17626 #20549)
-#15542 := (iff #15511 #15541)
-#15539 := (iff #15508 #15538)
-#15536 := (iff #15507 #15533)
-#15523 := (+ #7167 #15504)
-#15524 := (+ #2307 #15523)
-#15527 := (= #15524 0::int)
-#15534 := (iff #15527 #15533)
-#15535 := [rewrite]: #15534
-#15528 := (iff #15507 #15527)
-#15525 := (= #15506 #15524)
-#15526 := [rewrite]: #15525
-#15529 := [monotonicity #15526]: #15528
-#15537 := [trans #15529 #15535]: #15536
-#15540 := [monotonicity #15537]: #15539
-#15521 := (iff #15510 #15518)
-#15512 := (+ #2307 #7167)
-#15515 := (>= #15512 0::int)
-#15519 := (iff #15515 #15518)
-#15520 := [rewrite]: #15519
-#15516 := (iff #15510 #15515)
-#15513 := (= #15509 #15512)
-#15514 := [rewrite]: #15513
-#15517 := [monotonicity #15514]: #15516
-#15522 := [trans #15517 #15520]: #15521
-#15543 := [monotonicity #15522 #15540]: #15542
-#20388 := [monotonicity #15543]: #20386
-#20485 := [trans #20388 #20517]: #20578
-#20612 := [quant-inst]: #17626
-#20795 := [mp #20612 #20485]: #20547
-#29782 := [unit-resolution #20795 #29781]: #15541
-#29783 := [unit-resolution #29782 #29774 #25367]: #15518
-#28771 := (<= #28711 0::int)
-#28772 := (not #28771)
-#28773 := (= #7128 #27533)
-#29792 := (not #28773)
-#28056 := (not #18779)
-#29793 := (iff #28056 #29792)
-#29790 := (iff #18779 #28773)
-#29788 := (iff #28773 #18779)
-#29785 := (iff #28773 #25219)
-#29786 := [monotonicity #29764]: #29785
-#29789 := [trans #29786 #29787]: #29788
-#29791 := [symm #29789]: #29790
-#29794 := [monotonicity #29791]: #29793
-#29784 := [hypothesis]: #28056
-#29795 := [mp #29784 #29794]: #29792
-#28775 := (or #28772 #28773)
-#29743 := (or #7093 #28772 #28773)
-#28774 := (or #28773 #28772)
-#29744 := (or #7093 #28774)
-#29751 := (iff #29744 #29743)
-#29746 := (or #7093 #28775)
-#29749 := (iff #29746 #29743)
-#29750 := [rewrite]: #29749
-#29747 := (iff #29744 #29746)
-#28776 := (iff #28774 #28775)
-#28777 := [rewrite]: #28776
-#29748 := [monotonicity #28777]: #29747
-#29752 := [trans #29748 #29750]: #29751
-#29745 := [quant-inst]: #29744
-#29753 := [mp #29745 #29752]: #29743
-#29796 := [unit-resolution #29753 #4347]: #28775
-#29797 := [unit-resolution #29796 #29795]: #28772
-#29798 := [th-lemma #29797 #29783 #25304 #25235 #12934 #29773]: false
-#29800 := [lemma #29798]: #29799
-#32973 := [unit-resolution #29800 #32972]: #18779
-#32992 := [mp #32973 #32991]: #32602
-#32632 := (not #32602)
-#32993 := (or #32591 #32632)
-#29702 := (or #32591 #32632 #7040)
-#30315 := [def-axiom]: #29702
-#32995 := [unit-resolution #30315 #8579]: #32993
-#32996 := [unit-resolution #32995 #32992]: #32591
-#32599 := (not #32591)
-#28920 := (not #32564)
-#30916 := (or #28920 #32538 #32599)
-#31002 := [def-axiom]: #30916
-#32987 := [unit-resolution #31002 #32996 #32981 #32954]: false
-#32997 := [lemma #32987]: #15367
-#39375 := (or #32956 #14218)
-#39376 := [th-lemma]: #39375
-#39377 := [unit-resolution #39376 #32997]: #14218
-#34351 := (not #14218)
-#34357 := (or #34324 #34351)
-#4272 := (or #4523 #2319)
-#4270 := [def-axiom]: #4272
-#34292 := [unit-resolution #4270 #29780]: #2319
-#34293 := [hypothesis]: #14218
-#34291 := [hypothesis]: #16010
-#34294 := [th-lemma #34291 #34293 #34292]: false
-#34641 := [lemma #34294]: #34357
-#39378 := [unit-resolution #34641 #39377]: #34324
-#39380 := (or #16010 #16030)
-#4273 := (or #4523 #2896)
-#4259 := [def-axiom]: #4273
-#39379 := [unit-resolution #4259 #29780]: #2896
-#17785 := (or #4442 #2893 #16010 #16030)
-#15998 := (+ #15997 #15995)
-#15999 := (+ #15362 #15998)
-#16000 := (= #15999 0::int)
-#16001 := (not #16000)
-#16007 := (or #16006 #16003 #16001)
-#16008 := (not #16007)
-#16011 := (or #2320 #16010 #16008)
-#20897 := (or #4442 #16011)
-#21453 := (iff #20897 #17785)
-#16033 := (or #2893 #16010 #16030)
-#21128 := (or #4442 #16033)
-#18084 := (iff #21128 #17785)
-#22003 := [rewrite]: #18084
-#20788 := (iff #20897 #21128)
-#16034 := (iff #16011 #16033)
-#16031 := (iff #16008 #16030)
-#16028 := (iff #16007 #16025)
-#16022 := (or #16006 #16003 #16019)
-#16026 := (iff #16022 #16025)
-#16027 := [rewrite]: #16026
-#16023 := (iff #16007 #16022)
-#16020 := (iff #16001 #16019)
-#16017 := (iff #16000 #16016)
-#16014 := (= #15999 #16013)
-#16015 := [rewrite]: #16014
-#16018 := [monotonicity #16015]: #16017
-#16021 := [monotonicity #16018]: #16020
-#16024 := [monotonicity #16021]: #16023
-#16029 := [trans #16024 #16027]: #16028
-#16032 := [monotonicity #16029]: #16031
-#16035 := [monotonicity #2895 #16032]: #16034
-#21237 := [monotonicity #16035]: #20788
-#21330 := [trans #21237 #22003]: #21453
-#21234 := [quant-inst]: #20897
-#21506 := [mp #21234 #21330]: #17785
-#39381 := [unit-resolution #21506 #8030 #39379]: #39380
-#39382 := [unit-resolution #39381 #39378]: #16030
-#22030 := (or #16025 #16016)
-#18058 := [def-axiom]: #22030
-#32365 := [unit-resolution #18058 #39382]: #16016
-#32368 := (or #16019 #22006)
-#29568 := [th-lemma]: #32368
-#29612 := [unit-resolution #29568 #32365]: #22006
-#20411 := (+ uf_9 #15995)
-#20412 := (<= #20411 0::int)
-#20215 := (uf_6 uf_17 #15992)
-#20216 := (= uf_8 #20215)
-#20606 := (uf_2 #15993)
-#39327 := (uf_6 #7203 #20606)
-#38901 := (= #39327 #20215)
-#38905 := (= #20215 #39327)
-#20607 := (= #15992 #20606)
-#25402 := (or #7136 #20607)
-#25393 := [quant-inst]: #25402
-#39384 := [unit-resolution #25393 #4306]: #20607
-#8247 := (= uf_17 #7203)
-#8291 := (= #150 #7203)
-#8151 := [symm #8593]: #8291
-#8423 := [trans #8578 #8151]: #8247
-#38906 := [monotonicity #8423 #39384]: #38905
-#38907 := [symm #38906]: #38901
-#39330 := (= uf_8 #39327)
-#21345 := (uf_6 uf_15 #20606)
-#21346 := (= uf_8 #21345)
-#39333 := (= #7128 #20606)
-#39336 := (ite #39333 #5314 #21346)
-#39339 := (iff #39330 #39336)
-#38867 := (or #7026 #39339)
-#39325 := (= #20606 #7128)
-#39326 := (ite #39325 #6089 #21346)
-#39328 := (= #39327 uf_8)
-#39329 := (iff #39328 #39326)
-#38877 := (or #7026 #39329)
-#38879 := (iff #38877 #38867)
-#38890 := (iff #38867 #38867)
-#38888 := [rewrite]: #38890
-#39340 := (iff #39329 #39339)
-#39337 := (iff #39326 #39336)
-#39334 := (iff #39325 #39333)
-#39335 := [rewrite]: #39334
-#39338 := [monotonicity #39335 #6102]: #39337
-#39331 := (iff #39328 #39330)
-#39332 := [rewrite]: #39331
-#39341 := [monotonicity #39332 #39338]: #39340
-#38889 := [monotonicity #39341]: #38879
-#38894 := [trans #38889 #38888]: #38879
-#38878 := [quant-inst]: #38877
-#38893 := [mp #38878 #38894]: #38867
-#38919 := [unit-resolution #38893 #4320]: #39339
-#38895 := (not #39339)
-#38922 := (or #38895 #39330)
-#39351 := (not #39336)
-#39371 := [hypothesis]: #39351
-#39352 := (not #39333)
-#39372 := (or #39336 #39352)
-#39357 := (or #39336 #39352 #7040)
-#39358 := [def-axiom]: #39357
-#39373 := [unit-resolution #39358 #8579]: #39372
-#39374 := [unit-resolution #39373 #39371]: #39352
-#39394 := (or #39336 #39333)
-#39391 := (= #16004 #21345)
-#39387 := (= #21345 #16004)
-#39385 := (= #20606 #15992)
-#39386 := [symm #39384]: #39385
-#39388 := [monotonicity #39386]: #39387
-#39392 := [symm #39388]: #39391
-#21698 := (or #16025 #16005)
-#21997 := [def-axiom]: #21698
-#39383 := [unit-resolution #21997 #39382]: #16005
-#39393 := [trans #39383 #39392]: #21346
-#21347 := (not #21346)
-#39359 := (or #39336 #39333 #21347)
-#39360 := [def-axiom]: #39359
-#39395 := [unit-resolution #39360 #39393]: #39394
-#39396 := [unit-resolution #39395 #39374 #39371]: false
-#39397 := [lemma #39396]: #39336
-#38896 := (or #38895 #39330 #39351)
-#38897 := [def-axiom]: #38896
-#38902 := [unit-resolution #38897 #39397]: #38922
-#38903 := [unit-resolution #38902 #38919]: #39330
-#38908 := [trans #38903 #38907]: #20216
-#20217 := (not #20216)
-#38921 := [hypothesis]: #20217
-#38924 := [unit-resolution #38921 #38908]: false
-#38927 := [lemma #38924]: #20216
-#20218 := (uf_18 #15992)
-#20235 := (* -1::int #20218)
-#20421 := (+ #15995 #20235)
-#20422 := (+ #2306 #20421)
-#20423 := (<= #20422 0::int)
-#31764 := (not #20423)
-#26473 := (>= #20422 0::int)
-#20236 := (+ #15996 #20235)
-#20237 := (>= #20236 0::int)
-#25927 := (or #4477 #20237)
-#26030 := [quant-inst]: #25927
-#27294 := [unit-resolution #26030 #14110]: #20237
-#32338 := (not #20237)
-#29920 := (not #22006)
-#29919 := (or #26473 #29920 #34351 #32338)
-#32347 := [th-lemma]: #29919
-#32336 := [unit-resolution #32347 #29612 #27294 #39377]: #26473
-#20465 := (= #20422 0::int)
-#20470 := (not #20465)
-#20454 := (+ #2306 #20235)
-#20455 := (<= #20454 0::int)
-#32331 := (not #20455)
-#22027 := (not #16003)
-#21587 := (or #16025 #22027)
-#21112 := [def-axiom]: #21587
-#32344 := [unit-resolution #21112 #39382]: #22027
-#32343 := (or #32331 #16003 #34351 #32338)
-#32335 := [th-lemma]: #32343
-#32375 := [unit-resolution #32335 #32344 #27294 #39377]: #32331
-#20473 := (or #20217 #20455 #20470)
-#25436 := (or #4520 #20217 #20455 #20470)
-#20442 := (+ #2307 #15994)
-#20443 := (+ #20218 #20442)
-#20444 := (= #20443 0::int)
-#20445 := (not #20444)
-#20406 := (+ #20218 #2307)
-#20446 := (>= #20406 0::int)
-#20447 := (or #20217 #20446 #20445)
-#26505 := (or #4520 #20447)
-#26705 := (iff #26505 #25436)
-#11899 := (or #4520 #20473)
-#26697 := (iff #11899 #25436)
-#26704 := [rewrite]: #26697
-#25435 := (iff #26505 #11899)
-#20474 := (iff #20447 #20473)
-#20471 := (iff #20445 #20470)
-#20468 := (iff #20444 #20465)
-#20414 := (+ #15994 #20218)
-#20415 := (+ #2307 #20414)
-#20462 := (= #20415 0::int)
-#20466 := (iff #20462 #20465)
-#20467 := [rewrite]: #20466
-#20463 := (iff #20444 #20462)
-#20460 := (= #20443 #20415)
-#20461 := [rewrite]: #20460
-#20464 := [monotonicity #20461]: #20463
-#20469 := [trans #20464 #20467]: #20468
-#20472 := [monotonicity #20469]: #20471
-#20458 := (iff #20446 #20455)
-#20448 := (+ #2307 #20218)
-#20451 := (>= #20448 0::int)
-#20456 := (iff #20451 #20455)
-#20457 := [rewrite]: #20456
-#20452 := (iff #20446 #20451)
-#20449 := (= #20406 #20448)
-#20450 := [rewrite]: #20449
-#20453 := [monotonicity #20450]: #20452
-#20459 := [trans #20453 #20457]: #20458
-#20475 := [monotonicity #20459 #20472]: #20474
-#26696 := [monotonicity #20475]: #25435
-#26698 := [trans #26696 #26704]: #26705
-#26504 := [quant-inst]: #26505
-#26615 := [mp #26504 #26698]: #25436
-#29644 := [unit-resolution #26615 #29781]: #20473
-#29611 := [unit-resolution #29644 #38927 #32375]: #20470
-#32349 := (not #26473)
-#31762 := (or #20465 #31764 #32349)
-#29679 := [th-lemma]: #31762
-#32366 := [unit-resolution #29679 #29611 #32336]: #31764
-#20428 := (or #20217 #20412 #20423)
-#4260 := (or #4523 #4506)
-#3982 := [def-axiom]: #4260
-#29894 := [unit-resolution #3982 #29780]: #4506
-#26338 := (or #4511 #20217 #20412 #20423)
-#20407 := (+ #15994 #20406)
-#20410 := (>= #20407 0::int)
-#20413 := (or #20217 #20412 #20410)
-#26340 := (or #4511 #20413)
-#25469 := (iff #26340 #26338)
-#10685 := (or #4511 #20428)
-#25478 := (iff #10685 #26338)
-#25474 := [rewrite]: #25478
-#25437 := (iff #26340 #10685)
-#20429 := (iff #20413 #20428)
-#20426 := (iff #20410 #20423)
-#20418 := (>= #20415 0::int)
-#20424 := (iff #20418 #20423)
-#20425 := [rewrite]: #20424
-#20419 := (iff #20410 #20418)
-#20416 := (= #20407 #20415)
-#20417 := [rewrite]: #20416
-#20420 := [monotonicity #20417]: #20419
-#20427 := [trans #20420 #20425]: #20426
-#20430 := [monotonicity #20427]: #20429
-#25388 := [monotonicity #20430]: #25437
-#25466 := [trans #25388 #25474]: #25469
-#25477 := [quant-inst]: #26340
-#25432 := [mp #25477 #25466]: #26338
-#31826 := [unit-resolution #25432 #29894]: #20428
-#29616 := [unit-resolution #31826 #32366 #38927]: #20412
-[th-lemma #34292 #39377 #29616 #29612 #29563]: false
-unsat
--- a/src/HOL/Boogie/Examples/cert/Boogie_b_max	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-(benchmark Isabelle
-:extrafuns (
-  (uf_3 Int Int)
-  (uf_5 Int)
-  (uf_7 Int)
-  (uf_11 Int)
-  (uf_4 Int)
-  (uf_9 Int)
-  (uf_13 Int)
-  (uf_1 Int)
-  (uf_2 Int)
-  (uf_6 Int)
-  (uf_10 Int)
-  (uf_8 Int)
-  (uf_12 Int)
- )
-:assumption (not (implies true (implies (< 0 uf_1) (implies true (implies (= uf_2 (uf_3 0)) (implies (and (<= 1 1) (and (<= 1 1) (and (<= 0 0) (<= 0 0)))) (and (implies (forall (?x1 Int) (implies (and (< ?x1 1) (<= 0 ?x1)) (<= (uf_3 ?x1) uf_2))) (and (implies (= (uf_3 0) uf_2) (implies true (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies (forall (?x2 Int) (implies (and (< ?x2 uf_4) (<= 0 ?x2)) (<= (uf_3 ?x2) uf_6))) (implies (= (uf_3 uf_5) uf_6) (implies (and (<= 1 uf_4) (<= 0 uf_5)) (and (implies true (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies (< uf_4 uf_1) (implies (and (<= 1 uf_4) (<= 0 uf_5)) (and (implies true (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies (<= (uf_3 uf_4) uf_6) (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies true (implies (= uf_7 uf_5) (implies (= uf_8 uf_6) (implies true (implies (and (<= 1 uf_4) (<= 0 uf_7)) (implies (= uf_9 (+ uf_4 1)) (implies (and (<= 2 uf_9) (<= 0 uf_7)) (implies true (and (implies (forall (?x3 Int) (implies (and (< ?x3 uf_9) (<= 0 ?x3)) (<= (uf_3 ?x3) uf_8))) (and (implies (= (uf_3 uf_7) uf_8) (implies false true)) (= (uf_3 uf_7) uf_8))) (forall (?x4 Int) (implies (and (< ?x4 uf_9) (<= 0 ?x4)) (<= (uf_3 ?x4) uf_8)))))))))))))))) (implies true (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies (< uf_6 (uf_3 uf_4)) (implies (= uf_10 (uf_3 uf_4)) (implies (and (<= 1 uf_4) (<= 1 uf_4)) (implies true (implies (= uf_7 uf_4) (implies (= uf_8 uf_10) (implies true (implies (and (<= 1 uf_4) (<= 0 uf_7)) (implies (= uf_9 (+ uf_4 1)) (implies (and (<= 2 uf_9) (<= 0 uf_7)) (implies true (and (implies (forall (?x5 Int) (implies (and (< ?x5 uf_9) (<= 0 ?x5)) (<= (uf_3 ?x5) uf_8))) (and (implies (= (uf_3 uf_7) uf_8) (implies false true)) (= (uf_3 uf_7) uf_8))) (forall (?x6 Int) (implies (and (< ?x6 uf_9) (<= 0 ?x6)) (<= (uf_3 ?x6) uf_8)))))))))))))))))))))) (implies true (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies (<= uf_1 uf_4) (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies true (implies (= uf_11 uf_5) (implies (= uf_12 uf_6) (implies (= uf_13 uf_4) (implies true (and (implies (exists (?x7 Int) (implies (and (< ?x7 uf_1) (<= 0 ?x7)) (= (uf_3 ?x7) uf_12))) (and (implies (forall (?x8 Int) (implies (and (< ?x8 uf_1) (<= 0 ?x8)) (<= (uf_3 ?x8) uf_12))) true) (forall (?x9 Int) (implies (and (< ?x9 uf_1) (<= 0 ?x9)) (<= (uf_3 ?x9) uf_12))))) (exists (?x10 Int) (implies (and (< ?x10 uf_1) (<= 0 ?x10)) (= (uf_3 ?x10) uf_12)))))))))))))))))))) (= (uf_3 0) uf_2))) (forall (?x11 Int) (implies (and (< ?x11 1) (<= 0 ?x11)) (<= (uf_3 ?x11) uf_2))))))))))
-:formula true
-)
--- a/src/HOL/Boogie/Examples/cert/Boogie_b_max.proof	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2329 +0,0 @@
-#2 := false
-#4 := 0::int
-decl uf_3 :: (-> int int)
-decl ?x3!1 :: int
-#1188 := ?x3!1
-#1195 := (uf_3 ?x3!1)
-#760 := -1::int
-#1381 := (* -1::int #1195)
-decl uf_4 :: int
-#25 := uf_4
-#39 := (uf_3 uf_4)
-#2763 := (+ #39 #1381)
-#2765 := (>= #2763 0::int)
-#2762 := (= #39 #1195)
-#2631 := (= uf_4 ?x3!1)
-#1394 := (* -1::int ?x3!1)
-#2564 := (+ uf_4 #1394)
-#2628 := (>= #2564 0::int)
-decl uf_9 :: int
-#47 := uf_9
-#806 := (* -1::int uf_9)
-#838 := (+ uf_4 #806)
-#1977 := (>= #838 -1::int)
-#837 := (= #838 -1::int)
-#1395 := (+ uf_9 #1394)
-#1396 := (<= #1395 0::int)
-decl uf_8 :: int
-#43 := uf_8
-#1382 := (+ uf_8 #1381)
-#1383 := (>= #1382 0::int)
-#1192 := (>= ?x3!1 0::int)
-#1625 := (not #1192)
-#1640 := (or #1625 #1383 #1396)
-#1645 := (not #1640)
-#16 := (:var 0 int)
-#20 := (uf_3 #16)
-#2303 := (pattern #20)
-#807 := (+ #16 #806)
-#805 := (>= #807 0::int)
-#799 := (* -1::int uf_8)
-#800 := (+ #20 #799)
-#801 := (<= #800 0::int)
-#753 := (>= #16 0::int)
-#1548 := (not #753)
-#1607 := (or #1548 #801 #805)
-#2320 := (forall (vars (?x3 int)) (:pat #2303) #1607)
-#2325 := (not #2320)
-decl uf_7 :: int
-#41 := uf_7
-#58 := (uf_3 uf_7)
-#221 := (= uf_8 #58)
-#2328 := (or #221 #2325)
-#2331 := (not #2328)
-#2334 := (or #2331 #1645)
-#2337 := (not #2334)
-#851 := (* -1::int #39)
-decl uf_6 :: int
-#32 := uf_6
-#852 := (+ uf_6 #851)
-#850 := (>= #852 0::int)
-#840 := (not #837)
-#50 := 2::int
-#791 := (>= uf_9 2::int)
-#1656 := (not #791)
-#788 := (>= uf_7 0::int)
-#1655 := (not #788)
-decl uf_5 :: int
-#27 := uf_5
-#779 := (>= uf_5 0::int)
-#1654 := (not #779)
-#10 := 1::int
-#776 := (>= uf_4 1::int)
-#886 := (not #776)
-#361 := (= uf_4 uf_7)
-#376 := (not #361)
-decl uf_10 :: int
-#78 := uf_10
-#356 := (= #39 uf_10)
-#401 := (not #356)
-#82 := (= uf_8 uf_10)
-#367 := (not #82)
-#2346 := (or #367 #401 #376 #886 #1654 #1655 #1656 #840 #850 #2337)
-#2349 := (not #2346)
-#854 := (not #850)
-#194 := (= uf_6 uf_8)
-#301 := (not #194)
-#191 := (= uf_5 uf_7)
-#310 := (not #191)
-#2340 := (or #310 #301 #886 #1654 #1655 #1656 #840 #854 #2337)
-#2343 := (not #2340)
-#2352 := (or #2343 #2349)
-#2355 := (not #2352)
-#924 := (* -1::int uf_4)
-decl uf_1 :: int
-#5 := uf_1
-#925 := (+ uf_1 #924)
-#926 := (<= #925 0::int)
-#2358 := (or #886 #1654 #926 #2355)
-#2361 := (not #2358)
-decl ?x7!2 :: int
-#1279 := ?x7!2
-#1287 := (uf_3 ?x7!2)
-decl uf_12 :: int
-#99 := uf_12
-#1469 := (= uf_12 #1287)
-#1284 := (>= ?x7!2 0::int)
-#1711 := (not #1284)
-#1280 := (* -1::int ?x7!2)
-#1281 := (+ uf_1 #1280)
-#1282 := (<= #1281 0::int)
-#1726 := (or #1282 #1711 #1469)
-#1757 := (not #1726)
-decl ?x8!3 :: int
-#1297 := ?x8!3
-#1298 := (uf_3 ?x8!3)
-#1493 := (* -1::int #1298)
-#1494 := (+ uf_12 #1493)
-#1495 := (>= #1494 0::int)
-#1305 := (>= ?x8!3 0::int)
-#1731 := (not #1305)
-#1301 := (* -1::int ?x8!3)
-#1302 := (+ uf_1 #1301)
-#1303 := (<= #1302 0::int)
-#1795 := (or #1303 #1731 #1495 #1757)
-#1798 := (not #1795)
-#951 := (* -1::int #16)
-#952 := (+ uf_1 #951)
-#953 := (<= #952 0::int)
-#105 := (= #20 uf_12)
-#1700 := (or #105 #1548 #953)
-#1705 := (not #1700)
-#2364 := (forall (vars (?x7 int)) (:pat #2303) #1705)
-#2369 := (or #2364 #1798)
-#2372 := (not #2369)
-#927 := (not #926)
-decl uf_13 :: int
-#101 := uf_13
-#472 := (= uf_4 uf_13)
-#542 := (not #472)
-#469 := (= uf_6 uf_12)
-#551 := (not #469)
-decl uf_11 :: int
-#97 := uf_11
-#466 := (= uf_5 uf_11)
-#560 := (not #466)
-#2375 := (or #560 #551 #542 #886 #1654 #927 #2372)
-#2378 := (not #2375)
-#2381 := (or #2361 #2378)
-#2384 := (not #2381)
-#1030 := (+ #16 #924)
-#1029 := (>= #1030 0::int)
-#1024 := (* -1::int uf_6)
-#1025 := (+ #20 #1024)
-#1026 := (<= #1025 0::int)
-#1585 := (or #1548 #1026 #1029)
-#2312 := (forall (vars (?x2 int)) (:pat #2303) #1585)
-#2317 := (not #2312)
-#763 := (* -1::int #20)
-decl uf_2 :: int
-#7 := uf_2
-#764 := (+ uf_2 #763)
-#762 := (>= #764 0::int)
-#749 := (>= #16 1::int)
-#1563 := (or #749 #1548 #762)
-#2304 := (forall (vars (?x1 int)) (:pat #2303) #1563)
-#2309 := (not #2304)
-#36 := (uf_3 uf_5)
-#188 := (= uf_6 #36)
-#619 := (not #188)
-#2387 := (or #619 #886 #1654 #2309 #2317 #2384)
-#2390 := (not #2387)
-decl ?x1!0 :: int
-#1152 := ?x1!0
-#1156 := (>= ?x1!0 1::int)
-#1155 := (>= ?x1!0 0::int)
-#1164 := (not #1155)
-#1153 := (uf_3 ?x1!0)
-#1150 := (* -1::int #1153)
-#1151 := (+ uf_2 #1150)
-#1154 := (>= #1151 0::int)
-#1540 := (or #1154 #1164 #1156)
-#2202 := (= uf_2 #1153)
-#8 := (uf_3 0::int)
-#2191 := (= #8 #1153)
-#2188 := (= #1153 #8)
-#2207 := (= ?x1!0 0::int)
-#1157 := (not #1156)
-#1545 := (not #1540)
-#2205 := [hypothesis]: #1545
-#1976 := (or #1540 #1157)
-#1967 := [def-axiom]: #1976
-#2206 := [unit-resolution #1967 #2205]: #1157
-#1975 := (or #1540 #1155)
-#1890 := [def-axiom]: #1975
-#2203 := [unit-resolution #1890 #2205]: #1155
-#2187 := [th-lemma #2203 #2206]: #2207
-#2190 := [monotonicity #2187]: #2188
-#2192 := [symm #2190]: #2191
-#9 := (= uf_2 #8)
-#1078 := (<= uf_1 0::int)
-#1031 := (not #1029)
-#1034 := (and #753 #1031)
-#1037 := (not #1034)
-#1040 := (or #1026 #1037)
-#1043 := (forall (vars (?x2 int)) #1040)
-#1046 := (not #1043)
-#972 := (* -1::int uf_12)
-#973 := (+ #20 #972)
-#974 := (<= #973 0::int)
-#954 := (not #953)
-#957 := (and #753 #954)
-#960 := (not #957)
-#980 := (or #960 #974)
-#985 := (forall (vars (?x8 int)) #980)
-#963 := (or #105 #960)
-#966 := (exists (vars (?x7 int)) #963)
-#969 := (not #966)
-#988 := (or #969 #985)
-#991 := (and #966 #988)
-#781 := (and #776 #779)
-#784 := (not #781)
-#1016 := (or #560 #551 #542 #784 #927 #991)
-#843 := (and #776 #788)
-#846 := (not #843)
-#804 := (not #805)
-#810 := (and #753 #804)
-#813 := (not #810)
-#816 := (or #801 #813)
-#819 := (forall (vars (?x3 int)) #816)
-#822 := (not #819)
-#828 := (or #221 #822)
-#833 := (and #819 #828)
-#793 := (and #788 #791)
-#796 := (not #793)
-#916 := (or #367 #401 #376 #886 #784 #796 #833 #840 #846 #850)
-#881 := (or #310 #301 #784 #796 #833 #840 #846 #854)
-#921 := (and #881 #916)
-#946 := (or #784 #921 #926)
-#1021 := (and #946 #1016)
-#652 := (not #9)
-#1064 := (or #652 #619 #784 #1021 #1046)
-#1069 := (and #9 #1064)
-#747 := (not #749)
-#754 := (and #747 #753)
-#757 := (not #754)
-#766 := (or #757 #762)
-#769 := (forall (vars (?x1 int)) #766)
-#772 := (not #769)
-#1072 := (or #772 #1069)
-#1075 := (and #769 #1072)
-#1098 := (or #652 #1075 #1078)
-#1103 := (not #1098)
-#21 := (<= #20 uf_2)
-#18 := (<= 0::int #16)
-#17 := (< #16 1::int)
-#19 := (and #17 #18)
-#22 := (implies #19 #21)
-#23 := (forall (vars (?x1 int)) #22)
-#24 := (= #8 uf_2)
-#103 := (< #16 uf_1)
-#104 := (and #103 #18)
-#106 := (implies #104 #105)
-#107 := (exists (vars (?x7 int)) #106)
-#108 := (<= #20 uf_12)
-#109 := (implies #104 #108)
-#110 := (forall (vars (?x8 int)) #109)
-#1 := true
-#111 := (implies #110 true)
-#112 := (and #111 #110)
-#113 := (implies #107 #112)
-#114 := (and #113 #107)
-#115 := (implies true #114)
-#102 := (= uf_13 uf_4)
-#116 := (implies #102 #115)
-#100 := (= uf_12 uf_6)
-#117 := (implies #100 #116)
-#98 := (= uf_11 uf_5)
-#118 := (implies #98 #117)
-#119 := (implies true #118)
-#28 := (<= 0::int uf_5)
-#26 := (<= 1::int uf_4)
-#29 := (and #26 #28)
-#120 := (implies #29 #119)
-#96 := (<= uf_1 uf_4)
-#121 := (implies #96 #120)
-#122 := (implies #29 #121)
-#123 := (implies true #122)
-#55 := (<= #20 uf_8)
-#53 := (< #16 uf_9)
-#54 := (and #53 #18)
-#56 := (implies #54 #55)
-#57 := (forall (vars (?x3 int)) #56)
-#59 := (= #58 uf_8)
-#60 := (implies false true)
-#61 := (implies #59 #60)
-#62 := (and #61 #59)
-#63 := (implies #57 #62)
-#64 := (and #63 #57)
-#65 := (implies true #64)
-#45 := (<= 0::int uf_7)
-#51 := (<= 2::int uf_9)
-#52 := (and #51 #45)
-#66 := (implies #52 #65)
-#48 := (+ uf_4 1::int)
-#49 := (= uf_9 #48)
-#67 := (implies #49 #66)
-#46 := (and #26 #45)
-#68 := (implies #46 #67)
-#69 := (implies true #68)
-#83 := (implies #82 #69)
-#81 := (= uf_7 uf_4)
-#84 := (implies #81 #83)
-#85 := (implies true #84)
-#80 := (and #26 #26)
-#86 := (implies #80 #85)
-#79 := (= uf_10 #39)
-#87 := (implies #79 #86)
-#77 := (< uf_6 #39)
-#88 := (implies #77 #87)
-#89 := (implies #29 #88)
-#90 := (implies true #89)
-#44 := (= uf_8 uf_6)
-#70 := (implies #44 #69)
-#42 := (= uf_7 uf_5)
-#71 := (implies #42 #70)
-#72 := (implies true #71)
-#73 := (implies #29 #72)
-#40 := (<= #39 uf_6)
-#74 := (implies #40 #73)
-#75 := (implies #29 #74)
-#76 := (implies true #75)
-#91 := (and #76 #90)
-#92 := (implies #29 #91)
-#38 := (< uf_4 uf_1)
-#93 := (implies #38 #92)
-#94 := (implies #29 #93)
-#95 := (implies true #94)
-#124 := (and #95 #123)
-#125 := (implies #29 #124)
-#37 := (= #36 uf_6)
-#126 := (implies #37 #125)
-#33 := (<= #20 uf_6)
-#30 := (< #16 uf_4)
-#31 := (and #30 #18)
-#34 := (implies #31 #33)
-#35 := (forall (vars (?x2 int)) #34)
-#127 := (implies #35 #126)
-#128 := (implies #29 #127)
-#129 := (implies true #128)
-#130 := (implies #24 #129)
-#131 := (and #130 #24)
-#132 := (implies #23 #131)
-#133 := (and #132 #23)
-#12 := (<= 0::int 0::int)
-#13 := (and #12 #12)
-#11 := (<= 1::int 1::int)
-#14 := (and #11 #13)
-#15 := (and #11 #14)
-#134 := (implies #15 #133)
-#135 := (implies #9 #134)
-#136 := (implies true #135)
-#6 := (< 0::int uf_1)
-#137 := (implies #6 #136)
-#138 := (implies true #137)
-#139 := (not #138)
-#1106 := (iff #139 #1103)
-#475 := (and #18 #103)
-#481 := (not #475)
-#493 := (or #108 #481)
-#498 := (forall (vars (?x8 int)) #493)
-#482 := (or #105 #481)
-#487 := (exists (vars (?x7 int)) #482)
-#518 := (not #487)
-#519 := (or #518 #498)
-#527 := (and #487 #519)
-#543 := (or #542 #527)
-#552 := (or #551 #543)
-#561 := (or #560 #552)
-#326 := (not #29)
-#576 := (or #326 #561)
-#584 := (not #96)
-#585 := (or #584 #576)
-#593 := (or #326 #585)
-#206 := (and #18 #53)
-#212 := (not #206)
-#213 := (or #55 #212)
-#218 := (forall (vars (?x3 int)) #213)
-#243 := (not #218)
-#244 := (or #243 #221)
-#252 := (and #218 #244)
-#203 := (and #45 #51)
-#267 := (not #203)
-#268 := (or #267 #252)
-#197 := (+ 1::int uf_4)
-#200 := (= uf_9 #197)
-#276 := (not #200)
-#277 := (or #276 #268)
-#285 := (not #46)
-#286 := (or #285 #277)
-#368 := (or #367 #286)
-#377 := (or #376 #368)
-#392 := (not #26)
-#393 := (or #392 #377)
-#402 := (or #401 #393)
-#410 := (not #77)
-#411 := (or #410 #402)
-#419 := (or #326 #411)
-#302 := (or #301 #286)
-#311 := (or #310 #302)
-#327 := (or #326 #311)
-#335 := (not #40)
-#336 := (or #335 #327)
-#344 := (or #326 #336)
-#431 := (and #344 #419)
-#437 := (or #326 #431)
-#445 := (not #38)
-#446 := (or #445 #437)
-#454 := (or #326 #446)
-#605 := (and #454 #593)
-#611 := (or #326 #605)
-#620 := (or #619 #611)
-#173 := (and #18 #30)
-#179 := (not #173)
-#180 := (or #33 #179)
-#185 := (forall (vars (?x2 int)) #180)
-#628 := (not #185)
-#629 := (or #628 #620)
-#637 := (or #326 #629)
-#653 := (or #652 #637)
-#661 := (and #9 #653)
-#164 := (not #19)
-#165 := (or #164 #21)
-#168 := (forall (vars (?x1 int)) #165)
-#669 := (not #168)
-#670 := (or #669 #661)
-#678 := (and #168 #670)
-#158 := (and #11 #12)
-#161 := (and #11 #158)
-#686 := (not #161)
-#687 := (or #686 #678)
-#695 := (or #652 #687)
-#710 := (not #6)
-#711 := (or #710 #695)
-#723 := (not #711)
-#1104 := (iff #723 #1103)
-#1101 := (iff #711 #1098)
-#1089 := (or false #1075)
-#1092 := (or #652 #1089)
-#1095 := (or #1078 #1092)
-#1099 := (iff #1095 #1098)
-#1100 := [rewrite]: #1099
-#1096 := (iff #711 #1095)
-#1093 := (iff #695 #1092)
-#1090 := (iff #687 #1089)
-#1076 := (iff #678 #1075)
-#1073 := (iff #670 #1072)
-#1070 := (iff #661 #1069)
-#1067 := (iff #653 #1064)
-#1049 := (or #784 #1021)
-#1052 := (or #619 #1049)
-#1055 := (or #1046 #1052)
-#1058 := (or #784 #1055)
-#1061 := (or #652 #1058)
-#1065 := (iff #1061 #1064)
-#1066 := [rewrite]: #1065
-#1062 := (iff #653 #1061)
-#1059 := (iff #637 #1058)
-#1056 := (iff #629 #1055)
-#1053 := (iff #620 #1052)
-#1050 := (iff #611 #1049)
-#1022 := (iff #605 #1021)
-#1019 := (iff #593 #1016)
-#998 := (or #542 #991)
-#1001 := (or #551 #998)
-#1004 := (or #560 #1001)
-#1007 := (or #784 #1004)
-#1010 := (or #927 #1007)
-#1013 := (or #784 #1010)
-#1017 := (iff #1013 #1016)
-#1018 := [rewrite]: #1017
-#1014 := (iff #593 #1013)
-#1011 := (iff #585 #1010)
-#1008 := (iff #576 #1007)
-#1005 := (iff #561 #1004)
-#1002 := (iff #552 #1001)
-#999 := (iff #543 #998)
-#992 := (iff #527 #991)
-#989 := (iff #519 #988)
-#986 := (iff #498 #985)
-#983 := (iff #493 #980)
-#977 := (or #974 #960)
-#981 := (iff #977 #980)
-#982 := [rewrite]: #981
-#978 := (iff #493 #977)
-#961 := (iff #481 #960)
-#958 := (iff #475 #957)
-#955 := (iff #103 #954)
-#956 := [rewrite]: #955
-#751 := (iff #18 #753)
-#752 := [rewrite]: #751
-#959 := [monotonicity #752 #956]: #958
-#962 := [monotonicity #959]: #961
-#975 := (iff #108 #974)
-#976 := [rewrite]: #975
-#979 := [monotonicity #976 #962]: #978
-#984 := [trans #979 #982]: #983
-#987 := [quant-intro #984]: #986
-#970 := (iff #518 #969)
-#967 := (iff #487 #966)
-#964 := (iff #482 #963)
-#965 := [monotonicity #962]: #964
-#968 := [quant-intro #965]: #967
-#971 := [monotonicity #968]: #970
-#990 := [monotonicity #971 #987]: #989
-#993 := [monotonicity #968 #990]: #992
-#1000 := [monotonicity #993]: #999
-#1003 := [monotonicity #1000]: #1002
-#1006 := [monotonicity #1003]: #1005
-#785 := (iff #326 #784)
-#782 := (iff #29 #781)
-#778 := (iff #28 #779)
-#780 := [rewrite]: #778
-#775 := (iff #26 #776)
-#777 := [rewrite]: #775
-#783 := [monotonicity #777 #780]: #782
-#786 := [monotonicity #783]: #785
-#1009 := [monotonicity #786 #1006]: #1008
-#996 := (iff #584 #927)
-#994 := (iff #96 #926)
-#995 := [rewrite]: #994
-#997 := [monotonicity #995]: #996
-#1012 := [monotonicity #997 #1009]: #1011
-#1015 := [monotonicity #786 #1012]: #1014
-#1020 := [trans #1015 #1018]: #1019
-#949 := (iff #454 #946)
-#937 := (or #784 #921)
-#940 := (or #926 #937)
-#943 := (or #784 #940)
-#947 := (iff #943 #946)
-#948 := [rewrite]: #947
-#944 := (iff #454 #943)
-#941 := (iff #446 #940)
-#938 := (iff #437 #937)
-#922 := (iff #431 #921)
-#919 := (iff #419 #916)
-#857 := (or #796 #833)
-#860 := (or #840 #857)
-#863 := (or #846 #860)
-#898 := (or #367 #863)
-#901 := (or #376 #898)
-#904 := (or #886 #901)
-#907 := (or #401 #904)
-#910 := (or #850 #907)
-#913 := (or #784 #910)
-#917 := (iff #913 #916)
-#918 := [rewrite]: #917
-#914 := (iff #419 #913)
-#911 := (iff #411 #910)
-#908 := (iff #402 #907)
-#905 := (iff #393 #904)
-#902 := (iff #377 #901)
-#899 := (iff #368 #898)
-#864 := (iff #286 #863)
-#861 := (iff #277 #860)
-#858 := (iff #268 #857)
-#834 := (iff #252 #833)
-#831 := (iff #244 #828)
-#825 := (or #822 #221)
-#829 := (iff #825 #828)
-#830 := [rewrite]: #829
-#826 := (iff #244 #825)
-#823 := (iff #243 #822)
-#820 := (iff #218 #819)
-#817 := (iff #213 #816)
-#814 := (iff #212 #813)
-#811 := (iff #206 #810)
-#808 := (iff #53 #804)
-#809 := [rewrite]: #808
-#812 := [monotonicity #752 #809]: #811
-#815 := [monotonicity #812]: #814
-#802 := (iff #55 #801)
-#803 := [rewrite]: #802
-#818 := [monotonicity #803 #815]: #817
-#821 := [quant-intro #818]: #820
-#824 := [monotonicity #821]: #823
-#827 := [monotonicity #824]: #826
-#832 := [trans #827 #830]: #831
-#835 := [monotonicity #821 #832]: #834
-#797 := (iff #267 #796)
-#794 := (iff #203 #793)
-#790 := (iff #51 #791)
-#792 := [rewrite]: #790
-#787 := (iff #45 #788)
-#789 := [rewrite]: #787
-#795 := [monotonicity #789 #792]: #794
-#798 := [monotonicity #795]: #797
-#859 := [monotonicity #798 #835]: #858
-#841 := (iff #276 #840)
-#836 := (iff #200 #837)
-#839 := [rewrite]: #836
-#842 := [monotonicity #839]: #841
-#862 := [monotonicity #842 #859]: #861
-#847 := (iff #285 #846)
-#844 := (iff #46 #843)
-#845 := [monotonicity #777 #789]: #844
-#848 := [monotonicity #845]: #847
-#865 := [monotonicity #848 #862]: #864
-#900 := [monotonicity #865]: #899
-#903 := [monotonicity #900]: #902
-#887 := (iff #392 #886)
-#888 := [monotonicity #777]: #887
-#906 := [monotonicity #888 #903]: #905
-#909 := [monotonicity #906]: #908
-#896 := (iff #410 #850)
-#891 := (not #854)
-#894 := (iff #891 #850)
-#895 := [rewrite]: #894
-#892 := (iff #410 #891)
-#889 := (iff #77 #854)
-#890 := [rewrite]: #889
-#893 := [monotonicity #890]: #892
-#897 := [trans #893 #895]: #896
-#912 := [monotonicity #897 #909]: #911
-#915 := [monotonicity #786 #912]: #914
-#920 := [trans #915 #918]: #919
-#884 := (iff #344 #881)
-#866 := (or #301 #863)
-#869 := (or #310 #866)
-#872 := (or #784 #869)
-#875 := (or #854 #872)
-#878 := (or #784 #875)
-#882 := (iff #878 #881)
-#883 := [rewrite]: #882
-#879 := (iff #344 #878)
-#876 := (iff #336 #875)
-#873 := (iff #327 #872)
-#870 := (iff #311 #869)
-#867 := (iff #302 #866)
-#868 := [monotonicity #865]: #867
-#871 := [monotonicity #868]: #870
-#874 := [monotonicity #786 #871]: #873
-#855 := (iff #335 #854)
-#849 := (iff #40 #850)
-#853 := [rewrite]: #849
-#856 := [monotonicity #853]: #855
-#877 := [monotonicity #856 #874]: #876
-#880 := [monotonicity #786 #877]: #879
-#885 := [trans #880 #883]: #884
-#923 := [monotonicity #885 #920]: #922
-#939 := [monotonicity #786 #923]: #938
-#935 := (iff #445 #926)
-#930 := (not #927)
-#933 := (iff #930 #926)
-#934 := [rewrite]: #933
-#931 := (iff #445 #930)
-#928 := (iff #38 #927)
-#929 := [rewrite]: #928
-#932 := [monotonicity #929]: #931
-#936 := [trans #932 #934]: #935
-#942 := [monotonicity #936 #939]: #941
-#945 := [monotonicity #786 #942]: #944
-#950 := [trans #945 #948]: #949
-#1023 := [monotonicity #950 #1020]: #1022
-#1051 := [monotonicity #786 #1023]: #1050
-#1054 := [monotonicity #1051]: #1053
-#1047 := (iff #628 #1046)
-#1044 := (iff #185 #1043)
-#1041 := (iff #180 #1040)
-#1038 := (iff #179 #1037)
-#1035 := (iff #173 #1034)
-#1032 := (iff #30 #1031)
-#1033 := [rewrite]: #1032
-#1036 := [monotonicity #752 #1033]: #1035
-#1039 := [monotonicity #1036]: #1038
-#1027 := (iff #33 #1026)
-#1028 := [rewrite]: #1027
-#1042 := [monotonicity #1028 #1039]: #1041
-#1045 := [quant-intro #1042]: #1044
-#1048 := [monotonicity #1045]: #1047
-#1057 := [monotonicity #1048 #1054]: #1056
-#1060 := [monotonicity #786 #1057]: #1059
-#1063 := [monotonicity #1060]: #1062
-#1068 := [trans #1063 #1066]: #1067
-#1071 := [monotonicity #1068]: #1070
-#773 := (iff #669 #772)
-#770 := (iff #168 #769)
-#767 := (iff #165 #766)
-#761 := (iff #21 #762)
-#765 := [rewrite]: #761
-#758 := (iff #164 #757)
-#755 := (iff #19 #754)
-#748 := (iff #17 #747)
-#750 := [rewrite]: #748
-#756 := [monotonicity #750 #752]: #755
-#759 := [monotonicity #756]: #758
-#768 := [monotonicity #759 #765]: #767
-#771 := [quant-intro #768]: #770
-#774 := [monotonicity #771]: #773
-#1074 := [monotonicity #774 #1071]: #1073
-#1077 := [monotonicity #771 #1074]: #1076
-#745 := (iff #686 false)
-#740 := (not true)
-#743 := (iff #740 false)
-#744 := [rewrite]: #743
-#741 := (iff #686 #740)
-#738 := (iff #161 true)
-#730 := (and true true)
-#733 := (and true #730)
-#736 := (iff #733 true)
-#737 := [rewrite]: #736
-#734 := (iff #161 #733)
-#731 := (iff #158 #730)
-#728 := (iff #12 true)
-#729 := [rewrite]: #728
-#726 := (iff #11 true)
-#727 := [rewrite]: #726
-#732 := [monotonicity #727 #729]: #731
-#735 := [monotonicity #727 #732]: #734
-#739 := [trans #735 #737]: #738
-#742 := [monotonicity #739]: #741
-#746 := [trans #742 #744]: #745
-#1091 := [monotonicity #746 #1077]: #1090
-#1094 := [monotonicity #1091]: #1093
-#1087 := (iff #710 #1078)
-#1079 := (not #1078)
-#1082 := (not #1079)
-#1085 := (iff #1082 #1078)
-#1086 := [rewrite]: #1085
-#1083 := (iff #710 #1082)
-#1080 := (iff #6 #1079)
-#1081 := [rewrite]: #1080
-#1084 := [monotonicity #1081]: #1083
-#1088 := [trans #1084 #1086]: #1087
-#1097 := [monotonicity #1088 #1094]: #1096
-#1102 := [trans #1097 #1100]: #1101
-#1105 := [monotonicity #1102]: #1104
-#724 := (iff #139 #723)
-#721 := (iff #138 #711)
-#716 := (implies true #711)
-#719 := (iff #716 #711)
-#720 := [rewrite]: #719
-#717 := (iff #138 #716)
-#714 := (iff #137 #711)
-#707 := (implies #6 #695)
-#712 := (iff #707 #711)
-#713 := [rewrite]: #712
-#708 := (iff #137 #707)
-#705 := (iff #136 #695)
-#700 := (implies true #695)
-#703 := (iff #700 #695)
-#704 := [rewrite]: #703
-#701 := (iff #136 #700)
-#698 := (iff #135 #695)
-#692 := (implies #9 #687)
-#696 := (iff #692 #695)
-#697 := [rewrite]: #696
-#693 := (iff #135 #692)
-#690 := (iff #134 #687)
-#683 := (implies #161 #678)
-#688 := (iff #683 #687)
-#689 := [rewrite]: #688
-#684 := (iff #134 #683)
-#681 := (iff #133 #678)
-#675 := (and #670 #168)
-#679 := (iff #675 #678)
-#680 := [rewrite]: #679
-#676 := (iff #133 #675)
-#169 := (iff #23 #168)
-#166 := (iff #22 #165)
-#167 := [rewrite]: #166
-#170 := [quant-intro #167]: #169
-#673 := (iff #132 #670)
-#666 := (implies #168 #661)
-#671 := (iff #666 #670)
-#672 := [rewrite]: #671
-#667 := (iff #132 #666)
-#664 := (iff #131 #661)
-#658 := (and #653 #9)
-#662 := (iff #658 #661)
-#663 := [rewrite]: #662
-#659 := (iff #131 #658)
-#171 := (iff #24 #9)
-#172 := [rewrite]: #171
-#656 := (iff #130 #653)
-#649 := (implies #9 #637)
-#654 := (iff #649 #653)
-#655 := [rewrite]: #654
-#650 := (iff #130 #649)
-#647 := (iff #129 #637)
-#642 := (implies true #637)
-#645 := (iff #642 #637)
-#646 := [rewrite]: #645
-#643 := (iff #129 #642)
-#640 := (iff #128 #637)
-#634 := (implies #29 #629)
-#638 := (iff #634 #637)
-#639 := [rewrite]: #638
-#635 := (iff #128 #634)
-#632 := (iff #127 #629)
-#625 := (implies #185 #620)
-#630 := (iff #625 #629)
-#631 := [rewrite]: #630
-#626 := (iff #127 #625)
-#623 := (iff #126 #620)
-#616 := (implies #188 #611)
-#621 := (iff #616 #620)
-#622 := [rewrite]: #621
-#617 := (iff #126 #616)
-#614 := (iff #125 #611)
-#608 := (implies #29 #605)
-#612 := (iff #608 #611)
-#613 := [rewrite]: #612
-#609 := (iff #125 #608)
-#606 := (iff #124 #605)
-#603 := (iff #123 #593)
-#598 := (implies true #593)
-#601 := (iff #598 #593)
-#602 := [rewrite]: #601
-#599 := (iff #123 #598)
-#596 := (iff #122 #593)
-#590 := (implies #29 #585)
-#594 := (iff #590 #593)
-#595 := [rewrite]: #594
-#591 := (iff #122 #590)
-#588 := (iff #121 #585)
-#581 := (implies #96 #576)
-#586 := (iff #581 #585)
-#587 := [rewrite]: #586
-#582 := (iff #121 #581)
-#579 := (iff #120 #576)
-#573 := (implies #29 #561)
-#577 := (iff #573 #576)
-#578 := [rewrite]: #577
-#574 := (iff #120 #573)
-#571 := (iff #119 #561)
-#566 := (implies true #561)
-#569 := (iff #566 #561)
-#570 := [rewrite]: #569
-#567 := (iff #119 #566)
-#564 := (iff #118 #561)
-#557 := (implies #466 #552)
-#562 := (iff #557 #561)
-#563 := [rewrite]: #562
-#558 := (iff #118 #557)
-#555 := (iff #117 #552)
-#548 := (implies #469 #543)
-#553 := (iff #548 #552)
-#554 := [rewrite]: #553
-#549 := (iff #117 #548)
-#546 := (iff #116 #543)
-#539 := (implies #472 #527)
-#544 := (iff #539 #543)
-#545 := [rewrite]: #544
-#540 := (iff #116 #539)
-#537 := (iff #115 #527)
-#532 := (implies true #527)
-#535 := (iff #532 #527)
-#536 := [rewrite]: #535
-#533 := (iff #115 #532)
-#530 := (iff #114 #527)
-#524 := (and #519 #487)
-#528 := (iff #524 #527)
-#529 := [rewrite]: #528
-#525 := (iff #114 #524)
-#488 := (iff #107 #487)
-#485 := (iff #106 #482)
-#478 := (implies #475 #105)
-#483 := (iff #478 #482)
-#484 := [rewrite]: #483
-#479 := (iff #106 #478)
-#476 := (iff #104 #475)
-#477 := [rewrite]: #476
-#480 := [monotonicity #477]: #479
-#486 := [trans #480 #484]: #485
-#489 := [quant-intro #486]: #488
-#522 := (iff #113 #519)
-#515 := (implies #487 #498)
-#520 := (iff #515 #519)
-#521 := [rewrite]: #520
-#516 := (iff #113 #515)
-#513 := (iff #112 #498)
-#508 := (and true #498)
-#511 := (iff #508 #498)
-#512 := [rewrite]: #511
-#509 := (iff #112 #508)
-#499 := (iff #110 #498)
-#496 := (iff #109 #493)
-#490 := (implies #475 #108)
-#494 := (iff #490 #493)
-#495 := [rewrite]: #494
-#491 := (iff #109 #490)
-#492 := [monotonicity #477]: #491
-#497 := [trans #492 #495]: #496
-#500 := [quant-intro #497]: #499
-#506 := (iff #111 true)
-#501 := (implies #498 true)
-#504 := (iff #501 true)
-#505 := [rewrite]: #504
-#502 := (iff #111 #501)
-#503 := [monotonicity #500]: #502
-#507 := [trans #503 #505]: #506
-#510 := [monotonicity #507 #500]: #509
-#514 := [trans #510 #512]: #513
-#517 := [monotonicity #489 #514]: #516
-#523 := [trans #517 #521]: #522
-#526 := [monotonicity #523 #489]: #525
-#531 := [trans #526 #529]: #530
-#534 := [monotonicity #531]: #533
-#538 := [trans #534 #536]: #537
-#473 := (iff #102 #472)
-#474 := [rewrite]: #473
-#541 := [monotonicity #474 #538]: #540
-#547 := [trans #541 #545]: #546
-#470 := (iff #100 #469)
-#471 := [rewrite]: #470
-#550 := [monotonicity #471 #547]: #549
-#556 := [trans #550 #554]: #555
-#467 := (iff #98 #466)
-#468 := [rewrite]: #467
-#559 := [monotonicity #468 #556]: #558
-#565 := [trans #559 #563]: #564
-#568 := [monotonicity #565]: #567
-#572 := [trans #568 #570]: #571
-#575 := [monotonicity #572]: #574
-#580 := [trans #575 #578]: #579
-#583 := [monotonicity #580]: #582
-#589 := [trans #583 #587]: #588
-#592 := [monotonicity #589]: #591
-#597 := [trans #592 #595]: #596
-#600 := [monotonicity #597]: #599
-#604 := [trans #600 #602]: #603
-#464 := (iff #95 #454)
-#459 := (implies true #454)
-#462 := (iff #459 #454)
-#463 := [rewrite]: #462
-#460 := (iff #95 #459)
-#457 := (iff #94 #454)
-#451 := (implies #29 #446)
-#455 := (iff #451 #454)
-#456 := [rewrite]: #455
-#452 := (iff #94 #451)
-#449 := (iff #93 #446)
-#442 := (implies #38 #437)
-#447 := (iff #442 #446)
-#448 := [rewrite]: #447
-#443 := (iff #93 #442)
-#440 := (iff #92 #437)
-#434 := (implies #29 #431)
-#438 := (iff #434 #437)
-#439 := [rewrite]: #438
-#435 := (iff #92 #434)
-#432 := (iff #91 #431)
-#429 := (iff #90 #419)
-#424 := (implies true #419)
-#427 := (iff #424 #419)
-#428 := [rewrite]: #427
-#425 := (iff #90 #424)
-#422 := (iff #89 #419)
-#416 := (implies #29 #411)
-#420 := (iff #416 #419)
-#421 := [rewrite]: #420
-#417 := (iff #89 #416)
-#414 := (iff #88 #411)
-#407 := (implies #77 #402)
-#412 := (iff #407 #411)
-#413 := [rewrite]: #412
-#408 := (iff #88 #407)
-#405 := (iff #87 #402)
-#398 := (implies #356 #393)
-#403 := (iff #398 #402)
-#404 := [rewrite]: #403
-#399 := (iff #87 #398)
-#396 := (iff #86 #393)
-#389 := (implies #26 #377)
-#394 := (iff #389 #393)
-#395 := [rewrite]: #394
-#390 := (iff #86 #389)
-#387 := (iff #85 #377)
-#382 := (implies true #377)
-#385 := (iff #382 #377)
-#386 := [rewrite]: #385
-#383 := (iff #85 #382)
-#380 := (iff #84 #377)
-#373 := (implies #361 #368)
-#378 := (iff #373 #377)
-#379 := [rewrite]: #378
-#374 := (iff #84 #373)
-#371 := (iff #83 #368)
-#364 := (implies #82 #286)
-#369 := (iff #364 #368)
-#370 := [rewrite]: #369
-#365 := (iff #83 #364)
-#296 := (iff #69 #286)
-#291 := (implies true #286)
-#294 := (iff #291 #286)
-#295 := [rewrite]: #294
-#292 := (iff #69 #291)
-#289 := (iff #68 #286)
-#282 := (implies #46 #277)
-#287 := (iff #282 #286)
-#288 := [rewrite]: #287
-#283 := (iff #68 #282)
-#280 := (iff #67 #277)
-#273 := (implies #200 #268)
-#278 := (iff #273 #277)
-#279 := [rewrite]: #278
-#274 := (iff #67 #273)
-#271 := (iff #66 #268)
-#264 := (implies #203 #252)
-#269 := (iff #264 #268)
-#270 := [rewrite]: #269
-#265 := (iff #66 #264)
-#262 := (iff #65 #252)
-#257 := (implies true #252)
-#260 := (iff #257 #252)
-#261 := [rewrite]: #260
-#258 := (iff #65 #257)
-#255 := (iff #64 #252)
-#249 := (and #244 #218)
-#253 := (iff #249 #252)
-#254 := [rewrite]: #253
-#250 := (iff #64 #249)
-#219 := (iff #57 #218)
-#216 := (iff #56 #213)
-#209 := (implies #206 #55)
-#214 := (iff #209 #213)
-#215 := [rewrite]: #214
-#210 := (iff #56 #209)
-#207 := (iff #54 #206)
-#208 := [rewrite]: #207
-#211 := [monotonicity #208]: #210
-#217 := [trans #211 #215]: #216
-#220 := [quant-intro #217]: #219
-#247 := (iff #63 #244)
-#240 := (implies #218 #221)
-#245 := (iff #240 #244)
-#246 := [rewrite]: #245
-#241 := (iff #63 #240)
-#238 := (iff #62 #221)
-#233 := (and true #221)
-#236 := (iff #233 #221)
-#237 := [rewrite]: #236
-#234 := (iff #62 #233)
-#222 := (iff #59 #221)
-#223 := [rewrite]: #222
-#231 := (iff #61 true)
-#226 := (implies #221 true)
-#229 := (iff #226 true)
-#230 := [rewrite]: #229
-#227 := (iff #61 #226)
-#224 := (iff #60 true)
-#225 := [rewrite]: #224
-#228 := [monotonicity #223 #225]: #227
-#232 := [trans #228 #230]: #231
-#235 := [monotonicity #232 #223]: #234
-#239 := [trans #235 #237]: #238
-#242 := [monotonicity #220 #239]: #241
-#248 := [trans #242 #246]: #247
-#251 := [monotonicity #248 #220]: #250
-#256 := [trans #251 #254]: #255
-#259 := [monotonicity #256]: #258
-#263 := [trans #259 #261]: #262
-#204 := (iff #52 #203)
-#205 := [rewrite]: #204
-#266 := [monotonicity #205 #263]: #265
-#272 := [trans #266 #270]: #271
-#201 := (iff #49 #200)
-#198 := (= #48 #197)
-#199 := [rewrite]: #198
-#202 := [monotonicity #199]: #201
-#275 := [monotonicity #202 #272]: #274
-#281 := [trans #275 #279]: #280
-#284 := [monotonicity #281]: #283
-#290 := [trans #284 #288]: #289
-#293 := [monotonicity #290]: #292
-#297 := [trans #293 #295]: #296
-#366 := [monotonicity #297]: #365
-#372 := [trans #366 #370]: #371
-#362 := (iff #81 #361)
-#363 := [rewrite]: #362
-#375 := [monotonicity #363 #372]: #374
-#381 := [trans #375 #379]: #380
-#384 := [monotonicity #381]: #383
-#388 := [trans #384 #386]: #387
-#359 := (iff #80 #26)
-#360 := [rewrite]: #359
-#391 := [monotonicity #360 #388]: #390
-#397 := [trans #391 #395]: #396
-#357 := (iff #79 #356)
-#358 := [rewrite]: #357
-#400 := [monotonicity #358 #397]: #399
-#406 := [trans #400 #404]: #405
-#409 := [monotonicity #406]: #408
-#415 := [trans #409 #413]: #414
-#418 := [monotonicity #415]: #417
-#423 := [trans #418 #421]: #422
-#426 := [monotonicity #423]: #425
-#430 := [trans #426 #428]: #429
-#354 := (iff #76 #344)
-#349 := (implies true #344)
-#352 := (iff #349 #344)
-#353 := [rewrite]: #352
-#350 := (iff #76 #349)
-#347 := (iff #75 #344)
-#341 := (implies #29 #336)
-#345 := (iff #341 #344)
-#346 := [rewrite]: #345
-#342 := (iff #75 #341)
-#339 := (iff #74 #336)
-#332 := (implies #40 #327)
-#337 := (iff #332 #336)
-#338 := [rewrite]: #337
-#333 := (iff #74 #332)
-#330 := (iff #73 #327)
-#323 := (implies #29 #311)
-#328 := (iff #323 #327)
-#329 := [rewrite]: #328
-#324 := (iff #73 #323)
-#321 := (iff #72 #311)
-#316 := (implies true #311)
-#319 := (iff #316 #311)
-#320 := [rewrite]: #319
-#317 := (iff #72 #316)
-#314 := (iff #71 #311)
-#307 := (implies #191 #302)
-#312 := (iff #307 #311)
-#313 := [rewrite]: #312
-#308 := (iff #71 #307)
-#305 := (iff #70 #302)
-#298 := (implies #194 #286)
-#303 := (iff #298 #302)
-#304 := [rewrite]: #303
-#299 := (iff #70 #298)
-#195 := (iff #44 #194)
-#196 := [rewrite]: #195
-#300 := [monotonicity #196 #297]: #299
-#306 := [trans #300 #304]: #305
-#192 := (iff #42 #191)
-#193 := [rewrite]: #192
-#309 := [monotonicity #193 #306]: #308
-#315 := [trans #309 #313]: #314
-#318 := [monotonicity #315]: #317
-#322 := [trans #318 #320]: #321
-#325 := [monotonicity #322]: #324
-#331 := [trans #325 #329]: #330
-#334 := [monotonicity #331]: #333
-#340 := [trans #334 #338]: #339
-#343 := [monotonicity #340]: #342
-#348 := [trans #343 #346]: #347
-#351 := [monotonicity #348]: #350
-#355 := [trans #351 #353]: #354
-#433 := [monotonicity #355 #430]: #432
-#436 := [monotonicity #433]: #435
-#441 := [trans #436 #439]: #440
-#444 := [monotonicity #441]: #443
-#450 := [trans #444 #448]: #449
-#453 := [monotonicity #450]: #452
-#458 := [trans #453 #456]: #457
-#461 := [monotonicity #458]: #460
-#465 := [trans #461 #463]: #464
-#607 := [monotonicity #465 #604]: #606
-#610 := [monotonicity #607]: #609
-#615 := [trans #610 #613]: #614
-#189 := (iff #37 #188)
-#190 := [rewrite]: #189
-#618 := [monotonicity #190 #615]: #617
-#624 := [trans #618 #622]: #623
-#186 := (iff #35 #185)
-#183 := (iff #34 #180)
-#176 := (implies #173 #33)
-#181 := (iff #176 #180)
-#182 := [rewrite]: #181
-#177 := (iff #34 #176)
-#174 := (iff #31 #173)
-#175 := [rewrite]: #174
-#178 := [monotonicity #175]: #177
-#184 := [trans #178 #182]: #183
-#187 := [quant-intro #184]: #186
-#627 := [monotonicity #187 #624]: #626
-#633 := [trans #627 #631]: #632
-#636 := [monotonicity #633]: #635
-#641 := [trans #636 #639]: #640
-#644 := [monotonicity #641]: #643
-#648 := [trans #644 #646]: #647
-#651 := [monotonicity #172 #648]: #650
-#657 := [trans #651 #655]: #656
-#660 := [monotonicity #657 #172]: #659
-#665 := [trans #660 #663]: #664
-#668 := [monotonicity #170 #665]: #667
-#674 := [trans #668 #672]: #673
-#677 := [monotonicity #674 #170]: #676
-#682 := [trans #677 #680]: #681
-#162 := (iff #15 #161)
-#159 := (iff #14 #158)
-#156 := (iff #13 #12)
-#157 := [rewrite]: #156
-#160 := [monotonicity #157]: #159
-#163 := [monotonicity #160]: #162
-#685 := [monotonicity #163 #682]: #684
-#691 := [trans #685 #689]: #690
-#694 := [monotonicity #691]: #693
-#699 := [trans #694 #697]: #698
-#702 := [monotonicity #699]: #701
-#706 := [trans #702 #704]: #705
-#709 := [monotonicity #706]: #708
-#715 := [trans #709 #713]: #714
-#718 := [monotonicity #715]: #717
-#722 := [trans #718 #720]: #721
-#725 := [monotonicity #722]: #724
-#1107 := [trans #725 #1105]: #1106
-#155 := [asserted]: #139
-#1108 := [mp #155 #1107]: #1103
-#1109 := [not-or-elim #1108]: #9
-#2193 := [trans #1109 #2192]: #2202
-#1888 := (not #1154)
-#1974 := (or #1540 #1888)
-#1889 := [def-axiom]: #1974
-#2194 := [unit-resolution #1889 #2205]: #1888
-#2195 := (not #2202)
-#2196 := (or #2195 #1154)
-#2197 := [th-lemma]: #2196
-#2198 := [unit-resolution #2197 #2194 #2193]: false
-#2199 := [lemma #2198]: #1540
-#2393 := (or #1545 #2390)
-#1708 := (forall (vars (?x7 int)) #1705)
-#1801 := (or #1708 #1798)
-#1804 := (not #1801)
-#1807 := (or #560 #551 #542 #886 #1654 #927 #1804)
-#1810 := (not #1807)
-#1612 := (forall (vars (?x3 int)) #1607)
-#1618 := (not #1612)
-#1619 := (or #221 #1618)
-#1620 := (not #1619)
-#1648 := (or #1620 #1645)
-#1657 := (not #1648)
-#1667 := (or #367 #401 #376 #886 #1654 #1655 #1656 #840 #850 #1657)
-#1668 := (not #1667)
-#1658 := (or #310 #301 #886 #1654 #1655 #1656 #840 #854 #1657)
-#1659 := (not #1658)
-#1673 := (or #1659 #1668)
-#1679 := (not #1673)
-#1680 := (or #886 #1654 #926 #1679)
-#1681 := (not #1680)
-#1813 := (or #1681 #1810)
-#1816 := (not #1813)
-#1590 := (forall (vars (?x2 int)) #1585)
-#1784 := (not #1590)
-#1568 := (forall (vars (?x1 int)) #1563)
-#1783 := (not #1568)
-#1819 := (or #619 #886 #1654 #1783 #1784 #1816)
-#1822 := (not #1819)
-#1825 := (or #1545 #1822)
-#2394 := (iff #1825 #2393)
-#2391 := (iff #1822 #2390)
-#2388 := (iff #1819 #2387)
-#2385 := (iff #1816 #2384)
-#2382 := (iff #1813 #2381)
-#2379 := (iff #1810 #2378)
-#2376 := (iff #1807 #2375)
-#2373 := (iff #1804 #2372)
-#2370 := (iff #1801 #2369)
-#2367 := (iff #1708 #2364)
-#2365 := (iff #1705 #1705)
-#2366 := [refl]: #2365
-#2368 := [quant-intro #2366]: #2367
-#2371 := [monotonicity #2368]: #2370
-#2374 := [monotonicity #2371]: #2373
-#2377 := [monotonicity #2374]: #2376
-#2380 := [monotonicity #2377]: #2379
-#2362 := (iff #1681 #2361)
-#2359 := (iff #1680 #2358)
-#2356 := (iff #1679 #2355)
-#2353 := (iff #1673 #2352)
-#2350 := (iff #1668 #2349)
-#2347 := (iff #1667 #2346)
-#2338 := (iff #1657 #2337)
-#2335 := (iff #1648 #2334)
-#2332 := (iff #1620 #2331)
-#2329 := (iff #1619 #2328)
-#2326 := (iff #1618 #2325)
-#2323 := (iff #1612 #2320)
-#2321 := (iff #1607 #1607)
-#2322 := [refl]: #2321
-#2324 := [quant-intro #2322]: #2323
-#2327 := [monotonicity #2324]: #2326
-#2330 := [monotonicity #2327]: #2329
-#2333 := [monotonicity #2330]: #2332
-#2336 := [monotonicity #2333]: #2335
-#2339 := [monotonicity #2336]: #2338
-#2348 := [monotonicity #2339]: #2347
-#2351 := [monotonicity #2348]: #2350
-#2344 := (iff #1659 #2343)
-#2341 := (iff #1658 #2340)
-#2342 := [monotonicity #2339]: #2341
-#2345 := [monotonicity #2342]: #2344
-#2354 := [monotonicity #2345 #2351]: #2353
-#2357 := [monotonicity #2354]: #2356
-#2360 := [monotonicity #2357]: #2359
-#2363 := [monotonicity #2360]: #2362
-#2383 := [monotonicity #2363 #2380]: #2382
-#2386 := [monotonicity #2383]: #2385
-#2318 := (iff #1784 #2317)
-#2315 := (iff #1590 #2312)
-#2313 := (iff #1585 #1585)
-#2314 := [refl]: #2313
-#2316 := [quant-intro #2314]: #2315
-#2319 := [monotonicity #2316]: #2318
-#2310 := (iff #1783 #2309)
-#2307 := (iff #1568 #2304)
-#2305 := (iff #1563 #1563)
-#2306 := [refl]: #2305
-#2308 := [quant-intro #2306]: #2307
-#2311 := [monotonicity #2308]: #2310
-#2389 := [monotonicity #2311 #2319 #2386]: #2388
-#2392 := [monotonicity #2389]: #2391
-#2395 := [monotonicity #2392]: #2394
-#1304 := (not #1303)
-#1481 := (and #1304 #1305)
-#1484 := (not #1481)
-#1500 := (or #1484 #1495)
-#1503 := (not #1500)
-#1283 := (not #1282)
-#1472 := (and #1283 #1284)
-#1475 := (not #1472)
-#1478 := (or #1469 #1475)
-#1506 := (and #1478 #1503)
-#1273 := (not #963)
-#1276 := (forall (vars (?x7 int)) #1273)
-#1509 := (or #1276 #1506)
-#1515 := (and #466 #469 #472 #776 #779 #926 #1509)
-#1401 := (not #1396)
-#1404 := (and #1192 #1401)
-#1407 := (not #1404)
-#1410 := (or #1383 #1407)
-#1413 := (not #1410)
-#1204 := (not #221)
-#1214 := (and #1204 #819)
-#1419 := (or #1214 #1413)
-#1447 := (and #82 #356 #361 #776 #779 #788 #791 #837 #854 #1419)
-#1431 := (and #191 #194 #776 #779 #788 #791 #837 #850 #1419)
-#1452 := (or #1431 #1447)
-#1458 := (and #776 #779 #927 #1452)
-#1520 := (or #1458 #1515)
-#1526 := (and #188 #769 #776 #779 #1043 #1520)
-#1348 := (and #1155 #1157)
-#1351 := (not #1348)
-#1357 := (or #1154 #1351)
-#1362 := (not #1357)
-#1531 := (or #1362 #1526)
-#1828 := (iff #1531 #1825)
-#1746 := (or #1303 #1731 #1495)
-#1758 := (or #1757 #1746)
-#1759 := (not #1758)
-#1764 := (or #1708 #1759)
-#1770 := (not #1764)
-#1771 := (or #560 #551 #542 #886 #1654 #927 #1770)
-#1772 := (not #1771)
-#1777 := (or #1681 #1772)
-#1785 := (not #1777)
-#1786 := (or #619 #886 #1654 #1783 #1784 #1785)
-#1787 := (not #1786)
-#1792 := (or #1545 #1787)
-#1826 := (iff #1792 #1825)
-#1823 := (iff #1787 #1822)
-#1820 := (iff #1786 #1819)
-#1817 := (iff #1785 #1816)
-#1814 := (iff #1777 #1813)
-#1811 := (iff #1772 #1810)
-#1808 := (iff #1771 #1807)
-#1805 := (iff #1770 #1804)
-#1802 := (iff #1764 #1801)
-#1799 := (iff #1759 #1798)
-#1796 := (iff #1758 #1795)
-#1797 := [rewrite]: #1796
-#1800 := [monotonicity #1797]: #1799
-#1803 := [monotonicity #1800]: #1802
-#1806 := [monotonicity #1803]: #1805
-#1809 := [monotonicity #1806]: #1808
-#1812 := [monotonicity #1809]: #1811
-#1815 := [monotonicity #1812]: #1814
-#1818 := [monotonicity #1815]: #1817
-#1821 := [monotonicity #1818]: #1820
-#1824 := [monotonicity #1821]: #1823
-#1827 := [monotonicity #1824]: #1826
-#1793 := (iff #1531 #1792)
-#1790 := (iff #1526 #1787)
-#1780 := (and #188 #1568 #776 #779 #1590 #1777)
-#1788 := (iff #1780 #1787)
-#1789 := [rewrite]: #1788
-#1781 := (iff #1526 #1780)
-#1778 := (iff #1520 #1777)
-#1775 := (iff #1515 #1772)
-#1767 := (and #466 #469 #472 #776 #779 #926 #1764)
-#1773 := (iff #1767 #1772)
-#1774 := [rewrite]: #1773
-#1768 := (iff #1515 #1767)
-#1765 := (iff #1509 #1764)
-#1762 := (iff #1506 #1759)
-#1751 := (not #1746)
-#1754 := (and #1726 #1751)
-#1760 := (iff #1754 #1759)
-#1761 := [rewrite]: #1760
-#1755 := (iff #1506 #1754)
-#1752 := (iff #1503 #1751)
-#1749 := (iff #1500 #1746)
-#1732 := (or #1303 #1731)
-#1743 := (or #1732 #1495)
-#1747 := (iff #1743 #1746)
-#1748 := [rewrite]: #1747
-#1744 := (iff #1500 #1743)
-#1741 := (iff #1484 #1732)
-#1733 := (not #1732)
-#1736 := (not #1733)
-#1739 := (iff #1736 #1732)
-#1740 := [rewrite]: #1739
-#1737 := (iff #1484 #1736)
-#1734 := (iff #1481 #1733)
-#1735 := [rewrite]: #1734
-#1738 := [monotonicity #1735]: #1737
-#1742 := [trans #1738 #1740]: #1741
-#1745 := [monotonicity #1742]: #1744
-#1750 := [trans #1745 #1748]: #1749
-#1753 := [monotonicity #1750]: #1752
-#1729 := (iff #1478 #1726)
-#1712 := (or #1282 #1711)
-#1723 := (or #1469 #1712)
-#1727 := (iff #1723 #1726)
-#1728 := [rewrite]: #1727
-#1724 := (iff #1478 #1723)
-#1721 := (iff #1475 #1712)
-#1713 := (not #1712)
-#1716 := (not #1713)
-#1719 := (iff #1716 #1712)
-#1720 := [rewrite]: #1719
-#1717 := (iff #1475 #1716)
-#1714 := (iff #1472 #1713)
-#1715 := [rewrite]: #1714
-#1718 := [monotonicity #1715]: #1717
-#1722 := [trans #1718 #1720]: #1721
-#1725 := [monotonicity #1722]: #1724
-#1730 := [trans #1725 #1728]: #1729
-#1756 := [monotonicity #1730 #1753]: #1755
-#1763 := [trans #1756 #1761]: #1762
-#1709 := (iff #1276 #1708)
-#1706 := (iff #1273 #1705)
-#1703 := (iff #963 #1700)
-#1686 := (or #1548 #953)
-#1697 := (or #105 #1686)
-#1701 := (iff #1697 #1700)
-#1702 := [rewrite]: #1701
-#1698 := (iff #963 #1697)
-#1695 := (iff #960 #1686)
-#1687 := (not #1686)
-#1690 := (not #1687)
-#1693 := (iff #1690 #1686)
-#1694 := [rewrite]: #1693
-#1691 := (iff #960 #1690)
-#1688 := (iff #957 #1687)
-#1689 := [rewrite]: #1688
-#1692 := [monotonicity #1689]: #1691
-#1696 := [trans #1692 #1694]: #1695
-#1699 := [monotonicity #1696]: #1698
-#1704 := [trans #1699 #1702]: #1703
-#1707 := [monotonicity #1704]: #1706
-#1710 := [quant-intro #1707]: #1709
-#1766 := [monotonicity #1710 #1763]: #1765
-#1769 := [monotonicity #1766]: #1768
-#1776 := [trans #1769 #1774]: #1775
-#1684 := (iff #1458 #1681)
-#1676 := (and #776 #779 #927 #1673)
-#1682 := (iff #1676 #1681)
-#1683 := [rewrite]: #1682
-#1677 := (iff #1458 #1676)
-#1674 := (iff #1452 #1673)
-#1671 := (iff #1447 #1668)
-#1664 := (and #82 #356 #361 #776 #779 #788 #791 #837 #854 #1648)
-#1669 := (iff #1664 #1668)
-#1670 := [rewrite]: #1669
-#1665 := (iff #1447 #1664)
-#1649 := (iff #1419 #1648)
-#1646 := (iff #1413 #1645)
-#1643 := (iff #1410 #1640)
-#1626 := (or #1625 #1396)
-#1637 := (or #1383 #1626)
-#1641 := (iff #1637 #1640)
-#1642 := [rewrite]: #1641
-#1638 := (iff #1410 #1637)
-#1635 := (iff #1407 #1626)
-#1627 := (not #1626)
-#1630 := (not #1627)
-#1633 := (iff #1630 #1626)
-#1634 := [rewrite]: #1633
-#1631 := (iff #1407 #1630)
-#1628 := (iff #1404 #1627)
-#1629 := [rewrite]: #1628
-#1632 := [monotonicity #1629]: #1631
-#1636 := [trans #1632 #1634]: #1635
-#1639 := [monotonicity #1636]: #1638
-#1644 := [trans #1639 #1642]: #1643
-#1647 := [monotonicity #1644]: #1646
-#1623 := (iff #1214 #1620)
-#1615 := (and #1204 #1612)
-#1621 := (iff #1615 #1620)
-#1622 := [rewrite]: #1621
-#1616 := (iff #1214 #1615)
-#1613 := (iff #819 #1612)
-#1610 := (iff #816 #1607)
-#1593 := (or #1548 #805)
-#1604 := (or #801 #1593)
-#1608 := (iff #1604 #1607)
-#1609 := [rewrite]: #1608
-#1605 := (iff #816 #1604)
-#1602 := (iff #813 #1593)
-#1594 := (not #1593)
-#1597 := (not #1594)
-#1600 := (iff #1597 #1593)
-#1601 := [rewrite]: #1600
-#1598 := (iff #813 #1597)
-#1595 := (iff #810 #1594)
-#1596 := [rewrite]: #1595
-#1599 := [monotonicity #1596]: #1598
-#1603 := [trans #1599 #1601]: #1602
-#1606 := [monotonicity #1603]: #1605
-#1611 := [trans #1606 #1609]: #1610
-#1614 := [quant-intro #1611]: #1613
-#1617 := [monotonicity #1614]: #1616
-#1624 := [trans #1617 #1622]: #1623
-#1650 := [monotonicity #1624 #1647]: #1649
-#1666 := [monotonicity #1650]: #1665
-#1672 := [trans #1666 #1670]: #1671
-#1662 := (iff #1431 #1659)
-#1651 := (and #191 #194 #776 #779 #788 #791 #837 #850 #1648)
-#1660 := (iff #1651 #1659)
-#1661 := [rewrite]: #1660
-#1652 := (iff #1431 #1651)
-#1653 := [monotonicity #1650]: #1652
-#1663 := [trans #1653 #1661]: #1662
-#1675 := [monotonicity #1663 #1672]: #1674
-#1678 := [monotonicity #1675]: #1677
-#1685 := [trans #1678 #1683]: #1684
-#1779 := [monotonicity #1685 #1776]: #1778
-#1591 := (iff #1043 #1590)
-#1588 := (iff #1040 #1585)
-#1571 := (or #1548 #1029)
-#1582 := (or #1026 #1571)
-#1586 := (iff #1582 #1585)
-#1587 := [rewrite]: #1586
-#1583 := (iff #1040 #1582)
-#1580 := (iff #1037 #1571)
-#1572 := (not #1571)
-#1575 := (not #1572)
-#1578 := (iff #1575 #1571)
-#1579 := [rewrite]: #1578
-#1576 := (iff #1037 #1575)
-#1573 := (iff #1034 #1572)
-#1574 := [rewrite]: #1573
-#1577 := [monotonicity #1574]: #1576
-#1581 := [trans #1577 #1579]: #1580
-#1584 := [monotonicity #1581]: #1583
-#1589 := [trans #1584 #1587]: #1588
-#1592 := [quant-intro #1589]: #1591
-#1569 := (iff #769 #1568)
-#1566 := (iff #766 #1563)
-#1549 := (or #749 #1548)
-#1560 := (or #1549 #762)
-#1564 := (iff #1560 #1563)
-#1565 := [rewrite]: #1564
-#1561 := (iff #766 #1560)
-#1558 := (iff #757 #1549)
-#1550 := (not #1549)
-#1553 := (not #1550)
-#1556 := (iff #1553 #1549)
-#1557 := [rewrite]: #1556
-#1554 := (iff #757 #1553)
-#1551 := (iff #754 #1550)
-#1552 := [rewrite]: #1551
-#1555 := [monotonicity #1552]: #1554
-#1559 := [trans #1555 #1557]: #1558
-#1562 := [monotonicity #1559]: #1561
-#1567 := [trans #1562 #1565]: #1566
-#1570 := [quant-intro #1567]: #1569
-#1782 := [monotonicity #1570 #1592 #1779]: #1781
-#1791 := [trans #1782 #1789]: #1790
-#1546 := (iff #1362 #1545)
-#1543 := (iff #1357 #1540)
-#1165 := (or #1164 #1156)
-#1537 := (or #1154 #1165)
-#1541 := (iff #1537 #1540)
-#1542 := [rewrite]: #1541
-#1538 := (iff #1357 #1537)
-#1535 := (iff #1351 #1165)
-#1292 := (not #1165)
-#1314 := (not #1292)
-#1347 := (iff #1314 #1165)
-#1534 := [rewrite]: #1347
-#1202 := (iff #1351 #1314)
-#1293 := (iff #1348 #1292)
-#1313 := [rewrite]: #1293
-#1203 := [monotonicity #1313]: #1202
-#1536 := [trans #1203 #1534]: #1535
-#1539 := [monotonicity #1536]: #1538
-#1544 := [trans #1539 #1542]: #1543
-#1547 := [monotonicity #1544]: #1546
-#1794 := [monotonicity #1547 #1791]: #1793
-#1829 := [trans #1794 #1827]: #1828
-#1299 := (+ #1298 #972)
-#1300 := (<= #1299 0::int)
-#1306 := (and #1305 #1304)
-#1307 := (not #1306)
-#1308 := (or #1307 #1300)
-#1309 := (not #1308)
-#1285 := (and #1284 #1283)
-#1286 := (not #1285)
-#1288 := (= #1287 uf_12)
-#1289 := (or #1288 #1286)
-#1315 := (and #1289 #1309)
-#1319 := (or #1276 #1315)
-#1176 := (not #784)
-#1268 := (not #542)
-#1265 := (not #551)
-#1262 := (not #560)
-#1323 := (and #1262 #1265 #1268 #1176 #930 #1319)
-#1225 := (not #846)
-#1222 := (not #840)
-#1189 := (+ ?x3!1 #806)
-#1190 := (>= #1189 0::int)
-#1191 := (not #1190)
-#1193 := (and #1192 #1191)
-#1194 := (not #1193)
-#1196 := (+ #1195 #799)
-#1197 := (<= #1196 0::int)
-#1198 := (or #1197 #1194)
-#1199 := (not #1198)
-#1218 := (or #1199 #1214)
-#1185 := (not #796)
-#1243 := (not #886)
-#1240 := (not #376)
-#1237 := (not #401)
-#1234 := (not #367)
-#1248 := (and #1234 #1237 #1240 #1243 #1176 #1185 #1218 #1222 #1225 #854)
-#1182 := (not #301)
-#1179 := (not #310)
-#1230 := (and #1179 #1182 #1176 #1185 #1218 #1222 #1225 #891)
-#1252 := (or #1230 #1248)
-#1258 := (and #1176 #1252 #927)
-#1327 := (or #1258 #1323)
-#1166 := (not #619)
-#1338 := (and #1166 #769 #1176 #1327 #1043)
-#1158 := (and #1157 #1155)
-#1159 := (not #1158)
-#1160 := (or #1159 #1154)
-#1161 := (not #1160)
-#1342 := (or #1161 #1338)
-#1532 := (iff #1342 #1531)
-#1529 := (iff #1338 #1526)
-#1523 := (and #188 #769 #781 #1520 #1043)
-#1527 := (iff #1523 #1526)
-#1528 := [rewrite]: #1527
-#1524 := (iff #1338 #1523)
-#1521 := (iff #1327 #1520)
-#1518 := (iff #1323 #1515)
-#1512 := (and #466 #469 #472 #781 #926 #1509)
-#1516 := (iff #1512 #1515)
-#1517 := [rewrite]: #1516
-#1513 := (iff #1323 #1512)
-#1510 := (iff #1319 #1509)
-#1507 := (iff #1315 #1506)
-#1504 := (iff #1309 #1503)
-#1501 := (iff #1308 #1500)
-#1498 := (iff #1300 #1495)
-#1487 := (+ #972 #1298)
-#1490 := (<= #1487 0::int)
-#1496 := (iff #1490 #1495)
-#1497 := [rewrite]: #1496
-#1491 := (iff #1300 #1490)
-#1488 := (= #1299 #1487)
-#1489 := [rewrite]: #1488
-#1492 := [monotonicity #1489]: #1491
-#1499 := [trans #1492 #1497]: #1498
-#1485 := (iff #1307 #1484)
-#1482 := (iff #1306 #1481)
-#1483 := [rewrite]: #1482
-#1486 := [monotonicity #1483]: #1485
-#1502 := [monotonicity #1486 #1499]: #1501
-#1505 := [monotonicity #1502]: #1504
-#1479 := (iff #1289 #1478)
-#1476 := (iff #1286 #1475)
-#1473 := (iff #1285 #1472)
-#1474 := [rewrite]: #1473
-#1477 := [monotonicity #1474]: #1476
-#1470 := (iff #1288 #1469)
-#1471 := [rewrite]: #1470
-#1480 := [monotonicity #1471 #1477]: #1479
-#1508 := [monotonicity #1480 #1505]: #1507
-#1511 := [monotonicity #1508]: #1510
-#1367 := (iff #1176 #781)
-#1368 := [rewrite]: #1367
-#1467 := (iff #1268 #472)
-#1468 := [rewrite]: #1467
-#1465 := (iff #1265 #469)
-#1466 := [rewrite]: #1465
-#1463 := (iff #1262 #466)
-#1464 := [rewrite]: #1463
-#1514 := [monotonicity #1464 #1466 #1468 #1368 #934 #1511]: #1513
-#1519 := [trans #1514 #1517]: #1518
-#1461 := (iff #1258 #1458)
-#1455 := (and #781 #1452 #927)
-#1459 := (iff #1455 #1458)
-#1460 := [rewrite]: #1459
-#1456 := (iff #1258 #1455)
-#1453 := (iff #1252 #1452)
-#1450 := (iff #1248 #1447)
-#1444 := (and #82 #356 #361 #776 #781 #793 #1419 #837 #843 #854)
-#1448 := (iff #1444 #1447)
-#1449 := [rewrite]: #1448
-#1445 := (iff #1248 #1444)
-#1426 := (iff #1225 #843)
-#1427 := [rewrite]: #1426
-#1424 := (iff #1222 #837)
-#1425 := [rewrite]: #1424
-#1422 := (iff #1218 #1419)
-#1416 := (or #1413 #1214)
-#1420 := (iff #1416 #1419)
-#1421 := [rewrite]: #1420
-#1417 := (iff #1218 #1416)
-#1414 := (iff #1199 #1413)
-#1411 := (iff #1198 #1410)
-#1408 := (iff #1194 #1407)
-#1405 := (iff #1193 #1404)
-#1402 := (iff #1191 #1401)
-#1399 := (iff #1190 #1396)
-#1388 := (+ #806 ?x3!1)
-#1391 := (>= #1388 0::int)
-#1397 := (iff #1391 #1396)
-#1398 := [rewrite]: #1397
-#1392 := (iff #1190 #1391)
-#1389 := (= #1189 #1388)
-#1390 := [rewrite]: #1389
-#1393 := [monotonicity #1390]: #1392
-#1400 := [trans #1393 #1398]: #1399
-#1403 := [monotonicity #1400]: #1402
-#1406 := [monotonicity #1403]: #1405
-#1409 := [monotonicity #1406]: #1408
-#1386 := (iff #1197 #1383)
-#1375 := (+ #799 #1195)
-#1378 := (<= #1375 0::int)
-#1384 := (iff #1378 #1383)
-#1385 := [rewrite]: #1384
-#1379 := (iff #1197 #1378)
-#1376 := (= #1196 #1375)
-#1377 := [rewrite]: #1376
-#1380 := [monotonicity #1377]: #1379
-#1387 := [trans #1380 #1385]: #1386
-#1412 := [monotonicity #1387 #1409]: #1411
-#1415 := [monotonicity #1412]: #1414
-#1418 := [monotonicity #1415]: #1417
-#1423 := [trans #1418 #1421]: #1422
-#1373 := (iff #1185 #793)
-#1374 := [rewrite]: #1373
-#1442 := (iff #1243 #776)
-#1443 := [rewrite]: #1442
-#1440 := (iff #1240 #361)
-#1441 := [rewrite]: #1440
-#1438 := (iff #1237 #356)
-#1439 := [rewrite]: #1438
-#1436 := (iff #1234 #82)
-#1437 := [rewrite]: #1436
-#1446 := [monotonicity #1437 #1439 #1441 #1443 #1368 #1374 #1423 #1425 #1427]: #1445
-#1451 := [trans #1446 #1449]: #1450
-#1434 := (iff #1230 #1431)
-#1428 := (and #191 #194 #781 #793 #1419 #837 #843 #850)
-#1432 := (iff #1428 #1431)
-#1433 := [rewrite]: #1432
-#1429 := (iff #1230 #1428)
-#1371 := (iff #1182 #194)
-#1372 := [rewrite]: #1371
-#1369 := (iff #1179 #191)
-#1370 := [rewrite]: #1369
-#1430 := [monotonicity #1370 #1372 #1368 #1374 #1423 #1425 #1427 #895]: #1429
-#1435 := [trans #1430 #1433]: #1434
-#1454 := [monotonicity #1435 #1451]: #1453
-#1457 := [monotonicity #1368 #1454]: #1456
-#1462 := [trans #1457 #1460]: #1461
-#1522 := [monotonicity #1462 #1519]: #1521
-#1365 := (iff #1166 #188)
-#1366 := [rewrite]: #1365
-#1525 := [monotonicity #1366 #1368 #1522]: #1524
-#1530 := [trans #1525 #1528]: #1529
-#1363 := (iff #1161 #1362)
-#1360 := (iff #1160 #1357)
-#1354 := (or #1351 #1154)
-#1358 := (iff #1354 #1357)
-#1359 := [rewrite]: #1358
-#1355 := (iff #1160 #1354)
-#1352 := (iff #1159 #1351)
-#1349 := (iff #1158 #1348)
-#1350 := [rewrite]: #1349
-#1353 := [monotonicity #1350]: #1352
-#1356 := [monotonicity #1353]: #1355
-#1361 := [trans #1356 #1359]: #1360
-#1364 := [monotonicity #1361]: #1363
-#1533 := [monotonicity #1364 #1530]: #1532
-#1138 := (or #619 #772 #784 #1021 #1046)
-#1143 := (and #769 #1138)
-#1146 := (not #1143)
-#1343 := (~ #1146 #1342)
-#1339 := (not #1138)
-#1340 := (~ #1339 #1338)
-#1335 := (not #1046)
-#1336 := (~ #1335 #1043)
-#1333 := (~ #1043 #1043)
-#1331 := (~ #1040 #1040)
-#1332 := [refl]: #1331
-#1334 := [nnf-pos #1332]: #1333
-#1337 := [nnf-neg #1334]: #1336
-#1328 := (not #1021)
-#1329 := (~ #1328 #1327)
-#1324 := (not #1016)
-#1325 := (~ #1324 #1323)
-#1320 := (not #991)
-#1321 := (~ #1320 #1319)
-#1316 := (not #988)
-#1317 := (~ #1316 #1315)
-#1310 := (not #985)
-#1311 := (~ #1310 #1309)
-#1312 := [sk]: #1311
-#1294 := (not #969)
-#1295 := (~ #1294 #1289)
-#1290 := (~ #966 #1289)
-#1291 := [sk]: #1290
-#1296 := [nnf-neg #1291]: #1295
-#1318 := [nnf-neg #1296 #1312]: #1317
-#1277 := (~ #969 #1276)
-#1274 := (~ #1273 #1273)
-#1275 := [refl]: #1274
-#1278 := [nnf-neg #1275]: #1277
-#1322 := [nnf-neg #1278 #1318]: #1321
-#1271 := (~ #930 #930)
-#1272 := [refl]: #1271
-#1177 := (~ #1176 #1176)
-#1178 := [refl]: #1177
-#1269 := (~ #1268 #1268)
-#1270 := [refl]: #1269
-#1266 := (~ #1265 #1265)
-#1267 := [refl]: #1266
-#1263 := (~ #1262 #1262)
-#1264 := [refl]: #1263
-#1326 := [nnf-neg #1264 #1267 #1270 #1178 #1272 #1322]: #1325
-#1259 := (not #946)
-#1260 := (~ #1259 #1258)
-#1256 := (~ #927 #927)
-#1257 := [refl]: #1256
-#1253 := (not #921)
-#1254 := (~ #1253 #1252)
-#1249 := (not #916)
-#1250 := (~ #1249 #1248)
-#1246 := (~ #854 #854)
-#1247 := [refl]: #1246
-#1226 := (~ #1225 #1225)
-#1227 := [refl]: #1226
-#1223 := (~ #1222 #1222)
-#1224 := [refl]: #1223
-#1219 := (not #833)
-#1220 := (~ #1219 #1218)
-#1215 := (not #828)
-#1216 := (~ #1215 #1214)
-#1211 := (not #822)
-#1212 := (~ #1211 #819)
-#1209 := (~ #819 #819)
-#1207 := (~ #816 #816)
-#1208 := [refl]: #1207
-#1210 := [nnf-pos #1208]: #1209
-#1213 := [nnf-neg #1210]: #1212
-#1205 := (~ #1204 #1204)
-#1206 := [refl]: #1205
-#1217 := [nnf-neg #1206 #1213]: #1216
-#1200 := (~ #822 #1199)
-#1201 := [sk]: #1200
-#1221 := [nnf-neg #1201 #1217]: #1220
-#1186 := (~ #1185 #1185)
-#1187 := [refl]: #1186
-#1244 := (~ #1243 #1243)
-#1245 := [refl]: #1244
-#1241 := (~ #1240 #1240)
-#1242 := [refl]: #1241
-#1238 := (~ #1237 #1237)
-#1239 := [refl]: #1238
-#1235 := (~ #1234 #1234)
-#1236 := [refl]: #1235
-#1251 := [nnf-neg #1236 #1239 #1242 #1245 #1178 #1187 #1221 #1224 #1227 #1247]: #1250
-#1231 := (not #881)
-#1232 := (~ #1231 #1230)
-#1228 := (~ #891 #891)
-#1229 := [refl]: #1228
-#1183 := (~ #1182 #1182)
-#1184 := [refl]: #1183
-#1180 := (~ #1179 #1179)
-#1181 := [refl]: #1180
-#1233 := [nnf-neg #1181 #1184 #1178 #1187 #1221 #1224 #1227 #1229]: #1232
-#1255 := [nnf-neg #1233 #1251]: #1254
-#1261 := [nnf-neg #1178 #1255 #1257]: #1260
-#1330 := [nnf-neg #1261 #1326]: #1329
-#1173 := (not #772)
-#1174 := (~ #1173 #769)
-#1171 := (~ #769 #769)
-#1169 := (~ #766 #766)
-#1170 := [refl]: #1169
-#1172 := [nnf-pos #1170]: #1171
-#1175 := [nnf-neg #1172]: #1174
-#1167 := (~ #1166 #1166)
-#1168 := [refl]: #1167
-#1341 := [nnf-neg #1168 #1175 #1178 #1330 #1337]: #1340
-#1162 := (~ #772 #1161)
-#1163 := [sk]: #1162
-#1344 := [nnf-neg #1163 #1341]: #1343
-#1110 := (not #1075)
-#1147 := (iff #1110 #1146)
-#1144 := (iff #1075 #1143)
-#1141 := (iff #1072 #1138)
-#1123 := (or #619 #784 #1021 #1046)
-#1135 := (or #772 #1123)
-#1139 := (iff #1135 #1138)
-#1140 := [rewrite]: #1139
-#1136 := (iff #1072 #1135)
-#1133 := (iff #1069 #1123)
-#1128 := (and true #1123)
-#1131 := (iff #1128 #1123)
-#1132 := [rewrite]: #1131
-#1129 := (iff #1069 #1128)
-#1126 := (iff #1064 #1123)
-#1120 := (or false #619 #784 #1021 #1046)
-#1124 := (iff #1120 #1123)
-#1125 := [rewrite]: #1124
-#1121 := (iff #1064 #1120)
-#1118 := (iff #652 false)
-#1116 := (iff #652 #740)
-#1115 := (iff #9 true)
-#1113 := [iff-true #1109]: #1115
-#1117 := [monotonicity #1113]: #1116
-#1119 := [trans #1117 #744]: #1118
-#1122 := [monotonicity #1119]: #1121
-#1127 := [trans #1122 #1125]: #1126
-#1130 := [monotonicity #1113 #1127]: #1129
-#1134 := [trans #1130 #1132]: #1133
-#1137 := [monotonicity #1134]: #1136
-#1142 := [trans #1137 #1140]: #1141
-#1145 := [monotonicity #1142]: #1144
-#1148 := [monotonicity #1145]: #1147
-#1111 := [not-or-elim #1108]: #1110
-#1149 := [mp #1111 #1148]: #1146
-#1345 := [mp~ #1149 #1344]: #1342
-#1346 := [mp #1345 #1533]: #1531
-#1830 := [mp #1346 #1829]: #1825
-#2396 := [mp #1830 #2395]: #2393
-#1909 := [unit-resolution #2396 #2199]: #2390
-#2214 := (or #2387 #2381)
-#2210 := [def-axiom]: #2214
-#2414 := [unit-resolution #2210 #1909]: #2381
-#2426 := (uf_3 uf_11)
-#2430 := (= uf_12 #2426)
-#2480 := (= #36 #2426)
-#2478 := (= #2426 #36)
-#2463 := [hypothesis]: #2378
-#2138 := (or #2375 #466)
-#2139 := [def-axiom]: #2138
-#2474 := [unit-resolution #2139 #2463]: #466
-#2475 := [symm #2474]: #98
-#2479 := [monotonicity #2475]: #2478
-#2481 := [symm #2479]: #2480
-#2482 := (= uf_12 #36)
-#2221 := (or #2387 #188)
-#2222 := [def-axiom]: #2221
-#2476 := [unit-resolution #2222 #1909]: #188
-#2132 := (or #2375 #469)
-#2140 := [def-axiom]: #2132
-#2466 := [unit-resolution #2140 #2463]: #469
-#2477 := [symm #2466]: #100
-#2483 := [trans #2477 #2476]: #2482
-#2484 := [trans #2483 #2481]: #2430
-#2458 := (not #2430)
-#2424 := (>= uf_11 0::int)
-#2425 := (not #2424)
-#2421 := (* -1::int uf_11)
-#2422 := (+ uf_1 #2421)
-#2423 := (<= #2422 0::int)
-#2436 := (or #2423 #2425 #2430)
-#2441 := (not #2436)
-#2227 := (or #2375 #2369)
-#2219 := [def-axiom]: #2227
-#2464 := [unit-resolution #2219 #2463]: #2369
-#2238 := (or #2375 #926)
-#2225 := [def-axiom]: #2238
-#2465 := [unit-resolution #2225 #2463]: #926
-#2031 := (+ uf_6 #972)
-#2032 := (<= #2031 0::int)
-#2467 := (or #551 #2032)
-#2468 := [th-lemma]: #2467
-#2469 := [unit-resolution #2468 #2466]: #2032
-#1925 := (not #2032)
-#1915 := (or #1795 #1925 #927)
-#2004 := (+ uf_4 #1301)
-#2005 := (<= #2004 0::int)
-#1918 := (not #2005)
-#1910 := [hypothesis]: #926
-#1911 := [hypothesis]: #1798
-#2086 := (or #1795 #1304)
-#2239 := [def-axiom]: #2086
-#1916 := [unit-resolution #2239 #1911]: #1304
-#1919 := (or #1918 #927 #1303)
-#1921 := [th-lemma]: #1919
-#1917 := [unit-resolution #1921 #1916 #1910]: #1918
-#2021 := (+ uf_6 #1493)
-#2022 := (>= #2021 0::int)
-#1930 := (not #2022)
-#1936 := [hypothesis]: #2032
-#2243 := (not #1495)
-#2241 := (or #1795 #2243)
-#2244 := [def-axiom]: #2241
-#1922 := [unit-resolution #2244 #1911]: #2243
-#1931 := (or #1930 #1495 #1925)
-#1924 := [hypothesis]: #2243
-#1926 := [hypothesis]: #2022
-#1927 := [th-lemma #1926 #1924 #1936]: false
-#1906 := [lemma #1927]: #1931
-#1905 := [unit-resolution #1906 #1922 #1936]: #1930
-#1913 := (or #2005 #2022)
-#2240 := (or #1795 #1305)
-#2242 := [def-axiom]: #2240
-#1908 := [unit-resolution #2242 #1911]: #1305
-#2212 := (or #2387 #2312)
-#2213 := [def-axiom]: #2212
-#1912 := [unit-resolution #2213 #1909]: #2312
-#1994 := (or #2317 #1731 #2005 #2022)
-#2034 := (+ ?x8!3 #924)
-#2035 := (>= #2034 0::int)
-#2036 := (+ #1298 #1024)
-#2037 := (<= #2036 0::int)
-#2026 := (or #1731 #2037 #2035)
-#1961 := (or #2317 #2026)
-#1971 := (iff #1961 #1994)
-#1991 := (or #1731 #2005 #2022)
-#1964 := (or #2317 #1991)
-#1969 := (iff #1964 #1994)
-#1970 := [rewrite]: #1969
-#1955 := (iff #1961 #1964)
-#1993 := (iff #2026 #1991)
-#2008 := (or #1731 #2022 #2005)
-#1983 := (iff #2008 #1991)
-#1992 := [rewrite]: #1983
-#1989 := (iff #2026 #2008)
-#2007 := (iff #2035 #2005)
-#2010 := (+ #924 ?x8!3)
-#2012 := (>= #2010 0::int)
-#1997 := (iff #2012 #2005)
-#2006 := [rewrite]: #1997
-#2014 := (iff #2035 #2012)
-#2011 := (= #2034 #2010)
-#2013 := [rewrite]: #2011
-#2003 := [monotonicity #2013]: #2014
-#1998 := [trans #2003 #2006]: #2007
-#2024 := (iff #2037 #2022)
-#2038 := (+ #1024 #1298)
-#2018 := (<= #2038 0::int)
-#2023 := (iff #2018 #2022)
-#2016 := [rewrite]: #2023
-#2019 := (iff #2037 #2018)
-#2015 := (= #2036 #2038)
-#2017 := [rewrite]: #2015
-#2020 := [monotonicity #2017]: #2019
-#2009 := [trans #2020 #2016]: #2024
-#1990 := [monotonicity #2009 #1998]: #1989
-#1984 := [trans #1990 #1992]: #1993
-#1968 := [monotonicity #1984]: #1955
-#1972 := [trans #1968 #1970]: #1971
-#1963 := [quant-inst]: #1961
-#1962 := [mp #1963 #1972]: #1994
-#1914 := [unit-resolution #1962 #1912 #1908]: #1913
-#1907 := [unit-resolution #1914 #1905 #1917]: false
-#1900 := [lemma #1907]: #1915
-#2470 := [unit-resolution #1900 #2469 #2465]: #1795
-#2121 := (or #2372 #2364 #1798)
-#2136 := [def-axiom]: #2121
-#2471 := [unit-resolution #2136 #2470 #2464]: #2364
-#2235 := (not #2364)
-#2444 := (or #2235 #2441)
-#2427 := (= #2426 uf_12)
-#2428 := (or #2427 #2425 #2423)
-#2429 := (not #2428)
-#2445 := (or #2235 #2429)
-#2447 := (iff #2445 #2444)
-#2449 := (iff #2444 #2444)
-#2450 := [rewrite]: #2449
-#2442 := (iff #2429 #2441)
-#2439 := (iff #2428 #2436)
-#2433 := (or #2430 #2425 #2423)
-#2437 := (iff #2433 #2436)
-#2438 := [rewrite]: #2437
-#2434 := (iff #2428 #2433)
-#2431 := (iff #2427 #2430)
-#2432 := [rewrite]: #2431
-#2435 := [monotonicity #2432]: #2434
-#2440 := [trans #2435 #2438]: #2439
-#2443 := [monotonicity #2440]: #2442
-#2448 := [monotonicity #2443]: #2447
-#2451 := [trans #2448 #2450]: #2447
-#2446 := [quant-inst]: #2445
-#2452 := [mp #2446 #2451]: #2444
-#2472 := [unit-resolution #2452 #2471]: #2441
-#2459 := (or #2436 #2458)
-#2460 := [def-axiom]: #2459
-#2473 := [unit-resolution #2460 #2472]: #2458
-#2485 := [unit-resolution #2473 #2484]: false
-#2486 := [lemma #2485]: #2375
-#2231 := (or #2384 #2361 #2378)
-#2220 := [def-axiom]: #2231
-#2415 := [unit-resolution #2220 #2486 #2414]: #2361
-#2106 := (or #2358 #2352)
-#2248 := [def-axiom]: #2106
-#2416 := [unit-resolution #2248 #2415]: #2352
-#2417 := [hypothesis]: #840
-#2285 := (or #2340 #837)
-#1923 := [def-axiom]: #2285
-#2418 := [unit-resolution #1923 #2417]: #2340
-#1987 := (or #2346 #837)
-#1988 := [def-axiom]: #1987
-#2419 := [unit-resolution #1988 #2417]: #2346
-#2255 := (or #2355 #2343 #2349)
-#2256 := [def-axiom]: #2255
-#2420 := [unit-resolution #2256 #2419 #2418 #2416]: false
-#2403 := [lemma #2420]: #837
-#2690 := (or #840 #1977)
-#2691 := [th-lemma]: #2690
-#2692 := [unit-resolution #2691 #2403]: #1977
-#2661 := [hypothesis]: #2349
-#2272 := (or #2346 #361)
-#2273 := [def-axiom]: #2272
-#2662 := [unit-resolution #2273 #2661]: #361
-#2629 := (= #58 #1195)
-#2642 := (not #2629)
-#2630 := (+ #58 #1381)
-#2632 := (>= #2630 0::int)
-#2636 := (not #2632)
-#2402 := (+ #39 #799)
-#2405 := (<= #2402 0::int)
-#2404 := (= #39 uf_8)
-#2665 := (= uf_10 uf_8)
-#2000 := (or #2346 #82)
-#2001 := [def-axiom]: #2000
-#2663 := [unit-resolution #2001 #2661]: #82
-#2666 := [symm #2663]: #2665
-#2002 := (or #2346 #356)
-#1896 := [def-axiom]: #2002
-#2664 := [unit-resolution #1896 #2661]: #356
-#2667 := [trans #2664 #2666]: #2404
-#2668 := (not #2404)
-#2669 := (or #2668 #2405)
-#2670 := [th-lemma]: #2669
-#2671 := [unit-resolution #2670 #2667]: #2405
-#1966 := (not #1383)
-#1982 := (or #2346 #2334)
-#2264 := [def-axiom]: #1982
-#2672 := [unit-resolution #2264 #2661]: #2334
-#2537 := (= #39 #58)
-#2674 := (= #58 #39)
-#2673 := [symm #2662]: #81
-#2675 := [monotonicity #2673]: #2674
-#2677 := [symm #2675]: #2537
-#2678 := (= uf_8 #39)
-#2676 := [symm #2664]: #79
-#2679 := [trans #2663 #2676]: #2678
-#2680 := [trans #2679 #2677]: #221
-#1981 := (or #2328 #1204)
-#1960 := [def-axiom]: #1981
-#2681 := [unit-resolution #1960 #2680]: #2328
-#1953 := (or #2337 #2331 #1645)
-#2294 := [def-axiom]: #1953
-#2682 := [unit-resolution #2294 #2681 #2672]: #1645
-#2298 := (or #1640 #1966)
-#2299 := [def-axiom]: #2298
-#2683 := [unit-resolution #2299 #2682]: #1966
-#2033 := (* -1::int #58)
-#2538 := (+ #39 #2033)
-#2540 := (>= #2538 0::int)
-#2684 := (not #2537)
-#2685 := (or #2684 #2540)
-#2686 := [th-lemma]: #2685
-#2687 := [unit-resolution #2686 #2677]: #2540
-#2617 := (not #2405)
-#2637 := (not #2540)
-#2638 := (or #2636 #2637 #1383 #2617)
-#2633 := [hypothesis]: #2632
-#2609 := [hypothesis]: #2405
-#2610 := [hypothesis]: #1966
-#2634 := [hypothesis]: #2540
-#2635 := [th-lemma #2634 #2610 #2609 #2633]: false
-#2639 := [lemma #2635]: #2638
-#2688 := [unit-resolution #2639 #2687 #2683 #2671]: #2636
-#2643 := (or #2642 #2632)
-#2644 := [th-lemma]: #2643
-#2689 := [unit-resolution #2644 #2688]: #2642
-#2300 := (or #1640 #1401)
-#2301 := [def-axiom]: #2300
-#2693 := [unit-resolution #2301 #2682]: #1401
-#2694 := (not #1977)
-#2695 := (or #2628 #1396 #2694)
-#2696 := [th-lemma]: #2695
-#2697 := [unit-resolution #2696 #2693 #2692]: #2628
-#2565 := (<= #2564 0::int)
-#2552 := (+ uf_6 #1381)
-#2553 := (>= #2552 0::int)
-#2699 := (not #2553)
-#2266 := (or #2346 #854)
-#2267 := [def-axiom]: #2266
-#2698 := [unit-resolution #2267 #2661]: #854
-#2700 := (or #2699 #1383 #2617 #850)
-#2701 := [th-lemma]: #2700
-#2702 := [unit-resolution #2701 #2683 #2671 #2698]: #2699
-#2704 := (or #2553 #2565)
-#2291 := (or #1640 #1192)
-#1965 := [def-axiom]: #2291
-#2703 := [unit-resolution #1965 #2682]: #1192
-#2573 := (or #2317 #1625 #2553 #2565)
-#2541 := (+ ?x3!1 #924)
-#2542 := (>= #2541 0::int)
-#2543 := (+ #1195 #1024)
-#2544 := (<= #2543 0::int)
-#2545 := (or #1625 #2544 #2542)
-#2574 := (or #2317 #2545)
-#2581 := (iff #2574 #2573)
-#2570 := (or #1625 #2553 #2565)
-#2576 := (or #2317 #2570)
-#2579 := (iff #2576 #2573)
-#2580 := [rewrite]: #2579
-#2577 := (iff #2574 #2576)
-#2571 := (iff #2545 #2570)
-#2568 := (iff #2542 #2565)
-#2558 := (+ #924 ?x3!1)
-#2561 := (>= #2558 0::int)
-#2566 := (iff #2561 #2565)
-#2567 := [rewrite]: #2566
-#2562 := (iff #2542 #2561)
-#2559 := (= #2541 #2558)
-#2560 := [rewrite]: #2559
-#2563 := [monotonicity #2560]: #2562
-#2569 := [trans #2563 #2567]: #2568
-#2556 := (iff #2544 #2553)
-#2546 := (+ #1024 #1195)
-#2549 := (<= #2546 0::int)
-#2554 := (iff #2549 #2553)
-#2555 := [rewrite]: #2554
-#2550 := (iff #2544 #2549)
-#2547 := (= #2543 #2546)
-#2548 := [rewrite]: #2547
-#2551 := [monotonicity #2548]: #2550
-#2557 := [trans #2551 #2555]: #2556
-#2572 := [monotonicity #2557 #2569]: #2571
-#2578 := [monotonicity #2572]: #2577
-#2582 := [trans #2578 #2580]: #2581
-#2575 := [quant-inst]: #2574
-#2583 := [mp #2575 #2582]: #2573
-#2705 := [unit-resolution #2583 #1912 #2703]: #2704
-#2706 := [unit-resolution #2705 #2702]: #2565
-#2708 := (not #2628)
-#2707 := (not #2565)
-#2709 := (or #2631 #2707 #2708)
-#2710 := [th-lemma]: #2709
-#2711 := [unit-resolution #2710 #2706 #2697]: #2631
-#2658 := (not #2631)
-#2659 := (or #2658 #2629 #376)
-#2654 := (= #1195 #58)
-#2652 := (= ?x3!1 uf_7)
-#2648 := [hypothesis]: #361
-#2650 := (= ?x3!1 uf_4)
-#2649 := [hypothesis]: #2631
-#2651 := [symm #2649]: #2650
-#2653 := [trans #2651 #2648]: #2652
-#2655 := [monotonicity #2653]: #2654
-#2656 := [symm #2655]: #2629
-#2647 := [hypothesis]: #2642
-#2657 := [unit-resolution #2647 #2656]: false
-#2660 := [lemma #2657]: #2659
-#2712 := [unit-resolution #2660 #2711 #2689 #2662]: false
-#2713 := [lemma #2712]: #2346
-#2766 := [unit-resolution #2256 #2713 #2416]: #2343
-#1928 := (or #2340 #2334)
-#1929 := [def-axiom]: #1928
-#2767 := [unit-resolution #1929 #2766]: #2334
-#2515 := (= #36 #58)
-#2772 := (= #58 #36)
-#1937 := (or #2340 #191)
-#2278 := [def-axiom]: #1937
-#2768 := [unit-resolution #2278 #2766]: #191
-#2769 := [symm #2768]: #42
-#2773 := [monotonicity #2769]: #2772
-#2774 := [symm #2773]: #2515
-#2775 := (= uf_8 #36)
-#1941 := (or #2340 #194)
-#1942 := [def-axiom]: #1941
-#2770 := [unit-resolution #1942 #2766]: #194
-#2771 := [symm #2770]: #44
-#2776 := [trans #2771 #2476]: #2775
-#2777 := [trans #2776 #2774]: #221
-#2778 := [unit-resolution #1960 #2777]: #2328
-#2779 := [unit-resolution #2294 #2778 #2767]: #1645
-#2780 := [unit-resolution #2301 #2779]: #1401
-#2781 := [unit-resolution #2696 #2780 #2692]: #2628
-#2510 := (+ uf_6 #799)
-#2511 := (<= #2510 0::int)
-#2782 := (or #301 #2511)
-#2783 := [th-lemma]: #2782
-#2784 := [unit-resolution #2783 #2770]: #2511
-#2785 := [unit-resolution #2299 #2779]: #1966
-#2786 := (not #2511)
-#2787 := (or #2699 #1383 #2786)
-#2788 := [th-lemma]: #2787
-#2789 := [unit-resolution #2788 #2785 #2784]: #2699
-#2790 := [unit-resolution #1965 #2779]: #1192
-#2791 := [unit-resolution #2583 #1912 #2790 #2789]: #2565
-#2792 := [unit-resolution #2710 #2791 #2781]: #2631
-#2793 := [monotonicity #2792]: #2762
-#2794 := (not #2762)
-#2795 := (or #2794 #2765)
-#2796 := [th-lemma]: #2795
-#2797 := [unit-resolution #2796 #2793]: #2765
-#2286 := (or #2340 #850)
-#2288 := [def-axiom]: #2286
-#2798 := [unit-resolution #2288 #2766]: #850
-[th-lemma #2798 #2785 #2784 #2797]: false
-unsat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Boogie/Examples/cert/Boogie_max	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,19 @@
+(benchmark Isabelle
+:extrafuns (
+  (uf_5 Int)
+  (uf_7 Int)
+  (uf_11 Int)
+  (uf_4 Int)
+  (uf_9 Int)
+  (uf_13 Int)
+  (uf_2 Int)
+  (uf_6 Int)
+  (uf_10 Int)
+  (uf_8 Int)
+  (uf_12 Int)
+  (uf_3 Int Int)
+  (uf_1 Int)
+ )
+:assumption (not (implies true (implies (< 0 uf_1) (implies true (implies (= uf_2 (uf_3 0)) (implies (and (<= 1 1) (and (<= 1 1) (and (<= 0 0) (<= 0 0)))) (and (implies (forall (?x1 Int) (implies (and (< ?x1 1) (<= 0 ?x1)) (<= (uf_3 ?x1) uf_2))) (and (implies (= (uf_3 0) uf_2) (implies true (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies (forall (?x2 Int) (implies (and (< ?x2 uf_4) (<= 0 ?x2)) (<= (uf_3 ?x2) uf_6))) (implies (= (uf_3 uf_5) uf_6) (implies (and (<= 1 uf_4) (<= 0 uf_5)) (and (implies true (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies (< uf_4 uf_1) (implies (and (<= 1 uf_4) (<= 0 uf_5)) (and (implies true (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies (<= (uf_3 uf_4) uf_6) (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies true (implies (= uf_7 uf_5) (implies (= uf_8 uf_6) (implies true (implies (and (<= 1 uf_4) (<= 0 uf_7)) (implies (= uf_9 (+ uf_4 1)) (implies (and (<= 2 uf_9) (<= 0 uf_7)) (implies true (and (implies (forall (?x3 Int) (implies (and (< ?x3 uf_9) (<= 0 ?x3)) (<= (uf_3 ?x3) uf_8))) (and (implies (= (uf_3 uf_7) uf_8) (implies false true)) (= (uf_3 uf_7) uf_8))) (forall (?x4 Int) (implies (and (< ?x4 uf_9) (<= 0 ?x4)) (<= (uf_3 ?x4) uf_8)))))))))))))))) (implies true (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies (< uf_6 (uf_3 uf_4)) (implies (= uf_10 (uf_3 uf_4)) (implies (and (<= 1 uf_4) (<= 1 uf_4)) (implies true (implies (= uf_7 uf_4) (implies (= uf_8 uf_10) (implies true (implies (and (<= 1 uf_4) (<= 0 uf_7)) (implies (= uf_9 (+ uf_4 1)) (implies (and (<= 2 uf_9) (<= 0 uf_7)) (implies true (and (implies (forall (?x5 Int) (implies (and (< ?x5 uf_9) (<= 0 ?x5)) (<= (uf_3 ?x5) uf_8))) (and (implies (= (uf_3 uf_7) uf_8) (implies false true)) (= (uf_3 uf_7) uf_8))) (forall (?x6 Int) (implies (and (< ?x6 uf_9) (<= 0 ?x6)) (<= (uf_3 ?x6) uf_8)))))))))))))))))))))) (implies true (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies (<= uf_1 uf_4) (implies (and (<= 1 uf_4) (<= 0 uf_5)) (implies true (implies (= uf_11 uf_5) (implies (= uf_12 uf_6) (implies (= uf_13 uf_4) (implies true (and (implies (exists (?x7 Int) (implies (and (< ?x7 uf_1) (<= 0 ?x7)) (= (uf_3 ?x7) uf_12))) (and (implies (forall (?x8 Int) (implies (and (< ?x8 uf_1) (<= 0 ?x8)) (<= (uf_3 ?x8) uf_12))) true) (forall (?x9 Int) (implies (and (< ?x9 uf_1) (<= 0 ?x9)) (<= (uf_3 ?x9) uf_12))))) (exists (?x10 Int) (implies (and (< ?x10 uf_1) (<= 0 ?x10)) (= (uf_3 ?x10) uf_12)))))))))))))))))))) (= (uf_3 0) uf_2))) (forall (?x11 Int) (implies (and (< ?x11 1) (<= 0 ?x11)) (<= (uf_3 ?x11) uf_2))))))))))
+:formula true
+)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Boogie/Examples/cert/Boogie_max.proof	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,2329 @@
+#2 := false
+#4 := 0::int
+decl uf_3 :: (-> int int)
+decl ?x3!1 :: int
+#1188 := ?x3!1
+#1195 := (uf_3 ?x3!1)
+#760 := -1::int
+#1381 := (* -1::int #1195)
+decl uf_4 :: int
+#25 := uf_4
+#39 := (uf_3 uf_4)
+#2763 := (+ #39 #1381)
+#2765 := (>= #2763 0::int)
+#2762 := (= #39 #1195)
+#2631 := (= uf_4 ?x3!1)
+#1394 := (* -1::int ?x3!1)
+#2564 := (+ uf_4 #1394)
+#2628 := (>= #2564 0::int)
+decl uf_9 :: int
+#47 := uf_9
+#806 := (* -1::int uf_9)
+#838 := (+ uf_4 #806)
+#1977 := (>= #838 -1::int)
+#837 := (= #838 -1::int)
+#1395 := (+ uf_9 #1394)
+#1396 := (<= #1395 0::int)
+decl uf_8 :: int
+#43 := uf_8
+#1382 := (+ uf_8 #1381)
+#1383 := (>= #1382 0::int)
+#1192 := (>= ?x3!1 0::int)
+#1625 := (not #1192)
+#1640 := (or #1625 #1383 #1396)
+#1645 := (not #1640)
+#16 := (:var 0 int)
+#20 := (uf_3 #16)
+#2303 := (pattern #20)
+#807 := (+ #16 #806)
+#805 := (>= #807 0::int)
+#799 := (* -1::int uf_8)
+#800 := (+ #20 #799)
+#801 := (<= #800 0::int)
+#753 := (>= #16 0::int)
+#1548 := (not #753)
+#1607 := (or #1548 #801 #805)
+#2320 := (forall (vars (?x3 int)) (:pat #2303) #1607)
+#2325 := (not #2320)
+decl uf_7 :: int
+#41 := uf_7
+#58 := (uf_3 uf_7)
+#221 := (= uf_8 #58)
+#2328 := (or #221 #2325)
+#2331 := (not #2328)
+#2334 := (or #2331 #1645)
+#2337 := (not #2334)
+#851 := (* -1::int #39)
+decl uf_6 :: int
+#32 := uf_6
+#852 := (+ uf_6 #851)
+#850 := (>= #852 0::int)
+#840 := (not #837)
+#50 := 2::int
+#791 := (>= uf_9 2::int)
+#1656 := (not #791)
+#788 := (>= uf_7 0::int)
+#1655 := (not #788)
+decl uf_5 :: int
+#27 := uf_5
+#779 := (>= uf_5 0::int)
+#1654 := (not #779)
+#10 := 1::int
+#776 := (>= uf_4 1::int)
+#886 := (not #776)
+#361 := (= uf_4 uf_7)
+#376 := (not #361)
+decl uf_10 :: int
+#78 := uf_10
+#356 := (= #39 uf_10)
+#401 := (not #356)
+#82 := (= uf_8 uf_10)
+#367 := (not #82)
+#2346 := (or #367 #401 #376 #886 #1654 #1655 #1656 #840 #850 #2337)
+#2349 := (not #2346)
+#854 := (not #850)
+#194 := (= uf_6 uf_8)
+#301 := (not #194)
+#191 := (= uf_5 uf_7)
+#310 := (not #191)
+#2340 := (or #310 #301 #886 #1654 #1655 #1656 #840 #854 #2337)
+#2343 := (not #2340)
+#2352 := (or #2343 #2349)
+#2355 := (not #2352)
+#924 := (* -1::int uf_4)
+decl uf_1 :: int
+#5 := uf_1
+#925 := (+ uf_1 #924)
+#926 := (<= #925 0::int)
+#2358 := (or #886 #1654 #926 #2355)
+#2361 := (not #2358)
+decl ?x7!2 :: int
+#1279 := ?x7!2
+#1287 := (uf_3 ?x7!2)
+decl uf_12 :: int
+#99 := uf_12
+#1469 := (= uf_12 #1287)
+#1284 := (>= ?x7!2 0::int)
+#1711 := (not #1284)
+#1280 := (* -1::int ?x7!2)
+#1281 := (+ uf_1 #1280)
+#1282 := (<= #1281 0::int)
+#1726 := (or #1282 #1711 #1469)
+#1757 := (not #1726)
+decl ?x8!3 :: int
+#1297 := ?x8!3
+#1298 := (uf_3 ?x8!3)
+#1493 := (* -1::int #1298)
+#1494 := (+ uf_12 #1493)
+#1495 := (>= #1494 0::int)
+#1305 := (>= ?x8!3 0::int)
+#1731 := (not #1305)
+#1301 := (* -1::int ?x8!3)
+#1302 := (+ uf_1 #1301)
+#1303 := (<= #1302 0::int)
+#1795 := (or #1303 #1731 #1495 #1757)
+#1798 := (not #1795)
+#951 := (* -1::int #16)
+#952 := (+ uf_1 #951)
+#953 := (<= #952 0::int)
+#105 := (= #20 uf_12)
+#1700 := (or #105 #1548 #953)
+#1705 := (not #1700)
+#2364 := (forall (vars (?x7 int)) (:pat #2303) #1705)
+#2369 := (or #2364 #1798)
+#2372 := (not #2369)
+#927 := (not #926)
+decl uf_13 :: int
+#101 := uf_13
+#472 := (= uf_4 uf_13)
+#542 := (not #472)
+#469 := (= uf_6 uf_12)
+#551 := (not #469)
+decl uf_11 :: int
+#97 := uf_11
+#466 := (= uf_5 uf_11)
+#560 := (not #466)
+#2375 := (or #560 #551 #542 #886 #1654 #927 #2372)
+#2378 := (not #2375)
+#2381 := (or #2361 #2378)
+#2384 := (not #2381)
+#1030 := (+ #16 #924)
+#1029 := (>= #1030 0::int)
+#1024 := (* -1::int uf_6)
+#1025 := (+ #20 #1024)
+#1026 := (<= #1025 0::int)
+#1585 := (or #1548 #1026 #1029)
+#2312 := (forall (vars (?x2 int)) (:pat #2303) #1585)
+#2317 := (not #2312)
+#763 := (* -1::int #20)
+decl uf_2 :: int
+#7 := uf_2
+#764 := (+ uf_2 #763)
+#762 := (>= #764 0::int)
+#749 := (>= #16 1::int)
+#1563 := (or #749 #1548 #762)
+#2304 := (forall (vars (?x1 int)) (:pat #2303) #1563)
+#2309 := (not #2304)
+#36 := (uf_3 uf_5)
+#188 := (= uf_6 #36)
+#619 := (not #188)
+#2387 := (or #619 #886 #1654 #2309 #2317 #2384)
+#2390 := (not #2387)
+decl ?x1!0 :: int
+#1152 := ?x1!0
+#1156 := (>= ?x1!0 1::int)
+#1155 := (>= ?x1!0 0::int)
+#1164 := (not #1155)
+#1153 := (uf_3 ?x1!0)
+#1150 := (* -1::int #1153)
+#1151 := (+ uf_2 #1150)
+#1154 := (>= #1151 0::int)
+#1540 := (or #1154 #1164 #1156)
+#2202 := (= uf_2 #1153)
+#8 := (uf_3 0::int)
+#2191 := (= #8 #1153)
+#2188 := (= #1153 #8)
+#2207 := (= ?x1!0 0::int)
+#1157 := (not #1156)
+#1545 := (not #1540)
+#2205 := [hypothesis]: #1545
+#1976 := (or #1540 #1157)
+#1967 := [def-axiom]: #1976
+#2206 := [unit-resolution #1967 #2205]: #1157
+#1975 := (or #1540 #1155)
+#1890 := [def-axiom]: #1975
+#2203 := [unit-resolution #1890 #2205]: #1155
+#2187 := [th-lemma #2203 #2206]: #2207
+#2190 := [monotonicity #2187]: #2188
+#2192 := [symm #2190]: #2191
+#9 := (= uf_2 #8)
+#1078 := (<= uf_1 0::int)
+#1031 := (not #1029)
+#1034 := (and #753 #1031)
+#1037 := (not #1034)
+#1040 := (or #1026 #1037)
+#1043 := (forall (vars (?x2 int)) #1040)
+#1046 := (not #1043)
+#972 := (* -1::int uf_12)
+#973 := (+ #20 #972)
+#974 := (<= #973 0::int)
+#954 := (not #953)
+#957 := (and #753 #954)
+#960 := (not #957)
+#980 := (or #960 #974)
+#985 := (forall (vars (?x8 int)) #980)
+#963 := (or #105 #960)
+#966 := (exists (vars (?x7 int)) #963)
+#969 := (not #966)
+#988 := (or #969 #985)
+#991 := (and #966 #988)
+#781 := (and #776 #779)
+#784 := (not #781)
+#1016 := (or #560 #551 #542 #784 #927 #991)
+#843 := (and #776 #788)
+#846 := (not #843)
+#804 := (not #805)
+#810 := (and #753 #804)
+#813 := (not #810)
+#816 := (or #801 #813)
+#819 := (forall (vars (?x3 int)) #816)
+#822 := (not #819)
+#828 := (or #221 #822)
+#833 := (and #819 #828)
+#793 := (and #788 #791)
+#796 := (not #793)
+#916 := (or #367 #401 #376 #886 #784 #796 #833 #840 #846 #850)
+#881 := (or #310 #301 #784 #796 #833 #840 #846 #854)
+#921 := (and #881 #916)
+#946 := (or #784 #921 #926)
+#1021 := (and #946 #1016)
+#652 := (not #9)
+#1064 := (or #652 #619 #784 #1021 #1046)
+#1069 := (and #9 #1064)
+#747 := (not #749)
+#754 := (and #747 #753)
+#757 := (not #754)
+#766 := (or #757 #762)
+#769 := (forall (vars (?x1 int)) #766)
+#772 := (not #769)
+#1072 := (or #772 #1069)
+#1075 := (and #769 #1072)
+#1098 := (or #652 #1075 #1078)
+#1103 := (not #1098)
+#21 := (<= #20 uf_2)
+#18 := (<= 0::int #16)
+#17 := (< #16 1::int)
+#19 := (and #17 #18)
+#22 := (implies #19 #21)
+#23 := (forall (vars (?x1 int)) #22)
+#24 := (= #8 uf_2)
+#103 := (< #16 uf_1)
+#104 := (and #103 #18)
+#106 := (implies #104 #105)
+#107 := (exists (vars (?x7 int)) #106)
+#108 := (<= #20 uf_12)
+#109 := (implies #104 #108)
+#110 := (forall (vars (?x8 int)) #109)
+#1 := true
+#111 := (implies #110 true)
+#112 := (and #111 #110)
+#113 := (implies #107 #112)
+#114 := (and #113 #107)
+#115 := (implies true #114)
+#102 := (= uf_13 uf_4)
+#116 := (implies #102 #115)
+#100 := (= uf_12 uf_6)
+#117 := (implies #100 #116)
+#98 := (= uf_11 uf_5)
+#118 := (implies #98 #117)
+#119 := (implies true #118)
+#28 := (<= 0::int uf_5)
+#26 := (<= 1::int uf_4)
+#29 := (and #26 #28)
+#120 := (implies #29 #119)
+#96 := (<= uf_1 uf_4)
+#121 := (implies #96 #120)
+#122 := (implies #29 #121)
+#123 := (implies true #122)
+#55 := (<= #20 uf_8)
+#53 := (< #16 uf_9)
+#54 := (and #53 #18)
+#56 := (implies #54 #55)
+#57 := (forall (vars (?x3 int)) #56)
+#59 := (= #58 uf_8)
+#60 := (implies false true)
+#61 := (implies #59 #60)
+#62 := (and #61 #59)
+#63 := (implies #57 #62)
+#64 := (and #63 #57)
+#65 := (implies true #64)
+#45 := (<= 0::int uf_7)
+#51 := (<= 2::int uf_9)
+#52 := (and #51 #45)
+#66 := (implies #52 #65)
+#48 := (+ uf_4 1::int)
+#49 := (= uf_9 #48)
+#67 := (implies #49 #66)
+#46 := (and #26 #45)
+#68 := (implies #46 #67)
+#69 := (implies true #68)
+#83 := (implies #82 #69)
+#81 := (= uf_7 uf_4)
+#84 := (implies #81 #83)
+#85 := (implies true #84)
+#80 := (and #26 #26)
+#86 := (implies #80 #85)
+#79 := (= uf_10 #39)
+#87 := (implies #79 #86)
+#77 := (< uf_6 #39)
+#88 := (implies #77 #87)
+#89 := (implies #29 #88)
+#90 := (implies true #89)
+#44 := (= uf_8 uf_6)
+#70 := (implies #44 #69)
+#42 := (= uf_7 uf_5)
+#71 := (implies #42 #70)
+#72 := (implies true #71)
+#73 := (implies #29 #72)
+#40 := (<= #39 uf_6)
+#74 := (implies #40 #73)
+#75 := (implies #29 #74)
+#76 := (implies true #75)
+#91 := (and #76 #90)
+#92 := (implies #29 #91)
+#38 := (< uf_4 uf_1)
+#93 := (implies #38 #92)
+#94 := (implies #29 #93)
+#95 := (implies true #94)
+#124 := (and #95 #123)
+#125 := (implies #29 #124)
+#37 := (= #36 uf_6)
+#126 := (implies #37 #125)
+#33 := (<= #20 uf_6)
+#30 := (< #16 uf_4)
+#31 := (and #30 #18)
+#34 := (implies #31 #33)
+#35 := (forall (vars (?x2 int)) #34)
+#127 := (implies #35 #126)
+#128 := (implies #29 #127)
+#129 := (implies true #128)
+#130 := (implies #24 #129)
+#131 := (and #130 #24)
+#132 := (implies #23 #131)
+#133 := (and #132 #23)
+#12 := (<= 0::int 0::int)
+#13 := (and #12 #12)
+#11 := (<= 1::int 1::int)
+#14 := (and #11 #13)
+#15 := (and #11 #14)
+#134 := (implies #15 #133)
+#135 := (implies #9 #134)
+#136 := (implies true #135)
+#6 := (< 0::int uf_1)
+#137 := (implies #6 #136)
+#138 := (implies true #137)
+#139 := (not #138)
+#1106 := (iff #139 #1103)
+#475 := (and #18 #103)
+#481 := (not #475)
+#493 := (or #108 #481)
+#498 := (forall (vars (?x8 int)) #493)
+#482 := (or #105 #481)
+#487 := (exists (vars (?x7 int)) #482)
+#518 := (not #487)
+#519 := (or #518 #498)
+#527 := (and #487 #519)
+#543 := (or #542 #527)
+#552 := (or #551 #543)
+#561 := (or #560 #552)
+#326 := (not #29)
+#576 := (or #326 #561)
+#584 := (not #96)
+#585 := (or #584 #576)
+#593 := (or #326 #585)
+#206 := (and #18 #53)
+#212 := (not #206)
+#213 := (or #55 #212)
+#218 := (forall (vars (?x3 int)) #213)
+#243 := (not #218)
+#244 := (or #243 #221)
+#252 := (and #218 #244)
+#203 := (and #45 #51)
+#267 := (not #203)
+#268 := (or #267 #252)
+#197 := (+ 1::int uf_4)
+#200 := (= uf_9 #197)
+#276 := (not #200)
+#277 := (or #276 #268)
+#285 := (not #46)
+#286 := (or #285 #277)
+#368 := (or #367 #286)
+#377 := (or #376 #368)
+#392 := (not #26)
+#393 := (or #392 #377)
+#402 := (or #401 #393)
+#410 := (not #77)
+#411 := (or #410 #402)
+#419 := (or #326 #411)
+#302 := (or #301 #286)
+#311 := (or #310 #302)
+#327 := (or #326 #311)
+#335 := (not #40)
+#336 := (or #335 #327)
+#344 := (or #326 #336)
+#431 := (and #344 #419)
+#437 := (or #326 #431)
+#445 := (not #38)
+#446 := (or #445 #437)
+#454 := (or #326 #446)
+#605 := (and #454 #593)
+#611 := (or #326 #605)
+#620 := (or #619 #611)
+#173 := (and #18 #30)
+#179 := (not #173)
+#180 := (or #33 #179)
+#185 := (forall (vars (?x2 int)) #180)
+#628 := (not #185)
+#629 := (or #628 #620)
+#637 := (or #326 #629)
+#653 := (or #652 #637)
+#661 := (and #9 #653)
+#164 := (not #19)
+#165 := (or #164 #21)
+#168 := (forall (vars (?x1 int)) #165)
+#669 := (not #168)
+#670 := (or #669 #661)
+#678 := (and #168 #670)
+#158 := (and #11 #12)
+#161 := (and #11 #158)
+#686 := (not #161)
+#687 := (or #686 #678)
+#695 := (or #652 #687)
+#710 := (not #6)
+#711 := (or #710 #695)
+#723 := (not #711)
+#1104 := (iff #723 #1103)
+#1101 := (iff #711 #1098)
+#1089 := (or false #1075)
+#1092 := (or #652 #1089)
+#1095 := (or #1078 #1092)
+#1099 := (iff #1095 #1098)
+#1100 := [rewrite]: #1099
+#1096 := (iff #711 #1095)
+#1093 := (iff #695 #1092)
+#1090 := (iff #687 #1089)
+#1076 := (iff #678 #1075)
+#1073 := (iff #670 #1072)
+#1070 := (iff #661 #1069)
+#1067 := (iff #653 #1064)
+#1049 := (or #784 #1021)
+#1052 := (or #619 #1049)
+#1055 := (or #1046 #1052)
+#1058 := (or #784 #1055)
+#1061 := (or #652 #1058)
+#1065 := (iff #1061 #1064)
+#1066 := [rewrite]: #1065
+#1062 := (iff #653 #1061)
+#1059 := (iff #637 #1058)
+#1056 := (iff #629 #1055)
+#1053 := (iff #620 #1052)
+#1050 := (iff #611 #1049)
+#1022 := (iff #605 #1021)
+#1019 := (iff #593 #1016)
+#998 := (or #542 #991)
+#1001 := (or #551 #998)
+#1004 := (or #560 #1001)
+#1007 := (or #784 #1004)
+#1010 := (or #927 #1007)
+#1013 := (or #784 #1010)
+#1017 := (iff #1013 #1016)
+#1018 := [rewrite]: #1017
+#1014 := (iff #593 #1013)
+#1011 := (iff #585 #1010)
+#1008 := (iff #576 #1007)
+#1005 := (iff #561 #1004)
+#1002 := (iff #552 #1001)
+#999 := (iff #543 #998)
+#992 := (iff #527 #991)
+#989 := (iff #519 #988)
+#986 := (iff #498 #985)
+#983 := (iff #493 #980)
+#977 := (or #974 #960)
+#981 := (iff #977 #980)
+#982 := [rewrite]: #981
+#978 := (iff #493 #977)
+#961 := (iff #481 #960)
+#958 := (iff #475 #957)
+#955 := (iff #103 #954)
+#956 := [rewrite]: #955
+#751 := (iff #18 #753)
+#752 := [rewrite]: #751
+#959 := [monotonicity #752 #956]: #958
+#962 := [monotonicity #959]: #961
+#975 := (iff #108 #974)
+#976 := [rewrite]: #975
+#979 := [monotonicity #976 #962]: #978
+#984 := [trans #979 #982]: #983
+#987 := [quant-intro #984]: #986
+#970 := (iff #518 #969)
+#967 := (iff #487 #966)
+#964 := (iff #482 #963)
+#965 := [monotonicity #962]: #964
+#968 := [quant-intro #965]: #967
+#971 := [monotonicity #968]: #970
+#990 := [monotonicity #971 #987]: #989
+#993 := [monotonicity #968 #990]: #992
+#1000 := [monotonicity #993]: #999
+#1003 := [monotonicity #1000]: #1002
+#1006 := [monotonicity #1003]: #1005
+#785 := (iff #326 #784)
+#782 := (iff #29 #781)
+#778 := (iff #28 #779)
+#780 := [rewrite]: #778
+#775 := (iff #26 #776)
+#777 := [rewrite]: #775
+#783 := [monotonicity #777 #780]: #782
+#786 := [monotonicity #783]: #785
+#1009 := [monotonicity #786 #1006]: #1008
+#996 := (iff #584 #927)
+#994 := (iff #96 #926)
+#995 := [rewrite]: #994
+#997 := [monotonicity #995]: #996
+#1012 := [monotonicity #997 #1009]: #1011
+#1015 := [monotonicity #786 #1012]: #1014
+#1020 := [trans #1015 #1018]: #1019
+#949 := (iff #454 #946)
+#937 := (or #784 #921)
+#940 := (or #926 #937)
+#943 := (or #784 #940)
+#947 := (iff #943 #946)
+#948 := [rewrite]: #947
+#944 := (iff #454 #943)
+#941 := (iff #446 #940)
+#938 := (iff #437 #937)
+#922 := (iff #431 #921)
+#919 := (iff #419 #916)
+#857 := (or #796 #833)
+#860 := (or #840 #857)
+#863 := (or #846 #860)
+#898 := (or #367 #863)
+#901 := (or #376 #898)
+#904 := (or #886 #901)
+#907 := (or #401 #904)
+#910 := (or #850 #907)
+#913 := (or #784 #910)
+#917 := (iff #913 #916)
+#918 := [rewrite]: #917
+#914 := (iff #419 #913)
+#911 := (iff #411 #910)
+#908 := (iff #402 #907)
+#905 := (iff #393 #904)
+#902 := (iff #377 #901)
+#899 := (iff #368 #898)
+#864 := (iff #286 #863)
+#861 := (iff #277 #860)
+#858 := (iff #268 #857)
+#834 := (iff #252 #833)
+#831 := (iff #244 #828)
+#825 := (or #822 #221)
+#829 := (iff #825 #828)
+#830 := [rewrite]: #829
+#826 := (iff #244 #825)
+#823 := (iff #243 #822)
+#820 := (iff #218 #819)
+#817 := (iff #213 #816)
+#814 := (iff #212 #813)
+#811 := (iff #206 #810)
+#808 := (iff #53 #804)
+#809 := [rewrite]: #808
+#812 := [monotonicity #752 #809]: #811
+#815 := [monotonicity #812]: #814
+#802 := (iff #55 #801)
+#803 := [rewrite]: #802
+#818 := [monotonicity #803 #815]: #817
+#821 := [quant-intro #818]: #820
+#824 := [monotonicity #821]: #823
+#827 := [monotonicity #824]: #826
+#832 := [trans #827 #830]: #831
+#835 := [monotonicity #821 #832]: #834
+#797 := (iff #267 #796)
+#794 := (iff #203 #793)
+#790 := (iff #51 #791)
+#792 := [rewrite]: #790
+#787 := (iff #45 #788)
+#789 := [rewrite]: #787
+#795 := [monotonicity #789 #792]: #794
+#798 := [monotonicity #795]: #797
+#859 := [monotonicity #798 #835]: #858
+#841 := (iff #276 #840)
+#836 := (iff #200 #837)
+#839 := [rewrite]: #836
+#842 := [monotonicity #839]: #841
+#862 := [monotonicity #842 #859]: #861
+#847 := (iff #285 #846)
+#844 := (iff #46 #843)
+#845 := [monotonicity #777 #789]: #844
+#848 := [monotonicity #845]: #847
+#865 := [monotonicity #848 #862]: #864
+#900 := [monotonicity #865]: #899
+#903 := [monotonicity #900]: #902
+#887 := (iff #392 #886)
+#888 := [monotonicity #777]: #887
+#906 := [monotonicity #888 #903]: #905
+#909 := [monotonicity #906]: #908
+#896 := (iff #410 #850)
+#891 := (not #854)
+#894 := (iff #891 #850)
+#895 := [rewrite]: #894
+#892 := (iff #410 #891)
+#889 := (iff #77 #854)
+#890 := [rewrite]: #889
+#893 := [monotonicity #890]: #892
+#897 := [trans #893 #895]: #896
+#912 := [monotonicity #897 #909]: #911
+#915 := [monotonicity #786 #912]: #914
+#920 := [trans #915 #918]: #919
+#884 := (iff #344 #881)
+#866 := (or #301 #863)
+#869 := (or #310 #866)
+#872 := (or #784 #869)
+#875 := (or #854 #872)
+#878 := (or #784 #875)
+#882 := (iff #878 #881)
+#883 := [rewrite]: #882
+#879 := (iff #344 #878)
+#876 := (iff #336 #875)
+#873 := (iff #327 #872)
+#870 := (iff #311 #869)
+#867 := (iff #302 #866)
+#868 := [monotonicity #865]: #867
+#871 := [monotonicity #868]: #870
+#874 := [monotonicity #786 #871]: #873
+#855 := (iff #335 #854)
+#849 := (iff #40 #850)
+#853 := [rewrite]: #849
+#856 := [monotonicity #853]: #855
+#877 := [monotonicity #856 #874]: #876
+#880 := [monotonicity #786 #877]: #879
+#885 := [trans #880 #883]: #884
+#923 := [monotonicity #885 #920]: #922
+#939 := [monotonicity #786 #923]: #938
+#935 := (iff #445 #926)
+#930 := (not #927)
+#933 := (iff #930 #926)
+#934 := [rewrite]: #933
+#931 := (iff #445 #930)
+#928 := (iff #38 #927)
+#929 := [rewrite]: #928
+#932 := [monotonicity #929]: #931
+#936 := [trans #932 #934]: #935
+#942 := [monotonicity #936 #939]: #941
+#945 := [monotonicity #786 #942]: #944
+#950 := [trans #945 #948]: #949
+#1023 := [monotonicity #950 #1020]: #1022
+#1051 := [monotonicity #786 #1023]: #1050
+#1054 := [monotonicity #1051]: #1053
+#1047 := (iff #628 #1046)
+#1044 := (iff #185 #1043)
+#1041 := (iff #180 #1040)
+#1038 := (iff #179 #1037)
+#1035 := (iff #173 #1034)
+#1032 := (iff #30 #1031)
+#1033 := [rewrite]: #1032
+#1036 := [monotonicity #752 #1033]: #1035
+#1039 := [monotonicity #1036]: #1038
+#1027 := (iff #33 #1026)
+#1028 := [rewrite]: #1027
+#1042 := [monotonicity #1028 #1039]: #1041
+#1045 := [quant-intro #1042]: #1044
+#1048 := [monotonicity #1045]: #1047
+#1057 := [monotonicity #1048 #1054]: #1056
+#1060 := [monotonicity #786 #1057]: #1059
+#1063 := [monotonicity #1060]: #1062
+#1068 := [trans #1063 #1066]: #1067
+#1071 := [monotonicity #1068]: #1070
+#773 := (iff #669 #772)
+#770 := (iff #168 #769)
+#767 := (iff #165 #766)
+#761 := (iff #21 #762)
+#765 := [rewrite]: #761
+#758 := (iff #164 #757)
+#755 := (iff #19 #754)
+#748 := (iff #17 #747)
+#750 := [rewrite]: #748
+#756 := [monotonicity #750 #752]: #755
+#759 := [monotonicity #756]: #758
+#768 := [monotonicity #759 #765]: #767
+#771 := [quant-intro #768]: #770
+#774 := [monotonicity #771]: #773
+#1074 := [monotonicity #774 #1071]: #1073
+#1077 := [monotonicity #771 #1074]: #1076
+#745 := (iff #686 false)
+#740 := (not true)
+#743 := (iff #740 false)
+#744 := [rewrite]: #743
+#741 := (iff #686 #740)
+#738 := (iff #161 true)
+#730 := (and true true)
+#733 := (and true #730)
+#736 := (iff #733 true)
+#737 := [rewrite]: #736
+#734 := (iff #161 #733)
+#731 := (iff #158 #730)
+#728 := (iff #12 true)
+#729 := [rewrite]: #728
+#726 := (iff #11 true)
+#727 := [rewrite]: #726
+#732 := [monotonicity #727 #729]: #731
+#735 := [monotonicity #727 #732]: #734
+#739 := [trans #735 #737]: #738
+#742 := [monotonicity #739]: #741
+#746 := [trans #742 #744]: #745
+#1091 := [monotonicity #746 #1077]: #1090
+#1094 := [monotonicity #1091]: #1093
+#1087 := (iff #710 #1078)
+#1079 := (not #1078)
+#1082 := (not #1079)
+#1085 := (iff #1082 #1078)
+#1086 := [rewrite]: #1085
+#1083 := (iff #710 #1082)
+#1080 := (iff #6 #1079)
+#1081 := [rewrite]: #1080
+#1084 := [monotonicity #1081]: #1083
+#1088 := [trans #1084 #1086]: #1087
+#1097 := [monotonicity #1088 #1094]: #1096
+#1102 := [trans #1097 #1100]: #1101
+#1105 := [monotonicity #1102]: #1104
+#724 := (iff #139 #723)
+#721 := (iff #138 #711)
+#716 := (implies true #711)
+#719 := (iff #716 #711)
+#720 := [rewrite]: #719
+#717 := (iff #138 #716)
+#714 := (iff #137 #711)
+#707 := (implies #6 #695)
+#712 := (iff #707 #711)
+#713 := [rewrite]: #712
+#708 := (iff #137 #707)
+#705 := (iff #136 #695)
+#700 := (implies true #695)
+#703 := (iff #700 #695)
+#704 := [rewrite]: #703
+#701 := (iff #136 #700)
+#698 := (iff #135 #695)
+#692 := (implies #9 #687)
+#696 := (iff #692 #695)
+#697 := [rewrite]: #696
+#693 := (iff #135 #692)
+#690 := (iff #134 #687)
+#683 := (implies #161 #678)
+#688 := (iff #683 #687)
+#689 := [rewrite]: #688
+#684 := (iff #134 #683)
+#681 := (iff #133 #678)
+#675 := (and #670 #168)
+#679 := (iff #675 #678)
+#680 := [rewrite]: #679
+#676 := (iff #133 #675)
+#169 := (iff #23 #168)
+#166 := (iff #22 #165)
+#167 := [rewrite]: #166
+#170 := [quant-intro #167]: #169
+#673 := (iff #132 #670)
+#666 := (implies #168 #661)
+#671 := (iff #666 #670)
+#672 := [rewrite]: #671
+#667 := (iff #132 #666)
+#664 := (iff #131 #661)
+#658 := (and #653 #9)
+#662 := (iff #658 #661)
+#663 := [rewrite]: #662
+#659 := (iff #131 #658)
+#171 := (iff #24 #9)
+#172 := [rewrite]: #171
+#656 := (iff #130 #653)
+#649 := (implies #9 #637)
+#654 := (iff #649 #653)
+#655 := [rewrite]: #654
+#650 := (iff #130 #649)
+#647 := (iff #129 #637)
+#642 := (implies true #637)
+#645 := (iff #642 #637)
+#646 := [rewrite]: #645
+#643 := (iff #129 #642)
+#640 := (iff #128 #637)
+#634 := (implies #29 #629)
+#638 := (iff #634 #637)
+#639 := [rewrite]: #638
+#635 := (iff #128 #634)
+#632 := (iff #127 #629)
+#625 := (implies #185 #620)
+#630 := (iff #625 #629)
+#631 := [rewrite]: #630
+#626 := (iff #127 #625)
+#623 := (iff #126 #620)
+#616 := (implies #188 #611)
+#621 := (iff #616 #620)
+#622 := [rewrite]: #621
+#617 := (iff #126 #616)
+#614 := (iff #125 #611)
+#608 := (implies #29 #605)
+#612 := (iff #608 #611)
+#613 := [rewrite]: #612
+#609 := (iff #125 #608)
+#606 := (iff #124 #605)
+#603 := (iff #123 #593)
+#598 := (implies true #593)
+#601 := (iff #598 #593)
+#602 := [rewrite]: #601
+#599 := (iff #123 #598)
+#596 := (iff #122 #593)
+#590 := (implies #29 #585)
+#594 := (iff #590 #593)
+#595 := [rewrite]: #594
+#591 := (iff #122 #590)
+#588 := (iff #121 #585)
+#581 := (implies #96 #576)
+#586 := (iff #581 #585)
+#587 := [rewrite]: #586
+#582 := (iff #121 #581)
+#579 := (iff #120 #576)
+#573 := (implies #29 #561)
+#577 := (iff #573 #576)
+#578 := [rewrite]: #577
+#574 := (iff #120 #573)
+#571 := (iff #119 #561)
+#566 := (implies true #561)
+#569 := (iff #566 #561)
+#570 := [rewrite]: #569
+#567 := (iff #119 #566)
+#564 := (iff #118 #561)
+#557 := (implies #466 #552)
+#562 := (iff #557 #561)
+#563 := [rewrite]: #562
+#558 := (iff #118 #557)
+#555 := (iff #117 #552)
+#548 := (implies #469 #543)
+#553 := (iff #548 #552)
+#554 := [rewrite]: #553
+#549 := (iff #117 #548)
+#546 := (iff #116 #543)
+#539 := (implies #472 #527)
+#544 := (iff #539 #543)
+#545 := [rewrite]: #544
+#540 := (iff #116 #539)
+#537 := (iff #115 #527)
+#532 := (implies true #527)
+#535 := (iff #532 #527)
+#536 := [rewrite]: #535
+#533 := (iff #115 #532)
+#530 := (iff #114 #527)
+#524 := (and #519 #487)
+#528 := (iff #524 #527)
+#529 := [rewrite]: #528
+#525 := (iff #114 #524)
+#488 := (iff #107 #487)
+#485 := (iff #106 #482)
+#478 := (implies #475 #105)
+#483 := (iff #478 #482)
+#484 := [rewrite]: #483
+#479 := (iff #106 #478)
+#476 := (iff #104 #475)
+#477 := [rewrite]: #476
+#480 := [monotonicity #477]: #479
+#486 := [trans #480 #484]: #485
+#489 := [quant-intro #486]: #488
+#522 := (iff #113 #519)
+#515 := (implies #487 #498)
+#520 := (iff #515 #519)
+#521 := [rewrite]: #520
+#516 := (iff #113 #515)
+#513 := (iff #112 #498)
+#508 := (and true #498)
+#511 := (iff #508 #498)
+#512 := [rewrite]: #511
+#509 := (iff #112 #508)
+#499 := (iff #110 #498)
+#496 := (iff #109 #493)
+#490 := (implies #475 #108)
+#494 := (iff #490 #493)
+#495 := [rewrite]: #494
+#491 := (iff #109 #490)
+#492 := [monotonicity #477]: #491
+#497 := [trans #492 #495]: #496
+#500 := [quant-intro #497]: #499
+#506 := (iff #111 true)
+#501 := (implies #498 true)
+#504 := (iff #501 true)
+#505 := [rewrite]: #504
+#502 := (iff #111 #501)
+#503 := [monotonicity #500]: #502
+#507 := [trans #503 #505]: #506
+#510 := [monotonicity #507 #500]: #509
+#514 := [trans #510 #512]: #513
+#517 := [monotonicity #489 #514]: #516
+#523 := [trans #517 #521]: #522
+#526 := [monotonicity #523 #489]: #525
+#531 := [trans #526 #529]: #530
+#534 := [monotonicity #531]: #533
+#538 := [trans #534 #536]: #537
+#473 := (iff #102 #472)
+#474 := [rewrite]: #473
+#541 := [monotonicity #474 #538]: #540
+#547 := [trans #541 #545]: #546
+#470 := (iff #100 #469)
+#471 := [rewrite]: #470
+#550 := [monotonicity #471 #547]: #549
+#556 := [trans #550 #554]: #555
+#467 := (iff #98 #466)
+#468 := [rewrite]: #467
+#559 := [monotonicity #468 #556]: #558
+#565 := [trans #559 #563]: #564
+#568 := [monotonicity #565]: #567
+#572 := [trans #568 #570]: #571
+#575 := [monotonicity #572]: #574
+#580 := [trans #575 #578]: #579
+#583 := [monotonicity #580]: #582
+#589 := [trans #583 #587]: #588
+#592 := [monotonicity #589]: #591
+#597 := [trans #592 #595]: #596
+#600 := [monotonicity #597]: #599
+#604 := [trans #600 #602]: #603
+#464 := (iff #95 #454)
+#459 := (implies true #454)
+#462 := (iff #459 #454)
+#463 := [rewrite]: #462
+#460 := (iff #95 #459)
+#457 := (iff #94 #454)
+#451 := (implies #29 #446)
+#455 := (iff #451 #454)
+#456 := [rewrite]: #455
+#452 := (iff #94 #451)
+#449 := (iff #93 #446)
+#442 := (implies #38 #437)
+#447 := (iff #442 #446)
+#448 := [rewrite]: #447
+#443 := (iff #93 #442)
+#440 := (iff #92 #437)
+#434 := (implies #29 #431)
+#438 := (iff #434 #437)
+#439 := [rewrite]: #438
+#435 := (iff #92 #434)
+#432 := (iff #91 #431)
+#429 := (iff #90 #419)
+#424 := (implies true #419)
+#427 := (iff #424 #419)
+#428 := [rewrite]: #427
+#425 := (iff #90 #424)
+#422 := (iff #89 #419)
+#416 := (implies #29 #411)
+#420 := (iff #416 #419)
+#421 := [rewrite]: #420
+#417 := (iff #89 #416)
+#414 := (iff #88 #411)
+#407 := (implies #77 #402)
+#412 := (iff #407 #411)
+#413 := [rewrite]: #412
+#408 := (iff #88 #407)
+#405 := (iff #87 #402)
+#398 := (implies #356 #393)
+#403 := (iff #398 #402)
+#404 := [rewrite]: #403
+#399 := (iff #87 #398)
+#396 := (iff #86 #393)
+#389 := (implies #26 #377)
+#394 := (iff #389 #393)
+#395 := [rewrite]: #394
+#390 := (iff #86 #389)
+#387 := (iff #85 #377)
+#382 := (implies true #377)
+#385 := (iff #382 #377)
+#386 := [rewrite]: #385
+#383 := (iff #85 #382)
+#380 := (iff #84 #377)
+#373 := (implies #361 #368)
+#378 := (iff #373 #377)
+#379 := [rewrite]: #378
+#374 := (iff #84 #373)
+#371 := (iff #83 #368)
+#364 := (implies #82 #286)
+#369 := (iff #364 #368)
+#370 := [rewrite]: #369
+#365 := (iff #83 #364)
+#296 := (iff #69 #286)
+#291 := (implies true #286)
+#294 := (iff #291 #286)
+#295 := [rewrite]: #294
+#292 := (iff #69 #291)
+#289 := (iff #68 #286)
+#282 := (implies #46 #277)
+#287 := (iff #282 #286)
+#288 := [rewrite]: #287
+#283 := (iff #68 #282)
+#280 := (iff #67 #277)
+#273 := (implies #200 #268)
+#278 := (iff #273 #277)
+#279 := [rewrite]: #278
+#274 := (iff #67 #273)
+#271 := (iff #66 #268)
+#264 := (implies #203 #252)
+#269 := (iff #264 #268)
+#270 := [rewrite]: #269
+#265 := (iff #66 #264)
+#262 := (iff #65 #252)
+#257 := (implies true #252)
+#260 := (iff #257 #252)
+#261 := [rewrite]: #260
+#258 := (iff #65 #257)
+#255 := (iff #64 #252)
+#249 := (and #244 #218)
+#253 := (iff #249 #252)
+#254 := [rewrite]: #253
+#250 := (iff #64 #249)
+#219 := (iff #57 #218)
+#216 := (iff #56 #213)
+#209 := (implies #206 #55)
+#214 := (iff #209 #213)
+#215 := [rewrite]: #214
+#210 := (iff #56 #209)
+#207 := (iff #54 #206)
+#208 := [rewrite]: #207
+#211 := [monotonicity #208]: #210
+#217 := [trans #211 #215]: #216
+#220 := [quant-intro #217]: #219
+#247 := (iff #63 #244)
+#240 := (implies #218 #221)
+#245 := (iff #240 #244)
+#246 := [rewrite]: #245
+#241 := (iff #63 #240)
+#238 := (iff #62 #221)
+#233 := (and true #221)
+#236 := (iff #233 #221)
+#237 := [rewrite]: #236
+#234 := (iff #62 #233)
+#222 := (iff #59 #221)
+#223 := [rewrite]: #222
+#231 := (iff #61 true)
+#226 := (implies #221 true)
+#229 := (iff #226 true)
+#230 := [rewrite]: #229
+#227 := (iff #61 #226)
+#224 := (iff #60 true)
+#225 := [rewrite]: #224
+#228 := [monotonicity #223 #225]: #227
+#232 := [trans #228 #230]: #231
+#235 := [monotonicity #232 #223]: #234
+#239 := [trans #235 #237]: #238
+#242 := [monotonicity #220 #239]: #241
+#248 := [trans #242 #246]: #247
+#251 := [monotonicity #248 #220]: #250
+#256 := [trans #251 #254]: #255
+#259 := [monotonicity #256]: #258
+#263 := [trans #259 #261]: #262
+#204 := (iff #52 #203)
+#205 := [rewrite]: #204
+#266 := [monotonicity #205 #263]: #265
+#272 := [trans #266 #270]: #271
+#201 := (iff #49 #200)
+#198 := (= #48 #197)
+#199 := [rewrite]: #198
+#202 := [monotonicity #199]: #201
+#275 := [monotonicity #202 #272]: #274
+#281 := [trans #275 #279]: #280
+#284 := [monotonicity #281]: #283
+#290 := [trans #284 #288]: #289
+#293 := [monotonicity #290]: #292
+#297 := [trans #293 #295]: #296
+#366 := [monotonicity #297]: #365
+#372 := [trans #366 #370]: #371
+#362 := (iff #81 #361)
+#363 := [rewrite]: #362
+#375 := [monotonicity #363 #372]: #374
+#381 := [trans #375 #379]: #380
+#384 := [monotonicity #381]: #383
+#388 := [trans #384 #386]: #387
+#359 := (iff #80 #26)
+#360 := [rewrite]: #359
+#391 := [monotonicity #360 #388]: #390
+#397 := [trans #391 #395]: #396
+#357 := (iff #79 #356)
+#358 := [rewrite]: #357
+#400 := [monotonicity #358 #397]: #399
+#406 := [trans #400 #404]: #405
+#409 := [monotonicity #406]: #408
+#415 := [trans #409 #413]: #414
+#418 := [monotonicity #415]: #417
+#423 := [trans #418 #421]: #422
+#426 := [monotonicity #423]: #425
+#430 := [trans #426 #428]: #429
+#354 := (iff #76 #344)
+#349 := (implies true #344)
+#352 := (iff #349 #344)
+#353 := [rewrite]: #352
+#350 := (iff #76 #349)
+#347 := (iff #75 #344)
+#341 := (implies #29 #336)
+#345 := (iff #341 #344)
+#346 := [rewrite]: #345
+#342 := (iff #75 #341)
+#339 := (iff #74 #336)
+#332 := (implies #40 #327)
+#337 := (iff #332 #336)
+#338 := [rewrite]: #337
+#333 := (iff #74 #332)
+#330 := (iff #73 #327)
+#323 := (implies #29 #311)
+#328 := (iff #323 #327)
+#329 := [rewrite]: #328
+#324 := (iff #73 #323)
+#321 := (iff #72 #311)
+#316 := (implies true #311)
+#319 := (iff #316 #311)
+#320 := [rewrite]: #319
+#317 := (iff #72 #316)
+#314 := (iff #71 #311)
+#307 := (implies #191 #302)
+#312 := (iff #307 #311)
+#313 := [rewrite]: #312
+#308 := (iff #71 #307)
+#305 := (iff #70 #302)
+#298 := (implies #194 #286)
+#303 := (iff #298 #302)
+#304 := [rewrite]: #303
+#299 := (iff #70 #298)
+#195 := (iff #44 #194)
+#196 := [rewrite]: #195
+#300 := [monotonicity #196 #297]: #299
+#306 := [trans #300 #304]: #305
+#192 := (iff #42 #191)
+#193 := [rewrite]: #192
+#309 := [monotonicity #193 #306]: #308
+#315 := [trans #309 #313]: #314
+#318 := [monotonicity #315]: #317
+#322 := [trans #318 #320]: #321
+#325 := [monotonicity #322]: #324
+#331 := [trans #325 #329]: #330
+#334 := [monotonicity #331]: #333
+#340 := [trans #334 #338]: #339
+#343 := [monotonicity #340]: #342
+#348 := [trans #343 #346]: #347
+#351 := [monotonicity #348]: #350
+#355 := [trans #351 #353]: #354
+#433 := [monotonicity #355 #430]: #432
+#436 := [monotonicity #433]: #435
+#441 := [trans #436 #439]: #440
+#444 := [monotonicity #441]: #443
+#450 := [trans #444 #448]: #449
+#453 := [monotonicity #450]: #452
+#458 := [trans #453 #456]: #457
+#461 := [monotonicity #458]: #460
+#465 := [trans #461 #463]: #464
+#607 := [monotonicity #465 #604]: #606
+#610 := [monotonicity #607]: #609
+#615 := [trans #610 #613]: #614
+#189 := (iff #37 #188)
+#190 := [rewrite]: #189
+#618 := [monotonicity #190 #615]: #617
+#624 := [trans #618 #622]: #623
+#186 := (iff #35 #185)
+#183 := (iff #34 #180)
+#176 := (implies #173 #33)
+#181 := (iff #176 #180)
+#182 := [rewrite]: #181
+#177 := (iff #34 #176)
+#174 := (iff #31 #173)
+#175 := [rewrite]: #174
+#178 := [monotonicity #175]: #177
+#184 := [trans #178 #182]: #183
+#187 := [quant-intro #184]: #186
+#627 := [monotonicity #187 #624]: #626
+#633 := [trans #627 #631]: #632
+#636 := [monotonicity #633]: #635
+#641 := [trans #636 #639]: #640
+#644 := [monotonicity #641]: #643
+#648 := [trans #644 #646]: #647
+#651 := [monotonicity #172 #648]: #650
+#657 := [trans #651 #655]: #656
+#660 := [monotonicity #657 #172]: #659
+#665 := [trans #660 #663]: #664
+#668 := [monotonicity #170 #665]: #667
+#674 := [trans #668 #672]: #673
+#677 := [monotonicity #674 #170]: #676
+#682 := [trans #677 #680]: #681
+#162 := (iff #15 #161)
+#159 := (iff #14 #158)
+#156 := (iff #13 #12)
+#157 := [rewrite]: #156
+#160 := [monotonicity #157]: #159
+#163 := [monotonicity #160]: #162
+#685 := [monotonicity #163 #682]: #684
+#691 := [trans #685 #689]: #690
+#694 := [monotonicity #691]: #693
+#699 := [trans #694 #697]: #698
+#702 := [monotonicity #699]: #701
+#706 := [trans #702 #704]: #705
+#709 := [monotonicity #706]: #708
+#715 := [trans #709 #713]: #714
+#718 := [monotonicity #715]: #717
+#722 := [trans #718 #720]: #721
+#725 := [monotonicity #722]: #724
+#1107 := [trans #725 #1105]: #1106
+#155 := [asserted]: #139
+#1108 := [mp #155 #1107]: #1103
+#1109 := [not-or-elim #1108]: #9
+#2193 := [trans #1109 #2192]: #2202
+#1888 := (not #1154)
+#1974 := (or #1540 #1888)
+#1889 := [def-axiom]: #1974
+#2194 := [unit-resolution #1889 #2205]: #1888
+#2195 := (not #2202)
+#2196 := (or #2195 #1154)
+#2197 := [th-lemma]: #2196
+#2198 := [unit-resolution #2197 #2194 #2193]: false
+#2199 := [lemma #2198]: #1540
+#2393 := (or #1545 #2390)
+#1708 := (forall (vars (?x7 int)) #1705)
+#1801 := (or #1708 #1798)
+#1804 := (not #1801)
+#1807 := (or #560 #551 #542 #886 #1654 #927 #1804)
+#1810 := (not #1807)
+#1612 := (forall (vars (?x3 int)) #1607)
+#1618 := (not #1612)
+#1619 := (or #221 #1618)
+#1620 := (not #1619)
+#1648 := (or #1620 #1645)
+#1657 := (not #1648)
+#1667 := (or #367 #401 #376 #886 #1654 #1655 #1656 #840 #850 #1657)
+#1668 := (not #1667)
+#1658 := (or #310 #301 #886 #1654 #1655 #1656 #840 #854 #1657)
+#1659 := (not #1658)
+#1673 := (or #1659 #1668)
+#1679 := (not #1673)
+#1680 := (or #886 #1654 #926 #1679)
+#1681 := (not #1680)
+#1813 := (or #1681 #1810)
+#1816 := (not #1813)
+#1590 := (forall (vars (?x2 int)) #1585)
+#1784 := (not #1590)
+#1568 := (forall (vars (?x1 int)) #1563)
+#1783 := (not #1568)
+#1819 := (or #619 #886 #1654 #1783 #1784 #1816)
+#1822 := (not #1819)
+#1825 := (or #1545 #1822)
+#2394 := (iff #1825 #2393)
+#2391 := (iff #1822 #2390)
+#2388 := (iff #1819 #2387)
+#2385 := (iff #1816 #2384)
+#2382 := (iff #1813 #2381)
+#2379 := (iff #1810 #2378)
+#2376 := (iff #1807 #2375)
+#2373 := (iff #1804 #2372)
+#2370 := (iff #1801 #2369)
+#2367 := (iff #1708 #2364)
+#2365 := (iff #1705 #1705)
+#2366 := [refl]: #2365
+#2368 := [quant-intro #2366]: #2367
+#2371 := [monotonicity #2368]: #2370
+#2374 := [monotonicity #2371]: #2373
+#2377 := [monotonicity #2374]: #2376
+#2380 := [monotonicity #2377]: #2379
+#2362 := (iff #1681 #2361)
+#2359 := (iff #1680 #2358)
+#2356 := (iff #1679 #2355)
+#2353 := (iff #1673 #2352)
+#2350 := (iff #1668 #2349)
+#2347 := (iff #1667 #2346)
+#2338 := (iff #1657 #2337)
+#2335 := (iff #1648 #2334)
+#2332 := (iff #1620 #2331)
+#2329 := (iff #1619 #2328)
+#2326 := (iff #1618 #2325)
+#2323 := (iff #1612 #2320)
+#2321 := (iff #1607 #1607)
+#2322 := [refl]: #2321
+#2324 := [quant-intro #2322]: #2323
+#2327 := [monotonicity #2324]: #2326
+#2330 := [monotonicity #2327]: #2329
+#2333 := [monotonicity #2330]: #2332
+#2336 := [monotonicity #2333]: #2335
+#2339 := [monotonicity #2336]: #2338
+#2348 := [monotonicity #2339]: #2347
+#2351 := [monotonicity #2348]: #2350
+#2344 := (iff #1659 #2343)
+#2341 := (iff #1658 #2340)
+#2342 := [monotonicity #2339]: #2341
+#2345 := [monotonicity #2342]: #2344
+#2354 := [monotonicity #2345 #2351]: #2353
+#2357 := [monotonicity #2354]: #2356
+#2360 := [monotonicity #2357]: #2359
+#2363 := [monotonicity #2360]: #2362
+#2383 := [monotonicity #2363 #2380]: #2382
+#2386 := [monotonicity #2383]: #2385
+#2318 := (iff #1784 #2317)
+#2315 := (iff #1590 #2312)
+#2313 := (iff #1585 #1585)
+#2314 := [refl]: #2313
+#2316 := [quant-intro #2314]: #2315
+#2319 := [monotonicity #2316]: #2318
+#2310 := (iff #1783 #2309)
+#2307 := (iff #1568 #2304)
+#2305 := (iff #1563 #1563)
+#2306 := [refl]: #2305
+#2308 := [quant-intro #2306]: #2307
+#2311 := [monotonicity #2308]: #2310
+#2389 := [monotonicity #2311 #2319 #2386]: #2388
+#2392 := [monotonicity #2389]: #2391
+#2395 := [monotonicity #2392]: #2394
+#1304 := (not #1303)
+#1481 := (and #1304 #1305)
+#1484 := (not #1481)
+#1500 := (or #1484 #1495)
+#1503 := (not #1500)
+#1283 := (not #1282)
+#1472 := (and #1283 #1284)
+#1475 := (not #1472)
+#1478 := (or #1469 #1475)
+#1506 := (and #1478 #1503)
+#1273 := (not #963)
+#1276 := (forall (vars (?x7 int)) #1273)
+#1509 := (or #1276 #1506)
+#1515 := (and #466 #469 #472 #776 #779 #926 #1509)
+#1401 := (not #1396)
+#1404 := (and #1192 #1401)
+#1407 := (not #1404)
+#1410 := (or #1383 #1407)
+#1413 := (not #1410)
+#1204 := (not #221)
+#1214 := (and #1204 #819)
+#1419 := (or #1214 #1413)
+#1447 := (and #82 #356 #361 #776 #779 #788 #791 #837 #854 #1419)
+#1431 := (and #191 #194 #776 #779 #788 #791 #837 #850 #1419)
+#1452 := (or #1431 #1447)
+#1458 := (and #776 #779 #927 #1452)
+#1520 := (or #1458 #1515)
+#1526 := (and #188 #769 #776 #779 #1043 #1520)
+#1348 := (and #1155 #1157)
+#1351 := (not #1348)
+#1357 := (or #1154 #1351)
+#1362 := (not #1357)
+#1531 := (or #1362 #1526)
+#1828 := (iff #1531 #1825)
+#1746 := (or #1303 #1731 #1495)
+#1758 := (or #1757 #1746)
+#1759 := (not #1758)
+#1764 := (or #1708 #1759)
+#1770 := (not #1764)
+#1771 := (or #560 #551 #542 #886 #1654 #927 #1770)
+#1772 := (not #1771)
+#1777 := (or #1681 #1772)
+#1785 := (not #1777)
+#1786 := (or #619 #886 #1654 #1783 #1784 #1785)
+#1787 := (not #1786)
+#1792 := (or #1545 #1787)
+#1826 := (iff #1792 #1825)
+#1823 := (iff #1787 #1822)
+#1820 := (iff #1786 #1819)
+#1817 := (iff #1785 #1816)
+#1814 := (iff #1777 #1813)
+#1811 := (iff #1772 #1810)
+#1808 := (iff #1771 #1807)
+#1805 := (iff #1770 #1804)
+#1802 := (iff #1764 #1801)
+#1799 := (iff #1759 #1798)
+#1796 := (iff #1758 #1795)
+#1797 := [rewrite]: #1796
+#1800 := [monotonicity #1797]: #1799
+#1803 := [monotonicity #1800]: #1802
+#1806 := [monotonicity #1803]: #1805
+#1809 := [monotonicity #1806]: #1808
+#1812 := [monotonicity #1809]: #1811
+#1815 := [monotonicity #1812]: #1814
+#1818 := [monotonicity #1815]: #1817
+#1821 := [monotonicity #1818]: #1820
+#1824 := [monotonicity #1821]: #1823
+#1827 := [monotonicity #1824]: #1826
+#1793 := (iff #1531 #1792)
+#1790 := (iff #1526 #1787)
+#1780 := (and #188 #1568 #776 #779 #1590 #1777)
+#1788 := (iff #1780 #1787)
+#1789 := [rewrite]: #1788
+#1781 := (iff #1526 #1780)
+#1778 := (iff #1520 #1777)
+#1775 := (iff #1515 #1772)
+#1767 := (and #466 #469 #472 #776 #779 #926 #1764)
+#1773 := (iff #1767 #1772)
+#1774 := [rewrite]: #1773
+#1768 := (iff #1515 #1767)
+#1765 := (iff #1509 #1764)
+#1762 := (iff #1506 #1759)
+#1751 := (not #1746)
+#1754 := (and #1726 #1751)
+#1760 := (iff #1754 #1759)
+#1761 := [rewrite]: #1760
+#1755 := (iff #1506 #1754)
+#1752 := (iff #1503 #1751)
+#1749 := (iff #1500 #1746)
+#1732 := (or #1303 #1731)
+#1743 := (or #1732 #1495)
+#1747 := (iff #1743 #1746)
+#1748 := [rewrite]: #1747
+#1744 := (iff #1500 #1743)
+#1741 := (iff #1484 #1732)
+#1733 := (not #1732)
+#1736 := (not #1733)
+#1739 := (iff #1736 #1732)
+#1740 := [rewrite]: #1739
+#1737 := (iff #1484 #1736)
+#1734 := (iff #1481 #1733)
+#1735 := [rewrite]: #1734
+#1738 := [monotonicity #1735]: #1737
+#1742 := [trans #1738 #1740]: #1741
+#1745 := [monotonicity #1742]: #1744
+#1750 := [trans #1745 #1748]: #1749
+#1753 := [monotonicity #1750]: #1752
+#1729 := (iff #1478 #1726)
+#1712 := (or #1282 #1711)
+#1723 := (or #1469 #1712)
+#1727 := (iff #1723 #1726)
+#1728 := [rewrite]: #1727
+#1724 := (iff #1478 #1723)
+#1721 := (iff #1475 #1712)
+#1713 := (not #1712)
+#1716 := (not #1713)
+#1719 := (iff #1716 #1712)
+#1720 := [rewrite]: #1719
+#1717 := (iff #1475 #1716)
+#1714 := (iff #1472 #1713)
+#1715 := [rewrite]: #1714
+#1718 := [monotonicity #1715]: #1717
+#1722 := [trans #1718 #1720]: #1721
+#1725 := [monotonicity #1722]: #1724
+#1730 := [trans #1725 #1728]: #1729
+#1756 := [monotonicity #1730 #1753]: #1755
+#1763 := [trans #1756 #1761]: #1762
+#1709 := (iff #1276 #1708)
+#1706 := (iff #1273 #1705)
+#1703 := (iff #963 #1700)
+#1686 := (or #1548 #953)
+#1697 := (or #105 #1686)
+#1701 := (iff #1697 #1700)
+#1702 := [rewrite]: #1701
+#1698 := (iff #963 #1697)
+#1695 := (iff #960 #1686)
+#1687 := (not #1686)
+#1690 := (not #1687)
+#1693 := (iff #1690 #1686)
+#1694 := [rewrite]: #1693
+#1691 := (iff #960 #1690)
+#1688 := (iff #957 #1687)
+#1689 := [rewrite]: #1688
+#1692 := [monotonicity #1689]: #1691
+#1696 := [trans #1692 #1694]: #1695
+#1699 := [monotonicity #1696]: #1698
+#1704 := [trans #1699 #1702]: #1703
+#1707 := [monotonicity #1704]: #1706
+#1710 := [quant-intro #1707]: #1709
+#1766 := [monotonicity #1710 #1763]: #1765
+#1769 := [monotonicity #1766]: #1768
+#1776 := [trans #1769 #1774]: #1775
+#1684 := (iff #1458 #1681)
+#1676 := (and #776 #779 #927 #1673)
+#1682 := (iff #1676 #1681)
+#1683 := [rewrite]: #1682
+#1677 := (iff #1458 #1676)
+#1674 := (iff #1452 #1673)
+#1671 := (iff #1447 #1668)
+#1664 := (and #82 #356 #361 #776 #779 #788 #791 #837 #854 #1648)
+#1669 := (iff #1664 #1668)
+#1670 := [rewrite]: #1669
+#1665 := (iff #1447 #1664)
+#1649 := (iff #1419 #1648)
+#1646 := (iff #1413 #1645)
+#1643 := (iff #1410 #1640)
+#1626 := (or #1625 #1396)
+#1637 := (or #1383 #1626)
+#1641 := (iff #1637 #1640)
+#1642 := [rewrite]: #1641
+#1638 := (iff #1410 #1637)
+#1635 := (iff #1407 #1626)
+#1627 := (not #1626)
+#1630 := (not #1627)
+#1633 := (iff #1630 #1626)
+#1634 := [rewrite]: #1633
+#1631 := (iff #1407 #1630)
+#1628 := (iff #1404 #1627)
+#1629 := [rewrite]: #1628
+#1632 := [monotonicity #1629]: #1631
+#1636 := [trans #1632 #1634]: #1635
+#1639 := [monotonicity #1636]: #1638
+#1644 := [trans #1639 #1642]: #1643
+#1647 := [monotonicity #1644]: #1646
+#1623 := (iff #1214 #1620)
+#1615 := (and #1204 #1612)
+#1621 := (iff #1615 #1620)
+#1622 := [rewrite]: #1621
+#1616 := (iff #1214 #1615)
+#1613 := (iff #819 #1612)
+#1610 := (iff #816 #1607)
+#1593 := (or #1548 #805)
+#1604 := (or #801 #1593)
+#1608 := (iff #1604 #1607)
+#1609 := [rewrite]: #1608
+#1605 := (iff #816 #1604)
+#1602 := (iff #813 #1593)
+#1594 := (not #1593)
+#1597 := (not #1594)
+#1600 := (iff #1597 #1593)
+#1601 := [rewrite]: #1600
+#1598 := (iff #813 #1597)
+#1595 := (iff #810 #1594)
+#1596 := [rewrite]: #1595
+#1599 := [monotonicity #1596]: #1598
+#1603 := [trans #1599 #1601]: #1602
+#1606 := [monotonicity #1603]: #1605
+#1611 := [trans #1606 #1609]: #1610
+#1614 := [quant-intro #1611]: #1613
+#1617 := [monotonicity #1614]: #1616
+#1624 := [trans #1617 #1622]: #1623
+#1650 := [monotonicity #1624 #1647]: #1649
+#1666 := [monotonicity #1650]: #1665
+#1672 := [trans #1666 #1670]: #1671
+#1662 := (iff #1431 #1659)
+#1651 := (and #191 #194 #776 #779 #788 #791 #837 #850 #1648)
+#1660 := (iff #1651 #1659)
+#1661 := [rewrite]: #1660
+#1652 := (iff #1431 #1651)
+#1653 := [monotonicity #1650]: #1652
+#1663 := [trans #1653 #1661]: #1662
+#1675 := [monotonicity #1663 #1672]: #1674
+#1678 := [monotonicity #1675]: #1677
+#1685 := [trans #1678 #1683]: #1684
+#1779 := [monotonicity #1685 #1776]: #1778
+#1591 := (iff #1043 #1590)
+#1588 := (iff #1040 #1585)
+#1571 := (or #1548 #1029)
+#1582 := (or #1026 #1571)
+#1586 := (iff #1582 #1585)
+#1587 := [rewrite]: #1586
+#1583 := (iff #1040 #1582)
+#1580 := (iff #1037 #1571)
+#1572 := (not #1571)
+#1575 := (not #1572)
+#1578 := (iff #1575 #1571)
+#1579 := [rewrite]: #1578
+#1576 := (iff #1037 #1575)
+#1573 := (iff #1034 #1572)
+#1574 := [rewrite]: #1573
+#1577 := [monotonicity #1574]: #1576
+#1581 := [trans #1577 #1579]: #1580
+#1584 := [monotonicity #1581]: #1583
+#1589 := [trans #1584 #1587]: #1588
+#1592 := [quant-intro #1589]: #1591
+#1569 := (iff #769 #1568)
+#1566 := (iff #766 #1563)
+#1549 := (or #749 #1548)
+#1560 := (or #1549 #762)
+#1564 := (iff #1560 #1563)
+#1565 := [rewrite]: #1564
+#1561 := (iff #766 #1560)
+#1558 := (iff #757 #1549)
+#1550 := (not #1549)
+#1553 := (not #1550)
+#1556 := (iff #1553 #1549)
+#1557 := [rewrite]: #1556
+#1554 := (iff #757 #1553)
+#1551 := (iff #754 #1550)
+#1552 := [rewrite]: #1551
+#1555 := [monotonicity #1552]: #1554
+#1559 := [trans #1555 #1557]: #1558
+#1562 := [monotonicity #1559]: #1561
+#1567 := [trans #1562 #1565]: #1566
+#1570 := [quant-intro #1567]: #1569
+#1782 := [monotonicity #1570 #1592 #1779]: #1781
+#1791 := [trans #1782 #1789]: #1790
+#1546 := (iff #1362 #1545)
+#1543 := (iff #1357 #1540)
+#1165 := (or #1164 #1156)
+#1537 := (or #1154 #1165)
+#1541 := (iff #1537 #1540)
+#1542 := [rewrite]: #1541
+#1538 := (iff #1357 #1537)
+#1535 := (iff #1351 #1165)
+#1292 := (not #1165)
+#1314 := (not #1292)
+#1347 := (iff #1314 #1165)
+#1534 := [rewrite]: #1347
+#1202 := (iff #1351 #1314)
+#1293 := (iff #1348 #1292)
+#1313 := [rewrite]: #1293
+#1203 := [monotonicity #1313]: #1202
+#1536 := [trans #1203 #1534]: #1535
+#1539 := [monotonicity #1536]: #1538
+#1544 := [trans #1539 #1542]: #1543
+#1547 := [monotonicity #1544]: #1546
+#1794 := [monotonicity #1547 #1791]: #1793
+#1829 := [trans #1794 #1827]: #1828
+#1299 := (+ #1298 #972)
+#1300 := (<= #1299 0::int)
+#1306 := (and #1305 #1304)
+#1307 := (not #1306)
+#1308 := (or #1307 #1300)
+#1309 := (not #1308)
+#1285 := (and #1284 #1283)
+#1286 := (not #1285)
+#1288 := (= #1287 uf_12)
+#1289 := (or #1288 #1286)
+#1315 := (and #1289 #1309)
+#1319 := (or #1276 #1315)
+#1176 := (not #784)
+#1268 := (not #542)
+#1265 := (not #551)
+#1262 := (not #560)
+#1323 := (and #1262 #1265 #1268 #1176 #930 #1319)
+#1225 := (not #846)
+#1222 := (not #840)
+#1189 := (+ ?x3!1 #806)
+#1190 := (>= #1189 0::int)
+#1191 := (not #1190)
+#1193 := (and #1192 #1191)
+#1194 := (not #1193)
+#1196 := (+ #1195 #799)
+#1197 := (<= #1196 0::int)
+#1198 := (or #1197 #1194)
+#1199 := (not #1198)
+#1218 := (or #1199 #1214)
+#1185 := (not #796)
+#1243 := (not #886)
+#1240 := (not #376)
+#1237 := (not #401)
+#1234 := (not #367)
+#1248 := (and #1234 #1237 #1240 #1243 #1176 #1185 #1218 #1222 #1225 #854)
+#1182 := (not #301)
+#1179 := (not #310)
+#1230 := (and #1179 #1182 #1176 #1185 #1218 #1222 #1225 #891)
+#1252 := (or #1230 #1248)
+#1258 := (and #1176 #1252 #927)
+#1327 := (or #1258 #1323)
+#1166 := (not #619)
+#1338 := (and #1166 #769 #1176 #1327 #1043)
+#1158 := (and #1157 #1155)
+#1159 := (not #1158)
+#1160 := (or #1159 #1154)
+#1161 := (not #1160)
+#1342 := (or #1161 #1338)
+#1532 := (iff #1342 #1531)
+#1529 := (iff #1338 #1526)
+#1523 := (and #188 #769 #781 #1520 #1043)
+#1527 := (iff #1523 #1526)
+#1528 := [rewrite]: #1527
+#1524 := (iff #1338 #1523)
+#1521 := (iff #1327 #1520)
+#1518 := (iff #1323 #1515)
+#1512 := (and #466 #469 #472 #781 #926 #1509)
+#1516 := (iff #1512 #1515)
+#1517 := [rewrite]: #1516
+#1513 := (iff #1323 #1512)
+#1510 := (iff #1319 #1509)
+#1507 := (iff #1315 #1506)
+#1504 := (iff #1309 #1503)
+#1501 := (iff #1308 #1500)
+#1498 := (iff #1300 #1495)
+#1487 := (+ #972 #1298)
+#1490 := (<= #1487 0::int)
+#1496 := (iff #1490 #1495)
+#1497 := [rewrite]: #1496
+#1491 := (iff #1300 #1490)
+#1488 := (= #1299 #1487)
+#1489 := [rewrite]: #1488
+#1492 := [monotonicity #1489]: #1491
+#1499 := [trans #1492 #1497]: #1498
+#1485 := (iff #1307 #1484)
+#1482 := (iff #1306 #1481)
+#1483 := [rewrite]: #1482
+#1486 := [monotonicity #1483]: #1485
+#1502 := [monotonicity #1486 #1499]: #1501
+#1505 := [monotonicity #1502]: #1504
+#1479 := (iff #1289 #1478)
+#1476 := (iff #1286 #1475)
+#1473 := (iff #1285 #1472)
+#1474 := [rewrite]: #1473
+#1477 := [monotonicity #1474]: #1476
+#1470 := (iff #1288 #1469)
+#1471 := [rewrite]: #1470
+#1480 := [monotonicity #1471 #1477]: #1479
+#1508 := [monotonicity #1480 #1505]: #1507
+#1511 := [monotonicity #1508]: #1510
+#1367 := (iff #1176 #781)
+#1368 := [rewrite]: #1367
+#1467 := (iff #1268 #472)
+#1468 := [rewrite]: #1467
+#1465 := (iff #1265 #469)
+#1466 := [rewrite]: #1465
+#1463 := (iff #1262 #466)
+#1464 := [rewrite]: #1463
+#1514 := [monotonicity #1464 #1466 #1468 #1368 #934 #1511]: #1513
+#1519 := [trans #1514 #1517]: #1518
+#1461 := (iff #1258 #1458)
+#1455 := (and #781 #1452 #927)
+#1459 := (iff #1455 #1458)
+#1460 := [rewrite]: #1459
+#1456 := (iff #1258 #1455)
+#1453 := (iff #1252 #1452)
+#1450 := (iff #1248 #1447)
+#1444 := (and #82 #356 #361 #776 #781 #793 #1419 #837 #843 #854)
+#1448 := (iff #1444 #1447)
+#1449 := [rewrite]: #1448
+#1445 := (iff #1248 #1444)
+#1426 := (iff #1225 #843)
+#1427 := [rewrite]: #1426
+#1424 := (iff #1222 #837)
+#1425 := [rewrite]: #1424
+#1422 := (iff #1218 #1419)
+#1416 := (or #1413 #1214)
+#1420 := (iff #1416 #1419)
+#1421 := [rewrite]: #1420
+#1417 := (iff #1218 #1416)
+#1414 := (iff #1199 #1413)
+#1411 := (iff #1198 #1410)
+#1408 := (iff #1194 #1407)
+#1405 := (iff #1193 #1404)
+#1402 := (iff #1191 #1401)
+#1399 := (iff #1190 #1396)
+#1388 := (+ #806 ?x3!1)
+#1391 := (>= #1388 0::int)
+#1397 := (iff #1391 #1396)
+#1398 := [rewrite]: #1397
+#1392 := (iff #1190 #1391)
+#1389 := (= #1189 #1388)
+#1390 := [rewrite]: #1389
+#1393 := [monotonicity #1390]: #1392
+#1400 := [trans #1393 #1398]: #1399
+#1403 := [monotonicity #1400]: #1402
+#1406 := [monotonicity #1403]: #1405
+#1409 := [monotonicity #1406]: #1408
+#1386 := (iff #1197 #1383)
+#1375 := (+ #799 #1195)
+#1378 := (<= #1375 0::int)
+#1384 := (iff #1378 #1383)
+#1385 := [rewrite]: #1384
+#1379 := (iff #1197 #1378)
+#1376 := (= #1196 #1375)
+#1377 := [rewrite]: #1376
+#1380 := [monotonicity #1377]: #1379
+#1387 := [trans #1380 #1385]: #1386
+#1412 := [monotonicity #1387 #1409]: #1411
+#1415 := [monotonicity #1412]: #1414
+#1418 := [monotonicity #1415]: #1417
+#1423 := [trans #1418 #1421]: #1422
+#1373 := (iff #1185 #793)
+#1374 := [rewrite]: #1373
+#1442 := (iff #1243 #776)
+#1443 := [rewrite]: #1442
+#1440 := (iff #1240 #361)
+#1441 := [rewrite]: #1440
+#1438 := (iff #1237 #356)
+#1439 := [rewrite]: #1438
+#1436 := (iff #1234 #82)
+#1437 := [rewrite]: #1436
+#1446 := [monotonicity #1437 #1439 #1441 #1443 #1368 #1374 #1423 #1425 #1427]: #1445
+#1451 := [trans #1446 #1449]: #1450
+#1434 := (iff #1230 #1431)
+#1428 := (and #191 #194 #781 #793 #1419 #837 #843 #850)
+#1432 := (iff #1428 #1431)
+#1433 := [rewrite]: #1432
+#1429 := (iff #1230 #1428)
+#1371 := (iff #1182 #194)
+#1372 := [rewrite]: #1371
+#1369 := (iff #1179 #191)
+#1370 := [rewrite]: #1369
+#1430 := [monotonicity #1370 #1372 #1368 #1374 #1423 #1425 #1427 #895]: #1429
+#1435 := [trans #1430 #1433]: #1434
+#1454 := [monotonicity #1435 #1451]: #1453
+#1457 := [monotonicity #1368 #1454]: #1456
+#1462 := [trans #1457 #1460]: #1461
+#1522 := [monotonicity #1462 #1519]: #1521
+#1365 := (iff #1166 #188)
+#1366 := [rewrite]: #1365
+#1525 := [monotonicity #1366 #1368 #1522]: #1524
+#1530 := [trans #1525 #1528]: #1529
+#1363 := (iff #1161 #1362)
+#1360 := (iff #1160 #1357)
+#1354 := (or #1351 #1154)
+#1358 := (iff #1354 #1357)
+#1359 := [rewrite]: #1358
+#1355 := (iff #1160 #1354)
+#1352 := (iff #1159 #1351)
+#1349 := (iff #1158 #1348)
+#1350 := [rewrite]: #1349
+#1353 := [monotonicity #1350]: #1352
+#1356 := [monotonicity #1353]: #1355
+#1361 := [trans #1356 #1359]: #1360
+#1364 := [monotonicity #1361]: #1363
+#1533 := [monotonicity #1364 #1530]: #1532
+#1138 := (or #619 #772 #784 #1021 #1046)
+#1143 := (and #769 #1138)
+#1146 := (not #1143)
+#1343 := (~ #1146 #1342)
+#1339 := (not #1138)
+#1340 := (~ #1339 #1338)
+#1335 := (not #1046)
+#1336 := (~ #1335 #1043)
+#1333 := (~ #1043 #1043)
+#1331 := (~ #1040 #1040)
+#1332 := [refl]: #1331
+#1334 := [nnf-pos #1332]: #1333
+#1337 := [nnf-neg #1334]: #1336
+#1328 := (not #1021)
+#1329 := (~ #1328 #1327)
+#1324 := (not #1016)
+#1325 := (~ #1324 #1323)
+#1320 := (not #991)
+#1321 := (~ #1320 #1319)
+#1316 := (not #988)
+#1317 := (~ #1316 #1315)
+#1310 := (not #985)
+#1311 := (~ #1310 #1309)
+#1312 := [sk]: #1311
+#1294 := (not #969)
+#1295 := (~ #1294 #1289)
+#1290 := (~ #966 #1289)
+#1291 := [sk]: #1290
+#1296 := [nnf-neg #1291]: #1295
+#1318 := [nnf-neg #1296 #1312]: #1317
+#1277 := (~ #969 #1276)
+#1274 := (~ #1273 #1273)
+#1275 := [refl]: #1274
+#1278 := [nnf-neg #1275]: #1277
+#1322 := [nnf-neg #1278 #1318]: #1321
+#1271 := (~ #930 #930)
+#1272 := [refl]: #1271
+#1177 := (~ #1176 #1176)
+#1178 := [refl]: #1177
+#1269 := (~ #1268 #1268)
+#1270 := [refl]: #1269
+#1266 := (~ #1265 #1265)
+#1267 := [refl]: #1266
+#1263 := (~ #1262 #1262)
+#1264 := [refl]: #1263
+#1326 := [nnf-neg #1264 #1267 #1270 #1178 #1272 #1322]: #1325
+#1259 := (not #946)
+#1260 := (~ #1259 #1258)
+#1256 := (~ #927 #927)
+#1257 := [refl]: #1256
+#1253 := (not #921)
+#1254 := (~ #1253 #1252)
+#1249 := (not #916)
+#1250 := (~ #1249 #1248)
+#1246 := (~ #854 #854)
+#1247 := [refl]: #1246
+#1226 := (~ #1225 #1225)
+#1227 := [refl]: #1226
+#1223 := (~ #1222 #1222)
+#1224 := [refl]: #1223
+#1219 := (not #833)
+#1220 := (~ #1219 #1218)
+#1215 := (not #828)
+#1216 := (~ #1215 #1214)
+#1211 := (not #822)
+#1212 := (~ #1211 #819)
+#1209 := (~ #819 #819)
+#1207 := (~ #816 #816)
+#1208 := [refl]: #1207
+#1210 := [nnf-pos #1208]: #1209
+#1213 := [nnf-neg #1210]: #1212
+#1205 := (~ #1204 #1204)
+#1206 := [refl]: #1205
+#1217 := [nnf-neg #1206 #1213]: #1216
+#1200 := (~ #822 #1199)
+#1201 := [sk]: #1200
+#1221 := [nnf-neg #1201 #1217]: #1220
+#1186 := (~ #1185 #1185)
+#1187 := [refl]: #1186
+#1244 := (~ #1243 #1243)
+#1245 := [refl]: #1244
+#1241 := (~ #1240 #1240)
+#1242 := [refl]: #1241
+#1238 := (~ #1237 #1237)
+#1239 := [refl]: #1238
+#1235 := (~ #1234 #1234)
+#1236 := [refl]: #1235
+#1251 := [nnf-neg #1236 #1239 #1242 #1245 #1178 #1187 #1221 #1224 #1227 #1247]: #1250
+#1231 := (not #881)
+#1232 := (~ #1231 #1230)
+#1228 := (~ #891 #891)
+#1229 := [refl]: #1228
+#1183 := (~ #1182 #1182)
+#1184 := [refl]: #1183
+#1180 := (~ #1179 #1179)
+#1181 := [refl]: #1180
+#1233 := [nnf-neg #1181 #1184 #1178 #1187 #1221 #1224 #1227 #1229]: #1232
+#1255 := [nnf-neg #1233 #1251]: #1254
+#1261 := [nnf-neg #1178 #1255 #1257]: #1260
+#1330 := [nnf-neg #1261 #1326]: #1329
+#1173 := (not #772)
+#1174 := (~ #1173 #769)
+#1171 := (~ #769 #769)
+#1169 := (~ #766 #766)
+#1170 := [refl]: #1169
+#1172 := [nnf-pos #1170]: #1171
+#1175 := [nnf-neg #1172]: #1174
+#1167 := (~ #1166 #1166)
+#1168 := [refl]: #1167
+#1341 := [nnf-neg #1168 #1175 #1178 #1330 #1337]: #1340
+#1162 := (~ #772 #1161)
+#1163 := [sk]: #1162
+#1344 := [nnf-neg #1163 #1341]: #1343
+#1110 := (not #1075)
+#1147 := (iff #1110 #1146)
+#1144 := (iff #1075 #1143)
+#1141 := (iff #1072 #1138)
+#1123 := (or #619 #784 #1021 #1046)
+#1135 := (or #772 #1123)
+#1139 := (iff #1135 #1138)
+#1140 := [rewrite]: #1139
+#1136 := (iff #1072 #1135)
+#1133 := (iff #1069 #1123)
+#1128 := (and true #1123)
+#1131 := (iff #1128 #1123)
+#1132 := [rewrite]: #1131
+#1129 := (iff #1069 #1128)
+#1126 := (iff #1064 #1123)
+#1120 := (or false #619 #784 #1021 #1046)
+#1124 := (iff #1120 #1123)
+#1125 := [rewrite]: #1124
+#1121 := (iff #1064 #1120)
+#1118 := (iff #652 false)
+#1116 := (iff #652 #740)
+#1115 := (iff #9 true)
+#1113 := [iff-true #1109]: #1115
+#1117 := [monotonicity #1113]: #1116
+#1119 := [trans #1117 #744]: #1118
+#1122 := [monotonicity #1119]: #1121
+#1127 := [trans #1122 #1125]: #1126
+#1130 := [monotonicity #1113 #1127]: #1129
+#1134 := [trans #1130 #1132]: #1133
+#1137 := [monotonicity #1134]: #1136
+#1142 := [trans #1137 #1140]: #1141
+#1145 := [monotonicity #1142]: #1144
+#1148 := [monotonicity #1145]: #1147
+#1111 := [not-or-elim #1108]: #1110
+#1149 := [mp #1111 #1148]: #1146
+#1345 := [mp~ #1149 #1344]: #1342
+#1346 := [mp #1345 #1533]: #1531
+#1830 := [mp #1346 #1829]: #1825
+#2396 := [mp #1830 #2395]: #2393
+#1909 := [unit-resolution #2396 #2199]: #2390
+#2214 := (or #2387 #2381)
+#2210 := [def-axiom]: #2214
+#2414 := [unit-resolution #2210 #1909]: #2381
+#2426 := (uf_3 uf_11)
+#2430 := (= uf_12 #2426)
+#2480 := (= #36 #2426)
+#2478 := (= #2426 #36)
+#2463 := [hypothesis]: #2378
+#2138 := (or #2375 #466)
+#2139 := [def-axiom]: #2138
+#2474 := [unit-resolution #2139 #2463]: #466
+#2475 := [symm #2474]: #98
+#2479 := [monotonicity #2475]: #2478
+#2481 := [symm #2479]: #2480
+#2482 := (= uf_12 #36)
+#2221 := (or #2387 #188)
+#2222 := [def-axiom]: #2221
+#2476 := [unit-resolution #2222 #1909]: #188
+#2132 := (or #2375 #469)
+#2140 := [def-axiom]: #2132
+#2466 := [unit-resolution #2140 #2463]: #469
+#2477 := [symm #2466]: #100
+#2483 := [trans #2477 #2476]: #2482
+#2484 := [trans #2483 #2481]: #2430
+#2458 := (not #2430)
+#2424 := (>= uf_11 0::int)
+#2425 := (not #2424)
+#2421 := (* -1::int uf_11)
+#2422 := (+ uf_1 #2421)
+#2423 := (<= #2422 0::int)
+#2436 := (or #2423 #2425 #2430)
+#2441 := (not #2436)
+#2227 := (or #2375 #2369)
+#2219 := [def-axiom]: #2227
+#2464 := [unit-resolution #2219 #2463]: #2369
+#2238 := (or #2375 #926)
+#2225 := [def-axiom]: #2238
+#2465 := [unit-resolution #2225 #2463]: #926
+#2031 := (+ uf_6 #972)
+#2032 := (<= #2031 0::int)
+#2467 := (or #551 #2032)
+#2468 := [th-lemma]: #2467
+#2469 := [unit-resolution #2468 #2466]: #2032
+#1925 := (not #2032)
+#1915 := (or #1795 #1925 #927)
+#2004 := (+ uf_4 #1301)
+#2005 := (<= #2004 0::int)
+#1918 := (not #2005)
+#1910 := [hypothesis]: #926
+#1911 := [hypothesis]: #1798
+#2086 := (or #1795 #1304)
+#2239 := [def-axiom]: #2086
+#1916 := [unit-resolution #2239 #1911]: #1304
+#1919 := (or #1918 #927 #1303)
+#1921 := [th-lemma]: #1919
+#1917 := [unit-resolution #1921 #1916 #1910]: #1918
+#2021 := (+ uf_6 #1493)
+#2022 := (>= #2021 0::int)
+#1930 := (not #2022)
+#1936 := [hypothesis]: #2032
+#2243 := (not #1495)
+#2241 := (or #1795 #2243)
+#2244 := [def-axiom]: #2241
+#1922 := [unit-resolution #2244 #1911]: #2243
+#1931 := (or #1930 #1495 #1925)
+#1924 := [hypothesis]: #2243
+#1926 := [hypothesis]: #2022
+#1927 := [th-lemma #1926 #1924 #1936]: false
+#1906 := [lemma #1927]: #1931
+#1905 := [unit-resolution #1906 #1922 #1936]: #1930
+#1913 := (or #2005 #2022)
+#2240 := (or #1795 #1305)
+#2242 := [def-axiom]: #2240
+#1908 := [unit-resolution #2242 #1911]: #1305
+#2212 := (or #2387 #2312)
+#2213 := [def-axiom]: #2212
+#1912 := [unit-resolution #2213 #1909]: #2312
+#1994 := (or #2317 #1731 #2005 #2022)
+#2034 := (+ ?x8!3 #924)
+#2035 := (>= #2034 0::int)
+#2036 := (+ #1298 #1024)
+#2037 := (<= #2036 0::int)
+#2026 := (or #1731 #2037 #2035)
+#1961 := (or #2317 #2026)
+#1971 := (iff #1961 #1994)
+#1991 := (or #1731 #2005 #2022)
+#1964 := (or #2317 #1991)
+#1969 := (iff #1964 #1994)
+#1970 := [rewrite]: #1969
+#1955 := (iff #1961 #1964)
+#1993 := (iff #2026 #1991)
+#2008 := (or #1731 #2022 #2005)
+#1983 := (iff #2008 #1991)
+#1992 := [rewrite]: #1983
+#1989 := (iff #2026 #2008)
+#2007 := (iff #2035 #2005)
+#2010 := (+ #924 ?x8!3)
+#2012 := (>= #2010 0::int)
+#1997 := (iff #2012 #2005)
+#2006 := [rewrite]: #1997
+#2014 := (iff #2035 #2012)
+#2011 := (= #2034 #2010)
+#2013 := [rewrite]: #2011
+#2003 := [monotonicity #2013]: #2014
+#1998 := [trans #2003 #2006]: #2007
+#2024 := (iff #2037 #2022)
+#2038 := (+ #1024 #1298)
+#2018 := (<= #2038 0::int)
+#2023 := (iff #2018 #2022)
+#2016 := [rewrite]: #2023
+#2019 := (iff #2037 #2018)
+#2015 := (= #2036 #2038)
+#2017 := [rewrite]: #2015
+#2020 := [monotonicity #2017]: #2019
+#2009 := [trans #2020 #2016]: #2024
+#1990 := [monotonicity #2009 #1998]: #1989
+#1984 := [trans #1990 #1992]: #1993
+#1968 := [monotonicity #1984]: #1955
+#1972 := [trans #1968 #1970]: #1971
+#1963 := [quant-inst]: #1961
+#1962 := [mp #1963 #1972]: #1994
+#1914 := [unit-resolution #1962 #1912 #1908]: #1913
+#1907 := [unit-resolution #1914 #1905 #1917]: false
+#1900 := [lemma #1907]: #1915
+#2470 := [unit-resolution #1900 #2469 #2465]: #1795
+#2121 := (or #2372 #2364 #1798)
+#2136 := [def-axiom]: #2121
+#2471 := [unit-resolution #2136 #2470 #2464]: #2364
+#2235 := (not #2364)
+#2444 := (or #2235 #2441)
+#2427 := (= #2426 uf_12)
+#2428 := (or #2427 #2425 #2423)
+#2429 := (not #2428)
+#2445 := (or #2235 #2429)
+#2447 := (iff #2445 #2444)
+#2449 := (iff #2444 #2444)
+#2450 := [rewrite]: #2449
+#2442 := (iff #2429 #2441)
+#2439 := (iff #2428 #2436)
+#2433 := (or #2430 #2425 #2423)
+#2437 := (iff #2433 #2436)
+#2438 := [rewrite]: #2437
+#2434 := (iff #2428 #2433)
+#2431 := (iff #2427 #2430)
+#2432 := [rewrite]: #2431
+#2435 := [monotonicity #2432]: #2434
+#2440 := [trans #2435 #2438]: #2439
+#2443 := [monotonicity #2440]: #2442
+#2448 := [monotonicity #2443]: #2447
+#2451 := [trans #2448 #2450]: #2447
+#2446 := [quant-inst]: #2445
+#2452 := [mp #2446 #2451]: #2444
+#2472 := [unit-resolution #2452 #2471]: #2441
+#2459 := (or #2436 #2458)
+#2460 := [def-axiom]: #2459
+#2473 := [unit-resolution #2460 #2472]: #2458
+#2485 := [unit-resolution #2473 #2484]: false
+#2486 := [lemma #2485]: #2375
+#2231 := (or #2384 #2361 #2378)
+#2220 := [def-axiom]: #2231
+#2415 := [unit-resolution #2220 #2486 #2414]: #2361
+#2106 := (or #2358 #2352)
+#2248 := [def-axiom]: #2106
+#2416 := [unit-resolution #2248 #2415]: #2352
+#2417 := [hypothesis]: #840
+#2285 := (or #2340 #837)
+#1923 := [def-axiom]: #2285
+#2418 := [unit-resolution #1923 #2417]: #2340
+#1987 := (or #2346 #837)
+#1988 := [def-axiom]: #1987
+#2419 := [unit-resolution #1988 #2417]: #2346
+#2255 := (or #2355 #2343 #2349)
+#2256 := [def-axiom]: #2255
+#2420 := [unit-resolution #2256 #2419 #2418 #2416]: false
+#2403 := [lemma #2420]: #837
+#2690 := (or #840 #1977)
+#2691 := [th-lemma]: #2690
+#2692 := [unit-resolution #2691 #2403]: #1977
+#2661 := [hypothesis]: #2349
+#2272 := (or #2346 #361)
+#2273 := [def-axiom]: #2272
+#2662 := [unit-resolution #2273 #2661]: #361
+#2629 := (= #58 #1195)
+#2642 := (not #2629)
+#2630 := (+ #58 #1381)
+#2632 := (>= #2630 0::int)
+#2636 := (not #2632)
+#2402 := (+ #39 #799)
+#2405 := (<= #2402 0::int)
+#2404 := (= #39 uf_8)
+#2665 := (= uf_10 uf_8)
+#2000 := (or #2346 #82)
+#2001 := [def-axiom]: #2000
+#2663 := [unit-resolution #2001 #2661]: #82
+#2666 := [symm #2663]: #2665
+#2002 := (or #2346 #356)
+#1896 := [def-axiom]: #2002
+#2664 := [unit-resolution #1896 #2661]: #356
+#2667 := [trans #2664 #2666]: #2404
+#2668 := (not #2404)
+#2669 := (or #2668 #2405)
+#2670 := [th-lemma]: #2669
+#2671 := [unit-resolution #2670 #2667]: #2405
+#1966 := (not #1383)
+#1982 := (or #2346 #2334)
+#2264 := [def-axiom]: #1982
+#2672 := [unit-resolution #2264 #2661]: #2334
+#2537 := (= #39 #58)
+#2674 := (= #58 #39)
+#2673 := [symm #2662]: #81
+#2675 := [monotonicity #2673]: #2674
+#2677 := [symm #2675]: #2537
+#2678 := (= uf_8 #39)
+#2676 := [symm #2664]: #79
+#2679 := [trans #2663 #2676]: #2678
+#2680 := [trans #2679 #2677]: #221
+#1981 := (or #2328 #1204)
+#1960 := [def-axiom]: #1981
+#2681 := [unit-resolution #1960 #2680]: #2328
+#1953 := (or #2337 #2331 #1645)
+#2294 := [def-axiom]: #1953
+#2682 := [unit-resolution #2294 #2681 #2672]: #1645
+#2298 := (or #1640 #1966)
+#2299 := [def-axiom]: #2298
+#2683 := [unit-resolution #2299 #2682]: #1966
+#2033 := (* -1::int #58)
+#2538 := (+ #39 #2033)
+#2540 := (>= #2538 0::int)
+#2684 := (not #2537)
+#2685 := (or #2684 #2540)
+#2686 := [th-lemma]: #2685
+#2687 := [unit-resolution #2686 #2677]: #2540
+#2617 := (not #2405)
+#2637 := (not #2540)
+#2638 := (or #2636 #2637 #1383 #2617)
+#2633 := [hypothesis]: #2632
+#2609 := [hypothesis]: #2405
+#2610 := [hypothesis]: #1966
+#2634 := [hypothesis]: #2540
+#2635 := [th-lemma #2634 #2610 #2609 #2633]: false
+#2639 := [lemma #2635]: #2638
+#2688 := [unit-resolution #2639 #2687 #2683 #2671]: #2636
+#2643 := (or #2642 #2632)
+#2644 := [th-lemma]: #2643
+#2689 := [unit-resolution #2644 #2688]: #2642
+#2300 := (or #1640 #1401)
+#2301 := [def-axiom]: #2300
+#2693 := [unit-resolution #2301 #2682]: #1401
+#2694 := (not #1977)
+#2695 := (or #2628 #1396 #2694)
+#2696 := [th-lemma]: #2695
+#2697 := [unit-resolution #2696 #2693 #2692]: #2628
+#2565 := (<= #2564 0::int)
+#2552 := (+ uf_6 #1381)
+#2553 := (>= #2552 0::int)
+#2699 := (not #2553)
+#2266 := (or #2346 #854)
+#2267 := [def-axiom]: #2266
+#2698 := [unit-resolution #2267 #2661]: #854
+#2700 := (or #2699 #1383 #2617 #850)
+#2701 := [th-lemma]: #2700
+#2702 := [unit-resolution #2701 #2683 #2671 #2698]: #2699
+#2704 := (or #2553 #2565)
+#2291 := (or #1640 #1192)
+#1965 := [def-axiom]: #2291
+#2703 := [unit-resolution #1965 #2682]: #1192
+#2573 := (or #2317 #1625 #2553 #2565)
+#2541 := (+ ?x3!1 #924)
+#2542 := (>= #2541 0::int)
+#2543 := (+ #1195 #1024)
+#2544 := (<= #2543 0::int)
+#2545 := (or #1625 #2544 #2542)
+#2574 := (or #2317 #2545)
+#2581 := (iff #2574 #2573)
+#2570 := (or #1625 #2553 #2565)
+#2576 := (or #2317 #2570)
+#2579 := (iff #2576 #2573)
+#2580 := [rewrite]: #2579
+#2577 := (iff #2574 #2576)
+#2571 := (iff #2545 #2570)
+#2568 := (iff #2542 #2565)
+#2558 := (+ #924 ?x3!1)
+#2561 := (>= #2558 0::int)
+#2566 := (iff #2561 #2565)
+#2567 := [rewrite]: #2566
+#2562 := (iff #2542 #2561)
+#2559 := (= #2541 #2558)
+#2560 := [rewrite]: #2559
+#2563 := [monotonicity #2560]: #2562
+#2569 := [trans #2563 #2567]: #2568
+#2556 := (iff #2544 #2553)
+#2546 := (+ #1024 #1195)
+#2549 := (<= #2546 0::int)
+#2554 := (iff #2549 #2553)
+#2555 := [rewrite]: #2554
+#2550 := (iff #2544 #2549)
+#2547 := (= #2543 #2546)
+#2548 := [rewrite]: #2547
+#2551 := [monotonicity #2548]: #2550
+#2557 := [trans #2551 #2555]: #2556
+#2572 := [monotonicity #2557 #2569]: #2571
+#2578 := [monotonicity #2572]: #2577
+#2582 := [trans #2578 #2580]: #2581
+#2575 := [quant-inst]: #2574
+#2583 := [mp #2575 #2582]: #2573
+#2705 := [unit-resolution #2583 #1912 #2703]: #2704
+#2706 := [unit-resolution #2705 #2702]: #2565
+#2708 := (not #2628)
+#2707 := (not #2565)
+#2709 := (or #2631 #2707 #2708)
+#2710 := [th-lemma]: #2709
+#2711 := [unit-resolution #2710 #2706 #2697]: #2631
+#2658 := (not #2631)
+#2659 := (or #2658 #2629 #376)
+#2654 := (= #1195 #58)
+#2652 := (= ?x3!1 uf_7)
+#2648 := [hypothesis]: #361
+#2650 := (= ?x3!1 uf_4)
+#2649 := [hypothesis]: #2631
+#2651 := [symm #2649]: #2650
+#2653 := [trans #2651 #2648]: #2652
+#2655 := [monotonicity #2653]: #2654
+#2656 := [symm #2655]: #2629
+#2647 := [hypothesis]: #2642
+#2657 := [unit-resolution #2647 #2656]: false
+#2660 := [lemma #2657]: #2659
+#2712 := [unit-resolution #2660 #2711 #2689 #2662]: false
+#2713 := [lemma #2712]: #2346
+#2766 := [unit-resolution #2256 #2713 #2416]: #2343
+#1928 := (or #2340 #2334)
+#1929 := [def-axiom]: #1928
+#2767 := [unit-resolution #1929 #2766]: #2334
+#2515 := (= #36 #58)
+#2772 := (= #58 #36)
+#1937 := (or #2340 #191)
+#2278 := [def-axiom]: #1937
+#2768 := [unit-resolution #2278 #2766]: #191
+#2769 := [symm #2768]: #42
+#2773 := [monotonicity #2769]: #2772
+#2774 := [symm #2773]: #2515
+#2775 := (= uf_8 #36)
+#1941 := (or #2340 #194)
+#1942 := [def-axiom]: #1941
+#2770 := [unit-resolution #1942 #2766]: #194
+#2771 := [symm #2770]: #44
+#2776 := [trans #2771 #2476]: #2775
+#2777 := [trans #2776 #2774]: #221
+#2778 := [unit-resolution #1960 #2777]: #2328
+#2779 := [unit-resolution #2294 #2778 #2767]: #1645
+#2780 := [unit-resolution #2301 #2779]: #1401
+#2781 := [unit-resolution #2696 #2780 #2692]: #2628
+#2510 := (+ uf_6 #799)
+#2511 := (<= #2510 0::int)
+#2782 := (or #301 #2511)
+#2783 := [th-lemma]: #2782
+#2784 := [unit-resolution #2783 #2770]: #2511
+#2785 := [unit-resolution #2299 #2779]: #1966
+#2786 := (not #2511)
+#2787 := (or #2699 #1383 #2786)
+#2788 := [th-lemma]: #2787
+#2789 := [unit-resolution #2788 #2785 #2784]: #2699
+#2790 := [unit-resolution #1965 #2779]: #1192
+#2791 := [unit-resolution #2583 #1912 #2790 #2789]: #2565
+#2792 := [unit-resolution #2710 #2791 #2781]: #2631
+#2793 := [monotonicity #2792]: #2762
+#2794 := (not #2762)
+#2795 := (or #2794 #2765)
+#2796 := [th-lemma]: #2795
+#2797 := [unit-resolution #2796 #2793]: #2765
+#2286 := (or #2340 #850)
+#2288 := [def-axiom]: #2286
+#2798 := [unit-resolution #2288 #2766]: #850
+[th-lemma #2798 #2785 #2784 #2797]: false
+unsat
--- a/src/HOL/Boogie/Examples/cert/VCC_b_maximum	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,687 +0,0 @@
-(benchmark Isabelle
-:extrasorts ( T2 T5 T8 T3 T15 T16 T4 T1 T6 T17 T11 T18 T7 T9 T13 T14 T12 T10 T19)
-:extrafuns (
-  (uf_9 T2)
-  (uf_48 T5 T3 T2)
-  (uf_26 T5)
-  (uf_72 T3 Int Int Int)
-  (uf_126 T5 T15 T5)
-  (uf_66 T5 Int T3 T5)
-  (uf_43 T3 Int T5)
-  (uf_116 T5 Int)
-  (uf_15 T5 T3)
-  (uf_81 Int Int Int)
-  (uf_80 Int Int Int)
-  (uf_70 T3 Int Int Int)
-  (uf_69 Int Int Int)
-  (uf_73 T3 Int Int)
-  (uf_101 T3 Int Int Int)
-  (uf_100 Int Int Int)
-  (uf_71 T3 Int Int Int)
-  (uf_46 T4 T4 T5 T3 T2)
-  (uf_121 T5)
-  (uf_53 T4 T5 T6)
-  (uf_163 T5 T6)
-  (uf_79 Int Int)
-  (uf_124 T3 Int T3)
-  (uf_259 T3 T3 T3)
-  (uf_25 T4 T5 T5)
-  (uf_27 T4 T5 T2)
-  (uf_255 T3)
-  (uf_254 T3)
-  (uf_94 T3)
-  (uf_90 T3)
-  (uf_87 T3)
-  (uf_83 T3)
-  (uf_7 T3)
-  (uf_91 T3)
-  (uf_4 T3)
-  (uf_84 T3)
-  (uf_24 T4 T5 T2)
-  (uf_10 T4 T5 T6)
-  (uf_128 T4 T5 T6)
-  (uf_253 Int)
-  (uf_20 T4 T9)
-  (uf_6 T3 T3)
-  (uf_224 T17 T17 T2)
-  (uf_153 T6 T6 T2)
-  (uf_13 T5 T6 T2)
-  (uf_138 T3 Int)
-  (uf_136 T14 T5)
-  (uf_5 T3)
-  (uf_291 T1)
-  (uf_122 T2 T2)
-  (uf_207 T4 T4 T5 T5 T2)
-  (uf_14 T3 T8)
-  (uf_61 T4 T5 T2)
-  (uf_114 T4 T5 Int)
-  (uf_113 T4 T5 Int)
-  (uf_112 T4 T5 Int)
-  (uf_111 T4 T5 Int)
-  (uf_110 T4 T5 Int)
-  (uf_109 T4 T5 Int)
-  (uf_108 T4 T5 Int)
-  (uf_107 T4 T5 Int)
-  (uf_38 T4 T5 Int)
-  (uf_169 T4 T4 T5 T5 T4)
-  (uf_145 T5 T6 T2)
-  (uf_147 T5 T6 T2)
-  (uf_59 T4 T13)
-  (uf_232 T4 T5 T18)
-  (uf_258 T3)
-  (uf_240 T3)
-  (uf_284 T16)
-  (uf_188 T4 T5 T5 T5 T5)
-  (uf_65 T4 T5 T3 Int T2)
-  (uf_95 Int)
-  (uf_92 Int)
-  (uf_88 Int)
-  (uf_85 Int)
-  (uf_78 Int)
-  (uf_77 Int)
-  (uf_76 Int)
-  (uf_75 Int)
-  (uf_96 Int)
-  (uf_93 Int)
-  (uf_89 Int)
-  (uf_86 Int)
-  (uf_42 T5)
-  (uf_230 T17)
-  (uf_173 T4 T5 T5 T11)
-  (uf_215 T11 T5)
-  (uf_266 T3 T3)
-  (uf_233 T18 T4)
-  (uf_37 T3)
-  (uf_279 T1)
-  (uf_281 T1)
-  (uf_287 T1)
-  (uf_99 Int Int Int Int Int Int)
-  (uf_55 T4 T2)
-  (uf_60 Int T3 T5)
-  (uf_246 Int T5)
-  (uf_220 T5 T15 Int)
-  (uf_196 T4 T5 T5 T2)
-  (uf_264 T3 T3)
-  (uf_142 T3 Int)
-  (uf_117 T5 Int)
-  (uf_119 T5 Int)
-  (uf_118 T5 Int)
-  (uf_120 T5 Int)
-  (uf_222 T17 T15 Int)
-  (uf_152 T6)
-  (uf_157 T6 T6 T6)
-  (uf_41 T4 T12)
-  (uf_174 T4 T5 T5 T4)
-  (uf_170 T4 T5 Int)
-  (uf_82 T3 Int Int)
-  (uf_106 T3 Int Int Int)
-  (uf_103 T3 Int Int Int)
-  (uf_102 T3 Int Int Int)
-  (uf_104 T3 Int Int Int)
-  (uf_105 T3 Int Int Int)
-  (uf_241 T15 Int T15)
-  (uf_50 T5 T5 T2)
-  (uf_245 Int T15)
-  (uf_51 T4 T2)
-  (uf_74 T3 Int T2)
-  (uf_195 T4 T5 T5 T2)
-  (uf_28 Int T5)
-  (uf_262 T8)
-  (uf_161 T5 Int T5)
-  (uf_265 T3 T3)
-  (uf_47 T4 T5 T2)
-  (uf_29 T5 Int)
-  (uf_201 T4 T5 T3 T5)
-  (uf_229 T17 T15 Int T17)
-  (uf_179 T4 T4 T5 T3 T2)
-  (uf_154 T6 T6 T2)
-  (uf_39 T11 Int)
-  (uf_172 T12 T5 T11 T12)
-  (uf_251 T13 T5 T14 T13)
-  (uf_175 T4 T5 T5 T11)
-  (uf_176 T4 T5 Int T4)
-  (uf_192 T7 T6)
-  (uf_257 T3)
-  (uf_132 T5 T3 Int T6)
-  (uf_139 T5 T5 T2)
-  (uf_276 T19 Int)
-  (uf_130 T5 T6)
-  (uf_44 T4 T2)
-  (uf_261 T8)
-  (uf_248 T3 T3 Int)
-  (uf_249 T3 T3 Int)
-  (uf_181 T4 T4 T2)
-  (uf_221 Int Int T2)
-  (uf_160 T5 Int T5)
-  (uf_40 T12 T5 T11)
-  (uf_58 T13 T5 T14)
-  (uf_178 T9 T5 Int T9)
-  (uf_235 T18)
-  (uf_49 T4 T5 T2)
-  (uf_234 T18 Int)
-  (uf_267 T3)
-  (uf_143 T3 Int)
-  (uf_243 T15 T15)
-  (uf_242 T15 Int)
-  (uf_54 T5 T5 T2)
-  (uf_144 T3 T3)
-  (uf_237 T15 Int)
-  (uf_148 T5 T2)
-  (uf_283 Int T5 T2)
-  (uf_125 T5 T5 Int)
-  (uf_141 T3 T2)
-  (uf_260 T3 T2)
-  (uf_57 T3 T2)
-  (uf_23 T3 T2)
-  (uf_159 T5 T5 T5)
-  (uf_12 T4 T5 T7)
-  (uf_19 T9 T5 Int)
-  (uf_131 T6 T6 T2)
-  (uf_149 T6)
-  (uf_217 T11 Int)
-  (uf_67 T4 T5 T2)
-  (uf_219 T3)
-  (uf_268 T3)
-  (uf_289 T1)
-  (uf_134 T5 T3 Int T6)
-  (uf_189 T5 T7)
-  (uf_183 T10 T5 Int)
-  (uf_62 Int Int)
-  (uf_63 Int Int)
-  (uf_200 T4 T5 T5 T16 T2)
-  (uf_140 T5 T3 T5)
-  (uf_34 Int T6)
-  (uf_225 Int T17)
-  (uf_56 T3 T2)
-  (uf_208 T3 T2)
-  (uf_35 T6 Int)
-  (uf_231 T17 T15 Int Int Int Int T17)
-  (uf_226 T17 Int)
-  (uf_151 T5 T6)
-  (uf_162 T4 T5 T6)
-  (uf_256 T3)
-  (uf_45 T4 T5 T2)
-  (uf_203 T4 T2)
-  (uf_202 T1 T4 T2)
-  (uf_198 T4 T5 T5 T16 T2)
-  (uf_32 Int T7)
-  (uf_185 T3 T15 T15 T2)
-  (uf_211 T4 T5 T2)
-  (uf_228 T3 T2)
-  (uf_263 T8)
-  (uf_16 T8)
-  (uf_214 T3 T15)
-  (uf_156 T6 T6 T6)
-  (uf_206 T4 T4 T5 T3 T2)
-  (uf_135 T14 T2)
-  (uf_33 T7 Int)
-  (uf_275 T1)
-  (uf_177 T4 T4 T2)
-  (uf_133 T5 T6 T6 Int)
-  (uf_186 T5 T5 T2)
-  (uf_247 T3 T3 Int Int T2)
-  (uf_227 T3 T15 T3 T2)
-  (uf_127 T4 T5 T6)
-  (uf_150 T6 Int)
-  (uf_286 T1)
-  (uf_288 T1)
-  (uf_295 T1)
-  (uf_290 T1)
-  (uf_305 T1)
-  (uf_18 T5 T2)
-  (uf_22 T3 T2)
-  (uf_184 T4 T5 T10)
-  (uf_155 T6 T6 T6)
-  (uf_303 T1)
-  (uf_306 T1)
-  (uf_97 Int Int Int Int Int)
-  (uf_236 T5 T15 T5)
-  (uf_171 T4 Int)
-  (uf_8 T4 T4 T5 T6 T2)
-  (uf_11 T7 T5 Int)
-  (uf_238 T15 T3)
-  (uf_210 T4 T5 T2)
-  (uf_180 T3 T15 T2)
-  (uf_252 T3)
-  (uf_64 Int Int T5)
-  (uf_30 Int T10)
-  (uf_31 T10 Int)
-  (uf_98 Int Int Int Int Int)
-  (uf_277 Int)
-  (uf_164 T4 T2)
-  (uf_21 T4 T4 T6 T2)
-  (uf_115 T5 T5 Int)
-  (uf_167 T5)
-  (uf_168 Int)
-  (uf_129 T5 T3 Int T6)
-  (uf_123 T4 T4 T5 T3 T2)
-  (uf_17 T4 T4 T6 T2)
-  (uf_239 T5 T15 Int)
-  (uf_166 T3)
-  (uf_223 T15 T15)
-  (uf_191 T4 T2)
-  (uf_137 T4 T5 T3 Int T2 T2)
-  (uf_158 T5 T6)
-  (uf_204 T4 T4 T5 T3 T2)
-  (uf_187 T15 Int T2)
-  (uf_190 T15 T2)
-  (uf_2 T1)
-  (uf_194 T15 Int T3 T2)
-  (uf_273 T4)
-  (uf_270 Int)
-  (uf_269 Int)
-  (uf_274 Int)
-  (uf_272 Int)
-  (uf_294 Int)
-  (uf_302 Int)
-  (uf_297 Int)
-  (uf_285 Int)
-  (uf_292 Int)
-  (uf_304 Int)
-  (uf_300 Int)
-  (uf_296 Int)
-  (uf_271 Int)
-  (uf_299 Int)
-  (uf_293 Int)
-  (uf_301 Int)
-  (uf_298 Int)
-  (uf_282 Int)
- )
-:extrapreds (
-  (up_199 T4 T5 T16)
-  (up_146 T5 T6)
-  (up_213 T14)
-  (up_209 T4 T5 T3)
-  (up_250 T3 T3)
-  (up_218 T11)
-  (up_1 Int T1)
-  (up_36 T3)
-  (up_3 Int T3)
-  (up_244 T15)
-  (up_212 T11)
-  (up_280 T4 T1 T1 Int T3)
-  (up_182 Int)
-  (up_216)
-  (up_68 T14)
-  (up_193 T2)
-  (up_52 T6)
-  (up_278 T4 T1 T1 T5 T3)
-  (up_197 T3)
-  (up_165 T4)
-  (up_205 T4 T4 T5 T3)
- )
-:assumption (up_1 1 uf_2)
-:assumption (up_3 1 uf_4)
-:assumption (= uf_5 (uf_6 uf_7))
-:assumption (forall (?x1 T4) (?x2 T4) (?x3 T5) (?x4 T6) (iff (= (uf_8 ?x1 ?x2 ?x3 ?x4) uf_9) (and (= (uf_10 ?x1 ?x3) (uf_10 ?x2 ?x3)) (forall (?x5 T5) (implies (and (not (= (uf_13 ?x5 ?x4) uf_9)) (= (uf_14 (uf_15 ?x5)) uf_16)) (= (uf_11 (uf_12 ?x1 ?x3) ?x5) (uf_11 (uf_12 ?x2 ?x3) ?x5))) :pat { (uf_11 (uf_12 ?x2 ?x3) ?x5) }))) :pat { (uf_8 ?x1 ?x2 ?x3 ?x4) })
-:assumption (forall (?x6 T4) (?x7 T4) (?x8 T6) (implies (forall (?x9 T5) (implies (and (not (= (uf_14 (uf_15 ?x9)) uf_16)) (= (uf_13 ?x9 ?x8) uf_9)) (or (= (uf_8 ?x6 ?x7 ?x9 ?x8) uf_9) (= (uf_19 (uf_20 ?x6) ?x9) (uf_19 (uf_20 ?x7) ?x9)))) :pat { (uf_18 ?x9) }) (= (uf_17 ?x6 ?x7 ?x8) uf_9)) :pat { (uf_17 ?x6 ?x7 ?x8) })
-:assumption (forall (?x10 T4) (?x11 T4) (?x12 T6) (implies (forall (?x13 T5) (implies (or (= (uf_22 (uf_15 ?x13)) uf_9) (= (uf_23 (uf_15 ?x13)) uf_9)) (implies (and (not (or (and (= (uf_24 ?x10 ?x13) uf_9) (= (uf_14 (uf_15 ?x13)) uf_16)) (not (= (uf_25 ?x10 ?x13) uf_26)))) (= (uf_27 ?x10 ?x13) uf_9)) (or (= (uf_13 ?x13 ?x12) uf_9) (= (uf_19 (uf_20 ?x10) ?x13) (uf_19 (uf_20 ?x11) ?x13))))) :pat { (uf_18 ?x13) }) (= (uf_21 ?x10 ?x11 ?x12) uf_9)) :pat { (uf_21 ?x10 ?x11 ?x12) })
-:assumption (forall (?x14 T5) (= (uf_28 (uf_29 ?x14)) ?x14))
-:assumption (forall (?x15 T10) (= (uf_30 (uf_31 ?x15)) ?x15))
-:assumption (forall (?x16 T7) (= (uf_32 (uf_33 ?x16)) ?x16))
-:assumption (forall (?x17 T6) (= (uf_34 (uf_35 ?x17)) ?x17))
-:assumption (up_36 uf_37)
-:assumption (forall (?x18 T4) (?x19 T5) (= (uf_38 ?x18 ?x19) (uf_39 (uf_40 (uf_41 ?x18) ?x19))) :pat { (uf_38 ?x18 ?x19) })
-:assumption (= uf_42 (uf_43 uf_37 0))
-:assumption (forall (?x20 T4) (?x21 T5) (implies (and (= (uf_45 ?x20 ?x21) uf_9) (= (uf_44 ?x20) uf_9)) (= (uf_46 ?x20 ?x20 ?x21 (uf_15 ?x21)) uf_9)) :pat { (uf_44 ?x20) (uf_45 ?x20 ?x21) })
-:assumption (forall (?x22 T4) (?x23 T5) (iff (= (uf_45 ?x22 ?x23) uf_9) (= (uf_24 ?x22 ?x23) uf_9)) :pat { (uf_45 ?x22 ?x23) })
-:assumption (forall (?x24 T4) (?x25 T5) (iff (= (uf_47 ?x24 ?x25) uf_9) (and (or (= (uf_38 ?x24 ?x25) 0) (not (up_36 (uf_15 ?x25)))) (and (= (uf_22 (uf_15 ?x25)) uf_9) (and (not (= (uf_14 (uf_15 ?x25)) uf_16)) (and (= (uf_27 ?x24 ?x25) uf_9) (and (= (uf_48 ?x25 (uf_15 ?x25)) uf_9) (and (= (uf_25 ?x24 ?x25) uf_26) (= (uf_24 ?x24 ?x25) uf_9)))))))) :pat { (uf_47 ?x24 ?x25) })
-:assumption (forall (?x26 T4) (?x27 T5) (?x28 Int) (implies (and (= (uf_50 ?x27 (uf_43 uf_37 ?x28)) uf_9) (= (uf_49 ?x26 ?x27) uf_9)) (= (uf_49 ?x26 (uf_43 uf_37 ?x28)) uf_9)) :pat { (uf_49 ?x26 ?x27) (uf_50 ?x27 (uf_43 uf_37 ?x28)) })
-:assumption (forall (?x29 T4) (?x30 T5) (?x31 T5) (implies (and (= (uf_50 ?x30 ?x31) uf_9) (= (uf_49 ?x29 ?x30) uf_9)) (= (uf_46 ?x29 ?x29 ?x31 (uf_15 ?x31)) uf_9)) :pat { (uf_49 ?x29 ?x30) (uf_50 ?x30 ?x31) })
-:assumption (forall (?x32 T4) (?x33 T5) (?x34 T5) (implies (= (uf_51 ?x32) uf_9) (implies (and (= (uf_24 ?x32 ?x33) uf_9) (= (uf_50 ?x33 ?x34) uf_9)) (and (< 0 (uf_38 ?x32 ?x34)) (and (= (uf_24 ?x32 ?x34) uf_9) (up_52 (uf_53 ?x32 ?x34)))))) :pat { (uf_24 ?x32 ?x33) (uf_50 ?x33 ?x34) })
-:assumption (forall (?x35 T4) (?x36 T5) (?x37 T5) (implies (and (= (uf_54 ?x36 ?x37) uf_9) (= (uf_49 ?x35 ?x36) uf_9)) (= (uf_49 ?x35 ?x37) uf_9)) :pat { (uf_49 ?x35 ?x36) (uf_54 ?x36 ?x37) })
-:assumption (forall (?x38 T5) (?x39 T5) (implies (and (forall (?x40 T4) (implies (= (uf_49 ?x40 ?x38) uf_9) (= (uf_24 ?x40 ?x39) uf_9))) (and (= (uf_48 ?x39 uf_37) uf_9) (= (uf_48 ?x38 uf_37) uf_9))) (= (uf_54 ?x38 ?x39) uf_9)) :pat { (uf_54 ?x38 ?x39) })
-:assumption (forall (?x41 T4) (?x42 T5) (implies (= (uf_49 ?x41 ?x42) uf_9) (and (= (uf_44 ?x41) uf_9) (= (uf_24 ?x41 ?x42) uf_9))) :pat { (uf_49 ?x41 ?x42) })
-:assumption (forall (?x43 T4) (?x44 T5) (implies (and (= (uf_24 ?x43 ?x44) uf_9) (= (uf_55 ?x43) uf_9)) (= (uf_49 ?x43 ?x44) uf_9)) :pat { (uf_55 ?x43) (uf_49 ?x43 ?x44) })
-:assumption (forall (?x45 T3) (implies (= (uf_56 ?x45) uf_9) (= (uf_23 ?x45) uf_9)) :pat { (uf_56 ?x45) })
-:assumption (forall (?x46 T3) (implies (= (uf_57 ?x46) uf_9) (= (uf_23 ?x46) uf_9)) :pat { (uf_57 ?x46) })
-:assumption (forall (?x47 T4) (?x48 Int) (?x49 T3) (implies (and (= (uf_51 ?x47) uf_9) (= (uf_56 ?x49) uf_9)) (= (uf_61 ?x47 (uf_60 ?x48 ?x49)) uf_9)) :pat { (uf_58 (uf_59 ?x47) (uf_60 ?x48 ?x49)) } :pat { (uf_40 (uf_41 ?x47) (uf_60 ?x48 ?x49)) })
-:assumption (forall (?x50 Int) (= (uf_62 (uf_63 ?x50)) ?x50))
-:assumption (forall (?x51 Int) (?x52 T3) (= (uf_60 ?x51 ?x52) (uf_43 ?x52 (uf_63 ?x51))) :pat { (uf_60 ?x51 ?x52) })
-:assumption (forall (?x53 Int) (?x54 Int) (?x55 T4) (implies (= (uf_51 ?x55) uf_9) (and (forall (?x56 Int) (implies (and (< ?x56 ?x54) (<= 0 ?x56)) (and (= (uf_67 ?x55 (uf_66 (uf_64 ?x53 ?x54) ?x56 uf_7)) uf_9) (and (= (uf_48 (uf_66 (uf_64 ?x53 ?x54) ?x56 uf_7) uf_7) uf_9) (up_68 (uf_58 (uf_59 ?x55) (uf_66 (uf_64 ?x53 ?x54) ?x56 uf_7)))))) :pat { (uf_40 (uf_41 ?x55) (uf_66 (uf_64 ?x53 ?x54) ?x56 uf_7)) } :pat { (uf_58 (uf_59 ?x55) (uf_66 (uf_64 ?x53 ?x54) ?x56 uf_7)) }) (= (uf_27 ?x55 (uf_64 ?x53 ?x54)) uf_9))) :pat { (uf_27 ?x55 (uf_64 ?x53 ?x54)) } :pat { (uf_65 ?x55 (uf_64 ?x53 ?x54) uf_7 ?x54) })
-:assumption (forall (?x57 Int) (?x58 Int) (= (uf_48 (uf_64 ?x57 ?x58) uf_7) uf_9) :pat { (uf_64 ?x57 ?x58) })
-:assumption (forall (?x59 Int) (?x60 Int) (= (uf_69 ?x59 ?x60) (+ ?x59 ?x60)) :pat { (uf_69 ?x59 ?x60) })
-:assumption (forall (?x61 T3) (?x62 Int) (?x63 Int) (= (uf_70 ?x61 ?x62 ?x63) (uf_70 ?x61 ?x63 ?x62)) :pat { (uf_70 ?x61 ?x62 ?x63) })
-:assumption (forall (?x64 T3) (?x65 Int) (?x66 Int) (= (uf_71 ?x64 ?x65 ?x66) (uf_71 ?x64 ?x66 ?x65)) :pat { (uf_71 ?x64 ?x65 ?x66) })
-:assumption (forall (?x67 T3) (?x68 Int) (?x69 Int) (= (uf_72 ?x67 ?x68 ?x69) (uf_72 ?x67 ?x69 ?x68)) :pat { (uf_72 ?x67 ?x68 ?x69) })
-:assumption (forall (?x70 T3) (?x71 Int) (implies (= (uf_74 ?x70 ?x71) uf_9) (= (uf_73 ?x70 (uf_73 ?x70 ?x71)) ?x71)) :pat { (uf_73 ?x70 (uf_73 ?x70 ?x71)) })
-:assumption (forall (?x72 T3) (?x73 Int) (= (uf_71 ?x72 ?x73 (uf_73 ?x72 0)) (uf_73 ?x72 ?x73)) :pat { (uf_71 ?x72 ?x73 (uf_73 ?x72 0)) })
-:assumption (forall (?x74 T3) (?x75 Int) (= (uf_71 ?x74 ?x75 ?x75) 0) :pat { (uf_71 ?x74 ?x75 ?x75) })
-:assumption (forall (?x76 T3) (?x77 Int) (implies (= (uf_74 ?x76 ?x77) uf_9) (= (uf_71 ?x76 ?x77 0) ?x77)) :pat { (uf_71 ?x76 ?x77 0) })
-:assumption (forall (?x78 T3) (?x79 Int) (?x80 Int) (= (uf_70 ?x78 (uf_72 ?x78 ?x79 ?x80) ?x79) ?x79) :pat { (uf_70 ?x78 (uf_72 ?x78 ?x79 ?x80) ?x79) })
-:assumption (forall (?x81 T3) (?x82 Int) (?x83 Int) (= (uf_70 ?x81 (uf_72 ?x81 ?x82 ?x83) ?x83) ?x83) :pat { (uf_70 ?x81 (uf_72 ?x81 ?x82 ?x83) ?x83) })
-:assumption (forall (?x84 T3) (?x85 Int) (implies (= (uf_74 ?x84 ?x85) uf_9) (= (uf_70 ?x84 ?x85 ?x85) ?x85)) :pat { (uf_70 ?x84 ?x85 ?x85) })
-:assumption (forall (?x86 T3) (?x87 Int) (implies (= (uf_74 ?x86 ?x87) uf_9) (= (uf_70 ?x86 ?x87 (uf_73 ?x86 0)) ?x87)) :pat { (uf_70 ?x86 ?x87 (uf_73 ?x86 0)) })
-:assumption (forall (?x88 T3) (?x89 Int) (= (uf_70 ?x88 ?x89 0) 0) :pat { (uf_70 ?x88 ?x89 0) })
-:assumption (forall (?x90 T3) (?x91 Int) (implies (= (uf_74 ?x90 ?x91) uf_9) (= (uf_72 ?x90 ?x91 ?x91) ?x91)) :pat { (uf_72 ?x90 ?x91 ?x91) })
-:assumption (forall (?x92 T3) (?x93 Int) (= (uf_72 ?x92 ?x93 (uf_73 ?x92 0)) (uf_73 ?x92 0)) :pat { (uf_72 ?x92 ?x93 (uf_73 ?x92 0)) })
-:assumption (forall (?x94 T3) (?x95 Int) (implies (= (uf_74 ?x94 ?x95) uf_9) (= (uf_72 ?x94 ?x95 0) ?x95)) :pat { (uf_72 ?x94 ?x95 0) })
-:assumption (forall (?x96 T3) (?x97 Int) (= (uf_70 ?x96 ?x97 (uf_73 ?x96 ?x97)) 0) :pat { (uf_70 ?x96 ?x97 (uf_73 ?x96 ?x97)) })
-:assumption (forall (?x98 T3) (?x99 Int) (= (uf_72 ?x98 ?x99 (uf_73 ?x98 ?x99)) (uf_73 ?x98 0)) :pat { (uf_72 ?x98 ?x99 (uf_73 ?x98 ?x99)) })
-:assumption (forall (?x100 T3) (?x101 Int) (= (uf_74 ?x100 (uf_73 ?x100 ?x101)) uf_9) :pat { (uf_73 ?x100 ?x101) })
-:assumption (forall (?x102 T3) (?x103 Int) (?x104 Int) (implies (and (<= ?x104 uf_75) (and (<= 0 ?x104) (and (<= ?x103 uf_75) (<= 0 ?x103)))) (and (<= (uf_71 ?x102 ?x103 ?x104) uf_75) (<= 0 (uf_71 ?x102 ?x103 ?x104)))) :pat { (uf_71 ?x102 ?x103 ?x104) })
-:assumption (forall (?x105 T3) (?x106 Int) (?x107 Int) (implies (and (<= ?x107 uf_76) (and (<= 0 ?x107) (and (<= ?x106 uf_76) (<= 0 ?x106)))) (and (<= (uf_71 ?x105 ?x106 ?x107) uf_76) (<= 0 (uf_71 ?x105 ?x106 ?x107)))) :pat { (uf_71 ?x105 ?x106 ?x107) })
-:assumption (forall (?x108 T3) (?x109 Int) (?x110 Int) (implies (and (<= ?x110 uf_77) (and (<= 0 ?x110) (and (<= ?x109 uf_77) (<= 0 ?x109)))) (and (<= (uf_71 ?x108 ?x109 ?x110) uf_77) (<= 0 (uf_71 ?x108 ?x109 ?x110)))) :pat { (uf_71 ?x108 ?x109 ?x110) })
-:assumption (forall (?x111 T3) (?x112 Int) (?x113 Int) (implies (and (<= ?x113 uf_78) (and (<= 0 ?x113) (and (<= ?x112 uf_78) (<= 0 ?x112)))) (and (<= (uf_71 ?x111 ?x112 ?x113) uf_78) (<= 0 (uf_71 ?x111 ?x112 ?x113)))) :pat { (uf_71 ?x111 ?x112 ?x113) })
-:assumption (forall (?x114 T3) (?x115 Int) (?x116 Int) (implies (and (<= ?x116 uf_75) (and (<= 0 ?x116) (and (<= ?x115 uf_75) (<= 0 ?x115)))) (and (<= (uf_70 ?x114 ?x115 ?x116) uf_75) (<= 0 (uf_70 ?x114 ?x115 ?x116)))) :pat { (uf_70 ?x114 ?x115 ?x116) })
-:assumption (forall (?x117 T3) (?x118 Int) (?x119 Int) (implies (and (<= ?x119 uf_76) (and (<= 0 ?x119) (and (<= ?x118 uf_76) (<= 0 ?x118)))) (and (<= (uf_70 ?x117 ?x118 ?x119) uf_76) (<= 0 (uf_70 ?x117 ?x118 ?x119)))) :pat { (uf_70 ?x117 ?x118 ?x119) })
-:assumption (forall (?x120 T3) (?x121 Int) (?x122 Int) (implies (and (<= ?x122 uf_77) (and (<= 0 ?x122) (and (<= ?x121 uf_77) (<= 0 ?x121)))) (and (<= (uf_70 ?x120 ?x121 ?x122) uf_77) (<= 0 (uf_70 ?x120 ?x121 ?x122)))) :pat { (uf_70 ?x120 ?x121 ?x122) })
-:assumption (forall (?x123 T3) (?x124 Int) (?x125 Int) (implies (and (<= ?x125 uf_78) (and (<= 0 ?x125) (and (<= ?x124 uf_78) (<= 0 ?x124)))) (and (<= (uf_70 ?x123 ?x124 ?x125) uf_78) (<= 0 (uf_70 ?x123 ?x124 ?x125)))) :pat { (uf_70 ?x123 ?x124 ?x125) })
-:assumption (forall (?x126 T3) (?x127 Int) (?x128 Int) (implies (and (<= ?x128 uf_75) (and (<= 0 ?x128) (and (<= ?x127 uf_75) (<= 0 ?x127)))) (and (<= (uf_72 ?x126 ?x127 ?x128) uf_75) (<= 0 (uf_72 ?x126 ?x127 ?x128)))) :pat { (uf_72 ?x126 ?x127 ?x128) })
-:assumption (forall (?x129 T3) (?x130 Int) (?x131 Int) (implies (and (<= ?x131 uf_76) (and (<= 0 ?x131) (and (<= ?x130 uf_76) (<= 0 ?x130)))) (and (<= (uf_72 ?x129 ?x130 ?x131) uf_76) (<= 0 (uf_72 ?x129 ?x130 ?x131)))) :pat { (uf_72 ?x129 ?x130 ?x131) })
-:assumption (forall (?x132 T3) (?x133 Int) (?x134 Int) (implies (and (<= ?x134 uf_77) (and (<= 0 ?x134) (and (<= ?x133 uf_77) (<= 0 ?x133)))) (and (<= (uf_72 ?x132 ?x133 ?x134) uf_77) (<= 0 (uf_72 ?x132 ?x133 ?x134)))) :pat { (uf_72 ?x132 ?x133 ?x134) })
-:assumption (forall (?x135 T3) (?x136 Int) (?x137 Int) (implies (and (<= ?x137 uf_78) (and (<= 0 ?x137) (and (<= ?x136 uf_78) (<= 0 ?x136)))) (and (<= (uf_72 ?x135 ?x136 ?x137) uf_78) (<= 0 (uf_72 ?x135 ?x136 ?x137)))) :pat { (uf_72 ?x135 ?x136 ?x137) })
-:assumption (forall (?x138 T3) (?x139 Int) (?x140 Int) (?x141 Int) (implies (and (= (uf_74 ?x138 ?x140) uf_9) (and (= (uf_74 ?x138 ?x139) uf_9) (and (< ?x140 (uf_79 ?x141)) (and (< ?x139 (uf_79 ?x141)) (and (< ?x141 64) (and (<= 0 ?x141) (and (<= 0 ?x140) (<= 0 ?x139)))))))) (< (uf_72 ?x138 ?x139 ?x140) (uf_79 ?x141))) :pat { (uf_72 ?x138 ?x139 ?x140) (uf_79 ?x141) })
-:assumption (forall (?x142 T3) (?x143 Int) (?x144 Int) (implies (and (= (uf_74 ?x142 ?x144) uf_9) (and (= (uf_74 ?x142 ?x143) uf_9) (and (<= 0 ?x144) (<= 0 ?x143)))) (and (<= ?x144 (uf_72 ?x142 ?x143 ?x144)) (<= ?x143 (uf_72 ?x142 ?x143 ?x144)))) :pat { (uf_72 ?x142 ?x143 ?x144) })
-:assumption (forall (?x145 T3) (?x146 Int) (?x147 Int) (implies (and (= (uf_74 ?x145 ?x147) uf_9) (and (= (uf_74 ?x145 ?x146) uf_9) (and (<= 0 ?x147) (<= 0 ?x146)))) (and (<= (uf_72 ?x145 ?x146 ?x147) (+ ?x146 ?x147)) (<= 0 (uf_72 ?x145 ?x146 ?x147)))) :pat { (uf_72 ?x145 ?x146 ?x147) })
-:assumption (forall (?x148 T3) (?x149 Int) (?x150 Int) (implies (and (= (uf_74 ?x148 ?x150) uf_9) (and (= (uf_74 ?x148 ?x149) uf_9) (and (<= 0 ?x150) (<= 0 ?x149)))) (and (<= (uf_70 ?x148 ?x149 ?x150) ?x150) (<= (uf_70 ?x148 ?x149 ?x150) ?x149))) :pat { (uf_70 ?x148 ?x149 ?x150) })
-:assumption (forall (?x151 T3) (?x152 Int) (?x153 Int) (implies (and (= (uf_74 ?x151 ?x152) uf_9) (<= 0 ?x152)) (and (<= (uf_70 ?x151 ?x152 ?x153) ?x152) (<= 0 (uf_70 ?x151 ?x152 ?x153)))) :pat { (uf_70 ?x151 ?x152 ?x153) })
-:assumption (forall (?x154 Int) (?x155 Int) (implies (and (< ?x155 0) (<= ?x154 0)) (and (<= (uf_80 ?x154 ?x155) 0) (< ?x155 (uf_80 ?x154 ?x155)))) :pat { (uf_80 ?x154 ?x155) })
-:assumption (forall (?x156 Int) (?x157 Int) (implies (and (< 0 ?x157) (<= ?x156 0)) (and (<= (uf_80 ?x156 ?x157) 0) (< (+ 0 ?x157) (uf_80 ?x156 ?x157)))) :pat { (uf_80 ?x156 ?x157) })
-:assumption (forall (?x158 Int) (?x159 Int) (implies (and (< ?x159 0) (<= 0 ?x158)) (and (< (uf_80 ?x158 ?x159) (+ 0 ?x159)) (<= 0 (uf_80 ?x158 ?x159)))) :pat { (uf_80 ?x158 ?x159) })
-:assumption (forall (?x160 Int) (?x161 Int) (implies (and (< 0 ?x161) (<= 0 ?x160)) (and (< (uf_80 ?x160 ?x161) ?x161) (<= 0 (uf_80 ?x160 ?x161)))) :pat { (uf_80 ?x160 ?x161) })
-:assumption (forall (?x162 Int) (?x163 Int) (= (uf_80 ?x162 ?x163) (+ ?x162 (+ (uf_81 ?x162 ?x163) ?x163))) :pat { (uf_80 ?x162 ?x163) } :pat { (uf_81 ?x162 ?x163) })
-:assumption (forall (?x164 Int) (implies (not (= ?x164 0)) (= (uf_81 ?x164 ?x164) 1)) :pat { (uf_81 ?x164 ?x164) })
-:assumption (forall (?x165 Int) (?x166 Int) (implies (and (< 0 ?x166) (< 0 ?x165)) (and (<= (+ (uf_81 ?x165 ?x166) ?x166) ?x165) (< (+ ?x165 ?x166) (+ (uf_81 ?x165 ?x166) ?x166)))) :pat { (uf_81 ?x165 ?x166) })
-:assumption (forall (?x167 Int) (?x168 Int) (implies (and (< 0 ?x168) (<= 0 ?x167)) (<= (uf_81 ?x167 ?x168) ?x167)) :pat { (uf_81 ?x167 ?x168) })
-:assumption (forall (?x169 T3) (?x170 Int) (?x171 Int) (?x172 Int) (implies (and (<= 0 ?x170) (and (= (uf_74 ?x169 (+ (uf_79 ?x171) 1)) uf_9) (= (uf_74 ?x169 ?x170) uf_9))) (= (uf_80 ?x170 (uf_79 ?x171)) (uf_70 ?x169 ?x170 (+ (uf_79 ?x171) 1)))) :pat { (uf_80 ?x170 (uf_79 ?x171)) (uf_70 ?x169 ?x170 ?x172) })
-:assumption (forall (?x173 Int) (implies (and (<= ?x173 uf_85) (<= uf_86 ?x173)) (= (uf_82 uf_83 (uf_82 uf_84 ?x173)) ?x173)) :pat { (uf_82 uf_83 (uf_82 uf_84 ?x173)) })
-:assumption (forall (?x174 Int) (implies (and (<= ?x174 uf_88) (<= uf_89 ?x174)) (= (uf_82 uf_87 (uf_82 uf_4 ?x174)) ?x174)) :pat { (uf_82 uf_87 (uf_82 uf_4 ?x174)) })
-:assumption (forall (?x175 Int) (implies (and (<= ?x175 uf_92) (<= uf_93 ?x175)) (= (uf_82 uf_90 (uf_82 uf_91 ?x175)) ?x175)) :pat { (uf_82 uf_90 (uf_82 uf_91 ?x175)) })
-:assumption (forall (?x176 Int) (implies (and (<= ?x176 uf_95) (<= uf_96 ?x176)) (= (uf_82 uf_94 (uf_82 uf_7 ?x176)) ?x176)) :pat { (uf_82 uf_94 (uf_82 uf_7 ?x176)) })
-:assumption (forall (?x177 Int) (implies (and (<= ?x177 uf_75) (<= 0 ?x177)) (= (uf_82 uf_84 (uf_82 uf_83 ?x177)) ?x177)) :pat { (uf_82 uf_84 (uf_82 uf_83 ?x177)) })
-:assumption (forall (?x178 Int) (implies (and (<= ?x178 uf_76) (<= 0 ?x178)) (= (uf_82 uf_4 (uf_82 uf_87 ?x178)) ?x178)) :pat { (uf_82 uf_4 (uf_82 uf_87 ?x178)) })
-:assumption (forall (?x179 Int) (implies (and (<= ?x179 uf_77) (<= 0 ?x179)) (= (uf_82 uf_91 (uf_82 uf_90 ?x179)) ?x179)) :pat { (uf_82 uf_91 (uf_82 uf_90 ?x179)) })
-:assumption (forall (?x180 Int) (implies (and (<= ?x180 uf_78) (<= 0 ?x180)) (= (uf_82 uf_7 (uf_82 uf_94 ?x180)) ?x180)) :pat { (uf_82 uf_7 (uf_82 uf_94 ?x180)) })
-:assumption (forall (?x181 T3) (?x182 Int) (= (uf_74 ?x181 (uf_82 ?x181 ?x182)) uf_9) :pat { (uf_82 ?x181 ?x182) })
-:assumption (forall (?x183 T3) (?x184 Int) (implies (= (uf_74 ?x183 ?x184) uf_9) (= (uf_82 ?x183 ?x184) ?x184)) :pat { (uf_82 ?x183 ?x184) })
-:assumption (forall (?x185 Int) (iff (= (uf_74 uf_84 ?x185) uf_9) (and (<= ?x185 uf_75) (<= 0 ?x185))) :pat { (uf_74 uf_84 ?x185) })
-:assumption (forall (?x186 Int) (iff (= (uf_74 uf_4 ?x186) uf_9) (and (<= ?x186 uf_76) (<= 0 ?x186))) :pat { (uf_74 uf_4 ?x186) })
-:assumption (forall (?x187 Int) (iff (= (uf_74 uf_91 ?x187) uf_9) (and (<= ?x187 uf_77) (<= 0 ?x187))) :pat { (uf_74 uf_91 ?x187) })
-:assumption (forall (?x188 Int) (iff (= (uf_74 uf_7 ?x188) uf_9) (and (<= ?x188 uf_78) (<= 0 ?x188))) :pat { (uf_74 uf_7 ?x188) })
-:assumption (forall (?x189 Int) (iff (= (uf_74 uf_83 ?x189) uf_9) (and (<= ?x189 uf_85) (<= uf_86 ?x189))) :pat { (uf_74 uf_83 ?x189) })
-:assumption (forall (?x190 Int) (iff (= (uf_74 uf_87 ?x190) uf_9) (and (<= ?x190 uf_88) (<= uf_89 ?x190))) :pat { (uf_74 uf_87 ?x190) })
-:assumption (forall (?x191 Int) (iff (= (uf_74 uf_90 ?x191) uf_9) (and (<= ?x191 uf_92) (<= uf_93 ?x191))) :pat { (uf_74 uf_90 ?x191) })
-:assumption (forall (?x192 Int) (iff (= (uf_74 uf_94 ?x192) uf_9) (and (<= ?x192 uf_95) (<= uf_96 ?x192))) :pat { (uf_74 uf_94 ?x192) })
-:assumption (forall (?x193 Int) (?x194 Int) (?x195 Int) (?x196 Int) (implies (and (<= (uf_79 (+ (+ ?x194 ?x193) 1)) (uf_80 (uf_81 ?x195 (uf_79 ?x193)) (uf_79 (+ ?x194 ?x193)))) (and (<= 0 ?x195) (and (<= ?x194 ?x196) (and (< ?x193 ?x194) (<= 0 ?x193))))) (= (uf_97 ?x195 ?x196 ?x193 ?x194) (+ (uf_79 (+ (+ ?x194 ?x193) 1)) (uf_80 (uf_81 ?x195 (uf_79 ?x193)) (uf_79 (+ ?x194 ?x193)))))) :pat { (uf_97 ?x195 ?x196 ?x193 ?x194) })
-:assumption (forall (?x197 Int) (?x198 Int) (?x199 Int) (?x200 Int) (implies (and (< (uf_80 (uf_81 ?x199 (uf_79 ?x197)) (uf_79 (+ ?x198 ?x197))) (uf_79 (+ (+ ?x198 ?x197) 1))) (and (<= 0 ?x199) (and (<= ?x198 ?x200) (and (< ?x197 ?x198) (<= 0 ?x197))))) (= (uf_97 ?x199 ?x200 ?x197 ?x198) (uf_80 (uf_81 ?x199 (uf_79 ?x197)) (uf_79 (+ ?x198 ?x197))))) :pat { (uf_97 ?x199 ?x200 ?x197 ?x198) })
-:assumption (forall (?x201 Int) (?x202 Int) (?x203 Int) (?x204 Int) (implies (and (<= 0 ?x203) (and (<= ?x202 ?x204) (and (< ?x201 ?x202) (<= 0 ?x201)))) (= (uf_98 ?x203 ?x204 ?x201 ?x202) (uf_80 (uf_81 ?x203 (uf_79 ?x201)) (uf_79 (+ ?x202 ?x201))))) :pat { (uf_98 ?x203 ?x204 ?x201 ?x202) })
-:assumption (forall (?x205 Int) (?x206 Int) (?x207 Int) (implies (and (<= ?x206 ?x207) (and (< ?x205 ?x206) (<= 0 ?x205))) (= (uf_98 0 ?x207 ?x205 ?x206) 0)) :pat { (uf_98 0 ?x207 ?x205 ?x206) })
-:assumption (forall (?x208 Int) (?x209 Int) (?x210 Int) (implies (and (<= ?x209 ?x210) (and (< ?x208 ?x209) (<= 0 ?x208))) (= (uf_97 0 ?x210 ?x208 ?x209) 0)) :pat { (uf_97 0 ?x210 ?x208 ?x209) })
-:assumption (forall (?x211 Int) (?x212 Int) (?x213 Int) (?x214 Int) (?x215 Int) (?x216 Int) (?x217 Int) (implies (and (<= ?x212 ?x215) (and (< ?x211 ?x212) (<= 0 ?x211))) (implies (and (<= ?x217 ?x215) (and (< ?x216 ?x217) (<= 0 ?x216))) (implies (or (<= ?x212 ?x216) (<= ?x217 ?x211)) (= (uf_98 (uf_99 ?x214 ?x215 ?x211 ?x212 ?x213) ?x215 ?x216 ?x217) (uf_98 ?x214 ?x215 ?x216 ?x217))))) :pat { (uf_98 (uf_99 ?x214 ?x215 ?x211 ?x212 ?x213) ?x215 ?x216 ?x217) })
-:assumption (forall (?x218 Int) (?x219 Int) (?x220 Int) (?x221 Int) (?x222 Int) (?x223 Int) (?x224 Int) (implies (and (<= ?x219 ?x222) (and (< ?x218 ?x219) (<= 0 ?x218))) (implies (and (<= ?x224 ?x222) (and (< ?x223 ?x224) (<= 0 ?x223))) (implies (or (<= ?x219 ?x223) (<= ?x224 ?x218)) (= (uf_97 (uf_99 ?x221 ?x222 ?x218 ?x219 ?x220) ?x222 ?x223 ?x224) (uf_97 ?x221 ?x222 ?x223 ?x224))))) :pat { (uf_97 (uf_99 ?x221 ?x222 ?x218 ?x219 ?x220) ?x222 ?x223 ?x224) })
-:assumption (forall (?x225 Int) (?x226 Int) (?x227 Int) (?x228 Int) (implies (and (<= ?x226 ?x228) (and (< ?x225 ?x226) (<= 0 ?x225))) (and (<= (uf_98 ?x227 ?x228 ?x225 ?x226) (+ (uf_79 (+ ?x226 ?x225)) 1)) (<= 0 (uf_98 ?x227 ?x228 ?x225 ?x226)))) :pat { (uf_98 ?x227 ?x228 ?x225 ?x226) })
-:assumption (forall (?x229 Int) (?x230 Int) (?x231 Int) (?x232 Int) (implies (and (<= ?x230 ?x232) (and (< ?x229 ?x230) (<= 0 ?x229))) (and (<= (uf_97 ?x231 ?x232 ?x229 ?x230) (+ (uf_79 (+ (+ ?x230 ?x229) 1)) 1)) (<= (+ 0 (uf_79 (+ (+ ?x230 ?x229) 1))) (uf_97 ?x231 ?x232 ?x229 ?x230)))) :pat { (uf_97 ?x231 ?x232 ?x229 ?x230) })
-:assumption (forall (?x233 Int) (?x234 Int) (?x235 Int) (?x236 Int) (?x237 Int) (implies (and (<= ?x234 ?x237) (and (< ?x233 ?x234) (<= 0 ?x233))) (implies (and (< ?x235 (uf_79 (+ ?x234 ?x233))) (<= 0 ?x235)) (= (uf_98 (uf_99 ?x236 ?x237 ?x233 ?x234 ?x235) ?x237 ?x233 ?x234) ?x235))) :pat { (uf_98 (uf_99 ?x236 ?x237 ?x233 ?x234 ?x235) ?x237 ?x233 ?x234) })
-:assumption (forall (?x238 Int) (?x239 Int) (?x240 Int) (?x241 Int) (?x242 Int) (implies (and (<= ?x239 ?x242) (and (< ?x238 ?x239) (<= 0 ?x238))) (implies (and (< ?x240 (uf_79 (+ (+ ?x239 ?x238) 1))) (<= (+ 0 (uf_79 (+ (+ ?x239 ?x238) 1))) ?x240)) (= (uf_97 (uf_99 ?x241 ?x242 ?x238 ?x239 ?x240) ?x242 ?x238 ?x239) ?x240))) :pat { (uf_97 (uf_99 ?x241 ?x242 ?x238 ?x239 ?x240) ?x242 ?x238 ?x239) })
-:assumption (forall (?x243 Int) (?x244 Int) (?x245 Int) (implies (and (<= ?x244 ?x245) (and (< ?x243 ?x244) (<= 0 ?x243))) (= (uf_99 0 ?x245 ?x243 ?x244 0) 0)) :pat { (uf_99 0 ?x245 ?x243 ?x244 0) })
-:assumption (forall (?x246 Int) (?x247 Int) (?x248 Int) (?x249 Int) (?x250 Int) (implies (and (<= ?x248 ?x249) (and (< ?x247 ?x248) (<= 0 ?x247))) (implies (and (< ?x250 (uf_79 (+ ?x248 ?x247))) (<= 0 ?x250)) (and (< (uf_99 ?x246 ?x249 ?x247 ?x248 ?x250) (uf_79 ?x249)) (<= 0 (uf_99 ?x246 ?x249 ?x247 ?x248 ?x250))))) :pat { (uf_99 ?x246 ?x249 ?x247 ?x248 ?x250) })
-:assumption (forall (?x251 Int) (?x252 Int) (= (uf_100 ?x251 ?x252) (uf_81 ?x251 (uf_79 ?x252))) :pat { (uf_100 ?x251 ?x252) })
-:assumption (forall (?x253 T3) (?x254 Int) (?x255 Int) (= (uf_101 ?x253 ?x254 ?x255) (uf_82 ?x253 (+ ?x254 (uf_79 ?x255)))) :pat { (uf_101 ?x253 ?x254 ?x255) })
-:assumption (forall (?x256 T3) (?x257 Int) (?x258 Int) (= (uf_102 ?x256 ?x257 ?x258) (uf_82 ?x256 (uf_80 ?x257 ?x258))) :pat { (uf_102 ?x256 ?x257 ?x258) })
-:assumption (forall (?x259 T3) (?x260 Int) (?x261 Int) (= (uf_103 ?x259 ?x260 ?x261) (uf_82 ?x259 (uf_81 ?x260 ?x261))) :pat { (uf_103 ?x259 ?x260 ?x261) })
-:assumption (forall (?x262 T3) (?x263 Int) (?x264 Int) (= (uf_104 ?x262 ?x263 ?x264) (uf_82 ?x262 (+ ?x263 ?x264))) :pat { (uf_104 ?x262 ?x263 ?x264) })
-:assumption (forall (?x265 T3) (?x266 Int) (?x267 Int) (= (uf_105 ?x265 ?x266 ?x267) (uf_82 ?x265 (+ ?x266 ?x267))) :pat { (uf_105 ?x265 ?x266 ?x267) })
-:assumption (forall (?x268 T3) (?x269 Int) (?x270 Int) (= (uf_106 ?x268 ?x269 ?x270) (uf_82 ?x268 (+ ?x269 ?x270))) :pat { (uf_106 ?x268 ?x269 ?x270) })
-:assumption (and (= (uf_79 63) 9223372036854775808) (and (= (uf_79 62) 4611686018427387904) (and (= (uf_79 61) 2305843009213693952) (and (= (uf_79 60) 1152921504606846976) (and (= (uf_79 59) 576460752303423488) (and (= (uf_79 58) 288230376151711744) (and (= (uf_79 57) 144115188075855872) (and (= (uf_79 56) 72057594037927936) (and (= (uf_79 55) 36028797018963968) (and (= (uf_79 54) 18014398509481984) (and (= (uf_79 53) 9007199254740992) (and (= (uf_79 52) 4503599627370496) (and (= (uf_79 51) 2251799813685248) (and (= (uf_79 50) 1125899906842624) (and (= (uf_79 49) 562949953421312) (and (= (uf_79 48) 281474976710656) (and (= (uf_79 47) 140737488355328) (and (= (uf_79 46) 70368744177664) (and (= (uf_79 45) 35184372088832) (and (= (uf_79 44) 17592186044416) (and (= (uf_79 43) 8796093022208) (and (= (uf_79 42) 4398046511104) (and (= (uf_79 41) 2199023255552) (and (= (uf_79 40) 1099511627776) (and (= (uf_79 39) 549755813888) (and (= (uf_79 38) 274877906944) (and (= (uf_79 37) 137438953472) (and (= (uf_79 36) 68719476736) (and (= (uf_79 35) 34359738368) (and (= (uf_79 34) 17179869184) (and (= (uf_79 33) 8589934592) (and (= (uf_79 32) 4294967296) (and (= (uf_79 31) 2147483648) (and (= (uf_79 30) 1073741824) (and (= (uf_79 29) 536870912) (and (= (uf_79 28) 268435456) (and (= (uf_79 27) 134217728) (and (= (uf_79 26) 67108864) (and (= (uf_79 25) 33554432) (and (= (uf_79 24) 16777216) (and (= (uf_79 23) 8388608) (and (= (uf_79 22) 4194304) (and (= (uf_79 21) 2097152) (and (= (uf_79 20) 1048576) (and (= (uf_79 19) 524288) (and (= (uf_79 18) 262144) (and (= (uf_79 17) 131072) (and (= (uf_79 16) 65536) (and (= (uf_79 15) 32768) (and (= (uf_79 14) 16384) (and (= (uf_79 13) 8192) (and (= (uf_79 12) 4096) (and (= (uf_79 11) 2048) (and (= (uf_79 10) 1024) (and (= (uf_79 9) 512) (and (= (uf_79 8) 256) (and (= (uf_79 7) 128) (and (= (uf_79 6) 64) (and (= (uf_79 5) 32) (and (= (uf_79 4) 16) (and (= (uf_79 3) 8) (and (= (uf_79 2) 4) (and (= (uf_79 1) 2) (= (uf_79 0) 1))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-:assumption (forall (?x271 T4) (?x272 T5) (implies (= (uf_51 ?x271) uf_9) (and (<= (uf_107 ?x271 ?x272) uf_75) (<= 0 (uf_107 ?x271 ?x272)))) :pat { (uf_107 ?x271 ?x272) })
-:assumption (forall (?x273 T4) (?x274 T5) (implies (= (uf_51 ?x273) uf_9) (and (<= (uf_108 ?x273 ?x274) uf_76) (<= 0 (uf_108 ?x273 ?x274)))) :pat { (uf_108 ?x273 ?x274) })
-:assumption (forall (?x275 T4) (?x276 T5) (implies (= (uf_51 ?x275) uf_9) (and (<= (uf_109 ?x275 ?x276) uf_77) (<= 0 (uf_109 ?x275 ?x276)))) :pat { (uf_109 ?x275 ?x276) })
-:assumption (forall (?x277 T4) (?x278 T5) (implies (= (uf_51 ?x277) uf_9) (and (<= (uf_110 ?x277 ?x278) uf_78) (<= 0 (uf_110 ?x277 ?x278)))) :pat { (uf_110 ?x277 ?x278) })
-:assumption (forall (?x279 T4) (?x280 T5) (implies (= (uf_51 ?x279) uf_9) (and (<= (uf_111 ?x279 ?x280) uf_85) (<= uf_86 (uf_111 ?x279 ?x280)))) :pat { (uf_111 ?x279 ?x280) })
-:assumption (forall (?x281 T4) (?x282 T5) (implies (= (uf_51 ?x281) uf_9) (and (<= (uf_112 ?x281 ?x282) uf_88) (<= uf_89 (uf_112 ?x281 ?x282)))) :pat { (uf_112 ?x281 ?x282) })
-:assumption (forall (?x283 T4) (?x284 T5) (implies (= (uf_51 ?x283) uf_9) (and (<= (uf_113 ?x283 ?x284) uf_92) (<= uf_93 (uf_113 ?x283 ?x284)))) :pat { (uf_113 ?x283 ?x284) })
-:assumption (forall (?x285 T4) (?x286 T5) (implies (= (uf_51 ?x285) uf_9) (and (<= (uf_114 ?x285 ?x286) uf_95) (<= uf_96 (uf_114 ?x285 ?x286)))) :pat { (uf_114 ?x285 ?x286) })
-:assumption (forall (?x287 T5) (?x288 T5) (= (uf_115 ?x287 ?x288) (+ (uf_116 ?x287) (uf_116 ?x288))) :pat { (uf_115 ?x287 ?x288) })
-:assumption (forall (?x289 T5) (implies (and (<= (uf_116 ?x289) uf_88) (<= uf_89 (uf_116 ?x289))) (= (uf_117 ?x289) (uf_116 ?x289))) :pat { (uf_117 ?x289) })
-:assumption (forall (?x290 T5) (implies (and (<= (uf_116 ?x290) uf_76) (<= 0 (uf_116 ?x290))) (= (uf_118 ?x290) (uf_116 ?x290))) :pat { (uf_118 ?x290) })
-:assumption (forall (?x291 T5) (implies (and (<= (uf_116 ?x291) uf_85) (<= uf_86 (uf_116 ?x291))) (= (uf_119 ?x291) (uf_116 ?x291))) :pat { (uf_119 ?x291) })
-:assumption (forall (?x292 T5) (implies (and (<= (uf_116 ?x292) uf_75) (<= 0 (uf_116 ?x292))) (= (uf_120 ?x292) (uf_116 ?x292))) :pat { (uf_120 ?x292) })
-:assumption (= (uf_117 uf_121) 0)
-:assumption (= (uf_118 uf_121) 0)
-:assumption (= (uf_119 uf_121) 0)
-:assumption (= (uf_120 uf_121) 0)
-:assumption (forall (?x293 T4) (?x294 T5) (= (uf_107 ?x293 ?x294) (uf_19 (uf_20 ?x293) ?x294)) :pat { (uf_107 ?x293 ?x294) })
-:assumption (forall (?x295 T4) (?x296 T5) (= (uf_108 ?x295 ?x296) (uf_19 (uf_20 ?x295) ?x296)) :pat { (uf_108 ?x295 ?x296) })
-:assumption (forall (?x297 T4) (?x298 T5) (= (uf_109 ?x297 ?x298) (uf_19 (uf_20 ?x297) ?x298)) :pat { (uf_109 ?x297 ?x298) })
-:assumption (forall (?x299 T4) (?x300 T5) (= (uf_110 ?x299 ?x300) (uf_19 (uf_20 ?x299) ?x300)) :pat { (uf_110 ?x299 ?x300) })
-:assumption (forall (?x301 T4) (?x302 T5) (= (uf_111 ?x301 ?x302) (uf_19 (uf_20 ?x301) ?x302)) :pat { (uf_111 ?x301 ?x302) })
-:assumption (forall (?x303 T4) (?x304 T5) (= (uf_112 ?x303 ?x304) (uf_19 (uf_20 ?x303) ?x304)) :pat { (uf_112 ?x303 ?x304) })
-:assumption (forall (?x305 T4) (?x306 T5) (= (uf_113 ?x305 ?x306) (uf_19 (uf_20 ?x305) ?x306)) :pat { (uf_113 ?x305 ?x306) })
-:assumption (forall (?x307 T4) (?x308 T5) (= (uf_114 ?x307 ?x308) (uf_19 (uf_20 ?x307) ?x308)) :pat { (uf_114 ?x307 ?x308) })
-:assumption (= uf_75 (+ (+ (+ (+ 65536 65536) 65536) 65536) 1))
-:assumption (= uf_76 (+ (+ 65536 65536) 1))
-:assumption (= uf_77 65535)
-:assumption (= uf_78 255)
-:assumption (= uf_85 (+ (+ (+ (+ 65536 65536) 65536) 32768) 1))
-:assumption (= uf_86 (+ 0 (+ (+ (+ 65536 65536) 65536) 32768)))
-:assumption (= uf_88 (+ (+ 65536 32768) 1))
-:assumption (= uf_89 (+ 0 (+ 65536 32768)))
-:assumption (= uf_92 32767)
-:assumption (= uf_93 (+ 0 32768))
-:assumption (= uf_95 127)
-:assumption (= uf_96 (+ 0 128))
-:assumption (forall (?x309 T2) (iff (= (uf_122 ?x309) uf_9) (= ?x309 uf_9)) :pat { (uf_122 ?x309) })
-:assumption (forall (?x310 T4) (?x311 T4) (?x312 T5) (?x313 T3) (?x314 Int) (implies (= (uf_23 ?x313) uf_9) (implies (= (uf_123 ?x310 ?x311 ?x312 (uf_124 ?x313 ?x314)) uf_9) (forall (?x315 Int) (implies (and (< ?x315 ?x314) (<= 0 ?x315)) (= (uf_19 (uf_20 ?x310) (uf_66 (uf_43 ?x313 (uf_116 ?x312)) ?x315 ?x313)) (uf_19 (uf_20 ?x311) (uf_66 (uf_43 ?x313 (uf_116 ?x312)) ?x315 ?x313)))) :pat { (uf_19 (uf_20 ?x311) (uf_66 (uf_43 ?x313 (uf_116 ?x312)) ?x315 ?x313)) }))) :pat { (uf_123 ?x310 ?x311 ?x312 (uf_124 ?x313 ?x314)) (uf_23 ?x313) })
-:assumption (forall (?x316 T5) (?x317 Int) (?x318 T15) (= (uf_125 (uf_126 (uf_66 ?x316 ?x317 (uf_15 ?x316)) ?x318) ?x316) ?x317) :pat { (uf_125 (uf_126 (uf_66 ?x316 ?x317 (uf_15 ?x316)) ?x318) ?x316) })
-:assumption (forall (?x319 T5) (?x320 Int) (= (uf_125 (uf_66 ?x319 ?x320 (uf_15 ?x319)) ?x319) ?x320) :pat { (uf_66 ?x319 ?x320 (uf_15 ?x319)) })
-:assumption (forall (?x321 T5) (?x322 T4) (?x323 T5) (iff (= (uf_13 ?x321 (uf_127 ?x322 ?x323)) uf_9) (and (= (uf_13 ?x321 (uf_128 ?x322 ?x323)) uf_9) (not (= (uf_116 ?x323) (uf_116 uf_121))))) :pat { (uf_13 ?x321 (uf_127 ?x322 ?x323)) })
-:assumption (forall (?x324 T5) (?x325 Int) (?x326 T3) (?x327 Int) (iff (= (uf_13 ?x324 (uf_129 (uf_43 ?x326 ?x325) ?x326 ?x327)) uf_9) (and (= (uf_13 ?x324 (uf_130 (uf_66 (uf_43 ?x326 ?x325) (uf_125 ?x324 (uf_43 ?x326 ?x325)) ?x326))) uf_9) (and (<= (uf_125 ?x324 (uf_43 ?x326 ?x325)) (+ ?x327 1)) (and (<= 0 (uf_125 ?x324 (uf_43 ?x326 ?x325))) (not (= ?x325 0)))))) :pat { (uf_13 ?x324 (uf_129 (uf_43 ?x326 ?x325) ?x326 ?x327)) })
-:assumption (forall (?x328 T5) (?x329 T3) (?x330 Int) (?x331 Int) (?x332 T6) (implies (and (< ?x331 ?x330) (<= 0 ?x331)) (= (uf_133 (uf_66 ?x328 ?x331 ?x329) ?x332 (uf_132 ?x328 ?x329 ?x330)) 2)) :pat { (uf_66 ?x328 ?x331 ?x329) (uf_131 ?x332 (uf_132 ?x328 ?x329 ?x330)) })
-:assumption (forall (?x333 T5) (?x334 T3) (?x335 Int) (?x336 Int) (?x337 T6) (implies (and (< ?x336 ?x335) (<= 0 ?x336)) (= (uf_133 (uf_66 ?x333 ?x336 ?x334) (uf_132 ?x333 ?x334 ?x335) ?x337) 1)) :pat { (uf_66 ?x333 ?x336 ?x334) (uf_131 (uf_132 ?x333 ?x334 ?x335) ?x337) })
-:assumption (forall (?x338 T5) (?x339 Int) (?x340 T3) (?x341 Int) (iff (= (uf_13 ?x338 (uf_132 (uf_43 ?x340 ?x339) ?x340 ?x341)) uf_9) (and (= (uf_13 ?x338 (uf_130 (uf_66 (uf_43 ?x340 ?x339) (uf_125 ?x338 (uf_43 ?x340 ?x339)) ?x340))) uf_9) (and (<= (uf_125 ?x338 (uf_43 ?x340 ?x339)) (+ ?x341 1)) (<= 0 (uf_125 ?x338 (uf_43 ?x340 ?x339)))))) :pat { (uf_13 ?x338 (uf_132 (uf_43 ?x340 ?x339) ?x340 ?x341)) })
-:assumption (forall (?x342 T5) (?x343 T3) (?x344 Int) (?x345 T5) (iff (= (uf_13 ?x345 (uf_134 ?x342 ?x343 ?x344)) uf_9) (and (= ?x345 (uf_66 ?x342 (uf_125 ?x345 ?x342) ?x343)) (and (<= (uf_125 ?x345 ?x342) (+ ?x344 1)) (<= 0 (uf_125 ?x345 ?x342))))) :pat { (uf_13 ?x345 (uf_134 ?x342 ?x343 ?x344)) })
-:assumption (forall (?x346 T4) (?x347 Int) (?x348 T3) (?x349 Int) (?x350 Int) (implies (= (uf_27 ?x346 (uf_43 (uf_124 ?x348 ?x349) ?x347)) uf_9) (implies (and (< ?x350 ?x349) (<= 0 ?x350)) (and (= (uf_27 ?x346 (uf_66 (uf_43 (uf_124 ?x348 ?x349) ?x347) ?x350 ?x348)) uf_9) (and (up_68 (uf_58 (uf_59 ?x346) (uf_66 (uf_43 (uf_124 ?x348 ?x349) ?x347) ?x350 ?x348))) (and (not (= (uf_135 (uf_58 (uf_59 ?x346) (uf_66 (uf_43 (uf_124 ?x348 ?x349) ?x347) ?x350 ?x348))) uf_9)) (= (uf_136 (uf_58 (uf_59 ?x346) (uf_66 (uf_43 (uf_124 ?x348 ?x349) ?x347) ?x350 ?x348))) (uf_43 (uf_124 ?x348 ?x349) ?x347))))))) :pat { (uf_40 (uf_41 ?x346) (uf_66 (uf_43 ?x348 ?x347) ?x350 ?x348)) (uf_43 (uf_124 ?x348 ?x349) ?x347) } :pat { (uf_58 (uf_59 ?x346) (uf_66 (uf_43 ?x348 ?x347) ?x350 ?x348)) (uf_43 (uf_124 ?x348 ?x349) ?x347) })
-:assumption (forall (?x351 T4) (?x352 T5) (?x353 Int) (?x354 T3) (?x355 Int) (iff (= (uf_13 ?x352 (uf_128 ?x351 (uf_43 (uf_124 ?x354 ?x355) ?x353))) uf_9) (or (and (= (uf_13 ?x352 (uf_128 ?x351 (uf_66 (uf_43 ?x354 ?x353) (uf_125 ?x352 (uf_43 ?x354 ?x353)) ?x354))) uf_9) (and (<= (uf_125 ?x352 (uf_43 ?x354 ?x353)) (+ ?x355 1)) (<= 0 (uf_125 ?x352 (uf_43 ?x354 ?x353))))) (= ?x352 (uf_43 (uf_124 ?x354 ?x355) ?x353)))) :pat { (uf_13 ?x352 (uf_128 ?x351 (uf_43 (uf_124 ?x354 ?x355) ?x353))) })
-:assumption (forall (?x356 T5) (?x357 Int) (?x358 T3) (?x359 Int) (iff (= (uf_13 ?x356 (uf_130 (uf_43 (uf_124 ?x358 ?x359) ?x357))) uf_9) (or (and (= (uf_13 ?x356 (uf_130 (uf_66 (uf_43 ?x358 ?x357) (uf_125 ?x356 (uf_43 ?x358 ?x357)) ?x358))) uf_9) (and (<= (uf_125 ?x356 (uf_43 ?x358 ?x357)) (+ ?x359 1)) (<= 0 (uf_125 ?x356 (uf_43 ?x358 ?x357))))) (= ?x356 (uf_43 (uf_124 ?x358 ?x359) ?x357)))) :pat { (uf_13 ?x356 (uf_130 (uf_43 (uf_124 ?x358 ?x359) ?x357))) })
-:assumption (forall (?x360 T4) (?x361 T5) (?x362 T3) (?x363 Int) (iff (= (uf_65 ?x360 ?x361 ?x362 ?x363) uf_9) (and (forall (?x364 Int) (implies (and (< ?x364 ?x363) (<= 0 ?x364)) (and (= (uf_27 ?x360 (uf_66 ?x361 ?x364 ?x362)) uf_9) (up_68 (uf_58 (uf_59 ?x360) (uf_66 ?x361 ?x364 ?x362))))) :pat { (uf_40 (uf_41 ?x360) (uf_66 ?x361 ?x364 ?x362)) } :pat { (uf_58 (uf_59 ?x360) (uf_66 ?x361 ?x364 ?x362)) } :pat { (uf_19 (uf_20 ?x360) (uf_66 ?x361 ?x364 ?x362)) }) (= (uf_48 ?x361 ?x362) uf_9))) :pat { (uf_65 ?x360 ?x361 ?x362 ?x363) })
-:assumption (forall (?x365 T4) (?x366 T5) (?x367 T3) (?x368 Int) (?x369 T2) (iff (= (uf_137 ?x365 ?x366 ?x367 ?x368 ?x369) uf_9) (and (forall (?x370 Int) (implies (and (< ?x370 ?x368) (<= 0 ?x370)) (and (= (uf_27 ?x365 (uf_66 ?x366 ?x370 ?x367)) uf_9) (and (up_68 (uf_58 (uf_59 ?x365) (uf_66 ?x366 ?x370 ?x367))) (iff (= (uf_135 (uf_58 (uf_59 ?x365) (uf_66 ?x366 ?x370 ?x367))) uf_9) (= ?x369 uf_9))))) :pat { (uf_40 (uf_41 ?x365) (uf_66 ?x366 ?x370 ?x367)) } :pat { (uf_58 (uf_59 ?x365) (uf_66 ?x366 ?x370 ?x367)) } :pat { (uf_19 (uf_20 ?x365) (uf_66 ?x366 ?x370 ?x367)) }) (= (uf_48 ?x366 ?x367) uf_9))) :pat { (uf_137 ?x365 ?x366 ?x367 ?x368 ?x369) })
-:assumption (forall (?x371 T5) (?x372 Int) (?x373 Int) (?x374 T3) (implies (and (not (= ?x373 0)) (not (= ?x372 0))) (= (uf_66 (uf_66 ?x371 ?x372 ?x374) ?x373 ?x374) (uf_66 ?x371 (+ ?x372 ?x373) ?x374))) :pat { (uf_66 (uf_66 ?x371 ?x372 ?x374) ?x373 ?x374) })
-:assumption (forall (?x375 T5) (?x376 Int) (?x377 T3) (and (= (uf_66 ?x375 ?x376 ?x377) (uf_43 ?x377 (+ (uf_116 ?x375) (+ ?x376 (uf_138 ?x377))))) (= (uf_139 (uf_66 ?x375 ?x376 ?x377) ?x375) uf_9)) :pat { (uf_66 ?x375 ?x376 ?x377) })
-:assumption (forall (?x378 T5) (?x379 T3) (= (uf_140 ?x378 ?x379) ?x378) :pat { (uf_140 ?x378 ?x379) })
-:assumption (forall (?x380 T3) (?x381 Int) (not (up_36 (uf_124 ?x380 ?x381))) :pat { (uf_124 ?x380 ?x381) })
-:assumption (forall (?x382 T3) (?x383 Int) (= (uf_141 (uf_124 ?x382 ?x383)) uf_9) :pat { (uf_124 ?x382 ?x383) })
-:assumption (forall (?x384 T3) (?x385 Int) (= (uf_142 (uf_124 ?x384 ?x385)) 0) :pat { (uf_124 ?x384 ?x385) })
-:assumption (forall (?x386 T3) (?x387 Int) (= (uf_143 (uf_124 ?x386 ?x387)) ?x387) :pat { (uf_124 ?x386 ?x387) })
-:assumption (forall (?x388 T3) (?x389 Int) (= (uf_144 (uf_124 ?x388 ?x389)) ?x388) :pat { (uf_124 ?x388 ?x389) })
-:assumption (forall (?x390 T5) (?x391 T6) (iff (= (uf_13 ?x390 ?x391) uf_9) (= (uf_145 ?x390 ?x391) uf_9)) :pat { (uf_145 ?x390 ?x391) })
-:assumption (forall (?x392 T5) (?x393 T6) (iff (= (uf_13 ?x392 ?x393) uf_9) (up_146 ?x392 ?x393)) :pat { (uf_13 ?x392 ?x393) })
-:assumption (forall (?x394 T5) (?x395 T6) (iff (= (uf_13 ?x394 ?x395) uf_9) (= (uf_147 ?x394 ?x395) uf_9)) :pat { (uf_13 ?x394 ?x395) })
-:assumption (forall (?x396 T5) (?x397 T4) (?x398 T5) (iff (= (uf_13 ?x396 (uf_53 ?x397 ?x398)) uf_9) (= (uf_147 ?x396 (uf_53 ?x397 ?x398)) uf_9)) :pat { (uf_147 ?x396 (uf_53 ?x397 ?x398)) (uf_148 ?x396) })
-:assumption (forall (?x399 T5) (?x400 T4) (?x401 T5) (implies (= (uf_13 ?x399 (uf_53 ?x400 ?x401)) uf_9) (= (uf_148 ?x399) uf_9)) :pat { (uf_13 ?x399 (uf_53 ?x400 ?x401)) })
-:assumption (forall (?x402 T6) (?x403 T6) (implies (forall (?x404 T5) (and (implies (= (uf_13 ?x404 ?x403) uf_9) (not (= (uf_13 ?x404 ?x402) uf_9))) (implies (= (uf_13 ?x404 ?x402) uf_9) (not (= (uf_13 ?x404 ?x403) uf_9)))) :pat { (uf_18 ?x404) }) (= (uf_131 ?x402 ?x403) uf_9)) :pat { (uf_131 ?x402 ?x403) })
-:assumption (forall (?x405 T5) (?x406 T6) (?x407 T6) (implies (and (= (uf_13 ?x405 ?x407) uf_9) (= (uf_131 ?x406 ?x407) uf_9)) (= (uf_133 ?x405 ?x406 ?x407) 2)) :pat { (uf_131 ?x406 ?x407) (uf_13 ?x405 ?x407) })
-:assumption (forall (?x408 T5) (?x409 T6) (?x410 T6) (implies (and (= (uf_13 ?x408 ?x409) uf_9) (= (uf_131 ?x409 ?x410) uf_9)) (= (uf_133 ?x408 ?x409 ?x410) 1)) :pat { (uf_131 ?x409 ?x410) (uf_13 ?x408 ?x409) })
-:assumption (forall (?x411 T5) (= (uf_13 ?x411 uf_149) uf_9) :pat { (uf_13 ?x411 uf_149) })
-:assumption (forall (?x412 T5) (= (uf_150 (uf_151 ?x412)) 1))
-:assumption (= (uf_150 uf_152) 0)
-:assumption (forall (?x413 T6) (?x414 T6) (implies (= (uf_153 ?x413 ?x414) uf_9) (= ?x413 ?x414)) :pat { (uf_153 ?x413 ?x414) })
-:assumption (forall (?x415 T6) (?x416 T6) (implies (forall (?x417 T5) (iff (= (uf_13 ?x417 ?x415) uf_9) (= (uf_13 ?x417 ?x416) uf_9)) :pat { (uf_18 ?x417) }) (= (uf_153 ?x415 ?x416) uf_9)) :pat { (uf_153 ?x415 ?x416) })
-:assumption (forall (?x418 T6) (?x419 T6) (iff (= (uf_154 ?x418 ?x419) uf_9) (forall (?x420 T5) (implies (= (uf_13 ?x420 ?x418) uf_9) (= (uf_13 ?x420 ?x419) uf_9)) :pat { (uf_13 ?x420 ?x418) } :pat { (uf_13 ?x420 ?x419) })) :pat { (uf_154 ?x418 ?x419) })
-:assumption (forall (?x421 T6) (?x422 T6) (?x423 T5) (iff (= (uf_13 ?x423 (uf_155 ?x421 ?x422)) uf_9) (and (= (uf_13 ?x423 ?x422) uf_9) (= (uf_13 ?x423 ?x421) uf_9))) :pat { (uf_13 ?x423 (uf_155 ?x421 ?x422)) })
-:assumption (forall (?x424 T6) (?x425 T6) (?x426 T5) (iff (= (uf_13 ?x426 (uf_156 ?x424 ?x425)) uf_9) (and (not (= (uf_13 ?x426 ?x425) uf_9)) (= (uf_13 ?x426 ?x424) uf_9))) :pat { (uf_13 ?x426 (uf_156 ?x424 ?x425)) })
-:assumption (forall (?x427 T6) (?x428 T6) (?x429 T5) (iff (= (uf_13 ?x429 (uf_157 ?x427 ?x428)) uf_9) (or (= (uf_13 ?x429 ?x428) uf_9) (= (uf_13 ?x429 ?x427) uf_9))) :pat { (uf_13 ?x429 (uf_157 ?x427 ?x428)) })
-:assumption (forall (?x430 T5) (?x431 T5) (iff (= (uf_13 ?x431 (uf_158 ?x430)) uf_9) (and (not (= (uf_116 ?x430) (uf_116 uf_121))) (= ?x430 ?x431))) :pat { (uf_13 ?x431 (uf_158 ?x430)) })
-:assumption (forall (?x432 T5) (?x433 T5) (iff (= (uf_13 ?x433 (uf_151 ?x432)) uf_9) (= ?x432 ?x433)) :pat { (uf_13 ?x433 (uf_151 ?x432)) })
-:assumption (forall (?x434 T5) (not (= (uf_13 ?x434 uf_152) uf_9)) :pat { (uf_13 ?x434 uf_152) })
-:assumption (forall (?x435 T5) (?x436 T5) (= (uf_159 ?x435 ?x436) (uf_43 (uf_124 (uf_144 (uf_15 ?x435)) (+ (uf_143 (uf_15 ?x435)) (uf_143 (uf_15 ?x436)))) (uf_116 ?x435))) :pat { (uf_159 ?x435 ?x436) })
-:assumption (forall (?x437 T5) (?x438 Int) (= (uf_160 ?x437 ?x438) (uf_43 (uf_124 (uf_144 (uf_15 ?x437)) (+ (uf_143 (uf_15 ?x437)) ?x438)) (uf_116 (uf_66 (uf_43 (uf_144 (uf_15 ?x437)) (uf_116 ?x437)) ?x438 (uf_144 (uf_15 ?x437)))))) :pat { (uf_160 ?x437 ?x438) })
-:assumption (forall (?x439 T5) (?x440 Int) (= (uf_161 ?x439 ?x440) (uf_43 (uf_124 (uf_144 (uf_15 ?x439)) ?x440) (uf_116 ?x439))) :pat { (uf_161 ?x439 ?x440) })
-:assumption (forall (?x441 T4) (?x442 T5) (?x443 T5) (iff (= (uf_13 ?x442 (uf_162 ?x441 ?x443)) uf_9) (or (and (= (uf_13 ?x442 (uf_163 ?x443)) uf_9) (= (uf_135 (uf_58 (uf_59 ?x441) ?x442)) uf_9)) (= ?x442 ?x443))) :pat { (uf_13 ?x442 (uf_162 ?x441 ?x443)) })
-:assumption (forall (?x444 T4) (implies (= (uf_164 ?x444) uf_9) (up_165 ?x444)) :pat { (uf_164 ?x444) })
-:assumption (= (uf_142 uf_166) 0)
-:assumption (= uf_167 (uf_43 uf_166 uf_168))
-:assumption (forall (?x445 T4) (?x446 T4) (?x447 T5) (?x448 T5) (and true (and (= (uf_170 (uf_169 ?x445 ?x446 ?x447 ?x448) ?x448) (uf_171 ?x445)) (and (= (uf_38 (uf_169 ?x445 ?x446 ?x447 ?x448) ?x448) (uf_38 ?x446 ?x448)) (and (= (uf_25 (uf_169 ?x445 ?x446 ?x447 ?x448) ?x448) uf_26) (and (= (uf_24 (uf_169 ?x445 ?x446 ?x447 ?x448) ?x448) uf_9) (= (uf_41 (uf_169 ?x445 ?x446 ?x447 ?x448)) (uf_172 (uf_41 ?x446) ?x448 (uf_173 ?x446 ?x447 ?x448)))))))) :pat { (uf_169 ?x445 ?x446 ?x447 ?x448) })
-:assumption (forall (?x449 T4) (?x450 T5) (?x451 T5) (implies (not (= (uf_14 (uf_15 ?x450)) uf_16)) (and true (and (= (uf_38 (uf_174 ?x449 ?x450 ?x451) ?x451) (uf_38 ?x449 ?x451)) (and (= (uf_25 (uf_174 ?x449 ?x450 ?x451) ?x451) ?x450) (and (= (uf_24 (uf_174 ?x449 ?x450 ?x451) ?x451) uf_9) (= (uf_41 (uf_174 ?x449 ?x450 ?x451)) (uf_172 (uf_41 ?x449) ?x451 (uf_175 ?x449 ?x450 ?x451)))))))) :pat { (uf_174 ?x449 ?x450 ?x451) })
-:assumption (forall (?x452 T4) (?x453 T5) (?x454 Int) (and (= (uf_177 ?x452 (uf_176 ?x452 ?x453 ?x454)) uf_9) (and (forall (?x455 T5) (<= (uf_170 ?x452 ?x455) (uf_170 (uf_176 ?x452 ?x455 ?x454) ?x455)) :pat { (uf_170 (uf_176 ?x452 ?x455 ?x454) ?x455) }) (and (< (uf_171 ?x452) (uf_171 (uf_176 ?x452 ?x453 ?x454))) (and (= (uf_20 (uf_176 ?x452 ?x453 ?x454)) (uf_178 (uf_20 ?x452) ?x453 ?x454)) (and (= (uf_41 (uf_176 ?x452 ?x453 ?x454)) (uf_41 ?x452)) (= (uf_59 (uf_176 ?x452 ?x453 ?x454)) (uf_59 ?x452))))))) :pat { (uf_176 ?x452 ?x453 ?x454) })
-:assumption (forall (?x456 T4) (implies (= (uf_51 ?x456) uf_9) (forall (?x457 T5) (?x458 T5) (implies (and (= (uf_24 ?x456 ?x458) uf_9) (and (= (uf_13 ?x457 (uf_53 ?x456 ?x458)) uf_9) (= (uf_51 ?x456) uf_9))) (and (not (= (uf_116 ?x457) 0)) (= (uf_24 ?x456 ?x457) uf_9))) :pat { (uf_13 ?x457 (uf_53 ?x456 ?x458)) })) :pat { (uf_51 ?x456) })
-:assumption (forall (?x459 T4) (?x460 T5) (?x461 T3) (implies (and (= (uf_24 ?x459 ?x460) uf_9) (= (uf_44 ?x459) uf_9)) (= (uf_46 ?x459 ?x459 ?x460 ?x461) uf_9)) :pat { (uf_46 ?x459 ?x459 ?x460 ?x461) })
-:assumption (forall (?x462 T4) (?x463 Int) (?x464 T3) (implies (= (uf_51 ?x462) uf_9) (implies (= (uf_141 ?x464) uf_9) (= (uf_53 ?x462 (uf_43 ?x464 ?x463)) uf_152))) :pat { (uf_53 ?x462 (uf_43 ?x464 ?x463)) (uf_141 ?x464) })
-:assumption (forall (?x465 T4) (?x466 T4) (?x467 T5) (?x468 T3) (implies (and (= (uf_15 ?x467) ?x468) (= (uf_141 ?x468) uf_9)) (and (= (uf_179 ?x465 ?x466 ?x467 ?x468) uf_9) (iff (= (uf_46 ?x465 ?x466 ?x467 ?x468) uf_9) (= (uf_27 ?x466 ?x467) uf_9)))) :pat { (uf_141 ?x468) (uf_46 ?x465 ?x466 ?x467 ?x468) })
-:assumption (forall (?x469 T4) (?x470 T5) (?x471 T5) (implies (and (= (uf_22 (uf_15 ?x470)) uf_9) (and (= (uf_24 ?x469 ?x471) uf_9) (= (uf_51 ?x469) uf_9))) (iff (= (uf_13 ?x470 (uf_53 ?x469 ?x471)) uf_9) (= (uf_25 ?x469 ?x470) ?x471))) :pat { (uf_13 ?x470 (uf_53 ?x469 ?x471)) (uf_22 (uf_15 ?x470)) })
-:assumption (forall (?x472 T4) (?x473 T4) (?x474 Int) (?x475 T3) (?x476 T15) (up_182 (uf_19 (uf_20 ?x473) (uf_126 (uf_43 ?x475 ?x474) ?x476))) :pat { (uf_180 ?x475 ?x476) (uf_181 ?x472 ?x473) (uf_19 (uf_20 ?x472) (uf_126 (uf_43 ?x475 ?x474) ?x476)) })
-:assumption (forall (?x477 T4) (?x478 Int) (?x479 T3) (?x480 T15) (implies (and (= (uf_25 ?x477 (uf_43 ?x479 ?x478)) uf_26) (and (= (uf_180 ?x479 ?x480) uf_9) (and (= (uf_24 ?x477 (uf_43 ?x479 ?x478)) uf_9) (= (uf_55 ?x477) uf_9)))) (= (uf_19 (uf_20 ?x477) (uf_126 (uf_43 ?x479 ?x478) ?x480)) (uf_183 (uf_184 ?x477 (uf_43 ?x479 ?x478)) (uf_126 (uf_43 ?x479 ?x478) ?x480)))) :pat { (uf_180 ?x479 ?x480) (uf_19 (uf_20 ?x477) (uf_126 (uf_43 ?x479 ?x478) ?x480)) })
-:assumption (forall (?x481 T4) (?x482 Int) (?x483 T3) (?x484 T15) (?x485 T15) (implies (and (or (= (uf_28 (uf_183 (uf_184 ?x481 (uf_43 ?x483 ?x482)) (uf_126 (uf_43 ?x483 ?x482) ?x484))) uf_26) (= (uf_28 (uf_19 (uf_20 ?x481) (uf_126 (uf_43 ?x483 ?x482) ?x484))) uf_26)) (and (= (uf_24 ?x481 (uf_43 ?x483 ?x482)) uf_9) (and (= (uf_185 ?x483 ?x484 ?x485) uf_9) (= (uf_55 ?x481) uf_9)))) (= (uf_19 (uf_20 ?x481) (uf_126 (uf_43 ?x483 ?x482) ?x485)) (uf_183 (uf_184 ?x481 (uf_43 ?x483 ?x482)) (uf_126 (uf_43 ?x483 ?x482) ?x485)))) :pat { (uf_185 ?x483 ?x484 ?x485) (uf_19 (uf_20 ?x481) (uf_126 (uf_43 ?x483 ?x482) ?x485)) })
-:assumption (forall (?x486 T4) (?x487 T5) (= (uf_184 ?x486 ?x487) (uf_30 (uf_19 (uf_20 ?x486) ?x487))) :pat { (uf_184 ?x486 ?x487) })
-:assumption (forall (?x488 T4) (?x489 T5) (?x490 T5) (?x491 T15) (?x492 Int) (?x493 Int) (?x494 T3) (implies (and (< ?x492 ?x493) (and (<= 0 ?x492) (and (= (uf_187 ?x491 ?x493) uf_9) (and (= (uf_186 ?x489 ?x490) uf_9) (and (= (uf_24 ?x488 ?x490) uf_9) (= (uf_51 ?x488) uf_9)))))) (= (uf_19 (uf_20 ?x488) (uf_66 (uf_126 ?x489 ?x491) ?x492 ?x494)) (uf_11 (uf_189 ?x490) (uf_66 (uf_126 ?x489 ?x491) ?x492 ?x494)))) :pat { (uf_49 ?x488 ?x490) (uf_186 ?x489 ?x490) (uf_19 (uf_20 ?x488) (uf_66 (uf_126 ?x489 ?x491) ?x492 ?x494)) (uf_187 ?x491 ?x493) } :pat { (uf_188 ?x488 ?x490 ?x489 (uf_66 (uf_126 ?x489 ?x491) ?x492 ?x494)) (uf_187 ?x491 ?x493) })
-:assumption (forall (?x495 T4) (?x496 T5) (?x497 T5) (?x498 T15) (implies (and (= (uf_190 ?x498) uf_9) (and (= (uf_186 ?x496 ?x497) uf_9) (and (= (uf_24 ?x495 ?x497) uf_9) (= (uf_51 ?x495) uf_9)))) (and (= (uf_19 (uf_20 ?x495) (uf_126 ?x496 ?x498)) (uf_11 (uf_189 ?x497) (uf_126 ?x496 ?x498))) (= (uf_186 ?x496 ?x497) uf_9))) :pat { (uf_186 ?x496 ?x497) (uf_19 (uf_20 ?x495) (uf_126 ?x496 ?x498)) } :pat { (uf_188 ?x495 ?x497 ?x496 (uf_126 ?x496 ?x498)) })
-:assumption (forall (?x499 T4) (?x500 T5) (?x501 T5) (?x502 T5) (= (uf_188 ?x499 ?x500 ?x501 ?x502) ?x502) :pat { (uf_188 ?x499 ?x500 ?x501 ?x502) })
-:assumption (forall (?x503 T5) (?x504 T5) (implies (forall (?x505 T4) (implies (= (uf_49 ?x505 ?x504) uf_9) (= (uf_24 ?x505 ?x503) uf_9)) :pat { (uf_191 ?x505) }) (= (uf_186 ?x503 ?x504) uf_9)) :pat { (uf_186 ?x503 ?x504) })
-:assumption (forall (?x506 T5) (?x507 T4) (?x508 T4) (?x509 T5) (up_193 (uf_13 ?x509 (uf_192 (uf_12 ?x508 ?x506)))) :pat { (uf_13 ?x509 (uf_192 (uf_12 ?x507 ?x506))) (uf_177 ?x507 ?x508) })
-:assumption (forall (?x510 T5) (?x511 T4) (?x512 T4) (?x513 T5) (up_193 (uf_13 ?x513 (uf_10 ?x512 ?x510))) :pat { (uf_13 ?x513 (uf_10 ?x511 ?x510)) (uf_177 ?x511 ?x512) })
-:assumption (forall (?x514 T4) (?x515 T5) (?x516 T15) (?x517 Int) (?x518 Int) (?x519 T3) (implies (and (< ?x518 ?x517) (and (<= 0 ?x518) (and (= (uf_194 ?x516 ?x517 ?x519) uf_9) (= (uf_51 ?x514) uf_9)))) (= (uf_135 (uf_58 (uf_59 ?x514) (uf_66 (uf_126 ?x515 ?x516) ?x518 ?x519))) uf_9)) :pat { (uf_194 ?x516 ?x517 ?x519) (uf_135 (uf_58 (uf_59 ?x514) (uf_66 (uf_126 ?x515 ?x516) ?x518 ?x519))) })
-:assumption (forall (?x520 T4) (?x521 Int) (?x522 T5) (?x523 Int) (?x524 Int) (?x525 T3) (implies (and (< ?x524 ?x523) (and (<= 0 ?x524) (and (= (uf_13 (uf_43 (uf_124 ?x525 ?x523) ?x521) (uf_10 ?x520 ?x522)) uf_9) (and (= (uf_23 ?x525) uf_9) (= (uf_55 ?x520) uf_9))))) (= (uf_19 (uf_20 ?x520) (uf_66 (uf_43 ?x525 ?x521) ?x524 ?x525)) (uf_11 (uf_12 ?x520 ?x522) (uf_66 (uf_43 ?x525 ?x521) ?x524 ?x525)))) :pat { (uf_13 (uf_43 (uf_124 ?x525 ?x523) ?x521) (uf_10 ?x520 ?x522)) (uf_19 (uf_20 ?x520) (uf_66 (uf_43 ?x525 ?x521) ?x524 ?x525)) (uf_23 ?x525) })
-:assumption (forall (?x526 T4) (?x527 Int) (?x528 T5) (?x529 Int) (?x530 Int) (?x531 T3) (implies (and (< ?x530 ?x529) (and (<= 0 ?x530) (and (= (uf_13 (uf_43 (uf_124 ?x531 ?x529) ?x527) (uf_10 ?x526 ?x528)) uf_9) (and (= (uf_23 ?x531) uf_9) (= (uf_55 ?x526) uf_9))))) (and (not (= (uf_135 (uf_58 (uf_59 ?x526) (uf_66 (uf_43 ?x531 ?x527) ?x530 ?x531))) uf_9)) (= (uf_27 ?x526 (uf_66 (uf_43 ?x531 ?x527) ?x530 ?x531)) uf_9))) :pat { (uf_13 (uf_43 (uf_124 ?x531 ?x529) ?x527) (uf_10 ?x526 ?x528)) (uf_58 (uf_59 ?x526) (uf_66 (uf_43 ?x531 ?x527) ?x530 ?x531)) (uf_23 ?x531) } :pat { (uf_13 (uf_43 (uf_124 ?x531 ?x529) ?x527) (uf_10 ?x526 ?x528)) (uf_25 ?x526 (uf_66 (uf_43 ?x531 ?x527) ?x530 ?x531)) (uf_23 ?x531) })
-:assumption (forall (?x532 T4) (?x533 T5) (?x534 T5) (?x535 T15) (?x536 Int) (?x537 Int) (?x538 T3) (implies (and (< ?x537 ?x536) (and (<= 0 ?x537) (and (= (uf_187 ?x535 ?x536) uf_9) (and (= (uf_13 ?x533 (uf_10 ?x532 ?x534)) uf_9) (= (uf_55 ?x532) uf_9))))) (and (not (= (uf_135 (uf_58 (uf_59 ?x532) (uf_66 (uf_126 ?x533 ?x535) ?x537 ?x538))) uf_9)) (= (uf_27 ?x532 (uf_66 (uf_126 ?x533 ?x535) ?x537 ?x538)) uf_9))) :pat { (uf_13 ?x533 (uf_10 ?x532 ?x534)) (uf_187 ?x535 ?x536) (uf_58 (uf_59 ?x532) (uf_66 (uf_126 ?x533 ?x535) ?x537 ?x538)) } :pat { (uf_13 ?x533 (uf_10 ?x532 ?x534)) (uf_187 ?x535 ?x536) (uf_25 ?x532 (uf_66 (uf_126 ?x533 ?x535) ?x537 ?x538)) })
-:assumption (forall (?x539 T4) (?x540 T5) (?x541 T5) (?x542 T15) (?x543 Int) (?x544 Int) (?x545 T3) (implies (and (< ?x544 ?x543) (and (<= 0 ?x544) (and (= (uf_187 ?x542 ?x543) uf_9) (and (= (uf_13 ?x540 (uf_10 ?x539 ?x541)) uf_9) (= (uf_55 ?x539) uf_9))))) (= (uf_19 (uf_20 ?x539) (uf_66 (uf_126 ?x540 ?x542) ?x544 ?x545)) (uf_11 (uf_12 ?x539 ?x541) (uf_66 (uf_126 ?x540 ?x542) ?x544 ?x545)))) :pat { (uf_13 ?x540 (uf_10 ?x539 ?x541)) (uf_187 ?x542 ?x543) (uf_19 (uf_20 ?x539) (uf_66 (uf_126 ?x540 ?x542) ?x544 ?x545)) })
-:assumption (forall (?x546 T4) (?x547 T5) (?x548 T5) (?x549 T15) (implies (and (= (uf_190 ?x549) uf_9) (and (= (uf_13 ?x547 (uf_10 ?x546 ?x548)) uf_9) (= (uf_55 ?x546) uf_9))) (and (not (= (uf_135 (uf_58 (uf_59 ?x546) (uf_126 ?x547 ?x549))) uf_9)) (= (uf_27 ?x546 (uf_126 ?x547 ?x549)) uf_9))) :pat { (uf_13 ?x547 (uf_10 ?x546 ?x548)) (uf_190 ?x549) (uf_25 ?x546 (uf_126 ?x547 ?x549)) } :pat { (uf_13 ?x547 (uf_10 ?x546 ?x548)) (uf_190 ?x549) (uf_58 (uf_59 ?x546) (uf_126 ?x547 ?x549)) })
-:assumption (forall (?x550 T4) (?x551 T5) (?x552 T5) (implies (and (= (uf_13 ?x551 (uf_10 ?x550 ?x552)) uf_9) (= (uf_55 ?x550) uf_9)) (and (not (= (uf_135 (uf_58 (uf_59 ?x550) ?x551)) uf_9)) (= (uf_27 ?x550 ?x551) uf_9))) :pat { (uf_55 ?x550) (uf_13 ?x551 (uf_10 ?x550 ?x552)) (uf_40 (uf_41 ?x550) ?x551) } :pat { (uf_55 ?x550) (uf_13 ?x551 (uf_10 ?x550 ?x552)) (uf_58 (uf_59 ?x550) ?x551) })
-:assumption (forall (?x553 T4) (?x554 T5) (?x555 T5) (?x556 T15) (implies (and (= (uf_190 ?x556) uf_9) (= (uf_13 ?x554 (uf_10 ?x553 ?x555)) uf_9)) (= (uf_19 (uf_20 ?x553) (uf_126 ?x554 ?x556)) (uf_11 (uf_12 ?x553 ?x555) (uf_126 ?x554 ?x556)))) :pat { (uf_13 ?x554 (uf_10 ?x553 ?x555)) (uf_190 ?x556) (uf_19 (uf_20 ?x553) (uf_126 ?x554 ?x556)) })
-:assumption (forall (?x557 T4) (?x558 T5) (?x559 T5) (implies (= (uf_195 ?x557 ?x558 ?x559) uf_9) (= (uf_196 ?x557 ?x558 ?x559) uf_9)) :pat { (uf_195 ?x557 ?x558 ?x559) })
-:assumption (forall (?x560 T4) (?x561 T5) (?x562 T5) (?x563 T5) (implies (and (forall (?x564 T4) (implies (and (= (uf_10 ?x564 ?x561) (uf_10 ?x560 ?x561)) (and (= (uf_12 ?x564 ?x561) (uf_12 ?x560 ?x561)) (= (uf_46 ?x564 ?x564 ?x562 (uf_15 ?x562)) uf_9))) (= (uf_145 ?x563 (uf_53 ?x564 ?x562)) uf_9))) (and (= (uf_13 ?x562 (uf_10 ?x560 ?x561)) uf_9) (up_197 (uf_15 ?x562)))) (and (= (uf_145 ?x563 (uf_53 ?x560 ?x562)) uf_9) (= (uf_195 ?x560 ?x563 ?x561) uf_9))) :pat { (uf_13 ?x562 (uf_10 ?x560 ?x561)) (uf_195 ?x560 ?x563 ?x561) })
-:assumption (forall (?x565 T4) (?x566 T5) (?x567 T5) (?x568 T5) (implies (and (= (uf_145 ?x568 (uf_53 ?x565 ?x567)) uf_9) (and (= (uf_13 ?x567 (uf_10 ?x565 ?x566)) uf_9) (not (up_197 (uf_15 ?x567))))) (and (= (uf_145 ?x568 (uf_53 ?x565 ?x567)) uf_9) (= (uf_196 ?x565 ?x568 ?x566) uf_9))) :pat { (uf_13 ?x567 (uf_10 ?x565 ?x566)) (uf_196 ?x565 ?x568 ?x566) })
-:assumption (forall (?x569 T4) (?x570 T5) (?x571 T5) (implies (and (= (uf_13 ?x571 (uf_10 ?x569 ?x570)) uf_9) (= (uf_55 ?x569) uf_9)) (= (uf_196 ?x569 ?x571 ?x570) uf_9)) :pat { (uf_196 ?x569 ?x571 ?x570) })
-:assumption (forall (?x572 T4) (?x573 T5) (implies (and (= (uf_22 (uf_15 ?x573)) uf_9) (and (not (= (uf_14 (uf_15 ?x573)) uf_16)) (and (= (uf_27 ?x572 ?x573) uf_9) (and (= (uf_48 ?x573 (uf_15 ?x573)) uf_9) (and (= (uf_25 ?x572 ?x573) uf_26) (and (= (uf_24 ?x572 ?x573) uf_9) (= (uf_55 ?x572) uf_9))))))) (= (uf_196 ?x572 ?x573 ?x573) uf_9)) :pat { (uf_196 ?x572 ?x573 ?x573) })
-:assumption (forall (?x574 T4) (?x575 T5) (?x576 T5) (implies (= (uf_196 ?x574 ?x575 ?x576) uf_9) (and (forall (?x577 T5) (implies (and (= (uf_13 ?x577 (uf_53 ?x574 ?x575)) uf_9) (not (up_197 (uf_15 ?x575)))) (= (uf_147 ?x577 (uf_192 (uf_12 ?x574 ?x576))) uf_9)) :pat { (uf_13 ?x577 (uf_53 ?x574 ?x575)) }) (and (= (uf_24 ?x574 ?x575) uf_9) (= (uf_13 ?x575 (uf_10 ?x574 ?x576)) uf_9)))) :pat { (uf_196 ?x574 ?x575 ?x576) })
-:assumption (forall (?x578 T4) (?x579 T5) (?x580 T5) (?x581 T16) (iff (= (uf_198 ?x578 ?x579 ?x580 ?x581) uf_9) (= (uf_195 ?x578 ?x579 ?x580) uf_9)) :pat { (uf_198 ?x578 ?x579 ?x580 ?x581) })
-:assumption (forall (?x582 T4) (?x583 T5) (?x584 T5) (?x585 T16) (implies (= (uf_198 ?x582 ?x583 ?x584 ?x585) uf_9) (up_199 ?x582 ?x583 ?x585)) :pat { (uf_198 ?x582 ?x583 ?x584 ?x585) })
-:assumption (forall (?x586 T4) (?x587 T5) (?x588 T5) (?x589 T16) (iff (= (uf_200 ?x586 ?x587 ?x588 ?x589) uf_9) (= (uf_196 ?x586 ?x587 ?x588) uf_9)) :pat { (uf_200 ?x586 ?x587 ?x588 ?x589) })
-:assumption (forall (?x590 T4) (?x591 T5) (?x592 T5) (?x593 T16) (implies (= (uf_200 ?x590 ?x591 ?x592 ?x593) uf_9) (up_199 ?x590 ?x591 ?x593)) :pat { (uf_200 ?x590 ?x591 ?x592 ?x593) })
-:assumption (forall (?x594 T4) (?x595 T5) (= (uf_10 ?x594 ?x595) (uf_192 (uf_12 ?x594 ?x595))) :pat { (uf_10 ?x594 ?x595) })
-:assumption (forall (?x596 T4) (?x597 T5) (= (uf_12 ?x596 ?x597) (uf_32 (uf_19 (uf_20 ?x596) ?x597))) :pat { (uf_12 ?x596 ?x597) })
-:assumption (forall (?x598 T4) (?x599 Int) (?x600 T3) (= (uf_43 ?x600 (uf_19 (uf_20 ?x598) (uf_43 (uf_6 ?x600) ?x599))) (uf_201 ?x598 (uf_43 (uf_6 ?x600) ?x599) ?x600)) :pat { (uf_43 ?x600 (uf_19 (uf_20 ?x598) (uf_43 (uf_6 ?x600) ?x599))) })
-:assumption (forall (?x601 T1) (?x602 T4) (implies (= (uf_202 ?x601 ?x602) uf_9) (= (uf_51 ?x602) uf_9)) :pat { (uf_202 ?x601 ?x602) })
-:assumption (forall (?x603 T4) (implies (= (uf_44 ?x603) uf_9) (= (uf_51 ?x603) uf_9)) :pat { (uf_44 ?x603) })
-:assumption (forall (?x604 T4) (implies (= (uf_55 ?x604) uf_9) (and (= (uf_44 ?x604) uf_9) (= (uf_51 ?x604) uf_9))) :pat { (uf_55 ?x604) })
-:assumption (forall (?x605 T4) (implies (= (uf_203 ?x605) uf_9) (and (<= 0 (uf_171 ?x605)) (= (uf_55 ?x605) uf_9))) :pat { (uf_203 ?x605) })
-:assumption (forall (?x606 T3) (implies (= (uf_23 ?x606) uf_9) (forall (?x607 T4) (?x608 Int) (?x609 T5) (iff (= (uf_13 ?x609 (uf_128 ?x607 (uf_43 ?x606 ?x608))) uf_9) (= ?x609 (uf_43 ?x606 ?x608))) :pat { (uf_13 ?x609 (uf_128 ?x607 (uf_43 ?x606 ?x608))) })) :pat { (uf_23 ?x606) })
-:assumption (forall (?x610 T3) (implies (= (uf_23 ?x610) uf_9) (forall (?x611 Int) (?x612 T5) (iff (= (uf_13 ?x612 (uf_130 (uf_43 ?x610 ?x611))) uf_9) (= ?x612 (uf_43 ?x610 ?x611))) :pat { (uf_13 ?x612 (uf_130 (uf_43 ?x610 ?x611))) })) :pat { (uf_23 ?x610) })
-:assumption (forall (?x613 T4) (?x614 T4) (?x615 T5) (?x616 T3) (iff (= (uf_204 ?x613 ?x614 ?x615 ?x616) uf_9) (and (up_205 ?x613 ?x614 ?x615 ?x616) (and (= (uf_58 (uf_59 ?x613) ?x615) (uf_58 (uf_59 ?x614) ?x615)) (= (uf_12 ?x613 ?x615) (uf_12 ?x614 ?x615))))) :pat { (uf_204 ?x613 ?x614 ?x615 ?x616) })
-:assumption (forall (?x617 T4) (?x618 T4) (?x619 T5) (?x620 T3) (iff (= (uf_206 ?x617 ?x618 ?x619 ?x620) uf_9) (and (= (uf_123 ?x617 ?x618 ?x619 ?x620) uf_9) (and (= (uf_58 (uf_59 ?x617) ?x619) (uf_58 (uf_59 ?x618) ?x619)) (and (= (uf_53 ?x617 ?x619) (uf_53 ?x618 ?x619)) (= (uf_12 ?x617 ?x619) (uf_12 ?x618 ?x619)))))) :pat { (uf_206 ?x617 ?x618 ?x619 ?x620) })
-:assumption (forall (?x621 T4) (?x622 T4) (?x623 T5) (?x624 T5) (iff (= (uf_207 ?x621 ?x622 ?x623 ?x624) uf_9) (or (= (uf_208 (uf_15 ?x623)) uf_9) (or (and (= (uf_204 ?x621 ?x622 ?x623 (uf_15 ?x623)) uf_9) (= (uf_46 ?x621 ?x622 ?x623 (uf_15 ?x623)) uf_9)) (or (and (not (= (uf_24 ?x622 ?x623) uf_9)) (not (= (uf_24 ?x621 ?x623) uf_9))) (= (uf_206 ?x621 ?x622 ?x624 (uf_15 ?x624)) uf_9))))) :pat { (uf_207 ?x621 ?x622 ?x623 ?x624) })
-:assumption (forall (?x625 T4) (?x626 T4) (?x627 T5) (?x628 T3) (iff (= (uf_179 ?x625 ?x626 ?x627 ?x628) uf_9) (implies (and (= (uf_24 ?x626 ?x627) uf_9) (= (uf_24 ?x625 ?x627) uf_9)) (= (uf_206 ?x625 ?x626 ?x627 ?x628) uf_9))) :pat { (uf_179 ?x625 ?x626 ?x627 ?x628) })
-:assumption (forall (?x629 T4) (?x630 T5) (?x631 T3) (implies (up_209 ?x629 ?x630 ?x631) (= (uf_46 ?x629 ?x629 ?x630 ?x631) uf_9)) :pat { (uf_46 ?x629 ?x629 ?x630 ?x631) })
-:assumption (forall (?x632 T4) (?x633 T5) (iff (= (uf_67 ?x632 ?x633) uf_9) (and (or (and (or (= (uf_210 ?x632 ?x633) uf_9) (= (uf_25 ?x632 ?x633) uf_26)) (not (= (uf_14 (uf_15 ?x633)) uf_16))) (and (or (= (uf_210 ?x632 (uf_136 (uf_58 (uf_59 ?x632) ?x633))) uf_9) (= (uf_25 ?x632 (uf_136 (uf_58 (uf_59 ?x632) ?x633))) uf_26)) (and (not (= (uf_14 (uf_15 (uf_136 (uf_58 (uf_59 ?x632) ?x633)))) uf_16)) (and (or (not (= (uf_24 ?x632 (uf_136 (uf_58 (uf_59 ?x632) ?x633))) uf_9)) (not (= (uf_135 (uf_58 (uf_59 ?x632) ?x633)) uf_9))) (= (uf_14 (uf_15 ?x633)) uf_16))))) (= (uf_27 ?x632 ?x633) uf_9))) :pat { (uf_67 ?x632 ?x633) })
-:assumption (forall (?x634 T4) (?x635 T5) (iff (= (uf_210 ?x634 ?x635) uf_9) (exists (?x636 T5) (and (= (uf_211 ?x634 ?x636) uf_9) (and (= (uf_22 (uf_15 ?x636)) uf_9) (and (not (= (uf_14 (uf_15 ?x636)) uf_16)) (and (= (uf_27 ?x634 ?x636) uf_9) (and (= (uf_48 ?x636 (uf_15 ?x636)) uf_9) (and (= (uf_25 ?x634 ?x636) uf_26) (and (= (uf_24 ?x634 ?x636) uf_9) (= (uf_13 ?x635 (uf_192 (uf_12 ?x634 ?x636))) uf_9)))))))) :pat { (uf_147 ?x635 (uf_192 (uf_12 ?x634 ?x636))) })) :pat { (uf_210 ?x634 ?x635) })
-:assumption (forall (?x637 T4) (?x638 T5) (iff (= (uf_211 ?x637 ?x638) uf_9) true) :pat { (uf_211 ?x637 ?x638) })
-:assumption (forall (?x639 T4) (?x640 T4) (?x641 T5) (implies (= (uf_177 ?x639 ?x640) uf_9) (up_212 (uf_40 (uf_41 ?x639) ?x641))) :pat { (uf_40 (uf_41 ?x640) ?x641) (uf_177 ?x639 ?x640) })
-:assumption (forall (?x642 T4) (?x643 T5) (implies (and (= (uf_27 ?x642 ?x643) uf_9) (= (uf_51 ?x642) uf_9)) (< 0 (uf_116 ?x643))) :pat { (uf_27 ?x642 ?x643) })
-:assumption (forall (?x644 T4) (?x645 T5) (implies (= (uf_51 ?x644) uf_9) (iff (= (uf_27 ?x644 ?x645) uf_9) (up_213 (uf_58 (uf_59 ?x644) ?x645)))) :pat { (uf_27 ?x644 ?x645) })
-:assumption (forall (?x646 T4) (?x647 T5) (iff (= (uf_61 ?x646 ?x647) uf_9) (and (not (= (uf_24 ?x646 ?x647) uf_9)) (and (= (uf_25 ?x646 ?x647) uf_26) (= (uf_27 ?x646 ?x647) uf_9)))) :pat { (uf_61 ?x646 ?x647) })
-:assumption (forall (?x648 T4) (?x649 T5) (= (uf_53 ?x648 ?x649) (uf_34 (uf_19 (uf_20 ?x648) (uf_126 ?x649 (uf_214 (uf_15 ?x649)))))) :pat { (uf_53 ?x648 ?x649) })
-:assumption (forall (?x650 T11) (and (= (uf_22 (uf_15 (uf_215 ?x650))) uf_9) (not (= (uf_14 (uf_15 (uf_215 ?x650))) uf_16))) :pat { (uf_215 ?x650) })
-:assumption up_216
-:assumption (forall (?x651 T4) (?x652 T5) (implies (= (uf_22 (uf_15 ?x652)) uf_9) (= (uf_170 ?x651 ?x652) (uf_217 (uf_40 (uf_41 ?x651) ?x652)))) :pat { (uf_22 (uf_15 ?x652)) (uf_170 ?x651 ?x652) })
-:assumption (forall (?x653 T4) (?x654 T5) (implies (= (uf_23 (uf_15 ?x654)) uf_9) (= (uf_170 ?x653 ?x654) (uf_217 (uf_40 (uf_41 ?x653) (uf_136 (uf_58 (uf_59 ?x653) ?x654)))))) :pat { (uf_23 (uf_15 ?x654)) (uf_170 ?x653 ?x654) })
-:assumption (forall (?x655 T4) (?x656 T5) (implies (= (uf_22 (uf_15 ?x656)) uf_9) (iff (= (uf_24 ?x655 ?x656) uf_9) (up_218 (uf_40 (uf_41 ?x655) ?x656)))) :pat { (uf_22 (uf_15 ?x656)) (uf_24 ?x655 ?x656) })
-:assumption (forall (?x657 T4) (?x658 T5) (implies (= (uf_23 (uf_15 ?x658)) uf_9) (iff (= (uf_24 ?x657 ?x658) uf_9) (up_218 (uf_40 (uf_41 ?x657) (uf_136 (uf_58 (uf_59 ?x657) ?x658)))))) :pat { (uf_23 (uf_15 ?x658)) (uf_24 ?x657 ?x658) })
-:assumption (forall (?x659 T4) (?x660 T5) (implies (= (uf_22 (uf_15 ?x660)) uf_9) (= (uf_25 ?x659 ?x660) (uf_215 (uf_40 (uf_41 ?x659) ?x660)))) :pat { (uf_22 (uf_15 ?x660)) (uf_25 ?x659 ?x660) })
-:assumption (forall (?x661 T4) (?x662 T5) (implies (= (uf_23 (uf_15 ?x662)) uf_9) (= (uf_25 ?x661 ?x662) (uf_25 ?x661 (uf_136 (uf_58 (uf_59 ?x661) ?x662))))) :pat { (uf_23 (uf_15 ?x662)) (uf_25 ?x661 ?x662) })
-:assumption (forall (?x663 T5) (?x664 T3) (= (uf_126 ?x663 (uf_214 ?x664)) (uf_43 uf_219 (uf_220 ?x663 (uf_214 ?x664)))) :pat { (uf_126 ?x663 (uf_214 ?x664)) })
-:assumption (up_197 uf_37)
-:assumption (forall (?x665 T17) (?x666 T17) (?x667 T15) (implies (= (uf_224 (uf_225 (uf_222 ?x665 ?x667)) (uf_225 (uf_222 ?x666 ?x667))) uf_9) (= (uf_221 (uf_222 ?x665 ?x667) (uf_222 ?x666 ?x667)) uf_9)) :pat { (uf_221 (uf_222 ?x665 ?x667) (uf_222 ?x666 (uf_223 ?x667))) })
-:assumption (forall (?x668 T17) (?x669 T17) (implies (forall (?x670 T15) (= (uf_221 (uf_222 ?x668 ?x670) (uf_222 ?x669 ?x670)) uf_9)) (= (uf_224 ?x668 ?x669) uf_9)) :pat { (uf_224 ?x668 ?x669) })
-:assumption (forall (?x671 T17) (= (uf_225 (uf_226 ?x671)) ?x671))
-:assumption (forall (?x672 Int) (?x673 Int) (iff (= (uf_221 ?x672 ?x673) uf_9) (= ?x672 ?x673)) :pat { (uf_221 ?x672 ?x673) })
-:assumption (forall (?x674 T17) (?x675 T17) (iff (= (uf_224 ?x674 ?x675) uf_9) (= ?x674 ?x675)) :pat { (uf_224 ?x674 ?x675) })
-:assumption (forall (?x676 T3) (?x677 T15) (?x678 T3) (implies (and (= (uf_228 ?x678) uf_9) (= (uf_227 ?x676 ?x677 ?x678) uf_9)) (= (uf_223 ?x677) ?x677)) :pat { (uf_227 ?x676 ?x677 ?x678) (uf_228 ?x678) })
-:assumption (forall (?x679 T3) (implies (= (uf_228 ?x679) uf_9) (= (uf_23 ?x679) uf_9)) :pat { (uf_228 ?x679) })
-:assumption (forall (?x680 T17) (?x681 T15) (?x682 T15) (?x683 Int) (or (= ?x681 ?x682) (= (uf_222 (uf_229 ?x680 ?x681 ?x683) ?x682) (uf_222 ?x680 ?x682))) :pat { (uf_222 (uf_229 ?x680 ?x681 ?x683) ?x682) })
-:assumption (forall (?x684 T17) (?x685 T15) (?x686 Int) (= (uf_222 (uf_229 ?x684 ?x685 ?x686) ?x685) ?x686) :pat { (uf_222 (uf_229 ?x684 ?x685 ?x686) ?x685) })
-:assumption (forall (?x687 T15) (= (uf_222 uf_230 ?x687) 0))
-:assumption (forall (?x688 T17) (?x689 T15) (?x690 Int) (?x691 Int) (?x692 Int) (?x693 Int) (= (uf_231 ?x688 ?x689 ?x690 ?x691 ?x692 ?x693) (uf_229 ?x688 ?x689 (uf_99 (uf_222 ?x688 ?x689) ?x690 ?x691 ?x692 ?x693))) :pat { (uf_231 ?x688 ?x689 ?x690 ?x691 ?x692 ?x693) })
-:assumption (forall (?x694 T4) (?x695 T5) (implies (= (uf_51 ?x694) uf_9) (and (= (uf_233 (uf_232 ?x694 ?x695)) ?x694) (= (uf_234 (uf_232 ?x694 ?x695)) (uf_116 ?x695)))) :pat { (uf_232 ?x694 ?x695) })
-:assumption (forall (?x696 T18) (= (uf_51 (uf_233 ?x696)) uf_9))
-:assumption (= (uf_51 (uf_233 uf_235)) uf_9)
-:assumption (forall (?x697 T4) (?x698 T5) (or (not (up_213 (uf_58 (uf_59 ?x697) ?x698))) (<= (uf_170 ?x697 ?x698) (uf_171 ?x697))) :pat { (uf_40 (uf_41 ?x697) ?x698) })
-:assumption (forall (?x699 T4) (?x700 T5) (implies (and (= (uf_135 (uf_58 (uf_59 ?x699) ?x700)) uf_9) (= (uf_51 ?x699) uf_9)) (= (uf_14 (uf_15 ?x700)) uf_16)) :pat { (uf_135 (uf_58 (uf_59 ?x699) ?x700)) })
-:assumption (forall (?x701 T4) (?x702 T5) (implies (= (uf_27 ?x701 ?x702) uf_9) (= (uf_27 ?x701 (uf_136 (uf_58 (uf_59 ?x701) ?x702))) uf_9)) :pat { (uf_27 ?x701 ?x702) (uf_58 (uf_59 ?x701) (uf_136 (uf_58 (uf_59 ?x701) ?x702))) })
-:assumption (forall (?x703 T14) (and (= (uf_22 (uf_15 (uf_136 ?x703))) uf_9) (not (= (uf_14 (uf_15 (uf_136 ?x703))) uf_16))) :pat { (uf_136 ?x703) })
-:assumption (forall (?x704 T5) (?x705 T15) (implies (<= 0 (uf_237 ?x705)) (= (uf_116 (uf_126 (uf_236 ?x704 ?x705) ?x705)) (uf_116 ?x704))) :pat { (uf_126 (uf_236 ?x704 ?x705) ?x705) })
-:assumption (forall (?x706 T5) (?x707 T15) (= (uf_236 ?x706 ?x707) (uf_43 (uf_238 ?x707) (uf_239 ?x706 ?x707))) :pat { (uf_236 ?x706 ?x707) })
-:assumption (forall (?x708 Int) (?x709 T15) (= (uf_236 (uf_126 (uf_43 (uf_238 ?x709) ?x708) ?x709) ?x709) (uf_43 (uf_238 ?x709) ?x708)) :pat { (uf_236 (uf_126 (uf_43 (uf_238 ?x709) ?x708) ?x709) ?x709) })
-:assumption (forall (?x710 T5) (?x711 T3) (implies (= (uf_48 ?x710 ?x711) uf_9) (= ?x710 (uf_43 ?x711 (uf_116 ?x710)))) :pat { (uf_48 ?x710 ?x711) })
-:assumption (forall (?x712 T5) (?x713 T3) (iff (= (uf_48 ?x712 ?x713) uf_9) (= (uf_15 ?x712) ?x713)))
-:assumption (= uf_121 (uf_43 uf_240 0))
-:assumption (forall (?x714 T15) (?x715 Int) (and (= (uf_242 (uf_241 ?x714 ?x715)) ?x715) (and (= (uf_243 (uf_241 ?x714 ?x715)) ?x714) (not (up_244 (uf_241 ?x714 ?x715))))) :pat { (uf_241 ?x714 ?x715) })
-:assumption (forall (?x716 T5) (?x717 T15) (and (= (uf_245 (uf_220 ?x716 ?x717)) ?x717) (= (uf_246 (uf_220 ?x716 ?x717)) ?x716)) :pat { (uf_220 ?x716 ?x717) })
-:assumption (forall (?x718 T3) (?x719 Int) (= (uf_116 (uf_43 ?x718 ?x719)) ?x719))
-:assumption (forall (?x720 T3) (?x721 Int) (= (uf_15 (uf_43 ?x720 ?x721)) ?x720))
-:assumption (forall (?x722 T3) (?x723 T3) (?x724 Int) (?x725 Int) (iff (= (uf_247 ?x722 ?x723 ?x724 ?x725) uf_9) (and (= (uf_248 ?x722 ?x723) ?x725) (and (= (uf_249 ?x722 ?x723) ?x724) (up_250 ?x722 ?x723)))) :pat { (uf_247 ?x722 ?x723 ?x724 ?x725) })
-:assumption (forall (?x726 T5) (= (uf_139 ?x726 ?x726) uf_9) :pat { (uf_15 ?x726) })
-:assumption (forall (?x727 T5) (?x728 T5) (?x729 T5) (implies (and (= (uf_139 ?x728 ?x729) uf_9) (= (uf_139 ?x727 ?x728) uf_9)) (= (uf_139 ?x727 ?x729) uf_9)) :pat { (uf_139 ?x727 ?x728) (uf_139 ?x728 ?x729) })
-:assumption (forall (?x730 T12) (?x731 T5) (?x732 T5) (?x733 T11) (or (= (uf_40 (uf_172 ?x730 ?x731 ?x733) ?x732) (uf_40 ?x730 ?x732)) (= ?x731 ?x732)))
-:assumption (forall (?x734 T12) (?x735 T5) (?x736 T11) (= (uf_40 (uf_172 ?x734 ?x735 ?x736) ?x735) ?x736))
-:assumption (forall (?x737 T13) (?x738 T5) (?x739 T5) (?x740 T14) (or (= (uf_58 (uf_251 ?x737 ?x738 ?x740) ?x739) (uf_58 ?x737 ?x739)) (= ?x738 ?x739)))
-:assumption (forall (?x741 T13) (?x742 T5) (?x743 T14) (= (uf_58 (uf_251 ?x741 ?x742 ?x743) ?x742) ?x743))
-:assumption (forall (?x744 T9) (?x745 T5) (?x746 T5) (?x747 Int) (or (= (uf_19 (uf_178 ?x744 ?x745 ?x747) ?x746) (uf_19 ?x744 ?x746)) (= ?x745 ?x746)))
-:assumption (forall (?x748 T9) (?x749 T5) (?x750 Int) (= (uf_19 (uf_178 ?x748 ?x749 ?x750) ?x749) ?x750))
-:assumption (= uf_26 (uf_43 uf_252 uf_253))
-:assumption (= (uf_23 uf_254) uf_9)
-:assumption (= (uf_23 uf_255) uf_9)
-:assumption (= (uf_23 uf_84) uf_9)
-:assumption (= (uf_23 uf_4) uf_9)
-:assumption (= (uf_23 uf_91) uf_9)
-:assumption (= (uf_23 uf_7) uf_9)
-:assumption (= (uf_23 uf_83) uf_9)
-:assumption (= (uf_23 uf_87) uf_9)
-:assumption (= (uf_23 uf_90) uf_9)
-:assumption (= (uf_23 uf_94) uf_9)
-:assumption (= (uf_208 uf_252) uf_9)
-:assumption (= (uf_23 uf_256) uf_9)
-:assumption (= (uf_23 uf_219) uf_9)
-:assumption (= (uf_23 uf_257) uf_9)
-:assumption (= (uf_23 uf_258) uf_9)
-:assumption (= (uf_23 uf_240) uf_9)
-:assumption (forall (?x751 T3) (implies (= (uf_23 ?x751) uf_9) (not (up_36 ?x751))) :pat { (uf_23 ?x751) })
-:assumption (forall (?x752 T3) (= (uf_23 (uf_6 ?x752)) uf_9) :pat { (uf_6 ?x752) })
-:assumption (forall (?x753 T3) (?x754 T3) (= (uf_23 (uf_259 ?x753 ?x754)) uf_9) :pat { (uf_259 ?x753 ?x754) })
-:assumption (forall (?x755 T3) (implies (= (uf_208 ?x755) uf_9) (= (uf_22 ?x755) uf_9)) :pat { (uf_208 ?x755) })
-:assumption (forall (?x756 T3) (implies (= (uf_141 ?x756) uf_9) (= (uf_22 ?x756) uf_9)) :pat { (uf_141 ?x756) })
-:assumption (forall (?x757 T3) (implies (= (uf_260 ?x757) uf_9) (= (uf_22 ?x757) uf_9)) :pat { (uf_260 ?x757) })
-:assumption (forall (?x758 T3) (iff (= (uf_208 ?x758) uf_9) (= (uf_14 ?x758) uf_261)) :pat { (uf_208 ?x758) })
-:assumption (forall (?x759 T3) (iff (= (uf_141 ?x759) uf_9) (= (uf_14 ?x759) uf_262)) :pat { (uf_141 ?x759) })
-:assumption (forall (?x760 T3) (iff (= (uf_260 ?x760) uf_9) (= (uf_14 ?x760) uf_263)) :pat { (uf_260 ?x760) })
-:assumption (forall (?x761 T3) (iff (= (uf_23 ?x761) uf_9) (= (uf_14 ?x761) uf_16)) :pat { (uf_23 ?x761) })
-:assumption (forall (?x762 T3) (?x763 T3) (= (uf_142 (uf_259 ?x762 ?x763)) (+ (uf_142 ?x762) 23)) :pat { (uf_259 ?x762 ?x763) })
-:assumption (forall (?x764 T3) (= (uf_142 (uf_6 ?x764)) (+ (uf_142 ?x764) 17)) :pat { (uf_6 ?x764) })
-:assumption (forall (?x765 T3) (?x766 T3) (= (uf_264 (uf_259 ?x765 ?x766)) ?x765) :pat { (uf_259 ?x765 ?x766) })
-:assumption (forall (?x767 T3) (?x768 T3) (= (uf_265 (uf_259 ?x767 ?x768)) ?x768) :pat { (uf_259 ?x767 ?x768) })
-:assumption (forall (?x769 T3) (= (uf_138 (uf_6 ?x769)) 8) :pat { (uf_6 ?x769) })
-:assumption (forall (?x770 T3) (= (uf_266 (uf_6 ?x770)) ?x770) :pat { (uf_6 ?x770) })
-:assumption (= (uf_260 uf_267) uf_9)
-:assumption (= (uf_260 uf_37) uf_9)
-:assumption (= (uf_142 uf_268) 0)
-:assumption (= (uf_142 uf_256) 0)
-:assumption (= (uf_142 uf_252) 0)
-:assumption (= (uf_142 uf_219) 0)
-:assumption (= (uf_142 uf_267) 0)
-:assumption (= (uf_142 uf_37) 0)
-:assumption (= (uf_142 uf_240) 0)
-:assumption (= (uf_142 uf_258) 0)
-:assumption (= (uf_142 uf_257) 0)
-:assumption (= (uf_142 uf_254) 0)
-:assumption (= (uf_142 uf_255) 0)
-:assumption (= (uf_142 uf_84) 0)
-:assumption (= (uf_142 uf_4) 0)
-:assumption (= (uf_142 uf_91) 0)
-:assumption (= (uf_142 uf_7) 0)
-:assumption (= (uf_142 uf_83) 0)
-:assumption (= (uf_142 uf_87) 0)
-:assumption (= (uf_142 uf_90) 0)
-:assumption (= (uf_142 uf_94) 0)
-:assumption (= (uf_138 uf_219) 1)
-:assumption (= (uf_138 uf_252) 1)
-:assumption (= (uf_138 uf_254) 8)
-:assumption (= (uf_138 uf_255) 4)
-:assumption (= (uf_138 uf_84) 8)
-:assumption (= (uf_138 uf_4) 4)
-:assumption (= (uf_138 uf_91) 2)
-:assumption (= (uf_138 uf_7) 1)
-:assumption (= (uf_138 uf_83) 8)
-:assumption (= (uf_138 uf_87) 4)
-:assumption (= (uf_138 uf_90) 2)
-:assumption (= (uf_138 uf_94) 1)
-:assumption (not (implies true (implies (and (<= uf_269 uf_78) (<= 0 uf_269)) (implies (and (<= uf_270 uf_76) (<= 0 uf_270)) (implies (and (<= uf_271 uf_76) (<= 0 uf_271)) (implies (< uf_272 1099511627776) (implies (< 0 uf_272) (implies (and (= (uf_22 (uf_124 uf_7 uf_272)) uf_9) (and (not (= (uf_14 (uf_124 uf_7 uf_272)) uf_16)) (and (= (uf_27 uf_273 (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274)))) uf_9) (and (= (uf_48 (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274))) (uf_124 uf_7 uf_272)) uf_9) (and (= (uf_25 uf_273 (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274)))) uf_26) (= (uf_24 uf_273 (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274)))) uf_9)))))) (implies true (implies (= (uf_203 uf_273) uf_9) (implies (and (= (uf_55 uf_273) uf_9) (= (uf_202 uf_275 uf_273) uf_9)) (implies (forall (?x771 T19) (< (uf_276 ?x771) uf_277) :pat { (uf_276 ?x771) }) (implies (and (up_278 uf_273 uf_275 uf_279 (uf_43 uf_7 uf_274) (uf_6 uf_7)) (up_280 uf_273 uf_275 uf_279 (uf_29 (uf_43 uf_7 uf_274)) (uf_6 uf_7))) (implies (up_280 uf_273 uf_275 uf_281 uf_272 uf_4) (implies (= uf_282 (uf_171 uf_273)) (implies (forall (?x772 T5) (iff (= (uf_283 uf_282 ?x772) uf_9) false) :pat { (uf_283 uf_282 ?x772) }) (implies (and (<= uf_272 uf_76) (<= 0 uf_272)) (and (implies (= (uf_200 uf_273 (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274))) (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274))) uf_284) uf_9) (and (implies (and (= (uf_27 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7) uf_7) uf_9)) (and (implies (and (= (uf_67 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7) uf_7) uf_9)) (implies (= uf_285 (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7))) (implies (up_280 uf_273 uf_286 uf_287 uf_285 uf_7) (implies (up_280 uf_273 uf_288 uf_289 0 uf_4) (implies (up_280 uf_273 uf_290 uf_291 1 uf_4) (implies (and (<= 0 0) (and (<= 0 0) (and (<= 1 1) (<= 1 1)))) (and (implies (<= 1 uf_272) (and (implies (forall (?x773 Int) (implies (and (<= ?x773 uf_76) (<= 0 ?x773)) (implies (< ?x773 1) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x773 uf_7)) uf_285)))) (and (implies (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7)) uf_285) (< 0 uf_272)) (implies true (implies (and (<= uf_292 uf_78) (<= 0 uf_292)) (implies (and (<= uf_293 uf_76) (<= 0 uf_293)) (implies (and (<= uf_294 uf_76) (<= 0 uf_294)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (<= uf_294 uf_272) (implies (forall (?x774 Int) (implies (and (<= ?x774 uf_76) (<= 0 ?x774)) (implies (< ?x774 uf_294) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x774 uf_7)) uf_292)))) (implies (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_293 uf_7)) uf_292) (< uf_293 uf_272)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (and (= (uf_177 uf_273 uf_273) uf_9) (and (forall (?x775 T5) (<= (uf_170 uf_273 ?x775) (uf_170 uf_273 ?x775)) :pat { (uf_170 uf_273 ?x775) }) (and (<= (uf_171 uf_273) (uf_171 uf_273)) (and (forall (?x776 T5) (implies (= (uf_67 uf_273 ?x776) uf_9) (and (= (uf_67 uf_273 ?x776) uf_9) (= (uf_58 (uf_59 uf_273) ?x776) (uf_58 (uf_59 uf_273) ?x776)))) :pat { (uf_58 (uf_59 uf_273) ?x776) }) (and (forall (?x777 T5) (implies (= (uf_67 uf_273 ?x777) uf_9) (and (= (uf_67 uf_273 ?x777) uf_9) (= (uf_40 (uf_41 uf_273) ?x777) (uf_40 (uf_41 uf_273) ?x777)))) :pat { (uf_40 (uf_41 uf_273) ?x777) }) (and (forall (?x778 T5) (implies (= (uf_67 uf_273 ?x778) uf_9) (and (= (uf_67 uf_273 ?x778) uf_9) (= (uf_19 (uf_20 uf_273) ?x778) (uf_19 (uf_20 uf_273) ?x778)))) :pat { (uf_19 (uf_20 uf_273) ?x778) }) (forall (?x779 T5) (implies (not (= (uf_14 (uf_15 (uf_25 uf_273 ?x779))) uf_261)) (not (= (uf_14 (uf_15 (uf_25 uf_273 ?x779))) uf_261))) :pat { (uf_40 (uf_41 uf_273) ?x779) }))))))) (implies (and (= (uf_177 uf_273 uf_273) uf_9) (and (forall (?x780 T5) (<= (uf_170 uf_273 ?x780) (uf_170 uf_273 ?x780)) :pat { (uf_170 uf_273 ?x780) }) (<= (uf_171 uf_273) (uf_171 uf_273)))) (implies (and (= (uf_55 uf_273) uf_9) (= (uf_202 uf_295 uf_273) uf_9)) (implies (up_280 uf_273 uf_295 uf_291 uf_294 uf_4) (implies (up_280 uf_273 uf_295 uf_289 uf_293 uf_4) (implies (up_280 uf_273 uf_295 uf_287 uf_292 uf_7) (implies (up_280 uf_273 uf_295 uf_281 uf_272 uf_4) (implies (and (up_278 uf_273 uf_295 uf_279 (uf_43 uf_7 uf_274) (uf_6 uf_7)) (up_280 uf_273 uf_295 uf_279 (uf_29 (uf_43 uf_7 uf_274)) (uf_6 uf_7))) (implies (and (= (uf_41 uf_273) (uf_41 uf_273)) (= (uf_59 uf_273) (uf_59 uf_273))) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (<= uf_272 uf_294) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies up_216 (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (= uf_296 uf_292) (implies (= uf_297 uf_294) (implies (= uf_298 uf_293) (implies (= uf_299 uf_292) (implies true (and (implies (forall (?x781 Int) (implies (and (<= ?x781 uf_76) (<= 0 ?x781)) (implies (< ?x781 uf_272) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x781 uf_7)) uf_299)))) (and (implies (exists (?x782 Int) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x782 uf_7)) uf_299) (and (< ?x782 uf_272) (and (<= ?x782 uf_76) (<= 0 ?x782))))) true) (exists (?x783 Int) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x783 uf_7)) uf_299) (and (< ?x783 uf_272) (and (<= ?x783 uf_76) (<= 0 ?x783))))))) (forall (?x784 Int) (implies (and (<= ?x784 uf_76) (<= 0 ?x784)) (implies (< ?x784 uf_272) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x784 uf_7)) uf_299)))))))))))))))) up_216)))))))))) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (< uf_294 uf_272) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies (and (= (uf_27 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)) (and (implies (and (= (uf_67 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_292) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (= uf_300 uf_292) (implies (= uf_301 uf_293) (implies true (implies (and (<= 0 uf_301) (<= 1 uf_294)) (and (implies (and (<= (+ uf_294 1) uf_76) (<= 0 (+ uf_294 1))) (implies (= uf_302 (+ uf_294 1)) (implies (up_280 uf_273 uf_303 uf_291 uf_302 uf_4) (implies (and (<= 0 uf_301) (<= 2 uf_302)) (implies true (and (implies (<= uf_302 uf_272) (and (implies (forall (?x785 Int) (implies (and (<= ?x785 uf_76) (<= 0 ?x785)) (implies (< ?x785 uf_302) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x785 uf_7)) uf_300)))) (and (implies (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_301 uf_7)) uf_300) (< uf_301 uf_272)) (implies false true)) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_301 uf_7)) uf_300) (< uf_301 uf_272)))) (forall (?x786 Int) (implies (and (<= ?x786 uf_76) (<= 0 ?x786)) (implies (< ?x786 uf_302) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x786 uf_7)) uf_300)))))) (<= uf_302 uf_272))))))) (and (<= (+ uf_294 1) uf_76) (<= 0 (+ uf_294 1)))))))))))))))) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (< uf_292 (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7))) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies (and (= (uf_27 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)) (and (implies (and (= (uf_67 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)) (implies (= uf_304 (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7))) (implies (up_280 uf_273 uf_305 uf_287 uf_304 uf_7) (implies (up_280 uf_273 uf_306 uf_289 uf_294 uf_4) (implies (and (<= 1 uf_294) (<= 1 uf_294)) (implies true (implies (= uf_300 uf_304) (implies (= uf_301 uf_294) (implies true (implies (and (<= 0 uf_301) (<= 1 uf_294)) (and (implies (and (<= (+ uf_294 1) uf_76) (<= 0 (+ uf_294 1))) (implies (= uf_302 (+ uf_294 1)) (implies (up_280 uf_273 uf_303 uf_291 uf_302 uf_4) (implies (and (<= 0 uf_301) (<= 2 uf_302)) (implies true (and (implies (<= uf_302 uf_272) (and (implies (forall (?x787 Int) (implies (and (<= ?x787 uf_76) (<= 0 ?x787)) (implies (< ?x787 uf_302) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x787 uf_7)) uf_300)))) (and (implies (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_301 uf_7)) uf_300) (< uf_301 uf_272)) (implies false true)) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_301 uf_7)) uf_300) (< uf_301 uf_272)))) (forall (?x788 Int) (implies (and (<= ?x788 uf_76) (<= 0 ?x788)) (implies (< ?x788 uf_302) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x788 uf_7)) uf_300)))))) (<= uf_302 uf_272))))))) (and (<= (+ uf_294 1) uf_76) (<= 0 (+ uf_294 1)))))))))))))) (and (= (uf_67 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)))) (and (= (uf_27 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)))))))))))) (and (= (uf_67 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)))) (and (= (uf_27 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)))))))))))))))))))))))))) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (not true) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (and (= (uf_55 uf_273) uf_9) (= (uf_202 uf_295 uf_273) uf_9)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies up_216 (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (= uf_296 uf_292) (implies (= uf_297 uf_294) (implies (= uf_298 uf_293) (implies (= uf_299 uf_292) (implies true (and (implies (forall (?x789 Int) (implies (and (<= ?x789 uf_76) (<= 0 ?x789)) (implies (< ?x789 uf_272) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x789 uf_7)) uf_299)))) (and (implies (exists (?x790 Int) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x790 uf_7)) uf_299) (and (< ?x790 uf_272) (and (<= ?x790 uf_76) (<= 0 ?x790))))) true) (exists (?x791 Int) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x791 uf_7)) uf_299) (and (< ?x791 uf_272) (and (<= ?x791 uf_76) (<= 0 ?x791))))))) (forall (?x792 Int) (implies (and (<= ?x792 uf_76) (<= 0 ?x792)) (implies (< ?x792 uf_272) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x792 uf_7)) uf_299)))))))))))))))) up_216)))))))))))))))))))))) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7)) uf_285) (< 0 uf_272)))) (forall (?x793 Int) (implies (and (<= ?x793 uf_76) (<= 0 ?x793)) (implies (< ?x793 1) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x793 uf_7)) uf_285)))))) (<= 1 uf_272)))))))) (and (= (uf_67 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7) uf_7) uf_9)))) (and (= (uf_27 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7) uf_7) uf_9)))) (= (uf_200 uf_273 (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274))) (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274))) uf_284) uf_9)))))))))))))))))))
-:formula true
-)
--- a/src/HOL/Boogie/Examples/cert/VCC_b_maximum.proof	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8070 +0,0 @@
-#2 := false
-#121 := 0::int
-decl uf_110 :: (-> T4 T5 int)
-decl uf_66 :: (-> T5 int T3 T5)
-decl uf_7 :: T3
-#10 := uf_7
-decl ?x785!14 :: int
-#19054 := ?x785!14
-decl uf_43 :: (-> T3 int T5)
-decl uf_274 :: int
-#2959 := uf_274
-#2960 := (uf_43 uf_7 uf_274)
-#19059 := (uf_66 #2960 ?x785!14 uf_7)
-decl uf_273 :: T4
-#2958 := uf_273
-#19060 := (uf_110 uf_273 #19059)
-#4076 := -1::int
-#19385 := (* -1::int #19060)
-decl uf_300 :: int
-#3186 := uf_300
-#19386 := (+ uf_300 #19385)
-#19387 := (>= #19386 0::int)
-#23584 := (not #19387)
-#19372 := (* -1::int ?x785!14)
-decl uf_302 :: int
-#3196 := uf_302
-#19373 := (+ uf_302 #19372)
-#19374 := (<= #19373 0::int)
-#19056 := (>= ?x785!14 0::int)
-#22816 := (not #19056)
-#7878 := 131073::int
-#19055 := (<= ?x785!14 131073::int)
-#22815 := (not #19055)
-#22831 := (or #22815 #22816 #19374 #19387)
-#22836 := (not #22831)
-#161 := (:var 0 int)
-#3039 := (uf_66 #2960 #161 uf_7)
-#23745 := (pattern #3039)
-#15606 := (<= #161 131073::int)
-#20064 := (not #15606)
-#14120 := (* -1::int uf_300)
-#3040 := (uf_110 uf_273 #3039)
-#14121 := (+ #3040 #14120)
-#14122 := (<= #14121 0::int)
-#14101 := (* -1::int uf_302)
-#14110 := (+ #161 #14101)
-#14109 := (>= #14110 0::int)
-#4084 := (>= #161 0::int)
-#5113 := (not #4084)
-#22797 := (or #5113 #14109 #14122 #20064)
-#23762 := (forall (vars (?x785 int)) (:pat #23745) #22797)
-#23767 := (not #23762)
-decl uf_301 :: int
-#3188 := uf_301
-#14142 := (* -1::int uf_301)
-decl uf_272 :: int
-#2949 := uf_272
-#14143 := (+ uf_272 #14142)
-#14144 := (<= #14143 0::int)
-#3208 := (uf_66 #2960 uf_301 uf_7)
-#3209 := (uf_110 uf_273 #3208)
-#12862 := (= uf_300 #3209)
-#22782 := (not #12862)
-#22783 := (or #22782 #14144)
-#22784 := (not #22783)
-#23770 := (or #22784 #23767)
-#14145 := (not #14144)
-decl uf_294 :: int
-#3055 := uf_294
-#14044 := (* -1::int uf_294)
-#14045 := (+ uf_272 #14044)
-#14046 := (<= #14045 0::int)
-#14049 := (not #14046)
-decl uf_125 :: (-> T5 T5 int)
-decl uf_28 :: (-> int T5)
-decl uf_29 :: (-> T5 int)
-#2992 := (uf_29 #2960)
-#23223 := (uf_28 #2992)
-decl uf_15 :: (-> T5 T3)
-#26404 := (uf_15 #23223)
-decl uf_293 :: int
-#3051 := uf_293
-#26963 := (uf_66 #23223 uf_293 #26404)
-#26964 := (uf_125 #26963 #23223)
-#27037 := (>= #26964 0::int)
-#13947 := (>= uf_293 0::int)
-decl ?x781!15 :: int
-#19190 := ?x781!15
-#19195 := (uf_66 #2960 ?x781!15 uf_7)
-#19196 := (uf_110 uf_273 #19195)
-#19541 := (* -1::int #19196)
-decl uf_299 :: int
-#3138 := uf_299
-#19542 := (+ uf_299 #19541)
-#19543 := (>= #19542 0::int)
-#19528 := (* -1::int ?x781!15)
-#19529 := (+ uf_272 #19528)
-#19530 := (<= #19529 0::int)
-#19192 := (>= ?x781!15 0::int)
-#22993 := (not #19192)
-#19191 := (<= ?x781!15 131073::int)
-#22992 := (not #19191)
-#23008 := (or #22992 #22993 #19530 #19543)
-#23013 := (not #23008)
-#13873 := (* -1::int uf_272)
-#13960 := (+ #161 #13873)
-#13959 := (>= #13960 0::int)
-#3145 := (= #3040 uf_299)
-#22966 := (not #3145)
-#22967 := (or #22966 #5113 #13959 #20064)
-#23886 := (forall (vars (?x782 int)) (:pat #23745) #22967)
-#23891 := (not #23886)
-#13970 := (* -1::int uf_299)
-#13971 := (+ #3040 #13970)
-#13972 := (<= #13971 0::int)
-#22958 := (or #5113 #13959 #13972 #20064)
-#23878 := (forall (vars (?x781 int)) (:pat #23745) #22958)
-#23883 := (not #23878)
-#23894 := (or #23883 #23891)
-#23897 := (not #23894)
-#23900 := (or #23897 #23013)
-#23903 := (not #23900)
-#4 := 1::int
-#13950 := (>= uf_294 1::int)
-#14243 := (not #13950)
-#22873 := (not #13947)
-decl uf_292 :: int
-#3047 := uf_292
-#12576 := (= uf_292 uf_299)
-#12644 := (not #12576)
-decl uf_298 :: int
-#3136 := uf_298
-#12573 := (= uf_293 uf_298)
-#12653 := (not #12573)
-decl uf_297 :: int
-#3134 := uf_297
-#12570 := (= uf_294 uf_297)
-#12662 := (not #12570)
-decl uf_296 :: int
-#3132 := uf_296
-#12567 := (= uf_292 uf_296)
-#12671 := (not #12567)
-#23906 := (or #12671 #12662 #12653 #12644 #22873 #14243 #14049 #23903)
-#23909 := (not #23906)
-#23773 := (not #23770)
-#23776 := (or #23773 #22836)
-#23779 := (not #23776)
-#14102 := (+ uf_272 #14101)
-#14100 := (>= #14102 0::int)
-#14105 := (not #14100)
-#23782 := (or #14105 #23779)
-#23785 := (not #23782)
-#23788 := (or #14105 #23785)
-#23791 := (not #23788)
-#1066 := 131072::int
-#16368 := (<= uf_294 131072::int)
-#19037 := (not #16368)
-#14169 := (+ uf_294 #14101)
-#14168 := (= #14169 -1::int)
-#14172 := (not #14168)
-#1120 := 2::int
-#14092 := (>= uf_302 2::int)
-#22859 := (not #14092)
-#14088 := (>= uf_294 -1::int)
-#19034 := (not #14088)
-#14076 := (>= uf_301 0::int)
-#22858 := (not #14076)
-decl up_280 :: (-> T4 T1 T1 int T3 bool)
-decl uf_4 :: T3
-#7 := uf_4
-decl uf_291 :: T1
-#3030 := uf_291
-decl uf_303 :: T1
-#3198 := uf_303
-#3199 := (up_280 uf_273 uf_303 uf_291 uf_302 uf_4)
-#12942 := (not #3199)
-#23794 := (or #12942 #22858 #19034 #22859 #14172 #19037 #23791)
-#23797 := (not #23794)
-#23800 := (or #19034 #19037 #23797)
-#23803 := (not #23800)
-#13075 := (= uf_294 uf_301)
-#13081 := (not #13075)
-decl uf_304 :: int
-#3239 := uf_304
-#3175 := (uf_66 #2960 uf_294 uf_7)
-#3184 := (uf_110 uf_273 #3175)
-#13070 := (= #3184 uf_304)
-#13133 := (not #13070)
-decl uf_67 :: (-> T4 T5 T2)
-#3181 := (uf_67 uf_273 #3175)
-decl uf_9 :: T2
-#19 := uf_9
-#12812 := (= uf_9 #3181)
-#19017 := (not #12812)
-decl uf_48 :: (-> T5 T3 T2)
-#3178 := (uf_48 #3175 uf_7)
-#12806 := (= uf_9 #3178)
-#19011 := (not #12806)
-#3246 := (= uf_300 uf_304)
-#13090 := (not #3246)
-decl uf_289 :: T1
-#3027 := uf_289
-decl uf_306 :: T1
-#3243 := uf_306
-#3244 := (up_280 uf_273 uf_306 uf_289 uf_294 uf_4)
-#13115 := (not #3244)
-decl uf_287 :: T1
-#3024 := uf_287
-decl uf_305 :: T1
-#3241 := uf_305
-#3242 := (up_280 uf_273 uf_305 uf_287 uf_304 uf_7)
-#13124 := (not #3242)
-#23812 := (or #13124 #13115 #13090 #19011 #19017 #13133 #13081 #14243 #22858 #23803)
-#23815 := (not #23812)
-#23818 := (or #19011 #19017 #23815)
-#23821 := (not #23818)
-decl uf_27 :: (-> T4 T5 T2)
-#3176 := (uf_27 uf_273 #3175)
-#12803 := (= uf_9 #3176)
-#19008 := (not #12803)
-#23824 := (or #19008 #19011 #23821)
-#23827 := (not #23824)
-#23830 := (or #19008 #19011 #23827)
-#23833 := (not #23830)
-#14208 := (* -1::int #3184)
-#14209 := (+ uf_292 #14208)
-#14207 := (>= #14209 0::int)
-#23836 := (or #22873 #14243 #14207 #23833)
-#23839 := (not #23836)
-#14211 := (not #14207)
-#12826 := (= uf_293 uf_301)
-#12993 := (not #12826)
-#12823 := (= uf_292 uf_300)
-#13002 := (not #12823)
-#23806 := (or #13002 #12993 #22873 #14243 #22858 #14211 #23803)
-#23809 := (not #23806)
-#23842 := (or #23809 #23839)
-#23845 := (not #23842)
-#23848 := (or #19011 #19017 #22873 #14243 #23845)
-#23851 := (not #23848)
-#23854 := (or #19011 #19017 #23851)
-#23857 := (not #23854)
-#23860 := (or #19008 #19011 #23857)
-#23863 := (not #23860)
-#23866 := (or #19008 #19011 #23863)
-#23869 := (not #23866)
-#23872 := (or #22873 #14243 #14046 #23869)
-#23875 := (not #23872)
-#23912 := (or #23875 #23909)
-#23915 := (not #23912)
-#14431 := (* -1::int uf_292)
-#14432 := (+ #3040 #14431)
-#14433 := (<= #14432 0::int)
-#14421 := (+ #161 #14044)
-#14420 := (>= #14421 0::int)
-#22774 := (or #5113 #14420 #14433 #20064)
-#23754 := (forall (vars (?x774 int)) (:pat #23745) #22774)
-#23759 := (not #23754)
-#1322 := 255::int
-#16349 := (<= uf_292 255::int)
-#23043 := (not #16349)
-#16332 := (<= uf_293 131073::int)
-#23042 := (not #16332)
-#16310 := (<= uf_294 131073::int)
-#23041 := (not #16310)
-#14490 := (>= uf_292 0::int)
-#23039 := (not #14490)
-#14462 := (>= uf_294 0::int)
-#23038 := (not #14462)
-#14453 := (>= #14045 0::int)
-#14456 := (not #14453)
-#14402 := (* -1::int uf_293)
-#14403 := (+ uf_272 #14402)
-#14404 := (<= #14403 0::int)
-#13942 := (<= uf_272 0::int)
-decl uf_202 :: (-> T1 T4 T2)
-decl uf_295 :: T1
-#3117 := uf_295
-#3118 := (uf_202 uf_295 uf_273)
-#12553 := (= uf_9 #3118)
-#15709 := (not #12553)
-decl uf_177 :: (-> T4 T4 T2)
-#3072 := (uf_177 uf_273 uf_273)
-#12437 := (= uf_9 #3072)
-#14399 := (not #12437)
-#3067 := (uf_66 #2960 uf_293 uf_7)
-#3068 := (uf_110 uf_273 #3067)
-#12426 := (= uf_292 #3068)
-#23037 := (not #12426)
-decl uf_6 :: (-> T3 T3)
-#11 := (uf_6 uf_7)
-decl uf_279 :: T1
-#2990 := uf_279
-#3126 := (up_280 uf_273 uf_295 uf_279 #2992 #11)
-#23036 := (not #3126)
-decl up_278 :: (-> T4 T1 T1 T5 T3 bool)
-#3125 := (up_278 uf_273 uf_295 uf_279 #2960 #11)
-#23035 := (not #3125)
-decl uf_281 :: T1
-#2995 := uf_281
-#3124 := (up_280 uf_273 uf_295 uf_281 uf_272 uf_4)
-#13340 := (not #3124)
-#3123 := (up_280 uf_273 uf_295 uf_287 uf_292 uf_7)
-#13349 := (not #3123)
-#3122 := (up_280 uf_273 uf_295 uf_289 uf_293 uf_4)
-#13358 := (not #3122)
-#3121 := (up_280 uf_273 uf_295 uf_291 uf_294 uf_4)
-#13367 := (not #3121)
-#3011 := (uf_66 #2960 0::int uf_7)
-#3021 := (uf_110 uf_273 #3011)
-decl uf_285 :: int
-#3020 := uf_285
-#3022 := (= uf_285 #3021)
-#13672 := (not #3022)
-#23918 := (or #13672 #13367 #13358 #13349 #13340 #23035 #23036 #23037 #14399 #15709 #13942 #22873 #14243 #14404 #14456 #23038 #23039 #23041 #23042 #23043 #23759 #23915)
-#23921 := (not #23918)
-#23924 := (or #13672 #13942 #23921)
-#23927 := (not #23924)
-#13922 := (* -1::int #3040)
-#13923 := (+ uf_285 #13922)
-#13921 := (>= #13923 0::int)
-#13910 := (>= #161 1::int)
-#22763 := (or #5113 #13910 #13921 #20064)
-#23746 := (forall (vars (?x773 int)) (:pat #23745) #22763)
-#23751 := (not #23746)
-#23930 := (or #23751 #23927)
-#23933 := (not #23930)
-decl ?x773!13 :: int
-#18929 := ?x773!13
-#18939 := (>= ?x773!13 1::int)
-#18934 := (uf_66 #2960 ?x773!13 uf_7)
-#18935 := (uf_110 uf_273 #18934)
-#18936 := (* -1::int #18935)
-#18937 := (+ uf_285 #18936)
-#18938 := (>= #18937 0::int)
-#18931 := (>= ?x773!13 0::int)
-#22737 := (not #18931)
-#18930 := (<= ?x773!13 131073::int)
-#22736 := (not #18930)
-#22752 := (or #22736 #22737 #18938 #18939)
-#22757 := (not #22752)
-#23936 := (or #22757 #23933)
-#23939 := (not #23936)
-#13903 := (>= uf_272 1::int)
-#13906 := (not #13903)
-#23942 := (or #13906 #23939)
-#23945 := (not #23942)
-#23948 := (or #13906 #23945)
-#23951 := (not #23948)
-#3017 := (uf_67 uf_273 #3011)
-#12367 := (= uf_9 #3017)
-#18906 := (not #12367)
-#3014 := (uf_48 #3011 uf_7)
-#12361 := (= uf_9 #3014)
-#18900 := (not #12361)
-decl uf_290 :: T1
-#3029 := uf_290
-#3031 := (up_280 uf_273 uf_290 uf_291 1::int uf_4)
-#13645 := (not #3031)
-decl uf_288 :: T1
-#3026 := uf_288
-#3028 := (up_280 uf_273 uf_288 uf_289 0::int uf_4)
-#13654 := (not #3028)
-decl uf_286 :: T1
-#3023 := uf_286
-#3025 := (up_280 uf_273 uf_286 uf_287 uf_285 uf_7)
-#13663 := (not #3025)
-#23954 := (or #13672 #13663 #13654 #13645 #18900 #18906 #23951)
-#23957 := (not #23954)
-#23960 := (or #18900 #18906 #23957)
-#23963 := (not #23960)
-#3012 := (uf_27 uf_273 #3011)
-#12358 := (= uf_9 #3012)
-#18897 := (not #12358)
-#23966 := (or #18897 #18900 #23963)
-#23969 := (not #23966)
-#23972 := (or #18897 #18900 #23969)
-#23975 := (not #23972)
-decl uf_200 :: (-> T4 T5 T5 T16 T2)
-decl uf_284 :: T16
-#3008 := uf_284
-decl uf_116 :: (-> T5 int)
-#2961 := (uf_116 #2960)
-decl uf_124 :: (-> T3 int T3)
-#2952 := (uf_124 uf_7 uf_272)
-#2962 := (uf_43 #2952 #2961)
-#3009 := (uf_200 uf_273 #2962 #2962 uf_284)
-#12355 := (= uf_9 #3009)
-#13715 := (not #12355)
-#23978 := (or #13715 #23975)
-#23981 := (not #23978)
-decl uf_14 :: (-> T3 T8)
-#24016 := (uf_116 #2962)
-#25404 := (uf_43 #2952 #24016)
-#25815 := (uf_15 #25404)
-#26092 := (uf_14 #25815)
-decl uf_16 :: T8
-#35 := uf_16
-#26095 := (= uf_16 #26092)
-#26297 := (not #26095)
-#2955 := (uf_14 #2952)
-#12296 := (= uf_16 #2955)
-#12299 := (not #12296)
-#26298 := (iff #12299 #26297)
-#26293 := (iff #12296 #26095)
-#26342 := (iff #26095 #12296)
-#26340 := (= #26092 #2955)
-#26338 := (= #25815 #2952)
-#24234 := (uf_15 #2962)
-#28358 := (= #24234 #2952)
-#24237 := (= #2952 #24234)
-#326 := (:var 1 T3)
-#2692 := (uf_43 #326 #161)
-#23682 := (pattern #2692)
-#2696 := (uf_15 #2692)
-#11677 := (= #326 #2696)
-#23689 := (forall (vars (?x720 T3) (?x721 int)) (:pat #23682) #11677)
-#11681 := (forall (vars (?x720 T3) (?x721 int)) #11677)
-#23692 := (iff #11681 #23689)
-#23690 := (iff #11677 #11677)
-#23691 := [refl]: #23690
-#23693 := [quant-intro #23691]: #23692
-#18759 := (~ #11681 #11681)
-#18757 := (~ #11677 #11677)
-#18758 := [refl]: #18757
-#18760 := [nnf-pos #18758]: #18759
-#2697 := (= #2696 #326)
-#2698 := (forall (vars (?x720 T3) (?x721 int)) #2697)
-#11682 := (iff #2698 #11681)
-#11679 := (iff #2697 #11677)
-#11680 := [rewrite]: #11679
-#11683 := [quant-intro #11680]: #11682
-#11676 := [asserted]: #2698
-#11686 := [mp #11676 #11683]: #11681
-#18761 := [mp~ #11686 #18760]: #11681
-#23694 := [mp #18761 #23693]: #23689
-#24181 := (not #23689)
-#24242 := (or #24181 #24237)
-#24243 := [quant-inst]: #24242
-#28006 := [unit-resolution #24243 #23694]: #24237
-#28359 := [symm #28006]: #28358
-#26336 := (= #25815 #24234)
-#27940 := (= #25404 #2962)
-#25411 := (= #2962 #25404)
-#2965 := (uf_48 #2962 #2952)
-#12305 := (= uf_9 #2965)
-decl uf_24 :: (-> T4 T5 T2)
-#2969 := (uf_24 uf_273 #2962)
-#12311 := (= uf_9 #2969)
-decl uf_25 :: (-> T4 T5 T5)
-#2967 := (uf_25 uf_273 #2962)
-decl uf_26 :: T5
-#78 := uf_26
-#12308 := (= uf_26 #2967)
-#2963 := (uf_27 uf_273 #2962)
-#12302 := (= uf_9 #2963)
-decl uf_22 :: (-> T3 T2)
-#2953 := (uf_22 #2952)
-#12293 := (= uf_9 #2953)
-#14658 := (and #12293 #12299 #12302 #12305 #12308 #12311)
-decl uf_269 :: int
-#2937 := uf_269
-#14715 := (>= uf_269 0::int)
-#14711 := (* -1::int uf_269)
-decl uf_78 :: int
-#429 := uf_78
-#14712 := (+ uf_78 #14711)
-#14710 := (>= #14712 0::int)
-#14718 := (and #14710 #14715)
-#14721 := (not #14718)
-decl uf_270 :: int
-#2941 := uf_270
-#14701 := (>= uf_270 0::int)
-#14697 := (* -1::int uf_270)
-decl uf_76 :: int
-#409 := uf_76
-#14698 := (+ uf_76 #14697)
-#14696 := (>= #14698 0::int)
-#14704 := (and #14696 #14701)
-#14707 := (not #14704)
-decl uf_271 :: int
-#2945 := uf_271
-#14687 := (>= uf_271 0::int)
-#14683 := (* -1::int uf_271)
-#14684 := (+ uf_76 #14683)
-#14682 := (>= #14684 0::int)
-#14690 := (and #14682 #14687)
-#14693 := (not #14690)
-#974 := 1099511627776::int
-#14671 := (>= uf_272 1099511627776::int)
-#14661 := (not #14658)
-decl uf_276 :: (-> T19 int)
-#2984 := (:var 0 T19)
-#2985 := (uf_276 #2984)
-#2986 := (pattern #2985)
-decl uf_277 :: int
-#2987 := uf_277
-#14648 := (* -1::int uf_277)
-#14649 := (+ #2985 #14648)
-#14647 := (>= #14649 0::int)
-#14646 := (not #14647)
-#14652 := (forall (vars (?x771 T19)) (:pat #2986) #14646)
-#14655 := (not #14652)
-#13943 := (not #13942)
-#14502 := (and #3022 #13943)
-#14507 := (not #14502)
-#14487 := (+ uf_78 #14431)
-#14486 := (>= #14487 0::int)
-#14493 := (and #14486 #14490)
-#14496 := (not #14493)
-#14472 := (+ uf_76 #14402)
-#14471 := (>= #14472 0::int)
-#14478 := (and #13947 #14471)
-#14483 := (not #14478)
-#14085 := (+ uf_76 #14044)
-#14459 := (>= #14085 0::int)
-#14465 := (and #14459 #14462)
-#14468 := (not #14465)
-#4413 := (* -1::int uf_76)
-#4418 := (+ #161 #4413)
-#4419 := (<= #4418 0::int)
-#5736 := (and #4084 #4419)
-#5739 := (not #5736)
-#14442 := (or #5739 #14420 #14433)
-#14447 := (forall (vars (?x774 int)) #14442)
-#14450 := (not #14447)
-#14405 := (not #14404)
-#14411 := (and #12426 #14405)
-#14416 := (not #14411)
-#14084 := (>= #14085 1::int)
-#14175 := (and #14084 #14088)
-#14178 := (not #14175)
-#14151 := (and #12862 #14145)
-#14131 := (or #5739 #14109 #14122)
-#14136 := (forall (vars (?x785 int)) #14131)
-#14139 := (not #14136)
-#14156 := (or #14139 #14151)
-#14159 := (and #14136 #14156)
-#14162 := (or #14105 #14159)
-#14165 := (and #14100 #14162)
-#14094 := (and #14076 #14092)
-#14097 := (not #14094)
-#14193 := (or #12942 #14097 #14165 #14172 #14178)
-#14201 := (and #14084 #14088 #14193)
-#14078 := (and #13950 #14076)
-#14081 := (not #14078)
-#12818 := (and #12806 #12812)
-#13142 := (not #12818)
-#14267 := (or #13124 #13115 #13090 #13142 #13133 #13081 #14243 #14081 #14201)
-#14275 := (and #12806 #12812 #14267)
-#12809 := (and #12803 #12806)
-#13159 := (not #12809)
-#14280 := (or #13159 #14275)
-#14286 := (and #12803 #12806 #14280)
-#13952 := (and #13947 #13950)
-#13955 := (not #13952)
-#14312 := (or #13955 #14207 #14286)
-#14238 := (or #13002 #12993 #13955 #14081 #14201 #14211)
-#14317 := (and #14238 #14312)
-#14326 := (or #13142 #13955 #14317)
-#14334 := (and #12806 #12812 #14326)
-#14339 := (or #13159 #14334)
-#14345 := (and #12803 #12806 #14339)
-#14371 := (or #13955 #14046 #14345)
-#13958 := (not #13959)
-#13998 := (and #3145 #4084 #4419 #13958)
-#14003 := (exists (vars (?x782 int)) #13998)
-#13981 := (or #5739 #13959 #13972)
-#13986 := (forall (vars (?x781 int)) #13981)
-#13989 := (not #13986)
-#14006 := (or #13989 #14003)
-#14009 := (and #13986 #14006)
-decl up_216 :: bool
-#2477 := up_216
-#12719 := (not up_216)
-#14036 := (or #12719 #12671 #12662 #12653 #12644 #13955 #14009)
-#14041 := (and up_216 #14036)
-#14070 := (or #13955 #14041 #14049)
-#14376 := (and #14070 #14371)
-decl uf_55 :: (-> T4 T2)
-#2978 := (uf_55 uf_273)
-#12332 := (= uf_9 #2978)
-#12556 := (and #12332 #12553)
-#13376 := (not #12556)
-#3127 := (and #3125 #3126)
-#13331 := (not #3127)
-#14573 := (or #13367 #13358 #13349 #13340 #13331 #14399 #13376 #13955 #14376 #14416 #14450 #14456 #14468 #14483 #14496 #14507)
-#14581 := (and #3022 #13943 #14573)
-#13931 := (or #5739 #13910 #13921)
-#13936 := (forall (vars (?x773 int)) #13931)
-#13939 := (not #13936)
-#14586 := (or #13939 #14581)
-#14589 := (and #13936 #14586)
-#14592 := (or #13906 #14589)
-#14595 := (and #13903 #14592)
-#12373 := (and #12361 #12367)
-#13681 := (not #12373)
-#14616 := (or #13672 #13663 #13654 #13645 #13681 #14595)
-#14624 := (and #12361 #12367 #14616)
-#12364 := (and #12358 #12361)
-#13698 := (not #12364)
-#14629 := (or #13698 #14624)
-#14635 := (and #12358 #12361 #14629)
-#14640 := (or #13715 #14635)
-#14643 := (and #12355 #14640)
-#13877 := (>= uf_272 0::int)
-#13874 := (+ uf_76 #13873)
-#13872 := (>= #13874 0::int)
-#13880 := (and #13872 #13877)
-#13883 := (not #13880)
-decl uf_283 :: (-> int T5 T2)
-#26 := (:var 0 T5)
-decl uf_282 :: int
-#2997 := uf_282
-#3000 := (uf_283 uf_282 #26)
-#3001 := (pattern #3000)
-#12341 := (= uf_9 #3000)
-#12347 := (not #12341)
-#12352 := (forall (vars (?x772 T5)) (:pat #3001) #12347)
-#13741 := (not #12352)
-decl uf_275 :: T1
-#2980 := uf_275
-#2981 := (uf_202 uf_275 uf_273)
-#12335 := (= uf_9 #2981)
-#12338 := (and #12332 #12335)
-#13786 := (not #12338)
-decl uf_203 :: (-> T4 T2)
-#2976 := (uf_203 uf_273)
-#12329 := (= uf_9 #2976)
-#13795 := (not #12329)
-decl uf_171 :: (-> T4 int)
-#2998 := (uf_171 uf_273)
-#2999 := (= uf_282 #2998)
-#13750 := (not #2999)
-#2996 := (up_280 uf_273 uf_275 uf_281 uf_272 uf_4)
-#13759 := (not #2996)
-#2993 := (up_280 uf_273 uf_275 uf_279 #2992 #11)
-#2991 := (up_278 uf_273 uf_275 uf_279 #2960 #11)
-#2994 := (and #2991 #2993)
-#13768 := (not #2994)
-#14766 := (or #13768 #13759 #13750 #13795 #13786 #13741 #13883 #13942 #14643 #14655 #14661 #14671 #14693 #14707 #14721)
-#14771 := (not #14766)
-#3010 := (= #3009 uf_9)
-#3015 := (= #3014 uf_9)
-#3013 := (= #3012 uf_9)
-#3016 := (and #3013 #3015)
-#3018 := (= #3017 uf_9)
-#3019 := (and #3018 #3015)
-#3037 := (<= 1::int uf_272)
-#3041 := (<= #3040 uf_285)
-#3038 := (< #161 1::int)
-#3042 := (implies #3038 #3041)
-#285 := (<= 0::int #161)
-#410 := (<= #161 uf_76)
-#645 := (and #410 #285)
-#3043 := (implies #645 #3042)
-#3044 := (forall (vars (?x773 int)) #3043)
-#2951 := (< 0::int uf_272)
-#3045 := (= #3021 uf_285)
-#3046 := (and #3045 #2951)
-#3141 := (<= #3040 uf_299)
-#3140 := (< #161 uf_272)
-#3142 := (implies #3140 #3141)
-#3143 := (implies #645 #3142)
-#3144 := (forall (vars (?x781 int)) #3143)
-#3146 := (and #3140 #645)
-#3147 := (and #3145 #3146)
-#3148 := (exists (vars (?x782 int)) #3147)
-#1 := true
-#3149 := (implies #3148 true)
-#3150 := (and #3149 #3148)
-#3151 := (implies #3144 #3150)
-#3152 := (and #3151 #3144)
-#3153 := (implies true #3152)
-#3139 := (= uf_299 uf_292)
-#3154 := (implies #3139 #3153)
-#3137 := (= uf_298 uf_293)
-#3155 := (implies #3137 #3154)
-#3135 := (= uf_297 uf_294)
-#3156 := (implies #3135 #3155)
-#3133 := (= uf_296 uf_292)
-#3157 := (implies #3133 #3156)
-#3158 := (implies true #3157)
-#3059 := (<= 1::int uf_294)
-#3053 := (<= 0::int uf_293)
-#3060 := (and #3053 #3059)
-#3159 := (implies #3060 #3158)
-#3160 := (implies #3060 #3159)
-#3161 := (implies true #3160)
-#3162 := (implies #3060 #3161)
-#3163 := (implies up_216 #3162)
-#3164 := (and #3163 up_216)
-#3165 := (implies #3060 #3164)
-#3166 := (implies true #3165)
-#3167 := (implies #3060 #3166)
-#3119 := (= #3118 uf_9)
-#2979 := (= #2978 uf_9)
-#3120 := (and #2979 #3119)
-#3295 := (implies #3120 #3167)
-#3296 := (implies #3060 #3295)
-#3297 := (implies true #3296)
-#3298 := (implies #3060 #3297)
-#3294 := (not true)
-#3299 := (implies #3294 #3298)
-#3300 := (implies #3060 #3299)
-#3301 := (implies true #3300)
-#3179 := (= #3178 uf_9)
-#3177 := (= #3176 uf_9)
-#3180 := (and #3177 #3179)
-#3182 := (= #3181 uf_9)
-#3183 := (and #3182 #3179)
-#3192 := (+ uf_294 1::int)
-#3194 := (<= 0::int #3192)
-#3193 := (<= #3192 uf_76)
-#3195 := (and #3193 #3194)
-#3202 := (<= uf_302 uf_272)
-#3204 := (<= #3040 uf_300)
-#3203 := (< #161 uf_302)
-#3205 := (implies #3203 #3204)
-#3206 := (implies #645 #3205)
-#3207 := (forall (vars (?x785 int)) #3206)
-#3211 := (< uf_301 uf_272)
-#3210 := (= #3209 uf_300)
-#3212 := (and #3210 #3211)
-#3213 := (implies false true)
-#3214 := (implies #3212 #3213)
-#3215 := (and #3214 #3212)
-#3216 := (implies #3207 #3215)
-#3217 := (and #3216 #3207)
-#3218 := (implies #3202 #3217)
-#3219 := (and #3218 #3202)
-#3220 := (implies true #3219)
-#3200 := (<= 2::int uf_302)
-#3190 := (<= 0::int uf_301)
-#3201 := (and #3190 #3200)
-#3221 := (implies #3201 #3220)
-#3222 := (implies #3199 #3221)
-#3197 := (= uf_302 #3192)
-#3223 := (implies #3197 #3222)
-#3224 := (implies #3195 #3223)
-#3225 := (and #3224 #3195)
-#3191 := (and #3190 #3059)
-#3226 := (implies #3191 #3225)
-#3227 := (implies true #3226)
-#3247 := (= uf_301 uf_294)
-#3248 := (implies #3247 #3227)
-#3249 := (implies #3246 #3248)
-#3250 := (implies true #3249)
-#3245 := (and #3059 #3059)
-#3251 := (implies #3245 #3250)
-#3252 := (implies #3244 #3251)
-#3253 := (implies #3242 #3252)
-#3240 := (= uf_304 #3184)
-#3254 := (implies #3240 #3253)
-#3255 := (implies #3183 #3254)
-#3256 := (and #3255 #3183)
-#3257 := (implies #3180 #3256)
-#3258 := (and #3257 #3180)
-#3259 := (implies #3060 #3258)
-#3260 := (implies true #3259)
-#3261 := (implies #3060 #3260)
-#3238 := (< uf_292 #3184)
-#3262 := (implies #3238 #3261)
-#3263 := (implies #3060 #3262)
-#3264 := (implies true #3263)
-#3189 := (= uf_301 uf_293)
-#3228 := (implies #3189 #3227)
-#3187 := (= uf_300 uf_292)
-#3229 := (implies #3187 #3228)
-#3230 := (implies true #3229)
-#3231 := (implies #3060 #3230)
-#3232 := (implies #3060 #3231)
-#3233 := (implies true #3232)
-#3234 := (implies #3060 #3233)
-#3185 := (<= #3184 uf_292)
-#3235 := (implies #3185 #3234)
-#3236 := (implies #3060 #3235)
-#3237 := (implies true #3236)
-#3265 := (and #3237 #3264)
-#3266 := (implies #3060 #3265)
-#3267 := (implies #3183 #3266)
-#3268 := (and #3267 #3183)
-#3269 := (implies #3180 #3268)
-#3270 := (and #3269 #3180)
-#3271 := (implies #3060 #3270)
-#3272 := (implies true #3271)
-#3273 := (implies #3060 #3272)
-#3174 := (< uf_294 uf_272)
-#3274 := (implies #3174 #3273)
-#3275 := (implies #3060 #3274)
-#3276 := (implies true #3275)
-#3168 := (implies #3060 #3167)
-#3169 := (implies true #3168)
-#3170 := (implies #3060 #3169)
-#3131 := (<= uf_272 uf_294)
-#3171 := (implies #3131 #3170)
-#3172 := (implies #3060 #3171)
-#3173 := (implies true #3172)
-#3277 := (and #3173 #3276)
-#3278 := (implies #3060 #3277)
-decl uf_59 :: (-> T4 T13)
-#3079 := (uf_59 uf_273)
-#3129 := (= #3079 #3079)
-decl uf_41 :: (-> T4 T12)
-#3088 := (uf_41 uf_273)
-#3128 := (= #3088 #3088)
-#3130 := (and #3128 #3129)
-#3279 := (implies #3130 #3278)
-#3280 := (implies #3127 #3279)
-#3281 := (implies #3124 #3280)
-#3282 := (implies #3123 #3281)
-#3283 := (implies #3122 #3282)
-#3284 := (implies #3121 #3283)
-#3285 := (implies #3120 #3284)
-#3078 := (<= #2998 #2998)
-decl uf_170 :: (-> T4 T5 int)
-#3074 := (uf_170 uf_273 #26)
-#3075 := (pattern #3074)
-#3076 := (<= #3074 #3074)
-#3077 := (forall (vars (?x775 T5)) (:pat #3075) #3076)
-#3115 := (and #3077 #3078)
-#3073 := (= #3072 uf_9)
-#3116 := (and #3073 #3115)
-#3286 := (implies #3116 #3285)
-decl uf_40 :: (-> T12 T5 T11)
-#3089 := (uf_40 #3088 #26)
-#3090 := (pattern #3089)
-decl uf_261 :: T8
-#2832 := uf_261
-#3102 := (uf_25 uf_273 #26)
-#3103 := (uf_15 #3102)
-#3104 := (uf_14 #3103)
-#3105 := (= #3104 uf_261)
-#3106 := (not #3105)
-#3107 := (implies #3106 #3106)
-#3108 := (forall (vars (?x779 T5)) (:pat #3090) #3107)
-decl uf_19 :: (-> T9 T5 int)
-decl uf_20 :: (-> T4 T9)
-#3095 := (uf_20 uf_273)
-#3096 := (uf_19 #3095 #26)
-#3097 := (pattern #3096)
-#3098 := (= #3096 #3096)
-#3082 := (uf_67 uf_273 #26)
-#3083 := (= #3082 uf_9)
-#3099 := (and #3083 #3098)
-#3100 := (implies #3083 #3099)
-#3101 := (forall (vars (?x778 T5)) (:pat #3097) #3100)
-#3109 := (and #3101 #3108)
-#3091 := (= #3089 #3089)
-#3092 := (and #3083 #3091)
-#3093 := (implies #3083 #3092)
-#3094 := (forall (vars (?x777 T5)) (:pat #3090) #3093)
-#3110 := (and #3094 #3109)
-decl uf_58 :: (-> T13 T5 T14)
-#3080 := (uf_58 #3079 #26)
-#3081 := (pattern #3080)
-#3084 := (= #3080 #3080)
-#3085 := (and #3083 #3084)
-#3086 := (implies #3083 #3085)
-#3087 := (forall (vars (?x776 T5)) (:pat #3081) #3086)
-#3111 := (and #3087 #3110)
-#3112 := (and #3078 #3111)
-#3113 := (and #3077 #3112)
-#3114 := (and #3073 #3113)
-#3287 := (implies #3114 #3286)
-#3288 := (implies #3060 #3287)
-#3289 := (implies true #3288)
-#3290 := (implies #3060 #3289)
-#3291 := (implies true #3290)
-#3292 := (implies #3060 #3291)
-#3293 := (implies true #3292)
-#3302 := (and #3293 #3301)
-#3303 := (implies #3060 #3302)
-#3070 := (< uf_293 uf_272)
-#3069 := (= #3068 uf_292)
-#3071 := (and #3069 #3070)
-#3304 := (implies #3071 #3303)
-#3063 := (<= #3040 uf_292)
-#3062 := (< #161 uf_294)
-#3064 := (implies #3062 #3063)
-#3065 := (implies #645 #3064)
-#3066 := (forall (vars (?x774 int)) #3065)
-#3305 := (implies #3066 #3304)
-#3061 := (<= uf_294 uf_272)
-#3306 := (implies #3061 #3305)
-#3307 := (implies #3060 #3306)
-#3057 := (<= 0::int uf_294)
-#3056 := (<= uf_294 uf_76)
-#3058 := (and #3056 #3057)
-#3308 := (implies #3058 #3307)
-#3052 := (<= uf_293 uf_76)
-#3054 := (and #3052 #3053)
-#3309 := (implies #3054 #3308)
-#3049 := (<= 0::int uf_292)
-#3048 := (<= uf_292 uf_78)
-#3050 := (and #3048 #3049)
-#3310 := (implies #3050 #3309)
-#3311 := (implies true #3310)
-#3312 := (implies #3046 #3311)
-#3313 := (and #3312 #3046)
-#3314 := (implies #3044 #3313)
-#3315 := (and #3314 #3044)
-#3316 := (implies #3037 #3315)
-#3317 := (and #3316 #3037)
-#3033 := (<= 1::int 1::int)
-#3034 := (and #3033 #3033)
-#3032 := (<= 0::int 0::int)
-#3035 := (and #3032 #3034)
-#3036 := (and #3032 #3035)
-#3318 := (implies #3036 #3317)
-#3319 := (implies #3031 #3318)
-#3320 := (implies #3028 #3319)
-#3321 := (implies #3025 #3320)
-#3322 := (implies #3022 #3321)
-#3323 := (implies #3019 #3322)
-#3324 := (and #3323 #3019)
-#3325 := (implies #3016 #3324)
-#3326 := (and #3325 #3016)
-#3327 := (implies #3010 #3326)
-#3328 := (and #3327 #3010)
-#3006 := (<= 0::int uf_272)
-#3005 := (<= uf_272 uf_76)
-#3007 := (and #3005 #3006)
-#3329 := (implies #3007 #3328)
-#3002 := (= #3000 uf_9)
-#3003 := (iff #3002 false)
-#3004 := (forall (vars (?x772 T5)) (:pat #3001) #3003)
-#3330 := (implies #3004 #3329)
-#3331 := (implies #2999 #3330)
-#3332 := (implies #2996 #3331)
-#3333 := (implies #2994 #3332)
-#2988 := (< #2985 uf_277)
-#2989 := (forall (vars (?x771 T19)) (:pat #2986) #2988)
-#3334 := (implies #2989 #3333)
-#2982 := (= #2981 uf_9)
-#2983 := (and #2979 #2982)
-#3335 := (implies #2983 #3334)
-#2977 := (= #2976 uf_9)
-#3336 := (implies #2977 #3335)
-#3337 := (implies true #3336)
-#2970 := (= #2969 uf_9)
-#2968 := (= #2967 uf_26)
-#2971 := (and #2968 #2970)
-#2966 := (= #2965 uf_9)
-#2972 := (and #2966 #2971)
-#2964 := (= #2963 uf_9)
-#2973 := (and #2964 #2972)
-#2956 := (= #2955 uf_16)
-#2957 := (not #2956)
-#2974 := (and #2957 #2973)
-#2954 := (= #2953 uf_9)
-#2975 := (and #2954 #2974)
-#3338 := (implies #2975 #3337)
-#3339 := (implies #2951 #3338)
-#2950 := (< uf_272 1099511627776::int)
-#3340 := (implies #2950 #3339)
-#2947 := (<= 0::int uf_271)
-#2946 := (<= uf_271 uf_76)
-#2948 := (and #2946 #2947)
-#3341 := (implies #2948 #3340)
-#2943 := (<= 0::int uf_270)
-#2942 := (<= uf_270 uf_76)
-#2944 := (and #2942 #2943)
-#3342 := (implies #2944 #3341)
-#2939 := (<= 0::int uf_269)
-#2938 := (<= uf_269 uf_78)
-#2940 := (and #2938 #2939)
-#3343 := (implies #2940 #3342)
-#3344 := (implies true #3343)
-#3345 := (not #3344)
-#14774 := (iff #3345 #14771)
-#12868 := (and #3211 #12862)
-#12847 := (not #3203)
-#12848 := (or #12847 #3204)
-#5718 := (and #285 #410)
-#5727 := (not #5718)
-#12854 := (or #5727 #12848)
-#12859 := (forall (vars (?x785 int)) #12854)
-#12892 := (not #12859)
-#12893 := (or #12892 #12868)
-#12901 := (and #12859 #12893)
-#12909 := (not #3202)
-#12910 := (or #12909 #12901)
-#12918 := (and #3202 #12910)
-#12933 := (not #3201)
-#12934 := (or #12933 #12918)
-#12943 := (or #12942 #12934)
-#12832 := (+ 1::int uf_294)
-#12844 := (= uf_302 #12832)
-#12951 := (not #12844)
-#12952 := (or #12951 #12943)
-#12838 := (<= 0::int #12832)
-#12835 := (<= #12832 uf_76)
-#12841 := (and #12835 #12838)
-#12960 := (not #12841)
-#12961 := (or #12960 #12952)
-#12969 := (and #12841 #12961)
-#12829 := (and #3059 #3190)
-#12977 := (not #12829)
-#12978 := (or #12977 #12969)
-#13082 := (or #12978 #13081)
-#13091 := (or #13090 #13082)
-#13106 := (not #3059)
-#13107 := (or #13106 #13091)
-#13116 := (or #13115 #13107)
-#13125 := (or #13124 #13116)
-#13134 := (or #13133 #13125)
-#13143 := (or #13142 #13134)
-#13151 := (and #12818 #13143)
-#13160 := (or #13159 #13151)
-#13168 := (and #12809 #13160)
-#12687 := (not #3060)
-#13176 := (or #12687 #13168)
-#13191 := (or #12687 #13176)
-#13199 := (not #3238)
-#13200 := (or #13199 #13191)
-#13208 := (or #12687 #13200)
-#12994 := (or #12993 #12978)
-#13003 := (or #13002 #12994)
-#13018 := (or #12687 #13003)
-#13026 := (or #12687 #13018)
-#13041 := (or #12687 #13026)
-#13049 := (not #3185)
-#13050 := (or #13049 #13041)
-#13058 := (or #12687 #13050)
-#13220 := (and #13058 #13208)
-#13226 := (or #12687 #13220)
-#13234 := (or #13142 #13226)
-#13242 := (and #12818 #13234)
-#13250 := (or #13159 #13242)
-#13258 := (and #12809 #13250)
-#13266 := (or #12687 #13258)
-#13281 := (or #12687 #13266)
-#13289 := (not #3174)
-#13290 := (or #13289 #13281)
-#13298 := (or #12687 #13290)
-#12594 := (and #3140 #5718)
-#12597 := (and #3145 #12594)
-#12600 := (exists (vars (?x782 int)) #12597)
-#12579 := (not #3140)
-#12580 := (or #12579 #3141)
-#12586 := (or #5727 #12580)
-#12591 := (forall (vars (?x781 int)) #12586)
-#12620 := (not #12591)
-#12621 := (or #12620 #12600)
-#12629 := (and #12591 #12621)
-#12645 := (or #12644 #12629)
-#12654 := (or #12653 #12645)
-#12663 := (or #12662 #12654)
-#12672 := (or #12671 #12663)
-#12688 := (or #12687 #12672)
-#12696 := (or #12687 #12688)
-#12711 := (or #12687 #12696)
-#12720 := (or #12719 #12711)
-#12728 := (and up_216 #12720)
-#12736 := (or #12687 #12728)
-#12751 := (or #12687 #12736)
-#12759 := (or #12687 #12751)
-#12774 := (or #12687 #12759)
-#12782 := (not #3131)
-#12783 := (or #12782 #12774)
-#12791 := (or #12687 #12783)
-#13310 := (and #12791 #13298)
-#13316 := (or #12687 #13310)
-#13332 := (or #13331 #13316)
-#13341 := (or #13340 #13332)
-#13350 := (or #13349 #13341)
-#13359 := (or #13358 #13350)
-#13368 := (or #13367 #13359)
-#13377 := (or #13376 #13368)
-#12544 := (and #3115 #12437)
-#13385 := (not #12544)
-#13386 := (or #13385 #13377)
-#13394 := (or #13385 #13386)
-#13402 := (or #12687 #13394)
-#13417 := (or #12687 #13402)
-#13432 := (or #12687 #13417)
-#13508 := (or #12687 #13432)
-#12432 := (and #3070 #12426)
-#13516 := (not #12432)
-#13517 := (or #13516 #13508)
-#12411 := (not #3062)
-#12412 := (or #12411 #3063)
-#12418 := (or #5727 #12412)
-#12423 := (forall (vars (?x774 int)) #12418)
-#13525 := (not #12423)
-#13526 := (or #13525 #13517)
-#13534 := (not #3061)
-#13535 := (or #13534 #13526)
-#13543 := (or #12687 #13535)
-#13551 := (not #3058)
-#13552 := (or #13551 #13543)
-#13560 := (not #3054)
-#13561 := (or #13560 #13552)
-#13569 := (not #3050)
-#13570 := (or #13569 #13561)
-#12406 := (and #2951 #3022)
-#13585 := (not #12406)
-#13586 := (or #13585 #13570)
-#13594 := (and #12406 #13586)
-#12386 := (not #3038)
-#12387 := (or #12386 #3041)
-#12393 := (or #5727 #12387)
-#12398 := (forall (vars (?x773 int)) #12393)
-#13602 := (not #12398)
-#13603 := (or #13602 #13594)
-#13611 := (and #12398 #13603)
-#13619 := (not #3037)
-#13620 := (or #13619 #13611)
-#13628 := (and #3037 #13620)
-#12380 := (and #3032 #3033)
-#12383 := (and #3032 #12380)
-#13636 := (not #12383)
-#13637 := (or #13636 #13628)
-#13646 := (or #13645 #13637)
-#13655 := (or #13654 #13646)
-#13664 := (or #13663 #13655)
-#13673 := (or #13672 #13664)
-#13682 := (or #13681 #13673)
-#13690 := (and #12373 #13682)
-#13699 := (or #13698 #13690)
-#13707 := (and #12364 #13699)
-#13716 := (or #13715 #13707)
-#13724 := (and #12355 #13716)
-#13732 := (not #3007)
-#13733 := (or #13732 #13724)
-#13742 := (or #13741 #13733)
-#13751 := (or #13750 #13742)
-#13760 := (or #13759 #13751)
-#13769 := (or #13768 #13760)
-#13777 := (not #2989)
-#13778 := (or #13777 #13769)
-#13787 := (or #13786 #13778)
-#13796 := (or #13795 #13787)
-#12314 := (and #12308 #12311)
-#12317 := (and #12305 #12314)
-#12320 := (and #12302 #12317)
-#12323 := (and #12299 #12320)
-#12326 := (and #12293 #12323)
-#13811 := (not #12326)
-#13812 := (or #13811 #13796)
-#13820 := (not #2951)
-#13821 := (or #13820 #13812)
-#13829 := (not #2950)
-#13830 := (or #13829 #13821)
-#13838 := (not #2948)
-#13839 := (or #13838 #13830)
-#13847 := (not #2944)
-#13848 := (or #13847 #13839)
-#13856 := (not #2940)
-#13857 := (or #13856 #13848)
-#13869 := (not #13857)
-#14772 := (iff #13869 #14771)
-#14769 := (iff #13857 #14766)
-#14724 := (or #13883 #14643)
-#14727 := (or #13741 #14724)
-#14730 := (or #13750 #14727)
-#14733 := (or #13759 #14730)
-#14736 := (or #13768 #14733)
-#14739 := (or #14655 #14736)
-#14742 := (or #13786 #14739)
-#14745 := (or #13795 #14742)
-#14748 := (or #14661 #14745)
-#14751 := (or #13942 #14748)
-#14754 := (or #14671 #14751)
-#14757 := (or #14693 #14754)
-#14760 := (or #14707 #14757)
-#14763 := (or #14721 #14760)
-#14767 := (iff #14763 #14766)
-#14768 := [rewrite]: #14767
-#14764 := (iff #13857 #14763)
-#14761 := (iff #13848 #14760)
-#14758 := (iff #13839 #14757)
-#14755 := (iff #13830 #14754)
-#14752 := (iff #13821 #14751)
-#14749 := (iff #13812 #14748)
-#14746 := (iff #13796 #14745)
-#14743 := (iff #13787 #14742)
-#14740 := (iff #13778 #14739)
-#14737 := (iff #13769 #14736)
-#14734 := (iff #13760 #14733)
-#14731 := (iff #13751 #14730)
-#14728 := (iff #13742 #14727)
-#14725 := (iff #13733 #14724)
-#14644 := (iff #13724 #14643)
-#14641 := (iff #13716 #14640)
-#14638 := (iff #13707 #14635)
-#14632 := (and #12364 #14629)
-#14636 := (iff #14632 #14635)
-#14637 := [rewrite]: #14636
-#14633 := (iff #13707 #14632)
-#14630 := (iff #13699 #14629)
-#14627 := (iff #13690 #14624)
-#14621 := (and #12373 #14616)
-#14625 := (iff #14621 #14624)
-#14626 := [rewrite]: #14625
-#14622 := (iff #13690 #14621)
-#14619 := (iff #13682 #14616)
-#14598 := (or false #14595)
-#14601 := (or #13645 #14598)
-#14604 := (or #13654 #14601)
-#14607 := (or #13663 #14604)
-#14610 := (or #13672 #14607)
-#14613 := (or #13681 #14610)
-#14617 := (iff #14613 #14616)
-#14618 := [rewrite]: #14617
-#14614 := (iff #13682 #14613)
-#14611 := (iff #13673 #14610)
-#14608 := (iff #13664 #14607)
-#14605 := (iff #13655 #14604)
-#14602 := (iff #13646 #14601)
-#14599 := (iff #13637 #14598)
-#14596 := (iff #13628 #14595)
-#14593 := (iff #13620 #14592)
-#14590 := (iff #13611 #14589)
-#14587 := (iff #13603 #14586)
-#14584 := (iff #13594 #14581)
-#14499 := (and #13943 #3022)
-#14578 := (and #14499 #14573)
-#14582 := (iff #14578 #14581)
-#14583 := [rewrite]: #14582
-#14579 := (iff #13594 #14578)
-#14576 := (iff #13586 #14573)
-#14510 := (or #13955 #14376)
-#14513 := (or #13331 #14510)
-#14516 := (or #13340 #14513)
-#14519 := (or #13349 #14516)
-#14522 := (or #13358 #14519)
-#14525 := (or #13367 #14522)
-#14528 := (or #13376 #14525)
-#14531 := (or #14399 #14528)
-#14534 := (or #14399 #14531)
-#14537 := (or #13955 #14534)
-#14540 := (or #13955 #14537)
-#14543 := (or #13955 #14540)
-#14546 := (or #13955 #14543)
-#14549 := (or #14416 #14546)
-#14552 := (or #14450 #14549)
-#14555 := (or #14456 #14552)
-#14558 := (or #13955 #14555)
-#14561 := (or #14468 #14558)
-#14564 := (or #14483 #14561)
-#14567 := (or #14496 #14564)
-#14570 := (or #14507 #14567)
-#14574 := (iff #14570 #14573)
-#14575 := [rewrite]: #14574
-#14571 := (iff #13586 #14570)
-#14568 := (iff #13570 #14567)
-#14565 := (iff #13561 #14564)
-#14562 := (iff #13552 #14561)
-#14559 := (iff #13543 #14558)
-#14556 := (iff #13535 #14555)
-#14553 := (iff #13526 #14552)
-#14550 := (iff #13517 #14549)
-#14547 := (iff #13508 #14546)
-#14544 := (iff #13432 #14543)
-#14541 := (iff #13417 #14540)
-#14538 := (iff #13402 #14537)
-#14535 := (iff #13394 #14534)
-#14532 := (iff #13386 #14531)
-#14529 := (iff #13377 #14528)
-#14526 := (iff #13368 #14525)
-#14523 := (iff #13359 #14522)
-#14520 := (iff #13350 #14519)
-#14517 := (iff #13341 #14516)
-#14514 := (iff #13332 #14513)
-#14511 := (iff #13316 #14510)
-#14377 := (iff #13310 #14376)
-#14374 := (iff #13298 #14371)
-#14359 := (or #13955 #14345)
-#14362 := (or #13955 #14359)
-#14365 := (or #14046 #14362)
-#14368 := (or #13955 #14365)
-#14372 := (iff #14368 #14371)
-#14373 := [rewrite]: #14372
-#14369 := (iff #13298 #14368)
-#14366 := (iff #13290 #14365)
-#14363 := (iff #13281 #14362)
-#14360 := (iff #13266 #14359)
-#14348 := (iff #13258 #14345)
-#14342 := (and #12809 #14339)
-#14346 := (iff #14342 #14345)
-#14347 := [rewrite]: #14346
-#14343 := (iff #13258 #14342)
-#14340 := (iff #13250 #14339)
-#14337 := (iff #13242 #14334)
-#14331 := (and #12818 #14326)
-#14335 := (iff #14331 #14334)
-#14336 := [rewrite]: #14335
-#14332 := (iff #13242 #14331)
-#14329 := (iff #13234 #14326)
-#14320 := (or #13955 #14317)
-#14323 := (or #13142 #14320)
-#14327 := (iff #14323 #14326)
-#14328 := [rewrite]: #14327
-#14324 := (iff #13234 #14323)
-#14321 := (iff #13226 #14320)
-#14318 := (iff #13220 #14317)
-#14315 := (iff #13208 #14312)
-#14300 := (or #13955 #14286)
-#14303 := (or #13955 #14300)
-#14306 := (or #14207 #14303)
-#14309 := (or #13955 #14306)
-#14313 := (iff #14309 #14312)
-#14314 := [rewrite]: #14313
-#14310 := (iff #13208 #14309)
-#14307 := (iff #13200 #14306)
-#14304 := (iff #13191 #14303)
-#14301 := (iff #13176 #14300)
-#14289 := (iff #13168 #14286)
-#14283 := (and #12809 #14280)
-#14287 := (iff #14283 #14286)
-#14288 := [rewrite]: #14287
-#14284 := (iff #13168 #14283)
-#14281 := (iff #13160 #14280)
-#14278 := (iff #13151 #14275)
-#14272 := (and #12818 #14267)
-#14276 := (iff #14272 #14275)
-#14277 := [rewrite]: #14276
-#14273 := (iff #13151 #14272)
-#14270 := (iff #13143 #14267)
-#14214 := (or #14081 #14201)
-#14246 := (or #14214 #13081)
-#14249 := (or #13090 #14246)
-#14252 := (or #14243 #14249)
-#14255 := (or #13115 #14252)
-#14258 := (or #13124 #14255)
-#14261 := (or #13133 #14258)
-#14264 := (or #13142 #14261)
-#14268 := (iff #14264 #14267)
-#14269 := [rewrite]: #14268
-#14265 := (iff #13143 #14264)
-#14262 := (iff #13134 #14261)
-#14259 := (iff #13125 #14258)
-#14256 := (iff #13116 #14255)
-#14253 := (iff #13107 #14252)
-#14250 := (iff #13091 #14249)
-#14247 := (iff #13082 #14246)
-#14215 := (iff #12978 #14214)
-#14204 := (iff #12969 #14201)
-#14198 := (and #14175 #14193)
-#14202 := (iff #14198 #14201)
-#14203 := [rewrite]: #14202
-#14199 := (iff #12969 #14198)
-#14196 := (iff #12961 #14193)
-#14181 := (or #14097 #14165)
-#14184 := (or #12942 #14181)
-#14187 := (or #14172 #14184)
-#14190 := (or #14178 #14187)
-#14194 := (iff #14190 #14193)
-#14195 := [rewrite]: #14194
-#14191 := (iff #12961 #14190)
-#14188 := (iff #12952 #14187)
-#14185 := (iff #12943 #14184)
-#14182 := (iff #12934 #14181)
-#14166 := (iff #12918 #14165)
-#14163 := (iff #12910 #14162)
-#14160 := (iff #12901 #14159)
-#14157 := (iff #12893 #14156)
-#14154 := (iff #12868 #14151)
-#14148 := (and #14145 #12862)
-#14152 := (iff #14148 #14151)
-#14153 := [rewrite]: #14152
-#14149 := (iff #12868 #14148)
-#14146 := (iff #3211 #14145)
-#14147 := [rewrite]: #14146
-#14150 := [monotonicity #14147]: #14149
-#14155 := [trans #14150 #14153]: #14154
-#14140 := (iff #12892 #14139)
-#14137 := (iff #12859 #14136)
-#14134 := (iff #12854 #14131)
-#14125 := (or #14109 #14122)
-#14128 := (or #5739 #14125)
-#14132 := (iff #14128 #14131)
-#14133 := [rewrite]: #14132
-#14129 := (iff #12854 #14128)
-#14126 := (iff #12848 #14125)
-#14123 := (iff #3204 #14122)
-#14124 := [rewrite]: #14123
-#14118 := (iff #12847 #14109)
-#14108 := (not #14109)
-#14113 := (not #14108)
-#14116 := (iff #14113 #14109)
-#14117 := [rewrite]: #14116
-#14114 := (iff #12847 #14113)
-#14111 := (iff #3203 #14108)
-#14112 := [rewrite]: #14111
-#14115 := [monotonicity #14112]: #14114
-#14119 := [trans #14115 #14117]: #14118
-#14127 := [monotonicity #14119 #14124]: #14126
-#5740 := (iff #5727 #5739)
-#5737 := (iff #5718 #5736)
-#4420 := (iff #410 #4419)
-#4421 := [rewrite]: #4420
-#4083 := (iff #285 #4084)
-#4085 := [rewrite]: #4083
-#5738 := [monotonicity #4085 #4421]: #5737
-#5741 := [monotonicity #5738]: #5740
-#14130 := [monotonicity #5741 #14127]: #14129
-#14135 := [trans #14130 #14133]: #14134
-#14138 := [quant-intro #14135]: #14137
-#14141 := [monotonicity #14138]: #14140
-#14158 := [monotonicity #14141 #14155]: #14157
-#14161 := [monotonicity #14138 #14158]: #14160
-#14106 := (iff #12909 #14105)
-#14103 := (iff #3202 #14100)
-#14104 := [rewrite]: #14103
-#14107 := [monotonicity #14104]: #14106
-#14164 := [monotonicity #14107 #14161]: #14163
-#14167 := [monotonicity #14104 #14164]: #14166
-#14098 := (iff #12933 #14097)
-#14095 := (iff #3201 #14094)
-#14091 := (iff #3200 #14092)
-#14093 := [rewrite]: #14091
-#14075 := (iff #3190 #14076)
-#14077 := [rewrite]: #14075
-#14096 := [monotonicity #14077 #14093]: #14095
-#14099 := [monotonicity #14096]: #14098
-#14183 := [monotonicity #14099 #14167]: #14182
-#14186 := [monotonicity #14183]: #14185
-#14173 := (iff #12951 #14172)
-#14170 := (iff #12844 #14168)
-#14171 := [rewrite]: #14170
-#14174 := [monotonicity #14171]: #14173
-#14189 := [monotonicity #14174 #14186]: #14188
-#14179 := (iff #12960 #14178)
-#14176 := (iff #12841 #14175)
-#14089 := (iff #12838 #14088)
-#14090 := [rewrite]: #14089
-#14086 := (iff #12835 #14084)
-#14087 := [rewrite]: #14086
-#14177 := [monotonicity #14087 #14090]: #14176
-#14180 := [monotonicity #14177]: #14179
-#14192 := [monotonicity #14180 #14189]: #14191
-#14197 := [trans #14192 #14195]: #14196
-#14200 := [monotonicity #14177 #14197]: #14199
-#14205 := [trans #14200 #14203]: #14204
-#14082 := (iff #12977 #14081)
-#14079 := (iff #12829 #14078)
-#13949 := (iff #3059 #13950)
-#13951 := [rewrite]: #13949
-#14080 := [monotonicity #13951 #14077]: #14079
-#14083 := [monotonicity #14080]: #14082
-#14216 := [monotonicity #14083 #14205]: #14215
-#14248 := [monotonicity #14216]: #14247
-#14251 := [monotonicity #14248]: #14250
-#14244 := (iff #13106 #14243)
-#14245 := [monotonicity #13951]: #14244
-#14254 := [monotonicity #14245 #14251]: #14253
-#14257 := [monotonicity #14254]: #14256
-#14260 := [monotonicity #14257]: #14259
-#14263 := [monotonicity #14260]: #14262
-#14266 := [monotonicity #14263]: #14265
-#14271 := [trans #14266 #14269]: #14270
-#14274 := [monotonicity #14271]: #14273
-#14279 := [trans #14274 #14277]: #14278
-#14282 := [monotonicity #14279]: #14281
-#14285 := [monotonicity #14282]: #14284
-#14290 := [trans #14285 #14288]: #14289
-#13956 := (iff #12687 #13955)
-#13953 := (iff #3060 #13952)
-#13946 := (iff #3053 #13947)
-#13948 := [rewrite]: #13946
-#13954 := [monotonicity #13948 #13951]: #13953
-#13957 := [monotonicity #13954]: #13956
-#14302 := [monotonicity #13957 #14290]: #14301
-#14305 := [monotonicity #13957 #14302]: #14304
-#14298 := (iff #13199 #14207)
-#14293 := (not #14211)
-#14296 := (iff #14293 #14207)
-#14297 := [rewrite]: #14296
-#14294 := (iff #13199 #14293)
-#14291 := (iff #3238 #14211)
-#14292 := [rewrite]: #14291
-#14295 := [monotonicity #14292]: #14294
-#14299 := [trans #14295 #14297]: #14298
-#14308 := [monotonicity #14299 #14305]: #14307
-#14311 := [monotonicity #13957 #14308]: #14310
-#14316 := [trans #14311 #14314]: #14315
-#14241 := (iff #13058 #14238)
-#14217 := (or #12993 #14214)
-#14220 := (or #13002 #14217)
-#14223 := (or #13955 #14220)
-#14226 := (or #13955 #14223)
-#14229 := (or #13955 #14226)
-#14232 := (or #14211 #14229)
-#14235 := (or #13955 #14232)
-#14239 := (iff #14235 #14238)
-#14240 := [rewrite]: #14239
-#14236 := (iff #13058 #14235)
-#14233 := (iff #13050 #14232)
-#14230 := (iff #13041 #14229)
-#14227 := (iff #13026 #14226)
-#14224 := (iff #13018 #14223)
-#14221 := (iff #13003 #14220)
-#14218 := (iff #12994 #14217)
-#14219 := [monotonicity #14216]: #14218
-#14222 := [monotonicity #14219]: #14221
-#14225 := [monotonicity #13957 #14222]: #14224
-#14228 := [monotonicity #13957 #14225]: #14227
-#14231 := [monotonicity #13957 #14228]: #14230
-#14212 := (iff #13049 #14211)
-#14206 := (iff #3185 #14207)
-#14210 := [rewrite]: #14206
-#14213 := [monotonicity #14210]: #14212
-#14234 := [monotonicity #14213 #14231]: #14233
-#14237 := [monotonicity #13957 #14234]: #14236
-#14242 := [trans #14237 #14240]: #14241
-#14319 := [monotonicity #14242 #14316]: #14318
-#14322 := [monotonicity #13957 #14319]: #14321
-#14325 := [monotonicity #14322]: #14324
-#14330 := [trans #14325 #14328]: #14329
-#14333 := [monotonicity #14330]: #14332
-#14338 := [trans #14333 #14336]: #14337
-#14341 := [monotonicity #14338]: #14340
-#14344 := [monotonicity #14341]: #14343
-#14349 := [trans #14344 #14347]: #14348
-#14361 := [monotonicity #13957 #14349]: #14360
-#14364 := [monotonicity #13957 #14361]: #14363
-#14357 := (iff #13289 #14046)
-#14352 := (not #14049)
-#14355 := (iff #14352 #14046)
-#14356 := [rewrite]: #14355
-#14353 := (iff #13289 #14352)
-#14350 := (iff #3174 #14049)
-#14351 := [rewrite]: #14350
-#14354 := [monotonicity #14351]: #14353
-#14358 := [trans #14354 #14356]: #14357
-#14367 := [monotonicity #14358 #14364]: #14366
-#14370 := [monotonicity #13957 #14367]: #14369
-#14375 := [trans #14370 #14373]: #14374
-#14073 := (iff #12791 #14070)
-#14052 := (or #13955 #14041)
-#14055 := (or #13955 #14052)
-#14058 := (or #13955 #14055)
-#14061 := (or #13955 #14058)
-#14064 := (or #14049 #14061)
-#14067 := (or #13955 #14064)
-#14071 := (iff #14067 #14070)
-#14072 := [rewrite]: #14071
-#14068 := (iff #12791 #14067)
-#14065 := (iff #12783 #14064)
-#14062 := (iff #12774 #14061)
-#14059 := (iff #12759 #14058)
-#14056 := (iff #12751 #14055)
-#14053 := (iff #12736 #14052)
-#14042 := (iff #12728 #14041)
-#14039 := (iff #12720 #14036)
-#14012 := (or #12644 #14009)
-#14015 := (or #12653 #14012)
-#14018 := (or #12662 #14015)
-#14021 := (or #12671 #14018)
-#14024 := (or #13955 #14021)
-#14027 := (or #13955 #14024)
-#14030 := (or #13955 #14027)
-#14033 := (or #12719 #14030)
-#14037 := (iff #14033 #14036)
-#14038 := [rewrite]: #14037
-#14034 := (iff #12720 #14033)
-#14031 := (iff #12711 #14030)
-#14028 := (iff #12696 #14027)
-#14025 := (iff #12688 #14024)
-#14022 := (iff #12672 #14021)
-#14019 := (iff #12663 #14018)
-#14016 := (iff #12654 #14015)
-#14013 := (iff #12645 #14012)
-#14010 := (iff #12629 #14009)
-#14007 := (iff #12621 #14006)
-#14004 := (iff #12600 #14003)
-#14001 := (iff #12597 #13998)
-#13992 := (and #13958 #5736)
-#13995 := (and #3145 #13992)
-#13999 := (iff #13995 #13998)
-#14000 := [rewrite]: #13999
-#13996 := (iff #12597 #13995)
-#13993 := (iff #12594 #13992)
-#13961 := (iff #3140 #13958)
-#13962 := [rewrite]: #13961
-#13994 := [monotonicity #13962 #5738]: #13993
-#13997 := [monotonicity #13994]: #13996
-#14002 := [trans #13997 #14000]: #14001
-#14005 := [quant-intro #14002]: #14004
-#13990 := (iff #12620 #13989)
-#13987 := (iff #12591 #13986)
-#13984 := (iff #12586 #13981)
-#13975 := (or #13959 #13972)
-#13978 := (or #5739 #13975)
-#13982 := (iff #13978 #13981)
-#13983 := [rewrite]: #13982
-#13979 := (iff #12586 #13978)
-#13976 := (iff #12580 #13975)
-#13973 := (iff #3141 #13972)
-#13974 := [rewrite]: #13973
-#13968 := (iff #12579 #13959)
-#13963 := (not #13958)
-#13966 := (iff #13963 #13959)
-#13967 := [rewrite]: #13966
-#13964 := (iff #12579 #13963)
-#13965 := [monotonicity #13962]: #13964
-#13969 := [trans #13965 #13967]: #13968
-#13977 := [monotonicity #13969 #13974]: #13976
-#13980 := [monotonicity #5741 #13977]: #13979
-#13985 := [trans #13980 #13983]: #13984
-#13988 := [quant-intro #13985]: #13987
-#13991 := [monotonicity #13988]: #13990
-#14008 := [monotonicity #13991 #14005]: #14007
-#14011 := [monotonicity #13988 #14008]: #14010
-#14014 := [monotonicity #14011]: #14013
-#14017 := [monotonicity #14014]: #14016
-#14020 := [monotonicity #14017]: #14019
-#14023 := [monotonicity #14020]: #14022
-#14026 := [monotonicity #13957 #14023]: #14025
-#14029 := [monotonicity #13957 #14026]: #14028
-#14032 := [monotonicity #13957 #14029]: #14031
-#14035 := [monotonicity #14032]: #14034
-#14040 := [trans #14035 #14038]: #14039
-#14043 := [monotonicity #14040]: #14042
-#14054 := [monotonicity #13957 #14043]: #14053
-#14057 := [monotonicity #13957 #14054]: #14056
-#14060 := [monotonicity #13957 #14057]: #14059
-#14063 := [monotonicity #13957 #14060]: #14062
-#14050 := (iff #12782 #14049)
-#14047 := (iff #3131 #14046)
-#14048 := [rewrite]: #14047
-#14051 := [monotonicity #14048]: #14050
-#14066 := [monotonicity #14051 #14063]: #14065
-#14069 := [monotonicity #13957 #14066]: #14068
-#14074 := [trans #14069 #14072]: #14073
-#14378 := [monotonicity #14074 #14375]: #14377
-#14512 := [monotonicity #13957 #14378]: #14511
-#14515 := [monotonicity #14512]: #14514
-#14518 := [monotonicity #14515]: #14517
-#14521 := [monotonicity #14518]: #14520
-#14524 := [monotonicity #14521]: #14523
-#14527 := [monotonicity #14524]: #14526
-#14530 := [monotonicity #14527]: #14529
-#14400 := (iff #13385 #14399)
-#14397 := (iff #12544 #12437)
-#12517 := (and true true)
-#14392 := (and #12517 #12437)
-#14395 := (iff #14392 #12437)
-#14396 := [rewrite]: #14395
-#14393 := (iff #12544 #14392)
-#14390 := (iff #3115 #12517)
-#14388 := (iff #3078 true)
-#14389 := [rewrite]: #14388
-#14386 := (iff #3077 true)
-#14381 := (forall (vars (?x775 T5)) (:pat #3075) true)
-#14384 := (iff #14381 true)
-#14385 := [elim-unused]: #14384
-#14382 := (iff #3077 #14381)
-#14379 := (iff #3076 true)
-#14380 := [rewrite]: #14379
-#14383 := [quant-intro #14380]: #14382
-#14387 := [trans #14383 #14385]: #14386
-#14391 := [monotonicity #14387 #14389]: #14390
-#14394 := [monotonicity #14391]: #14393
-#14398 := [trans #14394 #14396]: #14397
-#14401 := [monotonicity #14398]: #14400
-#14533 := [monotonicity #14401 #14530]: #14532
-#14536 := [monotonicity #14401 #14533]: #14535
-#14539 := [monotonicity #13957 #14536]: #14538
-#14542 := [monotonicity #13957 #14539]: #14541
-#14545 := [monotonicity #13957 #14542]: #14544
-#14548 := [monotonicity #13957 #14545]: #14547
-#14417 := (iff #13516 #14416)
-#14414 := (iff #12432 #14411)
-#14408 := (and #14405 #12426)
-#14412 := (iff #14408 #14411)
-#14413 := [rewrite]: #14412
-#14409 := (iff #12432 #14408)
-#14406 := (iff #3070 #14405)
-#14407 := [rewrite]: #14406
-#14410 := [monotonicity #14407]: #14409
-#14415 := [trans #14410 #14413]: #14414
-#14418 := [monotonicity #14415]: #14417
-#14551 := [monotonicity #14418 #14548]: #14550
-#14451 := (iff #13525 #14450)
-#14448 := (iff #12423 #14447)
-#14445 := (iff #12418 #14442)
-#14436 := (or #14420 #14433)
-#14439 := (or #5739 #14436)
-#14443 := (iff #14439 #14442)
-#14444 := [rewrite]: #14443
-#14440 := (iff #12418 #14439)
-#14437 := (iff #12412 #14436)
-#14434 := (iff #3063 #14433)
-#14435 := [rewrite]: #14434
-#14429 := (iff #12411 #14420)
-#14419 := (not #14420)
-#14424 := (not #14419)
-#14427 := (iff #14424 #14420)
-#14428 := [rewrite]: #14427
-#14425 := (iff #12411 #14424)
-#14422 := (iff #3062 #14419)
-#14423 := [rewrite]: #14422
-#14426 := [monotonicity #14423]: #14425
-#14430 := [trans #14426 #14428]: #14429
-#14438 := [monotonicity #14430 #14435]: #14437
-#14441 := [monotonicity #5741 #14438]: #14440
-#14446 := [trans #14441 #14444]: #14445
-#14449 := [quant-intro #14446]: #14448
-#14452 := [monotonicity #14449]: #14451
-#14554 := [monotonicity #14452 #14551]: #14553
-#14457 := (iff #13534 #14456)
-#14454 := (iff #3061 #14453)
-#14455 := [rewrite]: #14454
-#14458 := [monotonicity #14455]: #14457
-#14557 := [monotonicity #14458 #14554]: #14556
-#14560 := [monotonicity #13957 #14557]: #14559
-#14469 := (iff #13551 #14468)
-#14466 := (iff #3058 #14465)
-#14463 := (iff #3057 #14462)
-#14464 := [rewrite]: #14463
-#14460 := (iff #3056 #14459)
-#14461 := [rewrite]: #14460
-#14467 := [monotonicity #14461 #14464]: #14466
-#14470 := [monotonicity #14467]: #14469
-#14563 := [monotonicity #14470 #14560]: #14562
-#14484 := (iff #13560 #14483)
-#14481 := (iff #3054 #14478)
-#14475 := (and #14471 #13947)
-#14479 := (iff #14475 #14478)
-#14480 := [rewrite]: #14479
-#14476 := (iff #3054 #14475)
-#14473 := (iff #3052 #14471)
-#14474 := [rewrite]: #14473
-#14477 := [monotonicity #14474 #13948]: #14476
-#14482 := [trans #14477 #14480]: #14481
-#14485 := [monotonicity #14482]: #14484
-#14566 := [monotonicity #14485 #14563]: #14565
-#14497 := (iff #13569 #14496)
-#14494 := (iff #3050 #14493)
-#14491 := (iff #3049 #14490)
-#14492 := [rewrite]: #14491
-#14488 := (iff #3048 #14486)
-#14489 := [rewrite]: #14488
-#14495 := [monotonicity #14489 #14492]: #14494
-#14498 := [monotonicity #14495]: #14497
-#14569 := [monotonicity #14498 #14566]: #14568
-#14508 := (iff #13585 #14507)
-#14505 := (iff #12406 #14502)
-#14503 := (iff #14499 #14502)
-#14504 := [rewrite]: #14503
-#14500 := (iff #12406 #14499)
-#13944 := (iff #2951 #13943)
-#13945 := [rewrite]: #13944
-#14501 := [monotonicity #13945]: #14500
-#14506 := [trans #14501 #14504]: #14505
-#14509 := [monotonicity #14506]: #14508
-#14572 := [monotonicity #14509 #14569]: #14571
-#14577 := [trans #14572 #14575]: #14576
-#14580 := [monotonicity #14501 #14577]: #14579
-#14585 := [trans #14580 #14583]: #14584
-#13940 := (iff #13602 #13939)
-#13937 := (iff #12398 #13936)
-#13934 := (iff #12393 #13931)
-#13925 := (or #13910 #13921)
-#13928 := (or #5739 #13925)
-#13932 := (iff #13928 #13931)
-#13933 := [rewrite]: #13932
-#13929 := (iff #12393 #13928)
-#13926 := (iff #12387 #13925)
-#13920 := (iff #3041 #13921)
-#13924 := [rewrite]: #13920
-#13918 := (iff #12386 #13910)
-#13909 := (not #13910)
-#13913 := (not #13909)
-#13916 := (iff #13913 #13910)
-#13917 := [rewrite]: #13916
-#13914 := (iff #12386 #13913)
-#13911 := (iff #3038 #13909)
-#13912 := [rewrite]: #13911
-#13915 := [monotonicity #13912]: #13914
-#13919 := [trans #13915 #13917]: #13918
-#13927 := [monotonicity #13919 #13924]: #13926
-#13930 := [monotonicity #5741 #13927]: #13929
-#13935 := [trans #13930 #13933]: #13934
-#13938 := [quant-intro #13935]: #13937
-#13941 := [monotonicity #13938]: #13940
-#14588 := [monotonicity #13941 #14585]: #14587
-#14591 := [monotonicity #13938 #14588]: #14590
-#13907 := (iff #13619 #13906)
-#13904 := (iff #3037 #13903)
-#13905 := [rewrite]: #13904
-#13908 := [monotonicity #13905]: #13907
-#14594 := [monotonicity #13908 #14591]: #14593
-#14597 := [monotonicity #13905 #14594]: #14596
-#13901 := (iff #13636 false)
-#13444 := (iff #3294 false)
-#13445 := [rewrite]: #13444
-#13899 := (iff #13636 #3294)
-#13897 := (iff #12383 true)
-#13892 := (and true #12517)
-#13895 := (iff #13892 true)
-#13896 := [rewrite]: #13895
-#13893 := (iff #12383 #13892)
-#13890 := (iff #12380 #12517)
-#13888 := (iff #3033 true)
-#13889 := [rewrite]: #13888
-#13886 := (iff #3032 true)
-#13887 := [rewrite]: #13886
-#13891 := [monotonicity #13887 #13889]: #13890
-#13894 := [monotonicity #13887 #13891]: #13893
-#13898 := [trans #13894 #13896]: #13897
-#13900 := [monotonicity #13898]: #13899
-#13902 := [trans #13900 #13445]: #13901
-#14600 := [monotonicity #13902 #14597]: #14599
-#14603 := [monotonicity #14600]: #14602
-#14606 := [monotonicity #14603]: #14605
-#14609 := [monotonicity #14606]: #14608
-#14612 := [monotonicity #14609]: #14611
-#14615 := [monotonicity #14612]: #14614
-#14620 := [trans #14615 #14618]: #14619
-#14623 := [monotonicity #14620]: #14622
-#14628 := [trans #14623 #14626]: #14627
-#14631 := [monotonicity #14628]: #14630
-#14634 := [monotonicity #14631]: #14633
-#14639 := [trans #14634 #14637]: #14638
-#14642 := [monotonicity #14639]: #14641
-#14645 := [monotonicity #14642]: #14644
-#13884 := (iff #13732 #13883)
-#13881 := (iff #3007 #13880)
-#13878 := (iff #3006 #13877)
-#13879 := [rewrite]: #13878
-#13875 := (iff #3005 #13872)
-#13876 := [rewrite]: #13875
-#13882 := [monotonicity #13876 #13879]: #13881
-#13885 := [monotonicity #13882]: #13884
-#14726 := [monotonicity #13885 #14645]: #14725
-#14729 := [monotonicity #14726]: #14728
-#14732 := [monotonicity #14729]: #14731
-#14735 := [monotonicity #14732]: #14734
-#14738 := [monotonicity #14735]: #14737
-#14656 := (iff #13777 #14655)
-#14653 := (iff #2989 #14652)
-#14650 := (iff #2988 #14646)
-#14651 := [rewrite]: #14650
-#14654 := [quant-intro #14651]: #14653
-#14657 := [monotonicity #14654]: #14656
-#14741 := [monotonicity #14657 #14738]: #14740
-#14744 := [monotonicity #14741]: #14743
-#14747 := [monotonicity #14744]: #14746
-#14662 := (iff #13811 #14661)
-#14659 := (iff #12326 #14658)
-#14660 := [rewrite]: #14659
-#14663 := [monotonicity #14660]: #14662
-#14750 := [monotonicity #14663 #14747]: #14749
-#14669 := (iff #13820 #13942)
-#14664 := (not #13943)
-#14667 := (iff #14664 #13942)
-#14668 := [rewrite]: #14667
-#14665 := (iff #13820 #14664)
-#14666 := [monotonicity #13945]: #14665
-#14670 := [trans #14666 #14668]: #14669
-#14753 := [monotonicity #14670 #14750]: #14752
-#14680 := (iff #13829 #14671)
-#14672 := (not #14671)
-#14675 := (not #14672)
-#14678 := (iff #14675 #14671)
-#14679 := [rewrite]: #14678
-#14676 := (iff #13829 #14675)
-#14673 := (iff #2950 #14672)
-#14674 := [rewrite]: #14673
-#14677 := [monotonicity #14674]: #14676
-#14681 := [trans #14677 #14679]: #14680
-#14756 := [monotonicity #14681 #14753]: #14755
-#14694 := (iff #13838 #14693)
-#14691 := (iff #2948 #14690)
-#14688 := (iff #2947 #14687)
-#14689 := [rewrite]: #14688
-#14685 := (iff #2946 #14682)
-#14686 := [rewrite]: #14685
-#14692 := [monotonicity #14686 #14689]: #14691
-#14695 := [monotonicity #14692]: #14694
-#14759 := [monotonicity #14695 #14756]: #14758
-#14708 := (iff #13847 #14707)
-#14705 := (iff #2944 #14704)
-#14702 := (iff #2943 #14701)
-#14703 := [rewrite]: #14702
-#14699 := (iff #2942 #14696)
-#14700 := [rewrite]: #14699
-#14706 := [monotonicity #14700 #14703]: #14705
-#14709 := [monotonicity #14706]: #14708
-#14762 := [monotonicity #14709 #14759]: #14761
-#14722 := (iff #13856 #14721)
-#14719 := (iff #2940 #14718)
-#14716 := (iff #2939 #14715)
-#14717 := [rewrite]: #14716
-#14713 := (iff #2938 #14710)
-#14714 := [rewrite]: #14713
-#14720 := [monotonicity #14714 #14717]: #14719
-#14723 := [monotonicity #14720]: #14722
-#14765 := [monotonicity #14723 #14762]: #14764
-#14770 := [trans #14765 #14768]: #14769
-#14773 := [monotonicity #14770]: #14772
-#13870 := (iff #3345 #13869)
-#13867 := (iff #3344 #13857)
-#13862 := (implies true #13857)
-#13865 := (iff #13862 #13857)
-#13866 := [rewrite]: #13865
-#13863 := (iff #3344 #13862)
-#13860 := (iff #3343 #13857)
-#13853 := (implies #2940 #13848)
-#13858 := (iff #13853 #13857)
-#13859 := [rewrite]: #13858
-#13854 := (iff #3343 #13853)
-#13851 := (iff #3342 #13848)
-#13844 := (implies #2944 #13839)
-#13849 := (iff #13844 #13848)
-#13850 := [rewrite]: #13849
-#13845 := (iff #3342 #13844)
-#13842 := (iff #3341 #13839)
-#13835 := (implies #2948 #13830)
-#13840 := (iff #13835 #13839)
-#13841 := [rewrite]: #13840
-#13836 := (iff #3341 #13835)
-#13833 := (iff #3340 #13830)
-#13826 := (implies #2950 #13821)
-#13831 := (iff #13826 #13830)
-#13832 := [rewrite]: #13831
-#13827 := (iff #3340 #13826)
-#13824 := (iff #3339 #13821)
-#13817 := (implies #2951 #13812)
-#13822 := (iff #13817 #13821)
-#13823 := [rewrite]: #13822
-#13818 := (iff #3339 #13817)
-#13815 := (iff #3338 #13812)
-#13808 := (implies #12326 #13796)
-#13813 := (iff #13808 #13812)
-#13814 := [rewrite]: #13813
-#13809 := (iff #3338 #13808)
-#13806 := (iff #3337 #13796)
-#13801 := (implies true #13796)
-#13804 := (iff #13801 #13796)
-#13805 := [rewrite]: #13804
-#13802 := (iff #3337 #13801)
-#13799 := (iff #3336 #13796)
-#13792 := (implies #12329 #13787)
-#13797 := (iff #13792 #13796)
-#13798 := [rewrite]: #13797
-#13793 := (iff #3336 #13792)
-#13790 := (iff #3335 #13787)
-#13783 := (implies #12338 #13778)
-#13788 := (iff #13783 #13787)
-#13789 := [rewrite]: #13788
-#13784 := (iff #3335 #13783)
-#13781 := (iff #3334 #13778)
-#13774 := (implies #2989 #13769)
-#13779 := (iff #13774 #13778)
-#13780 := [rewrite]: #13779
-#13775 := (iff #3334 #13774)
-#13772 := (iff #3333 #13769)
-#13765 := (implies #2994 #13760)
-#13770 := (iff #13765 #13769)
-#13771 := [rewrite]: #13770
-#13766 := (iff #3333 #13765)
-#13763 := (iff #3332 #13760)
-#13756 := (implies #2996 #13751)
-#13761 := (iff #13756 #13760)
-#13762 := [rewrite]: #13761
-#13757 := (iff #3332 #13756)
-#13754 := (iff #3331 #13751)
-#13747 := (implies #2999 #13742)
-#13752 := (iff #13747 #13751)
-#13753 := [rewrite]: #13752
-#13748 := (iff #3331 #13747)
-#13745 := (iff #3330 #13742)
-#13738 := (implies #12352 #13733)
-#13743 := (iff #13738 #13742)
-#13744 := [rewrite]: #13743
-#13739 := (iff #3330 #13738)
-#13736 := (iff #3329 #13733)
-#13729 := (implies #3007 #13724)
-#13734 := (iff #13729 #13733)
-#13735 := [rewrite]: #13734
-#13730 := (iff #3329 #13729)
-#13727 := (iff #3328 #13724)
-#13721 := (and #13716 #12355)
-#13725 := (iff #13721 #13724)
-#13726 := [rewrite]: #13725
-#13722 := (iff #3328 #13721)
-#12356 := (iff #3010 #12355)
-#12357 := [rewrite]: #12356
-#13719 := (iff #3327 #13716)
-#13712 := (implies #12355 #13707)
-#13717 := (iff #13712 #13716)
-#13718 := [rewrite]: #13717
-#13713 := (iff #3327 #13712)
-#13710 := (iff #3326 #13707)
-#13704 := (and #13699 #12364)
-#13708 := (iff #13704 #13707)
-#13709 := [rewrite]: #13708
-#13705 := (iff #3326 #13704)
-#12365 := (iff #3016 #12364)
-#12362 := (iff #3015 #12361)
-#12363 := [rewrite]: #12362
-#12359 := (iff #3013 #12358)
-#12360 := [rewrite]: #12359
-#12366 := [monotonicity #12360 #12363]: #12365
-#13702 := (iff #3325 #13699)
-#13695 := (implies #12364 #13690)
-#13700 := (iff #13695 #13699)
-#13701 := [rewrite]: #13700
-#13696 := (iff #3325 #13695)
-#13693 := (iff #3324 #13690)
-#13687 := (and #13682 #12373)
-#13691 := (iff #13687 #13690)
-#13692 := [rewrite]: #13691
-#13688 := (iff #3324 #13687)
-#12376 := (iff #3019 #12373)
-#12370 := (and #12367 #12361)
-#12374 := (iff #12370 #12373)
-#12375 := [rewrite]: #12374
-#12371 := (iff #3019 #12370)
-#12368 := (iff #3018 #12367)
-#12369 := [rewrite]: #12368
-#12372 := [monotonicity #12369 #12363]: #12371
-#12377 := [trans #12372 #12375]: #12376
-#13685 := (iff #3323 #13682)
-#13678 := (implies #12373 #13673)
-#13683 := (iff #13678 #13682)
-#13684 := [rewrite]: #13683
-#13679 := (iff #3323 #13678)
-#13676 := (iff #3322 #13673)
-#13669 := (implies #3022 #13664)
-#13674 := (iff #13669 #13673)
-#13675 := [rewrite]: #13674
-#13670 := (iff #3322 #13669)
-#13667 := (iff #3321 #13664)
-#13660 := (implies #3025 #13655)
-#13665 := (iff #13660 #13664)
-#13666 := [rewrite]: #13665
-#13661 := (iff #3321 #13660)
-#13658 := (iff #3320 #13655)
-#13651 := (implies #3028 #13646)
-#13656 := (iff #13651 #13655)
-#13657 := [rewrite]: #13656
-#13652 := (iff #3320 #13651)
-#13649 := (iff #3319 #13646)
-#13642 := (implies #3031 #13637)
-#13647 := (iff #13642 #13646)
-#13648 := [rewrite]: #13647
-#13643 := (iff #3319 #13642)
-#13640 := (iff #3318 #13637)
-#13633 := (implies #12383 #13628)
-#13638 := (iff #13633 #13637)
-#13639 := [rewrite]: #13638
-#13634 := (iff #3318 #13633)
-#13631 := (iff #3317 #13628)
-#13625 := (and #13620 #3037)
-#13629 := (iff #13625 #13628)
-#13630 := [rewrite]: #13629
-#13626 := (iff #3317 #13625)
-#13623 := (iff #3316 #13620)
-#13616 := (implies #3037 #13611)
-#13621 := (iff #13616 #13620)
-#13622 := [rewrite]: #13621
-#13617 := (iff #3316 #13616)
-#13614 := (iff #3315 #13611)
-#13608 := (and #13603 #12398)
-#13612 := (iff #13608 #13611)
-#13613 := [rewrite]: #13612
-#13609 := (iff #3315 #13608)
-#12399 := (iff #3044 #12398)
-#12396 := (iff #3043 #12393)
-#12390 := (implies #5718 #12387)
-#12394 := (iff #12390 #12393)
-#12395 := [rewrite]: #12394
-#12391 := (iff #3043 #12390)
-#12388 := (iff #3042 #12387)
-#12389 := [rewrite]: #12388
-#5719 := (iff #645 #5718)
-#5720 := [rewrite]: #5719
-#12392 := [monotonicity #5720 #12389]: #12391
-#12397 := [trans #12392 #12395]: #12396
-#12400 := [quant-intro #12397]: #12399
-#13606 := (iff #3314 #13603)
-#13599 := (implies #12398 #13594)
-#13604 := (iff #13599 #13603)
-#13605 := [rewrite]: #13604
-#13600 := (iff #3314 #13599)
-#13597 := (iff #3313 #13594)
-#13591 := (and #13586 #12406)
-#13595 := (iff #13591 #13594)
-#13596 := [rewrite]: #13595
-#13592 := (iff #3313 #13591)
-#12409 := (iff #3046 #12406)
-#12403 := (and #3022 #2951)
-#12407 := (iff #12403 #12406)
-#12408 := [rewrite]: #12407
-#12404 := (iff #3046 #12403)
-#12401 := (iff #3045 #3022)
-#12402 := [rewrite]: #12401
-#12405 := [monotonicity #12402]: #12404
-#12410 := [trans #12405 #12408]: #12409
-#13589 := (iff #3312 #13586)
-#13582 := (implies #12406 #13570)
-#13587 := (iff #13582 #13586)
-#13588 := [rewrite]: #13587
-#13583 := (iff #3312 #13582)
-#13580 := (iff #3311 #13570)
-#13575 := (implies true #13570)
-#13578 := (iff #13575 #13570)
-#13579 := [rewrite]: #13578
-#13576 := (iff #3311 #13575)
-#13573 := (iff #3310 #13570)
-#13566 := (implies #3050 #13561)
-#13571 := (iff #13566 #13570)
-#13572 := [rewrite]: #13571
-#13567 := (iff #3310 #13566)
-#13564 := (iff #3309 #13561)
-#13557 := (implies #3054 #13552)
-#13562 := (iff #13557 #13561)
-#13563 := [rewrite]: #13562
-#13558 := (iff #3309 #13557)
-#13555 := (iff #3308 #13552)
-#13548 := (implies #3058 #13543)
-#13553 := (iff #13548 #13552)
-#13554 := [rewrite]: #13553
-#13549 := (iff #3308 #13548)
-#13546 := (iff #3307 #13543)
-#13540 := (implies #3060 #13535)
-#13544 := (iff #13540 #13543)
-#13545 := [rewrite]: #13544
-#13541 := (iff #3307 #13540)
-#13538 := (iff #3306 #13535)
-#13531 := (implies #3061 #13526)
-#13536 := (iff #13531 #13535)
-#13537 := [rewrite]: #13536
-#13532 := (iff #3306 #13531)
-#13529 := (iff #3305 #13526)
-#13522 := (implies #12423 #13517)
-#13527 := (iff #13522 #13526)
-#13528 := [rewrite]: #13527
-#13523 := (iff #3305 #13522)
-#13520 := (iff #3304 #13517)
-#13513 := (implies #12432 #13508)
-#13518 := (iff #13513 #13517)
-#13519 := [rewrite]: #13518
-#13514 := (iff #3304 #13513)
-#13511 := (iff #3303 #13508)
-#13505 := (implies #3060 #13432)
-#13509 := (iff #13505 #13508)
-#13510 := [rewrite]: #13509
-#13506 := (iff #3303 #13505)
-#13503 := (iff #3302 #13432)
-#13498 := (and #13432 true)
-#13501 := (iff #13498 #13432)
-#13502 := [rewrite]: #13501
-#13499 := (iff #3302 #13498)
-#13496 := (iff #3301 true)
-#13491 := (implies true true)
-#13494 := (iff #13491 true)
-#13495 := [rewrite]: #13494
-#13492 := (iff #3301 #13491)
-#13489 := (iff #3300 true)
-#13484 := (implies #3060 true)
-#13487 := (iff #13484 true)
-#13488 := [rewrite]: #13487
-#13485 := (iff #3300 #13484)
-#13482 := (iff #3299 true)
-#13449 := (or #13376 #12751)
-#13457 := (or #12687 #13449)
-#13472 := (or #12687 #13457)
-#13477 := (implies false #13472)
-#13480 := (iff #13477 true)
-#13481 := [rewrite]: #13480
-#13478 := (iff #3299 #13477)
-#13475 := (iff #3298 #13472)
-#13469 := (implies #3060 #13457)
-#13473 := (iff #13469 #13472)
-#13474 := [rewrite]: #13473
-#13470 := (iff #3298 #13469)
-#13467 := (iff #3297 #13457)
-#13462 := (implies true #13457)
-#13465 := (iff #13462 #13457)
-#13466 := [rewrite]: #13465
-#13463 := (iff #3297 #13462)
-#13460 := (iff #3296 #13457)
-#13454 := (implies #3060 #13449)
-#13458 := (iff #13454 #13457)
-#13459 := [rewrite]: #13458
-#13455 := (iff #3296 #13454)
-#13452 := (iff #3295 #13449)
-#13446 := (implies #12556 #12751)
-#13450 := (iff #13446 #13449)
-#13451 := [rewrite]: #13450
-#13447 := (iff #3295 #13446)
-#12754 := (iff #3167 #12751)
-#12748 := (implies #3060 #12736)
-#12752 := (iff #12748 #12751)
-#12753 := [rewrite]: #12752
-#12749 := (iff #3167 #12748)
-#12746 := (iff #3166 #12736)
-#12741 := (implies true #12736)
-#12744 := (iff #12741 #12736)
-#12745 := [rewrite]: #12744
-#12742 := (iff #3166 #12741)
-#12739 := (iff #3165 #12736)
-#12733 := (implies #3060 #12728)
-#12737 := (iff #12733 #12736)
-#12738 := [rewrite]: #12737
-#12734 := (iff #3165 #12733)
-#12731 := (iff #3164 #12728)
-#12725 := (and #12720 up_216)
-#12729 := (iff #12725 #12728)
-#12730 := [rewrite]: #12729
-#12726 := (iff #3164 #12725)
-#12723 := (iff #3163 #12720)
-#12716 := (implies up_216 #12711)
-#12721 := (iff #12716 #12720)
-#12722 := [rewrite]: #12721
-#12717 := (iff #3163 #12716)
-#12714 := (iff #3162 #12711)
-#12708 := (implies #3060 #12696)
-#12712 := (iff #12708 #12711)
-#12713 := [rewrite]: #12712
-#12709 := (iff #3162 #12708)
-#12706 := (iff #3161 #12696)
-#12701 := (implies true #12696)
-#12704 := (iff #12701 #12696)
-#12705 := [rewrite]: #12704
-#12702 := (iff #3161 #12701)
-#12699 := (iff #3160 #12696)
-#12693 := (implies #3060 #12688)
-#12697 := (iff #12693 #12696)
-#12698 := [rewrite]: #12697
-#12694 := (iff #3160 #12693)
-#12691 := (iff #3159 #12688)
-#12684 := (implies #3060 #12672)
-#12689 := (iff #12684 #12688)
-#12690 := [rewrite]: #12689
-#12685 := (iff #3159 #12684)
-#12682 := (iff #3158 #12672)
-#12677 := (implies true #12672)
-#12680 := (iff #12677 #12672)
-#12681 := [rewrite]: #12680
-#12678 := (iff #3158 #12677)
-#12675 := (iff #3157 #12672)
-#12668 := (implies #12567 #12663)
-#12673 := (iff #12668 #12672)
-#12674 := [rewrite]: #12673
-#12669 := (iff #3157 #12668)
-#12666 := (iff #3156 #12663)
-#12659 := (implies #12570 #12654)
-#12664 := (iff #12659 #12663)
-#12665 := [rewrite]: #12664
-#12660 := (iff #3156 #12659)
-#12657 := (iff #3155 #12654)
-#12650 := (implies #12573 #12645)
-#12655 := (iff #12650 #12654)
-#12656 := [rewrite]: #12655
-#12651 := (iff #3155 #12650)
-#12648 := (iff #3154 #12645)
-#12641 := (implies #12576 #12629)
-#12646 := (iff #12641 #12645)
-#12647 := [rewrite]: #12646
-#12642 := (iff #3154 #12641)
-#12639 := (iff #3153 #12629)
-#12634 := (implies true #12629)
-#12637 := (iff #12634 #12629)
-#12638 := [rewrite]: #12637
-#12635 := (iff #3153 #12634)
-#12632 := (iff #3152 #12629)
-#12626 := (and #12621 #12591)
-#12630 := (iff #12626 #12629)
-#12631 := [rewrite]: #12630
-#12627 := (iff #3152 #12626)
-#12592 := (iff #3144 #12591)
-#12589 := (iff #3143 #12586)
-#12583 := (implies #5718 #12580)
-#12587 := (iff #12583 #12586)
-#12588 := [rewrite]: #12587
-#12584 := (iff #3143 #12583)
-#12581 := (iff #3142 #12580)
-#12582 := [rewrite]: #12581
-#12585 := [monotonicity #5720 #12582]: #12584
-#12590 := [trans #12585 #12588]: #12589
-#12593 := [quant-intro #12590]: #12592
-#12624 := (iff #3151 #12621)
-#12617 := (implies #12591 #12600)
-#12622 := (iff #12617 #12621)
-#12623 := [rewrite]: #12622
-#12618 := (iff #3151 #12617)
-#12615 := (iff #3150 #12600)
-#12610 := (and true #12600)
-#12613 := (iff #12610 #12600)
-#12614 := [rewrite]: #12613
-#12611 := (iff #3150 #12610)
-#12601 := (iff #3148 #12600)
-#12598 := (iff #3147 #12597)
-#12595 := (iff #3146 #12594)
-#12596 := [monotonicity #5720]: #12595
-#12599 := [monotonicity #12596]: #12598
-#12602 := [quant-intro #12599]: #12601
-#12608 := (iff #3149 true)
-#12603 := (implies #12600 true)
-#12606 := (iff #12603 true)
-#12607 := [rewrite]: #12606
-#12604 := (iff #3149 #12603)
-#12605 := [monotonicity #12602]: #12604
-#12609 := [trans #12605 #12607]: #12608
-#12612 := [monotonicity #12609 #12602]: #12611
-#12616 := [trans #12612 #12614]: #12615
-#12619 := [monotonicity #12593 #12616]: #12618
-#12625 := [trans #12619 #12623]: #12624
-#12628 := [monotonicity #12625 #12593]: #12627
-#12633 := [trans #12628 #12631]: #12632
-#12636 := [monotonicity #12633]: #12635
-#12640 := [trans #12636 #12638]: #12639
-#12577 := (iff #3139 #12576)
-#12578 := [rewrite]: #12577
-#12643 := [monotonicity #12578 #12640]: #12642
-#12649 := [trans #12643 #12647]: #12648
-#12574 := (iff #3137 #12573)
-#12575 := [rewrite]: #12574
-#12652 := [monotonicity #12575 #12649]: #12651
-#12658 := [trans #12652 #12656]: #12657
-#12571 := (iff #3135 #12570)
-#12572 := [rewrite]: #12571
-#12661 := [monotonicity #12572 #12658]: #12660
-#12667 := [trans #12661 #12665]: #12666
-#12568 := (iff #3133 #12567)
-#12569 := [rewrite]: #12568
-#12670 := [monotonicity #12569 #12667]: #12669
-#12676 := [trans #12670 #12674]: #12675
-#12679 := [monotonicity #12676]: #12678
-#12683 := [trans #12679 #12681]: #12682
-#12686 := [monotonicity #12683]: #12685
-#12692 := [trans #12686 #12690]: #12691
-#12695 := [monotonicity #12692]: #12694
-#12700 := [trans #12695 #12698]: #12699
-#12703 := [monotonicity #12700]: #12702
-#12707 := [trans #12703 #12705]: #12706
-#12710 := [monotonicity #12707]: #12709
-#12715 := [trans #12710 #12713]: #12714
-#12718 := [monotonicity #12715]: #12717
-#12724 := [trans #12718 #12722]: #12723
-#12727 := [monotonicity #12724]: #12726
-#12732 := [trans #12727 #12730]: #12731
-#12735 := [monotonicity #12732]: #12734
-#12740 := [trans #12735 #12738]: #12739
-#12743 := [monotonicity #12740]: #12742
-#12747 := [trans #12743 #12745]: #12746
-#12750 := [monotonicity #12747]: #12749
-#12755 := [trans #12750 #12753]: #12754
-#12557 := (iff #3120 #12556)
-#12554 := (iff #3119 #12553)
-#12555 := [rewrite]: #12554
-#12333 := (iff #2979 #12332)
-#12334 := [rewrite]: #12333
-#12558 := [monotonicity #12334 #12555]: #12557
-#13448 := [monotonicity #12558 #12755]: #13447
-#13453 := [trans #13448 #13451]: #13452
-#13456 := [monotonicity #13453]: #13455
-#13461 := [trans #13456 #13459]: #13460
-#13464 := [monotonicity #13461]: #13463
-#13468 := [trans #13464 #13466]: #13467
-#13471 := [monotonicity #13468]: #13470
-#13476 := [trans #13471 #13474]: #13475
-#13479 := [monotonicity #13445 #13476]: #13478
-#13483 := [trans #13479 #13481]: #13482
-#13486 := [monotonicity #13483]: #13485
-#13490 := [trans #13486 #13488]: #13489
-#13493 := [monotonicity #13490]: #13492
-#13497 := [trans #13493 #13495]: #13496
-#13442 := (iff #3293 #13432)
-#13437 := (implies true #13432)
-#13440 := (iff #13437 #13432)
-#13441 := [rewrite]: #13440
-#13438 := (iff #3293 #13437)
-#13435 := (iff #3292 #13432)
-#13429 := (implies #3060 #13417)
-#13433 := (iff #13429 #13432)
-#13434 := [rewrite]: #13433
-#13430 := (iff #3292 #13429)
-#13427 := (iff #3291 #13417)
-#13422 := (implies true #13417)
-#13425 := (iff #13422 #13417)
-#13426 := [rewrite]: #13425
-#13423 := (iff #3291 #13422)
-#13420 := (iff #3290 #13417)
-#13414 := (implies #3060 #13402)
-#13418 := (iff #13414 #13417)
-#13419 := [rewrite]: #13418
-#13415 := (iff #3290 #13414)
-#13412 := (iff #3289 #13402)
-#13407 := (implies true #13402)
-#13410 := (iff #13407 #13402)
-#13411 := [rewrite]: #13410
-#13408 := (iff #3289 #13407)
-#13405 := (iff #3288 #13402)
-#13399 := (implies #3060 #13394)
-#13403 := (iff #13399 #13402)
-#13404 := [rewrite]: #13403
-#13400 := (iff #3288 #13399)
-#13397 := (iff #3287 #13394)
-#13391 := (implies #12544 #13386)
-#13395 := (iff #13391 #13394)
-#13396 := [rewrite]: #13395
-#13392 := (iff #3287 #13391)
-#13389 := (iff #3286 #13386)
-#13382 := (implies #12544 #13377)
-#13387 := (iff #13382 #13386)
-#13388 := [rewrite]: #13387
-#13383 := (iff #3286 #13382)
-#13380 := (iff #3285 #13377)
-#13373 := (implies #12556 #13368)
-#13378 := (iff #13373 #13377)
-#13379 := [rewrite]: #13378
-#13374 := (iff #3285 #13373)
-#13371 := (iff #3284 #13368)
-#13364 := (implies #3121 #13359)
-#13369 := (iff #13364 #13368)
-#13370 := [rewrite]: #13369
-#13365 := (iff #3284 #13364)
-#13362 := (iff #3283 #13359)
-#13355 := (implies #3122 #13350)
-#13360 := (iff #13355 #13359)
-#13361 := [rewrite]: #13360
-#13356 := (iff #3283 #13355)
-#13353 := (iff #3282 #13350)
-#13346 := (implies #3123 #13341)
-#13351 := (iff #13346 #13350)
-#13352 := [rewrite]: #13351
-#13347 := (iff #3282 #13346)
-#13344 := (iff #3281 #13341)
-#13337 := (implies #3124 #13332)
-#13342 := (iff #13337 #13341)
-#13343 := [rewrite]: #13342
-#13338 := (iff #3281 #13337)
-#13335 := (iff #3280 #13332)
-#13328 := (implies #3127 #13316)
-#13333 := (iff #13328 #13332)
-#13334 := [rewrite]: #13333
-#13329 := (iff #3280 #13328)
-#13326 := (iff #3279 #13316)
-#13321 := (implies true #13316)
-#13324 := (iff #13321 #13316)
-#13325 := [rewrite]: #13324
-#13322 := (iff #3279 #13321)
-#13319 := (iff #3278 #13316)
-#13313 := (implies #3060 #13310)
-#13317 := (iff #13313 #13316)
-#13318 := [rewrite]: #13317
-#13314 := (iff #3278 #13313)
-#13311 := (iff #3277 #13310)
-#13308 := (iff #3276 #13298)
-#13303 := (implies true #13298)
-#13306 := (iff #13303 #13298)
-#13307 := [rewrite]: #13306
-#13304 := (iff #3276 #13303)
-#13301 := (iff #3275 #13298)
-#13295 := (implies #3060 #13290)
-#13299 := (iff #13295 #13298)
-#13300 := [rewrite]: #13299
-#13296 := (iff #3275 #13295)
-#13293 := (iff #3274 #13290)
-#13286 := (implies #3174 #13281)
-#13291 := (iff #13286 #13290)
-#13292 := [rewrite]: #13291
-#13287 := (iff #3274 #13286)
-#13284 := (iff #3273 #13281)
-#13278 := (implies #3060 #13266)
-#13282 := (iff #13278 #13281)
-#13283 := [rewrite]: #13282
-#13279 := (iff #3273 #13278)
-#13276 := (iff #3272 #13266)
-#13271 := (implies true #13266)
-#13274 := (iff #13271 #13266)
-#13275 := [rewrite]: #13274
-#13272 := (iff #3272 #13271)
-#13269 := (iff #3271 #13266)
-#13263 := (implies #3060 #13258)
-#13267 := (iff #13263 #13266)
-#13268 := [rewrite]: #13267
-#13264 := (iff #3271 #13263)
-#13261 := (iff #3270 #13258)
-#13255 := (and #13250 #12809)
-#13259 := (iff #13255 #13258)
-#13260 := [rewrite]: #13259
-#13256 := (iff #3270 #13255)
-#12810 := (iff #3180 #12809)
-#12807 := (iff #3179 #12806)
-#12808 := [rewrite]: #12807
-#12804 := (iff #3177 #12803)
-#12805 := [rewrite]: #12804
-#12811 := [monotonicity #12805 #12808]: #12810
-#13253 := (iff #3269 #13250)
-#13247 := (implies #12809 #13242)
-#13251 := (iff #13247 #13250)
-#13252 := [rewrite]: #13251
-#13248 := (iff #3269 #13247)
-#13245 := (iff #3268 #13242)
-#13239 := (and #13234 #12818)
-#13243 := (iff #13239 #13242)
-#13244 := [rewrite]: #13243
-#13240 := (iff #3268 #13239)
-#12821 := (iff #3183 #12818)
-#12815 := (and #12812 #12806)
-#12819 := (iff #12815 #12818)
-#12820 := [rewrite]: #12819
-#12816 := (iff #3183 #12815)
-#12813 := (iff #3182 #12812)
-#12814 := [rewrite]: #12813
-#12817 := [monotonicity #12814 #12808]: #12816
-#12822 := [trans #12817 #12820]: #12821
-#13237 := (iff #3267 #13234)
-#13231 := (implies #12818 #13226)
-#13235 := (iff #13231 #13234)
-#13236 := [rewrite]: #13235
-#13232 := (iff #3267 #13231)
-#13229 := (iff #3266 #13226)
-#13223 := (implies #3060 #13220)
-#13227 := (iff #13223 #13226)
-#13228 := [rewrite]: #13227
-#13224 := (iff #3266 #13223)
-#13221 := (iff #3265 #13220)
-#13218 := (iff #3264 #13208)
-#13213 := (implies true #13208)
-#13216 := (iff #13213 #13208)
-#13217 := [rewrite]: #13216
-#13214 := (iff #3264 #13213)
-#13211 := (iff #3263 #13208)
-#13205 := (implies #3060 #13200)
-#13209 := (iff #13205 #13208)
-#13210 := [rewrite]: #13209
-#13206 := (iff #3263 #13205)
-#13203 := (iff #3262 #13200)
-#13196 := (implies #3238 #13191)
-#13201 := (iff #13196 #13200)
-#13202 := [rewrite]: #13201
-#13197 := (iff #3262 #13196)
-#13194 := (iff #3261 #13191)
-#13188 := (implies #3060 #13176)
-#13192 := (iff #13188 #13191)
-#13193 := [rewrite]: #13192
-#13189 := (iff #3261 #13188)
-#13186 := (iff #3260 #13176)
-#13181 := (implies true #13176)
-#13184 := (iff #13181 #13176)
-#13185 := [rewrite]: #13184
-#13182 := (iff #3260 #13181)
-#13179 := (iff #3259 #13176)
-#13173 := (implies #3060 #13168)
-#13177 := (iff #13173 #13176)
-#13178 := [rewrite]: #13177
-#13174 := (iff #3259 #13173)
-#13171 := (iff #3258 #13168)
-#13165 := (and #13160 #12809)
-#13169 := (iff #13165 #13168)
-#13170 := [rewrite]: #13169
-#13166 := (iff #3258 #13165)
-#13163 := (iff #3257 #13160)
-#13156 := (implies #12809 #13151)
-#13161 := (iff #13156 #13160)
-#13162 := [rewrite]: #13161
-#13157 := (iff #3257 #13156)
-#13154 := (iff #3256 #13151)
-#13148 := (and #13143 #12818)
-#13152 := (iff #13148 #13151)
-#13153 := [rewrite]: #13152
-#13149 := (iff #3256 #13148)
-#13146 := (iff #3255 #13143)
-#13139 := (implies #12818 #13134)
-#13144 := (iff #13139 #13143)
-#13145 := [rewrite]: #13144
-#13140 := (iff #3255 #13139)
-#13137 := (iff #3254 #13134)
-#13130 := (implies #13070 #13125)
-#13135 := (iff #13130 #13134)
-#13136 := [rewrite]: #13135
-#13131 := (iff #3254 #13130)
-#13128 := (iff #3253 #13125)
-#13121 := (implies #3242 #13116)
-#13126 := (iff #13121 #13125)
-#13127 := [rewrite]: #13126
-#13122 := (iff #3253 #13121)
-#13119 := (iff #3252 #13116)
-#13112 := (implies #3244 #13107)
-#13117 := (iff #13112 #13116)
-#13118 := [rewrite]: #13117
-#13113 := (iff #3252 #13112)
-#13110 := (iff #3251 #13107)
-#13103 := (implies #3059 #13091)
-#13108 := (iff #13103 #13107)
-#13109 := [rewrite]: #13108
-#13104 := (iff #3251 #13103)
-#13101 := (iff #3250 #13091)
-#13096 := (implies true #13091)
-#13099 := (iff #13096 #13091)
-#13100 := [rewrite]: #13099
-#13097 := (iff #3250 #13096)
-#13094 := (iff #3249 #13091)
-#13087 := (implies #3246 #13082)
-#13092 := (iff #13087 #13091)
-#13093 := [rewrite]: #13092
-#13088 := (iff #3249 #13087)
-#13085 := (iff #3248 #13082)
-#13078 := (implies #13075 #12978)
-#13083 := (iff #13078 #13082)
-#13084 := [rewrite]: #13083
-#13079 := (iff #3248 #13078)
-#12988 := (iff #3227 #12978)
-#12983 := (implies true #12978)
-#12986 := (iff #12983 #12978)
-#12987 := [rewrite]: #12986
-#12984 := (iff #3227 #12983)
-#12981 := (iff #3226 #12978)
-#12974 := (implies #12829 #12969)
-#12979 := (iff #12974 #12978)
-#12980 := [rewrite]: #12979
-#12975 := (iff #3226 #12974)
-#12972 := (iff #3225 #12969)
-#12966 := (and #12961 #12841)
-#12970 := (iff #12966 #12969)
-#12971 := [rewrite]: #12970
-#12967 := (iff #3225 #12966)
-#12842 := (iff #3195 #12841)
-#12839 := (iff #3194 #12838)
-#12833 := (= #3192 #12832)
-#12834 := [rewrite]: #12833
-#12840 := [monotonicity #12834]: #12839
-#12836 := (iff #3193 #12835)
-#12837 := [monotonicity #12834]: #12836
-#12843 := [monotonicity #12837 #12840]: #12842
-#12964 := (iff #3224 #12961)
-#12957 := (implies #12841 #12952)
-#12962 := (iff #12957 #12961)
-#12963 := [rewrite]: #12962
-#12958 := (iff #3224 #12957)
-#12955 := (iff #3223 #12952)
-#12948 := (implies #12844 #12943)
-#12953 := (iff #12948 #12952)
-#12954 := [rewrite]: #12953
-#12949 := (iff #3223 #12948)
-#12946 := (iff #3222 #12943)
-#12939 := (implies #3199 #12934)
-#12944 := (iff #12939 #12943)
-#12945 := [rewrite]: #12944
-#12940 := (iff #3222 #12939)
-#12937 := (iff #3221 #12934)
-#12930 := (implies #3201 #12918)
-#12935 := (iff #12930 #12934)
-#12936 := [rewrite]: #12935
-#12931 := (iff #3221 #12930)
-#12928 := (iff #3220 #12918)
-#12923 := (implies true #12918)
-#12926 := (iff #12923 #12918)
-#12927 := [rewrite]: #12926
-#12924 := (iff #3220 #12923)
-#12921 := (iff #3219 #12918)
-#12915 := (and #12910 #3202)
-#12919 := (iff #12915 #12918)
-#12920 := [rewrite]: #12919
-#12916 := (iff #3219 #12915)
-#12913 := (iff #3218 #12910)
-#12906 := (implies #3202 #12901)
-#12911 := (iff #12906 #12910)
-#12912 := [rewrite]: #12911
-#12907 := (iff #3218 #12906)
-#12904 := (iff #3217 #12901)
-#12898 := (and #12893 #12859)
-#12902 := (iff #12898 #12901)
-#12903 := [rewrite]: #12902
-#12899 := (iff #3217 #12898)
-#12860 := (iff #3207 #12859)
-#12857 := (iff #3206 #12854)
-#12851 := (implies #5718 #12848)
-#12855 := (iff #12851 #12854)
-#12856 := [rewrite]: #12855
-#12852 := (iff #3206 #12851)
-#12849 := (iff #3205 #12848)
-#12850 := [rewrite]: #12849
-#12853 := [monotonicity #5720 #12850]: #12852
-#12858 := [trans #12853 #12856]: #12857
-#12861 := [quant-intro #12858]: #12860
-#12896 := (iff #3216 #12893)
-#12889 := (implies #12859 #12868)
-#12894 := (iff #12889 #12893)
-#12895 := [rewrite]: #12894
-#12890 := (iff #3216 #12889)
-#12887 := (iff #3215 #12868)
-#12882 := (and true #12868)
-#12885 := (iff #12882 #12868)
-#12886 := [rewrite]: #12885
-#12883 := (iff #3215 #12882)
-#12871 := (iff #3212 #12868)
-#12865 := (and #12862 #3211)
-#12869 := (iff #12865 #12868)
-#12870 := [rewrite]: #12869
-#12866 := (iff #3212 #12865)
-#12863 := (iff #3210 #12862)
-#12864 := [rewrite]: #12863
-#12867 := [monotonicity #12864]: #12866
-#12872 := [trans #12867 #12870]: #12871
-#12880 := (iff #3214 true)
-#12875 := (implies #12868 true)
-#12878 := (iff #12875 true)
-#12879 := [rewrite]: #12878
-#12876 := (iff #3214 #12875)
-#12873 := (iff #3213 true)
-#12874 := [rewrite]: #12873
-#12877 := [monotonicity #12872 #12874]: #12876
-#12881 := [trans #12877 #12879]: #12880
-#12884 := [monotonicity #12881 #12872]: #12883
-#12888 := [trans #12884 #12886]: #12887
-#12891 := [monotonicity #12861 #12888]: #12890
-#12897 := [trans #12891 #12895]: #12896
-#12900 := [monotonicity #12897 #12861]: #12899
-#12905 := [trans #12900 #12903]: #12904
-#12908 := [monotonicity #12905]: #12907
-#12914 := [trans #12908 #12912]: #12913
-#12917 := [monotonicity #12914]: #12916
-#12922 := [trans #12917 #12920]: #12921
-#12925 := [monotonicity #12922]: #12924
-#12929 := [trans #12925 #12927]: #12928
-#12932 := [monotonicity #12929]: #12931
-#12938 := [trans #12932 #12936]: #12937
-#12941 := [monotonicity #12938]: #12940
-#12947 := [trans #12941 #12945]: #12946
-#12845 := (iff #3197 #12844)
-#12846 := [monotonicity #12834]: #12845
-#12950 := [monotonicity #12846 #12947]: #12949
-#12956 := [trans #12950 #12954]: #12955
-#12959 := [monotonicity #12843 #12956]: #12958
-#12965 := [trans #12959 #12963]: #12964
-#12968 := [monotonicity #12965 #12843]: #12967
-#12973 := [trans #12968 #12971]: #12972
-#12830 := (iff #3191 #12829)
-#12831 := [rewrite]: #12830
-#12976 := [monotonicity #12831 #12973]: #12975
-#12982 := [trans #12976 #12980]: #12981
-#12985 := [monotonicity #12982]: #12984
-#12989 := [trans #12985 #12987]: #12988
-#13076 := (iff #3247 #13075)
-#13077 := [rewrite]: #13076
-#13080 := [monotonicity #13077 #12989]: #13079
-#13086 := [trans #13080 #13084]: #13085
-#13089 := [monotonicity #13086]: #13088
-#13095 := [trans #13089 #13093]: #13094
-#13098 := [monotonicity #13095]: #13097
-#13102 := [trans #13098 #13100]: #13101
-#13073 := (iff #3245 #3059)
-#13074 := [rewrite]: #13073
-#13105 := [monotonicity #13074 #13102]: #13104
-#13111 := [trans #13105 #13109]: #13110
-#13114 := [monotonicity #13111]: #13113
-#13120 := [trans #13114 #13118]: #13119
-#13123 := [monotonicity #13120]: #13122
-#13129 := [trans #13123 #13127]: #13128
-#13071 := (iff #3240 #13070)
-#13072 := [rewrite]: #13071
-#13132 := [monotonicity #13072 #13129]: #13131
-#13138 := [trans #13132 #13136]: #13137
-#13141 := [monotonicity #12822 #13138]: #13140
-#13147 := [trans #13141 #13145]: #13146
-#13150 := [monotonicity #13147 #12822]: #13149
-#13155 := [trans #13150 #13153]: #13154
-#13158 := [monotonicity #12811 #13155]: #13157
-#13164 := [trans #13158 #13162]: #13163
-#13167 := [monotonicity #13164 #12811]: #13166
-#13172 := [trans #13167 #13170]: #13171
-#13175 := [monotonicity #13172]: #13174
-#13180 := [trans #13175 #13178]: #13179
-#13183 := [monotonicity #13180]: #13182
-#13187 := [trans #13183 #13185]: #13186
-#13190 := [monotonicity #13187]: #13189
-#13195 := [trans #13190 #13193]: #13194
-#13198 := [monotonicity #13195]: #13197
-#13204 := [trans #13198 #13202]: #13203
-#13207 := [monotonicity #13204]: #13206
-#13212 := [trans #13207 #13210]: #13211
-#13215 := [monotonicity #13212]: #13214
-#13219 := [trans #13215 #13217]: #13218
-#13068 := (iff #3237 #13058)
-#13063 := (implies true #13058)
-#13066 := (iff #13063 #13058)
-#13067 := [rewrite]: #13066
-#13064 := (iff #3237 #13063)
-#13061 := (iff #3236 #13058)
-#13055 := (implies #3060 #13050)
-#13059 := (iff #13055 #13058)
-#13060 := [rewrite]: #13059
-#13056 := (iff #3236 #13055)
-#13053 := (iff #3235 #13050)
-#13046 := (implies #3185 #13041)
-#13051 := (iff #13046 #13050)
-#13052 := [rewrite]: #13051
-#13047 := (iff #3235 #13046)
-#13044 := (iff #3234 #13041)
-#13038 := (implies #3060 #13026)
-#13042 := (iff #13038 #13041)
-#13043 := [rewrite]: #13042
-#13039 := (iff #3234 #13038)
-#13036 := (iff #3233 #13026)
-#13031 := (implies true #13026)
-#13034 := (iff #13031 #13026)
-#13035 := [rewrite]: #13034
-#13032 := (iff #3233 #13031)
-#13029 := (iff #3232 #13026)
-#13023 := (implies #3060 #13018)
-#13027 := (iff #13023 #13026)
-#13028 := [rewrite]: #13027
-#13024 := (iff #3232 #13023)
-#13021 := (iff #3231 #13018)
-#13015 := (implies #3060 #13003)
-#13019 := (iff #13015 #13018)
-#13020 := [rewrite]: #13019
-#13016 := (iff #3231 #13015)
-#13013 := (iff #3230 #13003)
-#13008 := (implies true #13003)
-#13011 := (iff #13008 #13003)
-#13012 := [rewrite]: #13011
-#13009 := (iff #3230 #13008)
-#13006 := (iff #3229 #13003)
-#12999 := (implies #12823 #12994)
-#13004 := (iff #12999 #13003)
-#13005 := [rewrite]: #13004
-#13000 := (iff #3229 #12999)
-#12997 := (iff #3228 #12994)
-#12990 := (implies #12826 #12978)
-#12995 := (iff #12990 #12994)
-#12996 := [rewrite]: #12995
-#12991 := (iff #3228 #12990)
-#12827 := (iff #3189 #12826)
-#12828 := [rewrite]: #12827
-#12992 := [monotonicity #12828 #12989]: #12991
-#12998 := [trans #12992 #12996]: #12997
-#12824 := (iff #3187 #12823)
-#12825 := [rewrite]: #12824
-#13001 := [monotonicity #12825 #12998]: #13000
-#13007 := [trans #13001 #13005]: #13006
-#13010 := [monotonicity #13007]: #13009
-#13014 := [trans #13010 #13012]: #13013
-#13017 := [monotonicity #13014]: #13016
-#13022 := [trans #13017 #13020]: #13021
-#13025 := [monotonicity #13022]: #13024
-#13030 := [trans #13025 #13028]: #13029
-#13033 := [monotonicity #13030]: #13032
-#13037 := [trans #13033 #13035]: #13036
-#13040 := [monotonicity #13037]: #13039
-#13045 := [trans #13040 #13043]: #13044
-#13048 := [monotonicity #13045]: #13047
-#13054 := [trans #13048 #13052]: #13053
-#13057 := [monotonicity #13054]: #13056
-#13062 := [trans #13057 #13060]: #13061
-#13065 := [monotonicity #13062]: #13064
-#13069 := [trans #13065 #13067]: #13068
-#13222 := [monotonicity #13069 #13219]: #13221
-#13225 := [monotonicity #13222]: #13224
-#13230 := [trans #13225 #13228]: #13229
-#13233 := [monotonicity #12822 #13230]: #13232
-#13238 := [trans #13233 #13236]: #13237
-#13241 := [monotonicity #13238 #12822]: #13240
-#13246 := [trans #13241 #13244]: #13245
-#13249 := [monotonicity #12811 #13246]: #13248
-#13254 := [trans #13249 #13252]: #13253
-#13257 := [monotonicity #13254 #12811]: #13256
-#13262 := [trans #13257 #13260]: #13261
-#13265 := [monotonicity #13262]: #13264
-#13270 := [trans #13265 #13268]: #13269
-#13273 := [monotonicity #13270]: #13272
-#13277 := [trans #13273 #13275]: #13276
-#13280 := [monotonicity #13277]: #13279
-#13285 := [trans #13280 #13283]: #13284
-#13288 := [monotonicity #13285]: #13287
-#13294 := [trans #13288 #13292]: #13293
-#13297 := [monotonicity #13294]: #13296
-#13302 := [trans #13297 #13300]: #13301
-#13305 := [monotonicity #13302]: #13304
-#13309 := [trans #13305 #13307]: #13308
-#12801 := (iff #3173 #12791)
-#12796 := (implies true #12791)
-#12799 := (iff #12796 #12791)
-#12800 := [rewrite]: #12799
-#12797 := (iff #3173 #12796)
-#12794 := (iff #3172 #12791)
-#12788 := (implies #3060 #12783)
-#12792 := (iff #12788 #12791)
-#12793 := [rewrite]: #12792
-#12789 := (iff #3172 #12788)
-#12786 := (iff #3171 #12783)
-#12779 := (implies #3131 #12774)
-#12784 := (iff #12779 #12783)
-#12785 := [rewrite]: #12784
-#12780 := (iff #3171 #12779)
-#12777 := (iff #3170 #12774)
-#12771 := (implies #3060 #12759)
-#12775 := (iff #12771 #12774)
-#12776 := [rewrite]: #12775
-#12772 := (iff #3170 #12771)
-#12769 := (iff #3169 #12759)
-#12764 := (implies true #12759)
-#12767 := (iff #12764 #12759)
-#12768 := [rewrite]: #12767
-#12765 := (iff #3169 #12764)
-#12762 := (iff #3168 #12759)
-#12756 := (implies #3060 #12751)
-#12760 := (iff #12756 #12759)
-#12761 := [rewrite]: #12760
-#12757 := (iff #3168 #12756)
-#12758 := [monotonicity #12755]: #12757
-#12763 := [trans #12758 #12761]: #12762
-#12766 := [monotonicity #12763]: #12765
-#12770 := [trans #12766 #12768]: #12769
-#12773 := [monotonicity #12770]: #12772
-#12778 := [trans #12773 #12776]: #12777
-#12781 := [monotonicity #12778]: #12780
-#12787 := [trans #12781 #12785]: #12786
-#12790 := [monotonicity #12787]: #12789
-#12795 := [trans #12790 #12793]: #12794
-#12798 := [monotonicity #12795]: #12797
-#12802 := [trans #12798 #12800]: #12801
-#13312 := [monotonicity #12802 #13309]: #13311
-#13315 := [monotonicity #13312]: #13314
-#13320 := [trans #13315 #13318]: #13319
-#12565 := (iff #3130 true)
-#12520 := (iff #12517 true)
-#12521 := [rewrite]: #12520
-#12563 := (iff #3130 #12517)
-#12561 := (iff #3129 true)
-#12562 := [rewrite]: #12561
-#12559 := (iff #3128 true)
-#12560 := [rewrite]: #12559
-#12564 := [monotonicity #12560 #12562]: #12563
-#12566 := [trans #12564 #12521]: #12565
-#13323 := [monotonicity #12566 #13320]: #13322
-#13327 := [trans #13323 #13325]: #13326
-#13330 := [monotonicity #13327]: #13329
-#13336 := [trans #13330 #13334]: #13335
-#13339 := [monotonicity #13336]: #13338
-#13345 := [trans #13339 #13343]: #13344
-#13348 := [monotonicity #13345]: #13347
-#13354 := [trans #13348 #13352]: #13353
-#13357 := [monotonicity #13354]: #13356
-#13363 := [trans #13357 #13361]: #13362
-#13366 := [monotonicity #13363]: #13365
-#13372 := [trans #13366 #13370]: #13371
-#13375 := [monotonicity #12558 #13372]: #13374
-#13381 := [trans #13375 #13379]: #13380
-#12551 := (iff #3116 #12544)
-#12541 := (and #12437 #3115)
-#12545 := (iff #12541 #12544)
-#12546 := [rewrite]: #12545
-#12549 := (iff #3116 #12541)
-#12438 := (iff #3073 #12437)
-#12439 := [rewrite]: #12438
-#12550 := [monotonicity #12439]: #12549
-#12552 := [trans #12550 #12546]: #12551
-#13384 := [monotonicity #12552 #13381]: #13383
-#13390 := [trans #13384 #13388]: #13389
-#12547 := (iff #3114 #12544)
-#12542 := (iff #3114 #12541)
-#12539 := (iff #3113 #3115)
-#12537 := (iff #3112 #3078)
-#12532 := (and #3078 true)
-#12535 := (iff #12532 #3078)
-#12536 := [rewrite]: #12535
-#12533 := (iff #3112 #12532)
-#12530 := (iff #3111 true)
-#12528 := (iff #3111 #12517)
-#12526 := (iff #3110 true)
-#12524 := (iff #3110 #12517)
-#12522 := (iff #3109 true)
-#12518 := (iff #3109 #12517)
-#12515 := (iff #3108 true)
-#12476 := (forall (vars (?x777 T5)) (:pat #3090) true)
-#12479 := (iff #12476 true)
-#12480 := [elim-unused]: #12479
-#12513 := (iff #3108 #12476)
-#12511 := (iff #3107 true)
-#12500 := (= uf_261 #3104)
-#12503 := (not #12500)
-#12506 := (implies #12503 #12503)
-#12509 := (iff #12506 true)
-#12510 := [rewrite]: #12509
-#12507 := (iff #3107 #12506)
-#12504 := (iff #3106 #12503)
-#12501 := (iff #3105 #12500)
-#12502 := [rewrite]: #12501
-#12505 := [monotonicity #12502]: #12504
-#12508 := [monotonicity #12505 #12505]: #12507
-#12512 := [trans #12508 #12510]: #12511
-#12514 := [quant-intro #12512]: #12513
-#12516 := [trans #12514 #12480]: #12515
-#12498 := (iff #3101 true)
-#12493 := (forall (vars (?x778 T5)) (:pat #3097) true)
-#12496 := (iff #12493 true)
-#12497 := [elim-unused]: #12496
-#12494 := (iff #3101 #12493)
-#12491 := (iff #3100 true)
-#12440 := (= uf_9 #3082)
-#12452 := (implies #12440 #12440)
-#12455 := (iff #12452 true)
-#12456 := [rewrite]: #12455
-#12489 := (iff #3100 #12452)
-#12487 := (iff #3099 #12440)
-#12445 := (and #12440 true)
-#12448 := (iff #12445 #12440)
-#12449 := [rewrite]: #12448
-#12485 := (iff #3099 #12445)
-#12483 := (iff #3098 true)
-#12484 := [rewrite]: #12483
-#12441 := (iff #3083 #12440)
-#12442 := [rewrite]: #12441
-#12486 := [monotonicity #12442 #12484]: #12485
-#12488 := [trans #12486 #12449]: #12487
-#12490 := [monotonicity #12442 #12488]: #12489
-#12492 := [trans #12490 #12456]: #12491
-#12495 := [quant-intro #12492]: #12494
-#12499 := [trans #12495 #12497]: #12498
-#12519 := [monotonicity #12499 #12516]: #12518
-#12523 := [trans #12519 #12521]: #12522
-#12481 := (iff #3094 true)
-#12477 := (iff #3094 #12476)
-#12474 := (iff #3093 true)
-#12472 := (iff #3093 #12452)
-#12470 := (iff #3092 #12440)
-#12468 := (iff #3092 #12445)
-#12466 := (iff #3091 true)
-#12467 := [rewrite]: #12466
-#12469 := [monotonicity #12442 #12467]: #12468
-#12471 := [trans #12469 #12449]: #12470
-#12473 := [monotonicity #12442 #12471]: #12472
-#12475 := [trans #12473 #12456]: #12474
-#12478 := [quant-intro #12475]: #12477
-#12482 := [trans #12478 #12480]: #12481
-#12525 := [monotonicity #12482 #12523]: #12524
-#12527 := [trans #12525 #12521]: #12526
-#12464 := (iff #3087 true)
-#12459 := (forall (vars (?x776 T5)) (:pat #3081) true)
-#12462 := (iff #12459 true)
-#12463 := [elim-unused]: #12462
-#12460 := (iff #3087 #12459)
-#12457 := (iff #3086 true)
-#12453 := (iff #3086 #12452)
-#12450 := (iff #3085 #12440)
-#12446 := (iff #3085 #12445)
-#12443 := (iff #3084 true)
-#12444 := [rewrite]: #12443
-#12447 := [monotonicity #12442 #12444]: #12446
-#12451 := [trans #12447 #12449]: #12450
-#12454 := [monotonicity #12442 #12451]: #12453
-#12458 := [trans #12454 #12456]: #12457
-#12461 := [quant-intro #12458]: #12460
-#12465 := [trans #12461 #12463]: #12464
-#12529 := [monotonicity #12465 #12527]: #12528
-#12531 := [trans #12529 #12521]: #12530
-#12534 := [monotonicity #12531]: #12533
-#12538 := [trans #12534 #12536]: #12537
-#12540 := [monotonicity #12538]: #12539
-#12543 := [monotonicity #12439 #12540]: #12542
-#12548 := [trans #12543 #12546]: #12547
-#13393 := [monotonicity #12548 #13390]: #13392
-#13398 := [trans #13393 #13396]: #13397
-#13401 := [monotonicity #13398]: #13400
-#13406 := [trans #13401 #13404]: #13405
-#13409 := [monotonicity #13406]: #13408
-#13413 := [trans #13409 #13411]: #13412
-#13416 := [monotonicity #13413]: #13415
-#13421 := [trans #13416 #13419]: #13420
-#13424 := [monotonicity #13421]: #13423
-#13428 := [trans #13424 #13426]: #13427
-#13431 := [monotonicity #13428]: #13430
-#13436 := [trans #13431 #13434]: #13435
-#13439 := [monotonicity #13436]: #13438
-#13443 := [trans #13439 #13441]: #13442
-#13500 := [monotonicity #13443 #13497]: #13499
-#13504 := [trans #13500 #13502]: #13503
-#13507 := [monotonicity #13504]: #13506
-#13512 := [trans #13507 #13510]: #13511
-#12435 := (iff #3071 #12432)
-#12429 := (and #12426 #3070)
-#12433 := (iff #12429 #12432)
-#12434 := [rewrite]: #12433
-#12430 := (iff #3071 #12429)
-#12427 := (iff #3069 #12426)
-#12428 := [rewrite]: #12427
-#12431 := [monotonicity #12428]: #12430
-#12436 := [trans #12431 #12434]: #12435
-#13515 := [monotonicity #12436 #13512]: #13514
-#13521 := [trans #13515 #13519]: #13520
-#12424 := (iff #3066 #12423)
-#12421 := (iff #3065 #12418)
-#12415 := (implies #5718 #12412)
-#12419 := (iff #12415 #12418)
-#12420 := [rewrite]: #12419
-#12416 := (iff #3065 #12415)
-#12413 := (iff #3064 #12412)
-#12414 := [rewrite]: #12413
-#12417 := [monotonicity #5720 #12414]: #12416
-#12422 := [trans #12417 #12420]: #12421
-#12425 := [quant-intro #12422]: #12424
-#13524 := [monotonicity #12425 #13521]: #13523
-#13530 := [trans #13524 #13528]: #13529
-#13533 := [monotonicity #13530]: #13532
-#13539 := [trans #13533 #13537]: #13538
-#13542 := [monotonicity #13539]: #13541
-#13547 := [trans #13542 #13545]: #13546
-#13550 := [monotonicity #13547]: #13549
-#13556 := [trans #13550 #13554]: #13555
-#13559 := [monotonicity #13556]: #13558
-#13565 := [trans #13559 #13563]: #13564
-#13568 := [monotonicity #13565]: #13567
-#13574 := [trans #13568 #13572]: #13573
-#13577 := [monotonicity #13574]: #13576
-#13581 := [trans #13577 #13579]: #13580
-#13584 := [monotonicity #12410 #13581]: #13583
-#13590 := [trans #13584 #13588]: #13589
-#13593 := [monotonicity #13590 #12410]: #13592
-#13598 := [trans #13593 #13596]: #13597
-#13601 := [monotonicity #12400 #13598]: #13600
-#13607 := [trans #13601 #13605]: #13606
-#13610 := [monotonicity #13607 #12400]: #13609
-#13615 := [trans #13610 #13613]: #13614
-#13618 := [monotonicity #13615]: #13617
-#13624 := [trans #13618 #13622]: #13623
-#13627 := [monotonicity #13624]: #13626
-#13632 := [trans #13627 #13630]: #13631
-#12384 := (iff #3036 #12383)
-#12381 := (iff #3035 #12380)
-#12378 := (iff #3034 #3033)
-#12379 := [rewrite]: #12378
-#12382 := [monotonicity #12379]: #12381
-#12385 := [monotonicity #12382]: #12384
-#13635 := [monotonicity #12385 #13632]: #13634
-#13641 := [trans #13635 #13639]: #13640
-#13644 := [monotonicity #13641]: #13643
-#13650 := [trans #13644 #13648]: #13649
-#13653 := [monotonicity #13650]: #13652
-#13659 := [trans #13653 #13657]: #13658
-#13662 := [monotonicity #13659]: #13661
-#13668 := [trans #13662 #13666]: #13667
-#13671 := [monotonicity #13668]: #13670
-#13677 := [trans #13671 #13675]: #13676
-#13680 := [monotonicity #12377 #13677]: #13679
-#13686 := [trans #13680 #13684]: #13685
-#13689 := [monotonicity #13686 #12377]: #13688
-#13694 := [trans #13689 #13692]: #13693
-#13697 := [monotonicity #12366 #13694]: #13696
-#13703 := [trans #13697 #13701]: #13702
-#13706 := [monotonicity #13703 #12366]: #13705
-#13711 := [trans #13706 #13709]: #13710
-#13714 := [monotonicity #12357 #13711]: #13713
-#13720 := [trans #13714 #13718]: #13719
-#13723 := [monotonicity #13720 #12357]: #13722
-#13728 := [trans #13723 #13726]: #13727
-#13731 := [monotonicity #13728]: #13730
-#13737 := [trans #13731 #13735]: #13736
-#12353 := (iff #3004 #12352)
-#12350 := (iff #3003 #12347)
-#12344 := (iff #12341 false)
-#12348 := (iff #12344 #12347)
-#12349 := [rewrite]: #12348
-#12345 := (iff #3003 #12344)
-#12342 := (iff #3002 #12341)
-#12343 := [rewrite]: #12342
-#12346 := [monotonicity #12343]: #12345
-#12351 := [trans #12346 #12349]: #12350
-#12354 := [quant-intro #12351]: #12353
-#13740 := [monotonicity #12354 #13737]: #13739
-#13746 := [trans #13740 #13744]: #13745
-#13749 := [monotonicity #13746]: #13748
-#13755 := [trans #13749 #13753]: #13754
-#13758 := [monotonicity #13755]: #13757
-#13764 := [trans #13758 #13762]: #13763
-#13767 := [monotonicity #13764]: #13766
-#13773 := [trans #13767 #13771]: #13772
-#13776 := [monotonicity #13773]: #13775
-#13782 := [trans #13776 #13780]: #13781
-#12339 := (iff #2983 #12338)
-#12336 := (iff #2982 #12335)
-#12337 := [rewrite]: #12336
-#12340 := [monotonicity #12334 #12337]: #12339
-#13785 := [monotonicity #12340 #13782]: #13784
-#13791 := [trans #13785 #13789]: #13790
-#12330 := (iff #2977 #12329)
-#12331 := [rewrite]: #12330
-#13794 := [monotonicity #12331 #13791]: #13793
-#13800 := [trans #13794 #13798]: #13799
-#13803 := [monotonicity #13800]: #13802
-#13807 := [trans #13803 #13805]: #13806
-#12327 := (iff #2975 #12326)
-#12324 := (iff #2974 #12323)
-#12321 := (iff #2973 #12320)
-#12318 := (iff #2972 #12317)
-#12315 := (iff #2971 #12314)
-#12312 := (iff #2970 #12311)
-#12313 := [rewrite]: #12312
-#12309 := (iff #2968 #12308)
-#12310 := [rewrite]: #12309
-#12316 := [monotonicity #12310 #12313]: #12315
-#12306 := (iff #2966 #12305)
-#12307 := [rewrite]: #12306
-#12319 := [monotonicity #12307 #12316]: #12318
-#12303 := (iff #2964 #12302)
-#12304 := [rewrite]: #12303
-#12322 := [monotonicity #12304 #12319]: #12321
-#12300 := (iff #2957 #12299)
-#12297 := (iff #2956 #12296)
-#12298 := [rewrite]: #12297
-#12301 := [monotonicity #12298]: #12300
-#12325 := [monotonicity #12301 #12322]: #12324
-#12294 := (iff #2954 #12293)
-#12295 := [rewrite]: #12294
-#12328 := [monotonicity #12295 #12325]: #12327
-#13810 := [monotonicity #12328 #13807]: #13809
-#13816 := [trans #13810 #13814]: #13815
-#13819 := [monotonicity #13816]: #13818
-#13825 := [trans #13819 #13823]: #13824
-#13828 := [monotonicity #13825]: #13827
-#13834 := [trans #13828 #13832]: #13833
-#13837 := [monotonicity #13834]: #13836
-#13843 := [trans #13837 #13841]: #13842
-#13846 := [monotonicity #13843]: #13845
-#13852 := [trans #13846 #13850]: #13851
-#13855 := [monotonicity #13852]: #13854
-#13861 := [trans #13855 #13859]: #13860
-#13864 := [monotonicity #13861]: #13863
-#13868 := [trans #13864 #13866]: #13867
-#13871 := [monotonicity #13868]: #13870
-#14775 := [trans #13871 #14773]: #14774
-#12292 := [asserted]: #3345
-#14776 := [mp #12292 #14775]: #14771
-#14794 := [not-or-elim #14776]: #14658
-#14798 := [and-elim #14794]: #12305
-#233 := (:var 0 T3)
-#15 := (:var 1 T5)
-#2661 := (uf_48 #15 #233)
-#2662 := (pattern #2661)
-#11594 := (= uf_9 #2661)
-#11601 := (not #11594)
-#1250 := (uf_116 #15)
-#2664 := (uf_43 #233 #1250)
-#2665 := (= #15 #2664)
-#11602 := (or #2665 #11601)
-#11607 := (forall (vars (?x710 T5) (?x711 T3)) (:pat #2662) #11602)
-#18734 := (~ #11607 #11607)
-#18732 := (~ #11602 #11602)
-#18733 := [refl]: #18732
-#18735 := [nnf-pos #18733]: #18734
-#2663 := (= #2661 uf_9)
-#2666 := (implies #2663 #2665)
-#2667 := (forall (vars (?x710 T5) (?x711 T3)) (:pat #2662) #2666)
-#11608 := (iff #2667 #11607)
-#11605 := (iff #2666 #11602)
-#11598 := (implies #11594 #2665)
-#11603 := (iff #11598 #11602)
-#11604 := [rewrite]: #11603
-#11599 := (iff #2666 #11598)
-#11596 := (iff #2663 #11594)
-#11597 := [rewrite]: #11596
-#11600 := [monotonicity #11597]: #11599
-#11606 := [trans #11600 #11604]: #11605
-#11609 := [quant-intro #11606]: #11608
-#11593 := [asserted]: #2667
-#11612 := [mp #11593 #11609]: #11607
-#18736 := [mp~ #11612 #18735]: #11607
-#25403 := (not #12305)
-#25416 := (not #11607)
-#25417 := (or #25416 #25403 #25411)
-#25412 := (or #25411 #25403)
-#25418 := (or #25416 #25412)
-#25425 := (iff #25418 #25417)
-#25413 := (or #25403 #25411)
-#25420 := (or #25416 #25413)
-#25423 := (iff #25420 #25417)
-#25424 := [rewrite]: #25423
-#25421 := (iff #25418 #25420)
-#25414 := (iff #25412 #25413)
-#25415 := [rewrite]: #25414
-#25422 := [monotonicity #25415]: #25421
-#25426 := [trans #25422 #25424]: #25425
-#25419 := [quant-inst]: #25418
-#25427 := [mp #25419 #25426]: #25417
-#27939 := [unit-resolution #25427 #18736 #14798]: #25411
-#27941 := [symm #27939]: #27940
-#26337 := [monotonicity #27941]: #26336
-#26339 := [trans #26337 #28359]: #26338
-#26341 := [monotonicity #26339]: #26340
-#26306 := [monotonicity #26341]: #26342
-#26296 := [symm #26306]: #26293
-#26299 := [monotonicity #26296]: #26298
-#14796 := [and-elim #14794]: #12299
-#26307 := [mp #14796 #26299]: #26297
-decl uf_196 :: (-> T4 T5 T5 T2)
-#25980 := (uf_196 uf_273 #25404 #25404)
-#25981 := (= uf_9 #25980)
-#26002 := (not #25981)
-#25982 := (uf_200 uf_273 #25404 #25404 uf_284)
-#25983 := (= uf_9 #25982)
-#25985 := (iff #25981 #25983)
-#2240 := (:var 0 T16)
-#24 := (:var 2 T5)
-#13 := (:var 3 T4)
-#2251 := (uf_200 #13 #24 #15 #2240)
-#2252 := (pattern #2251)
-#2254 := (uf_196 #13 #24 #15)
-#10555 := (= uf_9 #2254)
-#10551 := (= uf_9 #2251)
-#10558 := (iff #10551 #10555)
-#10561 := (forall (vars (?x586 T4) (?x587 T5) (?x588 T5) (?x589 T16)) (:pat #2252) #10558)
-#18376 := (~ #10561 #10561)
-#18374 := (~ #10558 #10558)
-#18375 := [refl]: #18374
-#18377 := [nnf-pos #18375]: #18376
-#2255 := (= #2254 uf_9)
-#2253 := (= #2251 uf_9)
-#2256 := (iff #2253 #2255)
-#2257 := (forall (vars (?x586 T4) (?x587 T5) (?x588 T5) (?x589 T16)) (:pat #2252) #2256)
-#10562 := (iff #2257 #10561)
-#10559 := (iff #2256 #10558)
-#10556 := (iff #2255 #10555)
-#10557 := [rewrite]: #10556
-#10553 := (iff #2253 #10551)
-#10554 := [rewrite]: #10553
-#10560 := [monotonicity #10554 #10557]: #10559
-#10563 := [quant-intro #10560]: #10562
-#10550 := [asserted]: #2257
-#10566 := [mp #10550 #10563]: #10561
-#18378 := [mp~ #10566 #18377]: #10561
-#25995 := (not #10561)
-#25996 := (or #25995 #25985)
-#25984 := (iff #25983 #25981)
-#25997 := (or #25995 #25984)
-#26025 := (iff #25997 #25996)
-#26077 := (iff #25996 #25996)
-#26078 := [rewrite]: #26077
-#25986 := (iff #25984 #25985)
-#25987 := [rewrite]: #25986
-#26076 := [monotonicity #25987]: #26025
-#26079 := [trans #26076 #26078]: #26025
-#26023 := [quant-inst]: #25997
-#26015 := [mp #26023 #26079]: #25996
-#27937 := [unit-resolution #26015 #18378]: #25985
-#25999 := (not #25983)
-#26332 := (iff #13715 #25999)
-#26334 := (iff #12355 #25983)
-#26301 := (iff #25983 #12355)
-#27942 := (= #25982 #3009)
-#27943 := [monotonicity #27941 #27941]: #27942
-#26333 := [monotonicity #27943]: #26301
-#26335 := [symm #26333]: #26334
-#26349 := [monotonicity #26335]: #26332
-#26300 := [hypothesis]: #13715
-#26350 := [mp #26300 #26349]: #25999
-#26022 := (not #25985)
-#25991 := (or #26022 #26002 #25983)
-#25989 := [def-axiom]: #25991
-#26348 := [unit-resolution #25989 #26350 #27937]: #26002
-#26086 := (uf_48 #25404 #25815)
-#26087 := (= uf_9 #26086)
-#26398 := (= #2965 #26086)
-#26351 := (= #26086 #2965)
-#26352 := [monotonicity #27941 #26339]: #26351
-#26399 := [symm #26352]: #26398
-#26400 := [trans #14798 #26399]: #26087
-#26089 := (uf_27 uf_273 #25404)
-#26090 := (= uf_9 #26089)
-#26324 := (= #2963 #26089)
-#26323 := (= #26089 #2963)
-#26325 := [monotonicity #27941]: #26323
-#26327 := [symm #26325]: #26324
-#14797 := [and-elim #14794]: #12302
-#26322 := [trans #14797 #26327]: #26090
-#26091 := (not #26090)
-#26088 := (not #26087)
-#26490 := (or #25981 #26088 #26091 #26095)
-#25827 := (uf_25 uf_273 #25404)
-#26084 := (= uf_26 #25827)
-#26331 := (= #2967 #25827)
-#26328 := (= #25827 #2967)
-#26329 := [monotonicity #27941]: #26328
-#26401 := [symm #26329]: #26331
-#14799 := [and-elim #14794]: #12308
-#26403 := [trans #14799 #26401]: #26084
-#25853 := (uf_24 uf_273 #25404)
-#25854 := (= uf_9 #25853)
-#26391 := (= #2969 #25853)
-#26388 := (= #25853 #2969)
-#26402 := [monotonicity #27941]: #26388
-#26389 := [symm #26402]: #26391
-#14800 := [and-elim #14794]: #12311
-#26392 := [trans #14800 #26389]: #25854
-#25816 := (uf_22 #25815)
-#25823 := (= uf_9 #25816)
-#26413 := (= #2953 #25816)
-#26393 := (= #25816 #2953)
-#26394 := [monotonicity #26339]: #26393
-#26414 := [symm #26394]: #26413
-#14795 := [and-elim #14794]: #12293
-#26488 := [trans #14795 #26414]: #25823
-#14783 := [not-or-elim #14776]: #12338
-#14784 := [and-elim #14783]: #12332
-#47 := (:var 1 T4)
-#2213 := (uf_196 #47 #26 #26)
-#2214 := (pattern #2213)
-#10431 := (= uf_9 #2213)
-#227 := (uf_55 #47)
-#3939 := (= uf_9 #227)
-#19933 := (not #3939)
-#150 := (uf_25 #47 #26)
-#3656 := (= uf_26 #150)
-#19808 := (not #3656)
-#33 := (uf_15 #26)
-#148 := (uf_48 #26 #33)
-#3653 := (= uf_9 #148)
-#19807 := (not #3653)
-#146 := (uf_27 #47 #26)
-#3650 := (= uf_9 #146)
-#11522 := (not #3650)
-#135 := (uf_24 #47 #26)
-#3635 := (= uf_9 #135)
-#11145 := (not #3635)
-#69 := (uf_22 #33)
-#3470 := (= uf_9 #69)
-#11200 := (not #3470)
-#34 := (uf_14 #33)
-#36 := (= #34 uf_16)
-#22334 := (or #36 #11200 #11145 #11522 #19807 #19808 #19933 #10431)
-#22339 := (forall (vars (?x572 T4) (?x573 T5)) (:pat #2214) #22334)
-#52 := (not #36)
-#10446 := (and #52 #3470 #3635 #3650 #3653 #3656 #3939)
-#10449 := (not #10446)
-#10455 := (or #10431 #10449)
-#10460 := (forall (vars (?x572 T4) (?x573 T5)) (:pat #2214) #10455)
-#22340 := (iff #10460 #22339)
-#22337 := (iff #10455 #22334)
-#22320 := (or #36 #11200 #11145 #11522 #19807 #19808 #19933)
-#22331 := (or #10431 #22320)
-#22335 := (iff #22331 #22334)
-#22336 := [rewrite]: #22335
-#22332 := (iff #10455 #22331)
-#22329 := (iff #10449 #22320)
-#22321 := (not #22320)
-#22324 := (not #22321)
-#22327 := (iff #22324 #22320)
-#22328 := [rewrite]: #22327
-#22325 := (iff #10449 #22324)
-#22322 := (iff #10446 #22321)
-#22323 := [rewrite]: #22322
-#22326 := [monotonicity #22323]: #22325
-#22330 := [trans #22326 #22328]: #22329
-#22333 := [monotonicity #22330]: #22332
-#22338 := [trans #22333 #22336]: #22337
-#22341 := [quant-intro #22338]: #22340
-#18344 := (~ #10460 #10460)
-#18342 := (~ #10455 #10455)
-#18343 := [refl]: #18342
-#18345 := [nnf-pos #18343]: #18344
-#2220 := (= #2213 uf_9)
-#229 := (= #227 uf_9)
-#136 := (= #135 uf_9)
-#230 := (and #136 #229)
-#151 := (= #150 uf_26)
-#2215 := (and #151 #230)
-#149 := (= #148 uf_9)
-#2216 := (and #149 #2215)
-#147 := (= #146 uf_9)
-#2217 := (and #147 #2216)
-#2218 := (and #52 #2217)
-#70 := (= #69 uf_9)
-#2219 := (and #70 #2218)
-#2221 := (implies #2219 #2220)
-#2222 := (forall (vars (?x572 T4) (?x573 T5)) (:pat #2214) #2221)
-#10463 := (iff #2222 #10460)
-#3943 := (and #3635 #3939)
-#10415 := (and #3656 #3943)
-#10419 := (and #3653 #10415)
-#10422 := (and #3650 #10419)
-#10425 := (and #52 #10422)
-#10428 := (and #3470 #10425)
-#10437 := (not #10428)
-#10438 := (or #10437 #10431)
-#10443 := (forall (vars (?x572 T4) (?x573 T5)) (:pat #2214) #10438)
-#10461 := (iff #10443 #10460)
-#10458 := (iff #10438 #10455)
-#10452 := (or #10449 #10431)
-#10456 := (iff #10452 #10455)
-#10457 := [rewrite]: #10456
-#10453 := (iff #10438 #10452)
-#10450 := (iff #10437 #10449)
-#10447 := (iff #10428 #10446)
-#10448 := [rewrite]: #10447
-#10451 := [monotonicity #10448]: #10450
-#10454 := [monotonicity #10451]: #10453
-#10459 := [trans #10454 #10457]: #10458
-#10462 := [quant-intro #10459]: #10461
-#10444 := (iff #2222 #10443)
-#10441 := (iff #2221 #10438)
-#10434 := (implies #10428 #10431)
-#10439 := (iff #10434 #10438)
-#10440 := [rewrite]: #10439
-#10435 := (iff #2221 #10434)
-#10432 := (iff #2220 #10431)
-#10433 := [rewrite]: #10432
-#10429 := (iff #2219 #10428)
-#10426 := (iff #2218 #10425)
-#10423 := (iff #2217 #10422)
-#10420 := (iff #2216 #10419)
-#10417 := (iff #2215 #10415)
-#3944 := (iff #230 #3943)
-#3941 := (iff #229 #3939)
-#3942 := [rewrite]: #3941
-#3637 := (iff #136 #3635)
-#3638 := [rewrite]: #3637
-#3945 := [monotonicity #3638 #3942]: #3944
-#3657 := (iff #151 #3656)
-#3658 := [rewrite]: #3657
-#10418 := [monotonicity #3658 #3945]: #10417
-#3654 := (iff #149 #3653)
-#3655 := [rewrite]: #3654
-#10421 := [monotonicity #3655 #10418]: #10420
-#3651 := (iff #147 #3650)
-#3652 := [rewrite]: #3651
-#10424 := [monotonicity #3652 #10421]: #10423
-#10427 := [monotonicity #10424]: #10426
-#3471 := (iff #70 #3470)
-#3472 := [rewrite]: #3471
-#10430 := [monotonicity #3472 #10427]: #10429
-#10436 := [monotonicity #10430 #10433]: #10435
-#10442 := [trans #10436 #10440]: #10441
-#10445 := [quant-intro #10442]: #10444
-#10464 := [trans #10445 #10462]: #10463
-#10414 := [asserted]: #2222
-#10465 := [mp #10414 #10464]: #10460
-#18346 := [mp~ #10465 #18345]: #10460
-#22342 := [mp #18346 #22341]: #22339
-#26085 := (not #26084)
-#25880 := (not #25854)
-#25824 := (not #25823)
-#23209 := (not #12332)
-#26081 := (not #22339)
-#26110 := (or #26081 #23209 #25824 #25880 #25981 #26085 #26088 #26091 #26095)
-#26093 := (= #26092 uf_16)
-#26094 := (or #26093 #25824 #25880 #26091 #26088 #26085 #23209 #25981)
-#26111 := (or #26081 #26094)
-#26219 := (iff #26111 #26110)
-#26101 := (or #23209 #25824 #25880 #25981 #26085 #26088 #26091 #26095)
-#26107 := (or #26081 #26101)
-#26215 := (iff #26107 #26110)
-#26218 := [rewrite]: #26215
-#26113 := (iff #26111 #26107)
-#26104 := (iff #26094 #26101)
-#26098 := (or #26095 #25824 #25880 #26091 #26088 #26085 #23209 #25981)
-#26102 := (iff #26098 #26101)
-#26103 := [rewrite]: #26102
-#26099 := (iff #26094 #26098)
-#26096 := (iff #26093 #26095)
-#26097 := [rewrite]: #26096
-#26100 := [monotonicity #26097]: #26099
-#26105 := [trans #26100 #26103]: #26104
-#26150 := [monotonicity #26105]: #26113
-#26181 := [trans #26150 #26218]: #26219
-#26112 := [quant-inst]: #26111
-#26165 := [mp #26112 #26181]: #26110
-#26491 := [unit-resolution #26165 #22342 #14784 #26488 #26392 #26403]: #26490
-#26493 := [unit-resolution #26491 #26322 #26400 #26348 #26307]: false
-#26494 := [lemma #26493]: #12355
-#23984 := (or #13715 #23981)
-#22978 := (forall (vars (?x782 int)) #22967)
-#22985 := (not #22978)
-#22963 := (forall (vars (?x781 int)) #22958)
-#22984 := (not #22963)
-#22986 := (or #22984 #22985)
-#22987 := (not #22986)
-#23016 := (or #22987 #23013)
-#23022 := (not #23016)
-#23023 := (or #12671 #12662 #12653 #12644 #22873 #14243 #14049 #23022)
-#23024 := (not #23023)
-#22802 := (forall (vars (?x785 int)) #22797)
-#22808 := (not #22802)
-#22809 := (or #22784 #22808)
-#22810 := (not #22809)
-#22839 := (or #22810 #22836)
-#22845 := (not #22839)
-#22846 := (or #14105 #22845)
-#22847 := (not #22846)
-#22852 := (or #14105 #22847)
-#22860 := (not #22852)
-#22861 := (or #12942 #22858 #19034 #22859 #14172 #19037 #22860)
-#22862 := (not #22861)
-#22867 := (or #19034 #19037 #22862)
-#22874 := (not #22867)
-#22884 := (or #13124 #13115 #13090 #19011 #19017 #13133 #13081 #14243 #22858 #22874)
-#22885 := (not #22884)
-#22890 := (or #19011 #19017 #22885)
-#22896 := (not #22890)
-#22897 := (or #19008 #19011 #22896)
-#22898 := (not #22897)
-#22903 := (or #19008 #19011 #22898)
-#22909 := (not #22903)
-#22910 := (or #22873 #14243 #14207 #22909)
-#22911 := (not #22910)
-#22875 := (or #13002 #12993 #22873 #14243 #22858 #14211 #22874)
-#22876 := (not #22875)
-#22916 := (or #22876 #22911)
-#22922 := (not #22916)
-#22923 := (or #19011 #19017 #22873 #14243 #22922)
-#22924 := (not #22923)
-#22929 := (or #19011 #19017 #22924)
-#22935 := (not #22929)
-#22936 := (or #19008 #19011 #22935)
-#22937 := (not #22936)
-#22942 := (or #19008 #19011 #22937)
-#22948 := (not #22942)
-#22949 := (or #22873 #14243 #14046 #22948)
-#22950 := (not #22949)
-#23029 := (or #22950 #23024)
-#23044 := (not #23029)
-#22779 := (forall (vars (?x774 int)) #22774)
-#23040 := (not #22779)
-#23045 := (or #13672 #13367 #13358 #13349 #13340 #23035 #23036 #23037 #14399 #15709 #13942 #22873 #14243 #14404 #14456 #23038 #23039 #23041 #23042 #23043 #23040 #23044)
-#23046 := (not #23045)
-#23051 := (or #13672 #13942 #23046)
-#23058 := (not #23051)
-#22768 := (forall (vars (?x773 int)) #22763)
-#23057 := (not #22768)
-#23059 := (or #23057 #23058)
-#23060 := (not #23059)
-#23065 := (or #22757 #23060)
-#23071 := (not #23065)
-#23072 := (or #13906 #23071)
-#23073 := (not #23072)
-#23078 := (or #13906 #23073)
-#23084 := (not #23078)
-#23085 := (or #13672 #13663 #13654 #13645 #18900 #18906 #23084)
-#23086 := (not #23085)
-#23091 := (or #18900 #18906 #23086)
-#23097 := (not #23091)
-#23098 := (or #18897 #18900 #23097)
-#23099 := (not #23098)
-#23104 := (or #18897 #18900 #23099)
-#23110 := (not #23104)
-#23111 := (or #13715 #23110)
-#23112 := (not #23111)
-#23117 := (or #13715 #23112)
-#23985 := (iff #23117 #23984)
-#23982 := (iff #23112 #23981)
-#23979 := (iff #23111 #23978)
-#23976 := (iff #23110 #23975)
-#23973 := (iff #23104 #23972)
-#23970 := (iff #23099 #23969)
-#23967 := (iff #23098 #23966)
-#23964 := (iff #23097 #23963)
-#23961 := (iff #23091 #23960)
-#23958 := (iff #23086 #23957)
-#23955 := (iff #23085 #23954)
-#23952 := (iff #23084 #23951)
-#23949 := (iff #23078 #23948)
-#23946 := (iff #23073 #23945)
-#23943 := (iff #23072 #23942)
-#23940 := (iff #23071 #23939)
-#23937 := (iff #23065 #23936)
-#23934 := (iff #23060 #23933)
-#23931 := (iff #23059 #23930)
-#23928 := (iff #23058 #23927)
-#23925 := (iff #23051 #23924)
-#23922 := (iff #23046 #23921)
-#23919 := (iff #23045 #23918)
-#23916 := (iff #23044 #23915)
-#23913 := (iff #23029 #23912)
-#23910 := (iff #23024 #23909)
-#23907 := (iff #23023 #23906)
-#23904 := (iff #23022 #23903)
-#23901 := (iff #23016 #23900)
-#23898 := (iff #22987 #23897)
-#23895 := (iff #22986 #23894)
-#23892 := (iff #22985 #23891)
-#23889 := (iff #22978 #23886)
-#23887 := (iff #22967 #22967)
-#23888 := [refl]: #23887
-#23890 := [quant-intro #23888]: #23889
-#23893 := [monotonicity #23890]: #23892
-#23884 := (iff #22984 #23883)
-#23881 := (iff #22963 #23878)
-#23879 := (iff #22958 #22958)
-#23880 := [refl]: #23879
-#23882 := [quant-intro #23880]: #23881
-#23885 := [monotonicity #23882]: #23884
-#23896 := [monotonicity #23885 #23893]: #23895
-#23899 := [monotonicity #23896]: #23898
-#23902 := [monotonicity #23899]: #23901
-#23905 := [monotonicity #23902]: #23904
-#23908 := [monotonicity #23905]: #23907
-#23911 := [monotonicity #23908]: #23910
-#23876 := (iff #22950 #23875)
-#23873 := (iff #22949 #23872)
-#23870 := (iff #22948 #23869)
-#23867 := (iff #22942 #23866)
-#23864 := (iff #22937 #23863)
-#23861 := (iff #22936 #23860)
-#23858 := (iff #22935 #23857)
-#23855 := (iff #22929 #23854)
-#23852 := (iff #22924 #23851)
-#23849 := (iff #22923 #23848)
-#23846 := (iff #22922 #23845)
-#23843 := (iff #22916 #23842)
-#23840 := (iff #22911 #23839)
-#23837 := (iff #22910 #23836)
-#23834 := (iff #22909 #23833)
-#23831 := (iff #22903 #23830)
-#23828 := (iff #22898 #23827)
-#23825 := (iff #22897 #23824)
-#23822 := (iff #22896 #23821)
-#23819 := (iff #22890 #23818)
-#23816 := (iff #22885 #23815)
-#23813 := (iff #22884 #23812)
-#23804 := (iff #22874 #23803)
-#23801 := (iff #22867 #23800)
-#23798 := (iff #22862 #23797)
-#23795 := (iff #22861 #23794)
-#23792 := (iff #22860 #23791)
-#23789 := (iff #22852 #23788)
-#23786 := (iff #22847 #23785)
-#23783 := (iff #22846 #23782)
-#23780 := (iff #22845 #23779)
-#23777 := (iff #22839 #23776)
-#23774 := (iff #22810 #23773)
-#23771 := (iff #22809 #23770)
-#23768 := (iff #22808 #23767)
-#23765 := (iff #22802 #23762)
-#23763 := (iff #22797 #22797)
-#23764 := [refl]: #23763
-#23766 := [quant-intro #23764]: #23765
-#23769 := [monotonicity #23766]: #23768
-#23772 := [monotonicity #23769]: #23771
-#23775 := [monotonicity #23772]: #23774
-#23778 := [monotonicity #23775]: #23777
-#23781 := [monotonicity #23778]: #23780
-#23784 := [monotonicity #23781]: #23783
-#23787 := [monotonicity #23784]: #23786
-#23790 := [monotonicity #23787]: #23789
-#23793 := [monotonicity #23790]: #23792
-#23796 := [monotonicity #23793]: #23795
-#23799 := [monotonicity #23796]: #23798
-#23802 := [monotonicity #23799]: #23801
-#23805 := [monotonicity #23802]: #23804
-#23814 := [monotonicity #23805]: #23813
-#23817 := [monotonicity #23814]: #23816
-#23820 := [monotonicity #23817]: #23819
-#23823 := [monotonicity #23820]: #23822
-#23826 := [monotonicity #23823]: #23825
-#23829 := [monotonicity #23826]: #23828
-#23832 := [monotonicity #23829]: #23831
-#23835 := [monotonicity #23832]: #23834
-#23838 := [monotonicity #23835]: #23837
-#23841 := [monotonicity #23838]: #23840
-#23810 := (iff #22876 #23809)
-#23807 := (iff #22875 #23806)
-#23808 := [monotonicity #23805]: #23807
-#23811 := [monotonicity #23808]: #23810
-#23844 := [monotonicity #23811 #23841]: #23843
-#23847 := [monotonicity #23844]: #23846
-#23850 := [monotonicity #23847]: #23849
-#23853 := [monotonicity #23850]: #23852
-#23856 := [monotonicity #23853]: #23855
-#23859 := [monotonicity #23856]: #23858
-#23862 := [monotonicity #23859]: #23861
-#23865 := [monotonicity #23862]: #23864
-#23868 := [monotonicity #23865]: #23867
-#23871 := [monotonicity #23868]: #23870
-#23874 := [monotonicity #23871]: #23873
-#23877 := [monotonicity #23874]: #23876
-#23914 := [monotonicity #23877 #23911]: #23913
-#23917 := [monotonicity #23914]: #23916
-#23760 := (iff #23040 #23759)
-#23757 := (iff #22779 #23754)
-#23755 := (iff #22774 #22774)
-#23756 := [refl]: #23755
-#23758 := [quant-intro #23756]: #23757
-#23761 := [monotonicity #23758]: #23760
-#23920 := [monotonicity #23761 #23917]: #23919
-#23923 := [monotonicity #23920]: #23922
-#23926 := [monotonicity #23923]: #23925
-#23929 := [monotonicity #23926]: #23928
-#23752 := (iff #23057 #23751)
-#23749 := (iff #22768 #23746)
-#23747 := (iff #22763 #22763)
-#23748 := [refl]: #23747
-#23750 := [quant-intro #23748]: #23749
-#23753 := [monotonicity #23750]: #23752
-#23932 := [monotonicity #23753 #23929]: #23931
-#23935 := [monotonicity #23932]: #23934
-#23938 := [monotonicity #23935]: #23937
-#23941 := [monotonicity #23938]: #23940
-#23944 := [monotonicity #23941]: #23943
-#23947 := [monotonicity #23944]: #23946
-#23950 := [monotonicity #23947]: #23949
-#23953 := [monotonicity #23950]: #23952
-#23956 := [monotonicity #23953]: #23955
-#23959 := [monotonicity #23956]: #23958
-#23962 := [monotonicity #23959]: #23961
-#23965 := [monotonicity #23962]: #23964
-#23968 := [monotonicity #23965]: #23967
-#23971 := [monotonicity #23968]: #23970
-#23974 := [monotonicity #23971]: #23973
-#23977 := [monotonicity #23974]: #23976
-#23980 := [monotonicity #23977]: #23979
-#23983 := [monotonicity #23980]: #23982
-#23986 := [monotonicity #23983]: #23985
-#19548 := (and #19191 #19192)
-#19551 := (not #19548)
-#19554 := (or #19530 #19543 #19551)
-#19557 := (not #19554)
-#16489 := (and #3145 #4084 #13958 #15606)
-#19214 := (not #16489)
-#19217 := (forall (vars (?x782 int)) #19214)
-#14858 := (and #4084 #15606)
-#14857 := (not #14858)
-#16475 := (or #13959 #13972 #14857)
-#16480 := (forall (vars (?x781 int)) #16475)
-#19221 := (and #16480 #19217)
-#19563 := (or #19221 #19557)
-#19571 := (and #12567 #12570 #12573 #12576 #13947 #13950 #14046 #19563)
-#19392 := (and #19055 #19056)
-#19395 := (not #19392)
-#19398 := (or #19374 #19387 #19395)
-#19401 := (not #19398)
-#16376 := (or #14109 #14122 #14857)
-#16381 := (forall (vars (?x785 int)) #16376)
-#19071 := (not #14151)
-#19081 := (and #19071 #16381)
-#19407 := (or #19081 #19401)
-#19412 := (and #14100 #19407)
-#19415 := (or #14105 #19412)
-#19423 := (and #3199 #14076 #14088 #14092 #14168 #16368 #19415)
-#19428 := (or #19034 #19037 #19423)
-#19454 := (and #3242 #3244 #3246 #12806 #12812 #13070 #13075 #13950 #14076 #19428)
-#19459 := (or #19011 #19017 #19454)
-#19465 := (and #12803 #12806 #19459)
-#19470 := (or #19008 #19011 #19465)
-#19476 := (and #13947 #13950 #14211 #19470)
-#19434 := (and #12823 #12826 #13947 #13950 #14076 #14207 #19428)
-#19481 := (or #19434 #19476)
-#19487 := (and #12806 #12812 #13947 #13950 #19481)
-#19492 := (or #19011 #19017 #19487)
-#19498 := (and #12803 #12806 #19492)
-#19503 := (or #19008 #19011 #19498)
-#19509 := (and #13947 #13950 #14049 #19503)
-#19576 := (or #19509 #19571)
-#16293 := (or #14420 #14433 #14857)
-#16298 := (forall (vars (?x774 int)) #16293)
-#19582 := (and #3022 #3121 #3122 #3123 #3124 #3125 #3126 #12426 #12437 #12553 #13943 #13947 #13950 #14405 #14453 #14462 #14490 #16298 #16310 #16332 #16349 #19576)
-#19587 := (or #13672 #13942 #19582)
-#16279 := (or #13910 #13921 #14857)
-#16284 := (forall (vars (?x773 int)) #16279)
-#19590 := (and #16284 #19587)
-#19303 := (and #18930 #18931)
-#19306 := (not #19303)
-#19312 := (or #18938 #18939 #19306)
-#19317 := (not #19312)
-#19593 := (or #19317 #19590)
-#19596 := (and #13903 #19593)
-#19599 := (or #13906 #19596)
-#19605 := (and #3022 #3025 #3028 #3031 #12361 #12367 #19599)
-#19610 := (or #18900 #18906 #19605)
-#19616 := (and #12358 #12361 #19610)
-#19621 := (or #18897 #18900 #19616)
-#19624 := (and #12355 #19621)
-#19627 := (or #13715 #19624)
-#23118 := (iff #19627 #23117)
-#23115 := (iff #19624 #23112)
-#23107 := (and #12355 #23104)
-#23113 := (iff #23107 #23112)
-#23114 := [rewrite]: #23113
-#23108 := (iff #19624 #23107)
-#23105 := (iff #19621 #23104)
-#23102 := (iff #19616 #23099)
-#23094 := (and #12358 #12361 #23091)
-#23100 := (iff #23094 #23099)
-#23101 := [rewrite]: #23100
-#23095 := (iff #19616 #23094)
-#23092 := (iff #19610 #23091)
-#23089 := (iff #19605 #23086)
-#23081 := (and #3022 #3025 #3028 #3031 #12361 #12367 #23078)
-#23087 := (iff #23081 #23086)
-#23088 := [rewrite]: #23087
-#23082 := (iff #19605 #23081)
-#23079 := (iff #19599 #23078)
-#23076 := (iff #19596 #23073)
-#23068 := (and #13903 #23065)
-#23074 := (iff #23068 #23073)
-#23075 := [rewrite]: #23074
-#23069 := (iff #19596 #23068)
-#23066 := (iff #19593 #23065)
-#23063 := (iff #19590 #23060)
-#23054 := (and #22768 #23051)
-#23061 := (iff #23054 #23060)
-#23062 := [rewrite]: #23061
-#23055 := (iff #19590 #23054)
-#23052 := (iff #19587 #23051)
-#23049 := (iff #19582 #23046)
-#23032 := (and #3022 #3121 #3122 #3123 #3124 #3125 #3126 #12426 #12437 #12553 #13943 #13947 #13950 #14405 #14453 #14462 #14490 #22779 #16310 #16332 #16349 #23029)
-#23047 := (iff #23032 #23046)
-#23048 := [rewrite]: #23047
-#23033 := (iff #19582 #23032)
-#23030 := (iff #19576 #23029)
-#23027 := (iff #19571 #23024)
-#23019 := (and #12567 #12570 #12573 #12576 #13947 #13950 #14046 #23016)
-#23025 := (iff #23019 #23024)
-#23026 := [rewrite]: #23025
-#23020 := (iff #19571 #23019)
-#23017 := (iff #19563 #23016)
-#23014 := (iff #19557 #23013)
-#23011 := (iff #19554 #23008)
-#22994 := (or #22992 #22993)
-#23005 := (or #19530 #19543 #22994)
-#23009 := (iff #23005 #23008)
-#23010 := [rewrite]: #23009
-#23006 := (iff #19554 #23005)
-#23003 := (iff #19551 #22994)
-#22995 := (not #22994)
-#22998 := (not #22995)
-#23001 := (iff #22998 #22994)
-#23002 := [rewrite]: #23001
-#22999 := (iff #19551 #22998)
-#22996 := (iff #19548 #22995)
-#22997 := [rewrite]: #22996
-#23000 := [monotonicity #22997]: #22999
-#23004 := [trans #23000 #23002]: #23003
-#23007 := [monotonicity #23004]: #23006
-#23012 := [trans #23007 #23010]: #23011
-#23015 := [monotonicity #23012]: #23014
-#22990 := (iff #19221 #22987)
-#22981 := (and #22963 #22978)
-#22988 := (iff #22981 #22987)
-#22989 := [rewrite]: #22988
-#22982 := (iff #19221 #22981)
-#22979 := (iff #19217 #22978)
-#22976 := (iff #19214 #22967)
-#22968 := (not #22967)
-#22971 := (not #22968)
-#22974 := (iff #22971 #22967)
-#22975 := [rewrite]: #22974
-#22972 := (iff #19214 #22971)
-#22969 := (iff #16489 #22968)
-#22970 := [rewrite]: #22969
-#22973 := [monotonicity #22970]: #22972
-#22977 := [trans #22973 #22975]: #22976
-#22980 := [quant-intro #22977]: #22979
-#22964 := (iff #16480 #22963)
-#22961 := (iff #16475 #22958)
-#20695 := (or #5113 #20064)
-#22955 := (or #13959 #13972 #20695)
-#22959 := (iff #22955 #22958)
-#22960 := [rewrite]: #22959
-#22956 := (iff #16475 #22955)
-#20704 := (iff #14857 #20695)
-#20696 := (not #20695)
-#20699 := (not #20696)
-#20702 := (iff #20699 #20695)
-#20703 := [rewrite]: #20702
-#20700 := (iff #14857 #20699)
-#20697 := (iff #14858 #20696)
-#20698 := [rewrite]: #20697
-#20701 := [monotonicity #20698]: #20700
-#20705 := [trans #20701 #20703]: #20704
-#22957 := [monotonicity #20705]: #22956
-#22962 := [trans #22957 #22960]: #22961
-#22965 := [quant-intro #22962]: #22964
-#22983 := [monotonicity #22965 #22980]: #22982
-#22991 := [trans #22983 #22989]: #22990
-#23018 := [monotonicity #22991 #23015]: #23017
-#23021 := [monotonicity #23018]: #23020
-#23028 := [trans #23021 #23026]: #23027
-#22953 := (iff #19509 #22950)
-#22945 := (and #13947 #13950 #14049 #22942)
-#22951 := (iff #22945 #22950)
-#22952 := [rewrite]: #22951
-#22946 := (iff #19509 #22945)
-#22943 := (iff #19503 #22942)
-#22940 := (iff #19498 #22937)
-#22932 := (and #12803 #12806 #22929)
-#22938 := (iff #22932 #22937)
-#22939 := [rewrite]: #22938
-#22933 := (iff #19498 #22932)
-#22930 := (iff #19492 #22929)
-#22927 := (iff #19487 #22924)
-#22919 := (and #12806 #12812 #13947 #13950 #22916)
-#22925 := (iff #22919 #22924)
-#22926 := [rewrite]: #22925
-#22920 := (iff #19487 #22919)
-#22917 := (iff #19481 #22916)
-#22914 := (iff #19476 #22911)
-#22906 := (and #13947 #13950 #14211 #22903)
-#22912 := (iff #22906 #22911)
-#22913 := [rewrite]: #22912
-#22907 := (iff #19476 #22906)
-#22904 := (iff #19470 #22903)
-#22901 := (iff #19465 #22898)
-#22893 := (and #12803 #12806 #22890)
-#22899 := (iff #22893 #22898)
-#22900 := [rewrite]: #22899
-#22894 := (iff #19465 #22893)
-#22891 := (iff #19459 #22890)
-#22888 := (iff #19454 #22885)
-#22881 := (and #3242 #3244 #3246 #12806 #12812 #13070 #13075 #13950 #14076 #22867)
-#22886 := (iff #22881 #22885)
-#22887 := [rewrite]: #22886
-#22882 := (iff #19454 #22881)
-#22868 := (iff #19428 #22867)
-#22865 := (iff #19423 #22862)
-#22855 := (and #3199 #14076 #14088 #14092 #14168 #16368 #22852)
-#22863 := (iff #22855 #22862)
-#22864 := [rewrite]: #22863
-#22856 := (iff #19423 #22855)
-#22853 := (iff #19415 #22852)
-#22850 := (iff #19412 #22847)
-#22842 := (and #14100 #22839)
-#22848 := (iff #22842 #22847)
-#22849 := [rewrite]: #22848
-#22843 := (iff #19412 #22842)
-#22840 := (iff #19407 #22839)
-#22837 := (iff #19401 #22836)
-#22834 := (iff #19398 #22831)
-#22817 := (or #22815 #22816)
-#22828 := (or #19374 #19387 #22817)
-#22832 := (iff #22828 #22831)
-#22833 := [rewrite]: #22832
-#22829 := (iff #19398 #22828)
-#22826 := (iff #19395 #22817)
-#22818 := (not #22817)
-#22821 := (not #22818)
-#22824 := (iff #22821 #22817)
-#22825 := [rewrite]: #22824
-#22822 := (iff #19395 #22821)
-#22819 := (iff #19392 #22818)
-#22820 := [rewrite]: #22819
-#22823 := [monotonicity #22820]: #22822
-#22827 := [trans #22823 #22825]: #22826
-#22830 := [monotonicity #22827]: #22829
-#22835 := [trans #22830 #22833]: #22834
-#22838 := [monotonicity #22835]: #22837
-#22813 := (iff #19081 #22810)
-#22805 := (and #22783 #22802)
-#22811 := (iff #22805 #22810)
-#22812 := [rewrite]: #22811
-#22806 := (iff #19081 #22805)
-#22803 := (iff #16381 #22802)
-#22800 := (iff #16376 #22797)
-#22794 := (or #14109 #14122 #20695)
-#22798 := (iff #22794 #22797)
-#22799 := [rewrite]: #22798
-#22795 := (iff #16376 #22794)
-#22796 := [monotonicity #20705]: #22795
-#22801 := [trans #22796 #22799]: #22800
-#22804 := [quant-intro #22801]: #22803
-#22792 := (iff #19071 #22783)
-#22787 := (not #22784)
-#22790 := (iff #22787 #22783)
-#22791 := [rewrite]: #22790
-#22788 := (iff #19071 #22787)
-#22785 := (iff #14151 #22784)
-#22786 := [rewrite]: #22785
-#22789 := [monotonicity #22786]: #22788
-#22793 := [trans #22789 #22791]: #22792
-#22807 := [monotonicity #22793 #22804]: #22806
-#22814 := [trans #22807 #22812]: #22813
-#22841 := [monotonicity #22814 #22838]: #22840
-#22844 := [monotonicity #22841]: #22843
-#22851 := [trans #22844 #22849]: #22850
-#22854 := [monotonicity #22851]: #22853
-#22857 := [monotonicity #22854]: #22856
-#22866 := [trans #22857 #22864]: #22865
-#22869 := [monotonicity #22866]: #22868
-#22883 := [monotonicity #22869]: #22882
-#22889 := [trans #22883 #22887]: #22888
-#22892 := [monotonicity #22889]: #22891
-#22895 := [monotonicity #22892]: #22894
-#22902 := [trans #22895 #22900]: #22901
-#22905 := [monotonicity #22902]: #22904
-#22908 := [monotonicity #22905]: #22907
-#22915 := [trans #22908 #22913]: #22914
-#22879 := (iff #19434 #22876)
-#22870 := (and #12823 #12826 #13947 #13950 #14076 #14207 #22867)
-#22877 := (iff #22870 #22876)
-#22878 := [rewrite]: #22877
-#22871 := (iff #19434 #22870)
-#22872 := [monotonicity #22869]: #22871
-#22880 := [trans #22872 #22878]: #22879
-#22918 := [monotonicity #22880 #22915]: #22917
-#22921 := [monotonicity #22918]: #22920
-#22928 := [trans #22921 #22926]: #22927
-#22931 := [monotonicity #22928]: #22930
-#22934 := [monotonicity #22931]: #22933
-#22941 := [trans #22934 #22939]: #22940
-#22944 := [monotonicity #22941]: #22943
-#22947 := [monotonicity #22944]: #22946
-#22954 := [trans #22947 #22952]: #22953
-#23031 := [monotonicity #22954 #23028]: #23030
-#22780 := (iff #16298 #22779)
-#22777 := (iff #16293 #22774)
-#22771 := (or #14420 #14433 #20695)
-#22775 := (iff #22771 #22774)
-#22776 := [rewrite]: #22775
-#22772 := (iff #16293 #22771)
-#22773 := [monotonicity #20705]: #22772
-#22778 := [trans #22773 #22776]: #22777
-#22781 := [quant-intro #22778]: #22780
-#23034 := [monotonicity #22781 #23031]: #23033
-#23050 := [trans #23034 #23048]: #23049
-#23053 := [monotonicity #23050]: #23052
-#22769 := (iff #16284 #22768)
-#22766 := (iff #16279 #22763)
-#22760 := (or #13910 #13921 #20695)
-#22764 := (iff #22760 #22763)
-#22765 := [rewrite]: #22764
-#22761 := (iff #16279 #22760)
-#22762 := [monotonicity #20705]: #22761
-#22767 := [trans #22762 #22765]: #22766
-#22770 := [quant-intro #22767]: #22769
-#23056 := [monotonicity #22770 #23053]: #23055
-#23064 := [trans #23056 #23062]: #23063
-#22758 := (iff #19317 #22757)
-#22755 := (iff #19312 #22752)
-#22738 := (or #22736 #22737)
-#22749 := (or #18938 #18939 #22738)
-#22753 := (iff #22749 #22752)
-#22754 := [rewrite]: #22753
-#22750 := (iff #19312 #22749)
-#22747 := (iff #19306 #22738)
-#22739 := (not #22738)
-#22742 := (not #22739)
-#22745 := (iff #22742 #22738)
-#22746 := [rewrite]: #22745
-#22743 := (iff #19306 #22742)
-#22740 := (iff #19303 #22739)
-#22741 := [rewrite]: #22740
-#22744 := [monotonicity #22741]: #22743
-#22748 := [trans #22744 #22746]: #22747
-#22751 := [monotonicity #22748]: #22750
-#22756 := [trans #22751 #22754]: #22755
-#22759 := [monotonicity #22756]: #22758
-#23067 := [monotonicity #22759 #23064]: #23066
-#23070 := [monotonicity #23067]: #23069
-#23077 := [trans #23070 #23075]: #23076
-#23080 := [monotonicity #23077]: #23079
-#23083 := [monotonicity #23080]: #23082
-#23090 := [trans #23083 #23088]: #23089
-#23093 := [monotonicity #23090]: #23092
-#23096 := [monotonicity #23093]: #23095
-#23103 := [trans #23096 #23101]: #23102
-#23106 := [monotonicity #23103]: #23105
-#23109 := [monotonicity #23106]: #23108
-#23116 := [trans #23109 #23114]: #23115
-#23119 := [monotonicity #23116]: #23118
-#19193 := (and #19192 #19191)
-#19194 := (not #19193)
-#19197 := (+ #19196 #13970)
-#19198 := (<= #19197 0::int)
-#19199 := (+ ?x781!15 #13873)
-#19200 := (>= #19199 0::int)
-#19201 := (or #19200 #19198 #19194)
-#19202 := (not #19201)
-#19225 := (or #19202 #19221)
-#18978 := (not #13955)
-#19185 := (not #12644)
-#19182 := (not #12653)
-#19179 := (not #12662)
-#19176 := (not #12671)
-#19229 := (and #19176 #19179 #19182 #19185 #18978 #14352 #19225)
-#16407 := (and #14088 #16368)
-#16412 := (not #16407)
-#19097 := (not #16412)
-#19057 := (and #19056 #19055)
-#19058 := (not #19057)
-#19061 := (+ #19060 #14120)
-#19062 := (<= #19061 0::int)
-#19063 := (+ ?x785!14 #14101)
-#19064 := (>= #19063 0::int)
-#19065 := (or #19064 #19062 #19058)
-#19066 := (not #19065)
-#19085 := (or #19066 #19081)
-#19051 := (not #14105)
-#19089 := (and #19051 #19085)
-#19093 := (or #14105 #19089)
-#19046 := (not #14172)
-#19043 := (not #14097)
-#19040 := (not #12942)
-#19100 := (and #19040 #19043 #19046 #19093 #19097)
-#19104 := (or #19034 #19037 #19100)
-#19029 := (not #14081)
-#19129 := (not #14243)
-#19126 := (not #13081)
-#19123 := (not #13133)
-#19020 := (not #13142)
-#19120 := (not #13090)
-#19117 := (not #13115)
-#19114 := (not #13124)
-#19132 := (and #19114 #19117 #19120 #19020 #19123 #19126 #19129 #19029 #19104)
-#19136 := (or #19011 #19017 #19132)
-#19014 := (not #13159)
-#19140 := (and #19014 #19136)
-#19144 := (or #19008 #19011 #19140)
-#19148 := (and #18978 #14211 #19144)
-#19026 := (not #12993)
-#19023 := (not #13002)
-#19108 := (and #19023 #19026 #18978 #19029 #14293 #19104)
-#19152 := (or #19108 #19148)
-#19156 := (and #19020 #18978 #19152)
-#19160 := (or #19011 #19017 #19156)
-#19164 := (and #19014 #19160)
-#19168 := (or #19008 #19011 #19164)
-#19172 := (and #18978 #14049 #19168)
-#19233 := (or #19172 #19229)
-#16357 := (and #14490 #16349)
-#16362 := (not #16357)
-#19003 := (not #16362)
-#16337 := (and #13947 #16332)
-#16340 := (not #16337)
-#19000 := (not #16340)
-#16318 := (and #14462 #16310)
-#16323 := (not #16318)
-#18997 := (not #16323)
-#18987 := (not #14507)
-#18984 := (not #14456)
-#18981 := (not #14416)
-#18975 := (not #15709)
-#18972 := (not #14399)
-#18969 := (not #13331)
-#18966 := (not #13340)
-#18963 := (not #13349)
-#18960 := (not #13358)
-#18957 := (not #13367)
-#19237 := (and #18957 #18960 #18963 #18966 #18969 #18972 #18975 #18978 #18981 #18984 #18987 #16298 #18997 #19000 #19003 #19233)
-#19241 := (or #13672 #14664 #19237)
-#19245 := (and #16284 #19241)
-#18932 := (and #18931 #18930)
-#18933 := (not #18932)
-#18940 := (or #18939 #18938 #18933)
-#18941 := (not #18940)
-#19249 := (or #18941 #19245)
-#18926 := (not #13906)
-#19253 := (and #18926 #19249)
-#19257 := (or #13906 #19253)
-#18921 := (not #13681)
-#18918 := (not #13645)
-#18915 := (not #13654)
-#18912 := (not #13663)
-#18909 := (not #13672)
-#19261 := (and #18909 #18912 #18915 #18918 #18921 #19257)
-#19265 := (or #18900 #18906 #19261)
-#18903 := (not #13698)
-#19269 := (and #18903 #19265)
-#19273 := (or #18897 #18900 #19269)
-#18894 := (not #13715)
-#19277 := (and #18894 #19273)
-#19281 := (or #13715 #19277)
-#19628 := (iff #19281 #19627)
-#19625 := (iff #19277 #19624)
-#19622 := (iff #19273 #19621)
-#19619 := (iff #19269 #19616)
-#19613 := (and #12364 #19610)
-#19617 := (iff #19613 #19616)
-#19618 := [rewrite]: #19617
-#19614 := (iff #19269 #19613)
-#19611 := (iff #19265 #19610)
-#19608 := (iff #19261 #19605)
-#19602 := (and #3022 #3025 #3028 #3031 #12373 #19599)
-#19606 := (iff #19602 #19605)
-#19607 := [rewrite]: #19606
-#19603 := (iff #19261 #19602)
-#19600 := (iff #19257 #19599)
-#19597 := (iff #19253 #19596)
-#19594 := (iff #19249 #19593)
-#19591 := (iff #19245 #19590)
-#19588 := (iff #19241 #19587)
-#19585 := (iff #19237 #19582)
-#19579 := (and #3121 #3122 #3123 #3124 #3127 #12437 #12553 #13952 #14411 #14453 #14502 #16298 #16318 #16337 #16357 #19576)
-#19583 := (iff #19579 #19582)
-#19584 := [rewrite]: #19583
-#19580 := (iff #19237 #19579)
-#19577 := (iff #19233 #19576)
-#19574 := (iff #19229 #19571)
-#19568 := (and #12567 #12570 #12573 #12576 #13952 #14046 #19563)
-#19572 := (iff #19568 #19571)
-#19573 := [rewrite]: #19572
-#19569 := (iff #19229 #19568)
-#19566 := (iff #19225 #19563)
-#19560 := (or #19557 #19221)
-#19564 := (iff #19560 #19563)
-#19565 := [rewrite]: #19564
-#19561 := (iff #19225 #19560)
-#19558 := (iff #19202 #19557)
-#19555 := (iff #19201 #19554)
-#19552 := (iff #19194 #19551)
-#19549 := (iff #19193 #19548)
-#19550 := [rewrite]: #19549
-#19553 := [monotonicity #19550]: #19552
-#19546 := (iff #19198 #19543)
-#19535 := (+ #13970 #19196)
-#19538 := (<= #19535 0::int)
-#19544 := (iff #19538 #19543)
-#19545 := [rewrite]: #19544
-#19539 := (iff #19198 #19538)
-#19536 := (= #19197 #19535)
-#19537 := [rewrite]: #19536
-#19540 := [monotonicity #19537]: #19539
-#19547 := [trans #19540 #19545]: #19546
-#19533 := (iff #19200 #19530)
-#19522 := (+ #13873 ?x781!15)
-#19525 := (>= #19522 0::int)
-#19531 := (iff #19525 #19530)
-#19532 := [rewrite]: #19531
-#19526 := (iff #19200 #19525)
-#19523 := (= #19199 #19522)
-#19524 := [rewrite]: #19523
-#19527 := [monotonicity #19524]: #19526
-#19534 := [trans #19527 #19532]: #19533
-#19556 := [monotonicity #19534 #19547 #19553]: #19555
-#19559 := [monotonicity #19556]: #19558
-#19562 := [monotonicity #19559]: #19561
-#19567 := [trans #19562 #19565]: #19566
-#19334 := (iff #18978 #13952)
-#19335 := [rewrite]: #19334
-#19520 := (iff #19185 #12576)
-#19521 := [rewrite]: #19520
-#19518 := (iff #19182 #12573)
-#19519 := [rewrite]: #19518
-#19516 := (iff #19179 #12570)
-#19517 := [rewrite]: #19516
-#19514 := (iff #19176 #12567)
-#19515 := [rewrite]: #19514
-#19570 := [monotonicity #19515 #19517 #19519 #19521 #19335 #14356 #19567]: #19569
-#19575 := [trans #19570 #19573]: #19574
-#19512 := (iff #19172 #19509)
-#19506 := (and #13952 #14049 #19503)
-#19510 := (iff #19506 #19509)
-#19511 := [rewrite]: #19510
-#19507 := (iff #19172 #19506)
-#19504 := (iff #19168 #19503)
-#19501 := (iff #19164 #19498)
-#19495 := (and #12809 #19492)
-#19499 := (iff #19495 #19498)
-#19500 := [rewrite]: #19499
-#19496 := (iff #19164 #19495)
-#19493 := (iff #19160 #19492)
-#19490 := (iff #19156 #19487)
-#19484 := (and #12818 #13952 #19481)
-#19488 := (iff #19484 #19487)
-#19489 := [rewrite]: #19488
-#19485 := (iff #19156 #19484)
-#19482 := (iff #19152 #19481)
-#19479 := (iff #19148 #19476)
-#19473 := (and #13952 #14211 #19470)
-#19477 := (iff #19473 #19476)
-#19478 := [rewrite]: #19477
-#19474 := (iff #19148 #19473)
-#19471 := (iff #19144 #19470)
-#19468 := (iff #19140 #19465)
-#19462 := (and #12809 #19459)
-#19466 := (iff #19462 #19465)
-#19467 := [rewrite]: #19466
-#19463 := (iff #19140 #19462)
-#19460 := (iff #19136 #19459)
-#19457 := (iff #19132 #19454)
-#19451 := (and #3242 #3244 #3246 #12818 #13070 #13075 #13950 #14078 #19428)
-#19455 := (iff #19451 #19454)
-#19456 := [rewrite]: #19455
-#19452 := (iff #19132 #19451)
-#19429 := (iff #19104 #19428)
-#19426 := (iff #19100 #19423)
-#19420 := (and #3199 #14094 #14168 #19415 #16407)
-#19424 := (iff #19420 #19423)
-#19425 := [rewrite]: #19424
-#19421 := (iff #19100 #19420)
-#19418 := (iff #19097 #16407)
-#19419 := [rewrite]: #19418
-#19416 := (iff #19093 #19415)
-#19413 := (iff #19089 #19412)
-#19410 := (iff #19085 #19407)
-#19404 := (or #19401 #19081)
-#19408 := (iff #19404 #19407)
-#19409 := [rewrite]: #19408
-#19405 := (iff #19085 #19404)
-#19402 := (iff #19066 #19401)
-#19399 := (iff #19065 #19398)
-#19396 := (iff #19058 #19395)
-#19393 := (iff #19057 #19392)
-#19394 := [rewrite]: #19393
-#19397 := [monotonicity #19394]: #19396
-#19390 := (iff #19062 #19387)
-#19379 := (+ #14120 #19060)
-#19382 := (<= #19379 0::int)
-#19388 := (iff #19382 #19387)
-#19389 := [rewrite]: #19388
-#19383 := (iff #19062 #19382)
-#19380 := (= #19061 #19379)
-#19381 := [rewrite]: #19380
-#19384 := [monotonicity #19381]: #19383
-#19391 := [trans #19384 #19389]: #19390
-#19377 := (iff #19064 #19374)
-#19366 := (+ #14101 ?x785!14)
-#19369 := (>= #19366 0::int)
-#19375 := (iff #19369 #19374)
-#19376 := [rewrite]: #19375
-#19370 := (iff #19064 #19369)
-#19367 := (= #19063 #19366)
-#19368 := [rewrite]: #19367
-#19371 := [monotonicity #19368]: #19370
-#19378 := [trans #19371 #19376]: #19377
-#19400 := [monotonicity #19378 #19391 #19397]: #19399
-#19403 := [monotonicity #19400]: #19402
-#19406 := [monotonicity #19403]: #19405
-#19411 := [trans #19406 #19409]: #19410
-#19364 := (iff #19051 #14100)
-#19365 := [rewrite]: #19364
-#19414 := [monotonicity #19365 #19411]: #19413
-#19417 := [monotonicity #19414]: #19416
-#19362 := (iff #19046 #14168)
-#19363 := [rewrite]: #19362
-#19360 := (iff #19043 #14094)
-#19361 := [rewrite]: #19360
-#19358 := (iff #19040 #3199)
-#19359 := [rewrite]: #19358
-#19422 := [monotonicity #19359 #19361 #19363 #19417 #19419]: #19421
-#19427 := [trans #19422 #19425]: #19426
-#19430 := [monotonicity #19427]: #19429
-#19356 := (iff #19029 #14078)
-#19357 := [rewrite]: #19356
-#19449 := (iff #19129 #13950)
-#19450 := [rewrite]: #19449
-#19447 := (iff #19126 #13075)
-#19448 := [rewrite]: #19447
-#19445 := (iff #19123 #13070)
-#19446 := [rewrite]: #19445
-#19350 := (iff #19020 #12818)
-#19351 := [rewrite]: #19350
-#19443 := (iff #19120 #3246)
-#19444 := [rewrite]: #19443
-#19441 := (iff #19117 #3244)
-#19442 := [rewrite]: #19441
-#19439 := (iff #19114 #3242)
-#19440 := [rewrite]: #19439
-#19453 := [monotonicity #19440 #19442 #19444 #19351 #19446 #19448 #19450 #19357 #19430]: #19452
-#19458 := [trans #19453 #19456]: #19457
-#19461 := [monotonicity #19458]: #19460
-#19348 := (iff #19014 #12809)
-#19349 := [rewrite]: #19348
-#19464 := [monotonicity #19349 #19461]: #19463
-#19469 := [trans #19464 #19467]: #19468
-#19472 := [monotonicity #19469]: #19471
-#19475 := [monotonicity #19335 #19472]: #19474
-#19480 := [trans #19475 #19478]: #19479
-#19437 := (iff #19108 #19434)
-#19431 := (and #12823 #12826 #13952 #14078 #14207 #19428)
-#19435 := (iff #19431 #19434)
-#19436 := [rewrite]: #19435
-#19432 := (iff #19108 #19431)
-#19354 := (iff #19026 #12826)
-#19355 := [rewrite]: #19354
-#19352 := (iff #19023 #12823)
-#19353 := [rewrite]: #19352
-#19433 := [monotonicity #19353 #19355 #19335 #19357 #14297 #19430]: #19432
-#19438 := [trans #19433 #19436]: #19437
-#19483 := [monotonicity #19438 #19480]: #19482
-#19486 := [monotonicity #19351 #19335 #19483]: #19485
-#19491 := [trans #19486 #19489]: #19490
-#19494 := [monotonicity #19491]: #19493
-#19497 := [monotonicity #19349 #19494]: #19496
-#19502 := [trans #19497 #19500]: #19501
-#19505 := [monotonicity #19502]: #19504
-#19508 := [monotonicity #19335 #19505]: #19507
-#19513 := [trans #19508 #19511]: #19512
-#19578 := [monotonicity #19513 #19575]: #19577
-#19346 := (iff #19003 #16357)
-#19347 := [rewrite]: #19346
-#19344 := (iff #19000 #16337)
-#19345 := [rewrite]: #19344
-#19342 := (iff #18997 #16318)
-#19343 := [rewrite]: #19342
-#19340 := (iff #18987 #14502)
-#19341 := [rewrite]: #19340
-#19338 := (iff #18984 #14453)
-#19339 := [rewrite]: #19338
-#19336 := (iff #18981 #14411)
-#19337 := [rewrite]: #19336
-#19332 := (iff #18975 #12553)
-#19333 := [rewrite]: #19332
-#19330 := (iff #18972 #12437)
-#19331 := [rewrite]: #19330
-#19328 := (iff #18969 #3127)
-#19329 := [rewrite]: #19328
-#19326 := (iff #18966 #3124)
-#19327 := [rewrite]: #19326
-#19324 := (iff #18963 #3123)
-#19325 := [rewrite]: #19324
-#19322 := (iff #18960 #3122)
-#19323 := [rewrite]: #19322
-#19320 := (iff #18957 #3121)
-#19321 := [rewrite]: #19320
-#19581 := [monotonicity #19321 #19323 #19325 #19327 #19329 #19331 #19333 #19335 #19337 #19339 #19341 #19343 #19345 #19347 #19578]: #19580
-#19586 := [trans #19581 #19584]: #19585
-#19589 := [monotonicity #14668 #19586]: #19588
-#19592 := [monotonicity #19589]: #19591
-#19318 := (iff #18941 #19317)
-#19315 := (iff #18940 #19312)
-#19309 := (or #18939 #18938 #19306)
-#19313 := (iff #19309 #19312)
-#19314 := [rewrite]: #19313
-#19310 := (iff #18940 #19309)
-#19307 := (iff #18933 #19306)
-#19304 := (iff #18932 #19303)
-#19305 := [rewrite]: #19304
-#19308 := [monotonicity #19305]: #19307
-#19311 := [monotonicity #19308]: #19310
-#19316 := [trans #19311 #19314]: #19315
-#19319 := [monotonicity #19316]: #19318
-#19595 := [monotonicity #19319 #19592]: #19594
-#19301 := (iff #18926 #13903)
-#19302 := [rewrite]: #19301
-#19598 := [monotonicity #19302 #19595]: #19597
-#19601 := [monotonicity #19598]: #19600
-#19299 := (iff #18921 #12373)
-#19300 := [rewrite]: #19299
-#19297 := (iff #18918 #3031)
-#19298 := [rewrite]: #19297
-#19295 := (iff #18915 #3028)
-#19296 := [rewrite]: #19295
-#19293 := (iff #18912 #3025)
-#19294 := [rewrite]: #19293
-#19291 := (iff #18909 #3022)
-#19292 := [rewrite]: #19291
-#19604 := [monotonicity #19292 #19294 #19296 #19298 #19300 #19601]: #19603
-#19609 := [trans #19604 #19607]: #19608
-#19612 := [monotonicity #19609]: #19611
-#19289 := (iff #18903 #12364)
-#19290 := [rewrite]: #19289
-#19615 := [monotonicity #19290 #19612]: #19614
-#19620 := [trans #19615 #19618]: #19619
-#19623 := [monotonicity #19620]: #19622
-#19287 := (iff #18894 #12355)
-#19288 := [rewrite]: #19287
-#19626 := [monotonicity #19288 #19623]: #19625
-#19629 := [monotonicity #19626]: #19628
-#16494 := (exists (vars (?x782 int)) #16489)
-#16483 := (not #16480)
-#16497 := (or #16483 #16494)
-#16500 := (and #16480 #16497)
-#16506 := (or #12671 #12662 #12653 #12644 #13955 #14049 #16500)
-#16384 := (not #16381)
-#16390 := (or #14151 #16384)
-#16395 := (and #16381 #16390)
-#16398 := (or #14105 #16395)
-#16401 := (and #14100 #16398)
-#16418 := (or #12942 #14097 #14172 #16401 #16412)
-#16426 := (and #14088 #16368 #16418)
-#16439 := (or #13124 #13115 #13090 #13142 #13133 #13081 #14243 #14081 #16426)
-#16442 := (and #12806 #12812 #16439)
-#16445 := (or #13159 #16442)
-#16448 := (and #12803 #12806 #16445)
-#16451 := (or #13955 #14207 #16448)
-#16434 := (or #13002 #12993 #13955 #14081 #14211 #16426)
-#16454 := (and #16434 #16451)
-#16457 := (or #13142 #13955 #16454)
-#16460 := (and #12806 #12812 #16457)
-#16463 := (or #13159 #16460)
-#16466 := (and #12803 #12806 #16463)
-#16469 := (or #13955 #14046 #16466)
-#16511 := (and #16469 #16506)
-#16301 := (not #16298)
-#16517 := (or #13367 #13358 #13349 #13340 #13331 #14399 #15709 #13955 #14416 #14456 #14507 #16301 #16323 #16340 #16362 #16511)
-#16522 := (and #3022 #13943 #16517)
-#16287 := (not #16284)
-#16525 := (or #16287 #16522)
-#16528 := (and #16284 #16525)
-#16531 := (or #13906 #16528)
-#16534 := (and #13903 #16531)
-#16537 := (or #13672 #13663 #13654 #13645 #13681 #16534)
-#16540 := (and #12361 #12367 #16537)
-#16543 := (or #13698 #16540)
-#16546 := (and #12358 #12361 #16543)
-#16549 := (or #13715 #16546)
-#16552 := (and #12355 #16549)
-#16555 := (not #16552)
-#19282 := (~ #16555 #19281)
-#19278 := (not #16549)
-#19279 := (~ #19278 #19277)
-#19274 := (not #16546)
-#19275 := (~ #19274 #19273)
-#19270 := (not #16543)
-#19271 := (~ #19270 #19269)
-#19266 := (not #16540)
-#19267 := (~ #19266 #19265)
-#19262 := (not #16537)
-#19263 := (~ #19262 #19261)
-#19258 := (not #16534)
-#19259 := (~ #19258 #19257)
-#19254 := (not #16531)
-#19255 := (~ #19254 #19253)
-#19250 := (not #16528)
-#19251 := (~ #19250 #19249)
-#19246 := (not #16525)
-#19247 := (~ #19246 #19245)
-#19242 := (not #16522)
-#19243 := (~ #19242 #19241)
-#19238 := (not #16517)
-#19239 := (~ #19238 #19237)
-#19234 := (not #16511)
-#19235 := (~ #19234 #19233)
-#19230 := (not #16506)
-#19231 := (~ #19230 #19229)
-#19226 := (not #16500)
-#19227 := (~ #19226 #19225)
-#19222 := (not #16497)
-#19223 := (~ #19222 #19221)
-#19218 := (not #16494)
-#19219 := (~ #19218 #19217)
-#19215 := (~ #19214 #19214)
-#19216 := [refl]: #19215
-#19220 := [nnf-neg #19216]: #19219
-#19211 := (not #16483)
-#19212 := (~ #19211 #16480)
-#19209 := (~ #16480 #16480)
-#19207 := (~ #16475 #16475)
-#19208 := [refl]: #19207
-#19210 := [nnf-pos #19208]: #19209
-#19213 := [nnf-neg #19210]: #19212
-#19224 := [nnf-neg #19213 #19220]: #19223
-#19203 := (~ #16483 #19202)
-#19204 := [sk]: #19203
-#19228 := [nnf-neg #19204 #19224]: #19227
-#19188 := (~ #14352 #14352)
-#19189 := [refl]: #19188
-#18979 := (~ #18978 #18978)
-#18980 := [refl]: #18979
-#19186 := (~ #19185 #19185)
-#19187 := [refl]: #19186
-#19183 := (~ #19182 #19182)
-#19184 := [refl]: #19183
-#19180 := (~ #19179 #19179)
-#19181 := [refl]: #19180
-#19177 := (~ #19176 #19176)
-#19178 := [refl]: #19177
-#19232 := [nnf-neg #19178 #19181 #19184 #19187 #18980 #19189 #19228]: #19231
-#19173 := (not #16469)
-#19174 := (~ #19173 #19172)
-#19169 := (not #16466)
-#19170 := (~ #19169 #19168)
-#19165 := (not #16463)
-#19166 := (~ #19165 #19164)
-#19161 := (not #16460)
-#19162 := (~ #19161 #19160)
-#19157 := (not #16457)
-#19158 := (~ #19157 #19156)
-#19153 := (not #16454)
-#19154 := (~ #19153 #19152)
-#19149 := (not #16451)
-#19150 := (~ #19149 #19148)
-#19145 := (not #16448)
-#19146 := (~ #19145 #19144)
-#19141 := (not #16445)
-#19142 := (~ #19141 #19140)
-#19137 := (not #16442)
-#19138 := (~ #19137 #19136)
-#19133 := (not #16439)
-#19134 := (~ #19133 #19132)
-#19105 := (not #16426)
-#19106 := (~ #19105 #19104)
-#19101 := (not #16418)
-#19102 := (~ #19101 #19100)
-#19098 := (~ #19097 #19097)
-#19099 := [refl]: #19098
-#19094 := (not #16401)
-#19095 := (~ #19094 #19093)
-#19090 := (not #16398)
-#19091 := (~ #19090 #19089)
-#19086 := (not #16395)
-#19087 := (~ #19086 #19085)
-#19082 := (not #16390)
-#19083 := (~ #19082 #19081)
-#19078 := (not #16384)
-#19079 := (~ #19078 #16381)
-#19076 := (~ #16381 #16381)
-#19074 := (~ #16376 #16376)
-#19075 := [refl]: #19074
-#19077 := [nnf-pos #19075]: #19076
-#19080 := [nnf-neg #19077]: #19079
-#19072 := (~ #19071 #19071)
-#19073 := [refl]: #19072
-#19084 := [nnf-neg #19073 #19080]: #19083
-#19067 := (~ #16384 #19066)
-#19068 := [sk]: #19067
-#19088 := [nnf-neg #19068 #19084]: #19087
-#19052 := (~ #19051 #19051)
-#19053 := [refl]: #19052
-#19092 := [nnf-neg #19053 #19088]: #19091
-#19049 := (~ #14105 #14105)
-#19050 := [refl]: #19049
-#19096 := [nnf-neg #19050 #19092]: #19095
-#19047 := (~ #19046 #19046)
-#19048 := [refl]: #19047
-#19044 := (~ #19043 #19043)
-#19045 := [refl]: #19044
-#19041 := (~ #19040 #19040)
-#19042 := [refl]: #19041
-#19103 := [nnf-neg #19042 #19045 #19048 #19096 #19099]: #19102
-#19038 := (~ #19037 #19037)
-#19039 := [refl]: #19038
-#19035 := (~ #19034 #19034)
-#19036 := [refl]: #19035
-#19107 := [nnf-neg #19036 #19039 #19103]: #19106
-#19030 := (~ #19029 #19029)
-#19031 := [refl]: #19030
-#19130 := (~ #19129 #19129)
-#19131 := [refl]: #19130
-#19127 := (~ #19126 #19126)
-#19128 := [refl]: #19127
-#19124 := (~ #19123 #19123)
-#19125 := [refl]: #19124
-#19021 := (~ #19020 #19020)
-#19022 := [refl]: #19021
-#19121 := (~ #19120 #19120)
-#19122 := [refl]: #19121
-#19118 := (~ #19117 #19117)
-#19119 := [refl]: #19118
-#19115 := (~ #19114 #19114)
-#19116 := [refl]: #19115
-#19135 := [nnf-neg #19116 #19119 #19122 #19022 #19125 #19128 #19131 #19031 #19107]: #19134
-#19018 := (~ #19017 #19017)
-#19019 := [refl]: #19018
-#19012 := (~ #19011 #19011)
-#19013 := [refl]: #19012
-#19139 := [nnf-neg #19013 #19019 #19135]: #19138
-#19015 := (~ #19014 #19014)
-#19016 := [refl]: #19015
-#19143 := [nnf-neg #19016 #19139]: #19142
-#19009 := (~ #19008 #19008)
-#19010 := [refl]: #19009
-#19147 := [nnf-neg #19010 #19013 #19143]: #19146
-#19112 := (~ #14211 #14211)
-#19113 := [refl]: #19112
-#19151 := [nnf-neg #18980 #19113 #19147]: #19150
-#19109 := (not #16434)
-#19110 := (~ #19109 #19108)
-#19032 := (~ #14293 #14293)
-#19033 := [refl]: #19032
-#19027 := (~ #19026 #19026)
-#19028 := [refl]: #19027
-#19024 := (~ #19023 #19023)
-#19025 := [refl]: #19024
-#19111 := [nnf-neg #19025 #19028 #18980 #19031 #19033 #19107]: #19110
-#19155 := [nnf-neg #19111 #19151]: #19154
-#19159 := [nnf-neg #19022 #18980 #19155]: #19158
-#19163 := [nnf-neg #19013 #19019 #19159]: #19162
-#19167 := [nnf-neg #19016 #19163]: #19166
-#19171 := [nnf-neg #19010 #19013 #19167]: #19170
-#19006 := (~ #14049 #14049)
-#19007 := [refl]: #19006
-#19175 := [nnf-neg #18980 #19007 #19171]: #19174
-#19236 := [nnf-neg #19175 #19232]: #19235
-#19004 := (~ #19003 #19003)
-#19005 := [refl]: #19004
-#19001 := (~ #19000 #19000)
-#19002 := [refl]: #19001
-#18998 := (~ #18997 #18997)
-#18999 := [refl]: #18998
-#18994 := (not #16301)
-#18995 := (~ #18994 #16298)
-#18992 := (~ #16298 #16298)
-#18990 := (~ #16293 #16293)
-#18991 := [refl]: #18990
-#18993 := [nnf-pos #18991]: #18992
-#18996 := [nnf-neg #18993]: #18995
-#18988 := (~ #18987 #18987)
-#18989 := [refl]: #18988
-#18985 := (~ #18984 #18984)
-#18986 := [refl]: #18985
-#18982 := (~ #18981 #18981)
-#18983 := [refl]: #18982
-#18976 := (~ #18975 #18975)
-#18977 := [refl]: #18976
-#18973 := (~ #18972 #18972)
-#18974 := [refl]: #18973
-#18970 := (~ #18969 #18969)
-#18971 := [refl]: #18970
-#18967 := (~ #18966 #18966)
-#18968 := [refl]: #18967
-#18964 := (~ #18963 #18963)
-#18965 := [refl]: #18964
-#18961 := (~ #18960 #18960)
-#18962 := [refl]: #18961
-#18958 := (~ #18957 #18957)
-#18959 := [refl]: #18958
-#19240 := [nnf-neg #18959 #18962 #18965 #18968 #18971 #18974 #18977 #18980 #18983 #18986 #18989 #18996 #18999 #19002 #19005 #19236]: #19239
-#18955 := (~ #14664 #14664)
-#18956 := [refl]: #18955
-#18953 := (~ #13672 #13672)
-#18954 := [refl]: #18953
-#19244 := [nnf-neg #18954 #18956 #19240]: #19243
-#18950 := (not #16287)
-#18951 := (~ #18950 #16284)
-#18948 := (~ #16284 #16284)
-#18946 := (~ #16279 #16279)
-#18947 := [refl]: #18946
-#18949 := [nnf-pos #18947]: #18948
-#18952 := [nnf-neg #18949]: #18951
-#19248 := [nnf-neg #18952 #19244]: #19247
-#18942 := (~ #16287 #18941)
-#18943 := [sk]: #18942
-#19252 := [nnf-neg #18943 #19248]: #19251
-#18927 := (~ #18926 #18926)
-#18928 := [refl]: #18927
-#19256 := [nnf-neg #18928 #19252]: #19255
-#18924 := (~ #13906 #13906)
-#18925 := [refl]: #18924
-#19260 := [nnf-neg #18925 #19256]: #19259
-#18922 := (~ #18921 #18921)
-#18923 := [refl]: #18922
-#18919 := (~ #18918 #18918)
-#18920 := [refl]: #18919
-#18916 := (~ #18915 #18915)
-#18917 := [refl]: #18916
-#18913 := (~ #18912 #18912)
-#18914 := [refl]: #18913
-#18910 := (~ #18909 #18909)
-#18911 := [refl]: #18910
-#19264 := [nnf-neg #18911 #18914 #18917 #18920 #18923 #19260]: #19263
-#18907 := (~ #18906 #18906)
-#18908 := [refl]: #18907
-#18901 := (~ #18900 #18900)
-#18902 := [refl]: #18901
-#19268 := [nnf-neg #18902 #18908 #19264]: #19267
-#18904 := (~ #18903 #18903)
-#18905 := [refl]: #18904
-#19272 := [nnf-neg #18905 #19268]: #19271
-#18898 := (~ #18897 #18897)
-#18899 := [refl]: #18898
-#19276 := [nnf-neg #18899 #18902 #19272]: #19275
-#18895 := (~ #18894 #18894)
-#18896 := [refl]: #18895
-#19280 := [nnf-neg #18896 #19276]: #19279
-#18892 := (~ #13715 #13715)
-#18893 := [refl]: #18892
-#19283 := [nnf-neg #18893 #19280]: #19282
-#15734 := (or #12671 #12662 #12653 #12644 #13955 #14009 #14049)
-#15742 := (and #14371 #15734)
-#15750 := (or #13367 #13358 #13349 #13340 #13331 #14399 #15709 #13955 #14416 #14450 #14456 #14468 #14483 #14496 #14507 #15742)
-#15755 := (and #3022 #13943 #15750)
-#15758 := (or #13939 #15755)
-#15761 := (and #13936 #15758)
-#15764 := (or #13906 #15761)
-#15767 := (and #13903 #15764)
-#15770 := (or #13672 #13663 #13654 #13645 #13681 #15767)
-#15773 := (and #12361 #12367 #15770)
-#15776 := (or #13698 #15773)
-#15779 := (and #12358 #12361 #15776)
-#15782 := (or #13715 #15779)
-#15785 := (and #12355 #15782)
-#15788 := (not #15785)
-#16556 := (iff #15788 #16555)
-#16553 := (iff #15785 #16552)
-#16550 := (iff #15782 #16549)
-#16547 := (iff #15779 #16546)
-#16544 := (iff #15776 #16543)
-#16541 := (iff #15773 #16540)
-#16538 := (iff #15770 #16537)
-#16535 := (iff #15767 #16534)
-#16532 := (iff #15764 #16531)
-#16529 := (iff #15761 #16528)
-#16526 := (iff #15758 #16525)
-#16523 := (iff #15755 #16522)
-#16520 := (iff #15750 #16517)
-#16514 := (or #13367 #13358 #13349 #13340 #13331 #14399 #15709 #13955 #14416 #16301 #14456 #16323 #16340 #16362 #14507 #16511)
-#16518 := (iff #16514 #16517)
-#16519 := [rewrite]: #16518
-#16515 := (iff #15750 #16514)
-#16512 := (iff #15742 #16511)
-#16509 := (iff #15734 #16506)
-#16503 := (or #12671 #12662 #12653 #12644 #13955 #16500 #14049)
-#16507 := (iff #16503 #16506)
-#16508 := [rewrite]: #16507
-#16504 := (iff #15734 #16503)
-#16501 := (iff #14009 #16500)
-#16498 := (iff #14006 #16497)
-#16495 := (iff #14003 #16494)
-#16492 := (iff #13998 #16489)
-#16486 := (and #3145 #4084 #15606 #13958)
-#16490 := (iff #16486 #16489)
-#16491 := [rewrite]: #16490
-#16487 := (iff #13998 #16486)
-#15605 := (iff #4419 #15606)
-#15638 := -131073::int
-#15614 := (+ -131073::int #161)
-#15611 := (<= #15614 0::int)
-#15607 := (iff #15611 #15606)
-#15604 := [rewrite]: #15607
-#15608 := (iff #4419 #15611)
-#15613 := (= #4418 #15614)
-#15619 := (+ #161 -131073::int)
-#15615 := (= #15619 #15614)
-#15612 := [rewrite]: #15615
-#15616 := (= #4418 #15619)
-#15637 := (= #4413 -131073::int)
-#15643 := (* -1::int 131073::int)
-#15639 := (= #15643 -131073::int)
-#15636 := [rewrite]: #15639
-#15640 := (= #4413 #15643)
-#7883 := (= uf_76 131073::int)
-#1070 := 65536::int
-#1313 := (+ 65536::int 65536::int)
-#1318 := (+ #1313 1::int)
-#1319 := (= uf_76 #1318)
-#7884 := (iff #1319 #7883)
-#7881 := (= #1318 131073::int)
-#7874 := (+ 131072::int 1::int)
-#7879 := (= #7874 131073::int)
-#7880 := [rewrite]: #7879
-#7876 := (= #1318 #7874)
-#7845 := (= #1313 131072::int)
-#7846 := [rewrite]: #7845
-#7877 := [monotonicity #7846]: #7876
-#7882 := [trans #7877 #7880]: #7881
-#7885 := [monotonicity #7882]: #7884
-#7873 := [asserted]: #1319
-#7888 := [mp #7873 #7885]: #7883
-#15641 := [monotonicity #7888]: #15640
-#15634 := [trans #15641 #15636]: #15637
-#15617 := [monotonicity #15634]: #15616
-#15610 := [trans #15617 #15612]: #15613
-#15609 := [monotonicity #15610]: #15608
-#15602 := [trans #15609 #15604]: #15605
-#16488 := [monotonicity #15602]: #16487
-#16493 := [trans #16488 #16491]: #16492
-#16496 := [quant-intro #16493]: #16495
-#16484 := (iff #13989 #16483)
-#16481 := (iff #13986 #16480)
-#16478 := (iff #13981 #16475)
-#16472 := (or #14857 #13959 #13972)
-#16476 := (iff #16472 #16475)
-#16477 := [rewrite]: #16476
-#16473 := (iff #13981 #16472)
-#14854 := (iff #5739 #14857)
-#14859 := (iff #5736 #14858)
-#14856 := [monotonicity #15602]: #14859
-#14855 := [monotonicity #14856]: #14854
-#16474 := [monotonicity #14855]: #16473
-#16479 := [trans #16474 #16477]: #16478
-#16482 := [quant-intro #16479]: #16481
-#16485 := [monotonicity #16482]: #16484
-#16499 := [monotonicity #16485 #16496]: #16498
-#16502 := [monotonicity #16482 #16499]: #16501
-#16505 := [monotonicity #16502]: #16504
-#16510 := [trans #16505 #16508]: #16509
-#16470 := (iff #14371 #16469)
-#16467 := (iff #14345 #16466)
-#16464 := (iff #14339 #16463)
-#16461 := (iff #14334 #16460)
-#16458 := (iff #14326 #16457)
-#16455 := (iff #14317 #16454)
-#16452 := (iff #14312 #16451)
-#16449 := (iff #14286 #16448)
-#16446 := (iff #14280 #16445)
-#16443 := (iff #14275 #16442)
-#16440 := (iff #14267 #16439)
-#16429 := (iff #14201 #16426)
-#16423 := (and #16368 #14088 #16418)
-#16427 := (iff #16423 #16426)
-#16428 := [rewrite]: #16427
-#16424 := (iff #14201 #16423)
-#16421 := (iff #14193 #16418)
-#16415 := (or #12942 #14097 #16401 #14172 #16412)
-#16419 := (iff #16415 #16418)
-#16420 := [rewrite]: #16419
-#16416 := (iff #14193 #16415)
-#16413 := (iff #14178 #16412)
-#16410 := (iff #14175 #16407)
-#16404 := (and #16368 #14088)
-#16408 := (iff #16404 #16407)
-#16409 := [rewrite]: #16408
-#16405 := (iff #14175 #16404)
-#16371 := (iff #14084 #16368)
-#16304 := (+ 131073::int #14044)
-#16365 := (>= #16304 1::int)
-#16369 := (iff #16365 #16368)
-#16370 := [rewrite]: #16369
-#16366 := (iff #14084 #16365)
-#16305 := (= #14085 #16304)
-#16306 := [monotonicity #7888]: #16305
-#16367 := [monotonicity #16306]: #16366
-#16372 := [trans #16367 #16370]: #16371
-#16406 := [monotonicity #16372]: #16405
-#16411 := [trans #16406 #16409]: #16410
-#16414 := [monotonicity #16411]: #16413
-#16402 := (iff #14165 #16401)
-#16399 := (iff #14162 #16398)
-#16396 := (iff #14159 #16395)
-#16393 := (iff #14156 #16390)
-#16387 := (or #16384 #14151)
-#16391 := (iff #16387 #16390)
-#16392 := [rewrite]: #16391
-#16388 := (iff #14156 #16387)
-#16385 := (iff #14139 #16384)
-#16382 := (iff #14136 #16381)
-#16379 := (iff #14131 #16376)
-#16373 := (or #14857 #14109 #14122)
-#16377 := (iff #16373 #16376)
-#16378 := [rewrite]: #16377
-#16374 := (iff #14131 #16373)
-#16375 := [monotonicity #14855]: #16374
-#16380 := [trans #16375 #16378]: #16379
-#16383 := [quant-intro #16380]: #16382
-#16386 := [monotonicity #16383]: #16385
-#16389 := [monotonicity #16386]: #16388
-#16394 := [trans #16389 #16392]: #16393
-#16397 := [monotonicity #16383 #16394]: #16396
-#16400 := [monotonicity #16397]: #16399
-#16403 := [monotonicity #16400]: #16402
-#16417 := [monotonicity #16403 #16414]: #16416
-#16422 := [trans #16417 #16420]: #16421
-#16425 := [monotonicity #16372 #16422]: #16424
-#16430 := [trans #16425 #16428]: #16429
-#16441 := [monotonicity #16430]: #16440
-#16444 := [monotonicity #16441]: #16443
-#16447 := [monotonicity #16444]: #16446
-#16450 := [monotonicity #16447]: #16449
-#16453 := [monotonicity #16450]: #16452
-#16437 := (iff #14238 #16434)
-#16431 := (or #13002 #12993 #13955 #14081 #16426 #14211)
-#16435 := (iff #16431 #16434)
-#16436 := [rewrite]: #16435
-#16432 := (iff #14238 #16431)
-#16433 := [monotonicity #16430]: #16432
-#16438 := [trans #16433 #16436]: #16437
-#16456 := [monotonicity #16438 #16453]: #16455
-#16459 := [monotonicity #16456]: #16458
-#16462 := [monotonicity #16459]: #16461
-#16465 := [monotonicity #16462]: #16464
-#16468 := [monotonicity #16465]: #16467
-#16471 := [monotonicity #16468]: #16470
-#16513 := [monotonicity #16471 #16510]: #16512
-#16363 := (iff #14496 #16362)
-#16360 := (iff #14493 #16357)
-#16354 := (and #16349 #14490)
-#16358 := (iff #16354 #16357)
-#16359 := [rewrite]: #16358
-#16355 := (iff #14493 #16354)
-#16352 := (iff #14486 #16349)
-#16343 := (+ 255::int #14431)
-#16346 := (>= #16343 0::int)
-#16350 := (iff #16346 #16349)
-#16351 := [rewrite]: #16350
-#16347 := (iff #14486 #16346)
-#16344 := (= #14487 #16343)
-#1323 := (= uf_78 255::int)
-#7887 := [asserted]: #1323
-#16345 := [monotonicity #7887]: #16344
-#16348 := [monotonicity #16345]: #16347
-#16353 := [trans #16348 #16351]: #16352
-#16356 := [monotonicity #16353]: #16355
-#16361 := [trans #16356 #16359]: #16360
-#16364 := [monotonicity #16361]: #16363
-#16341 := (iff #14483 #16340)
-#16338 := (iff #14478 #16337)
-#16335 := (iff #14471 #16332)
-#16326 := (+ 131073::int #14402)
-#16329 := (>= #16326 0::int)
-#16333 := (iff #16329 #16332)
-#16334 := [rewrite]: #16333
-#16330 := (iff #14471 #16329)
-#16327 := (= #14472 #16326)
-#16328 := [monotonicity #7888]: #16327
-#16331 := [monotonicity #16328]: #16330
-#16336 := [trans #16331 #16334]: #16335
-#16339 := [monotonicity #16336]: #16338
-#16342 := [monotonicity #16339]: #16341
-#16324 := (iff #14468 #16323)
-#16321 := (iff #14465 #16318)
-#16315 := (and #16310 #14462)
-#16319 := (iff #16315 #16318)
-#16320 := [rewrite]: #16319
-#16316 := (iff #14465 #16315)
-#16313 := (iff #14459 #16310)
-#16307 := (>= #16304 0::int)
-#16311 := (iff #16307 #16310)
-#16312 := [rewrite]: #16311
-#16308 := (iff #14459 #16307)
-#16309 := [monotonicity #16306]: #16308
-#16314 := [trans #16309 #16312]: #16313
-#16317 := [monotonicity #16314]: #16316
-#16322 := [trans #16317 #16320]: #16321
-#16325 := [monotonicity #16322]: #16324
-#16302 := (iff #14450 #16301)
-#16299 := (iff #14447 #16298)
-#16296 := (iff #14442 #16293)
-#16290 := (or #14857 #14420 #14433)
-#16294 := (iff #16290 #16293)
-#16295 := [rewrite]: #16294
-#16291 := (iff #14442 #16290)
-#16292 := [monotonicity #14855]: #16291
-#16297 := [trans #16292 #16295]: #16296
-#16300 := [quant-intro #16297]: #16299
-#16303 := [monotonicity #16300]: #16302
-#16516 := [monotonicity #16303 #16325 #16342 #16364 #16513]: #16515
-#16521 := [trans #16516 #16519]: #16520
-#16524 := [monotonicity #16521]: #16523
-#16288 := (iff #13939 #16287)
-#16285 := (iff #13936 #16284)
-#16282 := (iff #13931 #16279)
-#16276 := (or #14857 #13910 #13921)
-#16280 := (iff #16276 #16279)
-#16281 := [rewrite]: #16280
-#16277 := (iff #13931 #16276)
-#16278 := [monotonicity #14855]: #16277
-#16283 := [trans #16278 #16281]: #16282
-#16286 := [quant-intro #16283]: #16285
-#16289 := [monotonicity #16286]: #16288
-#16527 := [monotonicity #16289 #16524]: #16526
-#16530 := [monotonicity #16286 #16527]: #16529
-#16533 := [monotonicity #16530]: #16532
-#16536 := [monotonicity #16533]: #16535
-#16539 := [monotonicity #16536]: #16538
-#16542 := [monotonicity #16539]: #16541
-#16545 := [monotonicity #16542]: #16544
-#16548 := [monotonicity #16545]: #16547
-#16551 := [monotonicity #16548]: #16550
-#16554 := [monotonicity #16551]: #16553
-#16557 := [monotonicity #16554]: #16556
-#14791 := (not #14643)
-#15789 := (iff #14791 #15788)
-#15786 := (iff #14643 #15785)
-#15783 := (iff #14640 #15782)
-#15780 := (iff #14635 #15779)
-#15777 := (iff #14629 #15776)
-#15774 := (iff #14624 #15773)
-#15771 := (iff #14616 #15770)
-#15768 := (iff #14595 #15767)
-#15765 := (iff #14592 #15764)
-#15762 := (iff #14589 #15761)
-#15759 := (iff #14586 #15758)
-#15756 := (iff #14581 #15755)
-#15753 := (iff #14573 #15750)
-#15747 := (or #13367 #13358 #13349 #13340 #13331 #14399 #15709 #13955 #15742 #14416 #14450 #14456 #14468 #14483 #14496 #14507)
-#15751 := (iff #15747 #15750)
-#15752 := [rewrite]: #15751
-#15748 := (iff #14573 #15747)
-#15745 := (iff #14376 #15742)
-#15739 := (and #15734 #14371)
-#15743 := (iff #15739 #15742)
-#15744 := [rewrite]: #15743
-#15740 := (iff #14376 #15739)
-#15737 := (iff #14070 #15734)
-#15719 := (or #12671 #12662 #12653 #12644 #13955 #14009)
-#15731 := (or #13955 #15719 #14049)
-#15735 := (iff #15731 #15734)
-#15736 := [rewrite]: #15735
-#15732 := (iff #14070 #15731)
-#15729 := (iff #14041 #15719)
-#15724 := (and true #15719)
-#15727 := (iff #15724 #15719)
-#15728 := [rewrite]: #15727
-#15725 := (iff #14041 #15724)
-#15722 := (iff #14036 #15719)
-#15716 := (or false #12671 #12662 #12653 #12644 #13955 #14009)
-#15720 := (iff #15716 #15719)
-#15721 := [rewrite]: #15720
-#15717 := (iff #14036 #15716)
-#15714 := (iff #12719 false)
-#15712 := (iff #12719 #3294)
-#15456 := (iff up_216 true)
-#11194 := [asserted]: up_216
-#15457 := [iff-true #11194]: #15456
-#15713 := [monotonicity #15457]: #15712
-#15715 := [trans #15713 #13445]: #15714
-#15718 := [monotonicity #15715]: #15717
-#15723 := [trans #15718 #15721]: #15722
-#15726 := [monotonicity #15457 #15723]: #15725
-#15730 := [trans #15726 #15728]: #15729
-#15733 := [monotonicity #15730]: #15732
-#15738 := [trans #15733 #15736]: #15737
-#15741 := [monotonicity #15738]: #15740
-#15746 := [trans #15741 #15744]: #15745
-#15710 := (iff #13376 #15709)
-#15707 := (iff #12556 #12553)
-#15702 := (and true #12553)
-#15705 := (iff #15702 #12553)
-#15706 := [rewrite]: #15705
-#15703 := (iff #12556 #15702)
-#15690 := (iff #12332 true)
-#15691 := [iff-true #14784]: #15690
-#15704 := [monotonicity #15691]: #15703
-#15708 := [trans #15704 #15706]: #15707
-#15711 := [monotonicity #15708]: #15710
-#15749 := [monotonicity #15711 #15746]: #15748
-#15754 := [trans #15749 #15752]: #15753
-#15757 := [monotonicity #15754]: #15756
-#15760 := [monotonicity #15757]: #15759
-#15763 := [monotonicity #15760]: #15762
-#15766 := [monotonicity #15763]: #15765
-#15769 := [monotonicity #15766]: #15768
-#15772 := [monotonicity #15769]: #15771
-#15775 := [monotonicity #15772]: #15774
-#15778 := [monotonicity #15775]: #15777
-#15781 := [monotonicity #15778]: #15780
-#15784 := [monotonicity #15781]: #15783
-#15787 := [monotonicity #15784]: #15786
-#15790 := [monotonicity #15787]: #15789
-#14792 := [not-or-elim #14776]: #14791
-#15791 := [mp #14792 #15790]: #15788
-#16558 := [mp #15791 #16557]: #16555
-#19284 := [mp~ #16558 #19283]: #19281
-#19285 := [mp #19284 #19629]: #19627
-#23120 := [mp #19285 #23119]: #23117
-#23987 := [mp #23120 #23986]: #23984
-#28241 := [unit-resolution #23987 #26494]: #23981
-#28348 := (or #23978 #23957)
-decl uf_136 :: (-> T14 T5)
-#26312 := (uf_58 #3079 #3011)
-#26553 := (uf_136 #26312)
-#26565 := (uf_24 uf_273 #26553)
-#26566 := (= uf_9 #26565)
-#26600 := (not #26566)
-decl uf_135 :: (-> T14 T2)
-#26546 := (uf_135 #26312)
-#26551 := (= uf_9 #26546)
-#26552 := (not #26551)
-#26788 := (or #26552 #26600)
-#26791 := (not #26788)
-decl uf_210 :: (-> T4 T5 T2)
-#26631 := (uf_210 uf_273 #26553)
-#26632 := (= uf_9 #26631)
-#26630 := (uf_25 uf_273 #26553)
-#26610 := (= uf_26 #26630)
-#26753 := (or #26610 #26632)
-#26766 := (not #26753)
-#26287 := (uf_15 #3011)
-#26634 := (uf_14 #26287)
-#26726 := (= uf_16 #26634)
-#26750 := (not #26726)
-#26608 := (uf_15 #26553)
-#26609 := (uf_14 #26608)
-#26629 := (= uf_16 #26609)
-#26796 := (or #26629 #26750 #26766 #26791)
-#26807 := (not #26796)
-#26557 := (uf_25 uf_273 #3011)
-#26558 := (= uf_26 #26557)
-#26555 := (uf_210 uf_273 #3011)
-#26556 := (= uf_9 #26555)
-#26756 := (or #26556 #26558)
-#26759 := (not #26756)
-#26745 := (or #26726 #26759)
-#26748 := (not #26745)
-#26809 := (or #26748 #26807)
-#26812 := (not #26809)
-#26819 := (or #18897 #26812)
-#26823 := (not #26819)
-#26851 := (iff #12367 #26823)
-#2376 := (uf_67 #47 #26)
-#2377 := (pattern #2376)
-#281 := (uf_59 #47)
-#2383 := (uf_58 #281 #26)
-#2397 := (uf_135 #2383)
-#10938 := (= uf_9 #2397)
-#10941 := (not #10938)
-#2384 := (uf_136 #2383)
-#2394 := (uf_24 #47 #2384)
-#10932 := (= uf_9 #2394)
-#10935 := (not #10932)
-#10944 := (or #10935 #10941)
-#22490 := (not #10944)
-#2390 := (uf_15 #2384)
-#2391 := (uf_14 #2390)
-#10926 := (= uf_16 #2391)
-#2387 := (uf_25 #47 #2384)
-#10920 := (= uf_26 #2387)
-#2385 := (uf_210 #47 #2384)
-#10917 := (= uf_9 #2385)
-#10923 := (or #10917 #10920)
-#22489 := (not #10923)
-#22491 := (or #52 #22489 #10926 #22490)
-#22492 := (not #22491)
-#2379 := (uf_210 #47 #26)
-#10898 := (= uf_9 #2379)
-#10904 := (or #3656 #10898)
-#22484 := (not #10904)
-#22485 := (or #36 #22484)
-#22486 := (not #22485)
-#22495 := (or #22486 #22492)
-#22501 := (not #22495)
-#22502 := (or #11522 #22501)
-#22503 := (not #22502)
-#10894 := (= uf_9 #2376)
-#22508 := (iff #10894 #22503)
-#22511 := (forall (vars (?x632 T4) (?x633 T5)) (:pat #2377) #22508)
-#10929 := (not #10926)
-#10978 := (and #36 #10923 #10929 #10944)
-#10912 := (and #52 #10904)
-#10981 := (or #10912 #10978)
-#10984 := (and #3650 #10981)
-#10987 := (iff #10894 #10984)
-#10990 := (forall (vars (?x632 T4) (?x633 T5)) (:pat #2377) #10987)
-#22512 := (iff #10990 #22511)
-#22509 := (iff #10987 #22508)
-#22506 := (iff #10984 #22503)
-#22498 := (and #3650 #22495)
-#22504 := (iff #22498 #22503)
-#22505 := [rewrite]: #22504
-#22499 := (iff #10984 #22498)
-#22496 := (iff #10981 #22495)
-#22493 := (iff #10978 #22492)
-#22494 := [rewrite]: #22493
-#22487 := (iff #10912 #22486)
-#22488 := [rewrite]: #22487
-#22497 := [monotonicity #22488 #22494]: #22496
-#22500 := [monotonicity #22497]: #22499
-#22507 := [trans #22500 #22505]: #22506
-#22510 := [monotonicity #22507]: #22509
-#22513 := [quant-intro #22510]: #22512
-#18466 := (~ #10990 #10990)
-#18464 := (~ #10987 #10987)
-#18465 := [refl]: #18464
-#18467 := [nnf-pos #18465]: #18466
-#2398 := (= #2397 uf_9)
-#2399 := (not #2398)
-#2395 := (= #2394 uf_9)
-#2396 := (not #2395)
-#2400 := (or #2396 #2399)
-#2401 := (and #2400 #36)
-#2392 := (= #2391 uf_16)
-#2393 := (not #2392)
-#2402 := (and #2393 #2401)
-#2388 := (= #2387 uf_26)
-#2386 := (= #2385 uf_9)
-#2389 := (or #2386 #2388)
-#2403 := (and #2389 #2402)
-#2380 := (= #2379 uf_9)
-#2381 := (or #2380 #151)
-#2382 := (and #2381 #52)
-#2404 := (or #2382 #2403)
-#2405 := (and #2404 #147)
-#2378 := (= #2376 uf_9)
-#2406 := (iff #2378 #2405)
-#2407 := (forall (vars (?x632 T4) (?x633 T5)) (:pat #2377) #2406)
-#10993 := (iff #2407 #10990)
-#10950 := (and #36 #10944)
-#10955 := (and #10929 #10950)
-#10958 := (and #10923 #10955)
-#10961 := (or #10912 #10958)
-#10967 := (and #3650 #10961)
-#10972 := (iff #10894 #10967)
-#10975 := (forall (vars (?x632 T4) (?x633 T5)) (:pat #2377) #10972)
-#10991 := (iff #10975 #10990)
-#10988 := (iff #10972 #10987)
-#10985 := (iff #10967 #10984)
-#10982 := (iff #10961 #10981)
-#10979 := (iff #10958 #10978)
-#10980 := [rewrite]: #10979
-#10983 := [monotonicity #10980]: #10982
-#10986 := [monotonicity #10983]: #10985
-#10989 := [monotonicity #10986]: #10988
-#10992 := [quant-intro #10989]: #10991
-#10976 := (iff #2407 #10975)
-#10973 := (iff #2406 #10972)
-#10970 := (iff #2405 #10967)
-#10964 := (and #10961 #3650)
-#10968 := (iff #10964 #10967)
-#10969 := [rewrite]: #10968
-#10965 := (iff #2405 #10964)
-#10962 := (iff #2404 #10961)
-#10959 := (iff #2403 #10958)
-#10956 := (iff #2402 #10955)
-#10953 := (iff #2401 #10950)
-#10947 := (and #10944 #36)
-#10951 := (iff #10947 #10950)
-#10952 := [rewrite]: #10951
-#10948 := (iff #2401 #10947)
-#10945 := (iff #2400 #10944)
-#10942 := (iff #2399 #10941)
-#10939 := (iff #2398 #10938)
-#10940 := [rewrite]: #10939
-#10943 := [monotonicity #10940]: #10942
-#10936 := (iff #2396 #10935)
-#10933 := (iff #2395 #10932)
-#10934 := [rewrite]: #10933
-#10937 := [monotonicity #10934]: #10936
-#10946 := [monotonicity #10937 #10943]: #10945
-#10949 := [monotonicity #10946]: #10948
-#10954 := [trans #10949 #10952]: #10953
-#10930 := (iff #2393 #10929)
-#10927 := (iff #2392 #10926)
-#10928 := [rewrite]: #10927
-#10931 := [monotonicity #10928]: #10930
-#10957 := [monotonicity #10931 #10954]: #10956
-#10924 := (iff #2389 #10923)
-#10921 := (iff #2388 #10920)
-#10922 := [rewrite]: #10921
-#10918 := (iff #2386 #10917)
-#10919 := [rewrite]: #10918
-#10925 := [monotonicity #10919 #10922]: #10924
-#10960 := [monotonicity #10925 #10957]: #10959
-#10915 := (iff #2382 #10912)
-#10909 := (and #10904 #52)
-#10913 := (iff #10909 #10912)
-#10914 := [rewrite]: #10913
-#10910 := (iff #2382 #10909)
-#10907 := (iff #2381 #10904)
-#10901 := (or #10898 #3656)
-#10905 := (iff #10901 #10904)
-#10906 := [rewrite]: #10905
-#10902 := (iff #2381 #10901)
-#10899 := (iff #2380 #10898)
-#10900 := [rewrite]: #10899
-#10903 := [monotonicity #10900 #3658]: #10902
-#10908 := [trans #10903 #10906]: #10907
-#10911 := [monotonicity #10908]: #10910
-#10916 := [trans #10911 #10914]: #10915
-#10963 := [monotonicity #10916 #10960]: #10962
-#10966 := [monotonicity #10963 #3652]: #10965
-#10971 := [trans #10966 #10969]: #10970
-#10896 := (iff #2378 #10894)
-#10897 := [rewrite]: #10896
-#10974 := [monotonicity #10897 #10971]: #10973
-#10977 := [quant-intro #10974]: #10976
-#10994 := [trans #10977 #10992]: #10993
-#10893 := [asserted]: #2407
-#10995 := [mp #10893 #10994]: #10990
-#18468 := [mp~ #10995 #18467]: #10990
-#22514 := [mp #18468 #22513]: #22511
-#26854 := (not #22511)
-#26855 := (or #26854 #26851)
-#26606 := (or #26600 #26552)
-#26607 := (not #26606)
-#26633 := (or #26632 #26610)
-#26628 := (not #26633)
-#26635 := (= #26634 uf_16)
-#26684 := (not #26635)
-#26685 := (or #26684 #26628 #26629 #26607)
-#26554 := (not #26685)
-#26559 := (or #26558 #26556)
-#26560 := (not #26559)
-#26544 := (or #26635 #26560)
-#26636 := (not #26544)
-#26637 := (or #26636 #26554)
-#26681 := (not #26637)
-#26713 := (or #18897 #26681)
-#26714 := (not #26713)
-#26725 := (iff #12367 #26714)
-#26840 := (or #26854 #26725)
-#26842 := (iff #26840 #26855)
-#26844 := (iff #26855 #26855)
-#26839 := [rewrite]: #26844
-#26852 := (iff #26725 #26851)
-#26824 := (iff #26714 #26823)
-#26820 := (iff #26713 #26819)
-#26813 := (iff #26681 #26812)
-#26810 := (iff #26637 #26809)
-#26808 := (iff #26554 #26807)
-#26805 := (iff #26685 #26796)
-#26793 := (or #26750 #26766 #26629 #26791)
-#26802 := (iff #26793 #26796)
-#26804 := [rewrite]: #26802
-#26794 := (iff #26685 #26793)
-#26786 := (iff #26607 #26791)
-#26789 := (iff #26606 #26788)
-#26790 := [rewrite]: #26789
-#26792 := [monotonicity #26790]: #26786
-#26785 := (iff #26628 #26766)
-#26764 := (iff #26633 #26753)
-#26765 := [rewrite]: #26764
-#26787 := [monotonicity #26765]: #26785
-#26751 := (iff #26684 #26750)
-#26754 := (iff #26635 #26726)
-#26755 := [rewrite]: #26754
-#26752 := [monotonicity #26755]: #26751
-#26795 := [monotonicity #26752 #26787 #26792]: #26794
-#26806 := [trans #26795 #26804]: #26805
-#26803 := [monotonicity #26806]: #26808
-#26743 := (iff #26636 #26748)
-#26746 := (iff #26544 #26745)
-#26742 := (iff #26560 #26759)
-#26757 := (iff #26559 #26756)
-#26758 := [rewrite]: #26757
-#26744 := [monotonicity #26758]: #26742
-#26747 := [monotonicity #26755 #26744]: #26746
-#26749 := [monotonicity #26747]: #26743
-#26811 := [monotonicity #26749 #26803]: #26810
-#26818 := [monotonicity #26811]: #26813
-#26822 := [monotonicity #26818]: #26820
-#26850 := [monotonicity #26822]: #26824
-#26853 := [monotonicity #26850]: #26852
-#26843 := [monotonicity #26853]: #26842
-#26845 := [trans #26843 #26839]: #26842
-#26841 := [quant-inst]: #26840
-#26846 := [mp #26841 #26845]: #26855
-#27857 := [unit-resolution #26846 #22514]: #26851
-#27023 := (not #26851)
-#27960 := (or #27023 #26819)
-#27858 := [hypothesis]: #23954
-decl uf_144 :: (-> T3 T3)
-#24114 := (uf_144 #2952)
-#26288 := (= #24114 #26287)
-#26263 := (uf_48 #3011 #24114)
-#26264 := (= uf_9 #26263)
-#26290 := (iff #26264 #26288)
-#26074 := (not #26290)
-#26175 := [hypothesis]: #26074
-#1381 := (uf_15 #15)
-#9506 := (= #233 #1381)
-#11615 := (iff #9506 #11594)
-#23676 := (forall (vars (?x712 T5) (?x713 T3)) (:pat #2662) #11615)
-#11620 := (forall (vars (?x712 T5) (?x713 T3)) #11615)
-#23679 := (iff #11620 #23676)
-#23677 := (iff #11615 #11615)
-#23678 := [refl]: #23677
-#23680 := [quant-intro #23678]: #23679
-#18739 := (~ #11620 #11620)
-#18737 := (~ #11615 #11615)
-#18738 := [refl]: #18737
-#18740 := [nnf-pos #18738]: #18739
-#1882 := (= #1381 #233)
-#2668 := (iff #2663 #1882)
-#2669 := (forall (vars (?x712 T5) (?x713 T3)) #2668)
-#11621 := (iff #2669 #11620)
-#11618 := (iff #2668 #11615)
-#11611 := (iff #11594 #9506)
-#11616 := (iff #11611 #11615)
-#11617 := [rewrite]: #11616
-#11613 := (iff #2668 #11611)
-#9507 := (iff #1882 #9506)
-#9508 := [rewrite]: #9507
-#11614 := [monotonicity #11597 #9508]: #11613
-#11619 := [trans #11614 #11617]: #11618
-#11622 := [quant-intro #11619]: #11621
-#11610 := [asserted]: #2669
-#11625 := [mp #11610 #11622]: #11620
-#18741 := [mp~ #11625 #18740]: #11620
-#23681 := [mp #18741 #23680]: #23676
-#25432 := (not #23676)
-#26067 := (or #25432 #26290)
-#26289 := (iff #26288 #26264)
-#26068 := (or #25432 #26289)
-#26069 := (iff #26068 #26067)
-#26065 := (iff #26067 #26067)
-#26071 := [rewrite]: #26065
-#26291 := (iff #26289 #26290)
-#26292 := [rewrite]: #26291
-#26070 := [monotonicity #26292]: #26069
-#26072 := [trans #26070 #26071]: #26069
-#26066 := [quant-inst]: #26068
-#26073 := [mp #26066 #26072]: #26067
-#26176 := [unit-resolution #26073 #23681 #26175]: false
-#26214 := [lemma #26176]: #26290
-#26294 := (or #26074 #12361)
-#26357 := (uf_116 #23223)
-decl uf_138 :: (-> T3 int)
-#26356 := (uf_138 #24114)
-#26365 := (+ #26356 #26357)
-#26368 := (uf_43 #24114 #26365)
-#26561 := (uf_15 #26368)
-#26308 := (= #26561 #26287)
-#26304 := (= #26287 #26561)
-#26302 := (= #3011 #26368)
-#26346 := (uf_66 #23223 0::int #24114)
-#26371 := (= #26346 #26368)
-#26374 := (not #26371)
-decl uf_139 :: (-> T5 T5 T2)
-#26347 := (uf_139 #26346 #23223)
-#26354 := (= uf_9 #26347)
-#26355 := (not #26354)
-#26380 := (or #26355 #26374)
-#26385 := (not #26380)
-#247 := (:var 1 int)
-#1568 := (uf_66 #24 #247 #233)
-#1569 := (pattern #1568)
-#1576 := (uf_139 #1568 #24)
-#8688 := (= uf_9 #1576)
-#21652 := (not #8688)
-#1571 := (uf_138 #233)
-#1570 := (uf_116 #24)
-#8678 := (+ #1570 #1571)
-#8679 := (+ #247 #8678)
-#8682 := (uf_43 #233 #8679)
-#8685 := (= #1568 #8682)
-#21651 := (not #8685)
-#21653 := (or #21651 #21652)
-#21654 := (not #21653)
-#21657 := (forall (vars (?x375 T5) (?x376 int) (?x377 T3)) (:pat #1569) #21654)
-#8691 := (and #8685 #8688)
-#8694 := (forall (vars (?x375 T5) (?x376 int) (?x377 T3)) (:pat #1569) #8691)
-#21658 := (iff #8694 #21657)
-#21655 := (iff #8691 #21654)
-#21656 := [rewrite]: #21655
-#21659 := [quant-intro #21656]: #21658
-#17817 := (~ #8694 #8694)
-#17815 := (~ #8691 #8691)
-#17816 := [refl]: #17815
-#17818 := [nnf-pos #17816]: #17817
-#1577 := (= #1576 uf_9)
-#1572 := (+ #247 #1571)
-#1573 := (+ #1570 #1572)
-#1574 := (uf_43 #233 #1573)
-#1575 := (= #1568 #1574)
-#1578 := (and #1575 #1577)
-#1579 := (forall (vars (?x375 T5) (?x376 int) (?x377 T3)) (:pat #1569) #1578)
-#8695 := (iff #1579 #8694)
-#8692 := (iff #1578 #8691)
-#8689 := (iff #1577 #8688)
-#8690 := [rewrite]: #8689
-#8686 := (iff #1575 #8685)
-#8683 := (= #1574 #8682)
-#8680 := (= #1573 #8679)
-#8681 := [rewrite]: #8680
-#8684 := [monotonicity #8681]: #8683
-#8687 := [monotonicity #8684]: #8686
-#8693 := [monotonicity #8687 #8690]: #8692
-#8696 := [quant-intro #8693]: #8695
-#8677 := [asserted]: #1579
-#8699 := [mp #8677 #8696]: #8694
-#17819 := [mp~ #8699 #17818]: #8694
-#21660 := [mp #17819 #21659]: #21657
-#26114 := (not #21657)
-#26115 := (or #26114 #26385)
-#26358 := (+ #26357 #26356)
-#26359 := (+ 0::int #26358)
-#26360 := (uf_43 #24114 #26359)
-#26361 := (= #26346 #26360)
-#26362 := (not #26361)
-#26363 := (or #26362 #26355)
-#26364 := (not #26363)
-#26116 := (or #26114 #26364)
-#26122 := (iff #26116 #26115)
-#26125 := (iff #26115 #26115)
-#26126 := [rewrite]: #26125
-#26386 := (iff #26364 #26385)
-#26383 := (iff #26363 #26380)
-#26377 := (or #26374 #26355)
-#26381 := (iff #26377 #26380)
-#26382 := [rewrite]: #26381
-#26378 := (iff #26363 #26377)
-#26375 := (iff #26362 #26374)
-#26372 := (iff #26361 #26371)
-#26369 := (= #26360 #26368)
-#26366 := (= #26359 #26365)
-#26367 := [rewrite]: #26366
-#26370 := [monotonicity #26367]: #26369
-#26373 := [monotonicity #26370]: #26372
-#26376 := [monotonicity #26373]: #26375
-#26379 := [monotonicity #26376]: #26378
-#26384 := [trans #26379 #26382]: #26383
-#26387 := [monotonicity #26384]: #26386
-#26124 := [monotonicity #26387]: #26122
-#26127 := [trans #26124 #26126]: #26122
-#26117 := [quant-inst]: #26116
-#26128 := [mp #26117 #26127]: #26115
-#26282 := [unit-resolution #26128 #21660]: #26385
-#26130 := (or #26380 #26371)
-#26131 := [def-axiom]: #26130
-#26283 := [unit-resolution #26131 #26282]: #26371
-#26285 := (= #3011 #26346)
-#24115 := (= uf_7 #24114)
-#1349 := (uf_124 #326 #161)
-#1584 := (pattern #1349)
-#1597 := (uf_144 #1349)
-#8734 := (= #326 #1597)
-#8738 := (forall (vars (?x388 T3) (?x389 int)) (:pat #1584) #8734)
-#17847 := (~ #8738 #8738)
-#17845 := (~ #8734 #8734)
-#17846 := [refl]: #17845
-#17848 := [nnf-pos #17846]: #17847
-#1598 := (= #1597 #326)
-#1599 := (forall (vars (?x388 T3) (?x389 int)) (:pat #1584) #1598)
-#8739 := (iff #1599 #8738)
-#8736 := (iff #1598 #8734)
-#8737 := [rewrite]: #8736
-#8740 := [quant-intro #8737]: #8739
-#8733 := [asserted]: #1599
-#8743 := [mp #8733 #8740]: #8738
-#17849 := [mp~ #8743 #17848]: #8738
-#24118 := (not #8738)
-#24119 := (or #24118 #24115)
-#24120 := [quant-inst]: #24119
-#27681 := [unit-resolution #24120 #17849]: #24115
-#23226 := (= #2960 #23223)
-#93 := (uf_29 #26)
-#23593 := (pattern #93)
-#94 := (uf_28 #93)
-#3575 := (= #26 #94)
-#23594 := (forall (vars (?x14 T5)) (:pat #23593) #3575)
-#3578 := (forall (vars (?x14 T5)) #3575)
-#23595 := (iff #3578 #23594)
-#23597 := (iff #23594 #23594)
-#23598 := [rewrite]: #23597
-#23596 := [rewrite]: #23595
-#23599 := [trans #23596 #23598]: #23595
-#16790 := (~ #3578 #3578)
-#16780 := (~ #3575 #3575)
-#16781 := [refl]: #16780
-#16851 := [nnf-pos #16781]: #16790
-#95 := (= #94 #26)
-#96 := (forall (vars (?x14 T5)) #95)
-#3579 := (iff #96 #3578)
-#3576 := (iff #95 #3575)
-#3577 := [rewrite]: #3576
-#3580 := [quant-intro #3577]: #3579
-#3574 := [asserted]: #96
-#3583 := [mp #3574 #3580]: #3578
-#16852 := [mp~ #3583 #16851]: #3578
-#23600 := [mp #16852 #23599]: #23594
-#23217 := (not #23594)
-#23220 := (or #23217 #23226)
-#23215 := [quant-inst]: #23220
-#26284 := [unit-resolution #23215 #23600]: #23226
-#26286 := [monotonicity #26284 #27681]: #26285
-#26303 := [trans #26286 #26283]: #26302
-#26305 := [monotonicity #26303]: #26304
-#26309 := [symm #26305]: #26308
-#26562 := (= #24114 #26561)
-#26231 := (or #24181 #26562)
-#26232 := [quant-inst]: #26231
-#26276 := [unit-resolution #26232 #23694]: #26562
-#26310 := [trans #26276 #26309]: #26288
-#26075 := (not #26288)
-#26256 := [hypothesis]: #26290
-#26268 := (not #26264)
-#26278 := (iff #18900 #26268)
-#26267 := (iff #12361 #26264)
-#26265 := (iff #26264 #12361)
-#26258 := (= #26263 #3014)
-#27682 := (= #24114 uf_7)
-#27683 := [symm #27681]: #27682
-#26259 := [monotonicity #27683]: #26258
-#26266 := [monotonicity #26259]: #26265
-#26277 := [symm #26266]: #26267
-#26279 := [monotonicity #26277]: #26278
-#26257 := [hypothesis]: #18900
-#26280 := [mp #26257 #26279]: #26268
-#26106 := (or #26074 #26264 #26075)
-#26108 := [def-axiom]: #26106
-#26281 := [unit-resolution #26108 #26280 #26256]: #26075
-#26311 := [unit-resolution #26281 #26310]: false
-#26295 := [lemma #26311]: #26294
-#27925 := [unit-resolution #26295 #26214]: #12361
-#27926 := [hypothesis]: #23981
-#23241 := (or #23978 #23972)
-#23222 := [def-axiom]: #23241
-#27936 := [unit-resolution #23222 #27926]: #23972
-decl uf_13 :: (-> T5 T6 T2)
-decl uf_10 :: (-> T4 T5 T6)
-#26039 := (uf_10 uf_273 #25404)
-decl uf_143 :: (-> T3 int)
-#24116 := (uf_143 #2952)
-#26431 := (uf_124 #24114 #24116)
-#26432 := (uf_43 #26431 #2961)
-#26521 := (uf_13 #26432 #26039)
-#26522 := (= uf_9 #26521)
-#26040 := (uf_13 #25404 #26039)
-#27955 := (= #26040 #26521)
-#27949 := (= #26521 #26040)
-#27947 := (= #26432 #25404)
-#27934 := (= #26432 #2962)
-#27932 := (= #26431 #2952)
-#27923 := (= #24116 uf_272)
-#24117 := (= uf_272 #24116)
-#1594 := (uf_143 #1349)
-#8727 := (= #161 #1594)
-#8730 := (forall (vars (?x386 T3) (?x387 int)) (:pat #1584) #8727)
-#17842 := (~ #8730 #8730)
-#17840 := (~ #8727 #8727)
-#17841 := [refl]: #17840
-#17843 := [nnf-pos #17841]: #17842
-#1595 := (= #1594 #161)
-#1596 := (forall (vars (?x386 T3) (?x387 int)) (:pat #1584) #1595)
-#8731 := (iff #1596 #8730)
-#8728 := (iff #1595 #8727)
-#8729 := [rewrite]: #8728
-#8732 := [quant-intro #8729]: #8731
-#8726 := [asserted]: #1596
-#8735 := [mp #8726 #8732]: #8730
-#17844 := [mp~ #8735 #17843]: #8730
-#24123 := (not #8730)
-#24124 := (or #24123 #24117)
-#24125 := [quant-inst]: #24124
-#27703 := [unit-resolution #24125 #17844]: #24117
-#27931 := [symm #27703]: #27923
-#27933 := [monotonicity #27683 #27931]: #27932
-#27935 := [monotonicity #27933]: #27934
-#27948 := [trans #27935 #27939]: #27947
-#27950 := [monotonicity #27948]: #27949
-#27953 := [symm #27950]: #27955
-#26041 := (= uf_9 #26040)
-decl uf_53 :: (-> T4 T5 T6)
-#26030 := (uf_53 uf_273 #25404)
-#26031 := (uf_13 #26 #26030)
-#26036 := (pattern #26031)
-decl up_197 :: (-> T3 bool)
-#26034 := (up_197 #25815)
-#26032 := (= uf_9 #26031)
-#26033 := (not #26032)
-decl uf_147 :: (-> T5 T6 T2)
-decl uf_192 :: (-> T7 T6)
-decl uf_12 :: (-> T4 T5 T7)
-#26026 := (uf_12 uf_273 #25404)
-#26027 := (uf_192 #26026)
-#26028 := (uf_147 #26 #26027)
-#26029 := (= uf_9 #26028)
-#26046 := (or #26029 #26033 #26034)
-#26049 := (forall (vars (?x577 T5)) (:pat #26036) #26046)
-#26052 := (not #26049)
-#26042 := (not #26041)
-#26055 := (or #25880 #26042 #26052)
-#26058 := (not #26055)
-#27945 := (= #3009 #25982)
-#27946 := [symm #27943]: #27945
-#23240 := (or #23978 #12355)
-#23229 := [def-axiom]: #23240
-#27938 := [unit-resolution #23229 #27926]: #12355
-#27924 := [trans #27938 #27946]: #25983
-#25988 := (or #26022 #25981 #25999)
-#26021 := [def-axiom]: #25988
-#27927 := [unit-resolution #26021 #27924 #27937]: #25981
-#26061 := (or #26002 #26058)
-#14 := (:var 2 T4)
-#2162 := (uf_196 #14 #15 #26)
-#2223 := (pattern #2162)
-#2224 := (uf_53 #13 #24)
-#2225 := (uf_13 #26 #2224)
-#2226 := (pattern #2225)
-#2154 := (uf_12 #13 #15)
-#2231 := (uf_192 #2154)
-#2232 := (uf_147 #26 #2231)
-#10478 := (= uf_9 #2232)
-#10467 := (= uf_9 #2225)
-#22343 := (not #10467)
-#1373 := (uf_15 #24)
-#2228 := (up_197 #1373)
-#22358 := (or #2228 #22343 #10478)
-#22363 := (forall (vars (?x577 T5)) (:pat #2226) #22358)
-#22369 := (not #22363)
-#2140 := (uf_10 #14 #26)
-#2141 := (uf_13 #15 #2140)
-#10170 := (= uf_9 #2141)
-#22177 := (not #10170)
-#180 := (uf_24 #14 #15)
-#3758 := (= uf_9 #180)
-#10821 := (not #3758)
-#22370 := (or #10821 #22177 #22369)
-#22371 := (not #22370)
-#10219 := (= uf_9 #2162)
-#10502 := (not #10219)
-#22376 := (or #10502 #22371)
-#22379 := (forall (vars (?x574 T4) (?x575 T5) (?x576 T5)) (:pat #2223) #22376)
-#2229 := (not #2228)
-#10473 := (and #2229 #10467)
-#10484 := (not #10473)
-#10485 := (or #10484 #10478)
-#10490 := (forall (vars (?x577 T5)) (:pat #2226) #10485)
-#10511 := (and #3758 #10170 #10490)
-#10514 := (or #10502 #10511)
-#10517 := (forall (vars (?x574 T4) (?x575 T5) (?x576 T5)) (:pat #2223) #10514)
-#22380 := (iff #10517 #22379)
-#22377 := (iff #10514 #22376)
-#22374 := (iff #10511 #22371)
-#22366 := (and #3758 #10170 #22363)
-#22372 := (iff #22366 #22371)
-#22373 := [rewrite]: #22372
-#22367 := (iff #10511 #22366)
-#22364 := (iff #10490 #22363)
-#22361 := (iff #10485 #22358)
-#22344 := (or #2228 #22343)
-#22355 := (or #22344 #10478)
-#22359 := (iff #22355 #22358)
-#22360 := [rewrite]: #22359
-#22356 := (iff #10485 #22355)
-#22353 := (iff #10484 #22344)
-#22345 := (not #22344)
-#22348 := (not #22345)
-#22351 := (iff #22348 #22344)
-#22352 := [rewrite]: #22351
-#22349 := (iff #10484 #22348)
-#22346 := (iff #10473 #22345)
-#22347 := [rewrite]: #22346
-#22350 := [monotonicity #22347]: #22349
-#22354 := [trans #22350 #22352]: #22353
-#22357 := [monotonicity #22354]: #22356
-#22362 := [trans #22357 #22360]: #22361
-#22365 := [quant-intro #22362]: #22364
-#22368 := [monotonicity #22365]: #22367
-#22375 := [trans #22368 #22373]: #22374
-#22378 := [monotonicity #22375]: #22377
-#22381 := [quant-intro #22378]: #22380
-#18361 := (~ #10517 #10517)
-#18359 := (~ #10514 #10514)
-#18357 := (~ #10511 #10511)
-#18355 := (~ #10490 #10490)
-#18353 := (~ #10485 #10485)
-#18354 := [refl]: #18353
-#18356 := [nnf-pos #18354]: #18355
-#18351 := (~ #10170 #10170)
-#18352 := [refl]: #18351
-#18349 := (~ #3758 #3758)
-#18350 := [refl]: #18349
-#18358 := [monotonicity #18350 #18352 #18356]: #18357
-#18347 := (~ #10502 #10502)
-#18348 := [refl]: #18347
-#18360 := [monotonicity #18348 #18358]: #18359
-#18362 := [nnf-pos #18360]: #18361
-#2145 := (= #2141 uf_9)
-#184 := (= #180 uf_9)
-#2236 := (and #184 #2145)
-#2233 := (= #2232 uf_9)
-#2227 := (= #2225 uf_9)
-#2230 := (and #2227 #2229)
-#2234 := (implies #2230 #2233)
-#2235 := (forall (vars (?x577 T5)) (:pat #2226) #2234)
-#2237 := (and #2235 #2236)
-#2163 := (= #2162 uf_9)
-#2238 := (implies #2163 #2237)
-#2239 := (forall (vars (?x574 T4) (?x575 T5) (?x576 T5)) (:pat #2223) #2238)
-#10520 := (iff #2239 #10517)
-#10493 := (and #3758 #10170)
-#10496 := (and #10490 #10493)
-#10503 := (or #10502 #10496)
-#10508 := (forall (vars (?x574 T4) (?x575 T5) (?x576 T5)) (:pat #2223) #10503)
-#10518 := (iff #10508 #10517)
-#10515 := (iff #10503 #10514)
-#10512 := (iff #10496 #10511)
-#10513 := [rewrite]: #10512
-#10516 := [monotonicity #10513]: #10515
-#10519 := [quant-intro #10516]: #10518
-#10509 := (iff #2239 #10508)
-#10506 := (iff #2238 #10503)
-#10499 := (implies #10219 #10496)
-#10504 := (iff #10499 #10503)
-#10505 := [rewrite]: #10504
-#10500 := (iff #2238 #10499)
-#10497 := (iff #2237 #10496)
-#10494 := (iff #2236 #10493)
-#10171 := (iff #2145 #10170)
-#10172 := [rewrite]: #10171
-#3759 := (iff #184 #3758)
-#3760 := [rewrite]: #3759
-#10495 := [monotonicity #3760 #10172]: #10494
-#10491 := (iff #2235 #10490)
-#10488 := (iff #2234 #10485)
-#10481 := (implies #10473 #10478)
-#10486 := (iff #10481 #10485)
-#10487 := [rewrite]: #10486
-#10482 := (iff #2234 #10481)
-#10479 := (iff #2233 #10478)
-#10480 := [rewrite]: #10479
-#10476 := (iff #2230 #10473)
-#10470 := (and #10467 #2229)
-#10474 := (iff #10470 #10473)
-#10475 := [rewrite]: #10474
-#10471 := (iff #2230 #10470)
-#10468 := (iff #2227 #10467)
-#10469 := [rewrite]: #10468
-#10472 := [monotonicity #10469]: #10471
-#10477 := [trans #10472 #10475]: #10476
-#10483 := [monotonicity #10477 #10480]: #10482
-#10489 := [trans #10483 #10487]: #10488
-#10492 := [quant-intro #10489]: #10491
-#10498 := [monotonicity #10492 #10495]: #10497
-#10220 := (iff #2163 #10219)
-#10221 := [rewrite]: #10220
-#10501 := [monotonicity #10221 #10498]: #10500
-#10507 := [trans #10501 #10505]: #10506
-#10510 := [quant-intro #10507]: #10509
-#10521 := [trans #10510 #10519]: #10520
-#10466 := [asserted]: #2239
-#10522 := [mp #10466 #10521]: #10517
-#18363 := [mp~ #10522 #18362]: #10517
-#22382 := [mp #18363 #22381]: #22379
-#26123 := (not #22379)
-#26129 := (or #26123 #26002 #26058)
-#26035 := (or #26034 #26033 #26029)
-#26037 := (forall (vars (?x577 T5)) (:pat #26036) #26035)
-#26038 := (not #26037)
-#26043 := (or #25880 #26042 #26038)
-#26044 := (not #26043)
-#26045 := (or #26002 #26044)
-#26132 := (or #26123 #26045)
-#26147 := (iff #26132 #26129)
-#26144 := (or #26123 #26061)
-#26145 := (iff #26144 #26129)
-#26146 := [rewrite]: #26145
-#26142 := (iff #26132 #26144)
-#26062 := (iff #26045 #26061)
-#26059 := (iff #26044 #26058)
-#26056 := (iff #26043 #26055)
-#26053 := (iff #26038 #26052)
-#26050 := (iff #26037 #26049)
-#26047 := (iff #26035 #26046)
-#26048 := [rewrite]: #26047
-#26051 := [quant-intro #26048]: #26050
-#26054 := [monotonicity #26051]: #26053
-#26057 := [monotonicity #26054]: #26056
-#26060 := [monotonicity #26057]: #26059
-#26063 := [monotonicity #26060]: #26062
-#26143 := [monotonicity #26063]: #26142
-#26148 := [trans #26143 #26146]: #26147
-#26133 := [quant-inst]: #26132
-#26149 := [mp #26133 #26148]: #26129
-#27928 := [unit-resolution #26149 #22382]: #26061
-#27929 := [unit-resolution #27928 #27927]: #26058
-#26216 := (or #26055 #26041)
-#26217 := [def-axiom]: #26216
-#27930 := [unit-resolution #26217 #27929]: #26041
-#27956 := [trans #27930 #27953]: #26522
-#26523 := (not #26522)
-#26711 := (or #12358 #26523)
-#26511 := (uf_43 #24114 #2961)
-#26512 := (uf_66 #26511 0::int #24114)
-#26513 := (uf_27 uf_273 #26512)
-#26514 := (= uf_9 #26513)
-#26515 := (not #26514)
-#26678 := (iff #18897 #26515)
-#26674 := (iff #12358 #26514)
-#26675 := (iff #26514 #12358)
-#26687 := (= #26513 #3012)
-#26683 := (= #26512 #3011)
-#27689 := (= #26511 #2960)
-#27687 := (= #2961 uf_274)
-#24233 := (= uf_274 #2961)
-#2693 := (uf_116 #2692)
-#11669 := (= #161 #2693)
-#23683 := (forall (vars (?x718 T3) (?x719 int)) (:pat #23682) #11669)
-#11673 := (forall (vars (?x718 T3) (?x719 int)) #11669)
-#23686 := (iff #11673 #23683)
-#23684 := (iff #11669 #11669)
-#23685 := [refl]: #23684
-#23687 := [quant-intro #23685]: #23686
-#18754 := (~ #11673 #11673)
-#18752 := (~ #11669 #11669)
-#18753 := [refl]: #18752
-#18755 := [nnf-pos #18753]: #18754
-#2694 := (= #2693 #161)
-#2695 := (forall (vars (?x718 T3) (?x719 int)) #2694)
-#11674 := (iff #2695 #11673)
-#11671 := (iff #2694 #11669)
-#11672 := [rewrite]: #11671
-#11675 := [quant-intro #11672]: #11674
-#11668 := [asserted]: #2695
-#11678 := [mp #11668 #11675]: #11673
-#18756 := [mp~ #11678 #18755]: #11673
-#23688 := [mp #18756 #23687]: #23683
-#24187 := (not #23683)
-#24238 := (or #24187 #24233)
-#24239 := [quant-inst]: #24238
-#27686 := [unit-resolution #24239 #23688]: #24233
-#27688 := [symm #27686]: #27687
-#27690 := [monotonicity #27683 #27688]: #27689
-#26686 := [monotonicity #27690 #27683]: #26683
-#26688 := [monotonicity #26686]: #26687
-#26676 := [monotonicity #26688]: #26675
-#26677 := [symm #26676]: #26674
-#26679 := [monotonicity #26677]: #26678
-#26638 := [hypothesis]: #18897
-#26680 := [mp #26638 #26679]: #26515
-#26516 := (uf_58 #3079 #26512)
-#26517 := (uf_135 #26516)
-#26518 := (= uf_9 #26517)
-#26528 := (or #26515 #26518)
-#26531 := (not #26528)
-decl uf_23 :: (-> T3 T2)
-#26524 := (uf_23 #24114)
-#26525 := (= uf_9 #26524)
-#2778 := (uf_23 uf_7)
-#27721 := (= #2778 #26524)
-#27718 := (= #26524 #2778)
-#27719 := [monotonicity #27683]: #27718
-#27722 := [symm #27719]: #27721
-#11835 := (= uf_9 #2778)
-#2779 := (= #2778 uf_9)
-#11837 := (iff #2779 #11835)
-#11838 := [rewrite]: #11837
-#11834 := [asserted]: #2779
-#11841 := [mp #11834 #11838]: #11835
-#27723 := [trans #11841 #27722]: #26525
-#26526 := (not #26525)
-#26708 := (or #26526 #26531)
-#27724 := [hypothesis]: #26522
-#26469 := (<= #24116 0::int)
-#26682 := (not #26469)
-#14790 := [not-or-elim #14776]: #13943
-#26452 := (* -1::int #24116)
-#26584 := (+ uf_272 #26452)
-#26585 := (<= #26584 0::int)
-#27704 := (not #24117)
-#27705 := (or #27704 #26585)
-#27706 := [th-lemma]: #27705
-#27707 := [unit-resolution #27706 #27703]: #26585
-#27713 := (not #26585)
-#26698 := (or #26682 #13942 #27713)
-#26699 := [th-lemma]: #26698
-#26707 := [unit-resolution #26699 #27707 #14790]: #26682
-#237 := (uf_23 #233)
-#758 := (:var 4 int)
-#2062 := (uf_43 #233 #758)
-#2063 := (uf_66 #2062 #247 #233)
-#1364 := (:var 5 T4)
-#2080 := (uf_25 #1364 #2063)
-#1356 := (:var 3 T5)
-#2060 := (uf_10 #1364 #1356)
-#268 := (:var 2 int)
-#2058 := (uf_124 #233 #268)
-#2059 := (uf_43 #2058 #758)
-#2061 := (uf_13 #2059 #2060)
-#2081 := (pattern #2061 #2080 #237)
-#1535 := (uf_59 #1364)
-#2078 := (uf_58 #1535 #2063)
-#2079 := (pattern #2061 #2078 #237)
-#2085 := (uf_27 #1364 #2063)
-#9989 := (= uf_9 #2085)
-#22088 := (not #9989)
-#2082 := (uf_135 #2078)
-#9983 := (= uf_9 #2082)
-#22089 := (or #9983 #22088)
-#22090 := (not #22089)
-#2067 := (uf_55 #1364)
-#9932 := (= uf_9 #2067)
-#22064 := (not #9932)
-#9929 := (= uf_9 #2061)
-#22063 := (not #9929)
-#4079 := (* -1::int #268)
-#6249 := (+ #247 #4079)
-#6838 := (>= #6249 0::int)
-#4346 := (>= #247 0::int)
-#20033 := (not #4346)
-#3963 := (= uf_9 #237)
-#10698 := (not #3963)
-#22096 := (or #10698 #20033 #6838 #22063 #22064 #22090)
-#22101 := (forall (vars (?x526 T4) (?x527 int) (?x528 T5) (?x529 int) (?x530 int) (?x531 T3)) (:pat #2079 #2081) #22096)
-#9986 := (not #9983)
-#9992 := (and #9986 #9989)
-#8189 := (not #6838)
-#9965 := (and #3963 #4346 #8189 #9929 #9932)
-#9970 := (not #9965)
-#10006 := (or #9970 #9992)
-#10009 := (forall (vars (?x526 T4) (?x527 int) (?x528 T5) (?x529 int) (?x530 int) (?x531 T3)) (:pat #2079 #2081) #10006)
-#22102 := (iff #10009 #22101)
-#22099 := (iff #10006 #22096)
-#22065 := (or #10698 #20033 #6838 #22063 #22064)
-#22093 := (or #22065 #22090)
-#22097 := (iff #22093 #22096)
-#22098 := [rewrite]: #22097
-#22094 := (iff #10006 #22093)
-#22091 := (iff #9992 #22090)
-#22092 := [rewrite]: #22091
-#22074 := (iff #9970 #22065)
-#22066 := (not #22065)
-#22069 := (not #22066)
-#22072 := (iff #22069 #22065)
-#22073 := [rewrite]: #22072
-#22070 := (iff #9970 #22069)
-#22067 := (iff #9965 #22066)
-#22068 := [rewrite]: #22067
-#22071 := [monotonicity #22068]: #22070
-#22075 := [trans #22071 #22073]: #22074
-#22095 := [monotonicity #22075 #22092]: #22094
-#22100 := [trans #22095 #22098]: #22099
-#22103 := [quant-intro #22100]: #22102
-#18227 := (~ #10009 #10009)
-#18225 := (~ #10006 #10006)
-#18226 := [refl]: #18225
-#18228 := [nnf-pos #18226]: #18227
-#2086 := (= #2085 uf_9)
-#2083 := (= #2082 uf_9)
-#2084 := (not #2083)
-#2087 := (and #2084 #2086)
-#2068 := (= #2067 uf_9)
-#238 := (= #237 uf_9)
-#2069 := (and #238 #2068)
-#2066 := (= #2061 uf_9)
-#2070 := (and #2066 #2069)
-#400 := (<= 0::int #247)
-#2071 := (and #400 #2070)
-#1425 := (< #247 #268)
-#2072 := (and #1425 #2071)
-#2088 := (implies #2072 #2087)
-#2089 := (forall (vars (?x526 T4) (?x527 int) (?x528 T5) (?x529 int) (?x530 int) (?x531 T3)) (:pat #2079 #2081) #2088)
-#10012 := (iff #2089 #10009)
-#9935 := (and #3963 #9932)
-#9938 := (and #9929 #9935)
-#9941 := (and #400 #9938)
-#9944 := (and #1425 #9941)
-#9950 := (not #9944)
-#9998 := (or #9950 #9992)
-#10003 := (forall (vars (?x526 T4) (?x527 int) (?x528 T5) (?x529 int) (?x530 int) (?x531 T3)) (:pat #2079 #2081) #9998)
-#10010 := (iff #10003 #10009)
-#10007 := (iff #9998 #10006)
-#9971 := (iff #9950 #9970)
-#9968 := (iff #9944 #9965)
-#9959 := (and #4346 #9938)
-#9962 := (and #8189 #9959)
-#9966 := (iff #9962 #9965)
-#9967 := [rewrite]: #9966
-#9963 := (iff #9944 #9962)
-#9960 := (iff #9941 #9959)
-#4345 := (iff #400 #4346)
-#4347 := [rewrite]: #4345
-#9961 := [monotonicity #4347]: #9960
-#8190 := (iff #1425 #8189)
-#8191 := [rewrite]: #8190
-#9964 := [monotonicity #8191 #9961]: #9963
-#9969 := [trans #9964 #9967]: #9968
-#9972 := [monotonicity #9969]: #9971
-#10008 := [monotonicity #9972]: #10007
-#10011 := [quant-intro #10008]: #10010
-#10004 := (iff #2089 #10003)
-#10001 := (iff #2088 #9998)
-#9995 := (implies #9944 #9992)
-#9999 := (iff #9995 #9998)
-#10000 := [rewrite]: #9999
-#9996 := (iff #2088 #9995)
-#9993 := (iff #2087 #9992)
-#9990 := (iff #2086 #9989)
-#9991 := [rewrite]: #9990
-#9987 := (iff #2084 #9986)
-#9984 := (iff #2083 #9983)
-#9985 := [rewrite]: #9984
-#9988 := [monotonicity #9985]: #9987
-#9994 := [monotonicity #9988 #9991]: #9993
-#9945 := (iff #2072 #9944)
-#9942 := (iff #2071 #9941)
-#9939 := (iff #2070 #9938)
-#9936 := (iff #2069 #9935)
-#9933 := (iff #2068 #9932)
-#9934 := [rewrite]: #9933
-#3964 := (iff #238 #3963)
-#3965 := [rewrite]: #3964
-#9937 := [monotonicity #3965 #9934]: #9936
-#9930 := (iff #2066 #9929)
-#9931 := [rewrite]: #9930
-#9940 := [monotonicity #9931 #9937]: #9939
-#9943 := [monotonicity #9940]: #9942
-#9946 := [monotonicity #9943]: #9945
-#9997 := [monotonicity #9946 #9994]: #9996
-#10002 := [trans #9997 #10000]: #10001
-#10005 := [quant-intro #10002]: #10004
-#10013 := [trans #10005 #10011]: #10012
-#9982 := [asserted]: #2089
-#10014 := [mp #9982 #10013]: #10009
-#18229 := [mp~ #10014 #18228]: #10009
-#22104 := [mp #18229 #22103]: #22101
-#26542 := (not #22101)
-#26613 := (or #26542 #23209 #26469 #26523 #26526 #26531)
-#26519 := (or #26518 #26515)
-#26520 := (not #26519)
-#26453 := (+ 0::int #26452)
-#26454 := (>= #26453 0::int)
-#26455 := (>= 0::int 0::int)
-#26456 := (not #26455)
-#26527 := (or #26526 #26456 #26454 #26523 #23209 #26520)
-#26614 := (or #26542 #26527)
-#26601 := (iff #26614 #26613)
-#26537 := (or #23209 #26469 #26523 #26526 #26531)
-#26616 := (or #26542 #26537)
-#26619 := (iff #26616 #26613)
-#26620 := [rewrite]: #26619
-#26617 := (iff #26614 #26616)
-#26540 := (iff #26527 #26537)
-#26534 := (or #26526 false #26469 #26523 #23209 #26531)
-#26538 := (iff #26534 #26537)
-#26539 := [rewrite]: #26538
-#26535 := (iff #26527 #26534)
-#26532 := (iff #26520 #26531)
-#26529 := (iff #26519 #26528)
-#26530 := [rewrite]: #26529
-#26533 := [monotonicity #26530]: #26532
-#26472 := (iff #26454 #26469)
-#26466 := (>= #26452 0::int)
-#26470 := (iff #26466 #26469)
-#26471 := [rewrite]: #26470
-#26467 := (iff #26454 #26466)
-#26464 := (= #26453 #26452)
-#26465 := [rewrite]: #26464
-#26468 := [monotonicity #26465]: #26467
-#26473 := [trans #26468 #26471]: #26472
-#26462 := (iff #26456 false)
-#26460 := (iff #26456 #3294)
-#26458 := (iff #26455 true)
-#26459 := [rewrite]: #26458
-#26461 := [monotonicity #26459]: #26460
-#26463 := [trans #26461 #13445]: #26462
-#26536 := [monotonicity #26463 #26473 #26533]: #26535
-#26541 := [trans #26536 #26539]: #26540
-#26618 := [monotonicity #26541]: #26617
-#26602 := [trans #26618 #26620]: #26601
-#26615 := [quant-inst]: #26614
-#26603 := [mp #26615 #26602]: #26613
-#26706 := [unit-resolution #26603 #22104 #14784 #26707 #27724]: #26708
-#26709 := [unit-resolution #26706 #27723]: #26531
-#26604 := (or #26528 #26514)
-#26605 := [def-axiom]: #26604
-#26710 := [unit-resolution #26605 #26709 #26680]: false
-#26712 := [lemma #26710]: #26711
-#27952 := [unit-resolution #26712 #27956]: #12358
-#23238 := (or #23975 #18897 #18900 #23969)
-#23239 := [def-axiom]: #23238
-#27957 := [unit-resolution #23239 #27952 #27925 #27936]: #23969
-#23252 := (or #23966 #23960)
-#23263 := [def-axiom]: #23252
-#27958 := [unit-resolution #23263 #27957]: #23960
-#23245 := (or #23963 #18900 #18906 #23957)
-#23258 := [def-axiom]: #23245
-#27959 := [unit-resolution #23258 #27958 #27925 #27858]: #18906
-#27024 := (or #27023 #12367 #26819)
-#27025 := [def-axiom]: #27024
-#27961 := [unit-resolution #27025 #27959]: #27960
-#27962 := [unit-resolution #27961 #27857]: #26819
-#27902 := (or #26823 #26812)
-#26997 := (or #26823 #18897 #26812)
-#26998 := [def-axiom]: #26997
-#27904 := [unit-resolution #26998 #27952]: #27902
-#27905 := [unit-resolution #27904 #27962]: #26812
-#26956 := (or #26809 #26796)
-#26991 := [def-axiom]: #26956
-#27903 := [unit-resolution #26991 #27905]: #26796
-#27585 := (not #26518)
-#27980 := (iff #27585 #26552)
-#27976 := (iff #26518 #26551)
-#27987 := (= #26517 #26546)
-#27910 := (= #26516 #26312)
-#27911 := [monotonicity #26686]: #27910
-#27988 := [monotonicity #27911]: #27987
-#27979 := [monotonicity #27988]: #27976
-#27981 := [monotonicity #27979]: #27980
-#27907 := [unit-resolution #26603 #22104 #14784 #26707 #27956]: #26708
-#27908 := [unit-resolution #27907 #27723]: #26531
-#27597 := (or #26528 #27585)
-#27598 := [def-axiom]: #27597
-#27909 := [unit-resolution #27598 #27908]: #27585
-#27982 := [mp #27909 #27981]: #26552
-#26910 := (or #26788 #26551)
-#26911 := [def-axiom]: #26910
-#27983 := [unit-resolution #26911 #27982]: #26788
-#24653 := (uf_14 uf_7)
-#27977 := (= #24653 #26634)
-#27985 := (= #26634 #24653)
-#27991 := (= #26287 uf_7)
-#27989 := (= #26287 #24114)
-#28002 := [mp #27925 #26277]: #26264
-#26014 := (or #26074 #26268 #26288)
-#26016 := [def-axiom]: #26014
-#27986 := [unit-resolution #26016 #28002 #26214]: #26288
-#27990 := [symm #27986]: #27989
-#27992 := [trans #27990 #27683]: #27991
-#27993 := [monotonicity #27992]: #27985
-#27978 := [symm #27993]: #27977
-#24654 := (= uf_16 #24653)
-#24661 := (iff #11835 #24654)
-#2303 := (pattern #237)
-#2831 := (uf_14 #233)
-#12008 := (= uf_16 #2831)
-#12012 := (iff #3963 #12008)
-#12015 := (forall (vars (?x761 T3)) (:pat #2303) #12012)
-#18854 := (~ #12015 #12015)
-#18852 := (~ #12012 #12012)
-#18853 := [refl]: #18852
-#18855 := [nnf-pos #18853]: #18854
-#2844 := (= #2831 uf_16)
-#2845 := (iff #238 #2844)
-#2846 := (forall (vars (?x761 T3)) (:pat #2303) #2845)
-#12016 := (iff #2846 #12015)
-#12013 := (iff #2845 #12012)
-#12010 := (iff #2844 #12008)
-#12011 := [rewrite]: #12010
-#12014 := [monotonicity #3965 #12011]: #12013
-#12017 := [quant-intro #12014]: #12016
-#12007 := [asserted]: #2846
-#12020 := [mp #12007 #12017]: #12015
-#18856 := [mp~ #12020 #18855]: #12015
-#24285 := (not #12015)
-#24664 := (or #24285 #24661)
-#24665 := [quant-inst]: #24664
-#27984 := [unit-resolution #24665 #18856]: #24661
-#24666 := (not #24661)
-#28001 := (or #24666 #24654)
-#24670 := (not #11835)
-#24671 := (or #24666 #24670 #24654)
-#24672 := [def-axiom]: #24671
-#28003 := [unit-resolution #24672 #11841]: #28001
-#28004 := [unit-resolution #28003 #27984]: #24654
-#28005 := [trans #28004 #27978]: #26726
-#26958 := (not #26629)
-#28390 := (iff #12299 #26958)
-#28388 := (iff #12296 #26629)
-#28355 := (iff #26629 #12296)
-#28362 := (= #26609 #2955)
-#28360 := (= #26608 #2952)
-#28357 := (= #26608 #24234)
-#28329 := (= #26553 #2962)
-#28302 := (= #26553 #26432)
-#26435 := (uf_66 #26432 0::int #24114)
-#26436 := (uf_58 #3079 #26435)
-#26437 := (uf_136 #26436)
-#28300 := (= #26437 #26432)
-#26438 := (= #26432 #26437)
-decl up_68 :: (-> T14 bool)
-#26445 := (up_68 #26436)
-#26446 := (not #26445)
-#26442 := (uf_27 uf_273 #26435)
-#26443 := (= uf_9 #26442)
-#26444 := (not #26443)
-#26440 := (uf_135 #26436)
-#26441 := (= uf_9 #26440)
-#26439 := (not #26438)
-#26474 := (or #26439 #26441 #26444 #26446)
-#26477 := (not #26474)
-#26449 := (uf_27 uf_273 #26432)
-#26450 := (= uf_9 #26449)
-#28032 := (= #2963 #26449)
-#28007 := (= #26449 #2963)
-#28013 := [monotonicity #27935]: #28007
-#28033 := [symm #28013]: #28032
-#28031 := [trans #14797 #28033]: #26450
-#26451 := (not #26450)
-#28034 := (or #26451 #26477)
-#276 := (:var 3 int)
-#310 := (:var 2 T3)
-#1463 := (uf_124 #310 #247)
-#1464 := (uf_43 #1463 #276)
-#1460 := (uf_43 #310 #276)
-#1461 := (uf_66 #1460 #161 #310)
-#38 := (:var 4 T4)
-#1466 := (uf_59 #38)
-#1467 := (uf_58 #1466 #1461)
-#1468 := (pattern #1467 #1464)
-#1459 := (uf_41 #38)
-#1462 := (uf_40 #1459 #1461)
-#1465 := (pattern #1462 #1464)
-#1471 := (uf_66 #1464 #161 #310)
-#1474 := (uf_58 #1466 #1471)
-#1479 := (uf_136 #1474)
-#8354 := (= #1464 #1479)
-#21428 := (not #8354)
-#1476 := (uf_135 #1474)
-#8348 := (= uf_9 #1476)
-#1472 := (uf_27 #38 #1471)
-#8345 := (= uf_9 #1472)
-#21427 := (not #8345)
-#1475 := (up_68 #1474)
-#21426 := (not #1475)
-#21429 := (or #21426 #21427 #8348 #21428)
-#21430 := (not #21429)
-#1469 := (uf_27 #38 #1464)
-#8342 := (= uf_9 #1469)
-#8377 := (not #8342)
-#5373 := (* -1::int #247)
-#6256 := (+ #161 #5373)
-#6255 := (>= #6256 0::int)
-#21436 := (or #5113 #6255 #8377 #21430)
-#21441 := (forall (vars (?x346 T4) (?x347 int) (?x348 T3) (?x349 int) (?x350 int)) (:pat #1465 #1468) #21436)
-#8351 := (not #8348)
-#8386 := (and #1475 #8345 #8351 #8354)
-#8026 := (not #6255)
-#8029 := (and #4084 #8026)
-#8032 := (not #8029)
-#8395 := (or #8032 #8377 #8386)
-#8400 := (forall (vars (?x346 T4) (?x347 int) (?x348 T3) (?x349 int) (?x350 int)) (:pat #1465 #1468) #8395)
-#21442 := (iff #8400 #21441)
-#21439 := (iff #8395 #21436)
-#21311 := (or #5113 #6255)
-#21433 := (or #21311 #8377 #21430)
-#21437 := (iff #21433 #21436)
-#21438 := [rewrite]: #21437
-#21434 := (iff #8395 #21433)
-#21431 := (iff #8386 #21430)
-#21432 := [rewrite]: #21431
-#21320 := (iff #8032 #21311)
-#21312 := (not #21311)
-#21315 := (not #21312)
-#21318 := (iff #21315 #21311)
-#21319 := [rewrite]: #21318
-#21316 := (iff #8032 #21315)
-#21313 := (iff #8029 #21312)
-#21314 := [rewrite]: #21313
-#21317 := [monotonicity #21314]: #21316
-#21321 := [trans #21317 #21319]: #21320
-#21435 := [monotonicity #21321 #21432]: #21434
-#21440 := [trans #21435 #21438]: #21439
-#21443 := [quant-intro #21440]: #21442
-#17588 := (~ #8400 #8400)
-#17586 := (~ #8395 #8395)
-#17587 := [refl]: #17586
-#17589 := [nnf-pos #17587]: #17588
-#1480 := (= #1479 #1464)
-#1477 := (= #1476 uf_9)
-#1478 := (not #1477)
-#1481 := (and #1478 #1480)
-#1482 := (and #1475 #1481)
-#1473 := (= #1472 uf_9)
-#1483 := (and #1473 #1482)
-#1362 := (< #161 #247)
-#1363 := (and #1362 #285)
-#1484 := (implies #1363 #1483)
-#1470 := (= #1469 uf_9)
-#1485 := (implies #1470 #1484)
-#1486 := (forall (vars (?x346 T4) (?x347 int) (?x348 T3) (?x349 int) (?x350 int)) (:pat #1465 #1468) #1485)
-#8403 := (iff #1486 #8400)
-#8357 := (and #8351 #8354)
-#8360 := (and #1475 #8357)
-#8363 := (and #8345 #8360)
-#7987 := (and #285 #1362)
-#7996 := (not #7987)
-#8369 := (or #7996 #8363)
-#8378 := (or #8377 #8369)
-#8383 := (forall (vars (?x346 T4) (?x347 int) (?x348 T3) (?x349 int) (?x350 int)) (:pat #1465 #1468) #8378)
-#8401 := (iff #8383 #8400)
-#8398 := (iff #8378 #8395)
-#8389 := (or #8032 #8386)
-#8392 := (or #8377 #8389)
-#8396 := (iff #8392 #8395)
-#8397 := [rewrite]: #8396
-#8393 := (iff #8378 #8392)
-#8390 := (iff #8369 #8389)
-#8387 := (iff #8363 #8386)
-#8388 := [rewrite]: #8387
-#8033 := (iff #7996 #8032)
-#8030 := (iff #7987 #8029)
-#8027 := (iff #1362 #8026)
-#8028 := [rewrite]: #8027
-#8031 := [monotonicity #4085 #8028]: #8030
-#8034 := [monotonicity #8031]: #8033
-#8391 := [monotonicity #8034 #8388]: #8390
-#8394 := [monotonicity #8391]: #8393
-#8399 := [trans #8394 #8397]: #8398
-#8402 := [quant-intro #8399]: #8401
-#8384 := (iff #1486 #8383)
-#8381 := (iff #1485 #8378)
-#8374 := (implies #8342 #8369)
-#8379 := (iff #8374 #8378)
-#8380 := [rewrite]: #8379
-#8375 := (iff #1485 #8374)
-#8372 := (iff #1484 #8369)
-#8366 := (implies #7987 #8363)
-#8370 := (iff #8366 #8369)
-#8371 := [rewrite]: #8370
-#8367 := (iff #1484 #8366)
-#8364 := (iff #1483 #8363)
-#8361 := (iff #1482 #8360)
-#8358 := (iff #1481 #8357)
-#8355 := (iff #1480 #8354)
-#8356 := [rewrite]: #8355
-#8352 := (iff #1478 #8351)
-#8349 := (iff #1477 #8348)
-#8350 := [rewrite]: #8349
-#8353 := [monotonicity #8350]: #8352
-#8359 := [monotonicity #8353 #8356]: #8358
-#8362 := [monotonicity #8359]: #8361
-#8346 := (iff #1473 #8345)
-#8347 := [rewrite]: #8346
-#8365 := [monotonicity #8347 #8362]: #8364
-#7988 := (iff #1363 #7987)
-#7989 := [rewrite]: #7988
-#8368 := [monotonicity #7989 #8365]: #8367
-#8373 := [trans #8368 #8371]: #8372
-#8343 := (iff #1470 #8342)
-#8344 := [rewrite]: #8343
-#8376 := [monotonicity #8344 #8373]: #8375
-#8382 := [trans #8376 #8380]: #8381
-#8385 := [quant-intro #8382]: #8384
-#8404 := [trans #8385 #8402]: #8403
-#8341 := [asserted]: #1486
-#8405 := [mp #8341 #8404]: #8400
-#17590 := [mp~ #8405 #17589]: #8400
-#21444 := [mp #17590 #21443]: #21441
-#27098 := (not #21441)
-#27099 := (or #27098 #26451 #26469 #26477)
-#26447 := (or #26446 #26444 #26441 #26439)
-#26448 := (not #26447)
-#26457 := (or #26456 #26454 #26451 #26448)
-#27111 := (or #27098 #26457)
-#27522 := (iff #27111 #27099)
-#26483 := (or #26451 #26469 #26477)
-#27450 := (or #27098 #26483)
-#27435 := (iff #27450 #27099)
-#27448 := [rewrite]: #27435
-#27451 := (iff #27111 #27450)
-#26486 := (iff #26457 #26483)
-#26480 := (or false #26469 #26451 #26477)
-#26484 := (iff #26480 #26483)
-#26485 := [rewrite]: #26484
-#26481 := (iff #26457 #26480)
-#26478 := (iff #26448 #26477)
-#26475 := (iff #26447 #26474)
-#26476 := [rewrite]: #26475
-#26479 := [monotonicity #26476]: #26478
-#26482 := [monotonicity #26463 #26473 #26479]: #26481
-#26487 := [trans #26482 #26485]: #26486
-#27428 := [monotonicity #26487]: #27451
-#27523 := [trans #27428 #27448]: #27522
-#27449 := [quant-inst]: #27111
-#27524 := [mp #27449 #27523]: #27099
-#28015 := [unit-resolution #27524 #21444 #26707]: #28034
-#28035 := [unit-resolution #28015 #28031]: #26477
-#27525 := (or #26474 #26438)
-#27526 := [def-axiom]: #27525
-#28036 := [unit-resolution #27526 #28035]: #26438
-#28301 := [symm #28036]: #28300
-#28299 := (= #26553 #26437)
-#28298 := (= #26312 #26436)
-#28308 := (= #26436 #26312)
-#28325 := (= #26435 #3011)
-#26269 := (uf_116 #3011)
-#26270 := (uf_43 #24114 #26269)
-#28320 := (= #26270 #3011)
-#26271 := (= #3011 #26270)
-#26500 := (or #25416 #26268 #26271)
-#26272 := (or #26271 #26268)
-#26501 := (or #25416 #26272)
-#26508 := (iff #26501 #26500)
-#26273 := (or #26268 #26271)
-#26503 := (or #25416 #26273)
-#26506 := (iff #26503 #26500)
-#26507 := [rewrite]: #26506
-#26504 := (iff #26501 #26503)
-#26274 := (iff #26272 #26273)
-#26275 := [rewrite]: #26274
-#26505 := [monotonicity #26275]: #26504
-#26509 := [trans #26505 #26507]: #26508
-#26502 := [quant-inst]: #26501
-#26396 := [mp #26502 #26509]: #26500
-#28037 := [unit-resolution #26396 #18736 #28002]: #26271
-#28321 := [symm #28037]: #28320
-#28324 := (= #26435 #26270)
-#26643 := (uf_116 #25404)
-#26651 := (+ #26356 #26643)
-#26654 := (uf_43 #24114 #26651)
-#28304 := (= #26654 #26270)
-#28237 := (= #26651 #26269)
-#26563 := (uf_116 #26368)
-#28283 := (= #26563 #26269)
-#28058 := (= #26368 #3011)
-#28056 := (= #26346 #3011)
-#28038 := (= #23223 #2960)
-#28039 := [symm #26284]: #28038
-#28057 := [monotonicity #28039 #27683]: #28056
-#28040 := (= #26368 #26346)
-#28050 := [symm #26283]: #28040
-#28059 := [trans #28050 #28057]: #28058
-#28284 := [monotonicity #28059]: #28283
-#28282 := (= #26651 #26563)
-#28272 := (= #26563 #26651)
-#27071 := (* -1::int #26357)
-#27072 := (+ #24016 #27071)
-#27073 := (<= #27072 0::int)
-#27070 := (= #24016 #26357)
-#28067 := (= #2961 #26357)
-#28087 := (= #26357 #2961)
-#28088 := [monotonicity #28039]: #28087
-#28068 := [symm #28088]: #28067
-#28085 := (= #24016 #2961)
-#24240 := (= #2961 #24016)
-#24245 := (or #24187 #24240)
-#24246 := [quant-inst]: #24245
-#28060 := [unit-resolution #24246 #23688]: #24240
-#28086 := [symm #28060]: #28085
-#28069 := [trans #28086 #28068]: #27070
-#28070 := (not #27070)
-#28049 := (or #28070 #27073)
-#28066 := [th-lemma]: #28049
-#28051 := [unit-resolution #28066 #28069]: #27073
-#27068 := (>= #27072 0::int)
-#28052 := (or #28070 #27068)
-#28053 := [th-lemma]: #28052
-#28054 := [unit-resolution #28053 #28069]: #27068
-#26567 := (* -1::int #26563)
-#26568 := (+ #26357 #26567)
-#26569 := (+ #26356 #26568)
-#27092 := (<= #26569 0::int)
-#26570 := (= #26569 0::int)
-#27074 := (or #24187 #26570)
-#26564 := (= #26365 #26563)
-#27075 := (or #24187 #26564)
-#27077 := (iff #27075 #27074)
-#27083 := (iff #27074 #27074)
-#27084 := [rewrite]: #27083
-#26571 := (iff #26564 #26570)
-#26572 := [rewrite]: #26571
-#27078 := [monotonicity #26572]: #27077
-#27093 := [trans #27078 #27084]: #27077
-#27076 := [quant-inst]: #27075
-#27094 := [mp #27076 #27093]: #27074
-#28055 := [unit-resolution #27094 #23688]: #26570
-#28076 := (not #26570)
-#28079 := (or #28076 #27092)
-#28080 := [th-lemma]: #28079
-#28081 := [unit-resolution #28080 #28055]: #27092
-#27095 := (>= #26569 0::int)
-#28082 := (or #28076 #27095)
-#28078 := [th-lemma]: #28082
-#28083 := [unit-resolution #28078 #28055]: #27095
-#27032 := (<= #26356 1::int)
-#27031 := (= #26356 1::int)
-#2927 := (uf_138 uf_7)
-#2928 := (= #2927 1::int)
-#12262 := [asserted]: #2928
-#28084 := (= #26356 #2927)
-#28103 := [monotonicity #27683]: #28084
-#28105 := [trans #28103 #12262]: #27031
-#28106 := (not #27031)
-#28261 := (or #28106 #27032)
-#28262 := [th-lemma]: #28261
-#28263 := [unit-resolution #28262 #28105]: #27032
-#27069 := (>= #26356 1::int)
-#28264 := (or #28106 #27069)
-#28265 := [th-lemma]: #28264
-#28266 := [unit-resolution #28265 #28105]: #27069
-#27890 := (* -1::int #26643)
-#27891 := (+ #24016 #27890)
-#27892 := (<= #27891 0::int)
-#27887 := (= #24016 #26643)
-#28253 := (= #26643 #24016)
-#28254 := [monotonicity #27941]: #28253
-#28252 := [symm #28254]: #27887
-#28255 := (not #27887)
-#28256 := (or #28255 #27892)
-#28257 := [th-lemma]: #28256
-#28258 := [unit-resolution #28257 #28252]: #27892
-#27893 := (>= #27891 0::int)
-#28259 := (or #28255 #27893)
-#28260 := [th-lemma]: #28259
-#28271 := [unit-resolution #28260 #28252]: #27893
-#28281 := [th-lemma #28266 #28263 #28271 #28258 #28266 #28263 #28083 #28081 #28054 #28051]: #28272
-#28280 := [symm #28281]: #28282
-#28239 := [trans #28280 #28284]: #28237
-#28305 := [monotonicity #28239]: #28304
-#28322 := (= #26435 #26654)
-#26639 := (uf_66 #25404 0::int #24114)
-#26657 := (= #26639 #26654)
-#26660 := (not #26657)
-#26640 := (uf_139 #26639 #25404)
-#26641 := (= uf_9 #26640)
-#26642 := (not #26641)
-#26666 := (or #26642 #26660)
-#26671 := (not #26666)
-#27881 := (or #26114 #26671)
-#26644 := (+ #26643 #26356)
-#26645 := (+ 0::int #26644)
-#26646 := (uf_43 #24114 #26645)
-#26647 := (= #26639 #26646)
-#26648 := (not #26647)
-#26649 := (or #26648 #26642)
-#26650 := (not #26649)
-#27869 := (or #26114 #26650)
-#27883 := (iff #27869 #27881)
-#27885 := (iff #27881 #27881)
-#27886 := [rewrite]: #27885
-#26672 := (iff #26650 #26671)
-#26669 := (iff #26649 #26666)
-#26663 := (or #26660 #26642)
-#26667 := (iff #26663 #26666)
-#26668 := [rewrite]: #26667
-#26664 := (iff #26649 #26663)
-#26661 := (iff #26648 #26660)
-#26658 := (iff #26647 #26657)
-#26655 := (= #26646 #26654)
-#26652 := (= #26645 #26651)
-#26653 := [rewrite]: #26652
-#26656 := [monotonicity #26653]: #26655
-#26659 := [monotonicity #26656]: #26658
-#26662 := [monotonicity #26659]: #26661
-#26665 := [monotonicity #26662]: #26664
-#26670 := [trans #26665 #26668]: #26669
-#26673 := [monotonicity #26670]: #26672
-#27884 := [monotonicity #26673]: #27883
-#27896 := [trans #27884 #27886]: #27883
-#27882 := [quant-inst]: #27869
-#27897 := [mp #27882 #27896]: #27881
-#28240 := [unit-resolution #27897 #21660]: #26671
-#27900 := (or #26666 #26657)
-#27901 := [def-axiom]: #27900
-#28238 := [unit-resolution #27901 #28240]: #26657
-#28310 := (= #26435 #26639)
-#28311 := [monotonicity #27948]: #28310
-#28323 := [trans #28311 #28238]: #28322
-#28319 := [trans #28323 #28305]: #28324
-#28326 := [trans #28319 #28321]: #28325
-#28296 := [monotonicity #28326]: #28308
-#28309 := [symm #28296]: #28298
-#28297 := [monotonicity #28309]: #28299
-#28303 := [trans #28297 #28301]: #28302
-#28335 := [trans #28303 #27935]: #28329
-#28334 := [monotonicity #28335]: #28357
-#28361 := [trans #28334 #28359]: #28360
-#28363 := [monotonicity #28361]: #28362
-#28356 := [monotonicity #28363]: #28355
-#28389 := [symm #28356]: #28388
-#28391 := [monotonicity #28389]: #28390
-#28392 := [mp #14796 #28391]: #26958
-#28395 := (= #2967 #26630)
-#28387 := (= #26630 #2967)
-#28393 := [monotonicity #28335]: #28387
-#28328 := [symm #28393]: #28395
-#28349 := [trans #14799 #28328]: #26610
-#26877 := (not #26610)
-#26878 := (or #26753 #26877)
-#26905 := [def-axiom]: #26878
-#28327 := [unit-resolution #26905 #28349]: #26753
-#26952 := (or #26807 #26629 #26750 #26766 #26791)
-#26953 := [def-axiom]: #26952
-#28350 := [unit-resolution #26953 #28327 #28392 #28005 #27983 #27903]: false
-#28351 := [lemma #28350]: #28348
-#28242 := [unit-resolution #28351 #28241]: #23957
-#23303 := (or #23954 #3022)
-#23302 := [def-axiom]: #23303
-#28243 := [unit-resolution #23302 #28242]: #3022
-#28633 := (+ #3021 #18936)
-#26421 := (>= #28633 0::int)
-#28632 := (= #3021 #18935)
-#27102 := (= #18935 #3021)
-#26769 := (= #18934 #3011)
-#26767 := (= ?x773!13 0::int)
-#23266 := (not #18939)
-#26720 := [hypothesis]: #22757
-#23257 := (or #22752 #23266)
-#23268 := [def-axiom]: #23257
-#26762 := [unit-resolution #23268 #26720]: #23266
-#23178 := (or #22752 #18931)
-#23264 := [def-axiom]: #23178
-#26763 := [unit-resolution #23264 #26720]: #18931
-#26768 := [th-lemma #26763 #26762]: #26767
-#27101 := [monotonicity #26768]: #26769
-#27157 := [monotonicity #27101]: #27102
-#28041 := [symm #27157]: #28632
-#28023 := (not #28632)
-#28024 := (or #28023 #26421)
-#28022 := [th-lemma]: #28024
-#28025 := [unit-resolution #28022 #28041]: #26421
-#23179 := (not #18938)
-#23265 := (or #22752 #23179)
-#23180 := [def-axiom]: #23265
-#28026 := [unit-resolution #23180 #26720]: #23179
-#26970 := (* -1::int #3021)
-#26971 := (+ uf_285 #26970)
-#26972 := (>= #26971 0::int)
-#28244 := (or #13672 #26972)
-#28245 := [th-lemma]: #28244
-#28246 := [unit-resolution #28245 #28243]: #26972
-#28641 := [th-lemma #28246 #28026 #28025]: false
-#28642 := [lemma #28641]: #22752
-#23280 := (or #23954 #23948)
-#23281 := [def-axiom]: #23280
-#29203 := [unit-resolution #23281 #28242]: #23948
-#28560 := [hypothesis]: #13906
-#28561 := [th-lemma #14790 #28560]: false
-#28562 := [lemma #28561]: #13903
-#23300 := (or #23951 #13906 #23945)
-#23301 := [def-axiom]: #23300
-#29204 := [unit-resolution #23301 #28562 #29203]: #23945
-#23309 := (or #23942 #23936)
-#23310 := [def-axiom]: #23309
-#29207 := [unit-resolution #23310 #29204]: #23936
-#23328 := (or #23939 #22757 #23933)
-#23305 := [def-axiom]: #23328
-#29208 := [unit-resolution #23305 #29207 #28642]: #23933
-#23321 := (or #23930 #23924)
-#23322 := [def-axiom]: #23321
-#29209 := [unit-resolution #23322 #29208]: #23924
-#29210 := (or #23927 #13672 #23921)
-#23317 := (or #23927 #13672 #13942 #23921)
-#23318 := [def-axiom]: #23317
-#29211 := [unit-resolution #23318 #14790]: #29210
-#29212 := [unit-resolution #29211 #29209 #28243]: #23921
-#23351 := (or #23918 #13947)
-#23355 := [def-axiom]: #23351
-#29213 := [unit-resolution #23355 #29212]: #13947
-#27053 := (* -1::int #26964)
-#27103 := (+ uf_293 #27053)
-#27104 := (<= #27103 0::int)
-#26965 := (= uf_293 #26964)
-#1382 := (uf_66 #15 #161 #1381)
-#1383 := (pattern #1382)
-#1384 := (uf_125 #1382 #15)
-#8071 := (= #161 #1384)
-#8075 := (forall (vars (?x319 T5) (?x320 int)) (:pat #1383) #8071)
-#17553 := (~ #8075 #8075)
-#17551 := (~ #8071 #8071)
-#17552 := [refl]: #17551
-#17554 := [nnf-pos #17552]: #17553
-#1385 := (= #1384 #161)
-#1386 := (forall (vars (?x319 T5) (?x320 int)) (:pat #1383) #1385)
-#8076 := (iff #1386 #8075)
-#8073 := (iff #1385 #8071)
-#8074 := [rewrite]: #8073
-#8077 := [quant-intro #8074]: #8076
-#8070 := [asserted]: #1386
-#8080 := [mp #8070 #8077]: #8075
-#17555 := [mp~ #8080 #17554]: #8075
-#26411 := (not #8075)
-#26968 := (or #26411 #26965)
-#26969 := [quant-inst]: #26968
-#27438 := [unit-resolution #26969 #17555]: #26965
-#27439 := (not #26965)
-#29214 := (or #27439 #27104)
-#29215 := [th-lemma]: #29214
-#29216 := [unit-resolution #29215 #27438]: #27104
-#29217 := (not #27104)
-#29218 := (or #27037 #22873 #29217)
-#29219 := [th-lemma]: #29218
-#29220 := [unit-resolution #29219 #29216 #29213]: #27037
-#23345 := (or #23918 #23754)
-#23338 := [def-axiom]: #23345
-#29221 := [unit-resolution #23338 #29212]: #23754
-#23365 := (or #23918 #12426)
-#23366 := [def-axiom]: #23365
-#29222 := [unit-resolution #23366 #29212]: #12426
-#27373 := (+ uf_272 #27053)
-#27374 := (<= #27373 0::int)
-#27445 := (not #27374)
-#23356 := (or #23918 #14405)
-#23359 := [def-axiom]: #23356
-#29223 := [unit-resolution #23359 #29212]: #14405
-#27446 := (or #27445 #14404)
-#27437 := [hypothesis]: #14405
-#27105 := (>= #27103 0::int)
-#27440 := (or #27439 #27105)
-#27441 := [th-lemma]: #27440
-#27442 := [unit-resolution #27441 #27438]: #27105
-#27443 := [hypothesis]: #27374
-#27444 := [th-lemma #27443 #27442 #27437]: false
-#27447 := [lemma #27444]: #27446
-#29224 := [unit-resolution #27447 #29223]: #27445
-#23346 := (or #23918 #23912)
-#23339 := [def-axiom]: #23346
-#29225 := [unit-resolution #23339 #29212]: #23912
-#27311 := (<= #26964 131073::int)
-#23336 := (or #23918 #16332)
-#23337 := [def-axiom]: #23336
-#29226 := [unit-resolution #23337 #29212]: #16332
-#29227 := (not #27105)
-#29228 := (or #27311 #23042 #29227)
-#29229 := [th-lemma]: #29228
-#29230 := [unit-resolution #29229 #27442 #29226]: #27311
-#27312 := (not #27311)
-#27038 := (not #27037)
-#27757 := (or #14049 #27038 #27312 #27374 #23037 #23759 #23915)
-#27327 := (uf_66 #2960 #26964 uf_7)
-#27328 := (uf_110 uf_273 #27327)
-#27331 := (= uf_299 #27328)
-#27162 := (= #3068 #27328)
-#27733 := (= #27328 #3068)
-#27638 := (= #27327 #3067)
-#27584 := (= #26964 uf_293)
-#27589 := [symm #27438]: #27584
-#27639 := [monotonicity #27589]: #27638
-#27734 := [monotonicity #27639]: #27733
-#27665 := [symm #27734]: #27162
-#27735 := (= uf_299 #3068)
-#27640 := [hypothesis]: #12426
-#27641 := [hypothesis]: #23912
-#27352 := [hypothesis]: #14046
-#23335 := (or #23872 #14049)
-#23446 := [def-axiom]: #23335
-#27720 := [unit-resolution #23446 #27352]: #23872
-#23378 := (or #23915 #23875 #23909)
-#23380 := [def-axiom]: #23378
-#27731 := [unit-resolution #23380 #27720 #27641]: #23909
-#23397 := (or #23906 #12576)
-#23398 := [def-axiom]: #23397
-#27666 := [unit-resolution #23398 #27731]: #12576
-#27732 := [symm #27666]: #3139
-#27736 := [trans #27732 #27640]: #27735
-#27737 := [trans #27736 #27665]: #27331
-#27738 := [hypothesis]: #27445
-#27675 := [hypothesis]: #27311
-#27739 := [hypothesis]: #27037
-#23405 := (or #23906 #23900)
-#23406 := [def-axiom]: #23405
-#27740 := [unit-resolution #23406 #27731]: #23900
-#27363 := [hypothesis]: #23754
-#27108 := (+ uf_292 #13970)
-#27109 := (<= #27108 0::int)
-#27741 := (or #12644 #27109)
-#27742 := [th-lemma]: #27741
-#27743 := [unit-resolution #27742 #27666]: #27109
-#27349 := (not #27109)
-#27367 := (or #23008 #23759 #27349 #14049)
-#27179 := (+ uf_294 #19528)
-#27180 := (<= #27179 0::int)
-#27355 := (not #27180)
-#23419 := (not #19530)
-#27353 := [hypothesis]: #23013
-#23443 := (or #23008 #23419)
-#23444 := [def-axiom]: #23443
-#27354 := [unit-resolution #23444 #27353]: #23419
-#27356 := (or #27355 #14049 #19530)
-#27357 := [th-lemma]: #27356
-#27358 := [unit-resolution #27357 #27354 #27352]: #27355
-#27191 := (+ uf_292 #19541)
-#27192 := (>= #27191 0::int)
-#27348 := (not #27192)
-#27342 := [hypothesis]: #27109
-#23439 := (not #19543)
-#23445 := (or #23008 #23439)
-#23413 := [def-axiom]: #23445
-#27359 := [unit-resolution #23413 #27353]: #23439
-#27350 := (or #27348 #19543 #27349)
-#27343 := [hypothesis]: #23439
-#27346 := [hypothesis]: #27192
-#27347 := [th-lemma #27346 #27343 #27342]: false
-#27351 := [lemma #27347]: #27350
-#27360 := [unit-resolution #27351 #27359 #27342]: #27348
-#27364 := (or #27180 #27192)
-#23383 := (or #23008 #19192)
-#23438 := [def-axiom]: #23383
-#27361 := [unit-resolution #23438 #27353]: #19192
-#23457 := (or #23008 #19191)
-#23437 := [def-axiom]: #23457
-#27362 := [unit-resolution #23437 #27353]: #19191
-#27205 := (or #23759 #22992 #22993 #27180 #27192)
-#27168 := (+ #19196 #14431)
-#27169 := (<= #27168 0::int)
-#27170 := (+ ?x781!15 #14044)
-#27171 := (>= #27170 0::int)
-#27172 := (or #22993 #27171 #27169 #22992)
-#27206 := (or #23759 #27172)
-#27213 := (iff #27206 #27205)
-#27200 := (or #22992 #22993 #27180 #27192)
-#27208 := (or #23759 #27200)
-#27211 := (iff #27208 #27205)
-#27212 := [rewrite]: #27211
-#27209 := (iff #27206 #27208)
-#27203 := (iff #27172 #27200)
-#27197 := (or #22993 #27180 #27192 #22992)
-#27201 := (iff #27197 #27200)
-#27202 := [rewrite]: #27201
-#27198 := (iff #27172 #27197)
-#27195 := (iff #27169 #27192)
-#27185 := (+ #14431 #19196)
-#27188 := (<= #27185 0::int)
-#27193 := (iff #27188 #27192)
-#27194 := [rewrite]: #27193
-#27189 := (iff #27169 #27188)
-#27186 := (= #27168 #27185)
-#27187 := [rewrite]: #27186
-#27190 := [monotonicity #27187]: #27189
-#27196 := [trans #27190 #27194]: #27195
-#27183 := (iff #27171 #27180)
-#27173 := (+ #14044 ?x781!15)
-#27176 := (>= #27173 0::int)
-#27181 := (iff #27176 #27180)
-#27182 := [rewrite]: #27181
-#27177 := (iff #27171 #27176)
-#27174 := (= #27170 #27173)
-#27175 := [rewrite]: #27174
-#27178 := [monotonicity #27175]: #27177
-#27184 := [trans #27178 #27182]: #27183
-#27199 := [monotonicity #27184 #27196]: #27198
-#27204 := [trans #27199 #27202]: #27203
-#27210 := [monotonicity #27204]: #27209
-#27214 := [trans #27210 #27212]: #27213
-#27207 := [quant-inst]: #27206
-#27215 := [mp #27207 #27214]: #27205
-#27365 := [unit-resolution #27215 #27363 #27362 #27361]: #27364
-#27366 := [unit-resolution #27365 #27360 #27358]: false
-#27368 := [lemma #27366]: #27367
-#27753 := [unit-resolution #27368 #27743 #27352 #27363]: #23008
-#23423 := (or #23903 #23897 #23013)
-#23424 := [def-axiom]: #23423
-#27754 := [unit-resolution #23424 #27753 #27740]: #23897
-#23454 := (or #23894 #23886)
-#23455 := [def-axiom]: #23454
-#27755 := [unit-resolution #23455 #27754]: #23886
-#27334 := (not #27331)
-#27520 := (or #23891 #27038 #27312 #27334 #27374)
-#27317 := (+ #26964 #13873)
-#27318 := (>= #27317 0::int)
-#27326 := (= #27328 uf_299)
-#27329 := (not #27326)
-#27330 := (or #27329 #27038 #27318 #27312)
-#27518 := (or #23891 #27330)
-#27642 := (iff #27518 #27520)
-#27382 := (or #27038 #27312 #27334 #27374)
-#27590 := (or #23891 #27382)
-#27593 := (iff #27590 #27520)
-#27594 := [rewrite]: #27593
-#27591 := (iff #27518 #27590)
-#27385 := (iff #27330 #27382)
-#27379 := (or #27334 #27038 #27374 #27312)
-#27383 := (iff #27379 #27382)
-#27384 := [rewrite]: #27383
-#27380 := (iff #27330 #27379)
-#27377 := (iff #27318 #27374)
-#27335 := (+ #13873 #26964)
-#27370 := (>= #27335 0::int)
-#27375 := (iff #27370 #27374)
-#27376 := [rewrite]: #27375
-#27371 := (iff #27318 #27370)
-#27336 := (= #27317 #27335)
-#27369 := [rewrite]: #27336
-#27372 := [monotonicity #27369]: #27371
-#27378 := [trans #27372 #27376]: #27377
-#27344 := (iff #27329 #27334)
-#27332 := (iff #27326 #27331)
-#27333 := [rewrite]: #27332
-#27345 := [monotonicity #27333]: #27344
-#27381 := [monotonicity #27345 #27378]: #27380
-#27386 := [trans #27381 #27384]: #27385
-#27592 := [monotonicity #27386]: #27591
-#27647 := [trans #27592 #27594]: #27642
-#27521 := [quant-inst]: #27518
-#27648 := [mp #27521 #27647]: #27520
-#27756 := [unit-resolution #27648 #27755 #27739 #27675 #27738 #27737]: false
-#27758 := [lemma #27756]: #27757
-#29231 := [unit-resolution #27758 #29230 #29225 #29224 #29222 #29221 #29220]: #14049
-#23541 := (+ uf_294 #14142)
-#23536 := (>= #23541 0::int)
-#27163 := (uf_58 #3079 #3175)
-#27762 := (uf_136 #27163)
-#27763 := (uf_24 uf_273 #27762)
-#27764 := (= uf_9 #27763)
-#27765 := (not #27764)
-#27759 := (uf_135 #27163)
-#27760 := (= uf_9 #27759)
-#27761 := (not #27760)
-#27819 := (or #27761 #27765)
-#27822 := (not #27819)
-#27773 := (uf_210 uf_273 #27762)
-#27774 := (= uf_9 #27773)
-#27771 := (uf_25 uf_273 #27762)
-#27772 := (= uf_26 #27771)
-#27813 := (or #27772 #27774)
-#27816 := (not #27813)
-#27527 := (uf_15 #3175)
-#27777 := (uf_14 #27527)
-#27795 := (= uf_16 #27777)
-#27810 := (not #27795)
-#27768 := (uf_15 #27762)
-#27769 := (uf_14 #27768)
-#27770 := (= uf_16 #27769)
-#27828 := (or #27770 #27810 #27816 #27822)
-#27833 := (not #27828)
-#27784 := (uf_25 uf_273 #3175)
-#27785 := (= uf_26 #27784)
-#27782 := (uf_210 uf_273 #3175)
-#27783 := (= uf_9 #27782)
-#27798 := (or #27783 #27785)
-#27801 := (not #27798)
-#27804 := (or #27795 #27801)
-#27807 := (not #27804)
-#27836 := (or #27807 #27833)
-#27839 := (not #27836)
-#27842 := (or #19008 #27839)
-#27845 := (not #27842)
-#27848 := (iff #12812 #27845)
-#29445 := (or #26854 #27848)
-#27766 := (or #27765 #27761)
-#27767 := (not #27766)
-#27775 := (or #27774 #27772)
-#27776 := (not #27775)
-#27778 := (= #27777 uf_16)
-#27779 := (not #27778)
-#27780 := (or #27779 #27776 #27770 #27767)
-#27781 := (not #27780)
-#27786 := (or #27785 #27783)
-#27787 := (not #27786)
-#27788 := (or #27778 #27787)
-#27789 := (not #27788)
-#27790 := (or #27789 #27781)
-#27791 := (not #27790)
-#27792 := (or #19008 #27791)
-#27793 := (not #27792)
-#27794 := (iff #12812 #27793)
-#29439 := (or #26854 #27794)
-#29438 := (iff #29439 #29445)
-#29456 := (iff #29445 #29445)
-#29454 := [rewrite]: #29456
-#27849 := (iff #27794 #27848)
-#27846 := (iff #27793 #27845)
-#27843 := (iff #27792 #27842)
-#27840 := (iff #27791 #27839)
-#27837 := (iff #27790 #27836)
-#27834 := (iff #27781 #27833)
-#27831 := (iff #27780 #27828)
-#27825 := (or #27810 #27816 #27770 #27822)
-#27829 := (iff #27825 #27828)
-#27830 := [rewrite]: #27829
-#27826 := (iff #27780 #27825)
-#27823 := (iff #27767 #27822)
-#27820 := (iff #27766 #27819)
-#27821 := [rewrite]: #27820
-#27824 := [monotonicity #27821]: #27823
-#27817 := (iff #27776 #27816)
-#27814 := (iff #27775 #27813)
-#27815 := [rewrite]: #27814
-#27818 := [monotonicity #27815]: #27817
-#27811 := (iff #27779 #27810)
-#27796 := (iff #27778 #27795)
-#27797 := [rewrite]: #27796
-#27812 := [monotonicity #27797]: #27811
-#27827 := [monotonicity #27812 #27818 #27824]: #27826
-#27832 := [trans #27827 #27830]: #27831
-#27835 := [monotonicity #27832]: #27834
-#27808 := (iff #27789 #27807)
-#27805 := (iff #27788 #27804)
-#27802 := (iff #27787 #27801)
-#27799 := (iff #27786 #27798)
-#27800 := [rewrite]: #27799
-#27803 := [monotonicity #27800]: #27802
-#27806 := [monotonicity #27797 #27803]: #27805
-#27809 := [monotonicity #27806]: #27808
-#27838 := [monotonicity #27809 #27835]: #27837
-#27841 := [monotonicity #27838]: #27840
-#27844 := [monotonicity #27841]: #27843
-#27847 := [monotonicity #27844]: #27846
-#27850 := [monotonicity #27847]: #27849
-#29455 := [monotonicity #27850]: #29438
-#29457 := [trans #29455 #29454]: #29438
-#29446 := [quant-inst]: #29439
-#29459 := [mp #29446 #29457]: #29445
-#29640 := [unit-resolution #29459 #22514]: #27848
-#29381 := (not #27848)
-#29642 := (or #29381 #27842)
-#29641 := [hypothesis]: #19017
-#29377 := (or #29381 #12812 #27842)
-#29382 := [def-axiom]: #29377
-#28866 := [unit-resolution #29382 #29641]: #29642
-#29632 := [unit-resolution #28866 #29640]: #27842
-#29635 := (or #27845 #27839)
-#23357 := (or #23918 #13950)
-#23358 := [def-axiom]: #23357
-#28992 := [unit-resolution #23358 #29212]: #13950
-#28994 := [trans #26494 #27946]: #25983
-#28995 := [unit-resolution #26021 #28994 #27937]: #25981
-#28996 := [unit-resolution #27928 #28995]: #26058
-#28997 := [unit-resolution #26217 #28996]: #26041
-#29000 := [trans #28997 #27953]: #26522
-#27729 := (or #12803 #14243 #26523 #14046)
-#27672 := [hypothesis]: #13950
-#27528 := (uf_66 #23223 uf_294 #26404)
-#27529 := (uf_125 #27528 #23223)
-#27558 := (* -1::int #27529)
-#27667 := (+ uf_294 #27558)
-#27668 := (<= #27667 0::int)
-#27530 := (= uf_294 #27529)
-#27533 := (or #26411 #27530)
-#27534 := [quant-inst]: #27533
-#27673 := [unit-resolution #27534 #17555]: #27530
-#27676 := (not #27530)
-#27677 := (or #27676 #27668)
-#27678 := [th-lemma]: #27677
-#27679 := [unit-resolution #27678 #27673]: #27668
-#27549 := (>= #27529 0::int)
-#27550 := (not #27549)
-#27601 := (uf_66 #26511 #27529 #24114)
-#27605 := (uf_58 #3079 #27601)
-#27606 := (uf_135 #27605)
-#27607 := (= uf_9 #27606)
-#27602 := (uf_27 uf_273 #27601)
-#27603 := (= uf_9 #27602)
-#27604 := (not #27603)
-#27611 := (or #27604 #27607)
-#27699 := (iff #19008 #27604)
-#27697 := (iff #12803 #27603)
-#27695 := (iff #27603 #12803)
-#27693 := (= #27602 #3176)
-#27691 := (= #27601 #3175)
-#27684 := (= #27529 uf_294)
-#27685 := [symm #27673]: #27684
-#27692 := [monotonicity #27690 #27685 #27683]: #27691
-#27694 := [monotonicity #27692]: #27693
-#27696 := [monotonicity #27694]: #27695
-#27698 := [symm #27696]: #27697
-#27700 := [monotonicity #27698]: #27699
-#27680 := [hypothesis]: #19008
-#27701 := [mp #27680 #27700]: #27604
-#27636 := (or #27611 #27603)
-#27637 := [def-axiom]: #27636
-#27702 := [unit-resolution #27637 #27701]: #27611
-#27559 := (+ #24116 #27558)
-#27560 := (<= #27559 0::int)
-#27712 := (not #27560)
-#27708 := [hypothesis]: #14049
-#27669 := (>= #27667 0::int)
-#27709 := (or #27676 #27669)
-#27710 := [th-lemma]: #27709
-#27711 := [unit-resolution #27710 #27673]: #27669
-#27714 := (not #27669)
-#27715 := (or #27712 #27713 #27714 #14046)
-#27716 := [th-lemma]: #27715
-#27717 := [unit-resolution #27716 #27711 #27708 #27707]: #27712
-#27614 := (not #27611)
-#27725 := (or #27550 #27560 #27614)
-#27625 := (or #26542 #23209 #26523 #26526 #27550 #27560 #27614)
-#27608 := (or #27607 #27604)
-#27609 := (not #27608)
-#27547 := (+ #27529 #26452)
-#27548 := (>= #27547 0::int)
-#27610 := (or #26526 #27550 #27548 #26523 #23209 #27609)
-#27626 := (or #26542 #27610)
-#27633 := (iff #27626 #27625)
-#27620 := (or #23209 #26523 #26526 #27550 #27560 #27614)
-#27628 := (or #26542 #27620)
-#27631 := (iff #27628 #27625)
-#27632 := [rewrite]: #27631
-#27629 := (iff #27626 #27628)
-#27623 := (iff #27610 #27620)
-#27617 := (or #26526 #27550 #27560 #26523 #23209 #27614)
-#27621 := (iff #27617 #27620)
-#27622 := [rewrite]: #27621
-#27618 := (iff #27610 #27617)
-#27615 := (iff #27609 #27614)
-#27612 := (iff #27608 #27611)
-#27613 := [rewrite]: #27612
-#27616 := [monotonicity #27613]: #27615
-#27563 := (iff #27548 #27560)
-#27552 := (+ #26452 #27529)
-#27555 := (>= #27552 0::int)
-#27561 := (iff #27555 #27560)
-#27562 := [rewrite]: #27561
-#27556 := (iff #27548 #27555)
-#27553 := (= #27547 #27552)
-#27554 := [rewrite]: #27553
-#27557 := [monotonicity #27554]: #27556
-#27564 := [trans #27557 #27562]: #27563
-#27619 := [monotonicity #27564 #27616]: #27618
-#27624 := [trans #27619 #27622]: #27623
-#27630 := [monotonicity #27624]: #27629
-#27634 := [trans #27630 #27632]: #27633
-#27627 := [quant-inst]: #27626
-#27635 := [mp #27627 #27634]: #27625
-#27726 := [unit-resolution #27635 #22104 #14784 #27724 #27723]: #27725
-#27727 := [unit-resolution #27726 #27717 #27702]: #27550
-#27728 := [th-lemma #27727 #27679 #27672]: false
-#27730 := [lemma #27728]: #27729
-#29001 := [unit-resolution #27730 #29231 #29000 #28992]: #12803
-#29437 := (or #27845 #19008 #27839)
-#29380 := [def-axiom]: #29437
-#29636 := [unit-resolution #29380 #29001]: #29635
-#29634 := [unit-resolution #29636 #29632]: #27839
-#29590 := (or #27836 #27828)
-#29500 := [def-axiom]: #29590
-#29637 := [unit-resolution #29500 #29634]: #27828
-#29123 := (= #24653 #27777)
-#29378 := (= #27777 #24653)
-#29114 := (= #27527 uf_7)
-#28862 := (= #27527 #24114)
-#27514 := (= #24114 #27527)
-#27302 := (uf_48 #3175 #24114)
-#27308 := (= uf_9 #27302)
-#27513 := (iff #27308 #27514)
-#28999 := (or #25432 #27513)
-#27515 := (iff #27514 #27308)
-#28993 := (or #25432 #27515)
-#29008 := (iff #28993 #28999)
-#28998 := (iff #28999 #28999)
-#29010 := [rewrite]: #28998
-#27516 := (iff #27515 #27513)
-#27517 := [rewrite]: #27516
-#29009 := [monotonicity #27517]: #29008
-#29011 := [trans #29009 #29010]: #29008
-#29007 := [quant-inst]: #28993
-#29012 := [mp #29007 #29011]: #28999
-#29076 := [unit-resolution #29012 #23681]: #27513
-#29751 := (= #3178 #27302)
-#29068 := (= #27302 #3178)
-#29078 := [monotonicity #27683]: #29068
-#29752 := [symm #29078]: #29751
-#27490 := (+ uf_294 #26365)
-#27493 := (uf_43 #24114 #27490)
-#27643 := (uf_15 #27493)
-#29135 := (= #27643 #27527)
-#29116 := (= #27527 #27643)
-#29048 := (= #3175 #27493)
-#27480 := (uf_66 #23223 uf_294 #24114)
-#27496 := (= #27480 #27493)
-#27499 := (not #27496)
-#27481 := (uf_139 #27480 #23223)
-#27482 := (= uf_9 #27481)
-#27483 := (not #27482)
-#27505 := (or #27483 #27499)
-#27510 := (not #27505)
-#29033 := (or #26114 #27510)
-#27484 := (+ uf_294 #26358)
-#27485 := (uf_43 #24114 #27484)
-#27486 := (= #27480 #27485)
-#27487 := (not #27486)
-#27488 := (or #27487 #27483)
-#27489 := (not #27488)
-#29034 := (or #26114 #27489)
-#29030 := (iff #29034 #29033)
-#29036 := (iff #29033 #29033)
-#29037 := [rewrite]: #29036
-#27511 := (iff #27489 #27510)
-#27508 := (iff #27488 #27505)
-#27502 := (or #27499 #27483)
-#27506 := (iff #27502 #27505)
-#27507 := [rewrite]: #27506
-#27503 := (iff #27488 #27502)
-#27500 := (iff #27487 #27499)
-#27497 := (iff #27486 #27496)
-#27494 := (= #27485 #27493)
-#27491 := (= #27484 #27490)
-#27492 := [rewrite]: #27491
-#27495 := [monotonicity #27492]: #27494
-#27498 := [monotonicity #27495]: #27497
-#27501 := [monotonicity #27498]: #27500
-#27504 := [monotonicity #27501]: #27503
-#27509 := [trans #27504 #27507]: #27508
-#27512 := [monotonicity #27509]: #27511
-#29035 := [monotonicity #27512]: #29030
-#29038 := [trans #29035 #29037]: #29030
-#29029 := [quant-inst]: #29034
-#29039 := [mp #29029 #29038]: #29033
-#29088 := [unit-resolution #29039 #21660]: #27510
-#28968 := (or #27505 #27496)
-#29050 := [def-axiom]: #28968
-#29049 := [unit-resolution #29050 #29088]: #27496
-#29056 := (= #3175 #27480)
-#29054 := (= #27480 #3175)
-#29055 := [monotonicity #28039 #27683]: #29054
-#29057 := [symm #29055]: #29056
-#29082 := [trans #29057 #29049]: #29048
-#29117 := [monotonicity #29082]: #29116
-#29115 := [symm #29117]: #29135
-#27644 := (= #24114 #27643)
-#29031 := (or #24181 #27644)
-#29032 := [quant-inst]: #29031
-#29087 := [unit-resolution #29032 #23694]: #27644
-#29136 := [trans #29087 #29115]: #27514
-#28947 := (not #27514)
-#27309 := (not #27308)
-#29080 := (iff #19011 #27309)
-#29071 := (iff #12806 #27308)
-#29081 := (iff #27308 #12806)
-#29066 := [monotonicity #29078]: #29081
-#29072 := [symm #29066]: #29071
-#29083 := [monotonicity #29072]: #29080
-#29077 := [hypothesis]: #19011
-#29079 := [mp #29077 #29083]: #27309
-#28946 := (not #27513)
-#29042 := (or #28946 #27308 #28947)
-#29043 := [def-axiom]: #29042
-#29084 := [unit-resolution #29043 #29079 #29076]: #28947
-#29137 := [unit-resolution #29084 #29136]: false
-#29138 := [lemma #29137]: #12806
-#29753 := [trans #29138 #29752]: #27308
-#28964 := (or #28946 #27309 #27514)
-#28951 := [def-axiom]: #28964
-#28867 := [unit-resolution #28951 #29753 #29076]: #27514
-#29113 := [symm #28867]: #28862
-#28864 := [trans #29113 #27683]: #29114
-#29141 := [monotonicity #28864]: #29378
-#29124 := [symm #29141]: #29123
-#29188 := [trans #28004 #29124]: #27795
-#29563 := (not #27770)
-#29681 := (iff #12299 #29563)
-#29679 := (iff #12296 #27770)
-#29461 := (iff #27770 #12296)
-#29267 := (= #27769 #2955)
-#29265 := (= #27768 #2952)
-#29264 := (= #27768 #24234)
-#29783 := (= #27762 #2962)
-#29781 := (= #27762 #26432)
-#27531 := (uf_66 #26432 #27529 #24114)
-#27532 := (uf_58 #3079 #27531)
-#27535 := (uf_136 #27532)
-#29779 := (= #27535 #26432)
-#27536 := (= #26432 #27535)
-#27543 := (up_68 #27532)
-#27544 := (not #27543)
-#27540 := (uf_27 uf_273 #27531)
-#27541 := (= uf_9 #27540)
-#27542 := (not #27541)
-#27538 := (uf_135 #27532)
-#27539 := (= uf_9 #27538)
-#27537 := (not #27536)
-#27565 := (or #27537 #27539 #27542 #27544)
-#27568 := (not #27565)
-#28420 := (or #27549 #14243)
-#28416 := [hypothesis]: #27550
-#28417 := [th-lemma #28416 #27679 #27672]: false
-#28421 := [lemma #28417]: #28420
-#29742 := [unit-resolution #28421 #28992]: #27549
-#29745 := (or #27712 #27714)
-#29743 := (or #27712 #27714 #14046)
-#29744 := [unit-resolution #27716 #27707]: #29743
-#29746 := [unit-resolution #29744 #29231]: #29745
-#29747 := [unit-resolution #29746 #27711]: #27712
-#29144 := (or #27098 #26451 #27550 #27560 #27568)
-#27545 := (or #27544 #27542 #27539 #27537)
-#27546 := (not #27545)
-#27551 := (or #27550 #27548 #26451 #27546)
-#29145 := (or #27098 #27551)
-#29157 := (iff #29145 #29144)
-#27574 := (or #26451 #27550 #27560 #27568)
-#29168 := (or #27098 #27574)
-#29156 := (iff #29168 #29144)
-#29154 := [rewrite]: #29156
-#29155 := (iff #29145 #29168)
-#27577 := (iff #27551 #27574)
-#27571 := (or #27550 #27560 #26451 #27568)
-#27575 := (iff #27571 #27574)
-#27576 := [rewrite]: #27575
-#27572 := (iff #27551 #27571)
-#27569 := (iff #27546 #27568)
-#27566 := (iff #27545 #27565)
-#27567 := [rewrite]: #27566
-#27570 := [monotonicity #27567]: #27569
-#27573 := [monotonicity #27564 #27570]: #27572
-#27578 := [trans #27573 #27576]: #27577
-#29164 := [monotonicity #27578]: #29155
-#29158 := [trans #29164 #29154]: #29157
-#29167 := [quant-inst]: #29145
-#29159 := [mp #29167 #29158]: #29144
-#29748 := [unit-resolution #29159 #21444 #29747 #29742 #28031]: #27568
-#29175 := (or #27565 #27536)
-#29176 := [def-axiom]: #29175
-#29749 := [unit-resolution #29176 #29748]: #27536
-#29780 := [symm #29749]: #29779
-#29777 := (= #27762 #27535)
-#29775 := (= #27163 #27532)
-#29773 := (= #27532 #27163)
-#29771 := (= #27531 #3175)
-#27310 := (uf_116 #3175)
-#27388 := (uf_43 #24114 #27310)
-#29765 := (= #27388 #3175)
-#27429 := (= #3175 #27388)
-#27431 := (or #27309 #27429)
-#29044 := (or #25416 #27309 #27429)
-#27430 := (or #27429 #27309)
-#29045 := (or #25416 #27430)
-#28949 := (iff #29045 #29044)
-#28962 := (or #25416 #27431)
-#28965 := (iff #28962 #29044)
-#28948 := [rewrite]: #28965
-#28960 := (iff #29045 #28962)
-#27432 := (iff #27430 #27431)
-#27433 := [rewrite]: #27432
-#28963 := [monotonicity #27433]: #28960
-#28945 := [trans #28963 #28948]: #28949
-#28961 := [quant-inst]: #29045
-#28950 := [mp #28961 #28945]: #29044
-#29754 := [unit-resolution #28950 #18736]: #27431
-#29755 := [unit-resolution #29754 #29753]: #27429
-#29766 := [symm #29755]: #29765
-#29769 := (= #27531 #27388)
-#28122 := (+ #26643 #27529)
-#28146 := (+ #26356 #28122)
-#28149 := (uf_43 #24114 #28146)
-#29763 := (= #28149 #27388)
-#29757 := (= #28146 #27310)
-#29735 := (= #27310 #28146)
-#29736 := (* -1::int #28146)
-#29737 := (+ #27310 #29736)
-#29738 := (<= #29737 0::int)
-#27645 := (uf_116 #27493)
-#27649 := (* -1::int #27645)
-#29118 := (+ #27310 #27649)
-#29119 := (<= #29118 0::int)
-#29091 := (= #27310 #27645)
-#29592 := (= #27645 #27310)
-#29585 := (= #27493 #3175)
-#29612 := (= #27493 #27480)
-#29613 := [symm #29049]: #29612
-#29591 := [trans #29613 #29055]: #29585
-#29588 := [monotonicity #29591]: #29592
-#29593 := [symm #29588]: #29091
-#29604 := (not #29091)
-#29605 := (or #29604 #29119)
-#29606 := [th-lemma]: #29605
-#29607 := [unit-resolution #29606 #29593]: #29119
-#27650 := (+ #26357 #27649)
-#27651 := (+ #26356 #27650)
-#27652 := (+ uf_294 #27651)
-#29185 := (>= #27652 0::int)
-#27653 := (= #27652 0::int)
-#29089 := (or #24187 #27653)
-#27646 := (= #27490 #27645)
-#29085 := (or #24187 #27646)
-#29108 := (iff #29085 #29089)
-#29110 := (iff #29089 #29089)
-#29111 := [rewrite]: #29110
-#27654 := (iff #27646 #27653)
-#27655 := [rewrite]: #27654
-#29109 := [monotonicity #27655]: #29108
-#29112 := [trans #29109 #29111]: #29108
-#29086 := [quant-inst]: #29085
-#29107 := [mp #29086 #29112]: #29089
-#29608 := [unit-resolution #29107 #23688]: #27653
-#29595 := (not #27653)
-#29596 := (or #29595 #29185)
-#29597 := [th-lemma]: #29596
-#29598 := [unit-resolution #29597 #29608]: #29185
-#29601 := (not #27668)
-#29600 := (not #27892)
-#29599 := (not #27068)
-#29594 := (not #29185)
-#29586 := (not #29119)
-#29602 := (or #29738 #29586 #29594 #29599 #29600 #29601)
-#29603 := [th-lemma]: #29602
-#29625 := [unit-resolution #29603 #28258 #27679 #29598 #29607 #28054]: #29738
-#29739 := (>= #29737 0::int)
-#29120 := (>= #29118 0::int)
-#29626 := (or #29604 #29120)
-#29616 := [th-lemma]: #29626
-#29614 := [unit-resolution #29616 #29593]: #29120
-#29196 := (<= #27652 0::int)
-#29617 := (or #29595 #29196)
-#29618 := [th-lemma]: #29617
-#29619 := [unit-resolution #29618 #29608]: #29196
-#29627 := (not #27893)
-#29624 := (not #27073)
-#29621 := (not #29196)
-#29620 := (not #29120)
-#29623 := (or #29739 #29620 #29621 #29624 #29627 #27714)
-#29628 := [th-lemma]: #29623
-#29629 := [unit-resolution #29628 #28051 #28271 #29619 #29614 #27711]: #29739
-#29503 := (not #29739)
-#29630 := (not #29738)
-#29518 := (or #29735 #29630 #29503)
-#29532 := [th-lemma]: #29518
-#29517 := [unit-resolution #29532 #29629 #29625]: #29735
-#29263 := [symm #29517]: #29757
-#29472 := [monotonicity #29263]: #29763
-#29767 := (= #27531 #28149)
-#28104 := (uf_66 #25404 #27529 #24114)
-#28136 := (= #28104 #28149)
-#28137 := (not #28136)
-#28107 := (uf_139 #28104 #25404)
-#28108 := (= uf_9 #28107)
-#28109 := (not #28108)
-#28145 := (or #28109 #28137)
-#28249 := (not #28145)
-#29261 := (or #26114 #28249)
-#28110 := (+ #27529 #26644)
-#28111 := (uf_43 #24114 #28110)
-#28112 := (= #28104 #28111)
-#28117 := (not #28112)
-#28118 := (or #28117 #28109)
-#28121 := (not #28118)
-#29262 := (or #26114 #28121)
-#29295 := (iff #29262 #29261)
-#29335 := (iff #29261 #29261)
-#29336 := [rewrite]: #29335
-#28250 := (iff #28121 #28249)
-#28247 := (iff #28118 #28145)
-#28142 := (or #28137 #28109)
-#28156 := (iff #28142 #28145)
-#28157 := [rewrite]: #28156
-#28143 := (iff #28118 #28142)
-#28140 := (iff #28117 #28137)
-#28138 := (iff #28112 #28136)
-#28150 := (= #28111 #28149)
-#28147 := (= #28110 #28146)
-#28148 := [rewrite]: #28147
-#28151 := [monotonicity #28148]: #28150
-#28139 := [monotonicity #28151]: #28138
-#28141 := [monotonicity #28139]: #28140
-#28144 := [monotonicity #28141]: #28143
-#28248 := [trans #28144 #28157]: #28247
-#28251 := [monotonicity #28248]: #28250
-#29334 := [monotonicity #28251]: #29295
-#29337 := [trans #29334 #29336]: #29295
-#29294 := [quant-inst]: #29262
-#29338 := [mp #29294 #29337]: #29261
-#29759 := [unit-resolution #29338 #21660]: #28249
-#29340 := (or #28145 #28136)
-#29279 := [def-axiom]: #29340
-#29760 := [unit-resolution #29279 #29759]: #28136
-#29761 := (= #27531 #28104)
-#29762 := [monotonicity #27948]: #29761
-#29768 := [trans #29762 #29760]: #29767
-#29473 := [trans #29768 #29472]: #29769
-#29499 := [trans #29473 #29766]: #29771
-#29656 := [monotonicity #29499]: #29773
-#29657 := [symm #29656]: #29775
-#29180 := [monotonicity #29657]: #29777
-#29677 := [trans #29180 #29780]: #29781
-#29199 := [trans #29677 #27935]: #29783
-#29181 := [monotonicity #29199]: #29264
-#29266 := [trans #29181 #28359]: #29265
-#29460 := [monotonicity #29266]: #29267
-#29462 := [monotonicity #29460]: #29461
-#29680 := [symm #29462]: #29679
-#29682 := [monotonicity #29680]: #29681
-#29683 := [mp #14796 #29682]: #29563
-#29170 := (not #27607)
-#29696 := (iff #29170 #27761)
-#29689 := (iff #27607 #27760)
-#29693 := (iff #27760 #27607)
-#29691 := (= #27759 #27606)
-#29688 := (= #27163 #27605)
-#29686 := (= #27605 #27163)
-#29687 := [monotonicity #27692]: #29686
-#29690 := [symm #29687]: #29688
-#29692 := [monotonicity #29690]: #29691
-#29694 := [monotonicity #29692]: #29693
-#29695 := [symm #29694]: #29689
-#29697 := [monotonicity #29695]: #29696
-#29684 := [unit-resolution #27635 #22104 #14784 #29000 #29747 #29742 #27723]: #27614
-#29173 := (or #27611 #29170)
-#29169 := [def-axiom]: #29173
-#29685 := [unit-resolution #29169 #29684]: #29170
-#29698 := [mp #29685 #29697]: #27761
-#29577 := (or #27819 #27760)
-#29578 := [def-axiom]: #29577
-#29699 := [unit-resolution #29578 #29698]: #27819
-#29709 := (or #27833 #27770 #27810 #27822)
-#29792 := (not #29735)
-#29793 := (or #29792 #27772)
-#29788 := (= #2967 #27771)
-#29785 := (= #27771 #2967)
-#29756 := [hypothesis]: #29735
-#29758 := [symm #29756]: #29757
-#29764 := [monotonicity #29758]: #29763
-#29770 := [trans #29768 #29764]: #29769
-#29772 := [trans #29770 #29766]: #29771
-#29774 := [monotonicity #29772]: #29773
-#29776 := [symm #29774]: #29775
-#29778 := [monotonicity #29776]: #29777
-#29782 := [trans #29778 #29780]: #29781
-#29784 := [trans #29782 #27935]: #29783
-#29786 := [monotonicity #29784]: #29785
-#29789 := [symm #29786]: #29788
-#29790 := [trans #14799 #29789]: #27772
-#29458 := (not #27772)
-#29740 := [hypothesis]: #29458
-#29791 := [unit-resolution #29740 #29790]: false
-#29794 := [lemma #29791]: #29793
-#29702 := [unit-resolution #29794 #29517]: #27772
-#29528 := (or #27813 #29458)
-#29529 := [def-axiom]: #29528
-#29703 := [unit-resolution #29529 #29702]: #27813
-#29571 := (or #27833 #27770 #27810 #27816 #27822)
-#29572 := [def-axiom]: #29571
-#29710 := [unit-resolution #29572 #29703]: #29709
-#29711 := [unit-resolution #29710 #29699 #29683 #29188 #29637]: false
-#29712 := [lemma #29711]: #12812
-#23247 := (not #19374)
-#29440 := [hypothesis]: #23803
-#23427 := (or #23812 #23800)
-#23522 := [def-axiom]: #23427
-#29504 := [unit-resolution #23522 #29440]: #23812
-#23396 := (or #23806 #23800)
-#23538 := [def-axiom]: #23396
-#29505 := [unit-resolution #23538 #29440]: #23806
-#29542 := (or #23818 #23809)
-#23403 := (or #23906 #14046)
-#23404 := [def-axiom]: #23403
-#29536 := [unit-resolution #23404 #29231]: #23906
-#29537 := [unit-resolution #23380 #29536 #29225]: #23875
-#23447 := (or #23872 #23866)
-#23448 := [def-axiom]: #23447
-#29538 := [unit-resolution #23448 #29537]: #23866
-#27307 := (or #23818 #23809 #19008 #23869)
-#27389 := [hypothesis]: #23821
-#23428 := (or #23818 #12812)
-#23429 := [def-axiom]: #23428
-#27390 := [unit-resolution #23429 #27389]: #12812
-#23411 := (or #23818 #12806)
-#23426 := [def-axiom]: #23411
-#27391 := [unit-resolution #23426 #27389]: #12806
-#27392 := [hypothesis]: #12803
-#27387 := [hypothesis]: #23866
-#23466 := (or #23869 #19008 #19011 #23863)
-#23461 := [def-axiom]: #23466
-#27393 := [unit-resolution #23461 #27391 #27387 #27392]: #23863
-#23475 := (or #23860 #23854)
-#23470 := [def-axiom]: #23475
-#27394 := [unit-resolution #23470 #27393]: #23854
-#23468 := (or #23857 #19011 #19017 #23851)
-#23469 := [def-axiom]: #23468
-#27395 := [unit-resolution #23469 #27394 #27391 #27390]: #23851
-#27396 := [hypothesis]: #23806
-#23528 := (or #23824 #23818)
-#23515 := [def-axiom]: #23528
-#27397 := [unit-resolution #23515 #27389]: #23824
-#23521 := (or #23833 #19008 #19011 #23827)
-#23510 := [def-axiom]: #23521
-#27304 := [unit-resolution #23510 #27397 #27392 #27391]: #23833
-#23499 := (or #23836 #23830)
-#23501 := [def-axiom]: #23499
-#27305 := [unit-resolution #23501 #27304]: #23836
-#23492 := (or #23845 #23809 #23839)
-#23494 := [def-axiom]: #23492
-#27306 := [unit-resolution #23494 #27305 #27396]: #23845
-#23482 := (or #23848 #23842)
-#23483 := [def-axiom]: #23482
-#27269 := [unit-resolution #23483 #27306 #27395]: false
-#27303 := [lemma #27269]: #27307
-#29521 := [unit-resolution #27303 #29001 #29538]: #29542
-#29525 := [unit-resolution #29521 #29505]: #23818
-#29520 := (or #23821 #19017 #23815)
-#23431 := (or #23821 #19011 #19017 #23815)
-#23432 := [def-axiom]: #23431
-#29526 := [unit-resolution #23432 #29138]: #29520
-#29527 := [unit-resolution #29526 #29525 #29504 #29712]: false
-#29530 := [lemma #29527]: #23800
-#29896 := (or #23803 #23797)
-#16270 := (<= uf_272 131073::int)
-#16273 := (iff #13872 #16270)
-#16264 := (+ 131073::int #13873)
-#16267 := (>= #16264 0::int)
-#16271 := (iff #16267 #16270)
-#16272 := [rewrite]: #16271
-#16268 := (iff #13872 #16267)
-#16265 := (= #13874 #16264)
-#16266 := [monotonicity #7888]: #16265
-#16269 := [monotonicity #16266]: #16268
-#16274 := [trans #16269 #16272]: #16273
-#14787 := [not-or-elim #14776]: #13880
-#14788 := [and-elim #14787]: #13872
-#16275 := [mp #14788 #16274]: #16270
-#29232 := [hypothesis]: #19037
-#29233 := [th-lemma #29232 #29231 #16275]: false
-#29234 := [lemma #29233]: #16368
-#29894 := (or #23803 #19037 #23797)
-#29891 := (or #14243 #14088)
-#29892 := [th-lemma]: #29891
-#29893 := [unit-resolution #29892 #28992]: #14088
-#23558 := (or #23803 #19034 #19037 #23797)
-#23555 := [def-axiom]: #23558
-#29895 := [unit-resolution #23555 #29893]: #29894
-#29897 := [unit-resolution #29895 #29234]: #29896
-#29898 := [unit-resolution #29897 #29530]: #23797
-#23561 := (or #23794 #23788)
-#23565 := [def-axiom]: #23561
-#29899 := [unit-resolution #23565 #29898]: #23788
-#23271 := (>= #14169 -1::int)
-#23285 := (or #23794 #14168)
-#23286 := [def-axiom]: #23285
-#29900 := [unit-resolution #23286 #29898]: #14168
-#29901 := (or #14172 #23271)
-#29902 := [th-lemma]: #29901
-#29903 := [unit-resolution #29902 #29900]: #23271
-#29238 := (not #23271)
-#29239 := (or #14100 #29238)
-#29201 := [hypothesis]: #23271
-#29202 := [hypothesis]: #14105
-#29237 := [th-lemma #29202 #29231 #29201]: false
-#29240 := [lemma #29237]: #29239
-#29904 := [unit-resolution #29240 #29903]: #14100
-#23580 := (or #23791 #14105 #23785)
-#23566 := [def-axiom]: #23580
-#29905 := [unit-resolution #23566 #29904 #29899]: #23785
-#23575 := (or #23782 #23776)
-#23213 := [def-axiom]: #23575
-#29906 := [unit-resolution #23213 #29905]: #23776
-#29920 := (= #3068 #3209)
-#29918 := (= #3209 #3068)
-#29914 := (= #3208 #3067)
-#29912 := (= #3208 #27327)
-#29910 := (= uf_301 #26964)
-#29907 := [hypothesis]: #23809
-#23549 := (or #23806 #12826)
-#23550 := [def-axiom]: #23549
-#29908 := [unit-resolution #23550 #29907]: #12826
-#29909 := [symm #29908]: #3189
-#29911 := [trans #29909 #27438]: #29910
-#29913 := [monotonicity #29911]: #29912
-#29915 := [trans #29913 #27639]: #29914
-#29919 := [monotonicity #29915]: #29918
-#29921 := [symm #29919]: #29920
-#29922 := (= uf_300 #3068)
-#23559 := (or #23806 #12823)
-#23548 := [def-axiom]: #23559
-#29916 := [unit-resolution #23548 #29907]: #12823
-#29917 := [symm #29916]: #3187
-#29923 := [trans #29917 #29222]: #29922
-#29924 := [trans #29923 #29921]: #12862
-#28863 := (+ uf_293 #14142)
-#28865 := (>= #28863 0::int)
-#29925 := (or #12993 #28865)
-#29926 := [th-lemma]: #29925
-#29927 := [unit-resolution #29926 #29908]: #28865
-#29483 := (not #28865)
-#29930 := (or #14145 #29483)
-#29928 := (or #14145 #14404 #29483)
-#29929 := [th-lemma]: #29928
-#29931 := [unit-resolution #29929 #29223]: #29930
-#29932 := [unit-resolution #29931 #29927]: #14145
-#23374 := (or #22784 #22782 #14144)
-#23581 := [def-axiom]: #23374
-#29933 := [unit-resolution #23581 #29932 #29924]: #22784
-#23255 := (or #23770 #22783)
-#23256 := [def-axiom]: #23255
-#29934 := [unit-resolution #23256 #29933]: #23770
-#23572 := (or #23779 #23773 #22836)
-#23573 := [def-axiom]: #23572
-#29935 := [unit-resolution #23573 #29934 #29906]: #22836
-#23583 := (or #22831 #23247)
-#23243 := [def-axiom]: #23583
-#29936 := [unit-resolution #23243 #29935]: #23247
-#29307 := (+ uf_294 #19372)
-#29860 := (>= #29307 0::int)
-#29955 := (not #29860)
-#29855 := (= uf_294 ?x785!14)
-#29888 := (not #29855)
-#29858 := (= #3184 #19060)
-#29864 := (not #29858)
-#29859 := (+ #3184 #19385)
-#29861 := (>= #29859 0::int)
-#29871 := (not #29861)
-#23394 := (or #23806 #14207)
-#23395 := [def-axiom]: #23394
-#29937 := [unit-resolution #23395 #29907]: #14207
-#29541 := (+ uf_292 #14120)
-#29539 := (<= #29541 0::int)
-#29938 := (or #13002 #29539)
-#29939 := [th-lemma]: #29938
-#29940 := [unit-resolution #29939 #29916]: #29539
-#23227 := (or #22831 #23584)
-#23568 := [def-axiom]: #23227
-#29941 := [unit-resolution #23568 #29935]: #23584
-#29872 := (not #29539)
-#29873 := (or #29871 #19387 #29872 #14211)
-#29866 := [hypothesis]: #14207
-#29867 := [hypothesis]: #29539
-#29868 := [hypothesis]: #23584
-#29869 := [hypothesis]: #29861
-#29870 := [th-lemma #29869 #29868 #29867 #29866]: false
-#29874 := [lemma #29870]: #29873
-#29942 := [unit-resolution #29874 #29941 #29940 #29937]: #29871
-#29865 := (or #29864 #29861)
-#29875 := [th-lemma]: #29865
-#29943 := [unit-resolution #29875 #29942]: #29864
-#29889 := (or #29888 #29858)
-#29884 := (= #19060 #3184)
-#29882 := (= #19059 #3175)
-#29880 := (= ?x785!14 uf_294)
-#29879 := [hypothesis]: #29855
-#29881 := [symm #29879]: #29880
-#29883 := [monotonicity #29881]: #29882
-#29885 := [monotonicity #29883]: #29884
-#29886 := [symm #29885]: #29858
-#29878 := [hypothesis]: #29864
-#29887 := [unit-resolution #29878 #29886]: false
-#29890 := [lemma #29887]: #29889
-#29944 := [unit-resolution #29890 #29943]: #29888
-#29958 := (or #29855 #29955)
-#29308 := (<= #29307 0::int)
-#29319 := (+ uf_292 #19385)
-#29320 := (>= #29319 0::int)
-#29945 := (not #29320)
-#29946 := (or #29945 #19387 #29872)
-#29947 := [th-lemma]: #29946
-#29948 := [unit-resolution #29947 #29940 #29941]: #29945
-#29951 := (or #29308 #29320)
-#23582 := (or #22831 #19056)
-#23242 := [def-axiom]: #23582
-#29949 := [unit-resolution #23242 #29935]: #19056
-#23586 := (or #22831 #19055)
-#23592 := [def-axiom]: #23586
-#29950 := [unit-resolution #23592 #29935]: #19055
-#29802 := (or #23759 #22815 #22816 #29308 #29320)
-#29296 := (+ #19060 #14431)
-#29297 := (<= #29296 0::int)
-#29298 := (+ ?x785!14 #14044)
-#29299 := (>= #29298 0::int)
-#29300 := (or #22816 #29299 #29297 #22815)
-#29803 := (or #23759 #29300)
-#29810 := (iff #29803 #29802)
-#29328 := (or #22815 #22816 #29308 #29320)
-#29805 := (or #23759 #29328)
-#29808 := (iff #29805 #29802)
-#29809 := [rewrite]: #29808
-#29806 := (iff #29803 #29805)
-#29331 := (iff #29300 #29328)
-#29325 := (or #22816 #29308 #29320 #22815)
-#29329 := (iff #29325 #29328)
-#29330 := [rewrite]: #29329
-#29326 := (iff #29300 #29325)
-#29323 := (iff #29297 #29320)
-#29313 := (+ #14431 #19060)
-#29316 := (<= #29313 0::int)
-#29321 := (iff #29316 #29320)
-#29322 := [rewrite]: #29321
-#29317 := (iff #29297 #29316)
-#29314 := (= #29296 #29313)
-#29315 := [rewrite]: #29314
-#29318 := [monotonicity #29315]: #29317
-#29324 := [trans #29318 #29322]: #29323
-#29311 := (iff #29299 #29308)
-#29301 := (+ #14044 ?x785!14)
-#29304 := (>= #29301 0::int)
-#29309 := (iff #29304 #29308)
-#29310 := [rewrite]: #29309
-#29305 := (iff #29299 #29304)
-#29302 := (= #29298 #29301)
-#29303 := [rewrite]: #29302
-#29306 := [monotonicity #29303]: #29305
-#29312 := [trans #29306 #29310]: #29311
-#29327 := [monotonicity #29312 #29324]: #29326
-#29332 := [trans #29327 #29330]: #29331
-#29807 := [monotonicity #29332]: #29806
-#29811 := [trans #29807 #29809]: #29810
-#29804 := [quant-inst]: #29803
-#29812 := [mp #29804 #29811]: #29802
-#29952 := [unit-resolution #29812 #29221 #29950 #29949]: #29951
-#29953 := [unit-resolution #29952 #29948]: #29308
-#29954 := (not #29308)
-#29956 := (or #29855 #29954 #29955)
-#29957 := [th-lemma]: #29956
-#29959 := [unit-resolution #29957 #29953]: #29958
-#29960 := [unit-resolution #29959 #29944]: #29955
-#29961 := [th-lemma #29903 #29960 #29936]: false
-#29962 := [lemma #29961]: #23806
-#29633 := [unit-resolution #29521 #29962]: #23818
-#29615 := [unit-resolution #29526 #29633 #29712]: #23815
-#23534 := (or #23812 #13075)
-#23416 := [def-axiom]: #23534
-#29713 := [unit-resolution #23416 #29615]: #13075
-#29142 := (or #13081 #23536)
-#29708 := [th-lemma]: #29142
-#29714 := [unit-resolution #29708 #29713]: #23536
-#29715 := [hypothesis]: #14144
-#29716 := [th-lemma #29715 #29714 #29231]: false
-#29717 := [lemma #29716]: #14145
-#29990 := (or #22784 #14144)
-#29985 := (= #3184 #3209)
-#29982 := (= #3209 #3184)
-#29979 := (= #3208 #3175)
-#29978 := [symm #29713]: #3247
-#29980 := [monotonicity #29978]: #29979
-#29983 := [monotonicity #29980]: #29982
-#29986 := [symm #29983]: #29985
-#29987 := (= uf_300 #3184)
-#23533 := (or #23812 #13070)
-#23531 := [def-axiom]: #23533
-#29977 := [unit-resolution #23531 #29615]: #13070
-#29984 := [symm #29977]: #3240
-#23373 := (or #23812 #3246)
-#23375 := [def-axiom]: #23373
-#29981 := [unit-resolution #23375 #29615]: #3246
-#29988 := [trans #29981 #29984]: #29987
-#29989 := [trans #29988 #29986]: #12862
-#29991 := [unit-resolution #23581 #29989]: #29990
-#29992 := [unit-resolution #29991 #29717]: #22784
-#29993 := [unit-resolution #23256 #29992]: #23770
-#29994 := [unit-resolution #23573 #29906]: #23776
-#29995 := [unit-resolution #29994 #29993]: #22836
-#30004 := [unit-resolution #23568 #29995]: #23584
-#30026 := (or #29945 #19387)
-#29570 := (+ #3184 #14120)
-#29587 := (<= #29570 0::int)
-#29569 := (= #3184 uf_300)
-#30005 := (= uf_304 uf_300)
-#30006 := [symm #29981]: #30005
-#30007 := [trans #29977 #30006]: #29569
-#30008 := (not #29569)
-#30009 := (or #30008 #29587)
-#30010 := [th-lemma]: #30009
-#30011 := [unit-resolution #30010 #30007]: #29587
-#30016 := (or #19017 #23851)
-#30012 := (or #19011 #23863)
-#30013 := [unit-resolution #23461 #29001 #29538]: #30012
-#30014 := [unit-resolution #30013 #29138]: #23863
-#30015 := [unit-resolution #23470 #30014]: #23854
-#30017 := [unit-resolution #23469 #29138 #30015]: #30016
-#30018 := [unit-resolution #30017 #29712]: #23851
-#30019 := [unit-resolution #23483 #30018]: #23842
-#30020 := [unit-resolution #23494 #29962 #30019]: #23839
-#23514 := (or #23836 #14211)
-#23498 := [def-axiom]: #23514
-#30021 := [unit-resolution #23498 #30020]: #14211
-#30022 := (not #29587)
-#30023 := (or #29539 #14207 #30022)
-#30024 := [th-lemma]: #30023
-#30025 := [unit-resolution #30024 #30021 #30011]: #29539
-#30027 := [unit-resolution #29947 #30025]: #30026
-#30028 := [unit-resolution #30027 #30004]: #29945
-#30029 := [unit-resolution #23242 #29995]: #19056
-#30030 := [unit-resolution #23592 #29995]: #19055
-#30031 := [unit-resolution #29812 #29221 #30030 #30029 #30028]: #29308
-#29996 := [unit-resolution #23243 #29995]: #23247
-#29997 := [hypothesis]: #29955
-#29998 := [th-lemma #29903 #29997 #29996]: false
-#29999 := [lemma #29998]: #29860
-#30032 := [unit-resolution #29957 #29999 #30031]: #29855
-#30033 := [unit-resolution #29890 #30032]: #29858
-#30034 := [unit-resolution #29875 #30033]: #29861
-[th-lemma #30011 #30034 #30004]: false
-unsat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Boogie/Examples/cert/VCC_maximum	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,687 @@
+(benchmark Isabelle
+:extrasorts ( T2 T5 T8 T3 T15 T16 T4 T1 T6 T17 T11 T18 T7 T9 T13 T14 T12 T10 T19)
+:extrafuns (
+  (uf_9 T2)
+  (uf_48 T5 T3 T2)
+  (uf_26 T5)
+  (uf_126 T5 T15 T5)
+  (uf_66 T5 Int T3 T5)
+  (uf_43 T3 Int T5)
+  (uf_116 T5 Int)
+  (uf_15 T5 T3)
+  (uf_81 Int Int Int)
+  (uf_80 Int Int Int)
+  (uf_46 T4 T4 T5 T3 T2)
+  (uf_121 T5)
+  (uf_53 T4 T5 T6)
+  (uf_163 T5 T6)
+  (uf_72 T3 Int Int Int)
+  (uf_124 T3 Int T3)
+  (uf_25 T4 T5 T5)
+  (uf_27 T4 T5 T2)
+  (uf_255 T3)
+  (uf_254 T3)
+  (uf_94 T3)
+  (uf_90 T3)
+  (uf_87 T3)
+  (uf_83 T3)
+  (uf_7 T3)
+  (uf_91 T3)
+  (uf_4 T3)
+  (uf_84 T3)
+  (uf_70 T3 Int Int Int)
+  (uf_69 Int Int Int)
+  (uf_73 T3 Int Int)
+  (uf_101 T3 Int Int Int)
+  (uf_100 Int Int Int)
+  (uf_71 T3 Int Int Int)
+  (uf_24 T4 T5 T2)
+  (uf_10 T4 T5 T6)
+  (uf_128 T4 T5 T6)
+  (uf_20 T4 T9)
+  (uf_138 T3 Int)
+  (uf_5 T3)
+  (uf_291 T1)
+  (uf_79 Int Int)
+  (uf_207 T4 T4 T5 T5 T2)
+  (uf_259 T3 T3 T3)
+  (uf_61 T4 T5 T2)
+  (uf_169 T4 T4 T5 T5 T4)
+  (uf_59 T4 T13)
+  (uf_258 T3)
+  (uf_240 T3)
+  (uf_284 T16)
+  (uf_95 Int)
+  (uf_92 Int)
+  (uf_88 Int)
+  (uf_85 Int)
+  (uf_78 Int)
+  (uf_77 Int)
+  (uf_76 Int)
+  (uf_75 Int)
+  (uf_253 Int)
+  (uf_96 Int)
+  (uf_93 Int)
+  (uf_89 Int)
+  (uf_86 Int)
+  (uf_6 T3 T3)
+  (uf_224 T17 T17 T2)
+  (uf_173 T4 T5 T5 T11)
+  (uf_153 T6 T6 T2)
+  (uf_13 T5 T6 T2)
+  (uf_136 T14 T5)
+  (uf_37 T3)
+  (uf_279 T1)
+  (uf_281 T1)
+  (uf_287 T1)
+  (uf_122 T2 T2)
+  (uf_14 T3 T8)
+  (uf_114 T4 T5 Int)
+  (uf_113 T4 T5 Int)
+  (uf_112 T4 T5 Int)
+  (uf_111 T4 T5 Int)
+  (uf_110 T4 T5 Int)
+  (uf_109 T4 T5 Int)
+  (uf_108 T4 T5 Int)
+  (uf_107 T4 T5 Int)
+  (uf_38 T4 T5 Int)
+  (uf_145 T5 T6 T2)
+  (uf_147 T5 T6 T2)
+  (uf_41 T4 T12)
+  (uf_170 T4 T5 Int)
+  (uf_82 T3 Int Int)
+  (uf_232 T4 T5 T18)
+  (uf_188 T4 T5 T5 T5 T5)
+  (uf_65 T4 T5 T3 Int T2)
+  (uf_42 T5)
+  (uf_230 T17)
+  (uf_179 T4 T4 T5 T3 T2)
+  (uf_215 T11 T5)
+  (uf_172 T12 T5 T11 T12)
+  (uf_251 T13 T5 T14 T13)
+  (uf_266 T3 T3)
+  (uf_233 T18 T4)
+  (uf_257 T3)
+  (uf_99 Int Int Int Int Int Int)
+  (uf_55 T4 T2)
+  (uf_60 Int T3 T5)
+  (uf_246 Int T5)
+  (uf_220 T5 T15 Int)
+  (uf_196 T4 T5 T5 T2)
+  (uf_264 T3 T3)
+  (uf_142 T3 Int)
+  (uf_222 T17 T15 Int)
+  (uf_40 T12 T5 T11)
+  (uf_58 T13 T5 T14)
+  (uf_152 T6)
+  (uf_157 T6 T6 T6)
+  (uf_178 T9 T5 Int T9)
+  (uf_174 T4 T5 T5 T4)
+  (uf_106 T3 Int Int Int)
+  (uf_103 T3 Int Int Int)
+  (uf_102 T3 Int Int Int)
+  (uf_104 T3 Int Int Int)
+  (uf_105 T3 Int Int Int)
+  (uf_241 T15 Int T15)
+  (uf_50 T5 T5 T2)
+  (uf_245 Int T15)
+  (uf_51 T4 T2)
+  (uf_195 T4 T5 T5 T2)
+  (uf_262 T8)
+  (uf_161 T5 Int T5)
+  (uf_265 T3 T3)
+  (uf_47 T4 T5 T2)
+  (uf_229 T17 T15 Int T17)
+  (uf_19 T9 T5 Int)
+  (uf_154 T6 T6 T2)
+  (uf_175 T4 T5 T5 T11)
+  (uf_176 T4 T5 Int T4)
+  (uf_192 T7 T6)
+  (uf_219 T3)
+  (uf_268 T3)
+  (uf_289 T1)
+  (uf_132 T5 T3 Int T6)
+  (uf_139 T5 T5 T2)
+  (uf_276 T19 Int)
+  (uf_130 T5 T6)
+  (uf_44 T4 T2)
+  (uf_261 T8)
+  (uf_248 T3 T3 Int)
+  (uf_249 T3 T3 Int)
+  (uf_181 T4 T4 T2)
+  (uf_117 T5 Int)
+  (uf_119 T5 Int)
+  (uf_118 T5 Int)
+  (uf_120 T5 Int)
+  (uf_160 T5 Int T5)
+  (uf_235 T18)
+  (uf_49 T4 T5 T2)
+  (uf_267 T3)
+  (uf_143 T3 Int)
+  (uf_54 T5 T5 T2)
+  (uf_144 T3 T3)
+  (uf_237 T15 Int)
+  (uf_74 T3 Int T2)
+  (uf_125 T5 T5 Int)
+  (uf_28 Int T5)
+  (uf_141 T3 T2)
+  (uf_260 T3 T2)
+  (uf_23 T3 T2)
+  (uf_159 T5 T5 T5)
+  (uf_29 T5 Int)
+  (uf_201 T4 T5 T3 T5)
+  (uf_12 T4 T5 T7)
+  (uf_131 T6 T6 T2)
+  (uf_149 T6)
+  (uf_39 T11 Int)
+  (uf_217 T11 Int)
+  (uf_67 T4 T5 T2)
+  (uf_275 T1)
+  (uf_134 T5 T3 Int T6)
+  (uf_189 T5 T7)
+  (uf_140 T5 T3 T5)
+  (uf_208 T3 T2)
+  (uf_221 Int Int T2)
+  (uf_151 T5 T6)
+  (uf_162 T4 T5 T6)
+  (uf_234 T18 Int)
+  (uf_256 T3)
+  (uf_286 T1)
+  (uf_288 T1)
+  (uf_295 T1)
+  (uf_290 T1)
+  (uf_305 T1)
+  (uf_243 T15 T15)
+  (uf_242 T15 Int)
+  (uf_45 T4 T5 T2)
+  (uf_203 T4 T2)
+  (uf_148 T5 T2)
+  (uf_283 Int T5 T2)
+  (uf_57 T3 T2)
+  (uf_263 T8)
+  (uf_16 T8)
+  (uf_156 T6 T6 T6)
+  (uf_303 T1)
+  (uf_306 T1)
+  (uf_177 T4 T4 T2)
+  (uf_183 T10 T5 Int)
+  (uf_62 Int Int)
+  (uf_63 Int Int)
+  (uf_200 T4 T5 T5 T16 T2)
+  (uf_34 Int T6)
+  (uf_225 Int T17)
+  (uf_56 T3 T2)
+  (uf_35 T6 Int)
+  (uf_231 T17 T15 Int Int Int Int T17)
+  (uf_226 T17 Int)
+  (uf_150 T6 Int)
+  (uf_18 T5 T2)
+  (uf_202 T1 T4 T2)
+  (uf_198 T4 T5 T5 T16 T2)
+  (uf_32 Int T7)
+  (uf_185 T3 T15 T15 T2)
+  (uf_211 T4 T5 T2)
+  (uf_228 T3 T2)
+  (uf_214 T3 T15)
+  (uf_155 T6 T6 T6)
+  (uf_206 T4 T4 T5 T3 T2)
+  (uf_135 T14 T2)
+  (uf_33 T7 Int)
+  (uf_236 T5 T15 T5)
+  (uf_171 T4 Int)
+  (uf_133 T5 T6 T6 Int)
+  (uf_186 T5 T5 T2)
+  (uf_247 T3 T3 Int Int T2)
+  (uf_227 T3 T15 T3 T2)
+  (uf_127 T4 T5 T6)
+  (uf_22 T3 T2)
+  (uf_184 T4 T5 T10)
+  (uf_97 Int Int Int Int Int)
+  (uf_8 T4 T4 T5 T6 T2)
+  (uf_11 T7 T5 Int)
+  (uf_238 T15 T3)
+  (uf_210 T4 T5 T2)
+  (uf_180 T3 T15 T2)
+  (uf_252 T3)
+  (uf_64 Int Int T5)
+  (uf_98 Int Int Int Int Int)
+  (uf_277 Int)
+  (uf_164 T4 T2)
+  (uf_21 T4 T4 T6 T2)
+  (uf_115 T5 T5 Int)
+  (uf_167 T5)
+  (uf_30 Int T10)
+  (uf_168 Int)
+  (uf_17 T4 T4 T6 T2)
+  (uf_31 T10 Int)
+  (uf_239 T5 T15 Int)
+  (uf_166 T3)
+  (uf_191 T4 T2)
+  (uf_129 T5 T3 Int T6)
+  (uf_123 T4 T4 T5 T3 T2)
+  (uf_223 T15 T15)
+  (uf_158 T5 T6)
+  (uf_137 T4 T5 T3 Int T2 T2)
+  (uf_204 T4 T4 T5 T3 T2)
+  (uf_187 T15 Int T2)
+  (uf_2 T1)
+  (uf_190 T15 T2)
+  (uf_194 T15 Int T3 T2)
+  (uf_273 T4)
+  (uf_270 Int)
+  (uf_294 Int)
+  (uf_302 Int)
+  (uf_297 Int)
+  (uf_269 Int)
+  (uf_274 Int)
+  (uf_272 Int)
+  (uf_285 Int)
+  (uf_292 Int)
+  (uf_304 Int)
+  (uf_300 Int)
+  (uf_296 Int)
+  (uf_299 Int)
+  (uf_271 Int)
+  (uf_282 Int)
+  (uf_293 Int)
+  (uf_301 Int)
+  (uf_298 Int)
+ )
+:extrapreds (
+  (up_199 T4 T5 T16)
+  (up_146 T5 T6)
+  (up_213 T14)
+  (up_209 T4 T5 T3)
+  (up_250 T3 T3)
+  (up_218 T11)
+  (up_36 T3)
+  (up_1 Int T1)
+  (up_212 T11)
+  (up_3 Int T3)
+  (up_182 Int)
+  (up_244 T15)
+  (up_216)
+  (up_193 T2)
+  (up_280 T4 T1 T1 Int T3)
+  (up_52 T6)
+  (up_68 T14)
+  (up_278 T4 T1 T1 T5 T3)
+  (up_197 T3)
+  (up_165 T4)
+  (up_205 T4 T4 T5 T3)
+ )
+:assumption (up_1 1 uf_2)
+:assumption (up_3 1 uf_4)
+:assumption (= uf_5 (uf_6 uf_7))
+:assumption (forall (?x1 T4) (?x2 T4) (?x3 T5) (?x4 T6) (iff (= (uf_8 ?x1 ?x2 ?x3 ?x4) uf_9) (and (= (uf_10 ?x1 ?x3) (uf_10 ?x2 ?x3)) (forall (?x5 T5) (implies (and (not (= (uf_13 ?x5 ?x4) uf_9)) (= (uf_14 (uf_15 ?x5)) uf_16)) (= (uf_11 (uf_12 ?x1 ?x3) ?x5) (uf_11 (uf_12 ?x2 ?x3) ?x5))) :pat { (uf_11 (uf_12 ?x2 ?x3) ?x5) }))) :pat { (uf_8 ?x1 ?x2 ?x3 ?x4) })
+:assumption (forall (?x6 T4) (?x7 T4) (?x8 T6) (implies (forall (?x9 T5) (implies (and (not (= (uf_14 (uf_15 ?x9)) uf_16)) (= (uf_13 ?x9 ?x8) uf_9)) (or (= (uf_8 ?x6 ?x7 ?x9 ?x8) uf_9) (= (uf_19 (uf_20 ?x6) ?x9) (uf_19 (uf_20 ?x7) ?x9)))) :pat { (uf_18 ?x9) }) (= (uf_17 ?x6 ?x7 ?x8) uf_9)) :pat { (uf_17 ?x6 ?x7 ?x8) })
+:assumption (forall (?x10 T4) (?x11 T4) (?x12 T6) (implies (forall (?x13 T5) (implies (or (= (uf_22 (uf_15 ?x13)) uf_9) (= (uf_23 (uf_15 ?x13)) uf_9)) (implies (and (not (or (and (= (uf_24 ?x10 ?x13) uf_9) (= (uf_14 (uf_15 ?x13)) uf_16)) (not (= (uf_25 ?x10 ?x13) uf_26)))) (= (uf_27 ?x10 ?x13) uf_9)) (or (= (uf_13 ?x13 ?x12) uf_9) (= (uf_19 (uf_20 ?x10) ?x13) (uf_19 (uf_20 ?x11) ?x13))))) :pat { (uf_18 ?x13) }) (= (uf_21 ?x10 ?x11 ?x12) uf_9)) :pat { (uf_21 ?x10 ?x11 ?x12) })
+:assumption (forall (?x14 T5) (= (uf_28 (uf_29 ?x14)) ?x14))
+:assumption (forall (?x15 T10) (= (uf_30 (uf_31 ?x15)) ?x15))
+:assumption (forall (?x16 T7) (= (uf_32 (uf_33 ?x16)) ?x16))
+:assumption (forall (?x17 T6) (= (uf_34 (uf_35 ?x17)) ?x17))
+:assumption (up_36 uf_37)
+:assumption (forall (?x18 T4) (?x19 T5) (= (uf_38 ?x18 ?x19) (uf_39 (uf_40 (uf_41 ?x18) ?x19))) :pat { (uf_38 ?x18 ?x19) })
+:assumption (= uf_42 (uf_43 uf_37 0))
+:assumption (forall (?x20 T4) (?x21 T5) (implies (and (= (uf_45 ?x20 ?x21) uf_9) (= (uf_44 ?x20) uf_9)) (= (uf_46 ?x20 ?x20 ?x21 (uf_15 ?x21)) uf_9)) :pat { (uf_44 ?x20) (uf_45 ?x20 ?x21) })
+:assumption (forall (?x22 T4) (?x23 T5) (iff (= (uf_45 ?x22 ?x23) uf_9) (= (uf_24 ?x22 ?x23) uf_9)) :pat { (uf_45 ?x22 ?x23) })
+:assumption (forall (?x24 T4) (?x25 T5) (iff (= (uf_47 ?x24 ?x25) uf_9) (and (or (= (uf_38 ?x24 ?x25) 0) (not (up_36 (uf_15 ?x25)))) (and (= (uf_22 (uf_15 ?x25)) uf_9) (and (not (= (uf_14 (uf_15 ?x25)) uf_16)) (and (= (uf_27 ?x24 ?x25) uf_9) (and (= (uf_48 ?x25 (uf_15 ?x25)) uf_9) (and (= (uf_25 ?x24 ?x25) uf_26) (= (uf_24 ?x24 ?x25) uf_9)))))))) :pat { (uf_47 ?x24 ?x25) })
+:assumption (forall (?x26 T4) (?x27 T5) (?x28 Int) (implies (and (= (uf_50 ?x27 (uf_43 uf_37 ?x28)) uf_9) (= (uf_49 ?x26 ?x27) uf_9)) (= (uf_49 ?x26 (uf_43 uf_37 ?x28)) uf_9)) :pat { (uf_49 ?x26 ?x27) (uf_50 ?x27 (uf_43 uf_37 ?x28)) })
+:assumption (forall (?x29 T4) (?x30 T5) (?x31 T5) (implies (and (= (uf_50 ?x30 ?x31) uf_9) (= (uf_49 ?x29 ?x30) uf_9)) (= (uf_46 ?x29 ?x29 ?x31 (uf_15 ?x31)) uf_9)) :pat { (uf_49 ?x29 ?x30) (uf_50 ?x30 ?x31) })
+:assumption (forall (?x32 T4) (?x33 T5) (?x34 T5) (implies (= (uf_51 ?x32) uf_9) (implies (and (= (uf_24 ?x32 ?x33) uf_9) (= (uf_50 ?x33 ?x34) uf_9)) (and (< 0 (uf_38 ?x32 ?x34)) (and (= (uf_24 ?x32 ?x34) uf_9) (up_52 (uf_53 ?x32 ?x34)))))) :pat { (uf_24 ?x32 ?x33) (uf_50 ?x33 ?x34) })
+:assumption (forall (?x35 T4) (?x36 T5) (?x37 T5) (implies (and (= (uf_54 ?x36 ?x37) uf_9) (= (uf_49 ?x35 ?x36) uf_9)) (= (uf_49 ?x35 ?x37) uf_9)) :pat { (uf_49 ?x35 ?x36) (uf_54 ?x36 ?x37) })
+:assumption (forall (?x38 T5) (?x39 T5) (implies (and (forall (?x40 T4) (implies (= (uf_49 ?x40 ?x38) uf_9) (= (uf_24 ?x40 ?x39) uf_9))) (and (= (uf_48 ?x39 uf_37) uf_9) (= (uf_48 ?x38 uf_37) uf_9))) (= (uf_54 ?x38 ?x39) uf_9)) :pat { (uf_54 ?x38 ?x39) })
+:assumption (forall (?x41 T4) (?x42 T5) (implies (= (uf_49 ?x41 ?x42) uf_9) (and (= (uf_44 ?x41) uf_9) (= (uf_24 ?x41 ?x42) uf_9))) :pat { (uf_49 ?x41 ?x42) })
+:assumption (forall (?x43 T4) (?x44 T5) (implies (and (= (uf_24 ?x43 ?x44) uf_9) (= (uf_55 ?x43) uf_9)) (= (uf_49 ?x43 ?x44) uf_9)) :pat { (uf_55 ?x43) (uf_49 ?x43 ?x44) })
+:assumption (forall (?x45 T3) (implies (= (uf_56 ?x45) uf_9) (= (uf_23 ?x45) uf_9)) :pat { (uf_56 ?x45) })
+:assumption (forall (?x46 T3) (implies (= (uf_57 ?x46) uf_9) (= (uf_23 ?x46) uf_9)) :pat { (uf_57 ?x46) })
+:assumption (forall (?x47 T4) (?x48 Int) (?x49 T3) (implies (and (= (uf_51 ?x47) uf_9) (= (uf_56 ?x49) uf_9)) (= (uf_61 ?x47 (uf_60 ?x48 ?x49)) uf_9)) :pat { (uf_58 (uf_59 ?x47) (uf_60 ?x48 ?x49)) } :pat { (uf_40 (uf_41 ?x47) (uf_60 ?x48 ?x49)) })
+:assumption (forall (?x50 Int) (= (uf_62 (uf_63 ?x50)) ?x50))
+:assumption (forall (?x51 Int) (?x52 T3) (= (uf_60 ?x51 ?x52) (uf_43 ?x52 (uf_63 ?x51))) :pat { (uf_60 ?x51 ?x52) })
+:assumption (forall (?x53 Int) (?x54 Int) (?x55 T4) (implies (= (uf_51 ?x55) uf_9) (and (forall (?x56 Int) (implies (and (< ?x56 ?x54) (<= 0 ?x56)) (and (= (uf_67 ?x55 (uf_66 (uf_64 ?x53 ?x54) ?x56 uf_7)) uf_9) (and (= (uf_48 (uf_66 (uf_64 ?x53 ?x54) ?x56 uf_7) uf_7) uf_9) (up_68 (uf_58 (uf_59 ?x55) (uf_66 (uf_64 ?x53 ?x54) ?x56 uf_7)))))) :pat { (uf_40 (uf_41 ?x55) (uf_66 (uf_64 ?x53 ?x54) ?x56 uf_7)) } :pat { (uf_58 (uf_59 ?x55) (uf_66 (uf_64 ?x53 ?x54) ?x56 uf_7)) }) (= (uf_27 ?x55 (uf_64 ?x53 ?x54)) uf_9))) :pat { (uf_27 ?x55 (uf_64 ?x53 ?x54)) } :pat { (uf_65 ?x55 (uf_64 ?x53 ?x54) uf_7 ?x54) })
+:assumption (forall (?x57 Int) (?x58 Int) (= (uf_48 (uf_64 ?x57 ?x58) uf_7) uf_9) :pat { (uf_64 ?x57 ?x58) })
+:assumption (forall (?x59 Int) (?x60 Int) (= (uf_69 ?x59 ?x60) (+ ?x59 ?x60)) :pat { (uf_69 ?x59 ?x60) })
+:assumption (forall (?x61 T3) (?x62 Int) (?x63 Int) (= (uf_70 ?x61 ?x62 ?x63) (uf_70 ?x61 ?x63 ?x62)) :pat { (uf_70 ?x61 ?x62 ?x63) })
+:assumption (forall (?x64 T3) (?x65 Int) (?x66 Int) (= (uf_71 ?x64 ?x65 ?x66) (uf_71 ?x64 ?x66 ?x65)) :pat { (uf_71 ?x64 ?x65 ?x66) })
+:assumption (forall (?x67 T3) (?x68 Int) (?x69 Int) (= (uf_72 ?x67 ?x68 ?x69) (uf_72 ?x67 ?x69 ?x68)) :pat { (uf_72 ?x67 ?x68 ?x69) })
+:assumption (forall (?x70 T3) (?x71 Int) (implies (= (uf_74 ?x70 ?x71) uf_9) (= (uf_73 ?x70 (uf_73 ?x70 ?x71)) ?x71)) :pat { (uf_73 ?x70 (uf_73 ?x70 ?x71)) })
+:assumption (forall (?x72 T3) (?x73 Int) (= (uf_71 ?x72 ?x73 (uf_73 ?x72 0)) (uf_73 ?x72 ?x73)) :pat { (uf_71 ?x72 ?x73 (uf_73 ?x72 0)) })
+:assumption (forall (?x74 T3) (?x75 Int) (= (uf_71 ?x74 ?x75 ?x75) 0) :pat { (uf_71 ?x74 ?x75 ?x75) })
+:assumption (forall (?x76 T3) (?x77 Int) (implies (= (uf_74 ?x76 ?x77) uf_9) (= (uf_71 ?x76 ?x77 0) ?x77)) :pat { (uf_71 ?x76 ?x77 0) })
+:assumption (forall (?x78 T3) (?x79 Int) (?x80 Int) (= (uf_70 ?x78 (uf_72 ?x78 ?x79 ?x80) ?x79) ?x79) :pat { (uf_70 ?x78 (uf_72 ?x78 ?x79 ?x80) ?x79) })
+:assumption (forall (?x81 T3) (?x82 Int) (?x83 Int) (= (uf_70 ?x81 (uf_72 ?x81 ?x82 ?x83) ?x83) ?x83) :pat { (uf_70 ?x81 (uf_72 ?x81 ?x82 ?x83) ?x83) })
+:assumption (forall (?x84 T3) (?x85 Int) (implies (= (uf_74 ?x84 ?x85) uf_9) (= (uf_70 ?x84 ?x85 ?x85) ?x85)) :pat { (uf_70 ?x84 ?x85 ?x85) })
+:assumption (forall (?x86 T3) (?x87 Int) (implies (= (uf_74 ?x86 ?x87) uf_9) (= (uf_70 ?x86 ?x87 (uf_73 ?x86 0)) ?x87)) :pat { (uf_70 ?x86 ?x87 (uf_73 ?x86 0)) })
+:assumption (forall (?x88 T3) (?x89 Int) (= (uf_70 ?x88 ?x89 0) 0) :pat { (uf_70 ?x88 ?x89 0) })
+:assumption (forall (?x90 T3) (?x91 Int) (implies (= (uf_74 ?x90 ?x91) uf_9) (= (uf_72 ?x90 ?x91 ?x91) ?x91)) :pat { (uf_72 ?x90 ?x91 ?x91) })
+:assumption (forall (?x92 T3) (?x93 Int) (= (uf_72 ?x92 ?x93 (uf_73 ?x92 0)) (uf_73 ?x92 0)) :pat { (uf_72 ?x92 ?x93 (uf_73 ?x92 0)) })
+:assumption (forall (?x94 T3) (?x95 Int) (implies (= (uf_74 ?x94 ?x95) uf_9) (= (uf_72 ?x94 ?x95 0) ?x95)) :pat { (uf_72 ?x94 ?x95 0) })
+:assumption (forall (?x96 T3) (?x97 Int) (= (uf_70 ?x96 ?x97 (uf_73 ?x96 ?x97)) 0) :pat { (uf_70 ?x96 ?x97 (uf_73 ?x96 ?x97)) })
+:assumption (forall (?x98 T3) (?x99 Int) (= (uf_72 ?x98 ?x99 (uf_73 ?x98 ?x99)) (uf_73 ?x98 0)) :pat { (uf_72 ?x98 ?x99 (uf_73 ?x98 ?x99)) })
+:assumption (forall (?x100 T3) (?x101 Int) (= (uf_74 ?x100 (uf_73 ?x100 ?x101)) uf_9) :pat { (uf_73 ?x100 ?x101) })
+:assumption (forall (?x102 T3) (?x103 Int) (?x104 Int) (implies (and (<= ?x104 uf_75) (and (<= 0 ?x104) (and (<= ?x103 uf_75) (<= 0 ?x103)))) (and (<= (uf_71 ?x102 ?x103 ?x104) uf_75) (<= 0 (uf_71 ?x102 ?x103 ?x104)))) :pat { (uf_71 ?x102 ?x103 ?x104) })
+:assumption (forall (?x105 T3) (?x106 Int) (?x107 Int) (implies (and (<= ?x107 uf_76) (and (<= 0 ?x107) (and (<= ?x106 uf_76) (<= 0 ?x106)))) (and (<= (uf_71 ?x105 ?x106 ?x107) uf_76) (<= 0 (uf_71 ?x105 ?x106 ?x107)))) :pat { (uf_71 ?x105 ?x106 ?x107) })
+:assumption (forall (?x108 T3) (?x109 Int) (?x110 Int) (implies (and (<= ?x110 uf_77) (and (<= 0 ?x110) (and (<= ?x109 uf_77) (<= 0 ?x109)))) (and (<= (uf_71 ?x108 ?x109 ?x110) uf_77) (<= 0 (uf_71 ?x108 ?x109 ?x110)))) :pat { (uf_71 ?x108 ?x109 ?x110) })
+:assumption (forall (?x111 T3) (?x112 Int) (?x113 Int) (implies (and (<= ?x113 uf_78) (and (<= 0 ?x113) (and (<= ?x112 uf_78) (<= 0 ?x112)))) (and (<= (uf_71 ?x111 ?x112 ?x113) uf_78) (<= 0 (uf_71 ?x111 ?x112 ?x113)))) :pat { (uf_71 ?x111 ?x112 ?x113) })
+:assumption (forall (?x114 T3) (?x115 Int) (?x116 Int) (implies (and (<= ?x116 uf_75) (and (<= 0 ?x116) (and (<= ?x115 uf_75) (<= 0 ?x115)))) (and (<= (uf_70 ?x114 ?x115 ?x116) uf_75) (<= 0 (uf_70 ?x114 ?x115 ?x116)))) :pat { (uf_70 ?x114 ?x115 ?x116) })
+:assumption (forall (?x117 T3) (?x118 Int) (?x119 Int) (implies (and (<= ?x119 uf_76) (and (<= 0 ?x119) (and (<= ?x118 uf_76) (<= 0 ?x118)))) (and (<= (uf_70 ?x117 ?x118 ?x119) uf_76) (<= 0 (uf_70 ?x117 ?x118 ?x119)))) :pat { (uf_70 ?x117 ?x118 ?x119) })
+:assumption (forall (?x120 T3) (?x121 Int) (?x122 Int) (implies (and (<= ?x122 uf_77) (and (<= 0 ?x122) (and (<= ?x121 uf_77) (<= 0 ?x121)))) (and (<= (uf_70 ?x120 ?x121 ?x122) uf_77) (<= 0 (uf_70 ?x120 ?x121 ?x122)))) :pat { (uf_70 ?x120 ?x121 ?x122) })
+:assumption (forall (?x123 T3) (?x124 Int) (?x125 Int) (implies (and (<= ?x125 uf_78) (and (<= 0 ?x125) (and (<= ?x124 uf_78) (<= 0 ?x124)))) (and (<= (uf_70 ?x123 ?x124 ?x125) uf_78) (<= 0 (uf_70 ?x123 ?x124 ?x125)))) :pat { (uf_70 ?x123 ?x124 ?x125) })
+:assumption (forall (?x126 T3) (?x127 Int) (?x128 Int) (implies (and (<= ?x128 uf_75) (and (<= 0 ?x128) (and (<= ?x127 uf_75) (<= 0 ?x127)))) (and (<= (uf_72 ?x126 ?x127 ?x128) uf_75) (<= 0 (uf_72 ?x126 ?x127 ?x128)))) :pat { (uf_72 ?x126 ?x127 ?x128) })
+:assumption (forall (?x129 T3) (?x130 Int) (?x131 Int) (implies (and (<= ?x131 uf_76) (and (<= 0 ?x131) (and (<= ?x130 uf_76) (<= 0 ?x130)))) (and (<= (uf_72 ?x129 ?x130 ?x131) uf_76) (<= 0 (uf_72 ?x129 ?x130 ?x131)))) :pat { (uf_72 ?x129 ?x130 ?x131) })
+:assumption (forall (?x132 T3) (?x133 Int) (?x134 Int) (implies (and (<= ?x134 uf_77) (and (<= 0 ?x134) (and (<= ?x133 uf_77) (<= 0 ?x133)))) (and (<= (uf_72 ?x132 ?x133 ?x134) uf_77) (<= 0 (uf_72 ?x132 ?x133 ?x134)))) :pat { (uf_72 ?x132 ?x133 ?x134) })
+:assumption (forall (?x135 T3) (?x136 Int) (?x137 Int) (implies (and (<= ?x137 uf_78) (and (<= 0 ?x137) (and (<= ?x136 uf_78) (<= 0 ?x136)))) (and (<= (uf_72 ?x135 ?x136 ?x137) uf_78) (<= 0 (uf_72 ?x135 ?x136 ?x137)))) :pat { (uf_72 ?x135 ?x136 ?x137) })
+:assumption (forall (?x138 T3) (?x139 Int) (?x140 Int) (?x141 Int) (implies (and (= (uf_74 ?x138 ?x140) uf_9) (and (= (uf_74 ?x138 ?x139) uf_9) (and (< ?x140 (uf_79 ?x141)) (and (< ?x139 (uf_79 ?x141)) (and (< ?x141 64) (and (<= 0 ?x141) (and (<= 0 ?x140) (<= 0 ?x139)))))))) (< (uf_72 ?x138 ?x139 ?x140) (uf_79 ?x141))) :pat { (uf_72 ?x138 ?x139 ?x140) (uf_79 ?x141) })
+:assumption (forall (?x142 T3) (?x143 Int) (?x144 Int) (implies (and (= (uf_74 ?x142 ?x144) uf_9) (and (= (uf_74 ?x142 ?x143) uf_9) (and (<= 0 ?x144) (<= 0 ?x143)))) (and (<= ?x144 (uf_72 ?x142 ?x143 ?x144)) (<= ?x143 (uf_72 ?x142 ?x143 ?x144)))) :pat { (uf_72 ?x142 ?x143 ?x144) })
+:assumption (forall (?x145 T3) (?x146 Int) (?x147 Int) (implies (and (= (uf_74 ?x145 ?x147) uf_9) (and (= (uf_74 ?x145 ?x146) uf_9) (and (<= 0 ?x147) (<= 0 ?x146)))) (and (<= (uf_72 ?x145 ?x146 ?x147) (+ ?x146 ?x147)) (<= 0 (uf_72 ?x145 ?x146 ?x147)))) :pat { (uf_72 ?x145 ?x146 ?x147) })
+:assumption (forall (?x148 T3) (?x149 Int) (?x150 Int) (implies (and (= (uf_74 ?x148 ?x150) uf_9) (and (= (uf_74 ?x148 ?x149) uf_9) (and (<= 0 ?x150) (<= 0 ?x149)))) (and (<= (uf_70 ?x148 ?x149 ?x150) ?x150) (<= (uf_70 ?x148 ?x149 ?x150) ?x149))) :pat { (uf_70 ?x148 ?x149 ?x150) })
+:assumption (forall (?x151 T3) (?x152 Int) (?x153 Int) (implies (and (= (uf_74 ?x151 ?x152) uf_9) (<= 0 ?x152)) (and (<= (uf_70 ?x151 ?x152 ?x153) ?x152) (<= 0 (uf_70 ?x151 ?x152 ?x153)))) :pat { (uf_70 ?x151 ?x152 ?x153) })
+:assumption (forall (?x154 Int) (?x155 Int) (implies (and (< ?x155 0) (<= ?x154 0)) (and (<= (uf_80 ?x154 ?x155) 0) (< ?x155 (uf_80 ?x154 ?x155)))) :pat { (uf_80 ?x154 ?x155) })
+:assumption (forall (?x156 Int) (?x157 Int) (implies (and (< 0 ?x157) (<= ?x156 0)) (and (<= (uf_80 ?x156 ?x157) 0) (< (+ 0 ?x157) (uf_80 ?x156 ?x157)))) :pat { (uf_80 ?x156 ?x157) })
+:assumption (forall (?x158 Int) (?x159 Int) (implies (and (< ?x159 0) (<= 0 ?x158)) (and (< (uf_80 ?x158 ?x159) (+ 0 ?x159)) (<= 0 (uf_80 ?x158 ?x159)))) :pat { (uf_80 ?x158 ?x159) })
+:assumption (forall (?x160 Int) (?x161 Int) (implies (and (< 0 ?x161) (<= 0 ?x160)) (and (< (uf_80 ?x160 ?x161) ?x161) (<= 0 (uf_80 ?x160 ?x161)))) :pat { (uf_80 ?x160 ?x161) })
+:assumption (forall (?x162 Int) (?x163 Int) (= (uf_80 ?x162 ?x163) (+ ?x162 (+ (uf_81 ?x162 ?x163) ?x163))) :pat { (uf_80 ?x162 ?x163) } :pat { (uf_81 ?x162 ?x163) })
+:assumption (forall (?x164 Int) (implies (not (= ?x164 0)) (= (uf_81 ?x164 ?x164) 1)) :pat { (uf_81 ?x164 ?x164) })
+:assumption (forall (?x165 Int) (?x166 Int) (implies (and (< 0 ?x166) (< 0 ?x165)) (and (<= (+ (uf_81 ?x165 ?x166) ?x166) ?x165) (< (+ ?x165 ?x166) (+ (uf_81 ?x165 ?x166) ?x166)))) :pat { (uf_81 ?x165 ?x166) })
+:assumption (forall (?x167 Int) (?x168 Int) (implies (and (< 0 ?x168) (<= 0 ?x167)) (<= (uf_81 ?x167 ?x168) ?x167)) :pat { (uf_81 ?x167 ?x168) })
+:assumption (forall (?x169 T3) (?x170 Int) (?x171 Int) (?x172 Int) (implies (and (<= 0 ?x170) (and (= (uf_74 ?x169 (+ (uf_79 ?x171) 1)) uf_9) (= (uf_74 ?x169 ?x170) uf_9))) (= (uf_80 ?x170 (uf_79 ?x171)) (uf_70 ?x169 ?x170 (+ (uf_79 ?x171) 1)))) :pat { (uf_80 ?x170 (uf_79 ?x171)) (uf_70 ?x169 ?x170 ?x172) })
+:assumption (forall (?x173 Int) (implies (and (<= ?x173 uf_85) (<= uf_86 ?x173)) (= (uf_82 uf_83 (uf_82 uf_84 ?x173)) ?x173)) :pat { (uf_82 uf_83 (uf_82 uf_84 ?x173)) })
+:assumption (forall (?x174 Int) (implies (and (<= ?x174 uf_88) (<= uf_89 ?x174)) (= (uf_82 uf_87 (uf_82 uf_4 ?x174)) ?x174)) :pat { (uf_82 uf_87 (uf_82 uf_4 ?x174)) })
+:assumption (forall (?x175 Int) (implies (and (<= ?x175 uf_92) (<= uf_93 ?x175)) (= (uf_82 uf_90 (uf_82 uf_91 ?x175)) ?x175)) :pat { (uf_82 uf_90 (uf_82 uf_91 ?x175)) })
+:assumption (forall (?x176 Int) (implies (and (<= ?x176 uf_95) (<= uf_96 ?x176)) (= (uf_82 uf_94 (uf_82 uf_7 ?x176)) ?x176)) :pat { (uf_82 uf_94 (uf_82 uf_7 ?x176)) })
+:assumption (forall (?x177 Int) (implies (and (<= ?x177 uf_75) (<= 0 ?x177)) (= (uf_82 uf_84 (uf_82 uf_83 ?x177)) ?x177)) :pat { (uf_82 uf_84 (uf_82 uf_83 ?x177)) })
+:assumption (forall (?x178 Int) (implies (and (<= ?x178 uf_76) (<= 0 ?x178)) (= (uf_82 uf_4 (uf_82 uf_87 ?x178)) ?x178)) :pat { (uf_82 uf_4 (uf_82 uf_87 ?x178)) })
+:assumption (forall (?x179 Int) (implies (and (<= ?x179 uf_77) (<= 0 ?x179)) (= (uf_82 uf_91 (uf_82 uf_90 ?x179)) ?x179)) :pat { (uf_82 uf_91 (uf_82 uf_90 ?x179)) })
+:assumption (forall (?x180 Int) (implies (and (<= ?x180 uf_78) (<= 0 ?x180)) (= (uf_82 uf_7 (uf_82 uf_94 ?x180)) ?x180)) :pat { (uf_82 uf_7 (uf_82 uf_94 ?x180)) })
+:assumption (forall (?x181 T3) (?x182 Int) (= (uf_74 ?x181 (uf_82 ?x181 ?x182)) uf_9) :pat { (uf_82 ?x181 ?x182) })
+:assumption (forall (?x183 T3) (?x184 Int) (implies (= (uf_74 ?x183 ?x184) uf_9) (= (uf_82 ?x183 ?x184) ?x184)) :pat { (uf_82 ?x183 ?x184) })
+:assumption (forall (?x185 Int) (iff (= (uf_74 uf_84 ?x185) uf_9) (and (<= ?x185 uf_75) (<= 0 ?x185))) :pat { (uf_74 uf_84 ?x185) })
+:assumption (forall (?x186 Int) (iff (= (uf_74 uf_4 ?x186) uf_9) (and (<= ?x186 uf_76) (<= 0 ?x186))) :pat { (uf_74 uf_4 ?x186) })
+:assumption (forall (?x187 Int) (iff (= (uf_74 uf_91 ?x187) uf_9) (and (<= ?x187 uf_77) (<= 0 ?x187))) :pat { (uf_74 uf_91 ?x187) })
+:assumption (forall (?x188 Int) (iff (= (uf_74 uf_7 ?x188) uf_9) (and (<= ?x188 uf_78) (<= 0 ?x188))) :pat { (uf_74 uf_7 ?x188) })
+:assumption (forall (?x189 Int) (iff (= (uf_74 uf_83 ?x189) uf_9) (and (<= ?x189 uf_85) (<= uf_86 ?x189))) :pat { (uf_74 uf_83 ?x189) })
+:assumption (forall (?x190 Int) (iff (= (uf_74 uf_87 ?x190) uf_9) (and (<= ?x190 uf_88) (<= uf_89 ?x190))) :pat { (uf_74 uf_87 ?x190) })
+:assumption (forall (?x191 Int) (iff (= (uf_74 uf_90 ?x191) uf_9) (and (<= ?x191 uf_92) (<= uf_93 ?x191))) :pat { (uf_74 uf_90 ?x191) })
+:assumption (forall (?x192 Int) (iff (= (uf_74 uf_94 ?x192) uf_9) (and (<= ?x192 uf_95) (<= uf_96 ?x192))) :pat { (uf_74 uf_94 ?x192) })
+:assumption (forall (?x193 Int) (?x194 Int) (?x195 Int) (?x196 Int) (implies (and (<= (uf_79 (+ (+ ?x194 ?x193) 1)) (uf_80 (uf_81 ?x195 (uf_79 ?x193)) (uf_79 (+ ?x194 ?x193)))) (and (<= 0 ?x195) (and (<= ?x194 ?x196) (and (< ?x193 ?x194) (<= 0 ?x193))))) (= (uf_97 ?x195 ?x196 ?x193 ?x194) (+ (uf_79 (+ (+ ?x194 ?x193) 1)) (uf_80 (uf_81 ?x195 (uf_79 ?x193)) (uf_79 (+ ?x194 ?x193)))))) :pat { (uf_97 ?x195 ?x196 ?x193 ?x194) })
+:assumption (forall (?x197 Int) (?x198 Int) (?x199 Int) (?x200 Int) (implies (and (< (uf_80 (uf_81 ?x199 (uf_79 ?x197)) (uf_79 (+ ?x198 ?x197))) (uf_79 (+ (+ ?x198 ?x197) 1))) (and (<= 0 ?x199) (and (<= ?x198 ?x200) (and (< ?x197 ?x198) (<= 0 ?x197))))) (= (uf_97 ?x199 ?x200 ?x197 ?x198) (uf_80 (uf_81 ?x199 (uf_79 ?x197)) (uf_79 (+ ?x198 ?x197))))) :pat { (uf_97 ?x199 ?x200 ?x197 ?x198) })
+:assumption (forall (?x201 Int) (?x202 Int) (?x203 Int) (?x204 Int) (implies (and (<= 0 ?x203) (and (<= ?x202 ?x204) (and (< ?x201 ?x202) (<= 0 ?x201)))) (= (uf_98 ?x203 ?x204 ?x201 ?x202) (uf_80 (uf_81 ?x203 (uf_79 ?x201)) (uf_79 (+ ?x202 ?x201))))) :pat { (uf_98 ?x203 ?x204 ?x201 ?x202) })
+:assumption (forall (?x205 Int) (?x206 Int) (?x207 Int) (implies (and (<= ?x206 ?x207) (and (< ?x205 ?x206) (<= 0 ?x205))) (= (uf_98 0 ?x207 ?x205 ?x206) 0)) :pat { (uf_98 0 ?x207 ?x205 ?x206) })
+:assumption (forall (?x208 Int) (?x209 Int) (?x210 Int) (implies (and (<= ?x209 ?x210) (and (< ?x208 ?x209) (<= 0 ?x208))) (= (uf_97 0 ?x210 ?x208 ?x209) 0)) :pat { (uf_97 0 ?x210 ?x208 ?x209) })
+:assumption (forall (?x211 Int) (?x212 Int) (?x213 Int) (?x214 Int) (?x215 Int) (?x216 Int) (?x217 Int) (implies (and (<= ?x212 ?x215) (and (< ?x211 ?x212) (<= 0 ?x211))) (implies (and (<= ?x217 ?x215) (and (< ?x216 ?x217) (<= 0 ?x216))) (implies (or (<= ?x212 ?x216) (<= ?x217 ?x211)) (= (uf_98 (uf_99 ?x214 ?x215 ?x211 ?x212 ?x213) ?x215 ?x216 ?x217) (uf_98 ?x214 ?x215 ?x216 ?x217))))) :pat { (uf_98 (uf_99 ?x214 ?x215 ?x211 ?x212 ?x213) ?x215 ?x216 ?x217) })
+:assumption (forall (?x218 Int) (?x219 Int) (?x220 Int) (?x221 Int) (?x222 Int) (?x223 Int) (?x224 Int) (implies (and (<= ?x219 ?x222) (and (< ?x218 ?x219) (<= 0 ?x218))) (implies (and (<= ?x224 ?x222) (and (< ?x223 ?x224) (<= 0 ?x223))) (implies (or (<= ?x219 ?x223) (<= ?x224 ?x218)) (= (uf_97 (uf_99 ?x221 ?x222 ?x218 ?x219 ?x220) ?x222 ?x223 ?x224) (uf_97 ?x221 ?x222 ?x223 ?x224))))) :pat { (uf_97 (uf_99 ?x221 ?x222 ?x218 ?x219 ?x220) ?x222 ?x223 ?x224) })
+:assumption (forall (?x225 Int) (?x226 Int) (?x227 Int) (?x228 Int) (implies (and (<= ?x226 ?x228) (and (< ?x225 ?x226) (<= 0 ?x225))) (and (<= (uf_98 ?x227 ?x228 ?x225 ?x226) (+ (uf_79 (+ ?x226 ?x225)) 1)) (<= 0 (uf_98 ?x227 ?x228 ?x225 ?x226)))) :pat { (uf_98 ?x227 ?x228 ?x225 ?x226) })
+:assumption (forall (?x229 Int) (?x230 Int) (?x231 Int) (?x232 Int) (implies (and (<= ?x230 ?x232) (and (< ?x229 ?x230) (<= 0 ?x229))) (and (<= (uf_97 ?x231 ?x232 ?x229 ?x230) (+ (uf_79 (+ (+ ?x230 ?x229) 1)) 1)) (<= (+ 0 (uf_79 (+ (+ ?x230 ?x229) 1))) (uf_97 ?x231 ?x232 ?x229 ?x230)))) :pat { (uf_97 ?x231 ?x232 ?x229 ?x230) })
+:assumption (forall (?x233 Int) (?x234 Int) (?x235 Int) (?x236 Int) (?x237 Int) (implies (and (<= ?x234 ?x237) (and (< ?x233 ?x234) (<= 0 ?x233))) (implies (and (< ?x235 (uf_79 (+ ?x234 ?x233))) (<= 0 ?x235)) (= (uf_98 (uf_99 ?x236 ?x237 ?x233 ?x234 ?x235) ?x237 ?x233 ?x234) ?x235))) :pat { (uf_98 (uf_99 ?x236 ?x237 ?x233 ?x234 ?x235) ?x237 ?x233 ?x234) })
+:assumption (forall (?x238 Int) (?x239 Int) (?x240 Int) (?x241 Int) (?x242 Int) (implies (and (<= ?x239 ?x242) (and (< ?x238 ?x239) (<= 0 ?x238))) (implies (and (< ?x240 (uf_79 (+ (+ ?x239 ?x238) 1))) (<= (+ 0 (uf_79 (+ (+ ?x239 ?x238) 1))) ?x240)) (= (uf_97 (uf_99 ?x241 ?x242 ?x238 ?x239 ?x240) ?x242 ?x238 ?x239) ?x240))) :pat { (uf_97 (uf_99 ?x241 ?x242 ?x238 ?x239 ?x240) ?x242 ?x238 ?x239) })
+:assumption (forall (?x243 Int) (?x244 Int) (?x245 Int) (implies (and (<= ?x244 ?x245) (and (< ?x243 ?x244) (<= 0 ?x243))) (= (uf_99 0 ?x245 ?x243 ?x244 0) 0)) :pat { (uf_99 0 ?x245 ?x243 ?x244 0) })
+:assumption (forall (?x246 Int) (?x247 Int) (?x248 Int) (?x249 Int) (?x250 Int) (implies (and (<= ?x248 ?x249) (and (< ?x247 ?x248) (<= 0 ?x247))) (implies (and (< ?x250 (uf_79 (+ ?x248 ?x247))) (<= 0 ?x250)) (and (< (uf_99 ?x246 ?x249 ?x247 ?x248 ?x250) (uf_79 ?x249)) (<= 0 (uf_99 ?x246 ?x249 ?x247 ?x248 ?x250))))) :pat { (uf_99 ?x246 ?x249 ?x247 ?x248 ?x250) })
+:assumption (forall (?x251 Int) (?x252 Int) (= (uf_100 ?x251 ?x252) (uf_81 ?x251 (uf_79 ?x252))) :pat { (uf_100 ?x251 ?x252) })
+:assumption (forall (?x253 T3) (?x254 Int) (?x255 Int) (= (uf_101 ?x253 ?x254 ?x255) (uf_82 ?x253 (+ ?x254 (uf_79 ?x255)))) :pat { (uf_101 ?x253 ?x254 ?x255) })
+:assumption (forall (?x256 T3) (?x257 Int) (?x258 Int) (= (uf_102 ?x256 ?x257 ?x258) (uf_82 ?x256 (uf_80 ?x257 ?x258))) :pat { (uf_102 ?x256 ?x257 ?x258) })
+:assumption (forall (?x259 T3) (?x260 Int) (?x261 Int) (= (uf_103 ?x259 ?x260 ?x261) (uf_82 ?x259 (uf_81 ?x260 ?x261))) :pat { (uf_103 ?x259 ?x260 ?x261) })
+:assumption (forall (?x262 T3) (?x263 Int) (?x264 Int) (= (uf_104 ?x262 ?x263 ?x264) (uf_82 ?x262 (+ ?x263 ?x264))) :pat { (uf_104 ?x262 ?x263 ?x264) })
+:assumption (forall (?x265 T3) (?x266 Int) (?x267 Int) (= (uf_105 ?x265 ?x266 ?x267) (uf_82 ?x265 (+ ?x266 ?x267))) :pat { (uf_105 ?x265 ?x266 ?x267) })
+:assumption (forall (?x268 T3) (?x269 Int) (?x270 Int) (= (uf_106 ?x268 ?x269 ?x270) (uf_82 ?x268 (+ ?x269 ?x270))) :pat { (uf_106 ?x268 ?x269 ?x270) })
+:assumption (and (= (uf_79 63) 9223372036854775808) (and (= (uf_79 62) 4611686018427387904) (and (= (uf_79 61) 2305843009213693952) (and (= (uf_79 60) 1152921504606846976) (and (= (uf_79 59) 576460752303423488) (and (= (uf_79 58) 288230376151711744) (and (= (uf_79 57) 144115188075855872) (and (= (uf_79 56) 72057594037927936) (and (= (uf_79 55) 36028797018963968) (and (= (uf_79 54) 18014398509481984) (and (= (uf_79 53) 9007199254740992) (and (= (uf_79 52) 4503599627370496) (and (= (uf_79 51) 2251799813685248) (and (= (uf_79 50) 1125899906842624) (and (= (uf_79 49) 562949953421312) (and (= (uf_79 48) 281474976710656) (and (= (uf_79 47) 140737488355328) (and (= (uf_79 46) 70368744177664) (and (= (uf_79 45) 35184372088832) (and (= (uf_79 44) 17592186044416) (and (= (uf_79 43) 8796093022208) (and (= (uf_79 42) 4398046511104) (and (= (uf_79 41) 2199023255552) (and (= (uf_79 40) 1099511627776) (and (= (uf_79 39) 549755813888) (and (= (uf_79 38) 274877906944) (and (= (uf_79 37) 137438953472) (and (= (uf_79 36) 68719476736) (and (= (uf_79 35) 34359738368) (and (= (uf_79 34) 17179869184) (and (= (uf_79 33) 8589934592) (and (= (uf_79 32) 4294967296) (and (= (uf_79 31) 2147483648) (and (= (uf_79 30) 1073741824) (and (= (uf_79 29) 536870912) (and (= (uf_79 28) 268435456) (and (= (uf_79 27) 134217728) (and (= (uf_79 26) 67108864) (and (= (uf_79 25) 33554432) (and (= (uf_79 24) 16777216) (and (= (uf_79 23) 8388608) (and (= (uf_79 22) 4194304) (and (= (uf_79 21) 2097152) (and (= (uf_79 20) 1048576) (and (= (uf_79 19) 524288) (and (= (uf_79 18) 262144) (and (= (uf_79 17) 131072) (and (= (uf_79 16) 65536) (and (= (uf_79 15) 32768) (and (= (uf_79 14) 16384) (and (= (uf_79 13) 8192) (and (= (uf_79 12) 4096) (and (= (uf_79 11) 2048) (and (= (uf_79 10) 1024) (and (= (uf_79 9) 512) (and (= (uf_79 8) 256) (and (= (uf_79 7) 128) (and (= (uf_79 6) 64) (and (= (uf_79 5) 32) (and (= (uf_79 4) 16) (and (= (uf_79 3) 8) (and (= (uf_79 2) 4) (and (= (uf_79 1) 2) (= (uf_79 0) 1))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+:assumption (forall (?x271 T4) (?x272 T5) (implies (= (uf_51 ?x271) uf_9) (and (<= (uf_107 ?x271 ?x272) uf_75) (<= 0 (uf_107 ?x271 ?x272)))) :pat { (uf_107 ?x271 ?x272) })
+:assumption (forall (?x273 T4) (?x274 T5) (implies (= (uf_51 ?x273) uf_9) (and (<= (uf_108 ?x273 ?x274) uf_76) (<= 0 (uf_108 ?x273 ?x274)))) :pat { (uf_108 ?x273 ?x274) })
+:assumption (forall (?x275 T4) (?x276 T5) (implies (= (uf_51 ?x275) uf_9) (and (<= (uf_109 ?x275 ?x276) uf_77) (<= 0 (uf_109 ?x275 ?x276)))) :pat { (uf_109 ?x275 ?x276) })
+:assumption (forall (?x277 T4) (?x278 T5) (implies (= (uf_51 ?x277) uf_9) (and (<= (uf_110 ?x277 ?x278) uf_78) (<= 0 (uf_110 ?x277 ?x278)))) :pat { (uf_110 ?x277 ?x278) })
+:assumption (forall (?x279 T4) (?x280 T5) (implies (= (uf_51 ?x279) uf_9) (and (<= (uf_111 ?x279 ?x280) uf_85) (<= uf_86 (uf_111 ?x279 ?x280)))) :pat { (uf_111 ?x279 ?x280) })
+:assumption (forall (?x281 T4) (?x282 T5) (implies (= (uf_51 ?x281) uf_9) (and (<= (uf_112 ?x281 ?x282) uf_88) (<= uf_89 (uf_112 ?x281 ?x282)))) :pat { (uf_112 ?x281 ?x282) })
+:assumption (forall (?x283 T4) (?x284 T5) (implies (= (uf_51 ?x283) uf_9) (and (<= (uf_113 ?x283 ?x284) uf_92) (<= uf_93 (uf_113 ?x283 ?x284)))) :pat { (uf_113 ?x283 ?x284) })
+:assumption (forall (?x285 T4) (?x286 T5) (implies (= (uf_51 ?x285) uf_9) (and (<= (uf_114 ?x285 ?x286) uf_95) (<= uf_96 (uf_114 ?x285 ?x286)))) :pat { (uf_114 ?x285 ?x286) })
+:assumption (forall (?x287 T5) (?x288 T5) (= (uf_115 ?x287 ?x288) (+ (uf_116 ?x287) (uf_116 ?x288))) :pat { (uf_115 ?x287 ?x288) })
+:assumption (forall (?x289 T5) (implies (and (<= (uf_116 ?x289) uf_88) (<= uf_89 (uf_116 ?x289))) (= (uf_117 ?x289) (uf_116 ?x289))) :pat { (uf_117 ?x289) })
+:assumption (forall (?x290 T5) (implies (and (<= (uf_116 ?x290) uf_76) (<= 0 (uf_116 ?x290))) (= (uf_118 ?x290) (uf_116 ?x290))) :pat { (uf_118 ?x290) })
+:assumption (forall (?x291 T5) (implies (and (<= (uf_116 ?x291) uf_85) (<= uf_86 (uf_116 ?x291))) (= (uf_119 ?x291) (uf_116 ?x291))) :pat { (uf_119 ?x291) })
+:assumption (forall (?x292 T5) (implies (and (<= (uf_116 ?x292) uf_75) (<= 0 (uf_116 ?x292))) (= (uf_120 ?x292) (uf_116 ?x292))) :pat { (uf_120 ?x292) })
+:assumption (= (uf_117 uf_121) 0)
+:assumption (= (uf_118 uf_121) 0)
+:assumption (= (uf_119 uf_121) 0)
+:assumption (= (uf_120 uf_121) 0)
+:assumption (forall (?x293 T4) (?x294 T5) (= (uf_107 ?x293 ?x294) (uf_19 (uf_20 ?x293) ?x294)) :pat { (uf_107 ?x293 ?x294) })
+:assumption (forall (?x295 T4) (?x296 T5) (= (uf_108 ?x295 ?x296) (uf_19 (uf_20 ?x295) ?x296)) :pat { (uf_108 ?x295 ?x296) })
+:assumption (forall (?x297 T4) (?x298 T5) (= (uf_109 ?x297 ?x298) (uf_19 (uf_20 ?x297) ?x298)) :pat { (uf_109 ?x297 ?x298) })
+:assumption (forall (?x299 T4) (?x300 T5) (= (uf_110 ?x299 ?x300) (uf_19 (uf_20 ?x299) ?x300)) :pat { (uf_110 ?x299 ?x300) })
+:assumption (forall (?x301 T4) (?x302 T5) (= (uf_111 ?x301 ?x302) (uf_19 (uf_20 ?x301) ?x302)) :pat { (uf_111 ?x301 ?x302) })
+:assumption (forall (?x303 T4) (?x304 T5) (= (uf_112 ?x303 ?x304) (uf_19 (uf_20 ?x303) ?x304)) :pat { (uf_112 ?x303 ?x304) })
+:assumption (forall (?x305 T4) (?x306 T5) (= (uf_113 ?x305 ?x306) (uf_19 (uf_20 ?x305) ?x306)) :pat { (uf_113 ?x305 ?x306) })
+:assumption (forall (?x307 T4) (?x308 T5) (= (uf_114 ?x307 ?x308) (uf_19 (uf_20 ?x307) ?x308)) :pat { (uf_114 ?x307 ?x308) })
+:assumption (= uf_75 (+ (+ (+ (+ 65536 65536) 65536) 65536) 1))
+:assumption (= uf_76 (+ (+ 65536 65536) 1))
+:assumption (= uf_77 65535)
+:assumption (= uf_78 255)
+:assumption (= uf_85 (+ (+ (+ (+ 65536 65536) 65536) 32768) 1))
+:assumption (= uf_86 (+ 0 (+ (+ (+ 65536 65536) 65536) 32768)))
+:assumption (= uf_88 (+ (+ 65536 32768) 1))
+:assumption (= uf_89 (+ 0 (+ 65536 32768)))
+:assumption (= uf_92 32767)
+:assumption (= uf_93 (+ 0 32768))
+:assumption (= uf_95 127)
+:assumption (= uf_96 (+ 0 128))
+:assumption (forall (?x309 T2) (iff (= (uf_122 ?x309) uf_9) (= ?x309 uf_9)) :pat { (uf_122 ?x309) })
+:assumption (forall (?x310 T4) (?x311 T4) (?x312 T5) (?x313 T3) (?x314 Int) (implies (= (uf_23 ?x313) uf_9) (implies (= (uf_123 ?x310 ?x311 ?x312 (uf_124 ?x313 ?x314)) uf_9) (forall (?x315 Int) (implies (and (< ?x315 ?x314) (<= 0 ?x315)) (= (uf_19 (uf_20 ?x310) (uf_66 (uf_43 ?x313 (uf_116 ?x312)) ?x315 ?x313)) (uf_19 (uf_20 ?x311) (uf_66 (uf_43 ?x313 (uf_116 ?x312)) ?x315 ?x313)))) :pat { (uf_19 (uf_20 ?x311) (uf_66 (uf_43 ?x313 (uf_116 ?x312)) ?x315 ?x313)) }))) :pat { (uf_123 ?x310 ?x311 ?x312 (uf_124 ?x313 ?x314)) (uf_23 ?x313) })
+:assumption (forall (?x316 T5) (?x317 Int) (?x318 T15) (= (uf_125 (uf_126 (uf_66 ?x316 ?x317 (uf_15 ?x316)) ?x318) ?x316) ?x317) :pat { (uf_125 (uf_126 (uf_66 ?x316 ?x317 (uf_15 ?x316)) ?x318) ?x316) })
+:assumption (forall (?x319 T5) (?x320 Int) (= (uf_125 (uf_66 ?x319 ?x320 (uf_15 ?x319)) ?x319) ?x320) :pat { (uf_66 ?x319 ?x320 (uf_15 ?x319)) })
+:assumption (forall (?x321 T5) (?x322 T4) (?x323 T5) (iff (= (uf_13 ?x321 (uf_127 ?x322 ?x323)) uf_9) (and (= (uf_13 ?x321 (uf_128 ?x322 ?x323)) uf_9) (not (= (uf_116 ?x323) (uf_116 uf_121))))) :pat { (uf_13 ?x321 (uf_127 ?x322 ?x323)) })
+:assumption (forall (?x324 T5) (?x325 Int) (?x326 T3) (?x327 Int) (iff (= (uf_13 ?x324 (uf_129 (uf_43 ?x326 ?x325) ?x326 ?x327)) uf_9) (and (= (uf_13 ?x324 (uf_130 (uf_66 (uf_43 ?x326 ?x325) (uf_125 ?x324 (uf_43 ?x326 ?x325)) ?x326))) uf_9) (and (<= (uf_125 ?x324 (uf_43 ?x326 ?x325)) (+ ?x327 1)) (and (<= 0 (uf_125 ?x324 (uf_43 ?x326 ?x325))) (not (= ?x325 0)))))) :pat { (uf_13 ?x324 (uf_129 (uf_43 ?x326 ?x325) ?x326 ?x327)) })
+:assumption (forall (?x328 T5) (?x329 T3) (?x330 Int) (?x331 Int) (?x332 T6) (implies (and (< ?x331 ?x330) (<= 0 ?x331)) (= (uf_133 (uf_66 ?x328 ?x331 ?x329) ?x332 (uf_132 ?x328 ?x329 ?x330)) 2)) :pat { (uf_66 ?x328 ?x331 ?x329) (uf_131 ?x332 (uf_132 ?x328 ?x329 ?x330)) })
+:assumption (forall (?x333 T5) (?x334 T3) (?x335 Int) (?x336 Int) (?x337 T6) (implies (and (< ?x336 ?x335) (<= 0 ?x336)) (= (uf_133 (uf_66 ?x333 ?x336 ?x334) (uf_132 ?x333 ?x334 ?x335) ?x337) 1)) :pat { (uf_66 ?x333 ?x336 ?x334) (uf_131 (uf_132 ?x333 ?x334 ?x335) ?x337) })
+:assumption (forall (?x338 T5) (?x339 Int) (?x340 T3) (?x341 Int) (iff (= (uf_13 ?x338 (uf_132 (uf_43 ?x340 ?x339) ?x340 ?x341)) uf_9) (and (= (uf_13 ?x338 (uf_130 (uf_66 (uf_43 ?x340 ?x339) (uf_125 ?x338 (uf_43 ?x340 ?x339)) ?x340))) uf_9) (and (<= (uf_125 ?x338 (uf_43 ?x340 ?x339)) (+ ?x341 1)) (<= 0 (uf_125 ?x338 (uf_43 ?x340 ?x339)))))) :pat { (uf_13 ?x338 (uf_132 (uf_43 ?x340 ?x339) ?x340 ?x341)) })
+:assumption (forall (?x342 T5) (?x343 T3) (?x344 Int) (?x345 T5) (iff (= (uf_13 ?x345 (uf_134 ?x342 ?x343 ?x344)) uf_9) (and (= ?x345 (uf_66 ?x342 (uf_125 ?x345 ?x342) ?x343)) (and (<= (uf_125 ?x345 ?x342) (+ ?x344 1)) (<= 0 (uf_125 ?x345 ?x342))))) :pat { (uf_13 ?x345 (uf_134 ?x342 ?x343 ?x344)) })
+:assumption (forall (?x346 T4) (?x347 Int) (?x348 T3) (?x349 Int) (?x350 Int) (implies (= (uf_27 ?x346 (uf_43 (uf_124 ?x348 ?x349) ?x347)) uf_9) (implies (and (< ?x350 ?x349) (<= 0 ?x350)) (and (= (uf_27 ?x346 (uf_66 (uf_43 (uf_124 ?x348 ?x349) ?x347) ?x350 ?x348)) uf_9) (and (up_68 (uf_58 (uf_59 ?x346) (uf_66 (uf_43 (uf_124 ?x348 ?x349) ?x347) ?x350 ?x348))) (and (not (= (uf_135 (uf_58 (uf_59 ?x346) (uf_66 (uf_43 (uf_124 ?x348 ?x349) ?x347) ?x350 ?x348))) uf_9)) (= (uf_136 (uf_58 (uf_59 ?x346) (uf_66 (uf_43 (uf_124 ?x348 ?x349) ?x347) ?x350 ?x348))) (uf_43 (uf_124 ?x348 ?x349) ?x347))))))) :pat { (uf_40 (uf_41 ?x346) (uf_66 (uf_43 ?x348 ?x347) ?x350 ?x348)) (uf_43 (uf_124 ?x348 ?x349) ?x347) } :pat { (uf_58 (uf_59 ?x346) (uf_66 (uf_43 ?x348 ?x347) ?x350 ?x348)) (uf_43 (uf_124 ?x348 ?x349) ?x347) })
+:assumption (forall (?x351 T4) (?x352 T5) (?x353 Int) (?x354 T3) (?x355 Int) (iff (= (uf_13 ?x352 (uf_128 ?x351 (uf_43 (uf_124 ?x354 ?x355) ?x353))) uf_9) (or (and (= (uf_13 ?x352 (uf_128 ?x351 (uf_66 (uf_43 ?x354 ?x353) (uf_125 ?x352 (uf_43 ?x354 ?x353)) ?x354))) uf_9) (and (<= (uf_125 ?x352 (uf_43 ?x354 ?x353)) (+ ?x355 1)) (<= 0 (uf_125 ?x352 (uf_43 ?x354 ?x353))))) (= ?x352 (uf_43 (uf_124 ?x354 ?x355) ?x353)))) :pat { (uf_13 ?x352 (uf_128 ?x351 (uf_43 (uf_124 ?x354 ?x355) ?x353))) })
+:assumption (forall (?x356 T5) (?x357 Int) (?x358 T3) (?x359 Int) (iff (= (uf_13 ?x356 (uf_130 (uf_43 (uf_124 ?x358 ?x359) ?x357))) uf_9) (or (and (= (uf_13 ?x356 (uf_130 (uf_66 (uf_43 ?x358 ?x357) (uf_125 ?x356 (uf_43 ?x358 ?x357)) ?x358))) uf_9) (and (<= (uf_125 ?x356 (uf_43 ?x358 ?x357)) (+ ?x359 1)) (<= 0 (uf_125 ?x356 (uf_43 ?x358 ?x357))))) (= ?x356 (uf_43 (uf_124 ?x358 ?x359) ?x357)))) :pat { (uf_13 ?x356 (uf_130 (uf_43 (uf_124 ?x358 ?x359) ?x357))) })
+:assumption (forall (?x360 T4) (?x361 T5) (?x362 T3) (?x363 Int) (iff (= (uf_65 ?x360 ?x361 ?x362 ?x363) uf_9) (and (forall (?x364 Int) (implies (and (< ?x364 ?x363) (<= 0 ?x364)) (and (= (uf_27 ?x360 (uf_66 ?x361 ?x364 ?x362)) uf_9) (up_68 (uf_58 (uf_59 ?x360) (uf_66 ?x361 ?x364 ?x362))))) :pat { (uf_40 (uf_41 ?x360) (uf_66 ?x361 ?x364 ?x362)) } :pat { (uf_58 (uf_59 ?x360) (uf_66 ?x361 ?x364 ?x362)) } :pat { (uf_19 (uf_20 ?x360) (uf_66 ?x361 ?x364 ?x362)) }) (= (uf_48 ?x361 ?x362) uf_9))) :pat { (uf_65 ?x360 ?x361 ?x362 ?x363) })
+:assumption (forall (?x365 T4) (?x366 T5) (?x367 T3) (?x368 Int) (?x369 T2) (iff (= (uf_137 ?x365 ?x366 ?x367 ?x368 ?x369) uf_9) (and (forall (?x370 Int) (implies (and (< ?x370 ?x368) (<= 0 ?x370)) (and (= (uf_27 ?x365 (uf_66 ?x366 ?x370 ?x367)) uf_9) (and (up_68 (uf_58 (uf_59 ?x365) (uf_66 ?x366 ?x370 ?x367))) (iff (= (uf_135 (uf_58 (uf_59 ?x365) (uf_66 ?x366 ?x370 ?x367))) uf_9) (= ?x369 uf_9))))) :pat { (uf_40 (uf_41 ?x365) (uf_66 ?x366 ?x370 ?x367)) } :pat { (uf_58 (uf_59 ?x365) (uf_66 ?x366 ?x370 ?x367)) } :pat { (uf_19 (uf_20 ?x365) (uf_66 ?x366 ?x370 ?x367)) }) (= (uf_48 ?x366 ?x367) uf_9))) :pat { (uf_137 ?x365 ?x366 ?x367 ?x368 ?x369) })
+:assumption (forall (?x371 T5) (?x372 Int) (?x373 Int) (?x374 T3) (implies (and (not (= ?x373 0)) (not (= ?x372 0))) (= (uf_66 (uf_66 ?x371 ?x372 ?x374) ?x373 ?x374) (uf_66 ?x371 (+ ?x372 ?x373) ?x374))) :pat { (uf_66 (uf_66 ?x371 ?x372 ?x374) ?x373 ?x374) })
+:assumption (forall (?x375 T5) (?x376 Int) (?x377 T3) (and (= (uf_66 ?x375 ?x376 ?x377) (uf_43 ?x377 (+ (uf_116 ?x375) (+ ?x376 (uf_138 ?x377))))) (= (uf_139 (uf_66 ?x375 ?x376 ?x377) ?x375) uf_9)) :pat { (uf_66 ?x375 ?x376 ?x377) })
+:assumption (forall (?x378 T5) (?x379 T3) (= (uf_140 ?x378 ?x379) ?x378) :pat { (uf_140 ?x378 ?x379) })
+:assumption (forall (?x380 T3) (?x381 Int) (not (up_36 (uf_124 ?x380 ?x381))) :pat { (uf_124 ?x380 ?x381) })
+:assumption (forall (?x382 T3) (?x383 Int) (= (uf_141 (uf_124 ?x382 ?x383)) uf_9) :pat { (uf_124 ?x382 ?x383) })
+:assumption (forall (?x384 T3) (?x385 Int) (= (uf_142 (uf_124 ?x384 ?x385)) 0) :pat { (uf_124 ?x384 ?x385) })
+:assumption (forall (?x386 T3) (?x387 Int) (= (uf_143 (uf_124 ?x386 ?x387)) ?x387) :pat { (uf_124 ?x386 ?x387) })
+:assumption (forall (?x388 T3) (?x389 Int) (= (uf_144 (uf_124 ?x388 ?x389)) ?x388) :pat { (uf_124 ?x388 ?x389) })
+:assumption (forall (?x390 T5) (?x391 T6) (iff (= (uf_13 ?x390 ?x391) uf_9) (= (uf_145 ?x390 ?x391) uf_9)) :pat { (uf_145 ?x390 ?x391) })
+:assumption (forall (?x392 T5) (?x393 T6) (iff (= (uf_13 ?x392 ?x393) uf_9) (up_146 ?x392 ?x393)) :pat { (uf_13 ?x392 ?x393) })
+:assumption (forall (?x394 T5) (?x395 T6) (iff (= (uf_13 ?x394 ?x395) uf_9) (= (uf_147 ?x394 ?x395) uf_9)) :pat { (uf_13 ?x394 ?x395) })
+:assumption (forall (?x396 T5) (?x397 T4) (?x398 T5) (iff (= (uf_13 ?x396 (uf_53 ?x397 ?x398)) uf_9) (= (uf_147 ?x396 (uf_53 ?x397 ?x398)) uf_9)) :pat { (uf_147 ?x396 (uf_53 ?x397 ?x398)) (uf_148 ?x396) })
+:assumption (forall (?x399 T5) (?x400 T4) (?x401 T5) (implies (= (uf_13 ?x399 (uf_53 ?x400 ?x401)) uf_9) (= (uf_148 ?x399) uf_9)) :pat { (uf_13 ?x399 (uf_53 ?x400 ?x401)) })
+:assumption (forall (?x402 T6) (?x403 T6) (implies (forall (?x404 T5) (and (implies (= (uf_13 ?x404 ?x403) uf_9) (not (= (uf_13 ?x404 ?x402) uf_9))) (implies (= (uf_13 ?x404 ?x402) uf_9) (not (= (uf_13 ?x404 ?x403) uf_9)))) :pat { (uf_18 ?x404) }) (= (uf_131 ?x402 ?x403) uf_9)) :pat { (uf_131 ?x402 ?x403) })
+:assumption (forall (?x405 T5) (?x406 T6) (?x407 T6) (implies (and (= (uf_13 ?x405 ?x407) uf_9) (= (uf_131 ?x406 ?x407) uf_9)) (= (uf_133 ?x405 ?x406 ?x407) 2)) :pat { (uf_131 ?x406 ?x407) (uf_13 ?x405 ?x407) })
+:assumption (forall (?x408 T5) (?x409 T6) (?x410 T6) (implies (and (= (uf_13 ?x408 ?x409) uf_9) (= (uf_131 ?x409 ?x410) uf_9)) (= (uf_133 ?x408 ?x409 ?x410) 1)) :pat { (uf_131 ?x409 ?x410) (uf_13 ?x408 ?x409) })
+:assumption (forall (?x411 T5) (= (uf_13 ?x411 uf_149) uf_9) :pat { (uf_13 ?x411 uf_149) })
+:assumption (forall (?x412 T5) (= (uf_150 (uf_151 ?x412)) 1))
+:assumption (= (uf_150 uf_152) 0)
+:assumption (forall (?x413 T6) (?x414 T6) (implies (= (uf_153 ?x413 ?x414) uf_9) (= ?x413 ?x414)) :pat { (uf_153 ?x413 ?x414) })
+:assumption (forall (?x415 T6) (?x416 T6) (implies (forall (?x417 T5) (iff (= (uf_13 ?x417 ?x415) uf_9) (= (uf_13 ?x417 ?x416) uf_9)) :pat { (uf_18 ?x417) }) (= (uf_153 ?x415 ?x416) uf_9)) :pat { (uf_153 ?x415 ?x416) })
+:assumption (forall (?x418 T6) (?x419 T6) (iff (= (uf_154 ?x418 ?x419) uf_9) (forall (?x420 T5) (implies (= (uf_13 ?x420 ?x418) uf_9) (= (uf_13 ?x420 ?x419) uf_9)) :pat { (uf_13 ?x420 ?x418) } :pat { (uf_13 ?x420 ?x419) })) :pat { (uf_154 ?x418 ?x419) })
+:assumption (forall (?x421 T6) (?x422 T6) (?x423 T5) (iff (= (uf_13 ?x423 (uf_155 ?x421 ?x422)) uf_9) (and (= (uf_13 ?x423 ?x422) uf_9) (= (uf_13 ?x423 ?x421) uf_9))) :pat { (uf_13 ?x423 (uf_155 ?x421 ?x422)) })
+:assumption (forall (?x424 T6) (?x425 T6) (?x426 T5) (iff (= (uf_13 ?x426 (uf_156 ?x424 ?x425)) uf_9) (and (not (= (uf_13 ?x426 ?x425) uf_9)) (= (uf_13 ?x426 ?x424) uf_9))) :pat { (uf_13 ?x426 (uf_156 ?x424 ?x425)) })
+:assumption (forall (?x427 T6) (?x428 T6) (?x429 T5) (iff (= (uf_13 ?x429 (uf_157 ?x427 ?x428)) uf_9) (or (= (uf_13 ?x429 ?x428) uf_9) (= (uf_13 ?x429 ?x427) uf_9))) :pat { (uf_13 ?x429 (uf_157 ?x427 ?x428)) })
+:assumption (forall (?x430 T5) (?x431 T5) (iff (= (uf_13 ?x431 (uf_158 ?x430)) uf_9) (and (not (= (uf_116 ?x430) (uf_116 uf_121))) (= ?x430 ?x431))) :pat { (uf_13 ?x431 (uf_158 ?x430)) })
+:assumption (forall (?x432 T5) (?x433 T5) (iff (= (uf_13 ?x433 (uf_151 ?x432)) uf_9) (= ?x432 ?x433)) :pat { (uf_13 ?x433 (uf_151 ?x432)) })
+:assumption (forall (?x434 T5) (not (= (uf_13 ?x434 uf_152) uf_9)) :pat { (uf_13 ?x434 uf_152) })
+:assumption (forall (?x435 T5) (?x436 T5) (= (uf_159 ?x435 ?x436) (uf_43 (uf_124 (uf_144 (uf_15 ?x435)) (+ (uf_143 (uf_15 ?x435)) (uf_143 (uf_15 ?x436)))) (uf_116 ?x435))) :pat { (uf_159 ?x435 ?x436) })
+:assumption (forall (?x437 T5) (?x438 Int) (= (uf_160 ?x437 ?x438) (uf_43 (uf_124 (uf_144 (uf_15 ?x437)) (+ (uf_143 (uf_15 ?x437)) ?x438)) (uf_116 (uf_66 (uf_43 (uf_144 (uf_15 ?x437)) (uf_116 ?x437)) ?x438 (uf_144 (uf_15 ?x437)))))) :pat { (uf_160 ?x437 ?x438) })
+:assumption (forall (?x439 T5) (?x440 Int) (= (uf_161 ?x439 ?x440) (uf_43 (uf_124 (uf_144 (uf_15 ?x439)) ?x440) (uf_116 ?x439))) :pat { (uf_161 ?x439 ?x440) })
+:assumption (forall (?x441 T4) (?x442 T5) (?x443 T5) (iff (= (uf_13 ?x442 (uf_162 ?x441 ?x443)) uf_9) (or (and (= (uf_13 ?x442 (uf_163 ?x443)) uf_9) (= (uf_135 (uf_58 (uf_59 ?x441) ?x442)) uf_9)) (= ?x442 ?x443))) :pat { (uf_13 ?x442 (uf_162 ?x441 ?x443)) })
+:assumption (forall (?x444 T4) (implies (= (uf_164 ?x444) uf_9) (up_165 ?x444)) :pat { (uf_164 ?x444) })
+:assumption (= (uf_142 uf_166) 0)
+:assumption (= uf_167 (uf_43 uf_166 uf_168))
+:assumption (forall (?x445 T4) (?x446 T4) (?x447 T5) (?x448 T5) (and true (and (= (uf_170 (uf_169 ?x445 ?x446 ?x447 ?x448) ?x448) (uf_171 ?x445)) (and (= (uf_38 (uf_169 ?x445 ?x446 ?x447 ?x448) ?x448) (uf_38 ?x446 ?x448)) (and (= (uf_25 (uf_169 ?x445 ?x446 ?x447 ?x448) ?x448) uf_26) (and (= (uf_24 (uf_169 ?x445 ?x446 ?x447 ?x448) ?x448) uf_9) (= (uf_41 (uf_169 ?x445 ?x446 ?x447 ?x448)) (uf_172 (uf_41 ?x446) ?x448 (uf_173 ?x446 ?x447 ?x448)))))))) :pat { (uf_169 ?x445 ?x446 ?x447 ?x448) })
+:assumption (forall (?x449 T4) (?x450 T5) (?x451 T5) (implies (not (= (uf_14 (uf_15 ?x450)) uf_16)) (and true (and (= (uf_38 (uf_174 ?x449 ?x450 ?x451) ?x451) (uf_38 ?x449 ?x451)) (and (= (uf_25 (uf_174 ?x449 ?x450 ?x451) ?x451) ?x450) (and (= (uf_24 (uf_174 ?x449 ?x450 ?x451) ?x451) uf_9) (= (uf_41 (uf_174 ?x449 ?x450 ?x451)) (uf_172 (uf_41 ?x449) ?x451 (uf_175 ?x449 ?x450 ?x451)))))))) :pat { (uf_174 ?x449 ?x450 ?x451) })
+:assumption (forall (?x452 T4) (?x453 T5) (?x454 Int) (and (= (uf_177 ?x452 (uf_176 ?x452 ?x453 ?x454)) uf_9) (and (forall (?x455 T5) (<= (uf_170 ?x452 ?x455) (uf_170 (uf_176 ?x452 ?x455 ?x454) ?x455)) :pat { (uf_170 (uf_176 ?x452 ?x455 ?x454) ?x455) }) (and (< (uf_171 ?x452) (uf_171 (uf_176 ?x452 ?x453 ?x454))) (and (= (uf_20 (uf_176 ?x452 ?x453 ?x454)) (uf_178 (uf_20 ?x452) ?x453 ?x454)) (and (= (uf_41 (uf_176 ?x452 ?x453 ?x454)) (uf_41 ?x452)) (= (uf_59 (uf_176 ?x452 ?x453 ?x454)) (uf_59 ?x452))))))) :pat { (uf_176 ?x452 ?x453 ?x454) })
+:assumption (forall (?x456 T4) (implies (= (uf_51 ?x456) uf_9) (forall (?x457 T5) (?x458 T5) (implies (and (= (uf_24 ?x456 ?x458) uf_9) (and (= (uf_13 ?x457 (uf_53 ?x456 ?x458)) uf_9) (= (uf_51 ?x456) uf_9))) (and (not (= (uf_116 ?x457) 0)) (= (uf_24 ?x456 ?x457) uf_9))) :pat { (uf_13 ?x457 (uf_53 ?x456 ?x458)) })) :pat { (uf_51 ?x456) })
+:assumption (forall (?x459 T4) (?x460 T5) (?x461 T3) (implies (and (= (uf_24 ?x459 ?x460) uf_9) (= (uf_44 ?x459) uf_9)) (= (uf_46 ?x459 ?x459 ?x460 ?x461) uf_9)) :pat { (uf_46 ?x459 ?x459 ?x460 ?x461) })
+:assumption (forall (?x462 T4) (?x463 Int) (?x464 T3) (implies (= (uf_51 ?x462) uf_9) (implies (= (uf_141 ?x464) uf_9) (= (uf_53 ?x462 (uf_43 ?x464 ?x463)) uf_152))) :pat { (uf_53 ?x462 (uf_43 ?x464 ?x463)) (uf_141 ?x464) })
+:assumption (forall (?x465 T4) (?x466 T4) (?x467 T5) (?x468 T3) (implies (and (= (uf_15 ?x467) ?x468) (= (uf_141 ?x468) uf_9)) (and (= (uf_179 ?x465 ?x466 ?x467 ?x468) uf_9) (iff (= (uf_46 ?x465 ?x466 ?x467 ?x468) uf_9) (= (uf_27 ?x466 ?x467) uf_9)))) :pat { (uf_141 ?x468) (uf_46 ?x465 ?x466 ?x467 ?x468) })
+:assumption (forall (?x469 T4) (?x470 T5) (?x471 T5) (implies (and (= (uf_22 (uf_15 ?x470)) uf_9) (and (= (uf_24 ?x469 ?x471) uf_9) (= (uf_51 ?x469) uf_9))) (iff (= (uf_13 ?x470 (uf_53 ?x469 ?x471)) uf_9) (= (uf_25 ?x469 ?x470) ?x471))) :pat { (uf_13 ?x470 (uf_53 ?x469 ?x471)) (uf_22 (uf_15 ?x470)) })
+:assumption (forall (?x472 T4) (?x473 T4) (?x474 Int) (?x475 T3) (?x476 T15) (up_182 (uf_19 (uf_20 ?x473) (uf_126 (uf_43 ?x475 ?x474) ?x476))) :pat { (uf_180 ?x475 ?x476) (uf_181 ?x472 ?x473) (uf_19 (uf_20 ?x472) (uf_126 (uf_43 ?x475 ?x474) ?x476)) })
+:assumption (forall (?x477 T4) (?x478 Int) (?x479 T3) (?x480 T15) (implies (and (= (uf_25 ?x477 (uf_43 ?x479 ?x478)) uf_26) (and (= (uf_180 ?x479 ?x480) uf_9) (and (= (uf_24 ?x477 (uf_43 ?x479 ?x478)) uf_9) (= (uf_55 ?x477) uf_9)))) (= (uf_19 (uf_20 ?x477) (uf_126 (uf_43 ?x479 ?x478) ?x480)) (uf_183 (uf_184 ?x477 (uf_43 ?x479 ?x478)) (uf_126 (uf_43 ?x479 ?x478) ?x480)))) :pat { (uf_180 ?x479 ?x480) (uf_19 (uf_20 ?x477) (uf_126 (uf_43 ?x479 ?x478) ?x480)) })
+:assumption (forall (?x481 T4) (?x482 Int) (?x483 T3) (?x484 T15) (?x485 T15) (implies (and (or (= (uf_28 (uf_183 (uf_184 ?x481 (uf_43 ?x483 ?x482)) (uf_126 (uf_43 ?x483 ?x482) ?x484))) uf_26) (= (uf_28 (uf_19 (uf_20 ?x481) (uf_126 (uf_43 ?x483 ?x482) ?x484))) uf_26)) (and (= (uf_24 ?x481 (uf_43 ?x483 ?x482)) uf_9) (and (= (uf_185 ?x483 ?x484 ?x485) uf_9) (= (uf_55 ?x481) uf_9)))) (= (uf_19 (uf_20 ?x481) (uf_126 (uf_43 ?x483 ?x482) ?x485)) (uf_183 (uf_184 ?x481 (uf_43 ?x483 ?x482)) (uf_126 (uf_43 ?x483 ?x482) ?x485)))) :pat { (uf_185 ?x483 ?x484 ?x485) (uf_19 (uf_20 ?x481) (uf_126 (uf_43 ?x483 ?x482) ?x485)) })
+:assumption (forall (?x486 T4) (?x487 T5) (= (uf_184 ?x486 ?x487) (uf_30 (uf_19 (uf_20 ?x486) ?x487))) :pat { (uf_184 ?x486 ?x487) })
+:assumption (forall (?x488 T4) (?x489 T5) (?x490 T5) (?x491 T15) (?x492 Int) (?x493 Int) (?x494 T3) (implies (and (< ?x492 ?x493) (and (<= 0 ?x492) (and (= (uf_187 ?x491 ?x493) uf_9) (and (= (uf_186 ?x489 ?x490) uf_9) (and (= (uf_24 ?x488 ?x490) uf_9) (= (uf_51 ?x488) uf_9)))))) (= (uf_19 (uf_20 ?x488) (uf_66 (uf_126 ?x489 ?x491) ?x492 ?x494)) (uf_11 (uf_189 ?x490) (uf_66 (uf_126 ?x489 ?x491) ?x492 ?x494)))) :pat { (uf_49 ?x488 ?x490) (uf_186 ?x489 ?x490) (uf_19 (uf_20 ?x488) (uf_66 (uf_126 ?x489 ?x491) ?x492 ?x494)) (uf_187 ?x491 ?x493) } :pat { (uf_188 ?x488 ?x490 ?x489 (uf_66 (uf_126 ?x489 ?x491) ?x492 ?x494)) (uf_187 ?x491 ?x493) })
+:assumption (forall (?x495 T4) (?x496 T5) (?x497 T5) (?x498 T15) (implies (and (= (uf_190 ?x498) uf_9) (and (= (uf_186 ?x496 ?x497) uf_9) (and (= (uf_24 ?x495 ?x497) uf_9) (= (uf_51 ?x495) uf_9)))) (and (= (uf_19 (uf_20 ?x495) (uf_126 ?x496 ?x498)) (uf_11 (uf_189 ?x497) (uf_126 ?x496 ?x498))) (= (uf_186 ?x496 ?x497) uf_9))) :pat { (uf_186 ?x496 ?x497) (uf_19 (uf_20 ?x495) (uf_126 ?x496 ?x498)) } :pat { (uf_188 ?x495 ?x497 ?x496 (uf_126 ?x496 ?x498)) })
+:assumption (forall (?x499 T4) (?x500 T5) (?x501 T5) (?x502 T5) (= (uf_188 ?x499 ?x500 ?x501 ?x502) ?x502) :pat { (uf_188 ?x499 ?x500 ?x501 ?x502) })
+:assumption (forall (?x503 T5) (?x504 T5) (implies (forall (?x505 T4) (implies (= (uf_49 ?x505 ?x504) uf_9) (= (uf_24 ?x505 ?x503) uf_9)) :pat { (uf_191 ?x505) }) (= (uf_186 ?x503 ?x504) uf_9)) :pat { (uf_186 ?x503 ?x504) })
+:assumption (forall (?x506 T5) (?x507 T4) (?x508 T4) (?x509 T5) (up_193 (uf_13 ?x509 (uf_192 (uf_12 ?x508 ?x506)))) :pat { (uf_13 ?x509 (uf_192 (uf_12 ?x507 ?x506))) (uf_177 ?x507 ?x508) })
+:assumption (forall (?x510 T5) (?x511 T4) (?x512 T4) (?x513 T5) (up_193 (uf_13 ?x513 (uf_10 ?x512 ?x510))) :pat { (uf_13 ?x513 (uf_10 ?x511 ?x510)) (uf_177 ?x511 ?x512) })
+:assumption (forall (?x514 T4) (?x515 T5) (?x516 T15) (?x517 Int) (?x518 Int) (?x519 T3) (implies (and (< ?x518 ?x517) (and (<= 0 ?x518) (and (= (uf_194 ?x516 ?x517 ?x519) uf_9) (= (uf_51 ?x514) uf_9)))) (= (uf_135 (uf_58 (uf_59 ?x514) (uf_66 (uf_126 ?x515 ?x516) ?x518 ?x519))) uf_9)) :pat { (uf_194 ?x516 ?x517 ?x519) (uf_135 (uf_58 (uf_59 ?x514) (uf_66 (uf_126 ?x515 ?x516) ?x518 ?x519))) })
+:assumption (forall (?x520 T4) (?x521 Int) (?x522 T5) (?x523 Int) (?x524 Int) (?x525 T3) (implies (and (< ?x524 ?x523) (and (<= 0 ?x524) (and (= (uf_13 (uf_43 (uf_124 ?x525 ?x523) ?x521) (uf_10 ?x520 ?x522)) uf_9) (and (= (uf_23 ?x525) uf_9) (= (uf_55 ?x520) uf_9))))) (= (uf_19 (uf_20 ?x520) (uf_66 (uf_43 ?x525 ?x521) ?x524 ?x525)) (uf_11 (uf_12 ?x520 ?x522) (uf_66 (uf_43 ?x525 ?x521) ?x524 ?x525)))) :pat { (uf_13 (uf_43 (uf_124 ?x525 ?x523) ?x521) (uf_10 ?x520 ?x522)) (uf_19 (uf_20 ?x520) (uf_66 (uf_43 ?x525 ?x521) ?x524 ?x525)) (uf_23 ?x525) })
+:assumption (forall (?x526 T4) (?x527 Int) (?x528 T5) (?x529 Int) (?x530 Int) (?x531 T3) (implies (and (< ?x530 ?x529) (and (<= 0 ?x530) (and (= (uf_13 (uf_43 (uf_124 ?x531 ?x529) ?x527) (uf_10 ?x526 ?x528)) uf_9) (and (= (uf_23 ?x531) uf_9) (= (uf_55 ?x526) uf_9))))) (and (not (= (uf_135 (uf_58 (uf_59 ?x526) (uf_66 (uf_43 ?x531 ?x527) ?x530 ?x531))) uf_9)) (= (uf_27 ?x526 (uf_66 (uf_43 ?x531 ?x527) ?x530 ?x531)) uf_9))) :pat { (uf_13 (uf_43 (uf_124 ?x531 ?x529) ?x527) (uf_10 ?x526 ?x528)) (uf_58 (uf_59 ?x526) (uf_66 (uf_43 ?x531 ?x527) ?x530 ?x531)) (uf_23 ?x531) } :pat { (uf_13 (uf_43 (uf_124 ?x531 ?x529) ?x527) (uf_10 ?x526 ?x528)) (uf_25 ?x526 (uf_66 (uf_43 ?x531 ?x527) ?x530 ?x531)) (uf_23 ?x531) })
+:assumption (forall (?x532 T4) (?x533 T5) (?x534 T5) (?x535 T15) (?x536 Int) (?x537 Int) (?x538 T3) (implies (and (< ?x537 ?x536) (and (<= 0 ?x537) (and (= (uf_187 ?x535 ?x536) uf_9) (and (= (uf_13 ?x533 (uf_10 ?x532 ?x534)) uf_9) (= (uf_55 ?x532) uf_9))))) (and (not (= (uf_135 (uf_58 (uf_59 ?x532) (uf_66 (uf_126 ?x533 ?x535) ?x537 ?x538))) uf_9)) (= (uf_27 ?x532 (uf_66 (uf_126 ?x533 ?x535) ?x537 ?x538)) uf_9))) :pat { (uf_13 ?x533 (uf_10 ?x532 ?x534)) (uf_187 ?x535 ?x536) (uf_58 (uf_59 ?x532) (uf_66 (uf_126 ?x533 ?x535) ?x537 ?x538)) } :pat { (uf_13 ?x533 (uf_10 ?x532 ?x534)) (uf_187 ?x535 ?x536) (uf_25 ?x532 (uf_66 (uf_126 ?x533 ?x535) ?x537 ?x538)) })
+:assumption (forall (?x539 T4) (?x540 T5) (?x541 T5) (?x542 T15) (?x543 Int) (?x544 Int) (?x545 T3) (implies (and (< ?x544 ?x543) (and (<= 0 ?x544) (and (= (uf_187 ?x542 ?x543) uf_9) (and (= (uf_13 ?x540 (uf_10 ?x539 ?x541)) uf_9) (= (uf_55 ?x539) uf_9))))) (= (uf_19 (uf_20 ?x539) (uf_66 (uf_126 ?x540 ?x542) ?x544 ?x545)) (uf_11 (uf_12 ?x539 ?x541) (uf_66 (uf_126 ?x540 ?x542) ?x544 ?x545)))) :pat { (uf_13 ?x540 (uf_10 ?x539 ?x541)) (uf_187 ?x542 ?x543) (uf_19 (uf_20 ?x539) (uf_66 (uf_126 ?x540 ?x542) ?x544 ?x545)) })
+:assumption (forall (?x546 T4) (?x547 T5) (?x548 T5) (?x549 T15) (implies (and (= (uf_190 ?x549) uf_9) (and (= (uf_13 ?x547 (uf_10 ?x546 ?x548)) uf_9) (= (uf_55 ?x546) uf_9))) (and (not (= (uf_135 (uf_58 (uf_59 ?x546) (uf_126 ?x547 ?x549))) uf_9)) (= (uf_27 ?x546 (uf_126 ?x547 ?x549)) uf_9))) :pat { (uf_13 ?x547 (uf_10 ?x546 ?x548)) (uf_190 ?x549) (uf_25 ?x546 (uf_126 ?x547 ?x549)) } :pat { (uf_13 ?x547 (uf_10 ?x546 ?x548)) (uf_190 ?x549) (uf_58 (uf_59 ?x546) (uf_126 ?x547 ?x549)) })
+:assumption (forall (?x550 T4) (?x551 T5) (?x552 T5) (implies (and (= (uf_13 ?x551 (uf_10 ?x550 ?x552)) uf_9) (= (uf_55 ?x550) uf_9)) (and (not (= (uf_135 (uf_58 (uf_59 ?x550) ?x551)) uf_9)) (= (uf_27 ?x550 ?x551) uf_9))) :pat { (uf_55 ?x550) (uf_13 ?x551 (uf_10 ?x550 ?x552)) (uf_40 (uf_41 ?x550) ?x551) } :pat { (uf_55 ?x550) (uf_13 ?x551 (uf_10 ?x550 ?x552)) (uf_58 (uf_59 ?x550) ?x551) })
+:assumption (forall (?x553 T4) (?x554 T5) (?x555 T5) (?x556 T15) (implies (and (= (uf_190 ?x556) uf_9) (= (uf_13 ?x554 (uf_10 ?x553 ?x555)) uf_9)) (= (uf_19 (uf_20 ?x553) (uf_126 ?x554 ?x556)) (uf_11 (uf_12 ?x553 ?x555) (uf_126 ?x554 ?x556)))) :pat { (uf_13 ?x554 (uf_10 ?x553 ?x555)) (uf_190 ?x556) (uf_19 (uf_20 ?x553) (uf_126 ?x554 ?x556)) })
+:assumption (forall (?x557 T4) (?x558 T5) (?x559 T5) (implies (= (uf_195 ?x557 ?x558 ?x559) uf_9) (= (uf_196 ?x557 ?x558 ?x559) uf_9)) :pat { (uf_195 ?x557 ?x558 ?x559) })
+:assumption (forall (?x560 T4) (?x561 T5) (?x562 T5) (?x563 T5) (implies (and (forall (?x564 T4) (implies (and (= (uf_10 ?x564 ?x561) (uf_10 ?x560 ?x561)) (and (= (uf_12 ?x564 ?x561) (uf_12 ?x560 ?x561)) (= (uf_46 ?x564 ?x564 ?x562 (uf_15 ?x562)) uf_9))) (= (uf_145 ?x563 (uf_53 ?x564 ?x562)) uf_9))) (and (= (uf_13 ?x562 (uf_10 ?x560 ?x561)) uf_9) (up_197 (uf_15 ?x562)))) (and (= (uf_145 ?x563 (uf_53 ?x560 ?x562)) uf_9) (= (uf_195 ?x560 ?x563 ?x561) uf_9))) :pat { (uf_13 ?x562 (uf_10 ?x560 ?x561)) (uf_195 ?x560 ?x563 ?x561) })
+:assumption (forall (?x565 T4) (?x566 T5) (?x567 T5) (?x568 T5) (implies (and (= (uf_145 ?x568 (uf_53 ?x565 ?x567)) uf_9) (and (= (uf_13 ?x567 (uf_10 ?x565 ?x566)) uf_9) (not (up_197 (uf_15 ?x567))))) (and (= (uf_145 ?x568 (uf_53 ?x565 ?x567)) uf_9) (= (uf_196 ?x565 ?x568 ?x566) uf_9))) :pat { (uf_13 ?x567 (uf_10 ?x565 ?x566)) (uf_196 ?x565 ?x568 ?x566) })
+:assumption (forall (?x569 T4) (?x570 T5) (?x571 T5) (implies (and (= (uf_13 ?x571 (uf_10 ?x569 ?x570)) uf_9) (= (uf_55 ?x569) uf_9)) (= (uf_196 ?x569 ?x571 ?x570) uf_9)) :pat { (uf_196 ?x569 ?x571 ?x570) })
+:assumption (forall (?x572 T4) (?x573 T5) (implies (and (= (uf_22 (uf_15 ?x573)) uf_9) (and (not (= (uf_14 (uf_15 ?x573)) uf_16)) (and (= (uf_27 ?x572 ?x573) uf_9) (and (= (uf_48 ?x573 (uf_15 ?x573)) uf_9) (and (= (uf_25 ?x572 ?x573) uf_26) (and (= (uf_24 ?x572 ?x573) uf_9) (= (uf_55 ?x572) uf_9))))))) (= (uf_196 ?x572 ?x573 ?x573) uf_9)) :pat { (uf_196 ?x572 ?x573 ?x573) })
+:assumption (forall (?x574 T4) (?x575 T5) (?x576 T5) (implies (= (uf_196 ?x574 ?x575 ?x576) uf_9) (and (forall (?x577 T5) (implies (and (= (uf_13 ?x577 (uf_53 ?x574 ?x575)) uf_9) (not (up_197 (uf_15 ?x575)))) (= (uf_147 ?x577 (uf_192 (uf_12 ?x574 ?x576))) uf_9)) :pat { (uf_13 ?x577 (uf_53 ?x574 ?x575)) }) (and (= (uf_24 ?x574 ?x575) uf_9) (= (uf_13 ?x575 (uf_10 ?x574 ?x576)) uf_9)))) :pat { (uf_196 ?x574 ?x575 ?x576) })
+:assumption (forall (?x578 T4) (?x579 T5) (?x580 T5) (?x581 T16) (iff (= (uf_198 ?x578 ?x579 ?x580 ?x581) uf_9) (= (uf_195 ?x578 ?x579 ?x580) uf_9)) :pat { (uf_198 ?x578 ?x579 ?x580 ?x581) })
+:assumption (forall (?x582 T4) (?x583 T5) (?x584 T5) (?x585 T16) (implies (= (uf_198 ?x582 ?x583 ?x584 ?x585) uf_9) (up_199 ?x582 ?x583 ?x585)) :pat { (uf_198 ?x582 ?x583 ?x584 ?x585) })
+:assumption (forall (?x586 T4) (?x587 T5) (?x588 T5) (?x589 T16) (iff (= (uf_200 ?x586 ?x587 ?x588 ?x589) uf_9) (= (uf_196 ?x586 ?x587 ?x588) uf_9)) :pat { (uf_200 ?x586 ?x587 ?x588 ?x589) })
+:assumption (forall (?x590 T4) (?x591 T5) (?x592 T5) (?x593 T16) (implies (= (uf_200 ?x590 ?x591 ?x592 ?x593) uf_9) (up_199 ?x590 ?x591 ?x593)) :pat { (uf_200 ?x590 ?x591 ?x592 ?x593) })
+:assumption (forall (?x594 T4) (?x595 T5) (= (uf_10 ?x594 ?x595) (uf_192 (uf_12 ?x594 ?x595))) :pat { (uf_10 ?x594 ?x595) })
+:assumption (forall (?x596 T4) (?x597 T5) (= (uf_12 ?x596 ?x597) (uf_32 (uf_19 (uf_20 ?x596) ?x597))) :pat { (uf_12 ?x596 ?x597) })
+:assumption (forall (?x598 T4) (?x599 Int) (?x600 T3) (= (uf_43 ?x600 (uf_19 (uf_20 ?x598) (uf_43 (uf_6 ?x600) ?x599))) (uf_201 ?x598 (uf_43 (uf_6 ?x600) ?x599) ?x600)) :pat { (uf_43 ?x600 (uf_19 (uf_20 ?x598) (uf_43 (uf_6 ?x600) ?x599))) })
+:assumption (forall (?x601 T1) (?x602 T4) (implies (= (uf_202 ?x601 ?x602) uf_9) (= (uf_51 ?x602) uf_9)) :pat { (uf_202 ?x601 ?x602) })
+:assumption (forall (?x603 T4) (implies (= (uf_44 ?x603) uf_9) (= (uf_51 ?x603) uf_9)) :pat { (uf_44 ?x603) })
+:assumption (forall (?x604 T4) (implies (= (uf_55 ?x604) uf_9) (and (= (uf_44 ?x604) uf_9) (= (uf_51 ?x604) uf_9))) :pat { (uf_55 ?x604) })
+:assumption (forall (?x605 T4) (implies (= (uf_203 ?x605) uf_9) (and (<= 0 (uf_171 ?x605)) (= (uf_55 ?x605) uf_9))) :pat { (uf_203 ?x605) })
+:assumption (forall (?x606 T3) (implies (= (uf_23 ?x606) uf_9) (forall (?x607 T4) (?x608 Int) (?x609 T5) (iff (= (uf_13 ?x609 (uf_128 ?x607 (uf_43 ?x606 ?x608))) uf_9) (= ?x609 (uf_43 ?x606 ?x608))) :pat { (uf_13 ?x609 (uf_128 ?x607 (uf_43 ?x606 ?x608))) })) :pat { (uf_23 ?x606) })
+:assumption (forall (?x610 T3) (implies (= (uf_23 ?x610) uf_9) (forall (?x611 Int) (?x612 T5) (iff (= (uf_13 ?x612 (uf_130 (uf_43 ?x610 ?x611))) uf_9) (= ?x612 (uf_43 ?x610 ?x611))) :pat { (uf_13 ?x612 (uf_130 (uf_43 ?x610 ?x611))) })) :pat { (uf_23 ?x610) })
+:assumption (forall (?x613 T4) (?x614 T4) (?x615 T5) (?x616 T3) (iff (= (uf_204 ?x613 ?x614 ?x615 ?x616) uf_9) (and (up_205 ?x613 ?x614 ?x615 ?x616) (and (= (uf_58 (uf_59 ?x613) ?x615) (uf_58 (uf_59 ?x614) ?x615)) (= (uf_12 ?x613 ?x615) (uf_12 ?x614 ?x615))))) :pat { (uf_204 ?x613 ?x614 ?x615 ?x616) })
+:assumption (forall (?x617 T4) (?x618 T4) (?x619 T5) (?x620 T3) (iff (= (uf_206 ?x617 ?x618 ?x619 ?x620) uf_9) (and (= (uf_123 ?x617 ?x618 ?x619 ?x620) uf_9) (and (= (uf_58 (uf_59 ?x617) ?x619) (uf_58 (uf_59 ?x618) ?x619)) (and (= (uf_53 ?x617 ?x619) (uf_53 ?x618 ?x619)) (= (uf_12 ?x617 ?x619) (uf_12 ?x618 ?x619)))))) :pat { (uf_206 ?x617 ?x618 ?x619 ?x620) })
+:assumption (forall (?x621 T4) (?x622 T4) (?x623 T5) (?x624 T5) (iff (= (uf_207 ?x621 ?x622 ?x623 ?x624) uf_9) (or (= (uf_208 (uf_15 ?x623)) uf_9) (or (and (= (uf_204 ?x621 ?x622 ?x623 (uf_15 ?x623)) uf_9) (= (uf_46 ?x621 ?x622 ?x623 (uf_15 ?x623)) uf_9)) (or (and (not (= (uf_24 ?x622 ?x623) uf_9)) (not (= (uf_24 ?x621 ?x623) uf_9))) (= (uf_206 ?x621 ?x622 ?x624 (uf_15 ?x624)) uf_9))))) :pat { (uf_207 ?x621 ?x622 ?x623 ?x624) })
+:assumption (forall (?x625 T4) (?x626 T4) (?x627 T5) (?x628 T3) (iff (= (uf_179 ?x625 ?x626 ?x627 ?x628) uf_9) (implies (and (= (uf_24 ?x626 ?x627) uf_9) (= (uf_24 ?x625 ?x627) uf_9)) (= (uf_206 ?x625 ?x626 ?x627 ?x628) uf_9))) :pat { (uf_179 ?x625 ?x626 ?x627 ?x628) })
+:assumption (forall (?x629 T4) (?x630 T5) (?x631 T3) (implies (up_209 ?x629 ?x630 ?x631) (= (uf_46 ?x629 ?x629 ?x630 ?x631) uf_9)) :pat { (uf_46 ?x629 ?x629 ?x630 ?x631) })
+:assumption (forall (?x632 T4) (?x633 T5) (iff (= (uf_67 ?x632 ?x633) uf_9) (and (or (and (or (= (uf_210 ?x632 ?x633) uf_9) (= (uf_25 ?x632 ?x633) uf_26)) (not (= (uf_14 (uf_15 ?x633)) uf_16))) (and (or (= (uf_210 ?x632 (uf_136 (uf_58 (uf_59 ?x632) ?x633))) uf_9) (= (uf_25 ?x632 (uf_136 (uf_58 (uf_59 ?x632) ?x633))) uf_26)) (and (not (= (uf_14 (uf_15 (uf_136 (uf_58 (uf_59 ?x632) ?x633)))) uf_16)) (and (or (not (= (uf_24 ?x632 (uf_136 (uf_58 (uf_59 ?x632) ?x633))) uf_9)) (not (= (uf_135 (uf_58 (uf_59 ?x632) ?x633)) uf_9))) (= (uf_14 (uf_15 ?x633)) uf_16))))) (= (uf_27 ?x632 ?x633) uf_9))) :pat { (uf_67 ?x632 ?x633) })
+:assumption (forall (?x634 T4) (?x635 T5) (iff (= (uf_210 ?x634 ?x635) uf_9) (exists (?x636 T5) (and (= (uf_211 ?x634 ?x636) uf_9) (and (= (uf_22 (uf_15 ?x636)) uf_9) (and (not (= (uf_14 (uf_15 ?x636)) uf_16)) (and (= (uf_27 ?x634 ?x636) uf_9) (and (= (uf_48 ?x636 (uf_15 ?x636)) uf_9) (and (= (uf_25 ?x634 ?x636) uf_26) (and (= (uf_24 ?x634 ?x636) uf_9) (= (uf_13 ?x635 (uf_192 (uf_12 ?x634 ?x636))) uf_9)))))))) :pat { (uf_147 ?x635 (uf_192 (uf_12 ?x634 ?x636))) })) :pat { (uf_210 ?x634 ?x635) })
+:assumption (forall (?x637 T4) (?x638 T5) (iff (= (uf_211 ?x637 ?x638) uf_9) true) :pat { (uf_211 ?x637 ?x638) })
+:assumption (forall (?x639 T4) (?x640 T4) (?x641 T5) (implies (= (uf_177 ?x639 ?x640) uf_9) (up_212 (uf_40 (uf_41 ?x639) ?x641))) :pat { (uf_40 (uf_41 ?x640) ?x641) (uf_177 ?x639 ?x640) })
+:assumption (forall (?x642 T4) (?x643 T5) (implies (and (= (uf_27 ?x642 ?x643) uf_9) (= (uf_51 ?x642) uf_9)) (< 0 (uf_116 ?x643))) :pat { (uf_27 ?x642 ?x643) })
+:assumption (forall (?x644 T4) (?x645 T5) (implies (= (uf_51 ?x644) uf_9) (iff (= (uf_27 ?x644 ?x645) uf_9) (up_213 (uf_58 (uf_59 ?x644) ?x645)))) :pat { (uf_27 ?x644 ?x645) })
+:assumption (forall (?x646 T4) (?x647 T5) (iff (= (uf_61 ?x646 ?x647) uf_9) (and (not (= (uf_24 ?x646 ?x647) uf_9)) (and (= (uf_25 ?x646 ?x647) uf_26) (= (uf_27 ?x646 ?x647) uf_9)))) :pat { (uf_61 ?x646 ?x647) })
+:assumption (forall (?x648 T4) (?x649 T5) (= (uf_53 ?x648 ?x649) (uf_34 (uf_19 (uf_20 ?x648) (uf_126 ?x649 (uf_214 (uf_15 ?x649)))))) :pat { (uf_53 ?x648 ?x649) })
+:assumption (forall (?x650 T11) (and (= (uf_22 (uf_15 (uf_215 ?x650))) uf_9) (not (= (uf_14 (uf_15 (uf_215 ?x650))) uf_16))) :pat { (uf_215 ?x650) })
+:assumption up_216
+:assumption (forall (?x651 T4) (?x652 T5) (implies (= (uf_22 (uf_15 ?x652)) uf_9) (= (uf_170 ?x651 ?x652) (uf_217 (uf_40 (uf_41 ?x651) ?x652)))) :pat { (uf_22 (uf_15 ?x652)) (uf_170 ?x651 ?x652) })
+:assumption (forall (?x653 T4) (?x654 T5) (implies (= (uf_23 (uf_15 ?x654)) uf_9) (= (uf_170 ?x653 ?x654) (uf_217 (uf_40 (uf_41 ?x653) (uf_136 (uf_58 (uf_59 ?x653) ?x654)))))) :pat { (uf_23 (uf_15 ?x654)) (uf_170 ?x653 ?x654) })
+:assumption (forall (?x655 T4) (?x656 T5) (implies (= (uf_22 (uf_15 ?x656)) uf_9) (iff (= (uf_24 ?x655 ?x656) uf_9) (up_218 (uf_40 (uf_41 ?x655) ?x656)))) :pat { (uf_22 (uf_15 ?x656)) (uf_24 ?x655 ?x656) })
+:assumption (forall (?x657 T4) (?x658 T5) (implies (= (uf_23 (uf_15 ?x658)) uf_9) (iff (= (uf_24 ?x657 ?x658) uf_9) (up_218 (uf_40 (uf_41 ?x657) (uf_136 (uf_58 (uf_59 ?x657) ?x658)))))) :pat { (uf_23 (uf_15 ?x658)) (uf_24 ?x657 ?x658) })
+:assumption (forall (?x659 T4) (?x660 T5) (implies (= (uf_22 (uf_15 ?x660)) uf_9) (= (uf_25 ?x659 ?x660) (uf_215 (uf_40 (uf_41 ?x659) ?x660)))) :pat { (uf_22 (uf_15 ?x660)) (uf_25 ?x659 ?x660) })
+:assumption (forall (?x661 T4) (?x662 T5) (implies (= (uf_23 (uf_15 ?x662)) uf_9) (= (uf_25 ?x661 ?x662) (uf_25 ?x661 (uf_136 (uf_58 (uf_59 ?x661) ?x662))))) :pat { (uf_23 (uf_15 ?x662)) (uf_25 ?x661 ?x662) })
+:assumption (forall (?x663 T5) (?x664 T3) (= (uf_126 ?x663 (uf_214 ?x664)) (uf_43 uf_219 (uf_220 ?x663 (uf_214 ?x664)))) :pat { (uf_126 ?x663 (uf_214 ?x664)) })
+:assumption (up_197 uf_37)
+:assumption (forall (?x665 T17) (?x666 T17) (?x667 T15) (implies (= (uf_224 (uf_225 (uf_222 ?x665 ?x667)) (uf_225 (uf_222 ?x666 ?x667))) uf_9) (= (uf_221 (uf_222 ?x665 ?x667) (uf_222 ?x666 ?x667)) uf_9)) :pat { (uf_221 (uf_222 ?x665 ?x667) (uf_222 ?x666 (uf_223 ?x667))) })
+:assumption (forall (?x668 T17) (?x669 T17) (implies (forall (?x670 T15) (= (uf_221 (uf_222 ?x668 ?x670) (uf_222 ?x669 ?x670)) uf_9)) (= (uf_224 ?x668 ?x669) uf_9)) :pat { (uf_224 ?x668 ?x669) })
+:assumption (forall (?x671 T17) (= (uf_225 (uf_226 ?x671)) ?x671))
+:assumption (forall (?x672 Int) (?x673 Int) (iff (= (uf_221 ?x672 ?x673) uf_9) (= ?x672 ?x673)) :pat { (uf_221 ?x672 ?x673) })
+:assumption (forall (?x674 T17) (?x675 T17) (iff (= (uf_224 ?x674 ?x675) uf_9) (= ?x674 ?x675)) :pat { (uf_224 ?x674 ?x675) })
+:assumption (forall (?x676 T3) (?x677 T15) (?x678 T3) (implies (and (= (uf_228 ?x678) uf_9) (= (uf_227 ?x676 ?x677 ?x678) uf_9)) (= (uf_223 ?x677) ?x677)) :pat { (uf_227 ?x676 ?x677 ?x678) (uf_228 ?x678) })
+:assumption (forall (?x679 T3) (implies (= (uf_228 ?x679) uf_9) (= (uf_23 ?x679) uf_9)) :pat { (uf_228 ?x679) })
+:assumption (forall (?x680 T17) (?x681 T15) (?x682 T15) (?x683 Int) (or (= ?x681 ?x682) (= (uf_222 (uf_229 ?x680 ?x681 ?x683) ?x682) (uf_222 ?x680 ?x682))) :pat { (uf_222 (uf_229 ?x680 ?x681 ?x683) ?x682) })
+:assumption (forall (?x684 T17) (?x685 T15) (?x686 Int) (= (uf_222 (uf_229 ?x684 ?x685 ?x686) ?x685) ?x686) :pat { (uf_222 (uf_229 ?x684 ?x685 ?x686) ?x685) })
+:assumption (forall (?x687 T15) (= (uf_222 uf_230 ?x687) 0))
+:assumption (forall (?x688 T17) (?x689 T15) (?x690 Int) (?x691 Int) (?x692 Int) (?x693 Int) (= (uf_231 ?x688 ?x689 ?x690 ?x691 ?x692 ?x693) (uf_229 ?x688 ?x689 (uf_99 (uf_222 ?x688 ?x689) ?x690 ?x691 ?x692 ?x693))) :pat { (uf_231 ?x688 ?x689 ?x690 ?x691 ?x692 ?x693) })
+:assumption (forall (?x694 T4) (?x695 T5) (implies (= (uf_51 ?x694) uf_9) (and (= (uf_233 (uf_232 ?x694 ?x695)) ?x694) (= (uf_234 (uf_232 ?x694 ?x695)) (uf_116 ?x695)))) :pat { (uf_232 ?x694 ?x695) })
+:assumption (forall (?x696 T18) (= (uf_51 (uf_233 ?x696)) uf_9))
+:assumption (= (uf_51 (uf_233 uf_235)) uf_9)
+:assumption (forall (?x697 T4) (?x698 T5) (or (not (up_213 (uf_58 (uf_59 ?x697) ?x698))) (<= (uf_170 ?x697 ?x698) (uf_171 ?x697))) :pat { (uf_40 (uf_41 ?x697) ?x698) })
+:assumption (forall (?x699 T4) (?x700 T5) (implies (and (= (uf_135 (uf_58 (uf_59 ?x699) ?x700)) uf_9) (= (uf_51 ?x699) uf_9)) (= (uf_14 (uf_15 ?x700)) uf_16)) :pat { (uf_135 (uf_58 (uf_59 ?x699) ?x700)) })
+:assumption (forall (?x701 T4) (?x702 T5) (implies (= (uf_27 ?x701 ?x702) uf_9) (= (uf_27 ?x701 (uf_136 (uf_58 (uf_59 ?x701) ?x702))) uf_9)) :pat { (uf_27 ?x701 ?x702) (uf_58 (uf_59 ?x701) (uf_136 (uf_58 (uf_59 ?x701) ?x702))) })
+:assumption (forall (?x703 T14) (and (= (uf_22 (uf_15 (uf_136 ?x703))) uf_9) (not (= (uf_14 (uf_15 (uf_136 ?x703))) uf_16))) :pat { (uf_136 ?x703) })
+:assumption (forall (?x704 T5) (?x705 T15) (implies (<= 0 (uf_237 ?x705)) (= (uf_116 (uf_126 (uf_236 ?x704 ?x705) ?x705)) (uf_116 ?x704))) :pat { (uf_126 (uf_236 ?x704 ?x705) ?x705) })
+:assumption (forall (?x706 T5) (?x707 T15) (= (uf_236 ?x706 ?x707) (uf_43 (uf_238 ?x707) (uf_239 ?x706 ?x707))) :pat { (uf_236 ?x706 ?x707) })
+:assumption (forall (?x708 Int) (?x709 T15) (= (uf_236 (uf_126 (uf_43 (uf_238 ?x709) ?x708) ?x709) ?x709) (uf_43 (uf_238 ?x709) ?x708)) :pat { (uf_236 (uf_126 (uf_43 (uf_238 ?x709) ?x708) ?x709) ?x709) })
+:assumption (forall (?x710 T5) (?x711 T3) (implies (= (uf_48 ?x710 ?x711) uf_9) (= ?x710 (uf_43 ?x711 (uf_116 ?x710)))) :pat { (uf_48 ?x710 ?x711) })
+:assumption (forall (?x712 T5) (?x713 T3) (iff (= (uf_48 ?x712 ?x713) uf_9) (= (uf_15 ?x712) ?x713)))
+:assumption (= uf_121 (uf_43 uf_240 0))
+:assumption (forall (?x714 T15) (?x715 Int) (and (= (uf_242 (uf_241 ?x714 ?x715)) ?x715) (and (= (uf_243 (uf_241 ?x714 ?x715)) ?x714) (not (up_244 (uf_241 ?x714 ?x715))))) :pat { (uf_241 ?x714 ?x715) })
+:assumption (forall (?x716 T5) (?x717 T15) (and (= (uf_245 (uf_220 ?x716 ?x717)) ?x717) (= (uf_246 (uf_220 ?x716 ?x717)) ?x716)) :pat { (uf_220 ?x716 ?x717) })
+:assumption (forall (?x718 T3) (?x719 Int) (= (uf_116 (uf_43 ?x718 ?x719)) ?x719))
+:assumption (forall (?x720 T3) (?x721 Int) (= (uf_15 (uf_43 ?x720 ?x721)) ?x720))
+:assumption (forall (?x722 T3) (?x723 T3) (?x724 Int) (?x725 Int) (iff (= (uf_247 ?x722 ?x723 ?x724 ?x725) uf_9) (and (= (uf_248 ?x722 ?x723) ?x725) (and (= (uf_249 ?x722 ?x723) ?x724) (up_250 ?x722 ?x723)))) :pat { (uf_247 ?x722 ?x723 ?x724 ?x725) })
+:assumption (forall (?x726 T5) (= (uf_139 ?x726 ?x726) uf_9) :pat { (uf_15 ?x726) })
+:assumption (forall (?x727 T5) (?x728 T5) (?x729 T5) (implies (and (= (uf_139 ?x728 ?x729) uf_9) (= (uf_139 ?x727 ?x728) uf_9)) (= (uf_139 ?x727 ?x729) uf_9)) :pat { (uf_139 ?x727 ?x728) (uf_139 ?x728 ?x729) })
+:assumption (forall (?x730 T12) (?x731 T5) (?x732 T5) (?x733 T11) (or (= (uf_40 (uf_172 ?x730 ?x731 ?x733) ?x732) (uf_40 ?x730 ?x732)) (= ?x731 ?x732)))
+:assumption (forall (?x734 T12) (?x735 T5) (?x736 T11) (= (uf_40 (uf_172 ?x734 ?x735 ?x736) ?x735) ?x736))
+:assumption (forall (?x737 T13) (?x738 T5) (?x739 T5) (?x740 T14) (or (= (uf_58 (uf_251 ?x737 ?x738 ?x740) ?x739) (uf_58 ?x737 ?x739)) (= ?x738 ?x739)))
+:assumption (forall (?x741 T13) (?x742 T5) (?x743 T14) (= (uf_58 (uf_251 ?x741 ?x742 ?x743) ?x742) ?x743))
+:assumption (forall (?x744 T9) (?x745 T5) (?x746 T5) (?x747 Int) (or (= (uf_19 (uf_178 ?x744 ?x745 ?x747) ?x746) (uf_19 ?x744 ?x746)) (= ?x745 ?x746)))
+:assumption (forall (?x748 T9) (?x749 T5) (?x750 Int) (= (uf_19 (uf_178 ?x748 ?x749 ?x750) ?x749) ?x750))
+:assumption (= uf_26 (uf_43 uf_252 uf_253))
+:assumption (= (uf_23 uf_254) uf_9)
+:assumption (= (uf_23 uf_255) uf_9)
+:assumption (= (uf_23 uf_84) uf_9)
+:assumption (= (uf_23 uf_4) uf_9)
+:assumption (= (uf_23 uf_91) uf_9)
+:assumption (= (uf_23 uf_7) uf_9)
+:assumption (= (uf_23 uf_83) uf_9)
+:assumption (= (uf_23 uf_87) uf_9)
+:assumption (= (uf_23 uf_90) uf_9)
+:assumption (= (uf_23 uf_94) uf_9)
+:assumption (= (uf_208 uf_252) uf_9)
+:assumption (= (uf_23 uf_256) uf_9)
+:assumption (= (uf_23 uf_219) uf_9)
+:assumption (= (uf_23 uf_257) uf_9)
+:assumption (= (uf_23 uf_258) uf_9)
+:assumption (= (uf_23 uf_240) uf_9)
+:assumption (forall (?x751 T3) (implies (= (uf_23 ?x751) uf_9) (not (up_36 ?x751))) :pat { (uf_23 ?x751) })
+:assumption (forall (?x752 T3) (= (uf_23 (uf_6 ?x752)) uf_9) :pat { (uf_6 ?x752) })
+:assumption (forall (?x753 T3) (?x754 T3) (= (uf_23 (uf_259 ?x753 ?x754)) uf_9) :pat { (uf_259 ?x753 ?x754) })
+:assumption (forall (?x755 T3) (implies (= (uf_208 ?x755) uf_9) (= (uf_22 ?x755) uf_9)) :pat { (uf_208 ?x755) })
+:assumption (forall (?x756 T3) (implies (= (uf_141 ?x756) uf_9) (= (uf_22 ?x756) uf_9)) :pat { (uf_141 ?x756) })
+:assumption (forall (?x757 T3) (implies (= (uf_260 ?x757) uf_9) (= (uf_22 ?x757) uf_9)) :pat { (uf_260 ?x757) })
+:assumption (forall (?x758 T3) (iff (= (uf_208 ?x758) uf_9) (= (uf_14 ?x758) uf_261)) :pat { (uf_208 ?x758) })
+:assumption (forall (?x759 T3) (iff (= (uf_141 ?x759) uf_9) (= (uf_14 ?x759) uf_262)) :pat { (uf_141 ?x759) })
+:assumption (forall (?x760 T3) (iff (= (uf_260 ?x760) uf_9) (= (uf_14 ?x760) uf_263)) :pat { (uf_260 ?x760) })
+:assumption (forall (?x761 T3) (iff (= (uf_23 ?x761) uf_9) (= (uf_14 ?x761) uf_16)) :pat { (uf_23 ?x761) })
+:assumption (forall (?x762 T3) (?x763 T3) (= (uf_142 (uf_259 ?x762 ?x763)) (+ (uf_142 ?x762) 23)) :pat { (uf_259 ?x762 ?x763) })
+:assumption (forall (?x764 T3) (= (uf_142 (uf_6 ?x764)) (+ (uf_142 ?x764) 17)) :pat { (uf_6 ?x764) })
+:assumption (forall (?x765 T3) (?x766 T3) (= (uf_264 (uf_259 ?x765 ?x766)) ?x765) :pat { (uf_259 ?x765 ?x766) })
+:assumption (forall (?x767 T3) (?x768 T3) (= (uf_265 (uf_259 ?x767 ?x768)) ?x768) :pat { (uf_259 ?x767 ?x768) })
+:assumption (forall (?x769 T3) (= (uf_138 (uf_6 ?x769)) 8) :pat { (uf_6 ?x769) })
+:assumption (forall (?x770 T3) (= (uf_266 (uf_6 ?x770)) ?x770) :pat { (uf_6 ?x770) })
+:assumption (= (uf_260 uf_267) uf_9)
+:assumption (= (uf_260 uf_37) uf_9)
+:assumption (= (uf_142 uf_268) 0)
+:assumption (= (uf_142 uf_256) 0)
+:assumption (= (uf_142 uf_252) 0)
+:assumption (= (uf_142 uf_219) 0)
+:assumption (= (uf_142 uf_267) 0)
+:assumption (= (uf_142 uf_37) 0)
+:assumption (= (uf_142 uf_240) 0)
+:assumption (= (uf_142 uf_258) 0)
+:assumption (= (uf_142 uf_257) 0)
+:assumption (= (uf_142 uf_254) 0)
+:assumption (= (uf_142 uf_255) 0)
+:assumption (= (uf_142 uf_84) 0)
+:assumption (= (uf_142 uf_4) 0)
+:assumption (= (uf_142 uf_91) 0)
+:assumption (= (uf_142 uf_7) 0)
+:assumption (= (uf_142 uf_83) 0)
+:assumption (= (uf_142 uf_87) 0)
+:assumption (= (uf_142 uf_90) 0)
+:assumption (= (uf_142 uf_94) 0)
+:assumption (= (uf_138 uf_219) 1)
+:assumption (= (uf_138 uf_252) 1)
+:assumption (= (uf_138 uf_254) 8)
+:assumption (= (uf_138 uf_255) 4)
+:assumption (= (uf_138 uf_84) 8)
+:assumption (= (uf_138 uf_4) 4)
+:assumption (= (uf_138 uf_91) 2)
+:assumption (= (uf_138 uf_7) 1)
+:assumption (= (uf_138 uf_83) 8)
+:assumption (= (uf_138 uf_87) 4)
+:assumption (= (uf_138 uf_90) 2)
+:assumption (= (uf_138 uf_94) 1)
+:assumption (not (implies true (implies (and (<= uf_269 uf_78) (<= 0 uf_269)) (implies (and (<= uf_270 uf_76) (<= 0 uf_270)) (implies (and (<= uf_271 uf_76) (<= 0 uf_271)) (implies (< uf_272 1099511627776) (implies (< 0 uf_272) (implies (and (= (uf_22 (uf_124 uf_7 uf_272)) uf_9) (and (not (= (uf_14 (uf_124 uf_7 uf_272)) uf_16)) (and (= (uf_27 uf_273 (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274)))) uf_9) (and (= (uf_48 (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274))) (uf_124 uf_7 uf_272)) uf_9) (and (= (uf_25 uf_273 (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274)))) uf_26) (= (uf_24 uf_273 (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274)))) uf_9)))))) (implies true (implies (= (uf_203 uf_273) uf_9) (implies (and (= (uf_55 uf_273) uf_9) (= (uf_202 uf_275 uf_273) uf_9)) (implies (forall (?x771 T19) (< (uf_276 ?x771) uf_277) :pat { (uf_276 ?x771) }) (implies (and (up_278 uf_273 uf_275 uf_279 (uf_43 uf_7 uf_274) (uf_6 uf_7)) (up_280 uf_273 uf_275 uf_279 (uf_29 (uf_43 uf_7 uf_274)) (uf_6 uf_7))) (implies (up_280 uf_273 uf_275 uf_281 uf_272 uf_4) (implies (= uf_282 (uf_171 uf_273)) (implies (forall (?x772 T5) (iff (= (uf_283 uf_282 ?x772) uf_9) false) :pat { (uf_283 uf_282 ?x772) }) (implies (and (<= uf_272 uf_76) (<= 0 uf_272)) (and (implies (= (uf_200 uf_273 (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274))) (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274))) uf_284) uf_9) (and (implies (and (= (uf_27 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7) uf_7) uf_9)) (and (implies (and (= (uf_67 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7) uf_7) uf_9)) (implies (= uf_285 (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7))) (implies (up_280 uf_273 uf_286 uf_287 uf_285 uf_7) (implies (up_280 uf_273 uf_288 uf_289 0 uf_4) (implies (up_280 uf_273 uf_290 uf_291 1 uf_4) (implies (and (<= 0 0) (and (<= 0 0) (and (<= 1 1) (<= 1 1)))) (and (implies (<= 1 uf_272) (and (implies (forall (?x773 Int) (implies (and (<= ?x773 uf_76) (<= 0 ?x773)) (implies (< ?x773 1) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x773 uf_7)) uf_285)))) (and (implies (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7)) uf_285) (< 0 uf_272)) (implies true (implies (and (<= uf_292 uf_78) (<= 0 uf_292)) (implies (and (<= uf_293 uf_76) (<= 0 uf_293)) (implies (and (<= uf_294 uf_76) (<= 0 uf_294)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (<= uf_294 uf_272) (implies (forall (?x774 Int) (implies (and (<= ?x774 uf_76) (<= 0 ?x774)) (implies (< ?x774 uf_294) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x774 uf_7)) uf_292)))) (implies (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_293 uf_7)) uf_292) (< uf_293 uf_272)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (and (= (uf_177 uf_273 uf_273) uf_9) (and (forall (?x775 T5) (<= (uf_170 uf_273 ?x775) (uf_170 uf_273 ?x775)) :pat { (uf_170 uf_273 ?x775) }) (and (<= (uf_171 uf_273) (uf_171 uf_273)) (and (forall (?x776 T5) (implies (= (uf_67 uf_273 ?x776) uf_9) (and (= (uf_67 uf_273 ?x776) uf_9) (= (uf_58 (uf_59 uf_273) ?x776) (uf_58 (uf_59 uf_273) ?x776)))) :pat { (uf_58 (uf_59 uf_273) ?x776) }) (and (forall (?x777 T5) (implies (= (uf_67 uf_273 ?x777) uf_9) (and (= (uf_67 uf_273 ?x777) uf_9) (= (uf_40 (uf_41 uf_273) ?x777) (uf_40 (uf_41 uf_273) ?x777)))) :pat { (uf_40 (uf_41 uf_273) ?x777) }) (and (forall (?x778 T5) (implies (= (uf_67 uf_273 ?x778) uf_9) (and (= (uf_67 uf_273 ?x778) uf_9) (= (uf_19 (uf_20 uf_273) ?x778) (uf_19 (uf_20 uf_273) ?x778)))) :pat { (uf_19 (uf_20 uf_273) ?x778) }) (forall (?x779 T5) (implies (not (= (uf_14 (uf_15 (uf_25 uf_273 ?x779))) uf_261)) (not (= (uf_14 (uf_15 (uf_25 uf_273 ?x779))) uf_261))) :pat { (uf_40 (uf_41 uf_273) ?x779) }))))))) (implies (and (= (uf_177 uf_273 uf_273) uf_9) (and (forall (?x780 T5) (<= (uf_170 uf_273 ?x780) (uf_170 uf_273 ?x780)) :pat { (uf_170 uf_273 ?x780) }) (<= (uf_171 uf_273) (uf_171 uf_273)))) (implies (and (= (uf_55 uf_273) uf_9) (= (uf_202 uf_295 uf_273) uf_9)) (implies (up_280 uf_273 uf_295 uf_291 uf_294 uf_4) (implies (up_280 uf_273 uf_295 uf_289 uf_293 uf_4) (implies (up_280 uf_273 uf_295 uf_287 uf_292 uf_7) (implies (up_280 uf_273 uf_295 uf_281 uf_272 uf_4) (implies (and (up_278 uf_273 uf_295 uf_279 (uf_43 uf_7 uf_274) (uf_6 uf_7)) (up_280 uf_273 uf_295 uf_279 (uf_29 (uf_43 uf_7 uf_274)) (uf_6 uf_7))) (implies (and (= (uf_41 uf_273) (uf_41 uf_273)) (= (uf_59 uf_273) (uf_59 uf_273))) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (<= uf_272 uf_294) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies up_216 (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (= uf_296 uf_292) (implies (= uf_297 uf_294) (implies (= uf_298 uf_293) (implies (= uf_299 uf_292) (implies true (and (implies (forall (?x781 Int) (implies (and (<= ?x781 uf_76) (<= 0 ?x781)) (implies (< ?x781 uf_272) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x781 uf_7)) uf_299)))) (and (implies (exists (?x782 Int) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x782 uf_7)) uf_299) (and (< ?x782 uf_272) (and (<= ?x782 uf_76) (<= 0 ?x782))))) true) (exists (?x783 Int) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x783 uf_7)) uf_299) (and (< ?x783 uf_272) (and (<= ?x783 uf_76) (<= 0 ?x783))))))) (forall (?x784 Int) (implies (and (<= ?x784 uf_76) (<= 0 ?x784)) (implies (< ?x784 uf_272) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x784 uf_7)) uf_299)))))))))))))))) up_216)))))))))) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (< uf_294 uf_272) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies (and (= (uf_27 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)) (and (implies (and (= (uf_67 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_292) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (= uf_300 uf_292) (implies (= uf_301 uf_293) (implies true (implies (and (<= 0 uf_301) (<= 1 uf_294)) (and (implies (and (<= (+ uf_294 1) uf_76) (<= 0 (+ uf_294 1))) (implies (= uf_302 (+ uf_294 1)) (implies (up_280 uf_273 uf_303 uf_291 uf_302 uf_4) (implies (and (<= 0 uf_301) (<= 2 uf_302)) (implies true (and (implies (<= uf_302 uf_272) (and (implies (forall (?x785 Int) (implies (and (<= ?x785 uf_76) (<= 0 ?x785)) (implies (< ?x785 uf_302) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x785 uf_7)) uf_300)))) (and (implies (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_301 uf_7)) uf_300) (< uf_301 uf_272)) (implies false true)) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_301 uf_7)) uf_300) (< uf_301 uf_272)))) (forall (?x786 Int) (implies (and (<= ?x786 uf_76) (<= 0 ?x786)) (implies (< ?x786 uf_302) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x786 uf_7)) uf_300)))))) (<= uf_302 uf_272))))))) (and (<= (+ uf_294 1) uf_76) (<= 0 (+ uf_294 1)))))))))))))))) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (< uf_292 (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7))) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies (and (= (uf_27 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)) (and (implies (and (= (uf_67 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)) (implies (= uf_304 (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7))) (implies (up_280 uf_273 uf_305 uf_287 uf_304 uf_7) (implies (up_280 uf_273 uf_306 uf_289 uf_294 uf_4) (implies (and (<= 1 uf_294) (<= 1 uf_294)) (implies true (implies (= uf_300 uf_304) (implies (= uf_301 uf_294) (implies true (implies (and (<= 0 uf_301) (<= 1 uf_294)) (and (implies (and (<= (+ uf_294 1) uf_76) (<= 0 (+ uf_294 1))) (implies (= uf_302 (+ uf_294 1)) (implies (up_280 uf_273 uf_303 uf_291 uf_302 uf_4) (implies (and (<= 0 uf_301) (<= 2 uf_302)) (implies true (and (implies (<= uf_302 uf_272) (and (implies (forall (?x787 Int) (implies (and (<= ?x787 uf_76) (<= 0 ?x787)) (implies (< ?x787 uf_302) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x787 uf_7)) uf_300)))) (and (implies (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_301 uf_7)) uf_300) (< uf_301 uf_272)) (implies false true)) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_301 uf_7)) uf_300) (< uf_301 uf_272)))) (forall (?x788 Int) (implies (and (<= ?x788 uf_76) (<= 0 ?x788)) (implies (< ?x788 uf_302) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x788 uf_7)) uf_300)))))) (<= uf_302 uf_272))))))) (and (<= (+ uf_294 1) uf_76) (<= 0 (+ uf_294 1)))))))))))))) (and (= (uf_67 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)))) (and (= (uf_27 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)))))))))))) (and (= (uf_67 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)))) (and (= (uf_27 uf_273 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) uf_294 uf_7) uf_7) uf_9)))))))))))))))))))))))))) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (not true) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (and (= (uf_55 uf_273) uf_9) (= (uf_202 uf_295 uf_273) uf_9)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (and (implies up_216 (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies (and (<= 0 uf_293) (<= 1 uf_294)) (implies true (implies (= uf_296 uf_292) (implies (= uf_297 uf_294) (implies (= uf_298 uf_293) (implies (= uf_299 uf_292) (implies true (and (implies (forall (?x789 Int) (implies (and (<= ?x789 uf_76) (<= 0 ?x789)) (implies (< ?x789 uf_272) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x789 uf_7)) uf_299)))) (and (implies (exists (?x790 Int) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x790 uf_7)) uf_299) (and (< ?x790 uf_272) (and (<= ?x790 uf_76) (<= 0 ?x790))))) true) (exists (?x791 Int) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x791 uf_7)) uf_299) (and (< ?x791 uf_272) (and (<= ?x791 uf_76) (<= 0 ?x791))))))) (forall (?x792 Int) (implies (and (<= ?x792 uf_76) (<= 0 ?x792)) (implies (< ?x792 uf_272) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x792 uf_7)) uf_299)))))))))))))))) up_216)))))))))))))))))))))) (and (= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7)) uf_285) (< 0 uf_272)))) (forall (?x793 Int) (implies (and (<= ?x793 uf_76) (<= 0 ?x793)) (implies (< ?x793 1) (<= (uf_110 uf_273 (uf_66 (uf_43 uf_7 uf_274) ?x793 uf_7)) uf_285)))))) (<= 1 uf_272)))))))) (and (= (uf_67 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7) uf_7) uf_9)))) (and (= (uf_27 uf_273 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7)) uf_9) (= (uf_48 (uf_66 (uf_43 uf_7 uf_274) 0 uf_7) uf_7) uf_9)))) (= (uf_200 uf_273 (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274))) (uf_43 (uf_124 uf_7 uf_272) (uf_116 (uf_43 uf_7 uf_274))) uf_284) uf_9)))))))))))))))))))
+:formula true
+)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Boogie/Examples/cert/VCC_maximum.proof	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,8070 @@
+#2 := false
+#121 := 0::int
+decl uf_110 :: (-> T4 T5 int)
+decl uf_66 :: (-> T5 int T3 T5)
+decl uf_7 :: T3
+#10 := uf_7
+decl ?x785!14 :: int
+#19054 := ?x785!14
+decl uf_43 :: (-> T3 int T5)
+decl uf_274 :: int
+#2959 := uf_274
+#2960 := (uf_43 uf_7 uf_274)
+#19059 := (uf_66 #2960 ?x785!14 uf_7)
+decl uf_273 :: T4
+#2958 := uf_273
+#19060 := (uf_110 uf_273 #19059)
+#4076 := -1::int
+#19385 := (* -1::int #19060)
+decl uf_300 :: int
+#3186 := uf_300
+#19386 := (+ uf_300 #19385)
+#19387 := (>= #19386 0::int)
+#23584 := (not #19387)
+#19372 := (* -1::int ?x785!14)
+decl uf_302 :: int
+#3196 := uf_302
+#19373 := (+ uf_302 #19372)
+#19374 := (<= #19373 0::int)
+#19056 := (>= ?x785!14 0::int)
+#22816 := (not #19056)
+#7878 := 131073::int
+#19055 := (<= ?x785!14 131073::int)
+#22815 := (not #19055)
+#22831 := (or #22815 #22816 #19374 #19387)
+#22836 := (not #22831)
+#161 := (:var 0 int)
+#3039 := (uf_66 #2960 #161 uf_7)
+#23745 := (pattern #3039)
+#15606 := (<= #161 131073::int)
+#20064 := (not #15606)
+#14120 := (* -1::int uf_300)
+#3040 := (uf_110 uf_273 #3039)
+#14121 := (+ #3040 #14120)
+#14122 := (<= #14121 0::int)
+#14101 := (* -1::int uf_302)
+#14110 := (+ #161 #14101)
+#14109 := (>= #14110 0::int)
+#4084 := (>= #161 0::int)
+#5113 := (not #4084)
+#22797 := (or #5113 #14109 #14122 #20064)
+#23762 := (forall (vars (?x785 int)) (:pat #23745) #22797)
+#23767 := (not #23762)
+decl uf_301 :: int
+#3188 := uf_301
+#14142 := (* -1::int uf_301)
+decl uf_272 :: int
+#2949 := uf_272
+#14143 := (+ uf_272 #14142)
+#14144 := (<= #14143 0::int)
+#3208 := (uf_66 #2960 uf_301 uf_7)
+#3209 := (uf_110 uf_273 #3208)
+#12862 := (= uf_300 #3209)
+#22782 := (not #12862)
+#22783 := (or #22782 #14144)
+#22784 := (not #22783)
+#23770 := (or #22784 #23767)
+#14145 := (not #14144)
+decl uf_294 :: int
+#3055 := uf_294
+#14044 := (* -1::int uf_294)
+#14045 := (+ uf_272 #14044)
+#14046 := (<= #14045 0::int)
+#14049 := (not #14046)
+decl uf_125 :: (-> T5 T5 int)
+decl uf_28 :: (-> int T5)
+decl uf_29 :: (-> T5 int)
+#2992 := (uf_29 #2960)
+#23223 := (uf_28 #2992)
+decl uf_15 :: (-> T5 T3)
+#26404 := (uf_15 #23223)
+decl uf_293 :: int
+#3051 := uf_293
+#26963 := (uf_66 #23223 uf_293 #26404)
+#26964 := (uf_125 #26963 #23223)
+#27037 := (>= #26964 0::int)
+#13947 := (>= uf_293 0::int)
+decl ?x781!15 :: int
+#19190 := ?x781!15
+#19195 := (uf_66 #2960 ?x781!15 uf_7)
+#19196 := (uf_110 uf_273 #19195)
+#19541 := (* -1::int #19196)
+decl uf_299 :: int
+#3138 := uf_299
+#19542 := (+ uf_299 #19541)
+#19543 := (>= #19542 0::int)
+#19528 := (* -1::int ?x781!15)
+#19529 := (+ uf_272 #19528)
+#19530 := (<= #19529 0::int)
+#19192 := (>= ?x781!15 0::int)
+#22993 := (not #19192)
+#19191 := (<= ?x781!15 131073::int)
+#22992 := (not #19191)
+#23008 := (or #22992 #22993 #19530 #19543)
+#23013 := (not #23008)
+#13873 := (* -1::int uf_272)
+#13960 := (+ #161 #13873)
+#13959 := (>= #13960 0::int)
+#3145 := (= #3040 uf_299)
+#22966 := (not #3145)
+#22967 := (or #22966 #5113 #13959 #20064)
+#23886 := (forall (vars (?x782 int)) (:pat #23745) #22967)
+#23891 := (not #23886)
+#13970 := (* -1::int uf_299)
+#13971 := (+ #3040 #13970)
+#13972 := (<= #13971 0::int)
+#22958 := (or #5113 #13959 #13972 #20064)
+#23878 := (forall (vars (?x781 int)) (:pat #23745) #22958)
+#23883 := (not #23878)
+#23894 := (or #23883 #23891)
+#23897 := (not #23894)
+#23900 := (or #23897 #23013)
+#23903 := (not #23900)
+#4 := 1::int
+#13950 := (>= uf_294 1::int)
+#14243 := (not #13950)
+#22873 := (not #13947)
+decl uf_292 :: int
+#3047 := uf_292
+#12576 := (= uf_292 uf_299)
+#12644 := (not #12576)
+decl uf_298 :: int
+#3136 := uf_298
+#12573 := (= uf_293 uf_298)
+#12653 := (not #12573)
+decl uf_297 :: int
+#3134 := uf_297
+#12570 := (= uf_294 uf_297)
+#12662 := (not #12570)
+decl uf_296 :: int
+#3132 := uf_296
+#12567 := (= uf_292 uf_296)
+#12671 := (not #12567)
+#23906 := (or #12671 #12662 #12653 #12644 #22873 #14243 #14049 #23903)
+#23909 := (not #23906)
+#23773 := (not #23770)
+#23776 := (or #23773 #22836)
+#23779 := (not #23776)
+#14102 := (+ uf_272 #14101)
+#14100 := (>= #14102 0::int)
+#14105 := (not #14100)
+#23782 := (or #14105 #23779)
+#23785 := (not #23782)
+#23788 := (or #14105 #23785)
+#23791 := (not #23788)
+#1066 := 131072::int
+#16368 := (<= uf_294 131072::int)
+#19037 := (not #16368)
+#14169 := (+ uf_294 #14101)
+#14168 := (= #14169 -1::int)
+#14172 := (not #14168)
+#1120 := 2::int
+#14092 := (>= uf_302 2::int)
+#22859 := (not #14092)
+#14088 := (>= uf_294 -1::int)
+#19034 := (not #14088)
+#14076 := (>= uf_301 0::int)
+#22858 := (not #14076)
+decl up_280 :: (-> T4 T1 T1 int T3 bool)
+decl uf_4 :: T3
+#7 := uf_4
+decl uf_291 :: T1
+#3030 := uf_291
+decl uf_303 :: T1
+#3198 := uf_303
+#3199 := (up_280 uf_273 uf_303 uf_291 uf_302 uf_4)
+#12942 := (not #3199)
+#23794 := (or #12942 #22858 #19034 #22859 #14172 #19037 #23791)
+#23797 := (not #23794)
+#23800 := (or #19034 #19037 #23797)
+#23803 := (not #23800)
+#13075 := (= uf_294 uf_301)
+#13081 := (not #13075)
+decl uf_304 :: int
+#3239 := uf_304
+#3175 := (uf_66 #2960 uf_294 uf_7)
+#3184 := (uf_110 uf_273 #3175)
+#13070 := (= #3184 uf_304)
+#13133 := (not #13070)
+decl uf_67 :: (-> T4 T5 T2)
+#3181 := (uf_67 uf_273 #3175)
+decl uf_9 :: T2
+#19 := uf_9
+#12812 := (= uf_9 #3181)
+#19017 := (not #12812)
+decl uf_48 :: (-> T5 T3 T2)
+#3178 := (uf_48 #3175 uf_7)
+#12806 := (= uf_9 #3178)
+#19011 := (not #12806)
+#3246 := (= uf_300 uf_304)
+#13090 := (not #3246)
+decl uf_289 :: T1
+#3027 := uf_289
+decl uf_306 :: T1
+#3243 := uf_306
+#3244 := (up_280 uf_273 uf_306 uf_289 uf_294 uf_4)
+#13115 := (not #3244)
+decl uf_287 :: T1
+#3024 := uf_287
+decl uf_305 :: T1
+#3241 := uf_305
+#3242 := (up_280 uf_273 uf_305 uf_287 uf_304 uf_7)
+#13124 := (not #3242)
+#23812 := (or #13124 #13115 #13090 #19011 #19017 #13133 #13081 #14243 #22858 #23803)
+#23815 := (not #23812)
+#23818 := (or #19011 #19017 #23815)
+#23821 := (not #23818)
+decl uf_27 :: (-> T4 T5 T2)
+#3176 := (uf_27 uf_273 #3175)
+#12803 := (= uf_9 #3176)
+#19008 := (not #12803)
+#23824 := (or #19008 #19011 #23821)
+#23827 := (not #23824)
+#23830 := (or #19008 #19011 #23827)
+#23833 := (not #23830)
+#14208 := (* -1::int #3184)
+#14209 := (+ uf_292 #14208)
+#14207 := (>= #14209 0::int)
+#23836 := (or #22873 #14243 #14207 #23833)
+#23839 := (not #23836)
+#14211 := (not #14207)
+#12826 := (= uf_293 uf_301)
+#12993 := (not #12826)
+#12823 := (= uf_292 uf_300)
+#13002 := (not #12823)
+#23806 := (or #13002 #12993 #22873 #14243 #22858 #14211 #23803)
+#23809 := (not #23806)
+#23842 := (or #23809 #23839)
+#23845 := (not #23842)
+#23848 := (or #19011 #19017 #22873 #14243 #23845)
+#23851 := (not #23848)
+#23854 := (or #19011 #19017 #23851)
+#23857 := (not #23854)
+#23860 := (or #19008 #19011 #23857)
+#23863 := (not #23860)
+#23866 := (or #19008 #19011 #23863)
+#23869 := (not #23866)
+#23872 := (or #22873 #14243 #14046 #23869)
+#23875 := (not #23872)
+#23912 := (or #23875 #23909)
+#23915 := (not #23912)
+#14431 := (* -1::int uf_292)
+#14432 := (+ #3040 #14431)
+#14433 := (<= #14432 0::int)
+#14421 := (+ #161 #14044)
+#14420 := (>= #14421 0::int)
+#22774 := (or #5113 #14420 #14433 #20064)
+#23754 := (forall (vars (?x774 int)) (:pat #23745) #22774)
+#23759 := (not #23754)
+#1322 := 255::int
+#16349 := (<= uf_292 255::int)
+#23043 := (not #16349)
+#16332 := (<= uf_293 131073::int)
+#23042 := (not #16332)
+#16310 := (<= uf_294 131073::int)
+#23041 := (not #16310)
+#14490 := (>= uf_292 0::int)
+#23039 := (not #14490)
+#14462 := (>= uf_294 0::int)
+#23038 := (not #14462)
+#14453 := (>= #14045 0::int)
+#14456 := (not #14453)
+#14402 := (* -1::int uf_293)
+#14403 := (+ uf_272 #14402)
+#14404 := (<= #14403 0::int)
+#13942 := (<= uf_272 0::int)
+decl uf_202 :: (-> T1 T4 T2)
+decl uf_295 :: T1
+#3117 := uf_295
+#3118 := (uf_202 uf_295 uf_273)
+#12553 := (= uf_9 #3118)
+#15709 := (not #12553)
+decl uf_177 :: (-> T4 T4 T2)
+#3072 := (uf_177 uf_273 uf_273)
+#12437 := (= uf_9 #3072)
+#14399 := (not #12437)
+#3067 := (uf_66 #2960 uf_293 uf_7)
+#3068 := (uf_110 uf_273 #3067)
+#12426 := (= uf_292 #3068)
+#23037 := (not #12426)
+decl uf_6 :: (-> T3 T3)
+#11 := (uf_6 uf_7)
+decl uf_279 :: T1
+#2990 := uf_279
+#3126 := (up_280 uf_273 uf_295 uf_279 #2992 #11)
+#23036 := (not #3126)
+decl up_278 :: (-> T4 T1 T1 T5 T3 bool)
+#3125 := (up_278 uf_273 uf_295 uf_279 #2960 #11)
+#23035 := (not #3125)
+decl uf_281 :: T1
+#2995 := uf_281
+#3124 := (up_280 uf_273 uf_295 uf_281 uf_272 uf_4)
+#13340 := (not #3124)
+#3123 := (up_280 uf_273 uf_295 uf_287 uf_292 uf_7)
+#13349 := (not #3123)
+#3122 := (up_280 uf_273 uf_295 uf_289 uf_293 uf_4)
+#13358 := (not #3122)
+#3121 := (up_280 uf_273 uf_295 uf_291 uf_294 uf_4)
+#13367 := (not #3121)
+#3011 := (uf_66 #2960 0::int uf_7)
+#3021 := (uf_110 uf_273 #3011)
+decl uf_285 :: int
+#3020 := uf_285
+#3022 := (= uf_285 #3021)
+#13672 := (not #3022)
+#23918 := (or #13672 #13367 #13358 #13349 #13340 #23035 #23036 #23037 #14399 #15709 #13942 #22873 #14243 #14404 #14456 #23038 #23039 #23041 #23042 #23043 #23759 #23915)
+#23921 := (not #23918)
+#23924 := (or #13672 #13942 #23921)
+#23927 := (not #23924)
+#13922 := (* -1::int #3040)
+#13923 := (+ uf_285 #13922)
+#13921 := (>= #13923 0::int)
+#13910 := (>= #161 1::int)
+#22763 := (or #5113 #13910 #13921 #20064)
+#23746 := (forall (vars (?x773 int)) (:pat #23745) #22763)
+#23751 := (not #23746)
+#23930 := (or #23751 #23927)
+#23933 := (not #23930)
+decl ?x773!13 :: int
+#18929 := ?x773!13
+#18939 := (>= ?x773!13 1::int)
+#18934 := (uf_66 #2960 ?x773!13 uf_7)
+#18935 := (uf_110 uf_273 #18934)
+#18936 := (* -1::int #18935)
+#18937 := (+ uf_285 #18936)
+#18938 := (>= #18937 0::int)
+#18931 := (>= ?x773!13 0::int)
+#22737 := (not #18931)
+#18930 := (<= ?x773!13 131073::int)
+#22736 := (not #18930)
+#22752 := (or #22736 #22737 #18938 #18939)
+#22757 := (not #22752)
+#23936 := (or #22757 #23933)
+#23939 := (not #23936)
+#13903 := (>= uf_272 1::int)
+#13906 := (not #13903)
+#23942 := (or #13906 #23939)
+#23945 := (not #23942)
+#23948 := (or #13906 #23945)
+#23951 := (not #23948)
+#3017 := (uf_67 uf_273 #3011)
+#12367 := (= uf_9 #3017)
+#18906 := (not #12367)
+#3014 := (uf_48 #3011 uf_7)
+#12361 := (= uf_9 #3014)
+#18900 := (not #12361)
+decl uf_290 :: T1
+#3029 := uf_290
+#3031 := (up_280 uf_273 uf_290 uf_291 1::int uf_4)
+#13645 := (not #3031)
+decl uf_288 :: T1
+#3026 := uf_288
+#3028 := (up_280 uf_273 uf_288 uf_289 0::int uf_4)
+#13654 := (not #3028)
+decl uf_286 :: T1
+#3023 := uf_286
+#3025 := (up_280 uf_273 uf_286 uf_287 uf_285 uf_7)
+#13663 := (not #3025)
+#23954 := (or #13672 #13663 #13654 #13645 #18900 #18906 #23951)
+#23957 := (not #23954)
+#23960 := (or #18900 #18906 #23957)
+#23963 := (not #23960)
+#3012 := (uf_27 uf_273 #3011)
+#12358 := (= uf_9 #3012)
+#18897 := (not #12358)
+#23966 := (or #18897 #18900 #23963)
+#23969 := (not #23966)
+#23972 := (or #18897 #18900 #23969)
+#23975 := (not #23972)
+decl uf_200 :: (-> T4 T5 T5 T16 T2)
+decl uf_284 :: T16
+#3008 := uf_284
+decl uf_116 :: (-> T5 int)
+#2961 := (uf_116 #2960)
+decl uf_124 :: (-> T3 int T3)
+#2952 := (uf_124 uf_7 uf_272)
+#2962 := (uf_43 #2952 #2961)
+#3009 := (uf_200 uf_273 #2962 #2962 uf_284)
+#12355 := (= uf_9 #3009)
+#13715 := (not #12355)
+#23978 := (or #13715 #23975)
+#23981 := (not #23978)
+decl uf_14 :: (-> T3 T8)
+#24016 := (uf_116 #2962)
+#25404 := (uf_43 #2952 #24016)
+#25815 := (uf_15 #25404)
+#26092 := (uf_14 #25815)
+decl uf_16 :: T8
+#35 := uf_16
+#26095 := (= uf_16 #26092)
+#26297 := (not #26095)
+#2955 := (uf_14 #2952)
+#12296 := (= uf_16 #2955)
+#12299 := (not #12296)
+#26298 := (iff #12299 #26297)
+#26293 := (iff #12296 #26095)
+#26342 := (iff #26095 #12296)
+#26340 := (= #26092 #2955)
+#26338 := (= #25815 #2952)
+#24234 := (uf_15 #2962)
+#28358 := (= #24234 #2952)
+#24237 := (= #2952 #24234)
+#326 := (:var 1 T3)
+#2692 := (uf_43 #326 #161)
+#23682 := (pattern #2692)
+#2696 := (uf_15 #2692)
+#11677 := (= #326 #2696)
+#23689 := (forall (vars (?x720 T3) (?x721 int)) (:pat #23682) #11677)
+#11681 := (forall (vars (?x720 T3) (?x721 int)) #11677)
+#23692 := (iff #11681 #23689)
+#23690 := (iff #11677 #11677)
+#23691 := [refl]: #23690
+#23693 := [quant-intro #23691]: #23692
+#18759 := (~ #11681 #11681)
+#18757 := (~ #11677 #11677)
+#18758 := [refl]: #18757
+#18760 := [nnf-pos #18758]: #18759
+#2697 := (= #2696 #326)
+#2698 := (forall (vars (?x720 T3) (?x721 int)) #2697)
+#11682 := (iff #2698 #11681)
+#11679 := (iff #2697 #11677)
+#11680 := [rewrite]: #11679
+#11683 := [quant-intro #11680]: #11682
+#11676 := [asserted]: #2698
+#11686 := [mp #11676 #11683]: #11681
+#18761 := [mp~ #11686 #18760]: #11681
+#23694 := [mp #18761 #23693]: #23689
+#24181 := (not #23689)
+#24242 := (or #24181 #24237)
+#24243 := [quant-inst]: #24242
+#28006 := [unit-resolution #24243 #23694]: #24237
+#28359 := [symm #28006]: #28358
+#26336 := (= #25815 #24234)
+#27940 := (= #25404 #2962)
+#25411 := (= #2962 #25404)
+#2965 := (uf_48 #2962 #2952)
+#12305 := (= uf_9 #2965)
+decl uf_24 :: (-> T4 T5 T2)
+#2969 := (uf_24 uf_273 #2962)
+#12311 := (= uf_9 #2969)
+decl uf_25 :: (-> T4 T5 T5)
+#2967 := (uf_25 uf_273 #2962)
+decl uf_26 :: T5
+#78 := uf_26
+#12308 := (= uf_26 #2967)
+#2963 := (uf_27 uf_273 #2962)
+#12302 := (= uf_9 #2963)
+decl uf_22 :: (-> T3 T2)
+#2953 := (uf_22 #2952)
+#12293 := (= uf_9 #2953)
+#14658 := (and #12293 #12299 #12302 #12305 #12308 #12311)
+decl uf_269 :: int
+#2937 := uf_269
+#14715 := (>= uf_269 0::int)
+#14711 := (* -1::int uf_269)
+decl uf_78 :: int
+#429 := uf_78
+#14712 := (+ uf_78 #14711)
+#14710 := (>= #14712 0::int)
+#14718 := (and #14710 #14715)
+#14721 := (not #14718)
+decl uf_270 :: int
+#2941 := uf_270
+#14701 := (>= uf_270 0::int)
+#14697 := (* -1::int uf_270)
+decl uf_76 :: int
+#409 := uf_76
+#14698 := (+ uf_76 #14697)
+#14696 := (>= #14698 0::int)
+#14704 := (and #14696 #14701)
+#14707 := (not #14704)
+decl uf_271 :: int
+#2945 := uf_271
+#14687 := (>= uf_271 0::int)
+#14683 := (* -1::int uf_271)
+#14684 := (+ uf_76 #14683)
+#14682 := (>= #14684 0::int)
+#14690 := (and #14682 #14687)
+#14693 := (not #14690)
+#974 := 1099511627776::int
+#14671 := (>= uf_272 1099511627776::int)
+#14661 := (not #14658)
+decl uf_276 :: (-> T19 int)
+#2984 := (:var 0 T19)
+#2985 := (uf_276 #2984)
+#2986 := (pattern #2985)
+decl uf_277 :: int
+#2987 := uf_277
+#14648 := (* -1::int uf_277)
+#14649 := (+ #2985 #14648)
+#14647 := (>= #14649 0::int)
+#14646 := (not #14647)
+#14652 := (forall (vars (?x771 T19)) (:pat #2986) #14646)
+#14655 := (not #14652)
+#13943 := (not #13942)
+#14502 := (and #3022 #13943)
+#14507 := (not #14502)
+#14487 := (+ uf_78 #14431)
+#14486 := (>= #14487 0::int)
+#14493 := (and #14486 #14490)
+#14496 := (not #14493)
+#14472 := (+ uf_76 #14402)
+#14471 := (>= #14472 0::int)
+#14478 := (and #13947 #14471)
+#14483 := (not #14478)
+#14085 := (+ uf_76 #14044)
+#14459 := (>= #14085 0::int)
+#14465 := (and #14459 #14462)
+#14468 := (not #14465)
+#4413 := (* -1::int uf_76)
+#4418 := (+ #161 #4413)
+#4419 := (<= #4418 0::int)
+#5736 := (and #4084 #4419)
+#5739 := (not #5736)
+#14442 := (or #5739 #14420 #14433)
+#14447 := (forall (vars (?x774 int)) #14442)
+#14450 := (not #14447)
+#14405 := (not #14404)
+#14411 := (and #12426 #14405)
+#14416 := (not #14411)
+#14084 := (>= #14085 1::int)
+#14175 := (and #14084 #14088)
+#14178 := (not #14175)
+#14151 := (and #12862 #14145)
+#14131 := (or #5739 #14109 #14122)
+#14136 := (forall (vars (?x785 int)) #14131)
+#14139 := (not #14136)
+#14156 := (or #14139 #14151)
+#14159 := (and #14136 #14156)
+#14162 := (or #14105 #14159)
+#14165 := (and #14100 #14162)
+#14094 := (and #14076 #14092)
+#14097 := (not #14094)
+#14193 := (or #12942 #14097 #14165 #14172 #14178)
+#14201 := (and #14084 #14088 #14193)
+#14078 := (and #13950 #14076)
+#14081 := (not #14078)
+#12818 := (and #12806 #12812)
+#13142 := (not #12818)
+#14267 := (or #13124 #13115 #13090 #13142 #13133 #13081 #14243 #14081 #14201)
+#14275 := (and #12806 #12812 #14267)
+#12809 := (and #12803 #12806)
+#13159 := (not #12809)
+#14280 := (or #13159 #14275)
+#14286 := (and #12803 #12806 #14280)
+#13952 := (and #13947 #13950)
+#13955 := (not #13952)
+#14312 := (or #13955 #14207 #14286)
+#14238 := (or #13002 #12993 #13955 #14081 #14201 #14211)
+#14317 := (and #14238 #14312)
+#14326 := (or #13142 #13955 #14317)
+#14334 := (and #12806 #12812 #14326)
+#14339 := (or #13159 #14334)
+#14345 := (and #12803 #12806 #14339)
+#14371 := (or #13955 #14046 #14345)
+#13958 := (not #13959)
+#13998 := (and #3145 #4084 #4419 #13958)
+#14003 := (exists (vars (?x782 int)) #13998)
+#13981 := (or #5739 #13959 #13972)
+#13986 := (forall (vars (?x781 int)) #13981)
+#13989 := (not #13986)
+#14006 := (or #13989 #14003)
+#14009 := (and #13986 #14006)
+decl up_216 :: bool
+#2477 := up_216
+#12719 := (not up_216)
+#14036 := (or #12719 #12671 #12662 #12653 #12644 #13955 #14009)
+#14041 := (and up_216 #14036)
+#14070 := (or #13955 #14041 #14049)
+#14376 := (and #14070 #14371)
+decl uf_55 :: (-> T4 T2)
+#2978 := (uf_55 uf_273)
+#12332 := (= uf_9 #2978)
+#12556 := (and #12332 #12553)
+#13376 := (not #12556)
+#3127 := (and #3125 #3126)
+#13331 := (not #3127)
+#14573 := (or #13367 #13358 #13349 #13340 #13331 #14399 #13376 #13955 #14376 #14416 #14450 #14456 #14468 #14483 #14496 #14507)
+#14581 := (and #3022 #13943 #14573)
+#13931 := (or #5739 #13910 #13921)
+#13936 := (forall (vars (?x773 int)) #13931)
+#13939 := (not #13936)
+#14586 := (or #13939 #14581)
+#14589 := (and #13936 #14586)
+#14592 := (or #13906 #14589)
+#14595 := (and #13903 #14592)
+#12373 := (and #12361 #12367)
+#13681 := (not #12373)
+#14616 := (or #13672 #13663 #13654 #13645 #13681 #14595)
+#14624 := (and #12361 #12367 #14616)
+#12364 := (and #12358 #12361)
+#13698 := (not #12364)
+#14629 := (or #13698 #14624)
+#14635 := (and #12358 #12361 #14629)
+#14640 := (or #13715 #14635)
+#14643 := (and #12355 #14640)
+#13877 := (>= uf_272 0::int)
+#13874 := (+ uf_76 #13873)
+#13872 := (>= #13874 0::int)
+#13880 := (and #13872 #13877)
+#13883 := (not #13880)
+decl uf_283 :: (-> int T5 T2)
+#26 := (:var 0 T5)
+decl uf_282 :: int
+#2997 := uf_282
+#3000 := (uf_283 uf_282 #26)
+#3001 := (pattern #3000)
+#12341 := (= uf_9 #3000)
+#12347 := (not #12341)
+#12352 := (forall (vars (?x772 T5)) (:pat #3001) #12347)
+#13741 := (not #12352)
+decl uf_275 :: T1
+#2980 := uf_275
+#2981 := (uf_202 uf_275 uf_273)
+#12335 := (= uf_9 #2981)
+#12338 := (and #12332 #12335)
+#13786 := (not #12338)
+decl uf_203 :: (-> T4 T2)
+#2976 := (uf_203 uf_273)
+#12329 := (= uf_9 #2976)
+#13795 := (not #12329)
+decl uf_171 :: (-> T4 int)
+#2998 := (uf_171 uf_273)
+#2999 := (= uf_282 #2998)
+#13750 := (not #2999)
+#2996 := (up_280 uf_273 uf_275 uf_281 uf_272 uf_4)
+#13759 := (not #2996)
+#2993 := (up_280 uf_273 uf_275 uf_279 #2992 #11)
+#2991 := (up_278 uf_273 uf_275 uf_279 #2960 #11)
+#2994 := (and #2991 #2993)
+#13768 := (not #2994)
+#14766 := (or #13768 #13759 #13750 #13795 #13786 #13741 #13883 #13942 #14643 #14655 #14661 #14671 #14693 #14707 #14721)
+#14771 := (not #14766)
+#3010 := (= #3009 uf_9)
+#3015 := (= #3014 uf_9)
+#3013 := (= #3012 uf_9)
+#3016 := (and #3013 #3015)
+#3018 := (= #3017 uf_9)
+#3019 := (and #3018 #3015)
+#3037 := (<= 1::int uf_272)
+#3041 := (<= #3040 uf_285)
+#3038 := (< #161 1::int)
+#3042 := (implies #3038 #3041)
+#285 := (<= 0::int #161)
+#410 := (<= #161 uf_76)
+#645 := (and #410 #285)
+#3043 := (implies #645 #3042)
+#3044 := (forall (vars (?x773 int)) #3043)
+#2951 := (< 0::int uf_272)
+#3045 := (= #3021 uf_285)
+#3046 := (and #3045 #2951)
+#3141 := (<= #3040 uf_299)
+#3140 := (< #161 uf_272)
+#3142 := (implies #3140 #3141)
+#3143 := (implies #645 #3142)
+#3144 := (forall (vars (?x781 int)) #3143)
+#3146 := (and #3140 #645)
+#3147 := (and #3145 #3146)
+#3148 := (exists (vars (?x782 int)) #3147)
+#1 := true
+#3149 := (implies #3148 true)
+#3150 := (and #3149 #3148)
+#3151 := (implies #3144 #3150)
+#3152 := (and #3151 #3144)
+#3153 := (implies true #3152)
+#3139 := (= uf_299 uf_292)
+#3154 := (implies #3139 #3153)
+#3137 := (= uf_298 uf_293)
+#3155 := (implies #3137 #3154)
+#3135 := (= uf_297 uf_294)
+#3156 := (implies #3135 #3155)
+#3133 := (= uf_296 uf_292)
+#3157 := (implies #3133 #3156)
+#3158 := (implies true #3157)
+#3059 := (<= 1::int uf_294)
+#3053 := (<= 0::int uf_293)
+#3060 := (and #3053 #3059)
+#3159 := (implies #3060 #3158)
+#3160 := (implies #3060 #3159)
+#3161 := (implies true #3160)
+#3162 := (implies #3060 #3161)
+#3163 := (implies up_216 #3162)
+#3164 := (and #3163 up_216)
+#3165 := (implies #3060 #3164)
+#3166 := (implies true #3165)
+#3167 := (implies #3060 #3166)
+#3119 := (= #3118 uf_9)
+#2979 := (= #2978 uf_9)
+#3120 := (and #2979 #3119)
+#3295 := (implies #3120 #3167)
+#3296 := (implies #3060 #3295)
+#3297 := (implies true #3296)
+#3298 := (implies #3060 #3297)
+#3294 := (not true)
+#3299 := (implies #3294 #3298)
+#3300 := (implies #3060 #3299)
+#3301 := (implies true #3300)
+#3179 := (= #3178 uf_9)
+#3177 := (= #3176 uf_9)
+#3180 := (and #3177 #3179)
+#3182 := (= #3181 uf_9)
+#3183 := (and #3182 #3179)
+#3192 := (+ uf_294 1::int)
+#3194 := (<= 0::int #3192)
+#3193 := (<= #3192 uf_76)
+#3195 := (and #3193 #3194)
+#3202 := (<= uf_302 uf_272)
+#3204 := (<= #3040 uf_300)
+#3203 := (< #161 uf_302)
+#3205 := (implies #3203 #3204)
+#3206 := (implies #645 #3205)
+#3207 := (forall (vars (?x785 int)) #3206)
+#3211 := (< uf_301 uf_272)
+#3210 := (= #3209 uf_300)
+#3212 := (and #3210 #3211)
+#3213 := (implies false true)
+#3214 := (implies #3212 #3213)
+#3215 := (and #3214 #3212)
+#3216 := (implies #3207 #3215)
+#3217 := (and #3216 #3207)
+#3218 := (implies #3202 #3217)
+#3219 := (and #3218 #3202)
+#3220 := (implies true #3219)
+#3200 := (<= 2::int uf_302)
+#3190 := (<= 0::int uf_301)
+#3201 := (and #3190 #3200)
+#3221 := (implies #3201 #3220)
+#3222 := (implies #3199 #3221)
+#3197 := (= uf_302 #3192)
+#3223 := (implies #3197 #3222)
+#3224 := (implies #3195 #3223)
+#3225 := (and #3224 #3195)
+#3191 := (and #3190 #3059)
+#3226 := (implies #3191 #3225)
+#3227 := (implies true #3226)
+#3247 := (= uf_301 uf_294)
+#3248 := (implies #3247 #3227)
+#3249 := (implies #3246 #3248)
+#3250 := (implies true #3249)
+#3245 := (and #3059 #3059)
+#3251 := (implies #3245 #3250)
+#3252 := (implies #3244 #3251)
+#3253 := (implies #3242 #3252)
+#3240 := (= uf_304 #3184)
+#3254 := (implies #3240 #3253)
+#3255 := (implies #3183 #3254)
+#3256 := (and #3255 #3183)
+#3257 := (implies #3180 #3256)
+#3258 := (and #3257 #3180)
+#3259 := (implies #3060 #3258)
+#3260 := (implies true #3259)
+#3261 := (implies #3060 #3260)
+#3238 := (< uf_292 #3184)
+#3262 := (implies #3238 #3261)
+#3263 := (implies #3060 #3262)
+#3264 := (implies true #3263)
+#3189 := (= uf_301 uf_293)
+#3228 := (implies #3189 #3227)
+#3187 := (= uf_300 uf_292)
+#3229 := (implies #3187 #3228)
+#3230 := (implies true #3229)
+#3231 := (implies #3060 #3230)
+#3232 := (implies #3060 #3231)
+#3233 := (implies true #3232)
+#3234 := (implies #3060 #3233)
+#3185 := (<= #3184 uf_292)
+#3235 := (implies #3185 #3234)
+#3236 := (implies #3060 #3235)
+#3237 := (implies true #3236)
+#3265 := (and #3237 #3264)
+#3266 := (implies #3060 #3265)
+#3267 := (implies #3183 #3266)
+#3268 := (and #3267 #3183)
+#3269 := (implies #3180 #3268)
+#3270 := (and #3269 #3180)
+#3271 := (implies #3060 #3270)
+#3272 := (implies true #3271)
+#3273 := (implies #3060 #3272)
+#3174 := (< uf_294 uf_272)
+#3274 := (implies #3174 #3273)
+#3275 := (implies #3060 #3274)
+#3276 := (implies true #3275)
+#3168 := (implies #3060 #3167)
+#3169 := (implies true #3168)
+#3170 := (implies #3060 #3169)
+#3131 := (<= uf_272 uf_294)
+#3171 := (implies #3131 #3170)
+#3172 := (implies #3060 #3171)
+#3173 := (implies true #3172)
+#3277 := (and #3173 #3276)
+#3278 := (implies #3060 #3277)
+decl uf_59 :: (-> T4 T13)
+#3079 := (uf_59 uf_273)
+#3129 := (= #3079 #3079)
+decl uf_41 :: (-> T4 T12)
+#3088 := (uf_41 uf_273)
+#3128 := (= #3088 #3088)
+#3130 := (and #3128 #3129)
+#3279 := (implies #3130 #3278)
+#3280 := (implies #3127 #3279)
+#3281 := (implies #3124 #3280)
+#3282 := (implies #3123 #3281)
+#3283 := (implies #3122 #3282)
+#3284 := (implies #3121 #3283)
+#3285 := (implies #3120 #3284)
+#3078 := (<= #2998 #2998)
+decl uf_170 :: (-> T4 T5 int)
+#3074 := (uf_170 uf_273 #26)
+#3075 := (pattern #3074)
+#3076 := (<= #3074 #3074)
+#3077 := (forall (vars (?x775 T5)) (:pat #3075) #3076)
+#3115 := (and #3077 #3078)
+#3073 := (= #3072 uf_9)
+#3116 := (and #3073 #3115)
+#3286 := (implies #3116 #3285)
+decl uf_40 :: (-> T12 T5 T11)
+#3089 := (uf_40 #3088 #26)
+#3090 := (pattern #3089)
+decl uf_261 :: T8
+#2832 := uf_261
+#3102 := (uf_25 uf_273 #26)
+#3103 := (uf_15 #3102)
+#3104 := (uf_14 #3103)
+#3105 := (= #3104 uf_261)
+#3106 := (not #3105)
+#3107 := (implies #3106 #3106)
+#3108 := (forall (vars (?x779 T5)) (:pat #3090) #3107)
+decl uf_19 :: (-> T9 T5 int)
+decl uf_20 :: (-> T4 T9)
+#3095 := (uf_20 uf_273)
+#3096 := (uf_19 #3095 #26)
+#3097 := (pattern #3096)
+#3098 := (= #3096 #3096)
+#3082 := (uf_67 uf_273 #26)
+#3083 := (= #3082 uf_9)
+#3099 := (and #3083 #3098)
+#3100 := (implies #3083 #3099)
+#3101 := (forall (vars (?x778 T5)) (:pat #3097) #3100)
+#3109 := (and #3101 #3108)
+#3091 := (= #3089 #3089)
+#3092 := (and #3083 #3091)
+#3093 := (implies #3083 #3092)
+#3094 := (forall (vars (?x777 T5)) (:pat #3090) #3093)
+#3110 := (and #3094 #3109)
+decl uf_58 :: (-> T13 T5 T14)
+#3080 := (uf_58 #3079 #26)
+#3081 := (pattern #3080)
+#3084 := (= #3080 #3080)
+#3085 := (and #3083 #3084)
+#3086 := (implies #3083 #3085)
+#3087 := (forall (vars (?x776 T5)) (:pat #3081) #3086)
+#3111 := (and #3087 #3110)
+#3112 := (and #3078 #3111)
+#3113 := (and #3077 #3112)
+#3114 := (and #3073 #3113)
+#3287 := (implies #3114 #3286)
+#3288 := (implies #3060 #3287)
+#3289 := (implies true #3288)
+#3290 := (implies #3060 #3289)
+#3291 := (implies true #3290)
+#3292 := (implies #3060 #3291)
+#3293 := (implies true #3292)
+#3302 := (and #3293 #3301)
+#3303 := (implies #3060 #3302)
+#3070 := (< uf_293 uf_272)
+#3069 := (= #3068 uf_292)
+#3071 := (and #3069 #3070)
+#3304 := (implies #3071 #3303)
+#3063 := (<= #3040 uf_292)
+#3062 := (< #161 uf_294)
+#3064 := (implies #3062 #3063)
+#3065 := (implies #645 #3064)
+#3066 := (forall (vars (?x774 int)) #3065)
+#3305 := (implies #3066 #3304)
+#3061 := (<= uf_294 uf_272)
+#3306 := (implies #3061 #3305)
+#3307 := (implies #3060 #3306)
+#3057 := (<= 0::int uf_294)
+#3056 := (<= uf_294 uf_76)
+#3058 := (and #3056 #3057)
+#3308 := (implies #3058 #3307)
+#3052 := (<= uf_293 uf_76)
+#3054 := (and #3052 #3053)
+#3309 := (implies #3054 #3308)
+#3049 := (<= 0::int uf_292)
+#3048 := (<= uf_292 uf_78)
+#3050 := (and #3048 #3049)
+#3310 := (implies #3050 #3309)
+#3311 := (implies true #3310)
+#3312 := (implies #3046 #3311)
+#3313 := (and #3312 #3046)
+#3314 := (implies #3044 #3313)
+#3315 := (and #3314 #3044)
+#3316 := (implies #3037 #3315)
+#3317 := (and #3316 #3037)
+#3033 := (<= 1::int 1::int)
+#3034 := (and #3033 #3033)
+#3032 := (<= 0::int 0::int)
+#3035 := (and #3032 #3034)
+#3036 := (and #3032 #3035)
+#3318 := (implies #3036 #3317)
+#3319 := (implies #3031 #3318)
+#3320 := (implies #3028 #3319)
+#3321 := (implies #3025 #3320)
+#3322 := (implies #3022 #3321)
+#3323 := (implies #3019 #3322)
+#3324 := (and #3323 #3019)
+#3325 := (implies #3016 #3324)
+#3326 := (and #3325 #3016)
+#3327 := (implies #3010 #3326)
+#3328 := (and #3327 #3010)
+#3006 := (<= 0::int uf_272)
+#3005 := (<= uf_272 uf_76)
+#3007 := (and #3005 #3006)
+#3329 := (implies #3007 #3328)
+#3002 := (= #3000 uf_9)
+#3003 := (iff #3002 false)
+#3004 := (forall (vars (?x772 T5)) (:pat #3001) #3003)
+#3330 := (implies #3004 #3329)
+#3331 := (implies #2999 #3330)
+#3332 := (implies #2996 #3331)
+#3333 := (implies #2994 #3332)
+#2988 := (< #2985 uf_277)
+#2989 := (forall (vars (?x771 T19)) (:pat #2986) #2988)
+#3334 := (implies #2989 #3333)
+#2982 := (= #2981 uf_9)
+#2983 := (and #2979 #2982)
+#3335 := (implies #2983 #3334)
+#2977 := (= #2976 uf_9)
+#3336 := (implies #2977 #3335)
+#3337 := (implies true #3336)
+#2970 := (= #2969 uf_9)
+#2968 := (= #2967 uf_26)
+#2971 := (and #2968 #2970)
+#2966 := (= #2965 uf_9)
+#2972 := (and #2966 #2971)
+#2964 := (= #2963 uf_9)
+#2973 := (and #2964 #2972)
+#2956 := (= #2955 uf_16)
+#2957 := (not #2956)
+#2974 := (and #2957 #2973)
+#2954 := (= #2953 uf_9)
+#2975 := (and #2954 #2974)
+#3338 := (implies #2975 #3337)
+#3339 := (implies #2951 #3338)
+#2950 := (< uf_272 1099511627776::int)
+#3340 := (implies #2950 #3339)
+#2947 := (<= 0::int uf_271)
+#2946 := (<= uf_271 uf_76)
+#2948 := (and #2946 #2947)
+#3341 := (implies #2948 #3340)
+#2943 := (<= 0::int uf_270)
+#2942 := (<= uf_270 uf_76)
+#2944 := (and #2942 #2943)
+#3342 := (implies #2944 #3341)
+#2939 := (<= 0::int uf_269)
+#2938 := (<= uf_269 uf_78)
+#2940 := (and #2938 #2939)
+#3343 := (implies #2940 #3342)
+#3344 := (implies true #3343)
+#3345 := (not #3344)
+#14774 := (iff #3345 #14771)
+#12868 := (and #3211 #12862)
+#12847 := (not #3203)
+#12848 := (or #12847 #3204)
+#5718 := (and #285 #410)
+#5727 := (not #5718)
+#12854 := (or #5727 #12848)
+#12859 := (forall (vars (?x785 int)) #12854)
+#12892 := (not #12859)
+#12893 := (or #12892 #12868)
+#12901 := (and #12859 #12893)
+#12909 := (not #3202)
+#12910 := (or #12909 #12901)
+#12918 := (and #3202 #12910)
+#12933 := (not #3201)
+#12934 := (or #12933 #12918)
+#12943 := (or #12942 #12934)
+#12832 := (+ 1::int uf_294)
+#12844 := (= uf_302 #12832)
+#12951 := (not #12844)
+#12952 := (or #12951 #12943)
+#12838 := (<= 0::int #12832)
+#12835 := (<= #12832 uf_76)
+#12841 := (and #12835 #12838)
+#12960 := (not #12841)
+#12961 := (or #12960 #12952)
+#12969 := (and #12841 #12961)
+#12829 := (and #3059 #3190)
+#12977 := (not #12829)
+#12978 := (or #12977 #12969)
+#13082 := (or #12978 #13081)
+#13091 := (or #13090 #13082)
+#13106 := (not #3059)
+#13107 := (or #13106 #13091)
+#13116 := (or #13115 #13107)
+#13125 := (or #13124 #13116)
+#13134 := (or #13133 #13125)
+#13143 := (or #13142 #13134)
+#13151 := (and #12818 #13143)
+#13160 := (or #13159 #13151)
+#13168 := (and #12809 #13160)
+#12687 := (not #3060)
+#13176 := (or #12687 #13168)
+#13191 := (or #12687 #13176)
+#13199 := (not #3238)
+#13200 := (or #13199 #13191)
+#13208 := (or #12687 #13200)
+#12994 := (or #12993 #12978)
+#13003 := (or #13002 #12994)
+#13018 := (or #12687 #13003)
+#13026 := (or #12687 #13018)
+#13041 := (or #12687 #13026)
+#13049 := (not #3185)
+#13050 := (or #13049 #13041)
+#13058 := (or #12687 #13050)
+#13220 := (and #13058 #13208)
+#13226 := (or #12687 #13220)
+#13234 := (or #13142 #13226)
+#13242 := (and #12818 #13234)
+#13250 := (or #13159 #13242)
+#13258 := (and #12809 #13250)
+#13266 := (or #12687 #13258)
+#13281 := (or #12687 #13266)
+#13289 := (not #3174)
+#13290 := (or #13289 #13281)
+#13298 := (or #12687 #13290)
+#12594 := (and #3140 #5718)
+#12597 := (and #3145 #12594)
+#12600 := (exists (vars (?x782 int)) #12597)
+#12579 := (not #3140)
+#12580 := (or #12579 #3141)
+#12586 := (or #5727 #12580)
+#12591 := (forall (vars (?x781 int)) #12586)
+#12620 := (not #12591)
+#12621 := (or #12620 #12600)
+#12629 := (and #12591 #12621)
+#12645 := (or #12644 #12629)
+#12654 := (or #12653 #12645)
+#12663 := (or #12662 #12654)
+#12672 := (or #12671 #12663)
+#12688 := (or #12687 #12672)
+#12696 := (or #12687 #12688)
+#12711 := (or #12687 #12696)
+#12720 := (or #12719 #12711)
+#12728 := (and up_216 #12720)
+#12736 := (or #12687 #12728)
+#12751 := (or #12687 #12736)
+#12759 := (or #12687 #12751)
+#12774 := (or #12687 #12759)
+#12782 := (not #3131)
+#12783 := (or #12782 #12774)
+#12791 := (or #12687 #12783)
+#13310 := (and #12791 #13298)
+#13316 := (or #12687 #13310)
+#13332 := (or #13331 #13316)
+#13341 := (or #13340 #13332)
+#13350 := (or #13349 #13341)
+#13359 := (or #13358 #13350)
+#13368 := (or #13367 #13359)
+#13377 := (or #13376 #13368)
+#12544 := (and #3115 #12437)
+#13385 := (not #12544)
+#13386 := (or #13385 #13377)
+#13394 := (or #13385 #13386)
+#13402 := (or #12687 #13394)
+#13417 := (or #12687 #13402)
+#13432 := (or #12687 #13417)
+#13508 := (or #12687 #13432)
+#12432 := (and #3070 #12426)
+#13516 := (not #12432)
+#13517 := (or #13516 #13508)
+#12411 := (not #3062)
+#12412 := (or #12411 #3063)
+#12418 := (or #5727 #12412)
+#12423 := (forall (vars (?x774 int)) #12418)
+#13525 := (not #12423)
+#13526 := (or #13525 #13517)
+#13534 := (not #3061)
+#13535 := (or #13534 #13526)
+#13543 := (or #12687 #13535)
+#13551 := (not #3058)
+#13552 := (or #13551 #13543)
+#13560 := (not #3054)
+#13561 := (or #13560 #13552)
+#13569 := (not #3050)
+#13570 := (or #13569 #13561)
+#12406 := (and #2951 #3022)
+#13585 := (not #12406)
+#13586 := (or #13585 #13570)
+#13594 := (and #12406 #13586)
+#12386 := (not #3038)
+#12387 := (or #12386 #3041)
+#12393 := (or #5727 #12387)
+#12398 := (forall (vars (?x773 int)) #12393)
+#13602 := (not #12398)
+#13603 := (or #13602 #13594)
+#13611 := (and #12398 #13603)
+#13619 := (not #3037)
+#13620 := (or #13619 #13611)
+#13628 := (and #3037 #13620)
+#12380 := (and #3032 #3033)
+#12383 := (and #3032 #12380)
+#13636 := (not #12383)
+#13637 := (or #13636 #13628)
+#13646 := (or #13645 #13637)
+#13655 := (or #13654 #13646)
+#13664 := (or #13663 #13655)
+#13673 := (or #13672 #13664)
+#13682 := (or #13681 #13673)
+#13690 := (and #12373 #13682)
+#13699 := (or #13698 #13690)
+#13707 := (and #12364 #13699)
+#13716 := (or #13715 #13707)
+#13724 := (and #12355 #13716)
+#13732 := (not #3007)
+#13733 := (or #13732 #13724)
+#13742 := (or #13741 #13733)
+#13751 := (or #13750 #13742)
+#13760 := (or #13759 #13751)
+#13769 := (or #13768 #13760)
+#13777 := (not #2989)
+#13778 := (or #13777 #13769)
+#13787 := (or #13786 #13778)
+#13796 := (or #13795 #13787)
+#12314 := (and #12308 #12311)
+#12317 := (and #12305 #12314)
+#12320 := (and #12302 #12317)
+#12323 := (and #12299 #12320)
+#12326 := (and #12293 #12323)
+#13811 := (not #12326)
+#13812 := (or #13811 #13796)
+#13820 := (not #2951)
+#13821 := (or #13820 #13812)
+#13829 := (not #2950)
+#13830 := (or #13829 #13821)
+#13838 := (not #2948)
+#13839 := (or #13838 #13830)
+#13847 := (not #2944)
+#13848 := (or #13847 #13839)
+#13856 := (not #2940)
+#13857 := (or #13856 #13848)
+#13869 := (not #13857)
+#14772 := (iff #13869 #14771)
+#14769 := (iff #13857 #14766)
+#14724 := (or #13883 #14643)
+#14727 := (or #13741 #14724)
+#14730 := (or #13750 #14727)
+#14733 := (or #13759 #14730)
+#14736 := (or #13768 #14733)
+#14739 := (or #14655 #14736)
+#14742 := (or #13786 #14739)
+#14745 := (or #13795 #14742)
+#14748 := (or #14661 #14745)
+#14751 := (or #13942 #14748)
+#14754 := (or #14671 #14751)
+#14757 := (or #14693 #14754)
+#14760 := (or #14707 #14757)
+#14763 := (or #14721 #14760)
+#14767 := (iff #14763 #14766)
+#14768 := [rewrite]: #14767
+#14764 := (iff #13857 #14763)
+#14761 := (iff #13848 #14760)
+#14758 := (iff #13839 #14757)
+#14755 := (iff #13830 #14754)
+#14752 := (iff #13821 #14751)
+#14749 := (iff #13812 #14748)
+#14746 := (iff #13796 #14745)
+#14743 := (iff #13787 #14742)
+#14740 := (iff #13778 #14739)
+#14737 := (iff #13769 #14736)
+#14734 := (iff #13760 #14733)
+#14731 := (iff #13751 #14730)
+#14728 := (iff #13742 #14727)
+#14725 := (iff #13733 #14724)
+#14644 := (iff #13724 #14643)
+#14641 := (iff #13716 #14640)
+#14638 := (iff #13707 #14635)
+#14632 := (and #12364 #14629)
+#14636 := (iff #14632 #14635)
+#14637 := [rewrite]: #14636
+#14633 := (iff #13707 #14632)
+#14630 := (iff #13699 #14629)
+#14627 := (iff #13690 #14624)
+#14621 := (and #12373 #14616)
+#14625 := (iff #14621 #14624)
+#14626 := [rewrite]: #14625
+#14622 := (iff #13690 #14621)
+#14619 := (iff #13682 #14616)
+#14598 := (or false #14595)
+#14601 := (or #13645 #14598)
+#14604 := (or #13654 #14601)
+#14607 := (or #13663 #14604)
+#14610 := (or #13672 #14607)
+#14613 := (or #13681 #14610)
+#14617 := (iff #14613 #14616)
+#14618 := [rewrite]: #14617
+#14614 := (iff #13682 #14613)
+#14611 := (iff #13673 #14610)
+#14608 := (iff #13664 #14607)
+#14605 := (iff #13655 #14604)
+#14602 := (iff #13646 #14601)
+#14599 := (iff #13637 #14598)
+#14596 := (iff #13628 #14595)
+#14593 := (iff #13620 #14592)
+#14590 := (iff #13611 #14589)
+#14587 := (iff #13603 #14586)
+#14584 := (iff #13594 #14581)
+#14499 := (and #13943 #3022)
+#14578 := (and #14499 #14573)
+#14582 := (iff #14578 #14581)
+#14583 := [rewrite]: #14582
+#14579 := (iff #13594 #14578)
+#14576 := (iff #13586 #14573)
+#14510 := (or #13955 #14376)
+#14513 := (or #13331 #14510)
+#14516 := (or #13340 #14513)
+#14519 := (or #13349 #14516)
+#14522 := (or #13358 #14519)
+#14525 := (or #13367 #14522)
+#14528 := (or #13376 #14525)
+#14531 := (or #14399 #14528)
+#14534 := (or #14399 #14531)
+#14537 := (or #13955 #14534)
+#14540 := (or #13955 #14537)
+#14543 := (or #13955 #14540)
+#14546 := (or #13955 #14543)
+#14549 := (or #14416 #14546)
+#14552 := (or #14450 #14549)
+#14555 := (or #14456 #14552)
+#14558 := (or #13955 #14555)
+#14561 := (or #14468 #14558)
+#14564 := (or #14483 #14561)
+#14567 := (or #14496 #14564)
+#14570 := (or #14507 #14567)
+#14574 := (iff #14570 #14573)
+#14575 := [rewrite]: #14574
+#14571 := (iff #13586 #14570)
+#14568 := (iff #13570 #14567)
+#14565 := (iff #13561 #14564)
+#14562 := (iff #13552 #14561)
+#14559 := (iff #13543 #14558)
+#14556 := (iff #13535 #14555)
+#14553 := (iff #13526 #14552)
+#14550 := (iff #13517 #14549)
+#14547 := (iff #13508 #14546)
+#14544 := (iff #13432 #14543)
+#14541 := (iff #13417 #14540)
+#14538 := (iff #13402 #14537)
+#14535 := (iff #13394 #14534)
+#14532 := (iff #13386 #14531)
+#14529 := (iff #13377 #14528)
+#14526 := (iff #13368 #14525)
+#14523 := (iff #13359 #14522)
+#14520 := (iff #13350 #14519)
+#14517 := (iff #13341 #14516)
+#14514 := (iff #13332 #14513)
+#14511 := (iff #13316 #14510)
+#14377 := (iff #13310 #14376)
+#14374 := (iff #13298 #14371)
+#14359 := (or #13955 #14345)
+#14362 := (or #13955 #14359)
+#14365 := (or #14046 #14362)
+#14368 := (or #13955 #14365)
+#14372 := (iff #14368 #14371)
+#14373 := [rewrite]: #14372
+#14369 := (iff #13298 #14368)
+#14366 := (iff #13290 #14365)
+#14363 := (iff #13281 #14362)
+#14360 := (iff #13266 #14359)
+#14348 := (iff #13258 #14345)
+#14342 := (and #12809 #14339)
+#14346 := (iff #14342 #14345)
+#14347 := [rewrite]: #14346
+#14343 := (iff #13258 #14342)
+#14340 := (iff #13250 #14339)
+#14337 := (iff #13242 #14334)
+#14331 := (and #12818 #14326)
+#14335 := (iff #14331 #14334)
+#14336 := [rewrite]: #14335
+#14332 := (iff #13242 #14331)
+#14329 := (iff #13234 #14326)
+#14320 := (or #13955 #14317)
+#14323 := (or #13142 #14320)
+#14327 := (iff #14323 #14326)
+#14328 := [rewrite]: #14327
+#14324 := (iff #13234 #14323)
+#14321 := (iff #13226 #14320)
+#14318 := (iff #13220 #14317)
+#14315 := (iff #13208 #14312)
+#14300 := (or #13955 #14286)
+#14303 := (or #13955 #14300)
+#14306 := (or #14207 #14303)
+#14309 := (or #13955 #14306)
+#14313 := (iff #14309 #14312)
+#14314 := [rewrite]: #14313
+#14310 := (iff #13208 #14309)
+#14307 := (iff #13200 #14306)
+#14304 := (iff #13191 #14303)
+#14301 := (iff #13176 #14300)
+#14289 := (iff #13168 #14286)
+#14283 := (and #12809 #14280)
+#14287 := (iff #14283 #14286)
+#14288 := [rewrite]: #14287
+#14284 := (iff #13168 #14283)
+#14281 := (iff #13160 #14280)
+#14278 := (iff #13151 #14275)
+#14272 := (and #12818 #14267)
+#14276 := (iff #14272 #14275)
+#14277 := [rewrite]: #14276
+#14273 := (iff #13151 #14272)
+#14270 := (iff #13143 #14267)
+#14214 := (or #14081 #14201)
+#14246 := (or #14214 #13081)
+#14249 := (or #13090 #14246)
+#14252 := (or #14243 #14249)
+#14255 := (or #13115 #14252)
+#14258 := (or #13124 #14255)
+#14261 := (or #13133 #14258)
+#14264 := (or #13142 #14261)
+#14268 := (iff #14264 #14267)
+#14269 := [rewrite]: #14268
+#14265 := (iff #13143 #14264)
+#14262 := (iff #13134 #14261)
+#14259 := (iff #13125 #14258)
+#14256 := (iff #13116 #14255)
+#14253 := (iff #13107 #14252)
+#14250 := (iff #13091 #14249)
+#14247 := (iff #13082 #14246)
+#14215 := (iff #12978 #14214)
+#14204 := (iff #12969 #14201)
+#14198 := (and #14175 #14193)
+#14202 := (iff #14198 #14201)
+#14203 := [rewrite]: #14202
+#14199 := (iff #12969 #14198)
+#14196 := (iff #12961 #14193)
+#14181 := (or #14097 #14165)
+#14184 := (or #12942 #14181)
+#14187 := (or #14172 #14184)
+#14190 := (or #14178 #14187)
+#14194 := (iff #14190 #14193)
+#14195 := [rewrite]: #14194
+#14191 := (iff #12961 #14190)
+#14188 := (iff #12952 #14187)
+#14185 := (iff #12943 #14184)
+#14182 := (iff #12934 #14181)
+#14166 := (iff #12918 #14165)
+#14163 := (iff #12910 #14162)
+#14160 := (iff #12901 #14159)
+#14157 := (iff #12893 #14156)
+#14154 := (iff #12868 #14151)
+#14148 := (and #14145 #12862)
+#14152 := (iff #14148 #14151)
+#14153 := [rewrite]: #14152
+#14149 := (iff #12868 #14148)
+#14146 := (iff #3211 #14145)
+#14147 := [rewrite]: #14146
+#14150 := [monotonicity #14147]: #14149
+#14155 := [trans #14150 #14153]: #14154
+#14140 := (iff #12892 #14139)
+#14137 := (iff #12859 #14136)
+#14134 := (iff #12854 #14131)
+#14125 := (or #14109 #14122)
+#14128 := (or #5739 #14125)
+#14132 := (iff #14128 #14131)
+#14133 := [rewrite]: #14132
+#14129 := (iff #12854 #14128)
+#14126 := (iff #12848 #14125)
+#14123 := (iff #3204 #14122)
+#14124 := [rewrite]: #14123
+#14118 := (iff #12847 #14109)
+#14108 := (not #14109)
+#14113 := (not #14108)
+#14116 := (iff #14113 #14109)
+#14117 := [rewrite]: #14116
+#14114 := (iff #12847 #14113)
+#14111 := (iff #3203 #14108)
+#14112 := [rewrite]: #14111
+#14115 := [monotonicity #14112]: #14114
+#14119 := [trans #14115 #14117]: #14118
+#14127 := [monotonicity #14119 #14124]: #14126
+#5740 := (iff #5727 #5739)
+#5737 := (iff #5718 #5736)
+#4420 := (iff #410 #4419)
+#4421 := [rewrite]: #4420
+#4083 := (iff #285 #4084)
+#4085 := [rewrite]: #4083
+#5738 := [monotonicity #4085 #4421]: #5737
+#5741 := [monotonicity #5738]: #5740
+#14130 := [monotonicity #5741 #14127]: #14129
+#14135 := [trans #14130 #14133]: #14134
+#14138 := [quant-intro #14135]: #14137
+#14141 := [monotonicity #14138]: #14140
+#14158 := [monotonicity #14141 #14155]: #14157
+#14161 := [monotonicity #14138 #14158]: #14160
+#14106 := (iff #12909 #14105)
+#14103 := (iff #3202 #14100)
+#14104 := [rewrite]: #14103
+#14107 := [monotonicity #14104]: #14106
+#14164 := [monotonicity #14107 #14161]: #14163
+#14167 := [monotonicity #14104 #14164]: #14166
+#14098 := (iff #12933 #14097)
+#14095 := (iff #3201 #14094)
+#14091 := (iff #3200 #14092)
+#14093 := [rewrite]: #14091
+#14075 := (iff #3190 #14076)
+#14077 := [rewrite]: #14075
+#14096 := [monotonicity #14077 #14093]: #14095
+#14099 := [monotonicity #14096]: #14098
+#14183 := [monotonicity #14099 #14167]: #14182
+#14186 := [monotonicity #14183]: #14185
+#14173 := (iff #12951 #14172)
+#14170 := (iff #12844 #14168)
+#14171 := [rewrite]: #14170
+#14174 := [monotonicity #14171]: #14173
+#14189 := [monotonicity #14174 #14186]: #14188
+#14179 := (iff #12960 #14178)
+#14176 := (iff #12841 #14175)
+#14089 := (iff #12838 #14088)
+#14090 := [rewrite]: #14089
+#14086 := (iff #12835 #14084)
+#14087 := [rewrite]: #14086
+#14177 := [monotonicity #14087 #14090]: #14176
+#14180 := [monotonicity #14177]: #14179
+#14192 := [monotonicity #14180 #14189]: #14191
+#14197 := [trans #14192 #14195]: #14196
+#14200 := [monotonicity #14177 #14197]: #14199
+#14205 := [trans #14200 #14203]: #14204
+#14082 := (iff #12977 #14081)
+#14079 := (iff #12829 #14078)
+#13949 := (iff #3059 #13950)
+#13951 := [rewrite]: #13949
+#14080 := [monotonicity #13951 #14077]: #14079
+#14083 := [monotonicity #14080]: #14082
+#14216 := [monotonicity #14083 #14205]: #14215
+#14248 := [monotonicity #14216]: #14247
+#14251 := [monotonicity #14248]: #14250
+#14244 := (iff #13106 #14243)
+#14245 := [monotonicity #13951]: #14244
+#14254 := [monotonicity #14245 #14251]: #14253
+#14257 := [monotonicity #14254]: #14256
+#14260 := [monotonicity #14257]: #14259
+#14263 := [monotonicity #14260]: #14262
+#14266 := [monotonicity #14263]: #14265
+#14271 := [trans #14266 #14269]: #14270
+#14274 := [monotonicity #14271]: #14273
+#14279 := [trans #14274 #14277]: #14278
+#14282 := [monotonicity #14279]: #14281
+#14285 := [monotonicity #14282]: #14284
+#14290 := [trans #14285 #14288]: #14289
+#13956 := (iff #12687 #13955)
+#13953 := (iff #3060 #13952)
+#13946 := (iff #3053 #13947)
+#13948 := [rewrite]: #13946
+#13954 := [monotonicity #13948 #13951]: #13953
+#13957 := [monotonicity #13954]: #13956
+#14302 := [monotonicity #13957 #14290]: #14301
+#14305 := [monotonicity #13957 #14302]: #14304
+#14298 := (iff #13199 #14207)
+#14293 := (not #14211)
+#14296 := (iff #14293 #14207)
+#14297 := [rewrite]: #14296
+#14294 := (iff #13199 #14293)
+#14291 := (iff #3238 #14211)
+#14292 := [rewrite]: #14291
+#14295 := [monotonicity #14292]: #14294
+#14299 := [trans #14295 #14297]: #14298
+#14308 := [monotonicity #14299 #14305]: #14307
+#14311 := [monotonicity #13957 #14308]: #14310
+#14316 := [trans #14311 #14314]: #14315
+#14241 := (iff #13058 #14238)
+#14217 := (or #12993 #14214)
+#14220 := (or #13002 #14217)
+#14223 := (or #13955 #14220)
+#14226 := (or #13955 #14223)
+#14229 := (or #13955 #14226)
+#14232 := (or #14211 #14229)
+#14235 := (or #13955 #14232)
+#14239 := (iff #14235 #14238)
+#14240 := [rewrite]: #14239
+#14236 := (iff #13058 #14235)
+#14233 := (iff #13050 #14232)
+#14230 := (iff #13041 #14229)
+#14227 := (iff #13026 #14226)
+#14224 := (iff #13018 #14223)
+#14221 := (iff #13003 #14220)
+#14218 := (iff #12994 #14217)
+#14219 := [monotonicity #14216]: #14218
+#14222 := [monotonicity #14219]: #14221
+#14225 := [monotonicity #13957 #14222]: #14224
+#14228 := [monotonicity #13957 #14225]: #14227
+#14231 := [monotonicity #13957 #14228]: #14230
+#14212 := (iff #13049 #14211)
+#14206 := (iff #3185 #14207)
+#14210 := [rewrite]: #14206
+#14213 := [monotonicity #14210]: #14212
+#14234 := [monotonicity #14213 #14231]: #14233
+#14237 := [monotonicity #13957 #14234]: #14236
+#14242 := [trans #14237 #14240]: #14241
+#14319 := [monotonicity #14242 #14316]: #14318
+#14322 := [monotonicity #13957 #14319]: #14321
+#14325 := [monotonicity #14322]: #14324
+#14330 := [trans #14325 #14328]: #14329
+#14333 := [monotonicity #14330]: #14332
+#14338 := [trans #14333 #14336]: #14337
+#14341 := [monotonicity #14338]: #14340
+#14344 := [monotonicity #14341]: #14343
+#14349 := [trans #14344 #14347]: #14348
+#14361 := [monotonicity #13957 #14349]: #14360
+#14364 := [monotonicity #13957 #14361]: #14363
+#14357 := (iff #13289 #14046)
+#14352 := (not #14049)
+#14355 := (iff #14352 #14046)
+#14356 := [rewrite]: #14355
+#14353 := (iff #13289 #14352)
+#14350 := (iff #3174 #14049)
+#14351 := [rewrite]: #14350
+#14354 := [monotonicity #14351]: #14353
+#14358 := [trans #14354 #14356]: #14357
+#14367 := [monotonicity #14358 #14364]: #14366
+#14370 := [monotonicity #13957 #14367]: #14369
+#14375 := [trans #14370 #14373]: #14374
+#14073 := (iff #12791 #14070)
+#14052 := (or #13955 #14041)
+#14055 := (or #13955 #14052)
+#14058 := (or #13955 #14055)
+#14061 := (or #13955 #14058)
+#14064 := (or #14049 #14061)
+#14067 := (or #13955 #14064)
+#14071 := (iff #14067 #14070)
+#14072 := [rewrite]: #14071
+#14068 := (iff #12791 #14067)
+#14065 := (iff #12783 #14064)
+#14062 := (iff #12774 #14061)
+#14059 := (iff #12759 #14058)
+#14056 := (iff #12751 #14055)
+#14053 := (iff #12736 #14052)
+#14042 := (iff #12728 #14041)
+#14039 := (iff #12720 #14036)
+#14012 := (or #12644 #14009)
+#14015 := (or #12653 #14012)
+#14018 := (or #12662 #14015)
+#14021 := (or #12671 #14018)
+#14024 := (or #13955 #14021)
+#14027 := (or #13955 #14024)
+#14030 := (or #13955 #14027)
+#14033 := (or #12719 #14030)
+#14037 := (iff #14033 #14036)
+#14038 := [rewrite]: #14037
+#14034 := (iff #12720 #14033)
+#14031 := (iff #12711 #14030)
+#14028 := (iff #12696 #14027)
+#14025 := (iff #12688 #14024)
+#14022 := (iff #12672 #14021)
+#14019 := (iff #12663 #14018)
+#14016 := (iff #12654 #14015)
+#14013 := (iff #12645 #14012)
+#14010 := (iff #12629 #14009)
+#14007 := (iff #12621 #14006)
+#14004 := (iff #12600 #14003)
+#14001 := (iff #12597 #13998)
+#13992 := (and #13958 #5736)
+#13995 := (and #3145 #13992)
+#13999 := (iff #13995 #13998)
+#14000 := [rewrite]: #13999
+#13996 := (iff #12597 #13995)
+#13993 := (iff #12594 #13992)
+#13961 := (iff #3140 #13958)
+#13962 := [rewrite]: #13961
+#13994 := [monotonicity #13962 #5738]: #13993
+#13997 := [monotonicity #13994]: #13996
+#14002 := [trans #13997 #14000]: #14001
+#14005 := [quant-intro #14002]: #14004
+#13990 := (iff #12620 #13989)
+#13987 := (iff #12591 #13986)
+#13984 := (iff #12586 #13981)
+#13975 := (or #13959 #13972)
+#13978 := (or #5739 #13975)
+#13982 := (iff #13978 #13981)
+#13983 := [rewrite]: #13982
+#13979 := (iff #12586 #13978)
+#13976 := (iff #12580 #13975)
+#13973 := (iff #3141 #13972)
+#13974 := [rewrite]: #13973
+#13968 := (iff #12579 #13959)
+#13963 := (not #13958)
+#13966 := (iff #13963 #13959)
+#13967 := [rewrite]: #13966
+#13964 := (iff #12579 #13963)
+#13965 := [monotonicity #13962]: #13964
+#13969 := [trans #13965 #13967]: #13968
+#13977 := [monotonicity #13969 #13974]: #13976
+#13980 := [monotonicity #5741 #13977]: #13979
+#13985 := [trans #13980 #13983]: #13984
+#13988 := [quant-intro #13985]: #13987
+#13991 := [monotonicity #13988]: #13990
+#14008 := [monotonicity #13991 #14005]: #14007
+#14011 := [monotonicity #13988 #14008]: #14010
+#14014 := [monotonicity #14011]: #14013
+#14017 := [monotonicity #14014]: #14016
+#14020 := [monotonicity #14017]: #14019
+#14023 := [monotonicity #14020]: #14022
+#14026 := [monotonicity #13957 #14023]: #14025
+#14029 := [monotonicity #13957 #14026]: #14028
+#14032 := [monotonicity #13957 #14029]: #14031
+#14035 := [monotonicity #14032]: #14034
+#14040 := [trans #14035 #14038]: #14039
+#14043 := [monotonicity #14040]: #14042
+#14054 := [monotonicity #13957 #14043]: #14053
+#14057 := [monotonicity #13957 #14054]: #14056
+#14060 := [monotonicity #13957 #14057]: #14059
+#14063 := [monotonicity #13957 #14060]: #14062
+#14050 := (iff #12782 #14049)
+#14047 := (iff #3131 #14046)
+#14048 := [rewrite]: #14047
+#14051 := [monotonicity #14048]: #14050
+#14066 := [monotonicity #14051 #14063]: #14065
+#14069 := [monotonicity #13957 #14066]: #14068
+#14074 := [trans #14069 #14072]: #14073
+#14378 := [monotonicity #14074 #14375]: #14377
+#14512 := [monotonicity #13957 #14378]: #14511
+#14515 := [monotonicity #14512]: #14514
+#14518 := [monotonicity #14515]: #14517
+#14521 := [monotonicity #14518]: #14520
+#14524 := [monotonicity #14521]: #14523
+#14527 := [monotonicity #14524]: #14526
+#14530 := [monotonicity #14527]: #14529
+#14400 := (iff #13385 #14399)
+#14397 := (iff #12544 #12437)
+#12517 := (and true true)
+#14392 := (and #12517 #12437)
+#14395 := (iff #14392 #12437)
+#14396 := [rewrite]: #14395
+#14393 := (iff #12544 #14392)
+#14390 := (iff #3115 #12517)
+#14388 := (iff #3078 true)
+#14389 := [rewrite]: #14388
+#14386 := (iff #3077 true)
+#14381 := (forall (vars (?x775 T5)) (:pat #3075) true)
+#14384 := (iff #14381 true)
+#14385 := [elim-unused]: #14384
+#14382 := (iff #3077 #14381)
+#14379 := (iff #3076 true)
+#14380 := [rewrite]: #14379
+#14383 := [quant-intro #14380]: #14382
+#14387 := [trans #14383 #14385]: #14386
+#14391 := [monotonicity #14387 #14389]: #14390
+#14394 := [monotonicity #14391]: #14393
+#14398 := [trans #14394 #14396]: #14397
+#14401 := [monotonicity #14398]: #14400
+#14533 := [monotonicity #14401 #14530]: #14532
+#14536 := [monotonicity #14401 #14533]: #14535
+#14539 := [monotonicity #13957 #14536]: #14538
+#14542 := [monotonicity #13957 #14539]: #14541
+#14545 := [monotonicity #13957 #14542]: #14544
+#14548 := [monotonicity #13957 #14545]: #14547
+#14417 := (iff #13516 #14416)
+#14414 := (iff #12432 #14411)
+#14408 := (and #14405 #12426)
+#14412 := (iff #14408 #14411)
+#14413 := [rewrite]: #14412
+#14409 := (iff #12432 #14408)
+#14406 := (iff #3070 #14405)
+#14407 := [rewrite]: #14406
+#14410 := [monotonicity #14407]: #14409
+#14415 := [trans #14410 #14413]: #14414
+#14418 := [monotonicity #14415]: #14417
+#14551 := [monotonicity #14418 #14548]: #14550
+#14451 := (iff #13525 #14450)
+#14448 := (iff #12423 #14447)
+#14445 := (iff #12418 #14442)
+#14436 := (or #14420 #14433)
+#14439 := (or #5739 #14436)
+#14443 := (iff #14439 #14442)
+#14444 := [rewrite]: #14443
+#14440 := (iff #12418 #14439)
+#14437 := (iff #12412 #14436)
+#14434 := (iff #3063 #14433)
+#14435 := [rewrite]: #14434
+#14429 := (iff #12411 #14420)
+#14419 := (not #14420)
+#14424 := (not #14419)
+#14427 := (iff #14424 #14420)
+#14428 := [rewrite]: #14427
+#14425 := (iff #12411 #14424)
+#14422 := (iff #3062 #14419)
+#14423 := [rewrite]: #14422
+#14426 := [monotonicity #14423]: #14425
+#14430 := [trans #14426 #14428]: #14429
+#14438 := [monotonicity #14430 #14435]: #14437
+#14441 := [monotonicity #5741 #14438]: #14440
+#14446 := [trans #14441 #14444]: #14445
+#14449 := [quant-intro #14446]: #14448
+#14452 := [monotonicity #14449]: #14451
+#14554 := [monotonicity #14452 #14551]: #14553
+#14457 := (iff #13534 #14456)
+#14454 := (iff #3061 #14453)
+#14455 := [rewrite]: #14454
+#14458 := [monotonicity #14455]: #14457
+#14557 := [monotonicity #14458 #14554]: #14556
+#14560 := [monotonicity #13957 #14557]: #14559
+#14469 := (iff #13551 #14468)
+#14466 := (iff #3058 #14465)
+#14463 := (iff #3057 #14462)
+#14464 := [rewrite]: #14463
+#14460 := (iff #3056 #14459)
+#14461 := [rewrite]: #14460
+#14467 := [monotonicity #14461 #14464]: #14466
+#14470 := [monotonicity #14467]: #14469
+#14563 := [monotonicity #14470 #14560]: #14562
+#14484 := (iff #13560 #14483)
+#14481 := (iff #3054 #14478)
+#14475 := (and #14471 #13947)
+#14479 := (iff #14475 #14478)
+#14480 := [rewrite]: #14479
+#14476 := (iff #3054 #14475)
+#14473 := (iff #3052 #14471)
+#14474 := [rewrite]: #14473
+#14477 := [monotonicity #14474 #13948]: #14476
+#14482 := [trans #14477 #14480]: #14481
+#14485 := [monotonicity #14482]: #14484
+#14566 := [monotonicity #14485 #14563]: #14565
+#14497 := (iff #13569 #14496)
+#14494 := (iff #3050 #14493)
+#14491 := (iff #3049 #14490)
+#14492 := [rewrite]: #14491
+#14488 := (iff #3048 #14486)
+#14489 := [rewrite]: #14488
+#14495 := [monotonicity #14489 #14492]: #14494
+#14498 := [monotonicity #14495]: #14497
+#14569 := [monotonicity #14498 #14566]: #14568
+#14508 := (iff #13585 #14507)
+#14505 := (iff #12406 #14502)
+#14503 := (iff #14499 #14502)
+#14504 := [rewrite]: #14503
+#14500 := (iff #12406 #14499)
+#13944 := (iff #2951 #13943)
+#13945 := [rewrite]: #13944
+#14501 := [monotonicity #13945]: #14500
+#14506 := [trans #14501 #14504]: #14505
+#14509 := [monotonicity #14506]: #14508
+#14572 := [monotonicity #14509 #14569]: #14571
+#14577 := [trans #14572 #14575]: #14576
+#14580 := [monotonicity #14501 #14577]: #14579
+#14585 := [trans #14580 #14583]: #14584
+#13940 := (iff #13602 #13939)
+#13937 := (iff #12398 #13936)
+#13934 := (iff #12393 #13931)
+#13925 := (or #13910 #13921)
+#13928 := (or #5739 #13925)
+#13932 := (iff #13928 #13931)
+#13933 := [rewrite]: #13932
+#13929 := (iff #12393 #13928)
+#13926 := (iff #12387 #13925)
+#13920 := (iff #3041 #13921)
+#13924 := [rewrite]: #13920
+#13918 := (iff #12386 #13910)
+#13909 := (not #13910)
+#13913 := (not #13909)
+#13916 := (iff #13913 #13910)
+#13917 := [rewrite]: #13916
+#13914 := (iff #12386 #13913)
+#13911 := (iff #3038 #13909)
+#13912 := [rewrite]: #13911
+#13915 := [monotonicity #13912]: #13914
+#13919 := [trans #13915 #13917]: #13918
+#13927 := [monotonicity #13919 #13924]: #13926
+#13930 := [monotonicity #5741 #13927]: #13929
+#13935 := [trans #13930 #13933]: #13934
+#13938 := [quant-intro #13935]: #13937
+#13941 := [monotonicity #13938]: #13940
+#14588 := [monotonicity #13941 #14585]: #14587
+#14591 := [monotonicity #13938 #14588]: #14590
+#13907 := (iff #13619 #13906)
+#13904 := (iff #3037 #13903)
+#13905 := [rewrite]: #13904
+#13908 := [monotonicity #13905]: #13907
+#14594 := [monotonicity #13908 #14591]: #14593
+#14597 := [monotonicity #13905 #14594]: #14596
+#13901 := (iff #13636 false)
+#13444 := (iff #3294 false)
+#13445 := [rewrite]: #13444
+#13899 := (iff #13636 #3294)
+#13897 := (iff #12383 true)
+#13892 := (and true #12517)
+#13895 := (iff #13892 true)
+#13896 := [rewrite]: #13895
+#13893 := (iff #12383 #13892)
+#13890 := (iff #12380 #12517)
+#13888 := (iff #3033 true)
+#13889 := [rewrite]: #13888
+#13886 := (iff #3032 true)
+#13887 := [rewrite]: #13886
+#13891 := [monotonicity #13887 #13889]: #13890
+#13894 := [monotonicity #13887 #13891]: #13893
+#13898 := [trans #13894 #13896]: #13897
+#13900 := [monotonicity #13898]: #13899
+#13902 := [trans #13900 #13445]: #13901
+#14600 := [monotonicity #13902 #14597]: #14599
+#14603 := [monotonicity #14600]: #14602
+#14606 := [monotonicity #14603]: #14605
+#14609 := [monotonicity #14606]: #14608
+#14612 := [monotonicity #14609]: #14611
+#14615 := [monotonicity #14612]: #14614
+#14620 := [trans #14615 #14618]: #14619
+#14623 := [monotonicity #14620]: #14622
+#14628 := [trans #14623 #14626]: #14627
+#14631 := [monotonicity #14628]: #14630
+#14634 := [monotonicity #14631]: #14633
+#14639 := [trans #14634 #14637]: #14638
+#14642 := [monotonicity #14639]: #14641
+#14645 := [monotonicity #14642]: #14644
+#13884 := (iff #13732 #13883)
+#13881 := (iff #3007 #13880)
+#13878 := (iff #3006 #13877)
+#13879 := [rewrite]: #13878
+#13875 := (iff #3005 #13872)
+#13876 := [rewrite]: #13875
+#13882 := [monotonicity #13876 #13879]: #13881
+#13885 := [monotonicity #13882]: #13884
+#14726 := [monotonicity #13885 #14645]: #14725
+#14729 := [monotonicity #14726]: #14728
+#14732 := [monotonicity #14729]: #14731
+#14735 := [monotonicity #14732]: #14734
+#14738 := [monotonicity #14735]: #14737
+#14656 := (iff #13777 #14655)
+#14653 := (iff #2989 #14652)
+#14650 := (iff #2988 #14646)
+#14651 := [rewrite]: #14650
+#14654 := [quant-intro #14651]: #14653
+#14657 := [monotonicity #14654]: #14656
+#14741 := [monotonicity #14657 #14738]: #14740
+#14744 := [monotonicity #14741]: #14743
+#14747 := [monotonicity #14744]: #14746
+#14662 := (iff #13811 #14661)
+#14659 := (iff #12326 #14658)
+#14660 := [rewrite]: #14659
+#14663 := [monotonicity #14660]: #14662
+#14750 := [monotonicity #14663 #14747]: #14749
+#14669 := (iff #13820 #13942)
+#14664 := (not #13943)
+#14667 := (iff #14664 #13942)
+#14668 := [rewrite]: #14667
+#14665 := (iff #13820 #14664)
+#14666 := [monotonicity #13945]: #14665
+#14670 := [trans #14666 #14668]: #14669
+#14753 := [monotonicity #14670 #14750]: #14752
+#14680 := (iff #13829 #14671)
+#14672 := (not #14671)
+#14675 := (not #14672)
+#14678 := (iff #14675 #14671)
+#14679 := [rewrite]: #14678
+#14676 := (iff #13829 #14675)
+#14673 := (iff #2950 #14672)
+#14674 := [rewrite]: #14673
+#14677 := [monotonicity #14674]: #14676
+#14681 := [trans #14677 #14679]: #14680
+#14756 := [monotonicity #14681 #14753]: #14755
+#14694 := (iff #13838 #14693)
+#14691 := (iff #2948 #14690)
+#14688 := (iff #2947 #14687)
+#14689 := [rewrite]: #14688
+#14685 := (iff #2946 #14682)
+#14686 := [rewrite]: #14685
+#14692 := [monotonicity #14686 #14689]: #14691
+#14695 := [monotonicity #14692]: #14694
+#14759 := [monotonicity #14695 #14756]: #14758
+#14708 := (iff #13847 #14707)
+#14705 := (iff #2944 #14704)
+#14702 := (iff #2943 #14701)
+#14703 := [rewrite]: #14702
+#14699 := (iff #2942 #14696)
+#14700 := [rewrite]: #14699
+#14706 := [monotonicity #14700 #14703]: #14705
+#14709 := [monotonicity #14706]: #14708
+#14762 := [monotonicity #14709 #14759]: #14761
+#14722 := (iff #13856 #14721)
+#14719 := (iff #2940 #14718)
+#14716 := (iff #2939 #14715)
+#14717 := [rewrite]: #14716
+#14713 := (iff #2938 #14710)
+#14714 := [rewrite]: #14713
+#14720 := [monotonicity #14714 #14717]: #14719
+#14723 := [monotonicity #14720]: #14722
+#14765 := [monotonicity #14723 #14762]: #14764
+#14770 := [trans #14765 #14768]: #14769
+#14773 := [monotonicity #14770]: #14772
+#13870 := (iff #3345 #13869)
+#13867 := (iff #3344 #13857)
+#13862 := (implies true #13857)
+#13865 := (iff #13862 #13857)
+#13866 := [rewrite]: #13865
+#13863 := (iff #3344 #13862)
+#13860 := (iff #3343 #13857)
+#13853 := (implies #2940 #13848)
+#13858 := (iff #13853 #13857)
+#13859 := [rewrite]: #13858
+#13854 := (iff #3343 #13853)
+#13851 := (iff #3342 #13848)
+#13844 := (implies #2944 #13839)
+#13849 := (iff #13844 #13848)
+#13850 := [rewrite]: #13849
+#13845 := (iff #3342 #13844)
+#13842 := (iff #3341 #13839)
+#13835 := (implies #2948 #13830)
+#13840 := (iff #13835 #13839)
+#13841 := [rewrite]: #13840
+#13836 := (iff #3341 #13835)
+#13833 := (iff #3340 #13830)
+#13826 := (implies #2950 #13821)
+#13831 := (iff #13826 #13830)
+#13832 := [rewrite]: #13831
+#13827 := (iff #3340 #13826)
+#13824 := (iff #3339 #13821)
+#13817 := (implies #2951 #13812)
+#13822 := (iff #13817 #13821)
+#13823 := [rewrite]: #13822
+#13818 := (iff #3339 #13817)
+#13815 := (iff #3338 #13812)
+#13808 := (implies #12326 #13796)
+#13813 := (iff #13808 #13812)
+#13814 := [rewrite]: #13813
+#13809 := (iff #3338 #13808)
+#13806 := (iff #3337 #13796)
+#13801 := (implies true #13796)
+#13804 := (iff #13801 #13796)
+#13805 := [rewrite]: #13804
+#13802 := (iff #3337 #13801)
+#13799 := (iff #3336 #13796)
+#13792 := (implies #12329 #13787)
+#13797 := (iff #13792 #13796)
+#13798 := [rewrite]: #13797
+#13793 := (iff #3336 #13792)
+#13790 := (iff #3335 #13787)
+#13783 := (implies #12338 #13778)
+#13788 := (iff #13783 #13787)
+#13789 := [rewrite]: #13788
+#13784 := (iff #3335 #13783)
+#13781 := (iff #3334 #13778)
+#13774 := (implies #2989 #13769)
+#13779 := (iff #13774 #13778)
+#13780 := [rewrite]: #13779
+#13775 := (iff #3334 #13774)
+#13772 := (iff #3333 #13769)
+#13765 := (implies #2994 #13760)
+#13770 := (iff #13765 #13769)
+#13771 := [rewrite]: #13770
+#13766 := (iff #3333 #13765)
+#13763 := (iff #3332 #13760)
+#13756 := (implies #2996 #13751)
+#13761 := (iff #13756 #13760)
+#13762 := [rewrite]: #13761
+#13757 := (iff #3332 #13756)
+#13754 := (iff #3331 #13751)
+#13747 := (implies #2999 #13742)
+#13752 := (iff #13747 #13751)
+#13753 := [rewrite]: #13752
+#13748 := (iff #3331 #13747)
+#13745 := (iff #3330 #13742)
+#13738 := (implies #12352 #13733)
+#13743 := (iff #13738 #13742)
+#13744 := [rewrite]: #13743
+#13739 := (iff #3330 #13738)
+#13736 := (iff #3329 #13733)
+#13729 := (implies #3007 #13724)
+#13734 := (iff #13729 #13733)
+#13735 := [rewrite]: #13734
+#13730 := (iff #3329 #13729)
+#13727 := (iff #3328 #13724)
+#13721 := (and #13716 #12355)
+#13725 := (iff #13721 #13724)
+#13726 := [rewrite]: #13725
+#13722 := (iff #3328 #13721)
+#12356 := (iff #3010 #12355)
+#12357 := [rewrite]: #12356
+#13719 := (iff #3327 #13716)
+#13712 := (implies #12355 #13707)
+#13717 := (iff #13712 #13716)
+#13718 := [rewrite]: #13717
+#13713 := (iff #3327 #13712)
+#13710 := (iff #3326 #13707)
+#13704 := (and #13699 #12364)
+#13708 := (iff #13704 #13707)
+#13709 := [rewrite]: #13708
+#13705 := (iff #3326 #13704)
+#12365 := (iff #3016 #12364)
+#12362 := (iff #3015 #12361)
+#12363 := [rewrite]: #12362
+#12359 := (iff #3013 #12358)
+#12360 := [rewrite]: #12359
+#12366 := [monotonicity #12360 #12363]: #12365
+#13702 := (iff #3325 #13699)
+#13695 := (implies #12364 #13690)
+#13700 := (iff #13695 #13699)
+#13701 := [rewrite]: #13700
+#13696 := (iff #3325 #13695)
+#13693 := (iff #3324 #13690)
+#13687 := (and #13682 #12373)
+#13691 := (iff #13687 #13690)
+#13692 := [rewrite]: #13691
+#13688 := (iff #3324 #13687)
+#12376 := (iff #3019 #12373)
+#12370 := (and #12367 #12361)
+#12374 := (iff #12370 #12373)
+#12375 := [rewrite]: #12374
+#12371 := (iff #3019 #12370)
+#12368 := (iff #3018 #12367)
+#12369 := [rewrite]: #12368
+#12372 := [monotonicity #12369 #12363]: #12371
+#12377 := [trans #12372 #12375]: #12376
+#13685 := (iff #3323 #13682)
+#13678 := (implies #12373 #13673)
+#13683 := (iff #13678 #13682)
+#13684 := [rewrite]: #13683
+#13679 := (iff #3323 #13678)
+#13676 := (iff #3322 #13673)
+#13669 := (implies #3022 #13664)
+#13674 := (iff #13669 #13673)
+#13675 := [rewrite]: #13674
+#13670 := (iff #3322 #13669)
+#13667 := (iff #3321 #13664)
+#13660 := (implies #3025 #13655)
+#13665 := (iff #13660 #13664)
+#13666 := [rewrite]: #13665
+#13661 := (iff #3321 #13660)
+#13658 := (iff #3320 #13655)
+#13651 := (implies #3028 #13646)
+#13656 := (iff #13651 #13655)
+#13657 := [rewrite]: #13656
+#13652 := (iff #3320 #13651)
+#13649 := (iff #3319 #13646)
+#13642 := (implies #3031 #13637)
+#13647 := (iff #13642 #13646)
+#13648 := [rewrite]: #13647
+#13643 := (iff #3319 #13642)
+#13640 := (iff #3318 #13637)
+#13633 := (implies #12383 #13628)
+#13638 := (iff #13633 #13637)
+#13639 := [rewrite]: #13638
+#13634 := (iff #3318 #13633)
+#13631 := (iff #3317 #13628)
+#13625 := (and #13620 #3037)
+#13629 := (iff #13625 #13628)
+#13630 := [rewrite]: #13629
+#13626 := (iff #3317 #13625)
+#13623 := (iff #3316 #13620)
+#13616 := (implies #3037 #13611)
+#13621 := (iff #13616 #13620)
+#13622 := [rewrite]: #13621
+#13617 := (iff #3316 #13616)
+#13614 := (iff #3315 #13611)
+#13608 := (and #13603 #12398)
+#13612 := (iff #13608 #13611)
+#13613 := [rewrite]: #13612
+#13609 := (iff #3315 #13608)
+#12399 := (iff #3044 #12398)
+#12396 := (iff #3043 #12393)
+#12390 := (implies #5718 #12387)
+#12394 := (iff #12390 #12393)
+#12395 := [rewrite]: #12394
+#12391 := (iff #3043 #12390)
+#12388 := (iff #3042 #12387)
+#12389 := [rewrite]: #12388
+#5719 := (iff #645 #5718)
+#5720 := [rewrite]: #5719
+#12392 := [monotonicity #5720 #12389]: #12391
+#12397 := [trans #12392 #12395]: #12396
+#12400 := [quant-intro #12397]: #12399
+#13606 := (iff #3314 #13603)
+#13599 := (implies #12398 #13594)
+#13604 := (iff #13599 #13603)
+#13605 := [rewrite]: #13604
+#13600 := (iff #3314 #13599)
+#13597 := (iff #3313 #13594)
+#13591 := (and #13586 #12406)
+#13595 := (iff #13591 #13594)
+#13596 := [rewrite]: #13595
+#13592 := (iff #3313 #13591)
+#12409 := (iff #3046 #12406)
+#12403 := (and #3022 #2951)
+#12407 := (iff #12403 #12406)
+#12408 := [rewrite]: #12407
+#12404 := (iff #3046 #12403)
+#12401 := (iff #3045 #3022)
+#12402 := [rewrite]: #12401
+#12405 := [monotonicity #12402]: #12404
+#12410 := [trans #12405 #12408]: #12409
+#13589 := (iff #3312 #13586)
+#13582 := (implies #12406 #13570)
+#13587 := (iff #13582 #13586)
+#13588 := [rewrite]: #13587
+#13583 := (iff #3312 #13582)
+#13580 := (iff #3311 #13570)
+#13575 := (implies true #13570)
+#13578 := (iff #13575 #13570)
+#13579 := [rewrite]: #13578
+#13576 := (iff #3311 #13575)
+#13573 := (iff #3310 #13570)
+#13566 := (implies #3050 #13561)
+#13571 := (iff #13566 #13570)
+#13572 := [rewrite]: #13571
+#13567 := (iff #3310 #13566)
+#13564 := (iff #3309 #13561)
+#13557 := (implies #3054 #13552)
+#13562 := (iff #13557 #13561)
+#13563 := [rewrite]: #13562
+#13558 := (iff #3309 #13557)
+#13555 := (iff #3308 #13552)
+#13548 := (implies #3058 #13543)
+#13553 := (iff #13548 #13552)
+#13554 := [rewrite]: #13553
+#13549 := (iff #3308 #13548)
+#13546 := (iff #3307 #13543)
+#13540 := (implies #3060 #13535)
+#13544 := (iff #13540 #13543)
+#13545 := [rewrite]: #13544
+#13541 := (iff #3307 #13540)
+#13538 := (iff #3306 #13535)
+#13531 := (implies #3061 #13526)
+#13536 := (iff #13531 #13535)
+#13537 := [rewrite]: #13536
+#13532 := (iff #3306 #13531)
+#13529 := (iff #3305 #13526)
+#13522 := (implies #12423 #13517)
+#13527 := (iff #13522 #13526)
+#13528 := [rewrite]: #13527
+#13523 := (iff #3305 #13522)
+#13520 := (iff #3304 #13517)
+#13513 := (implies #12432 #13508)
+#13518 := (iff #13513 #13517)
+#13519 := [rewrite]: #13518
+#13514 := (iff #3304 #13513)
+#13511 := (iff #3303 #13508)
+#13505 := (implies #3060 #13432)
+#13509 := (iff #13505 #13508)
+#13510 := [rewrite]: #13509
+#13506 := (iff #3303 #13505)
+#13503 := (iff #3302 #13432)
+#13498 := (and #13432 true)
+#13501 := (iff #13498 #13432)
+#13502 := [rewrite]: #13501
+#13499 := (iff #3302 #13498)
+#13496 := (iff #3301 true)
+#13491 := (implies true true)
+#13494 := (iff #13491 true)
+#13495 := [rewrite]: #13494
+#13492 := (iff #3301 #13491)
+#13489 := (iff #3300 true)
+#13484 := (implies #3060 true)
+#13487 := (iff #13484 true)
+#13488 := [rewrite]: #13487
+#13485 := (iff #3300 #13484)
+#13482 := (iff #3299 true)
+#13449 := (or #13376 #12751)
+#13457 := (or #12687 #13449)
+#13472 := (or #12687 #13457)
+#13477 := (implies false #13472)
+#13480 := (iff #13477 true)
+#13481 := [rewrite]: #13480
+#13478 := (iff #3299 #13477)
+#13475 := (iff #3298 #13472)
+#13469 := (implies #3060 #13457)
+#13473 := (iff #13469 #13472)
+#13474 := [rewrite]: #13473
+#13470 := (iff #3298 #13469)
+#13467 := (iff #3297 #13457)
+#13462 := (implies true #13457)
+#13465 := (iff #13462 #13457)
+#13466 := [rewrite]: #13465
+#13463 := (iff #3297 #13462)
+#13460 := (iff #3296 #13457)
+#13454 := (implies #3060 #13449)
+#13458 := (iff #13454 #13457)
+#13459 := [rewrite]: #13458
+#13455 := (iff #3296 #13454)
+#13452 := (iff #3295 #13449)
+#13446 := (implies #12556 #12751)
+#13450 := (iff #13446 #13449)
+#13451 := [rewrite]: #13450
+#13447 := (iff #3295 #13446)
+#12754 := (iff #3167 #12751)
+#12748 := (implies #3060 #12736)
+#12752 := (iff #12748 #12751)
+#12753 := [rewrite]: #12752
+#12749 := (iff #3167 #12748)
+#12746 := (iff #3166 #12736)
+#12741 := (implies true #12736)
+#12744 := (iff #12741 #12736)
+#12745 := [rewrite]: #12744
+#12742 := (iff #3166 #12741)
+#12739 := (iff #3165 #12736)
+#12733 := (implies #3060 #12728)
+#12737 := (iff #12733 #12736)
+#12738 := [rewrite]: #12737
+#12734 := (iff #3165 #12733)
+#12731 := (iff #3164 #12728)
+#12725 := (and #12720 up_216)
+#12729 := (iff #12725 #12728)
+#12730 := [rewrite]: #12729
+#12726 := (iff #3164 #12725)
+#12723 := (iff #3163 #12720)
+#12716 := (implies up_216 #12711)
+#12721 := (iff #12716 #12720)
+#12722 := [rewrite]: #12721
+#12717 := (iff #3163 #12716)
+#12714 := (iff #3162 #12711)
+#12708 := (implies #3060 #12696)
+#12712 := (iff #12708 #12711)
+#12713 := [rewrite]: #12712
+#12709 := (iff #3162 #12708)
+#12706 := (iff #3161 #12696)
+#12701 := (implies true #12696)
+#12704 := (iff #12701 #12696)
+#12705 := [rewrite]: #12704
+#12702 := (iff #3161 #12701)
+#12699 := (iff #3160 #12696)
+#12693 := (implies #3060 #12688)
+#12697 := (iff #12693 #12696)
+#12698 := [rewrite]: #12697
+#12694 := (iff #3160 #12693)
+#12691 := (iff #3159 #12688)
+#12684 := (implies #3060 #12672)
+#12689 := (iff #12684 #12688)
+#12690 := [rewrite]: #12689
+#12685 := (iff #3159 #12684)
+#12682 := (iff #3158 #12672)
+#12677 := (implies true #12672)
+#12680 := (iff #12677 #12672)
+#12681 := [rewrite]: #12680
+#12678 := (iff #3158 #12677)
+#12675 := (iff #3157 #12672)
+#12668 := (implies #12567 #12663)
+#12673 := (iff #12668 #12672)
+#12674 := [rewrite]: #12673
+#12669 := (iff #3157 #12668)
+#12666 := (iff #3156 #12663)
+#12659 := (implies #12570 #12654)
+#12664 := (iff #12659 #12663)
+#12665 := [rewrite]: #12664
+#12660 := (iff #3156 #12659)
+#12657 := (iff #3155 #12654)
+#12650 := (implies #12573 #12645)
+#12655 := (iff #12650 #12654)
+#12656 := [rewrite]: #12655
+#12651 := (iff #3155 #12650)
+#12648 := (iff #3154 #12645)
+#12641 := (implies #12576 #12629)
+#12646 := (iff #12641 #12645)
+#12647 := [rewrite]: #12646
+#12642 := (iff #3154 #12641)
+#12639 := (iff #3153 #12629)
+#12634 := (implies true #12629)
+#12637 := (iff #12634 #12629)
+#12638 := [rewrite]: #12637
+#12635 := (iff #3153 #12634)
+#12632 := (iff #3152 #12629)
+#12626 := (and #12621 #12591)
+#12630 := (iff #12626 #12629)
+#12631 := [rewrite]: #12630
+#12627 := (iff #3152 #12626)
+#12592 := (iff #3144 #12591)
+#12589 := (iff #3143 #12586)
+#12583 := (implies #5718 #12580)
+#12587 := (iff #12583 #12586)
+#12588 := [rewrite]: #12587
+#12584 := (iff #3143 #12583)
+#12581 := (iff #3142 #12580)
+#12582 := [rewrite]: #12581
+#12585 := [monotonicity #5720 #12582]: #12584
+#12590 := [trans #12585 #12588]: #12589
+#12593 := [quant-intro #12590]: #12592
+#12624 := (iff #3151 #12621)
+#12617 := (implies #12591 #12600)
+#12622 := (iff #12617 #12621)
+#12623 := [rewrite]: #12622
+#12618 := (iff #3151 #12617)
+#12615 := (iff #3150 #12600)
+#12610 := (and true #12600)
+#12613 := (iff #12610 #12600)
+#12614 := [rewrite]: #12613
+#12611 := (iff #3150 #12610)
+#12601 := (iff #3148 #12600)
+#12598 := (iff #3147 #12597)
+#12595 := (iff #3146 #12594)
+#12596 := [monotonicity #5720]: #12595
+#12599 := [monotonicity #12596]: #12598
+#12602 := [quant-intro #12599]: #12601
+#12608 := (iff #3149 true)
+#12603 := (implies #12600 true)
+#12606 := (iff #12603 true)
+#12607 := [rewrite]: #12606
+#12604 := (iff #3149 #12603)
+#12605 := [monotonicity #12602]: #12604
+#12609 := [trans #12605 #12607]: #12608
+#12612 := [monotonicity #12609 #12602]: #12611
+#12616 := [trans #12612 #12614]: #12615
+#12619 := [monotonicity #12593 #12616]: #12618
+#12625 := [trans #12619 #12623]: #12624
+#12628 := [monotonicity #12625 #12593]: #12627
+#12633 := [trans #12628 #12631]: #12632
+#12636 := [monotonicity #12633]: #12635
+#12640 := [trans #12636 #12638]: #12639
+#12577 := (iff #3139 #12576)
+#12578 := [rewrite]: #12577
+#12643 := [monotonicity #12578 #12640]: #12642
+#12649 := [trans #12643 #12647]: #12648
+#12574 := (iff #3137 #12573)
+#12575 := [rewrite]: #12574
+#12652 := [monotonicity #12575 #12649]: #12651
+#12658 := [trans #12652 #12656]: #12657
+#12571 := (iff #3135 #12570)
+#12572 := [rewrite]: #12571
+#12661 := [monotonicity #12572 #12658]: #12660
+#12667 := [trans #12661 #12665]: #12666
+#12568 := (iff #3133 #12567)
+#12569 := [rewrite]: #12568
+#12670 := [monotonicity #12569 #12667]: #12669
+#12676 := [trans #12670 #12674]: #12675
+#12679 := [monotonicity #12676]: #12678
+#12683 := [trans #12679 #12681]: #12682
+#12686 := [monotonicity #12683]: #12685
+#12692 := [trans #12686 #12690]: #12691
+#12695 := [monotonicity #12692]: #12694
+#12700 := [trans #12695 #12698]: #12699
+#12703 := [monotonicity #12700]: #12702
+#12707 := [trans #12703 #12705]: #12706
+#12710 := [monotonicity #12707]: #12709
+#12715 := [trans #12710 #12713]: #12714
+#12718 := [monotonicity #12715]: #12717
+#12724 := [trans #12718 #12722]: #12723
+#12727 := [monotonicity #12724]: #12726
+#12732 := [trans #12727 #12730]: #12731
+#12735 := [monotonicity #12732]: #12734
+#12740 := [trans #12735 #12738]: #12739
+#12743 := [monotonicity #12740]: #12742
+#12747 := [trans #12743 #12745]: #12746
+#12750 := [monotonicity #12747]: #12749
+#12755 := [trans #12750 #12753]: #12754
+#12557 := (iff #3120 #12556)
+#12554 := (iff #3119 #12553)
+#12555 := [rewrite]: #12554
+#12333 := (iff #2979 #12332)
+#12334 := [rewrite]: #12333
+#12558 := [monotonicity #12334 #12555]: #12557
+#13448 := [monotonicity #12558 #12755]: #13447
+#13453 := [trans #13448 #13451]: #13452
+#13456 := [monotonicity #13453]: #13455
+#13461 := [trans #13456 #13459]: #13460
+#13464 := [monotonicity #13461]: #13463
+#13468 := [trans #13464 #13466]: #13467
+#13471 := [monotonicity #13468]: #13470
+#13476 := [trans #13471 #13474]: #13475
+#13479 := [monotonicity #13445 #13476]: #13478
+#13483 := [trans #13479 #13481]: #13482
+#13486 := [monotonicity #13483]: #13485
+#13490 := [trans #13486 #13488]: #13489
+#13493 := [monotonicity #13490]: #13492
+#13497 := [trans #13493 #13495]: #13496
+#13442 := (iff #3293 #13432)
+#13437 := (implies true #13432)
+#13440 := (iff #13437 #13432)
+#13441 := [rewrite]: #13440
+#13438 := (iff #3293 #13437)
+#13435 := (iff #3292 #13432)
+#13429 := (implies #3060 #13417)
+#13433 := (iff #13429 #13432)
+#13434 := [rewrite]: #13433
+#13430 := (iff #3292 #13429)
+#13427 := (iff #3291 #13417)
+#13422 := (implies true #13417)
+#13425 := (iff #13422 #13417)
+#13426 := [rewrite]: #13425
+#13423 := (iff #3291 #13422)
+#13420 := (iff #3290 #13417)
+#13414 := (implies #3060 #13402)
+#13418 := (iff #13414 #13417)
+#13419 := [rewrite]: #13418
+#13415 := (iff #3290 #13414)
+#13412 := (iff #3289 #13402)
+#13407 := (implies true #13402)
+#13410 := (iff #13407 #13402)
+#13411 := [rewrite]: #13410
+#13408 := (iff #3289 #13407)
+#13405 := (iff #3288 #13402)
+#13399 := (implies #3060 #13394)
+#13403 := (iff #13399 #13402)
+#13404 := [rewrite]: #13403
+#13400 := (iff #3288 #13399)
+#13397 := (iff #3287 #13394)
+#13391 := (implies #12544 #13386)
+#13395 := (iff #13391 #13394)
+#13396 := [rewrite]: #13395
+#13392 := (iff #3287 #13391)
+#13389 := (iff #3286 #13386)
+#13382 := (implies #12544 #13377)
+#13387 := (iff #13382 #13386)
+#13388 := [rewrite]: #13387
+#13383 := (iff #3286 #13382)
+#13380 := (iff #3285 #13377)
+#13373 := (implies #12556 #13368)
+#13378 := (iff #13373 #13377)
+#13379 := [rewrite]: #13378
+#13374 := (iff #3285 #13373)
+#13371 := (iff #3284 #13368)
+#13364 := (implies #3121 #13359)
+#13369 := (iff #13364 #13368)
+#13370 := [rewrite]: #13369
+#13365 := (iff #3284 #13364)
+#13362 := (iff #3283 #13359)
+#13355 := (implies #3122 #13350)
+#13360 := (iff #13355 #13359)
+#13361 := [rewrite]: #13360
+#13356 := (iff #3283 #13355)
+#13353 := (iff #3282 #13350)
+#13346 := (implies #3123 #13341)
+#13351 := (iff #13346 #13350)
+#13352 := [rewrite]: #13351
+#13347 := (iff #3282 #13346)
+#13344 := (iff #3281 #13341)
+#13337 := (implies #3124 #13332)
+#13342 := (iff #13337 #13341)
+#13343 := [rewrite]: #13342
+#13338 := (iff #3281 #13337)
+#13335 := (iff #3280 #13332)
+#13328 := (implies #3127 #13316)
+#13333 := (iff #13328 #13332)
+#13334 := [rewrite]: #13333
+#13329 := (iff #3280 #13328)
+#13326 := (iff #3279 #13316)
+#13321 := (implies true #13316)
+#13324 := (iff #13321 #13316)
+#13325 := [rewrite]: #13324
+#13322 := (iff #3279 #13321)
+#13319 := (iff #3278 #13316)
+#13313 := (implies #3060 #13310)
+#13317 := (iff #13313 #13316)
+#13318 := [rewrite]: #13317
+#13314 := (iff #3278 #13313)
+#13311 := (iff #3277 #13310)
+#13308 := (iff #3276 #13298)
+#13303 := (implies true #13298)
+#13306 := (iff #13303 #13298)
+#13307 := [rewrite]: #13306
+#13304 := (iff #3276 #13303)
+#13301 := (iff #3275 #13298)
+#13295 := (implies #3060 #13290)
+#13299 := (iff #13295 #13298)
+#13300 := [rewrite]: #13299
+#13296 := (iff #3275 #13295)
+#13293 := (iff #3274 #13290)
+#13286 := (implies #3174 #13281)
+#13291 := (iff #13286 #13290)
+#13292 := [rewrite]: #13291
+#13287 := (iff #3274 #13286)
+#13284 := (iff #3273 #13281)
+#13278 := (implies #3060 #13266)
+#13282 := (iff #13278 #13281)
+#13283 := [rewrite]: #13282
+#13279 := (iff #3273 #13278)
+#13276 := (iff #3272 #13266)
+#13271 := (implies true #13266)
+#13274 := (iff #13271 #13266)
+#13275 := [rewrite]: #13274
+#13272 := (iff #3272 #13271)
+#13269 := (iff #3271 #13266)
+#13263 := (implies #3060 #13258)
+#13267 := (iff #13263 #13266)
+#13268 := [rewrite]: #13267
+#13264 := (iff #3271 #13263)
+#13261 := (iff #3270 #13258)
+#13255 := (and #13250 #12809)
+#13259 := (iff #13255 #13258)
+#13260 := [rewrite]: #13259
+#13256 := (iff #3270 #13255)
+#12810 := (iff #3180 #12809)
+#12807 := (iff #3179 #12806)
+#12808 := [rewrite]: #12807
+#12804 := (iff #3177 #12803)
+#12805 := [rewrite]: #12804
+#12811 := [monotonicity #12805 #12808]: #12810
+#13253 := (iff #3269 #13250)
+#13247 := (implies #12809 #13242)
+#13251 := (iff #13247 #13250)
+#13252 := [rewrite]: #13251
+#13248 := (iff #3269 #13247)
+#13245 := (iff #3268 #13242)
+#13239 := (and #13234 #12818)
+#13243 := (iff #13239 #13242)
+#13244 := [rewrite]: #13243
+#13240 := (iff #3268 #13239)
+#12821 := (iff #3183 #12818)
+#12815 := (and #12812 #12806)
+#12819 := (iff #12815 #12818)
+#12820 := [rewrite]: #12819
+#12816 := (iff #3183 #12815)
+#12813 := (iff #3182 #12812)
+#12814 := [rewrite]: #12813
+#12817 := [monotonicity #12814 #12808]: #12816
+#12822 := [trans #12817 #12820]: #12821
+#13237 := (iff #3267 #13234)
+#13231 := (implies #12818 #13226)
+#13235 := (iff #13231 #13234)
+#13236 := [rewrite]: #13235
+#13232 := (iff #3267 #13231)
+#13229 := (iff #3266 #13226)
+#13223 := (implies #3060 #13220)
+#13227 := (iff #13223 #13226)
+#13228 := [rewrite]: #13227
+#13224 := (iff #3266 #13223)
+#13221 := (iff #3265 #13220)
+#13218 := (iff #3264 #13208)
+#13213 := (implies true #13208)
+#13216 := (iff #13213 #13208)
+#13217 := [rewrite]: #13216
+#13214 := (iff #3264 #13213)
+#13211 := (iff #3263 #13208)
+#13205 := (implies #3060 #13200)
+#13209 := (iff #13205 #13208)
+#13210 := [rewrite]: #13209
+#13206 := (iff #3263 #13205)
+#13203 := (iff #3262 #13200)
+#13196 := (implies #3238 #13191)
+#13201 := (iff #13196 #13200)
+#13202 := [rewrite]: #13201
+#13197 := (iff #3262 #13196)
+#13194 := (iff #3261 #13191)
+#13188 := (implies #3060 #13176)
+#13192 := (iff #13188 #13191)
+#13193 := [rewrite]: #13192
+#13189 := (iff #3261 #13188)
+#13186 := (iff #3260 #13176)
+#13181 := (implies true #13176)
+#13184 := (iff #13181 #13176)
+#13185 := [rewrite]: #13184
+#13182 := (iff #3260 #13181)
+#13179 := (iff #3259 #13176)
+#13173 := (implies #3060 #13168)
+#13177 := (iff #13173 #13176)
+#13178 := [rewrite]: #13177
+#13174 := (iff #3259 #13173)
+#13171 := (iff #3258 #13168)
+#13165 := (and #13160 #12809)
+#13169 := (iff #13165 #13168)
+#13170 := [rewrite]: #13169
+#13166 := (iff #3258 #13165)
+#13163 := (iff #3257 #13160)
+#13156 := (implies #12809 #13151)
+#13161 := (iff #13156 #13160)
+#13162 := [rewrite]: #13161
+#13157 := (iff #3257 #13156)
+#13154 := (iff #3256 #13151)
+#13148 := (and #13143 #12818)
+#13152 := (iff #13148 #13151)
+#13153 := [rewrite]: #13152
+#13149 := (iff #3256 #13148)
+#13146 := (iff #3255 #13143)
+#13139 := (implies #12818 #13134)
+#13144 := (iff #13139 #13143)
+#13145 := [rewrite]: #13144
+#13140 := (iff #3255 #13139)
+#13137 := (iff #3254 #13134)
+#13130 := (implies #13070 #13125)
+#13135 := (iff #13130 #13134)
+#13136 := [rewrite]: #13135
+#13131 := (iff #3254 #13130)
+#13128 := (iff #3253 #13125)
+#13121 := (implies #3242 #13116)
+#13126 := (iff #13121 #13125)
+#13127 := [rewrite]: #13126
+#13122 := (iff #3253 #13121)
+#13119 := (iff #3252 #13116)
+#13112 := (implies #3244 #13107)
+#13117 := (iff #13112 #13116)
+#13118 := [rewrite]: #13117
+#13113 := (iff #3252 #13112)
+#13110 := (iff #3251 #13107)
+#13103 := (implies #3059 #13091)
+#13108 := (iff #13103 #13107)
+#13109 := [rewrite]: #13108
+#13104 := (iff #3251 #13103)
+#13101 := (iff #3250 #13091)
+#13096 := (implies true #13091)
+#13099 := (iff #13096 #13091)
+#13100 := [rewrite]: #13099
+#13097 := (iff #3250 #13096)
+#13094 := (iff #3249 #13091)
+#13087 := (implies #3246 #13082)
+#13092 := (iff #13087 #13091)
+#13093 := [rewrite]: #13092
+#13088 := (iff #3249 #13087)
+#13085 := (iff #3248 #13082)
+#13078 := (implies #13075 #12978)
+#13083 := (iff #13078 #13082)
+#13084 := [rewrite]: #13083
+#13079 := (iff #3248 #13078)
+#12988 := (iff #3227 #12978)
+#12983 := (implies true #12978)
+#12986 := (iff #12983 #12978)
+#12987 := [rewrite]: #12986
+#12984 := (iff #3227 #12983)
+#12981 := (iff #3226 #12978)
+#12974 := (implies #12829 #12969)
+#12979 := (iff #12974 #12978)
+#12980 := [rewrite]: #12979
+#12975 := (iff #3226 #12974)
+#12972 := (iff #3225 #12969)
+#12966 := (and #12961 #12841)
+#12970 := (iff #12966 #12969)
+#12971 := [rewrite]: #12970
+#12967 := (iff #3225 #12966)
+#12842 := (iff #3195 #12841)
+#12839 := (iff #3194 #12838)
+#12833 := (= #3192 #12832)
+#12834 := [rewrite]: #12833
+#12840 := [monotonicity #12834]: #12839
+#12836 := (iff #3193 #12835)
+#12837 := [monotonicity #12834]: #12836
+#12843 := [monotonicity #12837 #12840]: #12842
+#12964 := (iff #3224 #12961)
+#12957 := (implies #12841 #12952)
+#12962 := (iff #12957 #12961)
+#12963 := [rewrite]: #12962
+#12958 := (iff #3224 #12957)
+#12955 := (iff #3223 #12952)
+#12948 := (implies #12844 #12943)
+#12953 := (iff #12948 #12952)
+#12954 := [rewrite]: #12953
+#12949 := (iff #3223 #12948)
+#12946 := (iff #3222 #12943)
+#12939 := (implies #3199 #12934)
+#12944 := (iff #12939 #12943)
+#12945 := [rewrite]: #12944
+#12940 := (iff #3222 #12939)
+#12937 := (iff #3221 #12934)
+#12930 := (implies #3201 #12918)
+#12935 := (iff #12930 #12934)
+#12936 := [rewrite]: #12935
+#12931 := (iff #3221 #12930)
+#12928 := (iff #3220 #12918)
+#12923 := (implies true #12918)
+#12926 := (iff #12923 #12918)
+#12927 := [rewrite]: #12926
+#12924 := (iff #3220 #12923)
+#12921 := (iff #3219 #12918)
+#12915 := (and #12910 #3202)
+#12919 := (iff #12915 #12918)
+#12920 := [rewrite]: #12919
+#12916 := (iff #3219 #12915)
+#12913 := (iff #3218 #12910)
+#12906 := (implies #3202 #12901)
+#12911 := (iff #12906 #12910)
+#12912 := [rewrite]: #12911
+#12907 := (iff #3218 #12906)
+#12904 := (iff #3217 #12901)
+#12898 := (and #12893 #12859)
+#12902 := (iff #12898 #12901)
+#12903 := [rewrite]: #12902
+#12899 := (iff #3217 #12898)
+#12860 := (iff #3207 #12859)
+#12857 := (iff #3206 #12854)
+#12851 := (implies #5718 #12848)
+#12855 := (iff #12851 #12854)
+#12856 := [rewrite]: #12855
+#12852 := (iff #3206 #12851)
+#12849 := (iff #3205 #12848)
+#12850 := [rewrite]: #12849
+#12853 := [monotonicity #5720 #12850]: #12852
+#12858 := [trans #12853 #12856]: #12857
+#12861 := [quant-intro #12858]: #12860
+#12896 := (iff #3216 #12893)
+#12889 := (implies #12859 #12868)
+#12894 := (iff #12889 #12893)
+#12895 := [rewrite]: #12894
+#12890 := (iff #3216 #12889)
+#12887 := (iff #3215 #12868)
+#12882 := (and true #12868)
+#12885 := (iff #12882 #12868)
+#12886 := [rewrite]: #12885
+#12883 := (iff #3215 #12882)
+#12871 := (iff #3212 #12868)
+#12865 := (and #12862 #3211)
+#12869 := (iff #12865 #12868)
+#12870 := [rewrite]: #12869
+#12866 := (iff #3212 #12865)
+#12863 := (iff #3210 #12862)
+#12864 := [rewrite]: #12863
+#12867 := [monotonicity #12864]: #12866
+#12872 := [trans #12867 #12870]: #12871
+#12880 := (iff #3214 true)
+#12875 := (implies #12868 true)
+#12878 := (iff #12875 true)
+#12879 := [rewrite]: #12878
+#12876 := (iff #3214 #12875)
+#12873 := (iff #3213 true)
+#12874 := [rewrite]: #12873
+#12877 := [monotonicity #12872 #12874]: #12876
+#12881 := [trans #12877 #12879]: #12880
+#12884 := [monotonicity #12881 #12872]: #12883
+#12888 := [trans #12884 #12886]: #12887
+#12891 := [monotonicity #12861 #12888]: #12890
+#12897 := [trans #12891 #12895]: #12896
+#12900 := [monotonicity #12897 #12861]: #12899
+#12905 := [trans #12900 #12903]: #12904
+#12908 := [monotonicity #12905]: #12907
+#12914 := [trans #12908 #12912]: #12913
+#12917 := [monotonicity #12914]: #12916
+#12922 := [trans #12917 #12920]: #12921
+#12925 := [monotonicity #12922]: #12924
+#12929 := [trans #12925 #12927]: #12928
+#12932 := [monotonicity #12929]: #12931
+#12938 := [trans #12932 #12936]: #12937
+#12941 := [monotonicity #12938]: #12940
+#12947 := [trans #12941 #12945]: #12946
+#12845 := (iff #3197 #12844)
+#12846 := [monotonicity #12834]: #12845
+#12950 := [monotonicity #12846 #12947]: #12949
+#12956 := [trans #12950 #12954]: #12955
+#12959 := [monotonicity #12843 #12956]: #12958
+#12965 := [trans #12959 #12963]: #12964
+#12968 := [monotonicity #12965 #12843]: #12967
+#12973 := [trans #12968 #12971]: #12972
+#12830 := (iff #3191 #12829)
+#12831 := [rewrite]: #12830
+#12976 := [monotonicity #12831 #12973]: #12975
+#12982 := [trans #12976 #12980]: #12981
+#12985 := [monotonicity #12982]: #12984
+#12989 := [trans #12985 #12987]: #12988
+#13076 := (iff #3247 #13075)
+#13077 := [rewrite]: #13076
+#13080 := [monotonicity #13077 #12989]: #13079
+#13086 := [trans #13080 #13084]: #13085
+#13089 := [monotonicity #13086]: #13088
+#13095 := [trans #13089 #13093]: #13094
+#13098 := [monotonicity #13095]: #13097
+#13102 := [trans #13098 #13100]: #13101
+#13073 := (iff #3245 #3059)
+#13074 := [rewrite]: #13073
+#13105 := [monotonicity #13074 #13102]: #13104
+#13111 := [trans #13105 #13109]: #13110
+#13114 := [monotonicity #13111]: #13113
+#13120 := [trans #13114 #13118]: #13119
+#13123 := [monotonicity #13120]: #13122
+#13129 := [trans #13123 #13127]: #13128
+#13071 := (iff #3240 #13070)
+#13072 := [rewrite]: #13071
+#13132 := [monotonicity #13072 #13129]: #13131
+#13138 := [trans #13132 #13136]: #13137
+#13141 := [monotonicity #12822 #13138]: #13140
+#13147 := [trans #13141 #13145]: #13146
+#13150 := [monotonicity #13147 #12822]: #13149
+#13155 := [trans #13150 #13153]: #13154
+#13158 := [monotonicity #12811 #13155]: #13157
+#13164 := [trans #13158 #13162]: #13163
+#13167 := [monotonicity #13164 #12811]: #13166
+#13172 := [trans #13167 #13170]: #13171
+#13175 := [monotonicity #13172]: #13174
+#13180 := [trans #13175 #13178]: #13179
+#13183 := [monotonicity #13180]: #13182
+#13187 := [trans #13183 #13185]: #13186
+#13190 := [monotonicity #13187]: #13189
+#13195 := [trans #13190 #13193]: #13194
+#13198 := [monotonicity #13195]: #13197
+#13204 := [trans #13198 #13202]: #13203
+#13207 := [monotonicity #13204]: #13206
+#13212 := [trans #13207 #13210]: #13211
+#13215 := [monotonicity #13212]: #13214
+#13219 := [trans #13215 #13217]: #13218
+#13068 := (iff #3237 #13058)
+#13063 := (implies true #13058)
+#13066 := (iff #13063 #13058)
+#13067 := [rewrite]: #13066
+#13064 := (iff #3237 #13063)
+#13061 := (iff #3236 #13058)
+#13055 := (implies #3060 #13050)
+#13059 := (iff #13055 #13058)
+#13060 := [rewrite]: #13059
+#13056 := (iff #3236 #13055)
+#13053 := (iff #3235 #13050)
+#13046 := (implies #3185 #13041)
+#13051 := (iff #13046 #13050)
+#13052 := [rewrite]: #13051
+#13047 := (iff #3235 #13046)
+#13044 := (iff #3234 #13041)
+#13038 := (implies #3060 #13026)
+#13042 := (iff #13038 #13041)
+#13043 := [rewrite]: #13042
+#13039 := (iff #3234 #13038)
+#13036 := (iff #3233 #13026)
+#13031 := (implies true #13026)
+#13034 := (iff #13031 #13026)
+#13035 := [rewrite]: #13034
+#13032 := (iff #3233 #13031)
+#13029 := (iff #3232 #13026)
+#13023 := (implies #3060 #13018)
+#13027 := (iff #13023 #13026)
+#13028 := [rewrite]: #13027
+#13024 := (iff #3232 #13023)
+#13021 := (iff #3231 #13018)
+#13015 := (implies #3060 #13003)
+#13019 := (iff #13015 #13018)
+#13020 := [rewrite]: #13019
+#13016 := (iff #3231 #13015)
+#13013 := (iff #3230 #13003)
+#13008 := (implies true #13003)
+#13011 := (iff #13008 #13003)
+#13012 := [rewrite]: #13011
+#13009 := (iff #3230 #13008)
+#13006 := (iff #3229 #13003)
+#12999 := (implies #12823 #12994)
+#13004 := (iff #12999 #13003)
+#13005 := [rewrite]: #13004
+#13000 := (iff #3229 #12999)
+#12997 := (iff #3228 #12994)
+#12990 := (implies #12826 #12978)
+#12995 := (iff #12990 #12994)
+#12996 := [rewrite]: #12995
+#12991 := (iff #3228 #12990)
+#12827 := (iff #3189 #12826)
+#12828 := [rewrite]: #12827
+#12992 := [monotonicity #12828 #12989]: #12991
+#12998 := [trans #12992 #12996]: #12997
+#12824 := (iff #3187 #12823)
+#12825 := [rewrite]: #12824
+#13001 := [monotonicity #12825 #12998]: #13000
+#13007 := [trans #13001 #13005]: #13006
+#13010 := [monotonicity #13007]: #13009
+#13014 := [trans #13010 #13012]: #13013
+#13017 := [monotonicity #13014]: #13016
+#13022 := [trans #13017 #13020]: #13021
+#13025 := [monotonicity #13022]: #13024
+#13030 := [trans #13025 #13028]: #13029
+#13033 := [monotonicity #13030]: #13032
+#13037 := [trans #13033 #13035]: #13036
+#13040 := [monotonicity #13037]: #13039
+#13045 := [trans #13040 #13043]: #13044
+#13048 := [monotonicity #13045]: #13047
+#13054 := [trans #13048 #13052]: #13053
+#13057 := [monotonicity #13054]: #13056
+#13062 := [trans #13057 #13060]: #13061
+#13065 := [monotonicity #13062]: #13064
+#13069 := [trans #13065 #13067]: #13068
+#13222 := [monotonicity #13069 #13219]: #13221
+#13225 := [monotonicity #13222]: #13224
+#13230 := [trans #13225 #13228]: #13229
+#13233 := [monotonicity #12822 #13230]: #13232
+#13238 := [trans #13233 #13236]: #13237
+#13241 := [monotonicity #13238 #12822]: #13240
+#13246 := [trans #13241 #13244]: #13245
+#13249 := [monotonicity #12811 #13246]: #13248
+#13254 := [trans #13249 #13252]: #13253
+#13257 := [monotonicity #13254 #12811]: #13256
+#13262 := [trans #13257 #13260]: #13261
+#13265 := [monotonicity #13262]: #13264
+#13270 := [trans #13265 #13268]: #13269
+#13273 := [monotonicity #13270]: #13272
+#13277 := [trans #13273 #13275]: #13276
+#13280 := [monotonicity #13277]: #13279
+#13285 := [trans #13280 #13283]: #13284
+#13288 := [monotonicity #13285]: #13287
+#13294 := [trans #13288 #13292]: #13293
+#13297 := [monotonicity #13294]: #13296
+#13302 := [trans #13297 #13300]: #13301
+#13305 := [monotonicity #13302]: #13304
+#13309 := [trans #13305 #13307]: #13308
+#12801 := (iff #3173 #12791)
+#12796 := (implies true #12791)
+#12799 := (iff #12796 #12791)
+#12800 := [rewrite]: #12799
+#12797 := (iff #3173 #12796)
+#12794 := (iff #3172 #12791)
+#12788 := (implies #3060 #12783)
+#12792 := (iff #12788 #12791)
+#12793 := [rewrite]: #12792
+#12789 := (iff #3172 #12788)
+#12786 := (iff #3171 #12783)
+#12779 := (implies #3131 #12774)
+#12784 := (iff #12779 #12783)
+#12785 := [rewrite]: #12784
+#12780 := (iff #3171 #12779)
+#12777 := (iff #3170 #12774)
+#12771 := (implies #3060 #12759)
+#12775 := (iff #12771 #12774)
+#12776 := [rewrite]: #12775
+#12772 := (iff #3170 #12771)
+#12769 := (iff #3169 #12759)
+#12764 := (implies true #12759)
+#12767 := (iff #12764 #12759)
+#12768 := [rewrite]: #12767
+#12765 := (iff #3169 #12764)
+#12762 := (iff #3168 #12759)
+#12756 := (implies #3060 #12751)
+#12760 := (iff #12756 #12759)
+#12761 := [rewrite]: #12760
+#12757 := (iff #3168 #12756)
+#12758 := [monotonicity #12755]: #12757
+#12763 := [trans #12758 #12761]: #12762
+#12766 := [monotonicity #12763]: #12765
+#12770 := [trans #12766 #12768]: #12769
+#12773 := [monotonicity #12770]: #12772
+#12778 := [trans #12773 #12776]: #12777
+#12781 := [monotonicity #12778]: #12780
+#12787 := [trans #12781 #12785]: #12786
+#12790 := [monotonicity #12787]: #12789
+#12795 := [trans #12790 #12793]: #12794
+#12798 := [monotonicity #12795]: #12797
+#12802 := [trans #12798 #12800]: #12801
+#13312 := [monotonicity #12802 #13309]: #13311
+#13315 := [monotonicity #13312]: #13314
+#13320 := [trans #13315 #13318]: #13319
+#12565 := (iff #3130 true)
+#12520 := (iff #12517 true)
+#12521 := [rewrite]: #12520
+#12563 := (iff #3130 #12517)
+#12561 := (iff #3129 true)
+#12562 := [rewrite]: #12561
+#12559 := (iff #3128 true)
+#12560 := [rewrite]: #12559
+#12564 := [monotonicity #12560 #12562]: #12563
+#12566 := [trans #12564 #12521]: #12565
+#13323 := [monotonicity #12566 #13320]: #13322
+#13327 := [trans #13323 #13325]: #13326
+#13330 := [monotonicity #13327]: #13329
+#13336 := [trans #13330 #13334]: #13335
+#13339 := [monotonicity #13336]: #13338
+#13345 := [trans #13339 #13343]: #13344
+#13348 := [monotonicity #13345]: #13347
+#13354 := [trans #13348 #13352]: #13353
+#13357 := [monotonicity #13354]: #13356
+#13363 := [trans #13357 #13361]: #13362
+#13366 := [monotonicity #13363]: #13365
+#13372 := [trans #13366 #13370]: #13371
+#13375 := [monotonicity #12558 #13372]: #13374
+#13381 := [trans #13375 #13379]: #13380
+#12551 := (iff #3116 #12544)
+#12541 := (and #12437 #3115)
+#12545 := (iff #12541 #12544)
+#12546 := [rewrite]: #12545
+#12549 := (iff #3116 #12541)
+#12438 := (iff #3073 #12437)
+#12439 := [rewrite]: #12438
+#12550 := [monotonicity #12439]: #12549
+#12552 := [trans #12550 #12546]: #12551
+#13384 := [monotonicity #12552 #13381]: #13383
+#13390 := [trans #13384 #13388]: #13389
+#12547 := (iff #3114 #12544)
+#12542 := (iff #3114 #12541)
+#12539 := (iff #3113 #3115)
+#12537 := (iff #3112 #3078)
+#12532 := (and #3078 true)
+#12535 := (iff #12532 #3078)
+#12536 := [rewrite]: #12535
+#12533 := (iff #3112 #12532)
+#12530 := (iff #3111 true)
+#12528 := (iff #3111 #12517)
+#12526 := (iff #3110 true)
+#12524 := (iff #3110 #12517)
+#12522 := (iff #3109 true)
+#12518 := (iff #3109 #12517)
+#12515 := (iff #3108 true)
+#12476 := (forall (vars (?x777 T5)) (:pat #3090) true)
+#12479 := (iff #12476 true)
+#12480 := [elim-unused]: #12479
+#12513 := (iff #3108 #12476)
+#12511 := (iff #3107 true)
+#12500 := (= uf_261 #3104)
+#12503 := (not #12500)
+#12506 := (implies #12503 #12503)
+#12509 := (iff #12506 true)
+#12510 := [rewrite]: #12509
+#12507 := (iff #3107 #12506)
+#12504 := (iff #3106 #12503)
+#12501 := (iff #3105 #12500)
+#12502 := [rewrite]: #12501
+#12505 := [monotonicity #12502]: #12504
+#12508 := [monotonicity #12505 #12505]: #12507
+#12512 := [trans #12508 #12510]: #12511
+#12514 := [quant-intro #12512]: #12513
+#12516 := [trans #12514 #12480]: #12515
+#12498 := (iff #3101 true)
+#12493 := (forall (vars (?x778 T5)) (:pat #3097) true)
+#12496 := (iff #12493 true)
+#12497 := [elim-unused]: #12496
+#12494 := (iff #3101 #12493)
+#12491 := (iff #3100 true)
+#12440 := (= uf_9 #3082)
+#12452 := (implies #12440 #12440)
+#12455 := (iff #12452 true)
+#12456 := [rewrite]: #12455
+#12489 := (iff #3100 #12452)
+#12487 := (iff #3099 #12440)
+#12445 := (and #12440 true)
+#12448 := (iff #12445 #12440)
+#12449 := [rewrite]: #12448
+#12485 := (iff #3099 #12445)
+#12483 := (iff #3098 true)
+#12484 := [rewrite]: #12483
+#12441 := (iff #3083 #12440)
+#12442 := [rewrite]: #12441
+#12486 := [monotonicity #12442 #12484]: #12485
+#12488 := [trans #12486 #12449]: #12487
+#12490 := [monotonicity #12442 #12488]: #12489
+#12492 := [trans #12490 #12456]: #12491
+#12495 := [quant-intro #12492]: #12494
+#12499 := [trans #12495 #12497]: #12498
+#12519 := [monotonicity #12499 #12516]: #12518
+#12523 := [trans #12519 #12521]: #12522
+#12481 := (iff #3094 true)
+#12477 := (iff #3094 #12476)
+#12474 := (iff #3093 true)
+#12472 := (iff #3093 #12452)
+#12470 := (iff #3092 #12440)
+#12468 := (iff #3092 #12445)
+#12466 := (iff #3091 true)
+#12467 := [rewrite]: #12466
+#12469 := [monotonicity #12442 #12467]: #12468
+#12471 := [trans #12469 #12449]: #12470
+#12473 := [monotonicity #12442 #12471]: #12472
+#12475 := [trans #12473 #12456]: #12474
+#12478 := [quant-intro #12475]: #12477
+#12482 := [trans #12478 #12480]: #12481
+#12525 := [monotonicity #12482 #12523]: #12524
+#12527 := [trans #12525 #12521]: #12526
+#12464 := (iff #3087 true)
+#12459 := (forall (vars (?x776 T5)) (:pat #3081) true)
+#12462 := (iff #12459 true)
+#12463 := [elim-unused]: #12462
+#12460 := (iff #3087 #12459)
+#12457 := (iff #3086 true)
+#12453 := (iff #3086 #12452)
+#12450 := (iff #3085 #12440)
+#12446 := (iff #3085 #12445)
+#12443 := (iff #3084 true)
+#12444 := [rewrite]: #12443
+#12447 := [monotonicity #12442 #12444]: #12446
+#12451 := [trans #12447 #12449]: #12450
+#12454 := [monotonicity #12442 #12451]: #12453
+#12458 := [trans #12454 #12456]: #12457
+#12461 := [quant-intro #12458]: #12460
+#12465 := [trans #12461 #12463]: #12464
+#12529 := [monotonicity #12465 #12527]: #12528
+#12531 := [trans #12529 #12521]: #12530
+#12534 := [monotonicity #12531]: #12533
+#12538 := [trans #12534 #12536]: #12537
+#12540 := [monotonicity #12538]: #12539
+#12543 := [monotonicity #12439 #12540]: #12542
+#12548 := [trans #12543 #12546]: #12547
+#13393 := [monotonicity #12548 #13390]: #13392
+#13398 := [trans #13393 #13396]: #13397
+#13401 := [monotonicity #13398]: #13400
+#13406 := [trans #13401 #13404]: #13405
+#13409 := [monotonicity #13406]: #13408
+#13413 := [trans #13409 #13411]: #13412
+#13416 := [monotonicity #13413]: #13415
+#13421 := [trans #13416 #13419]: #13420
+#13424 := [monotonicity #13421]: #13423
+#13428 := [trans #13424 #13426]: #13427
+#13431 := [monotonicity #13428]: #13430
+#13436 := [trans #13431 #13434]: #13435
+#13439 := [monotonicity #13436]: #13438
+#13443 := [trans #13439 #13441]: #13442
+#13500 := [monotonicity #13443 #13497]: #13499
+#13504 := [trans #13500 #13502]: #13503
+#13507 := [monotonicity #13504]: #13506
+#13512 := [trans #13507 #13510]: #13511
+#12435 := (iff #3071 #12432)
+#12429 := (and #12426 #3070)
+#12433 := (iff #12429 #12432)
+#12434 := [rewrite]: #12433
+#12430 := (iff #3071 #12429)
+#12427 := (iff #3069 #12426)
+#12428 := [rewrite]: #12427
+#12431 := [monotonicity #12428]: #12430
+#12436 := [trans #12431 #12434]: #12435
+#13515 := [monotonicity #12436 #13512]: #13514
+#13521 := [trans #13515 #13519]: #13520
+#12424 := (iff #3066 #12423)
+#12421 := (iff #3065 #12418)
+#12415 := (implies #5718 #12412)
+#12419 := (iff #12415 #12418)
+#12420 := [rewrite]: #12419
+#12416 := (iff #3065 #12415)
+#12413 := (iff #3064 #12412)
+#12414 := [rewrite]: #12413
+#12417 := [monotonicity #5720 #12414]: #12416
+#12422 := [trans #12417 #12420]: #12421
+#12425 := [quant-intro #12422]: #12424
+#13524 := [monotonicity #12425 #13521]: #13523
+#13530 := [trans #13524 #13528]: #13529
+#13533 := [monotonicity #13530]: #13532
+#13539 := [trans #13533 #13537]: #13538
+#13542 := [monotonicity #13539]: #13541
+#13547 := [trans #13542 #13545]: #13546
+#13550 := [monotonicity #13547]: #13549
+#13556 := [trans #13550 #13554]: #13555
+#13559 := [monotonicity #13556]: #13558
+#13565 := [trans #13559 #13563]: #13564
+#13568 := [monotonicity #13565]: #13567
+#13574 := [trans #13568 #13572]: #13573
+#13577 := [monotonicity #13574]: #13576
+#13581 := [trans #13577 #13579]: #13580
+#13584 := [monotonicity #12410 #13581]: #13583
+#13590 := [trans #13584 #13588]: #13589
+#13593 := [monotonicity #13590 #12410]: #13592
+#13598 := [trans #13593 #13596]: #13597
+#13601 := [monotonicity #12400 #13598]: #13600
+#13607 := [trans #13601 #13605]: #13606
+#13610 := [monotonicity #13607 #12400]: #13609
+#13615 := [trans #13610 #13613]: #13614
+#13618 := [monotonicity #13615]: #13617
+#13624 := [trans #13618 #13622]: #13623
+#13627 := [monotonicity #13624]: #13626
+#13632 := [trans #13627 #13630]: #13631
+#12384 := (iff #3036 #12383)
+#12381 := (iff #3035 #12380)
+#12378 := (iff #3034 #3033)
+#12379 := [rewrite]: #12378
+#12382 := [monotonicity #12379]: #12381
+#12385 := [monotonicity #12382]: #12384
+#13635 := [monotonicity #12385 #13632]: #13634
+#13641 := [trans #13635 #13639]: #13640
+#13644 := [monotonicity #13641]: #13643
+#13650 := [trans #13644 #13648]: #13649
+#13653 := [monotonicity #13650]: #13652
+#13659 := [trans #13653 #13657]: #13658
+#13662 := [monotonicity #13659]: #13661
+#13668 := [trans #13662 #13666]: #13667
+#13671 := [monotonicity #13668]: #13670
+#13677 := [trans #13671 #13675]: #13676
+#13680 := [monotonicity #12377 #13677]: #13679
+#13686 := [trans #13680 #13684]: #13685
+#13689 := [monotonicity #13686 #12377]: #13688
+#13694 := [trans #13689 #13692]: #13693
+#13697 := [monotonicity #12366 #13694]: #13696
+#13703 := [trans #13697 #13701]: #13702
+#13706 := [monotonicity #13703 #12366]: #13705
+#13711 := [trans #13706 #13709]: #13710
+#13714 := [monotonicity #12357 #13711]: #13713
+#13720 := [trans #13714 #13718]: #13719
+#13723 := [monotonicity #13720 #12357]: #13722
+#13728 := [trans #13723 #13726]: #13727
+#13731 := [monotonicity #13728]: #13730
+#13737 := [trans #13731 #13735]: #13736
+#12353 := (iff #3004 #12352)
+#12350 := (iff #3003 #12347)
+#12344 := (iff #12341 false)
+#12348 := (iff #12344 #12347)
+#12349 := [rewrite]: #12348
+#12345 := (iff #3003 #12344)
+#12342 := (iff #3002 #12341)
+#12343 := [rewrite]: #12342
+#12346 := [monotonicity #12343]: #12345
+#12351 := [trans #12346 #12349]: #12350
+#12354 := [quant-intro #12351]: #12353
+#13740 := [monotonicity #12354 #13737]: #13739
+#13746 := [trans #13740 #13744]: #13745
+#13749 := [monotonicity #13746]: #13748
+#13755 := [trans #13749 #13753]: #13754
+#13758 := [monotonicity #13755]: #13757
+#13764 := [trans #13758 #13762]: #13763
+#13767 := [monotonicity #13764]: #13766
+#13773 := [trans #13767 #13771]: #13772
+#13776 := [monotonicity #13773]: #13775
+#13782 := [trans #13776 #13780]: #13781
+#12339 := (iff #2983 #12338)
+#12336 := (iff #2982 #12335)
+#12337 := [rewrite]: #12336
+#12340 := [monotonicity #12334 #12337]: #12339
+#13785 := [monotonicity #12340 #13782]: #13784
+#13791 := [trans #13785 #13789]: #13790
+#12330 := (iff #2977 #12329)
+#12331 := [rewrite]: #12330
+#13794 := [monotonicity #12331 #13791]: #13793
+#13800 := [trans #13794 #13798]: #13799
+#13803 := [monotonicity #13800]: #13802
+#13807 := [trans #13803 #13805]: #13806
+#12327 := (iff #2975 #12326)
+#12324 := (iff #2974 #12323)
+#12321 := (iff #2973 #12320)
+#12318 := (iff #2972 #12317)
+#12315 := (iff #2971 #12314)
+#12312 := (iff #2970 #12311)
+#12313 := [rewrite]: #12312
+#12309 := (iff #2968 #12308)
+#12310 := [rewrite]: #12309
+#12316 := [monotonicity #12310 #12313]: #12315
+#12306 := (iff #2966 #12305)
+#12307 := [rewrite]: #12306
+#12319 := [monotonicity #12307 #12316]: #12318
+#12303 := (iff #2964 #12302)
+#12304 := [rewrite]: #12303
+#12322 := [monotonicity #12304 #12319]: #12321
+#12300 := (iff #2957 #12299)
+#12297 := (iff #2956 #12296)
+#12298 := [rewrite]: #12297
+#12301 := [monotonicity #12298]: #12300
+#12325 := [monotonicity #12301 #12322]: #12324
+#12294 := (iff #2954 #12293)
+#12295 := [rewrite]: #12294
+#12328 := [monotonicity #12295 #12325]: #12327
+#13810 := [monotonicity #12328 #13807]: #13809
+#13816 := [trans #13810 #13814]: #13815
+#13819 := [monotonicity #13816]: #13818
+#13825 := [trans #13819 #13823]: #13824
+#13828 := [monotonicity #13825]: #13827
+#13834 := [trans #13828 #13832]: #13833
+#13837 := [monotonicity #13834]: #13836
+#13843 := [trans #13837 #13841]: #13842
+#13846 := [monotonicity #13843]: #13845
+#13852 := [trans #13846 #13850]: #13851
+#13855 := [monotonicity #13852]: #13854
+#13861 := [trans #13855 #13859]: #13860
+#13864 := [monotonicity #13861]: #13863
+#13868 := [trans #13864 #13866]: #13867
+#13871 := [monotonicity #13868]: #13870
+#14775 := [trans #13871 #14773]: #14774
+#12292 := [asserted]: #3345
+#14776 := [mp #12292 #14775]: #14771
+#14794 := [not-or-elim #14776]: #14658
+#14798 := [and-elim #14794]: #12305
+#233 := (:var 0 T3)
+#15 := (:var 1 T5)
+#2661 := (uf_48 #15 #233)
+#2662 := (pattern #2661)
+#11594 := (= uf_9 #2661)
+#11601 := (not #11594)
+#1250 := (uf_116 #15)
+#2664 := (uf_43 #233 #1250)
+#2665 := (= #15 #2664)
+#11602 := (or #2665 #11601)
+#11607 := (forall (vars (?x710 T5) (?x711 T3)) (:pat #2662) #11602)
+#18734 := (~ #11607 #11607)
+#18732 := (~ #11602 #11602)
+#18733 := [refl]: #18732
+#18735 := [nnf-pos #18733]: #18734
+#2663 := (= #2661 uf_9)
+#2666 := (implies #2663 #2665)
+#2667 := (forall (vars (?x710 T5) (?x711 T3)) (:pat #2662) #2666)
+#11608 := (iff #2667 #11607)
+#11605 := (iff #2666 #11602)
+#11598 := (implies #11594 #2665)
+#11603 := (iff #11598 #11602)
+#11604 := [rewrite]: #11603
+#11599 := (iff #2666 #11598)
+#11596 := (iff #2663 #11594)
+#11597 := [rewrite]: #11596
+#11600 := [monotonicity #11597]: #11599
+#11606 := [trans #11600 #11604]: #11605
+#11609 := [quant-intro #11606]: #11608
+#11593 := [asserted]: #2667
+#11612 := [mp #11593 #11609]: #11607
+#18736 := [mp~ #11612 #18735]: #11607
+#25403 := (not #12305)
+#25416 := (not #11607)
+#25417 := (or #25416 #25403 #25411)
+#25412 := (or #25411 #25403)
+#25418 := (or #25416 #25412)
+#25425 := (iff #25418 #25417)
+#25413 := (or #25403 #25411)
+#25420 := (or #25416 #25413)
+#25423 := (iff #25420 #25417)
+#25424 := [rewrite]: #25423
+#25421 := (iff #25418 #25420)
+#25414 := (iff #25412 #25413)
+#25415 := [rewrite]: #25414
+#25422 := [monotonicity #25415]: #25421
+#25426 := [trans #25422 #25424]: #25425
+#25419 := [quant-inst]: #25418
+#25427 := [mp #25419 #25426]: #25417
+#27939 := [unit-resolution #25427 #18736 #14798]: #25411
+#27941 := [symm #27939]: #27940
+#26337 := [monotonicity #27941]: #26336
+#26339 := [trans #26337 #28359]: #26338
+#26341 := [monotonicity #26339]: #26340
+#26306 := [monotonicity #26341]: #26342
+#26296 := [symm #26306]: #26293
+#26299 := [monotonicity #26296]: #26298
+#14796 := [and-elim #14794]: #12299
+#26307 := [mp #14796 #26299]: #26297
+decl uf_196 :: (-> T4 T5 T5 T2)
+#25980 := (uf_196 uf_273 #25404 #25404)
+#25981 := (= uf_9 #25980)
+#26002 := (not #25981)
+#25982 := (uf_200 uf_273 #25404 #25404 uf_284)
+#25983 := (= uf_9 #25982)
+#25985 := (iff #25981 #25983)
+#2240 := (:var 0 T16)
+#24 := (:var 2 T5)
+#13 := (:var 3 T4)
+#2251 := (uf_200 #13 #24 #15 #2240)
+#2252 := (pattern #2251)
+#2254 := (uf_196 #13 #24 #15)
+#10555 := (= uf_9 #2254)
+#10551 := (= uf_9 #2251)
+#10558 := (iff #10551 #10555)
+#10561 := (forall (vars (?x586 T4) (?x587 T5) (?x588 T5) (?x589 T16)) (:pat #2252) #10558)
+#18376 := (~ #10561 #10561)
+#18374 := (~ #10558 #10558)
+#18375 := [refl]: #18374
+#18377 := [nnf-pos #18375]: #18376
+#2255 := (= #2254 uf_9)
+#2253 := (= #2251 uf_9)
+#2256 := (iff #2253 #2255)
+#2257 := (forall (vars (?x586 T4) (?x587 T5) (?x588 T5) (?x589 T16)) (:pat #2252) #2256)
+#10562 := (iff #2257 #10561)
+#10559 := (iff #2256 #10558)
+#10556 := (iff #2255 #10555)
+#10557 := [rewrite]: #10556
+#10553 := (iff #2253 #10551)
+#10554 := [rewrite]: #10553
+#10560 := [monotonicity #10554 #10557]: #10559
+#10563 := [quant-intro #10560]: #10562
+#10550 := [asserted]: #2257
+#10566 := [mp #10550 #10563]: #10561
+#18378 := [mp~ #10566 #18377]: #10561
+#25995 := (not #10561)
+#25996 := (or #25995 #25985)
+#25984 := (iff #25983 #25981)
+#25997 := (or #25995 #25984)
+#26025 := (iff #25997 #25996)
+#26077 := (iff #25996 #25996)
+#26078 := [rewrite]: #26077
+#25986 := (iff #25984 #25985)
+#25987 := [rewrite]: #25986
+#26076 := [monotonicity #25987]: #26025
+#26079 := [trans #26076 #26078]: #26025
+#26023 := [quant-inst]: #25997
+#26015 := [mp #26023 #26079]: #25996
+#27937 := [unit-resolution #26015 #18378]: #25985
+#25999 := (not #25983)
+#26332 := (iff #13715 #25999)
+#26334 := (iff #12355 #25983)
+#26301 := (iff #25983 #12355)
+#27942 := (= #25982 #3009)
+#27943 := [monotonicity #27941 #27941]: #27942
+#26333 := [monotonicity #27943]: #26301
+#26335 := [symm #26333]: #26334
+#26349 := [monotonicity #26335]: #26332
+#26300 := [hypothesis]: #13715
+#26350 := [mp #26300 #26349]: #25999
+#26022 := (not #25985)
+#25991 := (or #26022 #26002 #25983)
+#25989 := [def-axiom]: #25991
+#26348 := [unit-resolution #25989 #26350 #27937]: #26002
+#26086 := (uf_48 #25404 #25815)
+#26087 := (= uf_9 #26086)
+#26398 := (= #2965 #26086)
+#26351 := (= #26086 #2965)
+#26352 := [monotonicity #27941 #26339]: #26351
+#26399 := [symm #26352]: #26398
+#26400 := [trans #14798 #26399]: #26087
+#26089 := (uf_27 uf_273 #25404)
+#26090 := (= uf_9 #26089)
+#26324 := (= #2963 #26089)
+#26323 := (= #26089 #2963)
+#26325 := [monotonicity #27941]: #26323
+#26327 := [symm #26325]: #26324
+#14797 := [and-elim #14794]: #12302
+#26322 := [trans #14797 #26327]: #26090
+#26091 := (not #26090)
+#26088 := (not #26087)
+#26490 := (or #25981 #26088 #26091 #26095)
+#25827 := (uf_25 uf_273 #25404)
+#26084 := (= uf_26 #25827)
+#26331 := (= #2967 #25827)
+#26328 := (= #25827 #2967)
+#26329 := [monotonicity #27941]: #26328
+#26401 := [symm #26329]: #26331
+#14799 := [and-elim #14794]: #12308
+#26403 := [trans #14799 #26401]: #26084
+#25853 := (uf_24 uf_273 #25404)
+#25854 := (= uf_9 #25853)
+#26391 := (= #2969 #25853)
+#26388 := (= #25853 #2969)
+#26402 := [monotonicity #27941]: #26388
+#26389 := [symm #26402]: #26391
+#14800 := [and-elim #14794]: #12311
+#26392 := [trans #14800 #26389]: #25854
+#25816 := (uf_22 #25815)
+#25823 := (= uf_9 #25816)
+#26413 := (= #2953 #25816)
+#26393 := (= #25816 #2953)
+#26394 := [monotonicity #26339]: #26393
+#26414 := [symm #26394]: #26413
+#14795 := [and-elim #14794]: #12293
+#26488 := [trans #14795 #26414]: #25823
+#14783 := [not-or-elim #14776]: #12338
+#14784 := [and-elim #14783]: #12332
+#47 := (:var 1 T4)
+#2213 := (uf_196 #47 #26 #26)
+#2214 := (pattern #2213)
+#10431 := (= uf_9 #2213)
+#227 := (uf_55 #47)
+#3939 := (= uf_9 #227)
+#19933 := (not #3939)
+#150 := (uf_25 #47 #26)
+#3656 := (= uf_26 #150)
+#19808 := (not #3656)
+#33 := (uf_15 #26)
+#148 := (uf_48 #26 #33)
+#3653 := (= uf_9 #148)
+#19807 := (not #3653)
+#146 := (uf_27 #47 #26)
+#3650 := (= uf_9 #146)
+#11522 := (not #3650)
+#135 := (uf_24 #47 #26)
+#3635 := (= uf_9 #135)
+#11145 := (not #3635)
+#69 := (uf_22 #33)
+#3470 := (= uf_9 #69)
+#11200 := (not #3470)
+#34 := (uf_14 #33)
+#36 := (= #34 uf_16)
+#22334 := (or #36 #11200 #11145 #11522 #19807 #19808 #19933 #10431)
+#22339 := (forall (vars (?x572 T4) (?x573 T5)) (:pat #2214) #22334)
+#52 := (not #36)
+#10446 := (and #52 #3470 #3635 #3650 #3653 #3656 #3939)
+#10449 := (not #10446)
+#10455 := (or #10431 #10449)
+#10460 := (forall (vars (?x572 T4) (?x573 T5)) (:pat #2214) #10455)
+#22340 := (iff #10460 #22339)
+#22337 := (iff #10455 #22334)
+#22320 := (or #36 #11200 #11145 #11522 #19807 #19808 #19933)
+#22331 := (or #10431 #22320)
+#22335 := (iff #22331 #22334)
+#22336 := [rewrite]: #22335
+#22332 := (iff #10455 #22331)
+#22329 := (iff #10449 #22320)
+#22321 := (not #22320)
+#22324 := (not #22321)
+#22327 := (iff #22324 #22320)
+#22328 := [rewrite]: #22327
+#22325 := (iff #10449 #22324)
+#22322 := (iff #10446 #22321)
+#22323 := [rewrite]: #22322
+#22326 := [monotonicity #22323]: #22325
+#22330 := [trans #22326 #22328]: #22329
+#22333 := [monotonicity #22330]: #22332
+#22338 := [trans #22333 #22336]: #22337
+#22341 := [quant-intro #22338]: #22340
+#18344 := (~ #10460 #10460)
+#18342 := (~ #10455 #10455)
+#18343 := [refl]: #18342
+#18345 := [nnf-pos #18343]: #18344
+#2220 := (= #2213 uf_9)
+#229 := (= #227 uf_9)
+#136 := (= #135 uf_9)
+#230 := (and #136 #229)
+#151 := (= #150 uf_26)
+#2215 := (and #151 #230)
+#149 := (= #148 uf_9)
+#2216 := (and #149 #2215)
+#147 := (= #146 uf_9)
+#2217 := (and #147 #2216)
+#2218 := (and #52 #2217)
+#70 := (= #69 uf_9)
+#2219 := (and #70 #2218)
+#2221 := (implies #2219 #2220)
+#2222 := (forall (vars (?x572 T4) (?x573 T5)) (:pat #2214) #2221)
+#10463 := (iff #2222 #10460)
+#3943 := (and #3635 #3939)
+#10415 := (and #3656 #3943)
+#10419 := (and #3653 #10415)
+#10422 := (and #3650 #10419)
+#10425 := (and #52 #10422)
+#10428 := (and #3470 #10425)
+#10437 := (not #10428)
+#10438 := (or #10437 #10431)
+#10443 := (forall (vars (?x572 T4) (?x573 T5)) (:pat #2214) #10438)
+#10461 := (iff #10443 #10460)
+#10458 := (iff #10438 #10455)
+#10452 := (or #10449 #10431)
+#10456 := (iff #10452 #10455)
+#10457 := [rewrite]: #10456
+#10453 := (iff #10438 #10452)
+#10450 := (iff #10437 #10449)
+#10447 := (iff #10428 #10446)
+#10448 := [rewrite]: #10447
+#10451 := [monotonicity #10448]: #10450
+#10454 := [monotonicity #10451]: #10453
+#10459 := [trans #10454 #10457]: #10458
+#10462 := [quant-intro #10459]: #10461
+#10444 := (iff #2222 #10443)
+#10441 := (iff #2221 #10438)
+#10434 := (implies #10428 #10431)
+#10439 := (iff #10434 #10438)
+#10440 := [rewrite]: #10439
+#10435 := (iff #2221 #10434)
+#10432 := (iff #2220 #10431)
+#10433 := [rewrite]: #10432
+#10429 := (iff #2219 #10428)
+#10426 := (iff #2218 #10425)
+#10423 := (iff #2217 #10422)
+#10420 := (iff #2216 #10419)
+#10417 := (iff #2215 #10415)
+#3944 := (iff #230 #3943)
+#3941 := (iff #229 #3939)
+#3942 := [rewrite]: #3941
+#3637 := (iff #136 #3635)
+#3638 := [rewrite]: #3637
+#3945 := [monotonicity #3638 #3942]: #3944
+#3657 := (iff #151 #3656)
+#3658 := [rewrite]: #3657
+#10418 := [monotonicity #3658 #3945]: #10417
+#3654 := (iff #149 #3653)
+#3655 := [rewrite]: #3654
+#10421 := [monotonicity #3655 #10418]: #10420
+#3651 := (iff #147 #3650)
+#3652 := [rewrite]: #3651
+#10424 := [monotonicity #3652 #10421]: #10423
+#10427 := [monotonicity #10424]: #10426
+#3471 := (iff #70 #3470)
+#3472 := [rewrite]: #3471
+#10430 := [monotonicity #3472 #10427]: #10429
+#10436 := [monotonicity #10430 #10433]: #10435
+#10442 := [trans #10436 #10440]: #10441
+#10445 := [quant-intro #10442]: #10444
+#10464 := [trans #10445 #10462]: #10463
+#10414 := [asserted]: #2222
+#10465 := [mp #10414 #10464]: #10460
+#18346 := [mp~ #10465 #18345]: #10460
+#22342 := [mp #18346 #22341]: #22339
+#26085 := (not #26084)
+#25880 := (not #25854)
+#25824 := (not #25823)
+#23209 := (not #12332)
+#26081 := (not #22339)
+#26110 := (or #26081 #23209 #25824 #25880 #25981 #26085 #26088 #26091 #26095)
+#26093 := (= #26092 uf_16)
+#26094 := (or #26093 #25824 #25880 #26091 #26088 #26085 #23209 #25981)
+#26111 := (or #26081 #26094)
+#26219 := (iff #26111 #26110)
+#26101 := (or #23209 #25824 #25880 #25981 #26085 #26088 #26091 #26095)
+#26107 := (or #26081 #26101)
+#26215 := (iff #26107 #26110)
+#26218 := [rewrite]: #26215
+#26113 := (iff #26111 #26107)
+#26104 := (iff #26094 #26101)
+#26098 := (or #26095 #25824 #25880 #26091 #26088 #26085 #23209 #25981)
+#26102 := (iff #26098 #26101)
+#26103 := [rewrite]: #26102
+#26099 := (iff #26094 #26098)
+#26096 := (iff #26093 #26095)
+#26097 := [rewrite]: #26096
+#26100 := [monotonicity #26097]: #26099
+#26105 := [trans #26100 #26103]: #26104
+#26150 := [monotonicity #26105]: #26113
+#26181 := [trans #26150 #26218]: #26219
+#26112 := [quant-inst]: #26111
+#26165 := [mp #26112 #26181]: #26110
+#26491 := [unit-resolution #26165 #22342 #14784 #26488 #26392 #26403]: #26490
+#26493 := [unit-resolution #26491 #26322 #26400 #26348 #26307]: false
+#26494 := [lemma #26493]: #12355
+#23984 := (or #13715 #23981)
+#22978 := (forall (vars (?x782 int)) #22967)
+#22985 := (not #22978)
+#22963 := (forall (vars (?x781 int)) #22958)
+#22984 := (not #22963)
+#22986 := (or #22984 #22985)
+#22987 := (not #22986)
+#23016 := (or #22987 #23013)
+#23022 := (not #23016)
+#23023 := (or #12671 #12662 #12653 #12644 #22873 #14243 #14049 #23022)
+#23024 := (not #23023)
+#22802 := (forall (vars (?x785 int)) #22797)
+#22808 := (not #22802)
+#22809 := (or #22784 #22808)
+#22810 := (not #22809)
+#22839 := (or #22810 #22836)
+#22845 := (not #22839)
+#22846 := (or #14105 #22845)
+#22847 := (not #22846)
+#22852 := (or #14105 #22847)
+#22860 := (not #22852)
+#22861 := (or #12942 #22858 #19034 #22859 #14172 #19037 #22860)
+#22862 := (not #22861)
+#22867 := (or #19034 #19037 #22862)
+#22874 := (not #22867)
+#22884 := (or #13124 #13115 #13090 #19011 #19017 #13133 #13081 #14243 #22858 #22874)
+#22885 := (not #22884)
+#22890 := (or #19011 #19017 #22885)
+#22896 := (not #22890)
+#22897 := (or #19008 #19011 #22896)
+#22898 := (not #22897)
+#22903 := (or #19008 #19011 #22898)
+#22909 := (not #22903)
+#22910 := (or #22873 #14243 #14207 #22909)
+#22911 := (not #22910)
+#22875 := (or #13002 #12993 #22873 #14243 #22858 #14211 #22874)
+#22876 := (not #22875)
+#22916 := (or #22876 #22911)
+#22922 := (not #22916)
+#22923 := (or #19011 #19017 #22873 #14243 #22922)
+#22924 := (not #22923)
+#22929 := (or #19011 #19017 #22924)
+#22935 := (not #22929)
+#22936 := (or #19008 #19011 #22935)
+#22937 := (not #22936)
+#22942 := (or #19008 #19011 #22937)
+#22948 := (not #22942)
+#22949 := (or #22873 #14243 #14046 #22948)
+#22950 := (not #22949)
+#23029 := (or #22950 #23024)
+#23044 := (not #23029)
+#22779 := (forall (vars (?x774 int)) #22774)
+#23040 := (not #22779)
+#23045 := (or #13672 #13367 #13358 #13349 #13340 #23035 #23036 #23037 #14399 #15709 #13942 #22873 #14243 #14404 #14456 #23038 #23039 #23041 #23042 #23043 #23040 #23044)
+#23046 := (not #23045)
+#23051 := (or #13672 #13942 #23046)
+#23058 := (not #23051)
+#22768 := (forall (vars (?x773 int)) #22763)
+#23057 := (not #22768)
+#23059 := (or #23057 #23058)
+#23060 := (not #23059)
+#23065 := (or #22757 #23060)
+#23071 := (not #23065)
+#23072 := (or #13906 #23071)
+#23073 := (not #23072)
+#23078 := (or #13906 #23073)
+#23084 := (not #23078)
+#23085 := (or #13672 #13663 #13654 #13645 #18900 #18906 #23084)
+#23086 := (not #23085)
+#23091 := (or #18900 #18906 #23086)
+#23097 := (not #23091)
+#23098 := (or #18897 #18900 #23097)
+#23099 := (not #23098)
+#23104 := (or #18897 #18900 #23099)
+#23110 := (not #23104)
+#23111 := (or #13715 #23110)
+#23112 := (not #23111)
+#23117 := (or #13715 #23112)
+#23985 := (iff #23117 #23984)
+#23982 := (iff #23112 #23981)
+#23979 := (iff #23111 #23978)
+#23976 := (iff #23110 #23975)
+#23973 := (iff #23104 #23972)
+#23970 := (iff #23099 #23969)
+#23967 := (iff #23098 #23966)
+#23964 := (iff #23097 #23963)
+#23961 := (iff #23091 #23960)
+#23958 := (iff #23086 #23957)
+#23955 := (iff #23085 #23954)
+#23952 := (iff #23084 #23951)
+#23949 := (iff #23078 #23948)
+#23946 := (iff #23073 #23945)
+#23943 := (iff #23072 #23942)
+#23940 := (iff #23071 #23939)
+#23937 := (iff #23065 #23936)
+#23934 := (iff #23060 #23933)
+#23931 := (iff #23059 #23930)
+#23928 := (iff #23058 #23927)
+#23925 := (iff #23051 #23924)
+#23922 := (iff #23046 #23921)
+#23919 := (iff #23045 #23918)
+#23916 := (iff #23044 #23915)
+#23913 := (iff #23029 #23912)
+#23910 := (iff #23024 #23909)
+#23907 := (iff #23023 #23906)
+#23904 := (iff #23022 #23903)
+#23901 := (iff #23016 #23900)
+#23898 := (iff #22987 #23897)
+#23895 := (iff #22986 #23894)
+#23892 := (iff #22985 #23891)
+#23889 := (iff #22978 #23886)
+#23887 := (iff #22967 #22967)
+#23888 := [refl]: #23887
+#23890 := [quant-intro #23888]: #23889
+#23893 := [monotonicity #23890]: #23892
+#23884 := (iff #22984 #23883)
+#23881 := (iff #22963 #23878)
+#23879 := (iff #22958 #22958)
+#23880 := [refl]: #23879
+#23882 := [quant-intro #23880]: #23881
+#23885 := [monotonicity #23882]: #23884
+#23896 := [monotonicity #23885 #23893]: #23895
+#23899 := [monotonicity #23896]: #23898
+#23902 := [monotonicity #23899]: #23901
+#23905 := [monotonicity #23902]: #23904
+#23908 := [monotonicity #23905]: #23907
+#23911 := [monotonicity #23908]: #23910
+#23876 := (iff #22950 #23875)
+#23873 := (iff #22949 #23872)
+#23870 := (iff #22948 #23869)
+#23867 := (iff #22942 #23866)
+#23864 := (iff #22937 #23863)
+#23861 := (iff #22936 #23860)
+#23858 := (iff #22935 #23857)
+#23855 := (iff #22929 #23854)
+#23852 := (iff #22924 #23851)
+#23849 := (iff #22923 #23848)
+#23846 := (iff #22922 #23845)
+#23843 := (iff #22916 #23842)
+#23840 := (iff #22911 #23839)
+#23837 := (iff #22910 #23836)
+#23834 := (iff #22909 #23833)
+#23831 := (iff #22903 #23830)
+#23828 := (iff #22898 #23827)
+#23825 := (iff #22897 #23824)
+#23822 := (iff #22896 #23821)
+#23819 := (iff #22890 #23818)
+#23816 := (iff #22885 #23815)
+#23813 := (iff #22884 #23812)
+#23804 := (iff #22874 #23803)
+#23801 := (iff #22867 #23800)
+#23798 := (iff #22862 #23797)
+#23795 := (iff #22861 #23794)
+#23792 := (iff #22860 #23791)
+#23789 := (iff #22852 #23788)
+#23786 := (iff #22847 #23785)
+#23783 := (iff #22846 #23782)
+#23780 := (iff #22845 #23779)
+#23777 := (iff #22839 #23776)
+#23774 := (iff #22810 #23773)
+#23771 := (iff #22809 #23770)
+#23768 := (iff #22808 #23767)
+#23765 := (iff #22802 #23762)
+#23763 := (iff #22797 #22797)
+#23764 := [refl]: #23763
+#23766 := [quant-intro #23764]: #23765
+#23769 := [monotonicity #23766]: #23768
+#23772 := [monotonicity #23769]: #23771
+#23775 := [monotonicity #23772]: #23774
+#23778 := [monotonicity #23775]: #23777
+#23781 := [monotonicity #23778]: #23780
+#23784 := [monotonicity #23781]: #23783
+#23787 := [monotonicity #23784]: #23786
+#23790 := [monotonicity #23787]: #23789
+#23793 := [monotonicity #23790]: #23792
+#23796 := [monotonicity #23793]: #23795
+#23799 := [monotonicity #23796]: #23798
+#23802 := [monotonicity #23799]: #23801
+#23805 := [monotonicity #23802]: #23804
+#23814 := [monotonicity #23805]: #23813
+#23817 := [monotonicity #23814]: #23816
+#23820 := [monotonicity #23817]: #23819
+#23823 := [monotonicity #23820]: #23822
+#23826 := [monotonicity #23823]: #23825
+#23829 := [monotonicity #23826]: #23828
+#23832 := [monotonicity #23829]: #23831
+#23835 := [monotonicity #23832]: #23834
+#23838 := [monotonicity #23835]: #23837
+#23841 := [monotonicity #23838]: #23840
+#23810 := (iff #22876 #23809)
+#23807 := (iff #22875 #23806)
+#23808 := [monotonicity #23805]: #23807
+#23811 := [monotonicity #23808]: #23810
+#23844 := [monotonicity #23811 #23841]: #23843
+#23847 := [monotonicity #23844]: #23846
+#23850 := [monotonicity #23847]: #23849
+#23853 := [monotonicity #23850]: #23852
+#23856 := [monotonicity #23853]: #23855
+#23859 := [monotonicity #23856]: #23858
+#23862 := [monotonicity #23859]: #23861
+#23865 := [monotonicity #23862]: #23864
+#23868 := [monotonicity #23865]: #23867
+#23871 := [monotonicity #23868]: #23870
+#23874 := [monotonicity #23871]: #23873
+#23877 := [monotonicity #23874]: #23876
+#23914 := [monotonicity #23877 #23911]: #23913
+#23917 := [monotonicity #23914]: #23916
+#23760 := (iff #23040 #23759)
+#23757 := (iff #22779 #23754)
+#23755 := (iff #22774 #22774)
+#23756 := [refl]: #23755
+#23758 := [quant-intro #23756]: #23757
+#23761 := [monotonicity #23758]: #23760
+#23920 := [monotonicity #23761 #23917]: #23919
+#23923 := [monotonicity #23920]: #23922
+#23926 := [monotonicity #23923]: #23925
+#23929 := [monotonicity #23926]: #23928
+#23752 := (iff #23057 #23751)
+#23749 := (iff #22768 #23746)
+#23747 := (iff #22763 #22763)
+#23748 := [refl]: #23747
+#23750 := [quant-intro #23748]: #23749
+#23753 := [monotonicity #23750]: #23752
+#23932 := [monotonicity #23753 #23929]: #23931
+#23935 := [monotonicity #23932]: #23934
+#23938 := [monotonicity #23935]: #23937
+#23941 := [monotonicity #23938]: #23940
+#23944 := [monotonicity #23941]: #23943
+#23947 := [monotonicity #23944]: #23946
+#23950 := [monotonicity #23947]: #23949
+#23953 := [monotonicity #23950]: #23952
+#23956 := [monotonicity #23953]: #23955
+#23959 := [monotonicity #23956]: #23958
+#23962 := [monotonicity #23959]: #23961
+#23965 := [monotonicity #23962]: #23964
+#23968 := [monotonicity #23965]: #23967
+#23971 := [monotonicity #23968]: #23970
+#23974 := [monotonicity #23971]: #23973
+#23977 := [monotonicity #23974]: #23976
+#23980 := [monotonicity #23977]: #23979
+#23983 := [monotonicity #23980]: #23982
+#23986 := [monotonicity #23983]: #23985
+#19548 := (and #19191 #19192)
+#19551 := (not #19548)
+#19554 := (or #19530 #19543 #19551)
+#19557 := (not #19554)
+#16489 := (and #3145 #4084 #13958 #15606)
+#19214 := (not #16489)
+#19217 := (forall (vars (?x782 int)) #19214)
+#14858 := (and #4084 #15606)
+#14857 := (not #14858)
+#16475 := (or #13959 #13972 #14857)
+#16480 := (forall (vars (?x781 int)) #16475)
+#19221 := (and #16480 #19217)
+#19563 := (or #19221 #19557)
+#19571 := (and #12567 #12570 #12573 #12576 #13947 #13950 #14046 #19563)
+#19392 := (and #19055 #19056)
+#19395 := (not #19392)
+#19398 := (or #19374 #19387 #19395)
+#19401 := (not #19398)
+#16376 := (or #14109 #14122 #14857)
+#16381 := (forall (vars (?x785 int)) #16376)
+#19071 := (not #14151)
+#19081 := (and #19071 #16381)
+#19407 := (or #19081 #19401)
+#19412 := (and #14100 #19407)
+#19415 := (or #14105 #19412)
+#19423 := (and #3199 #14076 #14088 #14092 #14168 #16368 #19415)
+#19428 := (or #19034 #19037 #19423)
+#19454 := (and #3242 #3244 #3246 #12806 #12812 #13070 #13075 #13950 #14076 #19428)
+#19459 := (or #19011 #19017 #19454)
+#19465 := (and #12803 #12806 #19459)
+#19470 := (or #19008 #19011 #19465)
+#19476 := (and #13947 #13950 #14211 #19470)
+#19434 := (and #12823 #12826 #13947 #13950 #14076 #14207 #19428)
+#19481 := (or #19434 #19476)
+#19487 := (and #12806 #12812 #13947 #13950 #19481)
+#19492 := (or #19011 #19017 #19487)
+#19498 := (and #12803 #12806 #19492)
+#19503 := (or #19008 #19011 #19498)
+#19509 := (and #13947 #13950 #14049 #19503)
+#19576 := (or #19509 #19571)
+#16293 := (or #14420 #14433 #14857)
+#16298 := (forall (vars (?x774 int)) #16293)
+#19582 := (and #3022 #3121 #3122 #3123 #3124 #3125 #3126 #12426 #12437 #12553 #13943 #13947 #13950 #14405 #14453 #14462 #14490 #16298 #16310 #16332 #16349 #19576)
+#19587 := (or #13672 #13942 #19582)
+#16279 := (or #13910 #13921 #14857)
+#16284 := (forall (vars (?x773 int)) #16279)
+#19590 := (and #16284 #19587)
+#19303 := (and #18930 #18931)
+#19306 := (not #19303)
+#19312 := (or #18938 #18939 #19306)
+#19317 := (not #19312)
+#19593 := (or #19317 #19590)
+#19596 := (and #13903 #19593)
+#19599 := (or #13906 #19596)
+#19605 := (and #3022 #3025 #3028 #3031 #12361 #12367 #19599)
+#19610 := (or #18900 #18906 #19605)
+#19616 := (and #12358 #12361 #19610)
+#19621 := (or #18897 #18900 #19616)
+#19624 := (and #12355 #19621)
+#19627 := (or #13715 #19624)
+#23118 := (iff #19627 #23117)
+#23115 := (iff #19624 #23112)
+#23107 := (and #12355 #23104)
+#23113 := (iff #23107 #23112)
+#23114 := [rewrite]: #23113
+#23108 := (iff #19624 #23107)
+#23105 := (iff #19621 #23104)
+#23102 := (iff #19616 #23099)
+#23094 := (and #12358 #12361 #23091)
+#23100 := (iff #23094 #23099)
+#23101 := [rewrite]: #23100
+#23095 := (iff #19616 #23094)
+#23092 := (iff #19610 #23091)
+#23089 := (iff #19605 #23086)
+#23081 := (and #3022 #3025 #3028 #3031 #12361 #12367 #23078)
+#23087 := (iff #23081 #23086)
+#23088 := [rewrite]: #23087
+#23082 := (iff #19605 #23081)
+#23079 := (iff #19599 #23078)
+#23076 := (iff #19596 #23073)
+#23068 := (and #13903 #23065)
+#23074 := (iff #23068 #23073)
+#23075 := [rewrite]: #23074
+#23069 := (iff #19596 #23068)
+#23066 := (iff #19593 #23065)
+#23063 := (iff #19590 #23060)
+#23054 := (and #22768 #23051)
+#23061 := (iff #23054 #23060)
+#23062 := [rewrite]: #23061
+#23055 := (iff #19590 #23054)
+#23052 := (iff #19587 #23051)
+#23049 := (iff #19582 #23046)
+#23032 := (and #3022 #3121 #3122 #3123 #3124 #3125 #3126 #12426 #12437 #12553 #13943 #13947 #13950 #14405 #14453 #14462 #14490 #22779 #16310 #16332 #16349 #23029)
+#23047 := (iff #23032 #23046)
+#23048 := [rewrite]: #23047
+#23033 := (iff #19582 #23032)
+#23030 := (iff #19576 #23029)
+#23027 := (iff #19571 #23024)
+#23019 := (and #12567 #12570 #12573 #12576 #13947 #13950 #14046 #23016)
+#23025 := (iff #23019 #23024)
+#23026 := [rewrite]: #23025
+#23020 := (iff #19571 #23019)
+#23017 := (iff #19563 #23016)
+#23014 := (iff #19557 #23013)
+#23011 := (iff #19554 #23008)
+#22994 := (or #22992 #22993)
+#23005 := (or #19530 #19543 #22994)
+#23009 := (iff #23005 #23008)
+#23010 := [rewrite]: #23009
+#23006 := (iff #19554 #23005)
+#23003 := (iff #19551 #22994)
+#22995 := (not #22994)
+#22998 := (not #22995)
+#23001 := (iff #22998 #22994)
+#23002 := [rewrite]: #23001
+#22999 := (iff #19551 #22998)
+#22996 := (iff #19548 #22995)
+#22997 := [rewrite]: #22996
+#23000 := [monotonicity #22997]: #22999
+#23004 := [trans #23000 #23002]: #23003
+#23007 := [monotonicity #23004]: #23006
+#23012 := [trans #23007 #23010]: #23011
+#23015 := [monotonicity #23012]: #23014
+#22990 := (iff #19221 #22987)
+#22981 := (and #22963 #22978)
+#22988 := (iff #22981 #22987)
+#22989 := [rewrite]: #22988
+#22982 := (iff #19221 #22981)
+#22979 := (iff #19217 #22978)
+#22976 := (iff #19214 #22967)
+#22968 := (not #22967)
+#22971 := (not #22968)
+#22974 := (iff #22971 #22967)
+#22975 := [rewrite]: #22974
+#22972 := (iff #19214 #22971)
+#22969 := (iff #16489 #22968)
+#22970 := [rewrite]: #22969
+#22973 := [monotonicity #22970]: #22972
+#22977 := [trans #22973 #22975]: #22976
+#22980 := [quant-intro #22977]: #22979
+#22964 := (iff #16480 #22963)
+#22961 := (iff #16475 #22958)
+#20695 := (or #5113 #20064)
+#22955 := (or #13959 #13972 #20695)
+#22959 := (iff #22955 #22958)
+#22960 := [rewrite]: #22959
+#22956 := (iff #16475 #22955)
+#20704 := (iff #14857 #20695)
+#20696 := (not #20695)
+#20699 := (not #20696)
+#20702 := (iff #20699 #20695)
+#20703 := [rewrite]: #20702
+#20700 := (iff #14857 #20699)
+#20697 := (iff #14858 #20696)
+#20698 := [rewrite]: #20697
+#20701 := [monotonicity #20698]: #20700
+#20705 := [trans #20701 #20703]: #20704
+#22957 := [monotonicity #20705]: #22956
+#22962 := [trans #22957 #22960]: #22961
+#22965 := [quant-intro #22962]: #22964
+#22983 := [monotonicity #22965 #22980]: #22982
+#22991 := [trans #22983 #22989]: #22990
+#23018 := [monotonicity #22991 #23015]: #23017
+#23021 := [monotonicity #23018]: #23020
+#23028 := [trans #23021 #23026]: #23027
+#22953 := (iff #19509 #22950)
+#22945 := (and #13947 #13950 #14049 #22942)
+#22951 := (iff #22945 #22950)
+#22952 := [rewrite]: #22951
+#22946 := (iff #19509 #22945)
+#22943 := (iff #19503 #22942)
+#22940 := (iff #19498 #22937)
+#22932 := (and #12803 #12806 #22929)
+#22938 := (iff #22932 #22937)
+#22939 := [rewrite]: #22938
+#22933 := (iff #19498 #22932)
+#22930 := (iff #19492 #22929)
+#22927 := (iff #19487 #22924)
+#22919 := (and #12806 #12812 #13947 #13950 #22916)
+#22925 := (iff #22919 #22924)
+#22926 := [rewrite]: #22925
+#22920 := (iff #19487 #22919)
+#22917 := (iff #19481 #22916)
+#22914 := (iff #19476 #22911)
+#22906 := (and #13947 #13950 #14211 #22903)
+#22912 := (iff #22906 #22911)
+#22913 := [rewrite]: #22912
+#22907 := (iff #19476 #22906)
+#22904 := (iff #19470 #22903)
+#22901 := (iff #19465 #22898)
+#22893 := (and #12803 #12806 #22890)
+#22899 := (iff #22893 #22898)
+#22900 := [rewrite]: #22899
+#22894 := (iff #19465 #22893)
+#22891 := (iff #19459 #22890)
+#22888 := (iff #19454 #22885)
+#22881 := (and #3242 #3244 #3246 #12806 #12812 #13070 #13075 #13950 #14076 #22867)
+#22886 := (iff #22881 #22885)
+#22887 := [rewrite]: #22886
+#22882 := (iff #19454 #22881)
+#22868 := (iff #19428 #22867)
+#22865 := (iff #19423 #22862)
+#22855 := (and #3199 #14076 #14088 #14092 #14168 #16368 #22852)
+#22863 := (iff #22855 #22862)
+#22864 := [rewrite]: #22863
+#22856 := (iff #19423 #22855)
+#22853 := (iff #19415 #22852)
+#22850 := (iff #19412 #22847)
+#22842 := (and #14100 #22839)
+#22848 := (iff #22842 #22847)
+#22849 := [rewrite]: #22848
+#22843 := (iff #19412 #22842)
+#22840 := (iff #19407 #22839)
+#22837 := (iff #19401 #22836)
+#22834 := (iff #19398 #22831)
+#22817 := (or #22815 #22816)
+#22828 := (or #19374 #19387 #22817)
+#22832 := (iff #22828 #22831)
+#22833 := [rewrite]: #22832
+#22829 := (iff #19398 #22828)
+#22826 := (iff #19395 #22817)
+#22818 := (not #22817)
+#22821 := (not #22818)
+#22824 := (iff #22821 #22817)
+#22825 := [rewrite]: #22824
+#22822 := (iff #19395 #22821)
+#22819 := (iff #19392 #22818)
+#22820 := [rewrite]: #22819
+#22823 := [monotonicity #22820]: #22822
+#22827 := [trans #22823 #22825]: #22826
+#22830 := [monotonicity #22827]: #22829
+#22835 := [trans #22830 #22833]: #22834
+#22838 := [monotonicity #22835]: #22837
+#22813 := (iff #19081 #22810)
+#22805 := (and #22783 #22802)
+#22811 := (iff #22805 #22810)
+#22812 := [rewrite]: #22811
+#22806 := (iff #19081 #22805)
+#22803 := (iff #16381 #22802)
+#22800 := (iff #16376 #22797)
+#22794 := (or #14109 #14122 #20695)
+#22798 := (iff #22794 #22797)
+#22799 := [rewrite]: #22798
+#22795 := (iff #16376 #22794)
+#22796 := [monotonicity #20705]: #22795
+#22801 := [trans #22796 #22799]: #22800
+#22804 := [quant-intro #22801]: #22803
+#22792 := (iff #19071 #22783)
+#22787 := (not #22784)
+#22790 := (iff #22787 #22783)
+#22791 := [rewrite]: #22790
+#22788 := (iff #19071 #22787)
+#22785 := (iff #14151 #22784)
+#22786 := [rewrite]: #22785
+#22789 := [monotonicity #22786]: #22788
+#22793 := [trans #22789 #22791]: #22792
+#22807 := [monotonicity #22793 #22804]: #22806
+#22814 := [trans #22807 #22812]: #22813
+#22841 := [monotonicity #22814 #22838]: #22840
+#22844 := [monotonicity #22841]: #22843
+#22851 := [trans #22844 #22849]: #22850
+#22854 := [monotonicity #22851]: #22853
+#22857 := [monotonicity #22854]: #22856
+#22866 := [trans #22857 #22864]: #22865
+#22869 := [monotonicity #22866]: #22868
+#22883 := [monotonicity #22869]: #22882
+#22889 := [trans #22883 #22887]: #22888
+#22892 := [monotonicity #22889]: #22891
+#22895 := [monotonicity #22892]: #22894
+#22902 := [trans #22895 #22900]: #22901
+#22905 := [monotonicity #22902]: #22904
+#22908 := [monotonicity #22905]: #22907
+#22915 := [trans #22908 #22913]: #22914
+#22879 := (iff #19434 #22876)
+#22870 := (and #12823 #12826 #13947 #13950 #14076 #14207 #22867)
+#22877 := (iff #22870 #22876)
+#22878 := [rewrite]: #22877
+#22871 := (iff #19434 #22870)
+#22872 := [monotonicity #22869]: #22871
+#22880 := [trans #22872 #22878]: #22879
+#22918 := [monotonicity #22880 #22915]: #22917
+#22921 := [monotonicity #22918]: #22920
+#22928 := [trans #22921 #22926]: #22927
+#22931 := [monotonicity #22928]: #22930
+#22934 := [monotonicity #22931]: #22933
+#22941 := [trans #22934 #22939]: #22940
+#22944 := [monotonicity #22941]: #22943
+#22947 := [monotonicity #22944]: #22946
+#22954 := [trans #22947 #22952]: #22953
+#23031 := [monotonicity #22954 #23028]: #23030
+#22780 := (iff #16298 #22779)
+#22777 := (iff #16293 #22774)
+#22771 := (or #14420 #14433 #20695)
+#22775 := (iff #22771 #22774)
+#22776 := [rewrite]: #22775
+#22772 := (iff #16293 #22771)
+#22773 := [monotonicity #20705]: #22772
+#22778 := [trans #22773 #22776]: #22777
+#22781 := [quant-intro #22778]: #22780
+#23034 := [monotonicity #22781 #23031]: #23033
+#23050 := [trans #23034 #23048]: #23049
+#23053 := [monotonicity #23050]: #23052
+#22769 := (iff #16284 #22768)
+#22766 := (iff #16279 #22763)
+#22760 := (or #13910 #13921 #20695)
+#22764 := (iff #22760 #22763)
+#22765 := [rewrite]: #22764
+#22761 := (iff #16279 #22760)
+#22762 := [monotonicity #20705]: #22761
+#22767 := [trans #22762 #22765]: #22766
+#22770 := [quant-intro #22767]: #22769
+#23056 := [monotonicity #22770 #23053]: #23055
+#23064 := [trans #23056 #23062]: #23063
+#22758 := (iff #19317 #22757)
+#22755 := (iff #19312 #22752)
+#22738 := (or #22736 #22737)
+#22749 := (or #18938 #18939 #22738)
+#22753 := (iff #22749 #22752)
+#22754 := [rewrite]: #22753
+#22750 := (iff #19312 #22749)
+#22747 := (iff #19306 #22738)
+#22739 := (not #22738)
+#22742 := (not #22739)
+#22745 := (iff #22742 #22738)
+#22746 := [rewrite]: #22745
+#22743 := (iff #19306 #22742)
+#22740 := (iff #19303 #22739)
+#22741 := [rewrite]: #22740
+#22744 := [monotonicity #22741]: #22743
+#22748 := [trans #22744 #22746]: #22747
+#22751 := [monotonicity #22748]: #22750
+#22756 := [trans #22751 #22754]: #22755
+#22759 := [monotonicity #22756]: #22758
+#23067 := [monotonicity #22759 #23064]: #23066
+#23070 := [monotonicity #23067]: #23069
+#23077 := [trans #23070 #23075]: #23076
+#23080 := [monotonicity #23077]: #23079
+#23083 := [monotonicity #23080]: #23082
+#23090 := [trans #23083 #23088]: #23089
+#23093 := [monotonicity #23090]: #23092
+#23096 := [monotonicity #23093]: #23095
+#23103 := [trans #23096 #23101]: #23102
+#23106 := [monotonicity #23103]: #23105
+#23109 := [monotonicity #23106]: #23108
+#23116 := [trans #23109 #23114]: #23115
+#23119 := [monotonicity #23116]: #23118
+#19193 := (and #19192 #19191)
+#19194 := (not #19193)
+#19197 := (+ #19196 #13970)
+#19198 := (<= #19197 0::int)
+#19199 := (+ ?x781!15 #13873)
+#19200 := (>= #19199 0::int)
+#19201 := (or #19200 #19198 #19194)
+#19202 := (not #19201)
+#19225 := (or #19202 #19221)
+#18978 := (not #13955)
+#19185 := (not #12644)
+#19182 := (not #12653)
+#19179 := (not #12662)
+#19176 := (not #12671)
+#19229 := (and #19176 #19179 #19182 #19185 #18978 #14352 #19225)
+#16407 := (and #14088 #16368)
+#16412 := (not #16407)
+#19097 := (not #16412)
+#19057 := (and #19056 #19055)
+#19058 := (not #19057)
+#19061 := (+ #19060 #14120)
+#19062 := (<= #19061 0::int)
+#19063 := (+ ?x785!14 #14101)
+#19064 := (>= #19063 0::int)
+#19065 := (or #19064 #19062 #19058)
+#19066 := (not #19065)
+#19085 := (or #19066 #19081)
+#19051 := (not #14105)
+#19089 := (and #19051 #19085)
+#19093 := (or #14105 #19089)
+#19046 := (not #14172)
+#19043 := (not #14097)
+#19040 := (not #12942)
+#19100 := (and #19040 #19043 #19046 #19093 #19097)
+#19104 := (or #19034 #19037 #19100)
+#19029 := (not #14081)
+#19129 := (not #14243)
+#19126 := (not #13081)
+#19123 := (not #13133)
+#19020 := (not #13142)
+#19120 := (not #13090)
+#19117 := (not #13115)
+#19114 := (not #13124)
+#19132 := (and #19114 #19117 #19120 #19020 #19123 #19126 #19129 #19029 #19104)
+#19136 := (or #19011 #19017 #19132)
+#19014 := (not #13159)
+#19140 := (and #19014 #19136)
+#19144 := (or #19008 #19011 #19140)
+#19148 := (and #18978 #14211 #19144)
+#19026 := (not #12993)
+#19023 := (not #13002)
+#19108 := (and #19023 #19026 #18978 #19029 #14293 #19104)
+#19152 := (or #19108 #19148)
+#19156 := (and #19020 #18978 #19152)
+#19160 := (or #19011 #19017 #19156)
+#19164 := (and #19014 #19160)
+#19168 := (or #19008 #19011 #19164)
+#19172 := (and #18978 #14049 #19168)
+#19233 := (or #19172 #19229)
+#16357 := (and #14490 #16349)
+#16362 := (not #16357)
+#19003 := (not #16362)
+#16337 := (and #13947 #16332)
+#16340 := (not #16337)
+#19000 := (not #16340)
+#16318 := (and #14462 #16310)
+#16323 := (not #16318)
+#18997 := (not #16323)
+#18987 := (not #14507)
+#18984 := (not #14456)
+#18981 := (not #14416)
+#18975 := (not #15709)
+#18972 := (not #14399)
+#18969 := (not #13331)
+#18966 := (not #13340)
+#18963 := (not #13349)
+#18960 := (not #13358)
+#18957 := (not #13367)
+#19237 := (and #18957 #18960 #18963 #18966 #18969 #18972 #18975 #18978 #18981 #18984 #18987 #16298 #18997 #19000 #19003 #19233)
+#19241 := (or #13672 #14664 #19237)
+#19245 := (and #16284 #19241)
+#18932 := (and #18931 #18930)
+#18933 := (not #18932)
+#18940 := (or #18939 #18938 #18933)
+#18941 := (not #18940)
+#19249 := (or #18941 #19245)
+#18926 := (not #13906)
+#19253 := (and #18926 #19249)
+#19257 := (or #13906 #19253)
+#18921 := (not #13681)
+#18918 := (not #13645)
+#18915 := (not #13654)
+#18912 := (not #13663)
+#18909 := (not #13672)
+#19261 := (and #18909 #18912 #18915 #18918 #18921 #19257)
+#19265 := (or #18900 #18906 #19261)
+#18903 := (not #13698)
+#19269 := (and #18903 #19265)
+#19273 := (or #18897 #18900 #19269)
+#18894 := (not #13715)
+#19277 := (and #18894 #19273)
+#19281 := (or #13715 #19277)
+#19628 := (iff #19281 #19627)
+#19625 := (iff #19277 #19624)
+#19622 := (iff #19273 #19621)
+#19619 := (iff #19269 #19616)
+#19613 := (and #12364 #19610)
+#19617 := (iff #19613 #19616)
+#19618 := [rewrite]: #19617
+#19614 := (iff #19269 #19613)
+#19611 := (iff #19265 #19610)
+#19608 := (iff #19261 #19605)
+#19602 := (and #3022 #3025 #3028 #3031 #12373 #19599)
+#19606 := (iff #19602 #19605)
+#19607 := [rewrite]: #19606
+#19603 := (iff #19261 #19602)
+#19600 := (iff #19257 #19599)
+#19597 := (iff #19253 #19596)
+#19594 := (iff #19249 #19593)
+#19591 := (iff #19245 #19590)
+#19588 := (iff #19241 #19587)
+#19585 := (iff #19237 #19582)
+#19579 := (and #3121 #3122 #3123 #3124 #3127 #12437 #12553 #13952 #14411 #14453 #14502 #16298 #16318 #16337 #16357 #19576)
+#19583 := (iff #19579 #19582)
+#19584 := [rewrite]: #19583
+#19580 := (iff #19237 #19579)
+#19577 := (iff #19233 #19576)
+#19574 := (iff #19229 #19571)
+#19568 := (and #12567 #12570 #12573 #12576 #13952 #14046 #19563)
+#19572 := (iff #19568 #19571)
+#19573 := [rewrite]: #19572
+#19569 := (iff #19229 #19568)
+#19566 := (iff #19225 #19563)
+#19560 := (or #19557 #19221)
+#19564 := (iff #19560 #19563)
+#19565 := [rewrite]: #19564
+#19561 := (iff #19225 #19560)
+#19558 := (iff #19202 #19557)
+#19555 := (iff #19201 #19554)
+#19552 := (iff #19194 #19551)
+#19549 := (iff #19193 #19548)
+#19550 := [rewrite]: #19549
+#19553 := [monotonicity #19550]: #19552
+#19546 := (iff #19198 #19543)
+#19535 := (+ #13970 #19196)
+#19538 := (<= #19535 0::int)
+#19544 := (iff #19538 #19543)
+#19545 := [rewrite]: #19544
+#19539 := (iff #19198 #19538)
+#19536 := (= #19197 #19535)
+#19537 := [rewrite]: #19536
+#19540 := [monotonicity #19537]: #19539
+#19547 := [trans #19540 #19545]: #19546
+#19533 := (iff #19200 #19530)
+#19522 := (+ #13873 ?x781!15)
+#19525 := (>= #19522 0::int)
+#19531 := (iff #19525 #19530)
+#19532 := [rewrite]: #19531
+#19526 := (iff #19200 #19525)
+#19523 := (= #19199 #19522)
+#19524 := [rewrite]: #19523
+#19527 := [monotonicity #19524]: #19526
+#19534 := [trans #19527 #19532]: #19533
+#19556 := [monotonicity #19534 #19547 #19553]: #19555
+#19559 := [monotonicity #19556]: #19558
+#19562 := [monotonicity #19559]: #19561
+#19567 := [trans #19562 #19565]: #19566
+#19334 := (iff #18978 #13952)
+#19335 := [rewrite]: #19334
+#19520 := (iff #19185 #12576)
+#19521 := [rewrite]: #19520
+#19518 := (iff #19182 #12573)
+#19519 := [rewrite]: #19518
+#19516 := (iff #19179 #12570)
+#19517 := [rewrite]: #19516
+#19514 := (iff #19176 #12567)
+#19515 := [rewrite]: #19514
+#19570 := [monotonicity #19515 #19517 #19519 #19521 #19335 #14356 #19567]: #19569
+#19575 := [trans #19570 #19573]: #19574
+#19512 := (iff #19172 #19509)
+#19506 := (and #13952 #14049 #19503)
+#19510 := (iff #19506 #19509)
+#19511 := [rewrite]: #19510
+#19507 := (iff #19172 #19506)
+#19504 := (iff #19168 #19503)
+#19501 := (iff #19164 #19498)
+#19495 := (and #12809 #19492)
+#19499 := (iff #19495 #19498)
+#19500 := [rewrite]: #19499
+#19496 := (iff #19164 #19495)
+#19493 := (iff #19160 #19492)
+#19490 := (iff #19156 #19487)
+#19484 := (and #12818 #13952 #19481)
+#19488 := (iff #19484 #19487)
+#19489 := [rewrite]: #19488
+#19485 := (iff #19156 #19484)
+#19482 := (iff #19152 #19481)
+#19479 := (iff #19148 #19476)
+#19473 := (and #13952 #14211 #19470)
+#19477 := (iff #19473 #19476)
+#19478 := [rewrite]: #19477
+#19474 := (iff #19148 #19473)
+#19471 := (iff #19144 #19470)
+#19468 := (iff #19140 #19465)
+#19462 := (and #12809 #19459)
+#19466 := (iff #19462 #19465)
+#19467 := [rewrite]: #19466
+#19463 := (iff #19140 #19462)
+#19460 := (iff #19136 #19459)
+#19457 := (iff #19132 #19454)
+#19451 := (and #3242 #3244 #3246 #12818 #13070 #13075 #13950 #14078 #19428)
+#19455 := (iff #19451 #19454)
+#19456 := [rewrite]: #19455
+#19452 := (iff #19132 #19451)
+#19429 := (iff #19104 #19428)
+#19426 := (iff #19100 #19423)
+#19420 := (and #3199 #14094 #14168 #19415 #16407)
+#19424 := (iff #19420 #19423)
+#19425 := [rewrite]: #19424
+#19421 := (iff #19100 #19420)
+#19418 := (iff #19097 #16407)
+#19419 := [rewrite]: #19418
+#19416 := (iff #19093 #19415)
+#19413 := (iff #19089 #19412)
+#19410 := (iff #19085 #19407)
+#19404 := (or #19401 #19081)
+#19408 := (iff #19404 #19407)
+#19409 := [rewrite]: #19408
+#19405 := (iff #19085 #19404)
+#19402 := (iff #19066 #19401)
+#19399 := (iff #19065 #19398)
+#19396 := (iff #19058 #19395)
+#19393 := (iff #19057 #19392)
+#19394 := [rewrite]: #19393
+#19397 := [monotonicity #19394]: #19396
+#19390 := (iff #19062 #19387)
+#19379 := (+ #14120 #19060)
+#19382 := (<= #19379 0::int)
+#19388 := (iff #19382 #19387)
+#19389 := [rewrite]: #19388
+#19383 := (iff #19062 #19382)
+#19380 := (= #19061 #19379)
+#19381 := [rewrite]: #19380
+#19384 := [monotonicity #19381]: #19383
+#19391 := [trans #19384 #19389]: #19390
+#19377 := (iff #19064 #19374)
+#19366 := (+ #14101 ?x785!14)
+#19369 := (>= #19366 0::int)
+#19375 := (iff #19369 #19374)
+#19376 := [rewrite]: #19375
+#19370 := (iff #19064 #19369)
+#19367 := (= #19063 #19366)
+#19368 := [rewrite]: #19367
+#19371 := [monotonicity #19368]: #19370
+#19378 := [trans #19371 #19376]: #19377
+#19400 := [monotonicity #19378 #19391 #19397]: #19399
+#19403 := [monotonicity #19400]: #19402
+#19406 := [monotonicity #19403]: #19405
+#19411 := [trans #19406 #19409]: #19410
+#19364 := (iff #19051 #14100)
+#19365 := [rewrite]: #19364
+#19414 := [monotonicity #19365 #19411]: #19413
+#19417 := [monotonicity #19414]: #19416
+#19362 := (iff #19046 #14168)
+#19363 := [rewrite]: #19362
+#19360 := (iff #19043 #14094)
+#19361 := [rewrite]: #19360
+#19358 := (iff #19040 #3199)
+#19359 := [rewrite]: #19358
+#19422 := [monotonicity #19359 #19361 #19363 #19417 #19419]: #19421
+#19427 := [trans #19422 #19425]: #19426
+#19430 := [monotonicity #19427]: #19429
+#19356 := (iff #19029 #14078)
+#19357 := [rewrite]: #19356
+#19449 := (iff #19129 #13950)
+#19450 := [rewrite]: #19449
+#19447 := (iff #19126 #13075)
+#19448 := [rewrite]: #19447
+#19445 := (iff #19123 #13070)
+#19446 := [rewrite]: #19445
+#19350 := (iff #19020 #12818)
+#19351 := [rewrite]: #19350
+#19443 := (iff #19120 #3246)
+#19444 := [rewrite]: #19443
+#19441 := (iff #19117 #3244)
+#19442 := [rewrite]: #19441
+#19439 := (iff #19114 #3242)
+#19440 := [rewrite]: #19439
+#19453 := [monotonicity #19440 #19442 #19444 #19351 #19446 #19448 #19450 #19357 #19430]: #19452
+#19458 := [trans #19453 #19456]: #19457
+#19461 := [monotonicity #19458]: #19460
+#19348 := (iff #19014 #12809)
+#19349 := [rewrite]: #19348
+#19464 := [monotonicity #19349 #19461]: #19463
+#19469 := [trans #19464 #19467]: #19468
+#19472 := [monotonicity #19469]: #19471
+#19475 := [monotonicity #19335 #19472]: #19474
+#19480 := [trans #19475 #19478]: #19479
+#19437 := (iff #19108 #19434)
+#19431 := (and #12823 #12826 #13952 #14078 #14207 #19428)
+#19435 := (iff #19431 #19434)
+#19436 := [rewrite]: #19435
+#19432 := (iff #19108 #19431)
+#19354 := (iff #19026 #12826)
+#19355 := [rewrite]: #19354
+#19352 := (iff #19023 #12823)
+#19353 := [rewrite]: #19352
+#19433 := [monotonicity #19353 #19355 #19335 #19357 #14297 #19430]: #19432
+#19438 := [trans #19433 #19436]: #19437
+#19483 := [monotonicity #19438 #19480]: #19482
+#19486 := [monotonicity #19351 #19335 #19483]: #19485
+#19491 := [trans #19486 #19489]: #19490
+#19494 := [monotonicity #19491]: #19493
+#19497 := [monotonicity #19349 #19494]: #19496
+#19502 := [trans #19497 #19500]: #19501
+#19505 := [monotonicity #19502]: #19504
+#19508 := [monotonicity #19335 #19505]: #19507
+#19513 := [trans #19508 #19511]: #19512
+#19578 := [monotonicity #19513 #19575]: #19577
+#19346 := (iff #19003 #16357)
+#19347 := [rewrite]: #19346
+#19344 := (iff #19000 #16337)
+#19345 := [rewrite]: #19344
+#19342 := (iff #18997 #16318)
+#19343 := [rewrite]: #19342
+#19340 := (iff #18987 #14502)
+#19341 := [rewrite]: #19340
+#19338 := (iff #18984 #14453)
+#19339 := [rewrite]: #19338
+#19336 := (iff #18981 #14411)
+#19337 := [rewrite]: #19336
+#19332 := (iff #18975 #12553)
+#19333 := [rewrite]: #19332
+#19330 := (iff #18972 #12437)
+#19331 := [rewrite]: #19330
+#19328 := (iff #18969 #3127)
+#19329 := [rewrite]: #19328
+#19326 := (iff #18966 #3124)
+#19327 := [rewrite]: #19326
+#19324 := (iff #18963 #3123)
+#19325 := [rewrite]: #19324
+#19322 := (iff #18960 #3122)
+#19323 := [rewrite]: #19322
+#19320 := (iff #18957 #3121)
+#19321 := [rewrite]: #19320
+#19581 := [monotonicity #19321 #19323 #19325 #19327 #19329 #19331 #19333 #19335 #19337 #19339 #19341 #19343 #19345 #19347 #19578]: #19580
+#19586 := [trans #19581 #19584]: #19585
+#19589 := [monotonicity #14668 #19586]: #19588
+#19592 := [monotonicity #19589]: #19591
+#19318 := (iff #18941 #19317)
+#19315 := (iff #18940 #19312)
+#19309 := (or #18939 #18938 #19306)
+#19313 := (iff #19309 #19312)
+#19314 := [rewrite]: #19313
+#19310 := (iff #18940 #19309)
+#19307 := (iff #18933 #19306)
+#19304 := (iff #18932 #19303)
+#19305 := [rewrite]: #19304
+#19308 := [monotonicity #19305]: #19307
+#19311 := [monotonicity #19308]: #19310
+#19316 := [trans #19311 #19314]: #19315
+#19319 := [monotonicity #19316]: #19318
+#19595 := [monotonicity #19319 #19592]: #19594
+#19301 := (iff #18926 #13903)
+#19302 := [rewrite]: #19301
+#19598 := [monotonicity #19302 #19595]: #19597
+#19601 := [monotonicity #19598]: #19600
+#19299 := (iff #18921 #12373)
+#19300 := [rewrite]: #19299
+#19297 := (iff #18918 #3031)
+#19298 := [rewrite]: #19297
+#19295 := (iff #18915 #3028)
+#19296 := [rewrite]: #19295
+#19293 := (iff #18912 #3025)
+#19294 := [rewrite]: #19293
+#19291 := (iff #18909 #3022)
+#19292 := [rewrite]: #19291
+#19604 := [monotonicity #19292 #19294 #19296 #19298 #19300 #19601]: #19603
+#19609 := [trans #19604 #19607]: #19608
+#19612 := [monotonicity #19609]: #19611
+#19289 := (iff #18903 #12364)
+#19290 := [rewrite]: #19289
+#19615 := [monotonicity #19290 #19612]: #19614
+#19620 := [trans #19615 #19618]: #19619
+#19623 := [monotonicity #19620]: #19622
+#19287 := (iff #18894 #12355)
+#19288 := [rewrite]: #19287
+#19626 := [monotonicity #19288 #19623]: #19625
+#19629 := [monotonicity #19626]: #19628
+#16494 := (exists (vars (?x782 int)) #16489)
+#16483 := (not #16480)
+#16497 := (or #16483 #16494)
+#16500 := (and #16480 #16497)
+#16506 := (or #12671 #12662 #12653 #12644 #13955 #14049 #16500)
+#16384 := (not #16381)
+#16390 := (or #14151 #16384)
+#16395 := (and #16381 #16390)
+#16398 := (or #14105 #16395)
+#16401 := (and #14100 #16398)
+#16418 := (or #12942 #14097 #14172 #16401 #16412)
+#16426 := (and #14088 #16368 #16418)
+#16439 := (or #13124 #13115 #13090 #13142 #13133 #13081 #14243 #14081 #16426)
+#16442 := (and #12806 #12812 #16439)
+#16445 := (or #13159 #16442)
+#16448 := (and #12803 #12806 #16445)
+#16451 := (or #13955 #14207 #16448)
+#16434 := (or #13002 #12993 #13955 #14081 #14211 #16426)
+#16454 := (and #16434 #16451)
+#16457 := (or #13142 #13955 #16454)
+#16460 := (and #12806 #12812 #16457)
+#16463 := (or #13159 #16460)
+#16466 := (and #12803 #12806 #16463)
+#16469 := (or #13955 #14046 #16466)
+#16511 := (and #16469 #16506)
+#16301 := (not #16298)
+#16517 := (or #13367 #13358 #13349 #13340 #13331 #14399 #15709 #13955 #14416 #14456 #14507 #16301 #16323 #16340 #16362 #16511)
+#16522 := (and #3022 #13943 #16517)
+#16287 := (not #16284)
+#16525 := (or #16287 #16522)
+#16528 := (and #16284 #16525)
+#16531 := (or #13906 #16528)
+#16534 := (and #13903 #16531)
+#16537 := (or #13672 #13663 #13654 #13645 #13681 #16534)
+#16540 := (and #12361 #12367 #16537)
+#16543 := (or #13698 #16540)
+#16546 := (and #12358 #12361 #16543)
+#16549 := (or #13715 #16546)
+#16552 := (and #12355 #16549)
+#16555 := (not #16552)
+#19282 := (~ #16555 #19281)
+#19278 := (not #16549)
+#19279 := (~ #19278 #19277)
+#19274 := (not #16546)
+#19275 := (~ #19274 #19273)
+#19270 := (not #16543)
+#19271 := (~ #19270 #19269)
+#19266 := (not #16540)
+#19267 := (~ #19266 #19265)
+#19262 := (not #16537)
+#19263 := (~ #19262 #19261)
+#19258 := (not #16534)
+#19259 := (~ #19258 #19257)
+#19254 := (not #16531)
+#19255 := (~ #19254 #19253)
+#19250 := (not #16528)
+#19251 := (~ #19250 #19249)
+#19246 := (not #16525)
+#19247 := (~ #19246 #19245)
+#19242 := (not #16522)
+#19243 := (~ #19242 #19241)
+#19238 := (not #16517)
+#19239 := (~ #19238 #19237)
+#19234 := (not #16511)
+#19235 := (~ #19234 #19233)
+#19230 := (not #16506)
+#19231 := (~ #19230 #19229)
+#19226 := (not #16500)
+#19227 := (~ #19226 #19225)
+#19222 := (not #16497)
+#19223 := (~ #19222 #19221)
+#19218 := (not #16494)
+#19219 := (~ #19218 #19217)
+#19215 := (~ #19214 #19214)
+#19216 := [refl]: #19215
+#19220 := [nnf-neg #19216]: #19219
+#19211 := (not #16483)
+#19212 := (~ #19211 #16480)
+#19209 := (~ #16480 #16480)
+#19207 := (~ #16475 #16475)
+#19208 := [refl]: #19207
+#19210 := [nnf-pos #19208]: #19209
+#19213 := [nnf-neg #19210]: #19212
+#19224 := [nnf-neg #19213 #19220]: #19223
+#19203 := (~ #16483 #19202)
+#19204 := [sk]: #19203
+#19228 := [nnf-neg #19204 #19224]: #19227
+#19188 := (~ #14352 #14352)
+#19189 := [refl]: #19188
+#18979 := (~ #18978 #18978)
+#18980 := [refl]: #18979
+#19186 := (~ #19185 #19185)
+#19187 := [refl]: #19186
+#19183 := (~ #19182 #19182)
+#19184 := [refl]: #19183
+#19180 := (~ #19179 #19179)
+#19181 := [refl]: #19180
+#19177 := (~ #19176 #19176)
+#19178 := [refl]: #19177
+#19232 := [nnf-neg #19178 #19181 #19184 #19187 #18980 #19189 #19228]: #19231
+#19173 := (not #16469)
+#19174 := (~ #19173 #19172)
+#19169 := (not #16466)
+#19170 := (~ #19169 #19168)
+#19165 := (not #16463)
+#19166 := (~ #19165 #19164)
+#19161 := (not #16460)
+#19162 := (~ #19161 #19160)
+#19157 := (not #16457)
+#19158 := (~ #19157 #19156)
+#19153 := (not #16454)
+#19154 := (~ #19153 #19152)
+#19149 := (not #16451)
+#19150 := (~ #19149 #19148)
+#19145 := (not #16448)
+#19146 := (~ #19145 #19144)
+#19141 := (not #16445)
+#19142 := (~ #19141 #19140)
+#19137 := (not #16442)
+#19138 := (~ #19137 #19136)
+#19133 := (not #16439)
+#19134 := (~ #19133 #19132)
+#19105 := (not #16426)
+#19106 := (~ #19105 #19104)
+#19101 := (not #16418)
+#19102 := (~ #19101 #19100)
+#19098 := (~ #19097 #19097)
+#19099 := [refl]: #19098
+#19094 := (not #16401)
+#19095 := (~ #19094 #19093)
+#19090 := (not #16398)
+#19091 := (~ #19090 #19089)
+#19086 := (not #16395)
+#19087 := (~ #19086 #19085)
+#19082 := (not #16390)
+#19083 := (~ #19082 #19081)
+#19078 := (not #16384)
+#19079 := (~ #19078 #16381)
+#19076 := (~ #16381 #16381)
+#19074 := (~ #16376 #16376)
+#19075 := [refl]: #19074
+#19077 := [nnf-pos #19075]: #19076
+#19080 := [nnf-neg #19077]: #19079
+#19072 := (~ #19071 #19071)
+#19073 := [refl]: #19072
+#19084 := [nnf-neg #19073 #19080]: #19083
+#19067 := (~ #16384 #19066)
+#19068 := [sk]: #19067
+#19088 := [nnf-neg #19068 #19084]: #19087
+#19052 := (~ #19051 #19051)
+#19053 := [refl]: #19052
+#19092 := [nnf-neg #19053 #19088]: #19091
+#19049 := (~ #14105 #14105)
+#19050 := [refl]: #19049
+#19096 := [nnf-neg #19050 #19092]: #19095
+#19047 := (~ #19046 #19046)
+#19048 := [refl]: #19047
+#19044 := (~ #19043 #19043)
+#19045 := [refl]: #19044
+#19041 := (~ #19040 #19040)
+#19042 := [refl]: #19041
+#19103 := [nnf-neg #19042 #19045 #19048 #19096 #19099]: #19102
+#19038 := (~ #19037 #19037)
+#19039 := [refl]: #19038
+#19035 := (~ #19034 #19034)
+#19036 := [refl]: #19035
+#19107 := [nnf-neg #19036 #19039 #19103]: #19106
+#19030 := (~ #19029 #19029)
+#19031 := [refl]: #19030
+#19130 := (~ #19129 #19129)
+#19131 := [refl]: #19130
+#19127 := (~ #19126 #19126)
+#19128 := [refl]: #19127
+#19124 := (~ #19123 #19123)
+#19125 := [refl]: #19124
+#19021 := (~ #19020 #19020)
+#19022 := [refl]: #19021
+#19121 := (~ #19120 #19120)
+#19122 := [refl]: #19121
+#19118 := (~ #19117 #19117)
+#19119 := [refl]: #19118
+#19115 := (~ #19114 #19114)
+#19116 := [refl]: #19115
+#19135 := [nnf-neg #19116 #19119 #19122 #19022 #19125 #19128 #19131 #19031 #19107]: #19134
+#19018 := (~ #19017 #19017)
+#19019 := [refl]: #19018
+#19012 := (~ #19011 #19011)
+#19013 := [refl]: #19012
+#19139 := [nnf-neg #19013 #19019 #19135]: #19138
+#19015 := (~ #19014 #19014)
+#19016 := [refl]: #19015
+#19143 := [nnf-neg #19016 #19139]: #19142
+#19009 := (~ #19008 #19008)
+#19010 := [refl]: #19009
+#19147 := [nnf-neg #19010 #19013 #19143]: #19146
+#19112 := (~ #14211 #14211)
+#19113 := [refl]: #19112
+#19151 := [nnf-neg #18980 #19113 #19147]: #19150
+#19109 := (not #16434)
+#19110 := (~ #19109 #19108)
+#19032 := (~ #14293 #14293)
+#19033 := [refl]: #19032
+#19027 := (~ #19026 #19026)
+#19028 := [refl]: #19027
+#19024 := (~ #19023 #19023)
+#19025 := [refl]: #19024
+#19111 := [nnf-neg #19025 #19028 #18980 #19031 #19033 #19107]: #19110
+#19155 := [nnf-neg #19111 #19151]: #19154
+#19159 := [nnf-neg #19022 #18980 #19155]: #19158
+#19163 := [nnf-neg #19013 #19019 #19159]: #19162
+#19167 := [nnf-neg #19016 #19163]: #19166
+#19171 := [nnf-neg #19010 #19013 #19167]: #19170
+#19006 := (~ #14049 #14049)
+#19007 := [refl]: #19006
+#19175 := [nnf-neg #18980 #19007 #19171]: #19174
+#19236 := [nnf-neg #19175 #19232]: #19235
+#19004 := (~ #19003 #19003)
+#19005 := [refl]: #19004
+#19001 := (~ #19000 #19000)
+#19002 := [refl]: #19001
+#18998 := (~ #18997 #18997)
+#18999 := [refl]: #18998
+#18994 := (not #16301)
+#18995 := (~ #18994 #16298)
+#18992 := (~ #16298 #16298)
+#18990 := (~ #16293 #16293)
+#18991 := [refl]: #18990
+#18993 := [nnf-pos #18991]: #18992
+#18996 := [nnf-neg #18993]: #18995
+#18988 := (~ #18987 #18987)
+#18989 := [refl]: #18988
+#18985 := (~ #18984 #18984)
+#18986 := [refl]: #18985
+#18982 := (~ #18981 #18981)
+#18983 := [refl]: #18982
+#18976 := (~ #18975 #18975)
+#18977 := [refl]: #18976
+#18973 := (~ #18972 #18972)
+#18974 := [refl]: #18973
+#18970 := (~ #18969 #18969)
+#18971 := [refl]: #18970
+#18967 := (~ #18966 #18966)
+#18968 := [refl]: #18967
+#18964 := (~ #18963 #18963)
+#18965 := [refl]: #18964
+#18961 := (~ #18960 #18960)
+#18962 := [refl]: #18961
+#18958 := (~ #18957 #18957)
+#18959 := [refl]: #18958
+#19240 := [nnf-neg #18959 #18962 #18965 #18968 #18971 #18974 #18977 #18980 #18983 #18986 #18989 #18996 #18999 #19002 #19005 #19236]: #19239
+#18955 := (~ #14664 #14664)
+#18956 := [refl]: #18955
+#18953 := (~ #13672 #13672)
+#18954 := [refl]: #18953
+#19244 := [nnf-neg #18954 #18956 #19240]: #19243
+#18950 := (not #16287)
+#18951 := (~ #18950 #16284)
+#18948 := (~ #16284 #16284)
+#18946 := (~ #16279 #16279)
+#18947 := [refl]: #18946
+#18949 := [nnf-pos #18947]: #18948
+#18952 := [nnf-neg #18949]: #18951
+#19248 := [nnf-neg #18952 #19244]: #19247
+#18942 := (~ #16287 #18941)
+#18943 := [sk]: #18942
+#19252 := [nnf-neg #18943 #19248]: #19251
+#18927 := (~ #18926 #18926)
+#18928 := [refl]: #18927
+#19256 := [nnf-neg #18928 #19252]: #19255
+#18924 := (~ #13906 #13906)
+#18925 := [refl]: #18924
+#19260 := [nnf-neg #18925 #19256]: #19259
+#18922 := (~ #18921 #18921)
+#18923 := [refl]: #18922
+#18919 := (~ #18918 #18918)
+#18920 := [refl]: #18919
+#18916 := (~ #18915 #18915)
+#18917 := [refl]: #18916
+#18913 := (~ #18912 #18912)
+#18914 := [refl]: #18913
+#18910 := (~ #18909 #18909)
+#18911 := [refl]: #18910
+#19264 := [nnf-neg #18911 #18914 #18917 #18920 #18923 #19260]: #19263
+#18907 := (~ #18906 #18906)
+#18908 := [refl]: #18907
+#18901 := (~ #18900 #18900)
+#18902 := [refl]: #18901
+#19268 := [nnf-neg #18902 #18908 #19264]: #19267
+#18904 := (~ #18903 #18903)
+#18905 := [refl]: #18904
+#19272 := [nnf-neg #18905 #19268]: #19271
+#18898 := (~ #18897 #18897)
+#18899 := [refl]: #18898
+#19276 := [nnf-neg #18899 #18902 #19272]: #19275
+#18895 := (~ #18894 #18894)
+#18896 := [refl]: #18895
+#19280 := [nnf-neg #18896 #19276]: #19279
+#18892 := (~ #13715 #13715)
+#18893 := [refl]: #18892
+#19283 := [nnf-neg #18893 #19280]: #19282
+#15734 := (or #12671 #12662 #12653 #12644 #13955 #14009 #14049)
+#15742 := (and #14371 #15734)
+#15750 := (or #13367 #13358 #13349 #13340 #13331 #14399 #15709 #13955 #14416 #14450 #14456 #14468 #14483 #14496 #14507 #15742)
+#15755 := (and #3022 #13943 #15750)
+#15758 := (or #13939 #15755)
+#15761 := (and #13936 #15758)
+#15764 := (or #13906 #15761)
+#15767 := (and #13903 #15764)
+#15770 := (or #13672 #13663 #13654 #13645 #13681 #15767)
+#15773 := (and #12361 #12367 #15770)
+#15776 := (or #13698 #15773)
+#15779 := (and #12358 #12361 #15776)
+#15782 := (or #13715 #15779)
+#15785 := (and #12355 #15782)
+#15788 := (not #15785)
+#16556 := (iff #15788 #16555)
+#16553 := (iff #15785 #16552)
+#16550 := (iff #15782 #16549)
+#16547 := (iff #15779 #16546)
+#16544 := (iff #15776 #16543)
+#16541 := (iff #15773 #16540)
+#16538 := (iff #15770 #16537)
+#16535 := (iff #15767 #16534)
+#16532 := (iff #15764 #16531)
+#16529 := (iff #15761 #16528)
+#16526 := (iff #15758 #16525)
+#16523 := (iff #15755 #16522)
+#16520 := (iff #15750 #16517)
+#16514 := (or #13367 #13358 #13349 #13340 #13331 #14399 #15709 #13955 #14416 #16301 #14456 #16323 #16340 #16362 #14507 #16511)
+#16518 := (iff #16514 #16517)
+#16519 := [rewrite]: #16518
+#16515 := (iff #15750 #16514)
+#16512 := (iff #15742 #16511)
+#16509 := (iff #15734 #16506)
+#16503 := (or #12671 #12662 #12653 #12644 #13955 #16500 #14049)
+#16507 := (iff #16503 #16506)
+#16508 := [rewrite]: #16507
+#16504 := (iff #15734 #16503)
+#16501 := (iff #14009 #16500)
+#16498 := (iff #14006 #16497)
+#16495 := (iff #14003 #16494)
+#16492 := (iff #13998 #16489)
+#16486 := (and #3145 #4084 #15606 #13958)
+#16490 := (iff #16486 #16489)
+#16491 := [rewrite]: #16490
+#16487 := (iff #13998 #16486)
+#15605 := (iff #4419 #15606)
+#15638 := -131073::int
+#15614 := (+ -131073::int #161)
+#15611 := (<= #15614 0::int)
+#15607 := (iff #15611 #15606)
+#15604 := [rewrite]: #15607
+#15608 := (iff #4419 #15611)
+#15613 := (= #4418 #15614)
+#15619 := (+ #161 -131073::int)
+#15615 := (= #15619 #15614)
+#15612 := [rewrite]: #15615
+#15616 := (= #4418 #15619)
+#15637 := (= #4413 -131073::int)
+#15643 := (* -1::int 131073::int)
+#15639 := (= #15643 -131073::int)
+#15636 := [rewrite]: #15639
+#15640 := (= #4413 #15643)
+#7883 := (= uf_76 131073::int)
+#1070 := 65536::int
+#1313 := (+ 65536::int 65536::int)
+#1318 := (+ #1313 1::int)
+#1319 := (= uf_76 #1318)
+#7884 := (iff #1319 #7883)
+#7881 := (= #1318 131073::int)
+#7874 := (+ 131072::int 1::int)
+#7879 := (= #7874 131073::int)
+#7880 := [rewrite]: #7879
+#7876 := (= #1318 #7874)
+#7845 := (= #1313 131072::int)
+#7846 := [rewrite]: #7845
+#7877 := [monotonicity #7846]: #7876
+#7882 := [trans #7877 #7880]: #7881
+#7885 := [monotonicity #7882]: #7884
+#7873 := [asserted]: #1319
+#7888 := [mp #7873 #7885]: #7883
+#15641 := [monotonicity #7888]: #15640
+#15634 := [trans #15641 #15636]: #15637
+#15617 := [monotonicity #15634]: #15616
+#15610 := [trans #15617 #15612]: #15613
+#15609 := [monotonicity #15610]: #15608
+#15602 := [trans #15609 #15604]: #15605
+#16488 := [monotonicity #15602]: #16487
+#16493 := [trans #16488 #16491]: #16492
+#16496 := [quant-intro #16493]: #16495
+#16484 := (iff #13989 #16483)
+#16481 := (iff #13986 #16480)
+#16478 := (iff #13981 #16475)
+#16472 := (or #14857 #13959 #13972)
+#16476 := (iff #16472 #16475)
+#16477 := [rewrite]: #16476
+#16473 := (iff #13981 #16472)
+#14854 := (iff #5739 #14857)
+#14859 := (iff #5736 #14858)
+#14856 := [monotonicity #15602]: #14859
+#14855 := [monotonicity #14856]: #14854
+#16474 := [monotonicity #14855]: #16473
+#16479 := [trans #16474 #16477]: #16478
+#16482 := [quant-intro #16479]: #16481
+#16485 := [monotonicity #16482]: #16484
+#16499 := [monotonicity #16485 #16496]: #16498
+#16502 := [monotonicity #16482 #16499]: #16501
+#16505 := [monotonicity #16502]: #16504
+#16510 := [trans #16505 #16508]: #16509
+#16470 := (iff #14371 #16469)
+#16467 := (iff #14345 #16466)
+#16464 := (iff #14339 #16463)
+#16461 := (iff #14334 #16460)
+#16458 := (iff #14326 #16457)
+#16455 := (iff #14317 #16454)
+#16452 := (iff #14312 #16451)
+#16449 := (iff #14286 #16448)
+#16446 := (iff #14280 #16445)
+#16443 := (iff #14275 #16442)
+#16440 := (iff #14267 #16439)
+#16429 := (iff #14201 #16426)
+#16423 := (and #16368 #14088 #16418)
+#16427 := (iff #16423 #16426)
+#16428 := [rewrite]: #16427
+#16424 := (iff #14201 #16423)
+#16421 := (iff #14193 #16418)
+#16415 := (or #12942 #14097 #16401 #14172 #16412)
+#16419 := (iff #16415 #16418)
+#16420 := [rewrite]: #16419
+#16416 := (iff #14193 #16415)
+#16413 := (iff #14178 #16412)
+#16410 := (iff #14175 #16407)
+#16404 := (and #16368 #14088)
+#16408 := (iff #16404 #16407)
+#16409 := [rewrite]: #16408
+#16405 := (iff #14175 #16404)
+#16371 := (iff #14084 #16368)
+#16304 := (+ 131073::int #14044)
+#16365 := (>= #16304 1::int)
+#16369 := (iff #16365 #16368)
+#16370 := [rewrite]: #16369
+#16366 := (iff #14084 #16365)
+#16305 := (= #14085 #16304)
+#16306 := [monotonicity #7888]: #16305
+#16367 := [monotonicity #16306]: #16366
+#16372 := [trans #16367 #16370]: #16371
+#16406 := [monotonicity #16372]: #16405
+#16411 := [trans #16406 #16409]: #16410
+#16414 := [monotonicity #16411]: #16413
+#16402 := (iff #14165 #16401)
+#16399 := (iff #14162 #16398)
+#16396 := (iff #14159 #16395)
+#16393 := (iff #14156 #16390)
+#16387 := (or #16384 #14151)
+#16391 := (iff #16387 #16390)
+#16392 := [rewrite]: #16391
+#16388 := (iff #14156 #16387)
+#16385 := (iff #14139 #16384)
+#16382 := (iff #14136 #16381)
+#16379 := (iff #14131 #16376)
+#16373 := (or #14857 #14109 #14122)
+#16377 := (iff #16373 #16376)
+#16378 := [rewrite]: #16377
+#16374 := (iff #14131 #16373)
+#16375 := [monotonicity #14855]: #16374
+#16380 := [trans #16375 #16378]: #16379
+#16383 := [quant-intro #16380]: #16382
+#16386 := [monotonicity #16383]: #16385
+#16389 := [monotonicity #16386]: #16388
+#16394 := [trans #16389 #16392]: #16393
+#16397 := [monotonicity #16383 #16394]: #16396
+#16400 := [monotonicity #16397]: #16399
+#16403 := [monotonicity #16400]: #16402
+#16417 := [monotonicity #16403 #16414]: #16416
+#16422 := [trans #16417 #16420]: #16421
+#16425 := [monotonicity #16372 #16422]: #16424
+#16430 := [trans #16425 #16428]: #16429
+#16441 := [monotonicity #16430]: #16440
+#16444 := [monotonicity #16441]: #16443
+#16447 := [monotonicity #16444]: #16446
+#16450 := [monotonicity #16447]: #16449
+#16453 := [monotonicity #16450]: #16452
+#16437 := (iff #14238 #16434)
+#16431 := (or #13002 #12993 #13955 #14081 #16426 #14211)
+#16435 := (iff #16431 #16434)
+#16436 := [rewrite]: #16435
+#16432 := (iff #14238 #16431)
+#16433 := [monotonicity #16430]: #16432
+#16438 := [trans #16433 #16436]: #16437
+#16456 := [monotonicity #16438 #16453]: #16455
+#16459 := [monotonicity #16456]: #16458
+#16462 := [monotonicity #16459]: #16461
+#16465 := [monotonicity #16462]: #16464
+#16468 := [monotonicity #16465]: #16467
+#16471 := [monotonicity #16468]: #16470
+#16513 := [monotonicity #16471 #16510]: #16512
+#16363 := (iff #14496 #16362)
+#16360 := (iff #14493 #16357)
+#16354 := (and #16349 #14490)
+#16358 := (iff #16354 #16357)
+#16359 := [rewrite]: #16358
+#16355 := (iff #14493 #16354)
+#16352 := (iff #14486 #16349)
+#16343 := (+ 255::int #14431)
+#16346 := (>= #16343 0::int)
+#16350 := (iff #16346 #16349)
+#16351 := [rewrite]: #16350
+#16347 := (iff #14486 #16346)
+#16344 := (= #14487 #16343)
+#1323 := (= uf_78 255::int)
+#7887 := [asserted]: #1323
+#16345 := [monotonicity #7887]: #16344
+#16348 := [monotonicity #16345]: #16347
+#16353 := [trans #16348 #16351]: #16352
+#16356 := [monotonicity #16353]: #16355
+#16361 := [trans #16356 #16359]: #16360
+#16364 := [monotonicity #16361]: #16363
+#16341 := (iff #14483 #16340)
+#16338 := (iff #14478 #16337)
+#16335 := (iff #14471 #16332)
+#16326 := (+ 131073::int #14402)
+#16329 := (>= #16326 0::int)
+#16333 := (iff #16329 #16332)
+#16334 := [rewrite]: #16333
+#16330 := (iff #14471 #16329)
+#16327 := (= #14472 #16326)
+#16328 := [monotonicity #7888]: #16327
+#16331 := [monotonicity #16328]: #16330
+#16336 := [trans #16331 #16334]: #16335
+#16339 := [monotonicity #16336]: #16338
+#16342 := [monotonicity #16339]: #16341
+#16324 := (iff #14468 #16323)
+#16321 := (iff #14465 #16318)
+#16315 := (and #16310 #14462)
+#16319 := (iff #16315 #16318)
+#16320 := [rewrite]: #16319
+#16316 := (iff #14465 #16315)
+#16313 := (iff #14459 #16310)
+#16307 := (>= #16304 0::int)
+#16311 := (iff #16307 #16310)
+#16312 := [rewrite]: #16311
+#16308 := (iff #14459 #16307)
+#16309 := [monotonicity #16306]: #16308
+#16314 := [trans #16309 #16312]: #16313
+#16317 := [monotonicity #16314]: #16316
+#16322 := [trans #16317 #16320]: #16321
+#16325 := [monotonicity #16322]: #16324
+#16302 := (iff #14450 #16301)
+#16299 := (iff #14447 #16298)
+#16296 := (iff #14442 #16293)
+#16290 := (or #14857 #14420 #14433)
+#16294 := (iff #16290 #16293)
+#16295 := [rewrite]: #16294
+#16291 := (iff #14442 #16290)
+#16292 := [monotonicity #14855]: #16291
+#16297 := [trans #16292 #16295]: #16296
+#16300 := [quant-intro #16297]: #16299
+#16303 := [monotonicity #16300]: #16302
+#16516 := [monotonicity #16303 #16325 #16342 #16364 #16513]: #16515
+#16521 := [trans #16516 #16519]: #16520
+#16524 := [monotonicity #16521]: #16523
+#16288 := (iff #13939 #16287)
+#16285 := (iff #13936 #16284)
+#16282 := (iff #13931 #16279)
+#16276 := (or #14857 #13910 #13921)
+#16280 := (iff #16276 #16279)
+#16281 := [rewrite]: #16280
+#16277 := (iff #13931 #16276)
+#16278 := [monotonicity #14855]: #16277
+#16283 := [trans #16278 #16281]: #16282
+#16286 := [quant-intro #16283]: #16285
+#16289 := [monotonicity #16286]: #16288
+#16527 := [monotonicity #16289 #16524]: #16526
+#16530 := [monotonicity #16286 #16527]: #16529
+#16533 := [monotonicity #16530]: #16532
+#16536 := [monotonicity #16533]: #16535
+#16539 := [monotonicity #16536]: #16538
+#16542 := [monotonicity #16539]: #16541
+#16545 := [monotonicity #16542]: #16544
+#16548 := [monotonicity #16545]: #16547
+#16551 := [monotonicity #16548]: #16550
+#16554 := [monotonicity #16551]: #16553
+#16557 := [monotonicity #16554]: #16556
+#14791 := (not #14643)
+#15789 := (iff #14791 #15788)
+#15786 := (iff #14643 #15785)
+#15783 := (iff #14640 #15782)
+#15780 := (iff #14635 #15779)
+#15777 := (iff #14629 #15776)
+#15774 := (iff #14624 #15773)
+#15771 := (iff #14616 #15770)
+#15768 := (iff #14595 #15767)
+#15765 := (iff #14592 #15764)
+#15762 := (iff #14589 #15761)
+#15759 := (iff #14586 #15758)
+#15756 := (iff #14581 #15755)
+#15753 := (iff #14573 #15750)
+#15747 := (or #13367 #13358 #13349 #13340 #13331 #14399 #15709 #13955 #15742 #14416 #14450 #14456 #14468 #14483 #14496 #14507)
+#15751 := (iff #15747 #15750)
+#15752 := [rewrite]: #15751
+#15748 := (iff #14573 #15747)
+#15745 := (iff #14376 #15742)
+#15739 := (and #15734 #14371)
+#15743 := (iff #15739 #15742)
+#15744 := [rewrite]: #15743
+#15740 := (iff #14376 #15739)
+#15737 := (iff #14070 #15734)
+#15719 := (or #12671 #12662 #12653 #12644 #13955 #14009)
+#15731 := (or #13955 #15719 #14049)
+#15735 := (iff #15731 #15734)
+#15736 := [rewrite]: #15735
+#15732 := (iff #14070 #15731)
+#15729 := (iff #14041 #15719)
+#15724 := (and true #15719)
+#15727 := (iff #15724 #15719)
+#15728 := [rewrite]: #15727
+#15725 := (iff #14041 #15724)
+#15722 := (iff #14036 #15719)
+#15716 := (or false #12671 #12662 #12653 #12644 #13955 #14009)
+#15720 := (iff #15716 #15719)
+#15721 := [rewrite]: #15720
+#15717 := (iff #14036 #15716)
+#15714 := (iff #12719 false)
+#15712 := (iff #12719 #3294)
+#15456 := (iff up_216 true)
+#11194 := [asserted]: up_216
+#15457 := [iff-true #11194]: #15456
+#15713 := [monotonicity #15457]: #15712
+#15715 := [trans #15713 #13445]: #15714
+#15718 := [monotonicity #15715]: #15717
+#15723 := [trans #15718 #15721]: #15722
+#15726 := [monotonicity #15457 #15723]: #15725
+#15730 := [trans #15726 #15728]: #15729
+#15733 := [monotonicity #15730]: #15732
+#15738 := [trans #15733 #15736]: #15737
+#15741 := [monotonicity #15738]: #15740
+#15746 := [trans #15741 #15744]: #15745
+#15710 := (iff #13376 #15709)
+#15707 := (iff #12556 #12553)
+#15702 := (and true #12553)
+#15705 := (iff #15702 #12553)
+#15706 := [rewrite]: #15705
+#15703 := (iff #12556 #15702)
+#15690 := (iff #12332 true)
+#15691 := [iff-true #14784]: #15690
+#15704 := [monotonicity #15691]: #15703
+#15708 := [trans #15704 #15706]: #15707
+#15711 := [monotonicity #15708]: #15710
+#15749 := [monotonicity #15711 #15746]: #15748
+#15754 := [trans #15749 #15752]: #15753
+#15757 := [monotonicity #15754]: #15756
+#15760 := [monotonicity #15757]: #15759
+#15763 := [monotonicity #15760]: #15762
+#15766 := [monotonicity #15763]: #15765
+#15769 := [monotonicity #15766]: #15768
+#15772 := [monotonicity #15769]: #15771
+#15775 := [monotonicity #15772]: #15774
+#15778 := [monotonicity #15775]: #15777
+#15781 := [monotonicity #15778]: #15780
+#15784 := [monotonicity #15781]: #15783
+#15787 := [monotonicity #15784]: #15786
+#15790 := [monotonicity #15787]: #15789
+#14792 := [not-or-elim #14776]: #14791
+#15791 := [mp #14792 #15790]: #15788
+#16558 := [mp #15791 #16557]: #16555
+#19284 := [mp~ #16558 #19283]: #19281
+#19285 := [mp #19284 #19629]: #19627
+#23120 := [mp #19285 #23119]: #23117
+#23987 := [mp #23120 #23986]: #23984
+#28241 := [unit-resolution #23987 #26494]: #23981
+#28348 := (or #23978 #23957)
+decl uf_136 :: (-> T14 T5)
+#26312 := (uf_58 #3079 #3011)
+#26553 := (uf_136 #26312)
+#26565 := (uf_24 uf_273 #26553)
+#26566 := (= uf_9 #26565)
+#26600 := (not #26566)
+decl uf_135 :: (-> T14 T2)
+#26546 := (uf_135 #26312)
+#26551 := (= uf_9 #26546)
+#26552 := (not #26551)
+#26788 := (or #26552 #26600)
+#26791 := (not #26788)
+decl uf_210 :: (-> T4 T5 T2)
+#26631 := (uf_210 uf_273 #26553)
+#26632 := (= uf_9 #26631)
+#26630 := (uf_25 uf_273 #26553)
+#26610 := (= uf_26 #26630)
+#26753 := (or #26610 #26632)
+#26766 := (not #26753)
+#26287 := (uf_15 #3011)
+#26634 := (uf_14 #26287)
+#26726 := (= uf_16 #26634)
+#26750 := (not #26726)
+#26608 := (uf_15 #26553)
+#26609 := (uf_14 #26608)
+#26629 := (= uf_16 #26609)
+#26796 := (or #26629 #26750 #26766 #26791)
+#26807 := (not #26796)
+#26557 := (uf_25 uf_273 #3011)
+#26558 := (= uf_26 #26557)
+#26555 := (uf_210 uf_273 #3011)
+#26556 := (= uf_9 #26555)
+#26756 := (or #26556 #26558)
+#26759 := (not #26756)
+#26745 := (or #26726 #26759)
+#26748 := (not #26745)
+#26809 := (or #26748 #26807)
+#26812 := (not #26809)
+#26819 := (or #18897 #26812)
+#26823 := (not #26819)
+#26851 := (iff #12367 #26823)
+#2376 := (uf_67 #47 #26)
+#2377 := (pattern #2376)
+#281 := (uf_59 #47)
+#2383 := (uf_58 #281 #26)
+#2397 := (uf_135 #2383)
+#10938 := (= uf_9 #2397)
+#10941 := (not #10938)
+#2384 := (uf_136 #2383)
+#2394 := (uf_24 #47 #2384)
+#10932 := (= uf_9 #2394)
+#10935 := (not #10932)
+#10944 := (or #10935 #10941)
+#22490 := (not #10944)
+#2390 := (uf_15 #2384)
+#2391 := (uf_14 #2390)
+#10926 := (= uf_16 #2391)
+#2387 := (uf_25 #47 #2384)
+#10920 := (= uf_26 #2387)
+#2385 := (uf_210 #47 #2384)
+#10917 := (= uf_9 #2385)
+#10923 := (or #10917 #10920)
+#22489 := (not #10923)
+#22491 := (or #52 #22489 #10926 #22490)
+#22492 := (not #22491)
+#2379 := (uf_210 #47 #26)
+#10898 := (= uf_9 #2379)
+#10904 := (or #3656 #10898)
+#22484 := (not #10904)
+#22485 := (or #36 #22484)
+#22486 := (not #22485)
+#22495 := (or #22486 #22492)
+#22501 := (not #22495)
+#22502 := (or #11522 #22501)
+#22503 := (not #22502)
+#10894 := (= uf_9 #2376)
+#22508 := (iff #10894 #22503)
+#22511 := (forall (vars (?x632 T4) (?x633 T5)) (:pat #2377) #22508)
+#10929 := (not #10926)
+#10978 := (and #36 #10923 #10929 #10944)
+#10912 := (and #52 #10904)
+#10981 := (or #10912 #10978)
+#10984 := (and #3650 #10981)
+#10987 := (iff #10894 #10984)
+#10990 := (forall (vars (?x632 T4) (?x633 T5)) (:pat #2377) #10987)
+#22512 := (iff #10990 #22511)
+#22509 := (iff #10987 #22508)
+#22506 := (iff #10984 #22503)
+#22498 := (and #3650 #22495)
+#22504 := (iff #22498 #22503)
+#22505 := [rewrite]: #22504
+#22499 := (iff #10984 #22498)
+#22496 := (iff #10981 #22495)
+#22493 := (iff #10978 #22492)
+#22494 := [rewrite]: #22493
+#22487 := (iff #10912 #22486)
+#22488 := [rewrite]: #22487
+#22497 := [monotonicity #22488 #22494]: #22496
+#22500 := [monotonicity #22497]: #22499
+#22507 := [trans #22500 #22505]: #22506
+#22510 := [monotonicity #22507]: #22509
+#22513 := [quant-intro #22510]: #22512
+#18466 := (~ #10990 #10990)
+#18464 := (~ #10987 #10987)
+#18465 := [refl]: #18464
+#18467 := [nnf-pos #18465]: #18466
+#2398 := (= #2397 uf_9)
+#2399 := (not #2398)
+#2395 := (= #2394 uf_9)
+#2396 := (not #2395)
+#2400 := (or #2396 #2399)
+#2401 := (and #2400 #36)
+#2392 := (= #2391 uf_16)
+#2393 := (not #2392)
+#2402 := (and #2393 #2401)
+#2388 := (= #2387 uf_26)
+#2386 := (= #2385 uf_9)
+#2389 := (or #2386 #2388)
+#2403 := (and #2389 #2402)
+#2380 := (= #2379 uf_9)
+#2381 := (or #2380 #151)
+#2382 := (and #2381 #52)
+#2404 := (or #2382 #2403)
+#2405 := (and #2404 #147)
+#2378 := (= #2376 uf_9)
+#2406 := (iff #2378 #2405)
+#2407 := (forall (vars (?x632 T4) (?x633 T5)) (:pat #2377) #2406)
+#10993 := (iff #2407 #10990)
+#10950 := (and #36 #10944)
+#10955 := (and #10929 #10950)
+#10958 := (and #10923 #10955)
+#10961 := (or #10912 #10958)
+#10967 := (and #3650 #10961)
+#10972 := (iff #10894 #10967)
+#10975 := (forall (vars (?x632 T4) (?x633 T5)) (:pat #2377) #10972)
+#10991 := (iff #10975 #10990)
+#10988 := (iff #10972 #10987)
+#10985 := (iff #10967 #10984)
+#10982 := (iff #10961 #10981)
+#10979 := (iff #10958 #10978)
+#10980 := [rewrite]: #10979
+#10983 := [monotonicity #10980]: #10982
+#10986 := [monotonicity #10983]: #10985
+#10989 := [monotonicity #10986]: #10988
+#10992 := [quant-intro #10989]: #10991
+#10976 := (iff #2407 #10975)
+#10973 := (iff #2406 #10972)
+#10970 := (iff #2405 #10967)
+#10964 := (and #10961 #3650)
+#10968 := (iff #10964 #10967)
+#10969 := [rewrite]: #10968
+#10965 := (iff #2405 #10964)
+#10962 := (iff #2404 #10961)
+#10959 := (iff #2403 #10958)
+#10956 := (iff #2402 #10955)
+#10953 := (iff #2401 #10950)
+#10947 := (and #10944 #36)
+#10951 := (iff #10947 #10950)
+#10952 := [rewrite]: #10951
+#10948 := (iff #2401 #10947)
+#10945 := (iff #2400 #10944)
+#10942 := (iff #2399 #10941)
+#10939 := (iff #2398 #10938)
+#10940 := [rewrite]: #10939
+#10943 := [monotonicity #10940]: #10942
+#10936 := (iff #2396 #10935)
+#10933 := (iff #2395 #10932)
+#10934 := [rewrite]: #10933
+#10937 := [monotonicity #10934]: #10936
+#10946 := [monotonicity #10937 #10943]: #10945
+#10949 := [monotonicity #10946]: #10948
+#10954 := [trans #10949 #10952]: #10953
+#10930 := (iff #2393 #10929)
+#10927 := (iff #2392 #10926)
+#10928 := [rewrite]: #10927
+#10931 := [monotonicity #10928]: #10930
+#10957 := [monotonicity #10931 #10954]: #10956
+#10924 := (iff #2389 #10923)
+#10921 := (iff #2388 #10920)
+#10922 := [rewrite]: #10921
+#10918 := (iff #2386 #10917)
+#10919 := [rewrite]: #10918
+#10925 := [monotonicity #10919 #10922]: #10924
+#10960 := [monotonicity #10925 #10957]: #10959
+#10915 := (iff #2382 #10912)
+#10909 := (and #10904 #52)
+#10913 := (iff #10909 #10912)
+#10914 := [rewrite]: #10913
+#10910 := (iff #2382 #10909)
+#10907 := (iff #2381 #10904)
+#10901 := (or #10898 #3656)
+#10905 := (iff #10901 #10904)
+#10906 := [rewrite]: #10905
+#10902 := (iff #2381 #10901)
+#10899 := (iff #2380 #10898)
+#10900 := [rewrite]: #10899
+#10903 := [monotonicity #10900 #3658]: #10902
+#10908 := [trans #10903 #10906]: #10907
+#10911 := [monotonicity #10908]: #10910
+#10916 := [trans #10911 #10914]: #10915
+#10963 := [monotonicity #10916 #10960]: #10962
+#10966 := [monotonicity #10963 #3652]: #10965
+#10971 := [trans #10966 #10969]: #10970
+#10896 := (iff #2378 #10894)
+#10897 := [rewrite]: #10896
+#10974 := [monotonicity #10897 #10971]: #10973
+#10977 := [quant-intro #10974]: #10976
+#10994 := [trans #10977 #10992]: #10993
+#10893 := [asserted]: #2407
+#10995 := [mp #10893 #10994]: #10990
+#18468 := [mp~ #10995 #18467]: #10990
+#22514 := [mp #18468 #22513]: #22511
+#26854 := (not #22511)
+#26855 := (or #26854 #26851)
+#26606 := (or #26600 #26552)
+#26607 := (not #26606)
+#26633 := (or #26632 #26610)
+#26628 := (not #26633)
+#26635 := (= #26634 uf_16)
+#26684 := (not #26635)
+#26685 := (or #26684 #26628 #26629 #26607)
+#26554 := (not #26685)
+#26559 := (or #26558 #26556)
+#26560 := (not #26559)
+#26544 := (or #26635 #26560)
+#26636 := (not #26544)
+#26637 := (or #26636 #26554)
+#26681 := (not #26637)
+#26713 := (or #18897 #26681)
+#26714 := (not #26713)
+#26725 := (iff #12367 #26714)
+#26840 := (or #26854 #26725)
+#26842 := (iff #26840 #26855)
+#26844 := (iff #26855 #26855)
+#26839 := [rewrite]: #26844
+#26852 := (iff #26725 #26851)
+#26824 := (iff #26714 #26823)
+#26820 := (iff #26713 #26819)
+#26813 := (iff #26681 #26812)
+#26810 := (iff #26637 #26809)
+#26808 := (iff #26554 #26807)
+#26805 := (iff #26685 #26796)
+#26793 := (or #26750 #26766 #26629 #26791)
+#26802 := (iff #26793 #26796)
+#26804 := [rewrite]: #26802
+#26794 := (iff #26685 #26793)
+#26786 := (iff #26607 #26791)
+#26789 := (iff #26606 #26788)
+#26790 := [rewrite]: #26789
+#26792 := [monotonicity #26790]: #26786
+#26785 := (iff #26628 #26766)
+#26764 := (iff #26633 #26753)
+#26765 := [rewrite]: #26764
+#26787 := [monotonicity #26765]: #26785
+#26751 := (iff #26684 #26750)
+#26754 := (iff #26635 #26726)
+#26755 := [rewrite]: #26754
+#26752 := [monotonicity #26755]: #26751
+#26795 := [monotonicity #26752 #26787 #26792]: #26794
+#26806 := [trans #26795 #26804]: #26805
+#26803 := [monotonicity #26806]: #26808
+#26743 := (iff #26636 #26748)
+#26746 := (iff #26544 #26745)
+#26742 := (iff #26560 #26759)
+#26757 := (iff #26559 #26756)
+#26758 := [rewrite]: #26757
+#26744 := [monotonicity #26758]: #26742
+#26747 := [monotonicity #26755 #26744]: #26746
+#26749 := [monotonicity #26747]: #26743
+#26811 := [monotonicity #26749 #26803]: #26810
+#26818 := [monotonicity #26811]: #26813
+#26822 := [monotonicity #26818]: #26820
+#26850 := [monotonicity #26822]: #26824
+#26853 := [monotonicity #26850]: #26852
+#26843 := [monotonicity #26853]: #26842
+#26845 := [trans #26843 #26839]: #26842
+#26841 := [quant-inst]: #26840
+#26846 := [mp #26841 #26845]: #26855
+#27857 := [unit-resolution #26846 #22514]: #26851
+#27023 := (not #26851)
+#27960 := (or #27023 #26819)
+#27858 := [hypothesis]: #23954
+decl uf_144 :: (-> T3 T3)
+#24114 := (uf_144 #2952)
+#26288 := (= #24114 #26287)
+#26263 := (uf_48 #3011 #24114)
+#26264 := (= uf_9 #26263)
+#26290 := (iff #26264 #26288)
+#26074 := (not #26290)
+#26175 := [hypothesis]: #26074
+#1381 := (uf_15 #15)
+#9506 := (= #233 #1381)
+#11615 := (iff #9506 #11594)
+#23676 := (forall (vars (?x712 T5) (?x713 T3)) (:pat #2662) #11615)
+#11620 := (forall (vars (?x712 T5) (?x713 T3)) #11615)
+#23679 := (iff #11620 #23676)
+#23677 := (iff #11615 #11615)
+#23678 := [refl]: #23677
+#23680 := [quant-intro #23678]: #23679
+#18739 := (~ #11620 #11620)
+#18737 := (~ #11615 #11615)
+#18738 := [refl]: #18737
+#18740 := [nnf-pos #18738]: #18739
+#1882 := (= #1381 #233)
+#2668 := (iff #2663 #1882)
+#2669 := (forall (vars (?x712 T5) (?x713 T3)) #2668)
+#11621 := (iff #2669 #11620)
+#11618 := (iff #2668 #11615)
+#11611 := (iff #11594 #9506)
+#11616 := (iff #11611 #11615)
+#11617 := [rewrite]: #11616
+#11613 := (iff #2668 #11611)
+#9507 := (iff #1882 #9506)
+#9508 := [rewrite]: #9507
+#11614 := [monotonicity #11597 #9508]: #11613
+#11619 := [trans #11614 #11617]: #11618
+#11622 := [quant-intro #11619]: #11621
+#11610 := [asserted]: #2669
+#11625 := [mp #11610 #11622]: #11620
+#18741 := [mp~ #11625 #18740]: #11620
+#23681 := [mp #18741 #23680]: #23676
+#25432 := (not #23676)
+#26067 := (or #25432 #26290)
+#26289 := (iff #26288 #26264)
+#26068 := (or #25432 #26289)
+#26069 := (iff #26068 #26067)
+#26065 := (iff #26067 #26067)
+#26071 := [rewrite]: #26065
+#26291 := (iff #26289 #26290)
+#26292 := [rewrite]: #26291
+#26070 := [monotonicity #26292]: #26069
+#26072 := [trans #26070 #26071]: #26069
+#26066 := [quant-inst]: #26068
+#26073 := [mp #26066 #26072]: #26067
+#26176 := [unit-resolution #26073 #23681 #26175]: false
+#26214 := [lemma #26176]: #26290
+#26294 := (or #26074 #12361)
+#26357 := (uf_116 #23223)
+decl uf_138 :: (-> T3 int)
+#26356 := (uf_138 #24114)
+#26365 := (+ #26356 #26357)
+#26368 := (uf_43 #24114 #26365)
+#26561 := (uf_15 #26368)
+#26308 := (= #26561 #26287)
+#26304 := (= #26287 #26561)
+#26302 := (= #3011 #26368)
+#26346 := (uf_66 #23223 0::int #24114)
+#26371 := (= #26346 #26368)
+#26374 := (not #26371)
+decl uf_139 :: (-> T5 T5 T2)
+#26347 := (uf_139 #26346 #23223)
+#26354 := (= uf_9 #26347)
+#26355 := (not #26354)
+#26380 := (or #26355 #26374)
+#26385 := (not #26380)
+#247 := (:var 1 int)
+#1568 := (uf_66 #24 #247 #233)
+#1569 := (pattern #1568)
+#1576 := (uf_139 #1568 #24)
+#8688 := (= uf_9 #1576)
+#21652 := (not #8688)
+#1571 := (uf_138 #233)
+#1570 := (uf_116 #24)
+#8678 := (+ #1570 #1571)
+#8679 := (+ #247 #8678)
+#8682 := (uf_43 #233 #8679)
+#8685 := (= #1568 #8682)
+#21651 := (not #8685)
+#21653 := (or #21651 #21652)
+#21654 := (not #21653)
+#21657 := (forall (vars (?x375 T5) (?x376 int) (?x377 T3)) (:pat #1569) #21654)
+#8691 := (and #8685 #8688)
+#8694 := (forall (vars (?x375 T5) (?x376 int) (?x377 T3)) (:pat #1569) #8691)
+#21658 := (iff #8694 #21657)
+#21655 := (iff #8691 #21654)
+#21656 := [rewrite]: #21655
+#21659 := [quant-intro #21656]: #21658
+#17817 := (~ #8694 #8694)
+#17815 := (~ #8691 #8691)
+#17816 := [refl]: #17815
+#17818 := [nnf-pos #17816]: #17817
+#1577 := (= #1576 uf_9)
+#1572 := (+ #247 #1571)
+#1573 := (+ #1570 #1572)
+#1574 := (uf_43 #233 #1573)
+#1575 := (= #1568 #1574)
+#1578 := (and #1575 #1577)
+#1579 := (forall (vars (?x375 T5) (?x376 int) (?x377 T3)) (:pat #1569) #1578)
+#8695 := (iff #1579 #8694)
+#8692 := (iff #1578 #8691)
+#8689 := (iff #1577 #8688)
+#8690 := [rewrite]: #8689
+#8686 := (iff #1575 #8685)
+#8683 := (= #1574 #8682)
+#8680 := (= #1573 #8679)
+#8681 := [rewrite]: #8680
+#8684 := [monotonicity #8681]: #8683
+#8687 := [monotonicity #8684]: #8686
+#8693 := [monotonicity #8687 #8690]: #8692
+#8696 := [quant-intro #8693]: #8695
+#8677 := [asserted]: #1579
+#8699 := [mp #8677 #8696]: #8694
+#17819 := [mp~ #8699 #17818]: #8694
+#21660 := [mp #17819 #21659]: #21657
+#26114 := (not #21657)
+#26115 := (or #26114 #26385)
+#26358 := (+ #26357 #26356)
+#26359 := (+ 0::int #26358)
+#26360 := (uf_43 #24114 #26359)
+#26361 := (= #26346 #26360)
+#26362 := (not #26361)
+#26363 := (or #26362 #26355)
+#26364 := (not #26363)
+#26116 := (or #26114 #26364)
+#26122 := (iff #26116 #26115)
+#26125 := (iff #26115 #26115)
+#26126 := [rewrite]: #26125
+#26386 := (iff #26364 #26385)
+#26383 := (iff #26363 #26380)
+#26377 := (or #26374 #26355)
+#26381 := (iff #26377 #26380)
+#26382 := [rewrite]: #26381
+#26378 := (iff #26363 #26377)
+#26375 := (iff #26362 #26374)
+#26372 := (iff #26361 #26371)
+#26369 := (= #26360 #26368)
+#26366 := (= #26359 #26365)
+#26367 := [rewrite]: #26366
+#26370 := [monotonicity #26367]: #26369
+#26373 := [monotonicity #26370]: #26372
+#26376 := [monotonicity #26373]: #26375
+#26379 := [monotonicity #26376]: #26378
+#26384 := [trans #26379 #26382]: #26383
+#26387 := [monotonicity #26384]: #26386
+#26124 := [monotonicity #26387]: #26122
+#26127 := [trans #26124 #26126]: #26122
+#26117 := [quant-inst]: #26116
+#26128 := [mp #26117 #26127]: #26115
+#26282 := [unit-resolution #26128 #21660]: #26385
+#26130 := (or #26380 #26371)
+#26131 := [def-axiom]: #26130
+#26283 := [unit-resolution #26131 #26282]: #26371
+#26285 := (= #3011 #26346)
+#24115 := (= uf_7 #24114)
+#1349 := (uf_124 #326 #161)
+#1584 := (pattern #1349)
+#1597 := (uf_144 #1349)
+#8734 := (= #326 #1597)
+#8738 := (forall (vars (?x388 T3) (?x389 int)) (:pat #1584) #8734)
+#17847 := (~ #8738 #8738)
+#17845 := (~ #8734 #8734)
+#17846 := [refl]: #17845
+#17848 := [nnf-pos #17846]: #17847
+#1598 := (= #1597 #326)
+#1599 := (forall (vars (?x388 T3) (?x389 int)) (:pat #1584) #1598)
+#8739 := (iff #1599 #8738)
+#8736 := (iff #1598 #8734)
+#8737 := [rewrite]: #8736
+#8740 := [quant-intro #8737]: #8739
+#8733 := [asserted]: #1599
+#8743 := [mp #8733 #8740]: #8738
+#17849 := [mp~ #8743 #17848]: #8738
+#24118 := (not #8738)
+#24119 := (or #24118 #24115)
+#24120 := [quant-inst]: #24119
+#27681 := [unit-resolution #24120 #17849]: #24115
+#23226 := (= #2960 #23223)
+#93 := (uf_29 #26)
+#23593 := (pattern #93)
+#94 := (uf_28 #93)
+#3575 := (= #26 #94)
+#23594 := (forall (vars (?x14 T5)) (:pat #23593) #3575)
+#3578 := (forall (vars (?x14 T5)) #3575)
+#23595 := (iff #3578 #23594)
+#23597 := (iff #23594 #23594)
+#23598 := [rewrite]: #23597
+#23596 := [rewrite]: #23595
+#23599 := [trans #23596 #23598]: #23595
+#16790 := (~ #3578 #3578)
+#16780 := (~ #3575 #3575)
+#16781 := [refl]: #16780
+#16851 := [nnf-pos #16781]: #16790
+#95 := (= #94 #26)
+#96 := (forall (vars (?x14 T5)) #95)
+#3579 := (iff #96 #3578)
+#3576 := (iff #95 #3575)
+#3577 := [rewrite]: #3576
+#3580 := [quant-intro #3577]: #3579
+#3574 := [asserted]: #96
+#3583 := [mp #3574 #3580]: #3578
+#16852 := [mp~ #3583 #16851]: #3578
+#23600 := [mp #16852 #23599]: #23594
+#23217 := (not #23594)
+#23220 := (or #23217 #23226)
+#23215 := [quant-inst]: #23220
+#26284 := [unit-resolution #23215 #23600]: #23226
+#26286 := [monotonicity #26284 #27681]: #26285
+#26303 := [trans #26286 #26283]: #26302
+#26305 := [monotonicity #26303]: #26304
+#26309 := [symm #26305]: #26308
+#26562 := (= #24114 #26561)
+#26231 := (or #24181 #26562)
+#26232 := [quant-inst]: #26231
+#26276 := [unit-resolution #26232 #23694]: #26562
+#26310 := [trans #26276 #26309]: #26288
+#26075 := (not #26288)
+#26256 := [hypothesis]: #26290
+#26268 := (not #26264)
+#26278 := (iff #18900 #26268)
+#26267 := (iff #12361 #26264)
+#26265 := (iff #26264 #12361)
+#26258 := (= #26263 #3014)
+#27682 := (= #24114 uf_7)
+#27683 := [symm #27681]: #27682
+#26259 := [monotonicity #27683]: #26258
+#26266 := [monotonicity #26259]: #26265
+#26277 := [symm #26266]: #26267
+#26279 := [monotonicity #26277]: #26278
+#26257 := [hypothesis]: #18900
+#26280 := [mp #26257 #26279]: #26268
+#26106 := (or #26074 #26264 #26075)
+#26108 := [def-axiom]: #26106
+#26281 := [unit-resolution #26108 #26280 #26256]: #26075
+#26311 := [unit-resolution #26281 #26310]: false
+#26295 := [lemma #26311]: #26294
+#27925 := [unit-resolution #26295 #26214]: #12361
+#27926 := [hypothesis]: #23981
+#23241 := (or #23978 #23972)
+#23222 := [def-axiom]: #23241
+#27936 := [unit-resolution #23222 #27926]: #23972
+decl uf_13 :: (-> T5 T6 T2)
+decl uf_10 :: (-> T4 T5 T6)
+#26039 := (uf_10 uf_273 #25404)
+decl uf_143 :: (-> T3 int)
+#24116 := (uf_143 #2952)
+#26431 := (uf_124 #24114 #24116)
+#26432 := (uf_43 #26431 #2961)
+#26521 := (uf_13 #26432 #26039)
+#26522 := (= uf_9 #26521)
+#26040 := (uf_13 #25404 #26039)
+#27955 := (= #26040 #26521)
+#27949 := (= #26521 #26040)
+#27947 := (= #26432 #25404)
+#27934 := (= #26432 #2962)
+#27932 := (= #26431 #2952)
+#27923 := (= #24116 uf_272)
+#24117 := (= uf_272 #24116)
+#1594 := (uf_143 #1349)
+#8727 := (= #161 #1594)
+#8730 := (forall (vars (?x386 T3) (?x387 int)) (:pat #1584) #8727)
+#17842 := (~ #8730 #8730)
+#17840 := (~ #8727 #8727)
+#17841 := [refl]: #17840
+#17843 := [nnf-pos #17841]: #17842
+#1595 := (= #1594 #161)
+#1596 := (forall (vars (?x386 T3) (?x387 int)) (:pat #1584) #1595)
+#8731 := (iff #1596 #8730)
+#8728 := (iff #1595 #8727)
+#8729 := [rewrite]: #8728
+#8732 := [quant-intro #8729]: #8731
+#8726 := [asserted]: #1596
+#8735 := [mp #8726 #8732]: #8730
+#17844 := [mp~ #8735 #17843]: #8730
+#24123 := (not #8730)
+#24124 := (or #24123 #24117)
+#24125 := [quant-inst]: #24124
+#27703 := [unit-resolution #24125 #17844]: #24117
+#27931 := [symm #27703]: #27923
+#27933 := [monotonicity #27683 #27931]: #27932
+#27935 := [monotonicity #27933]: #27934
+#27948 := [trans #27935 #27939]: #27947
+#27950 := [monotonicity #27948]: #27949
+#27953 := [symm #27950]: #27955
+#26041 := (= uf_9 #26040)
+decl uf_53 :: (-> T4 T5 T6)
+#26030 := (uf_53 uf_273 #25404)
+#26031 := (uf_13 #26 #26030)
+#26036 := (pattern #26031)
+decl up_197 :: (-> T3 bool)
+#26034 := (up_197 #25815)
+#26032 := (= uf_9 #26031)
+#26033 := (not #26032)
+decl uf_147 :: (-> T5 T6 T2)
+decl uf_192 :: (-> T7 T6)
+decl uf_12 :: (-> T4 T5 T7)
+#26026 := (uf_12 uf_273 #25404)
+#26027 := (uf_192 #26026)
+#26028 := (uf_147 #26 #26027)
+#26029 := (= uf_9 #26028)
+#26046 := (or #26029 #26033 #26034)
+#26049 := (forall (vars (?x577 T5)) (:pat #26036) #26046)
+#26052 := (not #26049)
+#26042 := (not #26041)
+#26055 := (or #25880 #26042 #26052)
+#26058 := (not #26055)
+#27945 := (= #3009 #25982)
+#27946 := [symm #27943]: #27945
+#23240 := (or #23978 #12355)
+#23229 := [def-axiom]: #23240
+#27938 := [unit-resolution #23229 #27926]: #12355
+#27924 := [trans #27938 #27946]: #25983
+#25988 := (or #26022 #25981 #25999)
+#26021 := [def-axiom]: #25988
+#27927 := [unit-resolution #26021 #27924 #27937]: #25981
+#26061 := (or #26002 #26058)
+#14 := (:var 2 T4)
+#2162 := (uf_196 #14 #15 #26)
+#2223 := (pattern #2162)
+#2224 := (uf_53 #13 #24)
+#2225 := (uf_13 #26 #2224)
+#2226 := (pattern #2225)
+#2154 := (uf_12 #13 #15)
+#2231 := (uf_192 #2154)
+#2232 := (uf_147 #26 #2231)
+#10478 := (= uf_9 #2232)
+#10467 := (= uf_9 #2225)
+#22343 := (not #10467)
+#1373 := (uf_15 #24)
+#2228 := (up_197 #1373)
+#22358 := (or #2228 #22343 #10478)
+#22363 := (forall (vars (?x577 T5)) (:pat #2226) #22358)
+#22369 := (not #22363)
+#2140 := (uf_10 #14 #26)
+#2141 := (uf_13 #15 #2140)
+#10170 := (= uf_9 #2141)
+#22177 := (not #10170)
+#180 := (uf_24 #14 #15)
+#3758 := (= uf_9 #180)
+#10821 := (not #3758)
+#22370 := (or #10821 #22177 #22369)
+#22371 := (not #22370)
+#10219 := (= uf_9 #2162)
+#10502 := (not #10219)
+#22376 := (or #10502 #22371)
+#22379 := (forall (vars (?x574 T4) (?x575 T5) (?x576 T5)) (:pat #2223) #22376)
+#2229 := (not #2228)
+#10473 := (and #2229 #10467)
+#10484 := (not #10473)
+#10485 := (or #10484 #10478)
+#10490 := (forall (vars (?x577 T5)) (:pat #2226) #10485)
+#10511 := (and #3758 #10170 #10490)
+#10514 := (or #10502 #10511)
+#10517 := (forall (vars (?x574 T4) (?x575 T5) (?x576 T5)) (:pat #2223) #10514)
+#22380 := (iff #10517 #22379)
+#22377 := (iff #10514 #22376)
+#22374 := (iff #10511 #22371)
+#22366 := (and #3758 #10170 #22363)
+#22372 := (iff #22366 #22371)
+#22373 := [rewrite]: #22372
+#22367 := (iff #10511 #22366)
+#22364 := (iff #10490 #22363)
+#22361 := (iff #10485 #22358)
+#22344 := (or #2228 #22343)
+#22355 := (or #22344 #10478)
+#22359 := (iff #22355 #22358)
+#22360 := [rewrite]: #22359
+#22356 := (iff #10485 #22355)
+#22353 := (iff #10484 #22344)
+#22345 := (not #22344)
+#22348 := (not #22345)
+#22351 := (iff #22348 #22344)
+#22352 := [rewrite]: #22351
+#22349 := (iff #10484 #22348)
+#22346 := (iff #10473 #22345)
+#22347 := [rewrite]: #22346
+#22350 := [monotonicity #22347]: #22349
+#22354 := [trans #22350 #22352]: #22353
+#22357 := [monotonicity #22354]: #22356
+#22362 := [trans #22357 #22360]: #22361
+#22365 := [quant-intro #22362]: #22364
+#22368 := [monotonicity #22365]: #22367
+#22375 := [trans #22368 #22373]: #22374
+#22378 := [monotonicity #22375]: #22377
+#22381 := [quant-intro #22378]: #22380
+#18361 := (~ #10517 #10517)
+#18359 := (~ #10514 #10514)
+#18357 := (~ #10511 #10511)
+#18355 := (~ #10490 #10490)
+#18353 := (~ #10485 #10485)
+#18354 := [refl]: #18353
+#18356 := [nnf-pos #18354]: #18355
+#18351 := (~ #10170 #10170)
+#18352 := [refl]: #18351
+#18349 := (~ #3758 #3758)
+#18350 := [refl]: #18349
+#18358 := [monotonicity #18350 #18352 #18356]: #18357
+#18347 := (~ #10502 #10502)
+#18348 := [refl]: #18347
+#18360 := [monotonicity #18348 #18358]: #18359
+#18362 := [nnf-pos #18360]: #18361
+#2145 := (= #2141 uf_9)
+#184 := (= #180 uf_9)
+#2236 := (and #184 #2145)
+#2233 := (= #2232 uf_9)
+#2227 := (= #2225 uf_9)
+#2230 := (and #2227 #2229)
+#2234 := (implies #2230 #2233)
+#2235 := (forall (vars (?x577 T5)) (:pat #2226) #2234)
+#2237 := (and #2235 #2236)
+#2163 := (= #2162 uf_9)
+#2238 := (implies #2163 #2237)
+#2239 := (forall (vars (?x574 T4) (?x575 T5) (?x576 T5)) (:pat #2223) #2238)
+#10520 := (iff #2239 #10517)
+#10493 := (and #3758 #10170)
+#10496 := (and #10490 #10493)
+#10503 := (or #10502 #10496)
+#10508 := (forall (vars (?x574 T4) (?x575 T5) (?x576 T5)) (:pat #2223) #10503)
+#10518 := (iff #10508 #10517)
+#10515 := (iff #10503 #10514)
+#10512 := (iff #10496 #10511)
+#10513 := [rewrite]: #10512
+#10516 := [monotonicity #10513]: #10515
+#10519 := [quant-intro #10516]: #10518
+#10509 := (iff #2239 #10508)
+#10506 := (iff #2238 #10503)
+#10499 := (implies #10219 #10496)
+#10504 := (iff #10499 #10503)
+#10505 := [rewrite]: #10504
+#10500 := (iff #2238 #10499)
+#10497 := (iff #2237 #10496)
+#10494 := (iff #2236 #10493)
+#10171 := (iff #2145 #10170)
+#10172 := [rewrite]: #10171
+#3759 := (iff #184 #3758)
+#3760 := [rewrite]: #3759
+#10495 := [monotonicity #3760 #10172]: #10494
+#10491 := (iff #2235 #10490)
+#10488 := (iff #2234 #10485)
+#10481 := (implies #10473 #10478)
+#10486 := (iff #10481 #10485)
+#10487 := [rewrite]: #10486
+#10482 := (iff #2234 #10481)
+#10479 := (iff #2233 #10478)
+#10480 := [rewrite]: #10479
+#10476 := (iff #2230 #10473)
+#10470 := (and #10467 #2229)
+#10474 := (iff #10470 #10473)
+#10475 := [rewrite]: #10474
+#10471 := (iff #2230 #10470)
+#10468 := (iff #2227 #10467)
+#10469 := [rewrite]: #10468
+#10472 := [monotonicity #10469]: #10471
+#10477 := [trans #10472 #10475]: #10476
+#10483 := [monotonicity #10477 #10480]: #10482
+#10489 := [trans #10483 #10487]: #10488
+#10492 := [quant-intro #10489]: #10491
+#10498 := [monotonicity #10492 #10495]: #10497
+#10220 := (iff #2163 #10219)
+#10221 := [rewrite]: #10220
+#10501 := [monotonicity #10221 #10498]: #10500
+#10507 := [trans #10501 #10505]: #10506
+#10510 := [quant-intro #10507]: #10509
+#10521 := [trans #10510 #10519]: #10520
+#10466 := [asserted]: #2239
+#10522 := [mp #10466 #10521]: #10517
+#18363 := [mp~ #10522 #18362]: #10517
+#22382 := [mp #18363 #22381]: #22379
+#26123 := (not #22379)
+#26129 := (or #26123 #26002 #26058)
+#26035 := (or #26034 #26033 #26029)
+#26037 := (forall (vars (?x577 T5)) (:pat #26036) #26035)
+#26038 := (not #26037)
+#26043 := (or #25880 #26042 #26038)
+#26044 := (not #26043)
+#26045 := (or #26002 #26044)
+#26132 := (or #26123 #26045)
+#26147 := (iff #26132 #26129)
+#26144 := (or #26123 #26061)
+#26145 := (iff #26144 #26129)
+#26146 := [rewrite]: #26145
+#26142 := (iff #26132 #26144)
+#26062 := (iff #26045 #26061)
+#26059 := (iff #26044 #26058)
+#26056 := (iff #26043 #26055)
+#26053 := (iff #26038 #26052)
+#26050 := (iff #26037 #26049)
+#26047 := (iff #26035 #26046)
+#26048 := [rewrite]: #26047
+#26051 := [quant-intro #26048]: #26050
+#26054 := [monotonicity #26051]: #26053
+#26057 := [monotonicity #26054]: #26056
+#26060 := [monotonicity #26057]: #26059
+#26063 := [monotonicity #26060]: #26062
+#26143 := [monotonicity #26063]: #26142
+#26148 := [trans #26143 #26146]: #26147
+#26133 := [quant-inst]: #26132
+#26149 := [mp #26133 #26148]: #26129
+#27928 := [unit-resolution #26149 #22382]: #26061
+#27929 := [unit-resolution #27928 #27927]: #26058
+#26216 := (or #26055 #26041)
+#26217 := [def-axiom]: #26216
+#27930 := [unit-resolution #26217 #27929]: #26041
+#27956 := [trans #27930 #27953]: #26522
+#26523 := (not #26522)
+#26711 := (or #12358 #26523)
+#26511 := (uf_43 #24114 #2961)
+#26512 := (uf_66 #26511 0::int #24114)
+#26513 := (uf_27 uf_273 #26512)
+#26514 := (= uf_9 #26513)
+#26515 := (not #26514)
+#26678 := (iff #18897 #26515)
+#26674 := (iff #12358 #26514)
+#26675 := (iff #26514 #12358)
+#26687 := (= #26513 #3012)
+#26683 := (= #26512 #3011)
+#27689 := (= #26511 #2960)
+#27687 := (= #2961 uf_274)
+#24233 := (= uf_274 #2961)
+#2693 := (uf_116 #2692)
+#11669 := (= #161 #2693)
+#23683 := (forall (vars (?x718 T3) (?x719 int)) (:pat #23682) #11669)
+#11673 := (forall (vars (?x718 T3) (?x719 int)) #11669)
+#23686 := (iff #11673 #23683)
+#23684 := (iff #11669 #11669)
+#23685 := [refl]: #23684
+#23687 := [quant-intro #23685]: #23686
+#18754 := (~ #11673 #11673)
+#18752 := (~ #11669 #11669)
+#18753 := [refl]: #18752
+#18755 := [nnf-pos #18753]: #18754
+#2694 := (= #2693 #161)
+#2695 := (forall (vars (?x718 T3) (?x719 int)) #2694)
+#11674 := (iff #2695 #11673)
+#11671 := (iff #2694 #11669)
+#11672 := [rewrite]: #11671
+#11675 := [quant-intro #11672]: #11674
+#11668 := [asserted]: #2695
+#11678 := [mp #11668 #11675]: #11673
+#18756 := [mp~ #11678 #18755]: #11673
+#23688 := [mp #18756 #23687]: #23683
+#24187 := (not #23683)
+#24238 := (or #24187 #24233)
+#24239 := [quant-inst]: #24238
+#27686 := [unit-resolution #24239 #23688]: #24233
+#27688 := [symm #27686]: #27687
+#27690 := [monotonicity #27683 #27688]: #27689
+#26686 := [monotonicity #27690 #27683]: #26683
+#26688 := [monotonicity #26686]: #26687
+#26676 := [monotonicity #26688]: #26675
+#26677 := [symm #26676]: #26674
+#26679 := [monotonicity #26677]: #26678
+#26638 := [hypothesis]: #18897
+#26680 := [mp #26638 #26679]: #26515
+#26516 := (uf_58 #3079 #26512)
+#26517 := (uf_135 #26516)
+#26518 := (= uf_9 #26517)
+#26528 := (or #26515 #26518)
+#26531 := (not #26528)
+decl uf_23 :: (-> T3 T2)
+#26524 := (uf_23 #24114)
+#26525 := (= uf_9 #26524)
+#2778 := (uf_23 uf_7)
+#27721 := (= #2778 #26524)
+#27718 := (= #26524 #2778)
+#27719 := [monotonicity #27683]: #27718
+#27722 := [symm #27719]: #27721
+#11835 := (= uf_9 #2778)
+#2779 := (= #2778 uf_9)
+#11837 := (iff #2779 #11835)
+#11838 := [rewrite]: #11837
+#11834 := [asserted]: #2779
+#11841 := [mp #11834 #11838]: #11835
+#27723 := [trans #11841 #27722]: #26525
+#26526 := (not #26525)
+#26708 := (or #26526 #26531)
+#27724 := [hypothesis]: #26522
+#26469 := (<= #24116 0::int)
+#26682 := (not #26469)
+#14790 := [not-or-elim #14776]: #13943
+#26452 := (* -1::int #24116)
+#26584 := (+ uf_272 #26452)
+#26585 := (<= #26584 0::int)
+#27704 := (not #24117)
+#27705 := (or #27704 #26585)
+#27706 := [th-lemma]: #27705
+#27707 := [unit-resolution #27706 #27703]: #26585
+#27713 := (not #26585)
+#26698 := (or #26682 #13942 #27713)
+#26699 := [th-lemma]: #26698
+#26707 := [unit-resolution #26699 #27707 #14790]: #26682
+#237 := (uf_23 #233)
+#758 := (:var 4 int)
+#2062 := (uf_43 #233 #758)
+#2063 := (uf_66 #2062 #247 #233)
+#1364 := (:var 5 T4)
+#2080 := (uf_25 #1364 #2063)
+#1356 := (:var 3 T5)
+#2060 := (uf_10 #1364 #1356)
+#268 := (:var 2 int)
+#2058 := (uf_124 #233 #268)
+#2059 := (uf_43 #2058 #758)
+#2061 := (uf_13 #2059 #2060)
+#2081 := (pattern #2061 #2080 #237)
+#1535 := (uf_59 #1364)
+#2078 := (uf_58 #1535 #2063)
+#2079 := (pattern #2061 #2078 #237)
+#2085 := (uf_27 #1364 #2063)
+#9989 := (= uf_9 #2085)
+#22088 := (not #9989)
+#2082 := (uf_135 #2078)
+#9983 := (= uf_9 #2082)
+#22089 := (or #9983 #22088)
+#22090 := (not #22089)
+#2067 := (uf_55 #1364)
+#9932 := (= uf_9 #2067)
+#22064 := (not #9932)
+#9929 := (= uf_9 #2061)
+#22063 := (not #9929)
+#4079 := (* -1::int #268)
+#6249 := (+ #247 #4079)
+#6838 := (>= #6249 0::int)
+#4346 := (>= #247 0::int)
+#20033 := (not #4346)
+#3963 := (= uf_9 #237)
+#10698 := (not #3963)
+#22096 := (or #10698 #20033 #6838 #22063 #22064 #22090)
+#22101 := (forall (vars (?x526 T4) (?x527 int) (?x528 T5) (?x529 int) (?x530 int) (?x531 T3)) (:pat #2079 #2081) #22096)
+#9986 := (not #9983)
+#9992 := (and #9986 #9989)
+#8189 := (not #6838)
+#9965 := (and #3963 #4346 #8189 #9929 #9932)
+#9970 := (not #9965)
+#10006 := (or #9970 #9992)
+#10009 := (forall (vars (?x526 T4) (?x527 int) (?x528 T5) (?x529 int) (?x530 int) (?x531 T3)) (:pat #2079 #2081) #10006)
+#22102 := (iff #10009 #22101)
+#22099 := (iff #10006 #22096)
+#22065 := (or #10698 #20033 #6838 #22063 #22064)
+#22093 := (or #22065 #22090)
+#22097 := (iff #22093 #22096)
+#22098 := [rewrite]: #22097
+#22094 := (iff #10006 #22093)
+#22091 := (iff #9992 #22090)
+#22092 := [rewrite]: #22091
+#22074 := (iff #9970 #22065)
+#22066 := (not #22065)
+#22069 := (not #22066)
+#22072 := (iff #22069 #22065)
+#22073 := [rewrite]: #22072
+#22070 := (iff #9970 #22069)
+#22067 := (iff #9965 #22066)
+#22068 := [rewrite]: #22067
+#22071 := [monotonicity #22068]: #22070
+#22075 := [trans #22071 #22073]: #22074
+#22095 := [monotonicity #22075 #22092]: #22094
+#22100 := [trans #22095 #22098]: #22099
+#22103 := [quant-intro #22100]: #22102
+#18227 := (~ #10009 #10009)
+#18225 := (~ #10006 #10006)
+#18226 := [refl]: #18225
+#18228 := [nnf-pos #18226]: #18227
+#2086 := (= #2085 uf_9)
+#2083 := (= #2082 uf_9)
+#2084 := (not #2083)
+#2087 := (and #2084 #2086)
+#2068 := (= #2067 uf_9)
+#238 := (= #237 uf_9)
+#2069 := (and #238 #2068)
+#2066 := (= #2061 uf_9)
+#2070 := (and #2066 #2069)
+#400 := (<= 0::int #247)
+#2071 := (and #400 #2070)
+#1425 := (< #247 #268)
+#2072 := (and #1425 #2071)
+#2088 := (implies #2072 #2087)
+#2089 := (forall (vars (?x526 T4) (?x527 int) (?x528 T5) (?x529 int) (?x530 int) (?x531 T3)) (:pat #2079 #2081) #2088)
+#10012 := (iff #2089 #10009)
+#9935 := (and #3963 #9932)
+#9938 := (and #9929 #9935)
+#9941 := (and #400 #9938)
+#9944 := (and #1425 #9941)
+#9950 := (not #9944)
+#9998 := (or #9950 #9992)
+#10003 := (forall (vars (?x526 T4) (?x527 int) (?x528 T5) (?x529 int) (?x530 int) (?x531 T3)) (:pat #2079 #2081) #9998)
+#10010 := (iff #10003 #10009)
+#10007 := (iff #9998 #10006)
+#9971 := (iff #9950 #9970)
+#9968 := (iff #9944 #9965)
+#9959 := (and #4346 #9938)
+#9962 := (and #8189 #9959)
+#9966 := (iff #9962 #9965)
+#9967 := [rewrite]: #9966
+#9963 := (iff #9944 #9962)
+#9960 := (iff #9941 #9959)
+#4345 := (iff #400 #4346)
+#4347 := [rewrite]: #4345
+#9961 := [monotonicity #4347]: #9960
+#8190 := (iff #1425 #8189)
+#8191 := [rewrite]: #8190
+#9964 := [monotonicity #8191 #9961]: #9963
+#9969 := [trans #9964 #9967]: #9968
+#9972 := [monotonicity #9969]: #9971
+#10008 := [monotonicity #9972]: #10007
+#10011 := [quant-intro #10008]: #10010
+#10004 := (iff #2089 #10003)
+#10001 := (iff #2088 #9998)
+#9995 := (implies #9944 #9992)
+#9999 := (iff #9995 #9998)
+#10000 := [rewrite]: #9999
+#9996 := (iff #2088 #9995)
+#9993 := (iff #2087 #9992)
+#9990 := (iff #2086 #9989)
+#9991 := [rewrite]: #9990
+#9987 := (iff #2084 #9986)
+#9984 := (iff #2083 #9983)
+#9985 := [rewrite]: #9984
+#9988 := [monotonicity #9985]: #9987
+#9994 := [monotonicity #9988 #9991]: #9993
+#9945 := (iff #2072 #9944)
+#9942 := (iff #2071 #9941)
+#9939 := (iff #2070 #9938)
+#9936 := (iff #2069 #9935)
+#9933 := (iff #2068 #9932)
+#9934 := [rewrite]: #9933
+#3964 := (iff #238 #3963)
+#3965 := [rewrite]: #3964
+#9937 := [monotonicity #3965 #9934]: #9936
+#9930 := (iff #2066 #9929)
+#9931 := [rewrite]: #9930
+#9940 := [monotonicity #9931 #9937]: #9939
+#9943 := [monotonicity #9940]: #9942
+#9946 := [monotonicity #9943]: #9945
+#9997 := [monotonicity #9946 #9994]: #9996
+#10002 := [trans #9997 #10000]: #10001
+#10005 := [quant-intro #10002]: #10004
+#10013 := [trans #10005 #10011]: #10012
+#9982 := [asserted]: #2089
+#10014 := [mp #9982 #10013]: #10009
+#18229 := [mp~ #10014 #18228]: #10009
+#22104 := [mp #18229 #22103]: #22101
+#26542 := (not #22101)
+#26613 := (or #26542 #23209 #26469 #26523 #26526 #26531)
+#26519 := (or #26518 #26515)
+#26520 := (not #26519)
+#26453 := (+ 0::int #26452)
+#26454 := (>= #26453 0::int)
+#26455 := (>= 0::int 0::int)
+#26456 := (not #26455)
+#26527 := (or #26526 #26456 #26454 #26523 #23209 #26520)
+#26614 := (or #26542 #26527)
+#26601 := (iff #26614 #26613)
+#26537 := (or #23209 #26469 #26523 #26526 #26531)
+#26616 := (or #26542 #26537)
+#26619 := (iff #26616 #26613)
+#26620 := [rewrite]: #26619
+#26617 := (iff #26614 #26616)
+#26540 := (iff #26527 #26537)
+#26534 := (or #26526 false #26469 #26523 #23209 #26531)
+#26538 := (iff #26534 #26537)
+#26539 := [rewrite]: #26538
+#26535 := (iff #26527 #26534)
+#26532 := (iff #26520 #26531)
+#26529 := (iff #26519 #26528)
+#26530 := [rewrite]: #26529
+#26533 := [monotonicity #26530]: #26532
+#26472 := (iff #26454 #26469)
+#26466 := (>= #26452 0::int)
+#26470 := (iff #26466 #26469)
+#26471 := [rewrite]: #26470
+#26467 := (iff #26454 #26466)
+#26464 := (= #26453 #26452)
+#26465 := [rewrite]: #26464
+#26468 := [monotonicity #26465]: #26467
+#26473 := [trans #26468 #26471]: #26472
+#26462 := (iff #26456 false)
+#26460 := (iff #26456 #3294)
+#26458 := (iff #26455 true)
+#26459 := [rewrite]: #26458
+#26461 := [monotonicity #26459]: #26460
+#26463 := [trans #26461 #13445]: #26462
+#26536 := [monotonicity #26463 #26473 #26533]: #26535
+#26541 := [trans #26536 #26539]: #26540
+#26618 := [monotonicity #26541]: #26617
+#26602 := [trans #26618 #26620]: #26601
+#26615 := [quant-inst]: #26614
+#26603 := [mp #26615 #26602]: #26613
+#26706 := [unit-resolution #26603 #22104 #14784 #26707 #27724]: #26708
+#26709 := [unit-resolution #26706 #27723]: #26531
+#26604 := (or #26528 #26514)
+#26605 := [def-axiom]: #26604
+#26710 := [unit-resolution #26605 #26709 #26680]: false
+#26712 := [lemma #26710]: #26711
+#27952 := [unit-resolution #26712 #27956]: #12358
+#23238 := (or #23975 #18897 #18900 #23969)
+#23239 := [def-axiom]: #23238
+#27957 := [unit-resolution #23239 #27952 #27925 #27936]: #23969
+#23252 := (or #23966 #23960)
+#23263 := [def-axiom]: #23252
+#27958 := [unit-resolution #23263 #27957]: #23960
+#23245 := (or #23963 #18900 #18906 #23957)
+#23258 := [def-axiom]: #23245
+#27959 := [unit-resolution #23258 #27958 #27925 #27858]: #18906
+#27024 := (or #27023 #12367 #26819)
+#27025 := [def-axiom]: #27024
+#27961 := [unit-resolution #27025 #27959]: #27960
+#27962 := [unit-resolution #27961 #27857]: #26819
+#27902 := (or #26823 #26812)
+#26997 := (or #26823 #18897 #26812)
+#26998 := [def-axiom]: #26997
+#27904 := [unit-resolution #26998 #27952]: #27902
+#27905 := [unit-resolution #27904 #27962]: #26812
+#26956 := (or #26809 #26796)
+#26991 := [def-axiom]: #26956
+#27903 := [unit-resolution #26991 #27905]: #26796
+#27585 := (not #26518)
+#27980 := (iff #27585 #26552)
+#27976 := (iff #26518 #26551)
+#27987 := (= #26517 #26546)
+#27910 := (= #26516 #26312)
+#27911 := [monotonicity #26686]: #27910
+#27988 := [monotonicity #27911]: #27987
+#27979 := [monotonicity #27988]: #27976
+#27981 := [monotonicity #27979]: #27980
+#27907 := [unit-resolution #26603 #22104 #14784 #26707 #27956]: #26708
+#27908 := [unit-resolution #27907 #27723]: #26531
+#27597 := (or #26528 #27585)
+#27598 := [def-axiom]: #27597
+#27909 := [unit-resolution #27598 #27908]: #27585
+#27982 := [mp #27909 #27981]: #26552
+#26910 := (or #26788 #26551)
+#26911 := [def-axiom]: #26910
+#27983 := [unit-resolution #26911 #27982]: #26788
+#24653 := (uf_14 uf_7)
+#27977 := (= #24653 #26634)
+#27985 := (= #26634 #24653)
+#27991 := (= #26287 uf_7)
+#27989 := (= #26287 #24114)
+#28002 := [mp #27925 #26277]: #26264
+#26014 := (or #26074 #26268 #26288)
+#26016 := [def-axiom]: #26014
+#27986 := [unit-resolution #26016 #28002 #26214]: #26288
+#27990 := [symm #27986]: #27989
+#27992 := [trans #27990 #27683]: #27991
+#27993 := [monotonicity #27992]: #27985
+#27978 := [symm #27993]: #27977
+#24654 := (= uf_16 #24653)
+#24661 := (iff #11835 #24654)
+#2303 := (pattern #237)
+#2831 := (uf_14 #233)
+#12008 := (= uf_16 #2831)
+#12012 := (iff #3963 #12008)
+#12015 := (forall (vars (?x761 T3)) (:pat #2303) #12012)
+#18854 := (~ #12015 #12015)
+#18852 := (~ #12012 #12012)
+#18853 := [refl]: #18852
+#18855 := [nnf-pos #18853]: #18854
+#2844 := (= #2831 uf_16)
+#2845 := (iff #238 #2844)
+#2846 := (forall (vars (?x761 T3)) (:pat #2303) #2845)
+#12016 := (iff #2846 #12015)
+#12013 := (iff #2845 #12012)
+#12010 := (iff #2844 #12008)
+#12011 := [rewrite]: #12010
+#12014 := [monotonicity #3965 #12011]: #12013
+#12017 := [quant-intro #12014]: #12016
+#12007 := [asserted]: #2846
+#12020 := [mp #12007 #12017]: #12015
+#18856 := [mp~ #12020 #18855]: #12015
+#24285 := (not #12015)
+#24664 := (or #24285 #24661)
+#24665 := [quant-inst]: #24664
+#27984 := [unit-resolution #24665 #18856]: #24661
+#24666 := (not #24661)
+#28001 := (or #24666 #24654)
+#24670 := (not #11835)
+#24671 := (or #24666 #24670 #24654)
+#24672 := [def-axiom]: #24671
+#28003 := [unit-resolution #24672 #11841]: #28001
+#28004 := [unit-resolution #28003 #27984]: #24654
+#28005 := [trans #28004 #27978]: #26726
+#26958 := (not #26629)
+#28390 := (iff #12299 #26958)
+#28388 := (iff #12296 #26629)
+#28355 := (iff #26629 #12296)
+#28362 := (= #26609 #2955)
+#28360 := (= #26608 #2952)
+#28357 := (= #26608 #24234)
+#28329 := (= #26553 #2962)
+#28302 := (= #26553 #26432)
+#26435 := (uf_66 #26432 0::int #24114)
+#26436 := (uf_58 #3079 #26435)
+#26437 := (uf_136 #26436)
+#28300 := (= #26437 #26432)
+#26438 := (= #26432 #26437)
+decl up_68 :: (-> T14 bool)
+#26445 := (up_68 #26436)
+#26446 := (not #26445)
+#26442 := (uf_27 uf_273 #26435)
+#26443 := (= uf_9 #26442)
+#26444 := (not #26443)
+#26440 := (uf_135 #26436)
+#26441 := (= uf_9 #26440)
+#26439 := (not #26438)
+#26474 := (or #26439 #26441 #26444 #26446)
+#26477 := (not #26474)
+#26449 := (uf_27 uf_273 #26432)
+#26450 := (= uf_9 #26449)
+#28032 := (= #2963 #26449)
+#28007 := (= #26449 #2963)
+#28013 := [monotonicity #27935]: #28007
+#28033 := [symm #28013]: #28032
+#28031 := [trans #14797 #28033]: #26450
+#26451 := (not #26450)
+#28034 := (or #26451 #26477)
+#276 := (:var 3 int)
+#310 := (:var 2 T3)
+#1463 := (uf_124 #310 #247)
+#1464 := (uf_43 #1463 #276)
+#1460 := (uf_43 #310 #276)
+#1461 := (uf_66 #1460 #161 #310)
+#38 := (:var 4 T4)
+#1466 := (uf_59 #38)
+#1467 := (uf_58 #1466 #1461)
+#1468 := (pattern #1467 #1464)
+#1459 := (uf_41 #38)
+#1462 := (uf_40 #1459 #1461)
+#1465 := (pattern #1462 #1464)
+#1471 := (uf_66 #1464 #161 #310)
+#1474 := (uf_58 #1466 #1471)
+#1479 := (uf_136 #1474)
+#8354 := (= #1464 #1479)
+#21428 := (not #8354)
+#1476 := (uf_135 #1474)
+#8348 := (= uf_9 #1476)
+#1472 := (uf_27 #38 #1471)
+#8345 := (= uf_9 #1472)
+#21427 := (not #8345)
+#1475 := (up_68 #1474)
+#21426 := (not #1475)
+#21429 := (or #21426 #21427 #8348 #21428)
+#21430 := (not #21429)
+#1469 := (uf_27 #38 #1464)
+#8342 := (= uf_9 #1469)
+#8377 := (not #8342)
+#5373 := (* -1::int #247)
+#6256 := (+ #161 #5373)
+#6255 := (>= #6256 0::int)
+#21436 := (or #5113 #6255 #8377 #21430)
+#21441 := (forall (vars (?x346 T4) (?x347 int) (?x348 T3) (?x349 int) (?x350 int)) (:pat #1465 #1468) #21436)
+#8351 := (not #8348)
+#8386 := (and #1475 #8345 #8351 #8354)
+#8026 := (not #6255)
+#8029 := (and #4084 #8026)
+#8032 := (not #8029)
+#8395 := (or #8032 #8377 #8386)
+#8400 := (forall (vars (?x346 T4) (?x347 int) (?x348 T3) (?x349 int) (?x350 int)) (:pat #1465 #1468) #8395)
+#21442 := (iff #8400 #21441)
+#21439 := (iff #8395 #21436)
+#21311 := (or #5113 #6255)
+#21433 := (or #21311 #8377 #21430)
+#21437 := (iff #21433 #21436)
+#21438 := [rewrite]: #21437
+#21434 := (iff #8395 #21433)
+#21431 := (iff #8386 #21430)
+#21432 := [rewrite]: #21431
+#21320 := (iff #8032 #21311)
+#21312 := (not #21311)
+#21315 := (not #21312)
+#21318 := (iff #21315 #21311)
+#21319 := [rewrite]: #21318
+#21316 := (iff #8032 #21315)
+#21313 := (iff #8029 #21312)
+#21314 := [rewrite]: #21313
+#21317 := [monotonicity #21314]: #21316
+#21321 := [trans #21317 #21319]: #21320
+#21435 := [monotonicity #21321 #21432]: #21434
+#21440 := [trans #21435 #21438]: #21439
+#21443 := [quant-intro #21440]: #21442
+#17588 := (~ #8400 #8400)
+#17586 := (~ #8395 #8395)
+#17587 := [refl]: #17586
+#17589 := [nnf-pos #17587]: #17588
+#1480 := (= #1479 #1464)
+#1477 := (= #1476 uf_9)
+#1478 := (not #1477)
+#1481 := (and #1478 #1480)
+#1482 := (and #1475 #1481)
+#1473 := (= #1472 uf_9)
+#1483 := (and #1473 #1482)
+#1362 := (< #161 #247)
+#1363 := (and #1362 #285)
+#1484 := (implies #1363 #1483)
+#1470 := (= #1469 uf_9)
+#1485 := (implies #1470 #1484)
+#1486 := (forall (vars (?x346 T4) (?x347 int) (?x348 T3) (?x349 int) (?x350 int)) (:pat #1465 #1468) #1485)
+#8403 := (iff #1486 #8400)
+#8357 := (and #8351 #8354)
+#8360 := (and #1475 #8357)
+#8363 := (and #8345 #8360)
+#7987 := (and #285 #1362)
+#7996 := (not #7987)
+#8369 := (or #7996 #8363)
+#8378 := (or #8377 #8369)
+#8383 := (forall (vars (?x346 T4) (?x347 int) (?x348 T3) (?x349 int) (?x350 int)) (:pat #1465 #1468) #8378)
+#8401 := (iff #8383 #8400)
+#8398 := (iff #8378 #8395)
+#8389 := (or #8032 #8386)
+#8392 := (or #8377 #8389)
+#8396 := (iff #8392 #8395)
+#8397 := [rewrite]: #8396
+#8393 := (iff #8378 #8392)
+#8390 := (iff #8369 #8389)
+#8387 := (iff #8363 #8386)
+#8388 := [rewrite]: #8387
+#8033 := (iff #7996 #8032)
+#8030 := (iff #7987 #8029)
+#8027 := (iff #1362 #8026)
+#8028 := [rewrite]: #8027
+#8031 := [monotonicity #4085 #8028]: #8030
+#8034 := [monotonicity #8031]: #8033
+#8391 := [monotonicity #8034 #8388]: #8390
+#8394 := [monotonicity #8391]: #8393
+#8399 := [trans #8394 #8397]: #8398
+#8402 := [quant-intro #8399]: #8401
+#8384 := (iff #1486 #8383)
+#8381 := (iff #1485 #8378)
+#8374 := (implies #8342 #8369)
+#8379 := (iff #8374 #8378)
+#8380 := [rewrite]: #8379
+#8375 := (iff #1485 #8374)
+#8372 := (iff #1484 #8369)
+#8366 := (implies #7987 #8363)
+#8370 := (iff #8366 #8369)
+#8371 := [rewrite]: #8370
+#8367 := (iff #1484 #8366)
+#8364 := (iff #1483 #8363)
+#8361 := (iff #1482 #8360)
+#8358 := (iff #1481 #8357)
+#8355 := (iff #1480 #8354)
+#8356 := [rewrite]: #8355
+#8352 := (iff #1478 #8351)
+#8349 := (iff #1477 #8348)
+#8350 := [rewrite]: #8349
+#8353 := [monotonicity #8350]: #8352
+#8359 := [monotonicity #8353 #8356]: #8358
+#8362 := [monotonicity #8359]: #8361
+#8346 := (iff #1473 #8345)
+#8347 := [rewrite]: #8346
+#8365 := [monotonicity #8347 #8362]: #8364
+#7988 := (iff #1363 #7987)
+#7989 := [rewrite]: #7988
+#8368 := [monotonicity #7989 #8365]: #8367
+#8373 := [trans #8368 #8371]: #8372
+#8343 := (iff #1470 #8342)
+#8344 := [rewrite]: #8343
+#8376 := [monotonicity #8344 #8373]: #8375
+#8382 := [trans #8376 #8380]: #8381
+#8385 := [quant-intro #8382]: #8384
+#8404 := [trans #8385 #8402]: #8403
+#8341 := [asserted]: #1486
+#8405 := [mp #8341 #8404]: #8400
+#17590 := [mp~ #8405 #17589]: #8400
+#21444 := [mp #17590 #21443]: #21441
+#27098 := (not #21441)
+#27099 := (or #27098 #26451 #26469 #26477)
+#26447 := (or #26446 #26444 #26441 #26439)
+#26448 := (not #26447)
+#26457 := (or #26456 #26454 #26451 #26448)
+#27111 := (or #27098 #26457)
+#27522 := (iff #27111 #27099)
+#26483 := (or #26451 #26469 #26477)
+#27450 := (or #27098 #26483)
+#27435 := (iff #27450 #27099)
+#27448 := [rewrite]: #27435
+#27451 := (iff #27111 #27450)
+#26486 := (iff #26457 #26483)
+#26480 := (or false #26469 #26451 #26477)
+#26484 := (iff #26480 #26483)
+#26485 := [rewrite]: #26484
+#26481 := (iff #26457 #26480)
+#26478 := (iff #26448 #26477)
+#26475 := (iff #26447 #26474)
+#26476 := [rewrite]: #26475
+#26479 := [monotonicity #26476]: #26478
+#26482 := [monotonicity #26463 #26473 #26479]: #26481
+#26487 := [trans #26482 #26485]: #26486
+#27428 := [monotonicity #26487]: #27451
+#27523 := [trans #27428 #27448]: #27522
+#27449 := [quant-inst]: #27111
+#27524 := [mp #27449 #27523]: #27099
+#28015 := [unit-resolution #27524 #21444 #26707]: #28034
+#28035 := [unit-resolution #28015 #28031]: #26477
+#27525 := (or #26474 #26438)
+#27526 := [def-axiom]: #27525
+#28036 := [unit-resolution #27526 #28035]: #26438
+#28301 := [symm #28036]: #28300
+#28299 := (= #26553 #26437)
+#28298 := (= #26312 #26436)
+#28308 := (= #26436 #26312)
+#28325 := (= #26435 #3011)
+#26269 := (uf_116 #3011)
+#26270 := (uf_43 #24114 #26269)
+#28320 := (= #26270 #3011)
+#26271 := (= #3011 #26270)
+#26500 := (or #25416 #26268 #26271)
+#26272 := (or #26271 #26268)
+#26501 := (or #25416 #26272)
+#26508 := (iff #26501 #26500)
+#26273 := (or #26268 #26271)
+#26503 := (or #25416 #26273)
+#26506 := (iff #26503 #26500)
+#26507 := [rewrite]: #26506
+#26504 := (iff #26501 #26503)
+#26274 := (iff #26272 #26273)
+#26275 := [rewrite]: #26274
+#26505 := [monotonicity #26275]: #26504
+#26509 := [trans #26505 #26507]: #26508
+#26502 := [quant-inst]: #26501
+#26396 := [mp #26502 #26509]: #26500
+#28037 := [unit-resolution #26396 #18736 #28002]: #26271
+#28321 := [symm #28037]: #28320
+#28324 := (= #26435 #26270)
+#26643 := (uf_116 #25404)
+#26651 := (+ #26356 #26643)
+#26654 := (uf_43 #24114 #26651)
+#28304 := (= #26654 #26270)
+#28237 := (= #26651 #26269)
+#26563 := (uf_116 #26368)
+#28283 := (= #26563 #26269)
+#28058 := (= #26368 #3011)
+#28056 := (= #26346 #3011)
+#28038 := (= #23223 #2960)
+#28039 := [symm #26284]: #28038
+#28057 := [monotonicity #28039 #27683]: #28056
+#28040 := (= #26368 #26346)
+#28050 := [symm #26283]: #28040
+#28059 := [trans #28050 #28057]: #28058
+#28284 := [monotonicity #28059]: #28283
+#28282 := (= #26651 #26563)
+#28272 := (= #26563 #26651)
+#27071 := (* -1::int #26357)
+#27072 := (+ #24016 #27071)
+#27073 := (<= #27072 0::int)
+#27070 := (= #24016 #26357)
+#28067 := (= #2961 #26357)
+#28087 := (= #26357 #2961)
+#28088 := [monotonicity #28039]: #28087
+#28068 := [symm #28088]: #28067
+#28085 := (= #24016 #2961)
+#24240 := (= #2961 #24016)
+#24245 := (or #24187 #24240)
+#24246 := [quant-inst]: #24245
+#28060 := [unit-resolution #24246 #23688]: #24240
+#28086 := [symm #28060]: #28085
+#28069 := [trans #28086 #28068]: #27070
+#28070 := (not #27070)
+#28049 := (or #28070 #27073)
+#28066 := [th-lemma]: #28049
+#28051 := [unit-resolution #28066 #28069]: #27073
+#27068 := (>= #27072 0::int)
+#28052 := (or #28070 #27068)
+#28053 := [th-lemma]: #28052
+#28054 := [unit-resolution #28053 #28069]: #27068
+#26567 := (* -1::int #26563)
+#26568 := (+ #26357 #26567)
+#26569 := (+ #26356 #26568)
+#27092 := (<= #26569 0::int)
+#26570 := (= #26569 0::int)
+#27074 := (or #24187 #26570)
+#26564 := (= #26365 #26563)
+#27075 := (or #24187 #26564)
+#27077 := (iff #27075 #27074)
+#27083 := (iff #27074 #27074)
+#27084 := [rewrite]: #27083
+#26571 := (iff #26564 #26570)
+#26572 := [rewrite]: #26571
+#27078 := [monotonicity #26572]: #27077
+#27093 := [trans #27078 #27084]: #27077
+#27076 := [quant-inst]: #27075
+#27094 := [mp #27076 #27093]: #27074
+#28055 := [unit-resolution #27094 #23688]: #26570
+#28076 := (not #26570)
+#28079 := (or #28076 #27092)
+#28080 := [th-lemma]: #28079
+#28081 := [unit-resolution #28080 #28055]: #27092
+#27095 := (>= #26569 0::int)
+#28082 := (or #28076 #27095)
+#28078 := [th-lemma]: #28082
+#28083 := [unit-resolution #28078 #28055]: #27095
+#27032 := (<= #26356 1::int)
+#27031 := (= #26356 1::int)
+#2927 := (uf_138 uf_7)
+#2928 := (= #2927 1::int)
+#12262 := [asserted]: #2928
+#28084 := (= #26356 #2927)
+#28103 := [monotonicity #27683]: #28084
+#28105 := [trans #28103 #12262]: #27031
+#28106 := (not #27031)
+#28261 := (or #28106 #27032)
+#28262 := [th-lemma]: #28261
+#28263 := [unit-resolution #28262 #28105]: #27032
+#27069 := (>= #26356 1::int)
+#28264 := (or #28106 #27069)
+#28265 := [th-lemma]: #28264
+#28266 := [unit-resolution #28265 #28105]: #27069
+#27890 := (* -1::int #26643)
+#27891 := (+ #24016 #27890)
+#27892 := (<= #27891 0::int)
+#27887 := (= #24016 #26643)
+#28253 := (= #26643 #24016)
+#28254 := [monotonicity #27941]: #28253
+#28252 := [symm #28254]: #27887
+#28255 := (not #27887)
+#28256 := (or #28255 #27892)
+#28257 := [th-lemma]: #28256
+#28258 := [unit-resolution #28257 #28252]: #27892
+#27893 := (>= #27891 0::int)
+#28259 := (or #28255 #27893)
+#28260 := [th-lemma]: #28259
+#28271 := [unit-resolution #28260 #28252]: #27893
+#28281 := [th-lemma #28266 #28263 #28271 #28258 #28266 #28263 #28083 #28081 #28054 #28051]: #28272
+#28280 := [symm #28281]: #28282
+#28239 := [trans #28280 #28284]: #28237
+#28305 := [monotonicity #28239]: #28304
+#28322 := (= #26435 #26654)
+#26639 := (uf_66 #25404 0::int #24114)
+#26657 := (= #26639 #26654)
+#26660 := (not #26657)
+#26640 := (uf_139 #26639 #25404)
+#26641 := (= uf_9 #26640)
+#26642 := (not #26641)
+#26666 := (or #26642 #26660)
+#26671 := (not #26666)
+#27881 := (or #26114 #26671)
+#26644 := (+ #26643 #26356)
+#26645 := (+ 0::int #26644)
+#26646 := (uf_43 #24114 #26645)
+#26647 := (= #26639 #26646)
+#26648 := (not #26647)
+#26649 := (or #26648 #26642)
+#26650 := (not #26649)
+#27869 := (or #26114 #26650)
+#27883 := (iff #27869 #27881)
+#27885 := (iff #27881 #27881)
+#27886 := [rewrite]: #27885
+#26672 := (iff #26650 #26671)
+#26669 := (iff #26649 #26666)
+#26663 := (or #26660 #26642)
+#26667 := (iff #26663 #26666)
+#26668 := [rewrite]: #26667
+#26664 := (iff #26649 #26663)
+#26661 := (iff #26648 #26660)
+#26658 := (iff #26647 #26657)
+#26655 := (= #26646 #26654)
+#26652 := (= #26645 #26651)
+#26653 := [rewrite]: #26652
+#26656 := [monotonicity #26653]: #26655
+#26659 := [monotonicity #26656]: #26658
+#26662 := [monotonicity #26659]: #26661
+#26665 := [monotonicity #26662]: #26664
+#26670 := [trans #26665 #26668]: #26669
+#26673 := [monotonicity #26670]: #26672
+#27884 := [monotonicity #26673]: #27883
+#27896 := [trans #27884 #27886]: #27883
+#27882 := [quant-inst]: #27869
+#27897 := [mp #27882 #27896]: #27881
+#28240 := [unit-resolution #27897 #21660]: #26671
+#27900 := (or #26666 #26657)
+#27901 := [def-axiom]: #27900
+#28238 := [unit-resolution #27901 #28240]: #26657
+#28310 := (= #26435 #26639)
+#28311 := [monotonicity #27948]: #28310
+#28323 := [trans #28311 #28238]: #28322
+#28319 := [trans #28323 #28305]: #28324
+#28326 := [trans #28319 #28321]: #28325
+#28296 := [monotonicity #28326]: #28308
+#28309 := [symm #28296]: #28298
+#28297 := [monotonicity #28309]: #28299
+#28303 := [trans #28297 #28301]: #28302
+#28335 := [trans #28303 #27935]: #28329
+#28334 := [monotonicity #28335]: #28357
+#28361 := [trans #28334 #28359]: #28360
+#28363 := [monotonicity #28361]: #28362
+#28356 := [monotonicity #28363]: #28355
+#28389 := [symm #28356]: #28388
+#28391 := [monotonicity #28389]: #28390
+#28392 := [mp #14796 #28391]: #26958
+#28395 := (= #2967 #26630)
+#28387 := (= #26630 #2967)
+#28393 := [monotonicity #28335]: #28387
+#28328 := [symm #28393]: #28395
+#28349 := [trans #14799 #28328]: #26610
+#26877 := (not #26610)
+#26878 := (or #26753 #26877)
+#26905 := [def-axiom]: #26878
+#28327 := [unit-resolution #26905 #28349]: #26753
+#26952 := (or #26807 #26629 #26750 #26766 #26791)
+#26953 := [def-axiom]: #26952
+#28350 := [unit-resolution #26953 #28327 #28392 #28005 #27983 #27903]: false
+#28351 := [lemma #28350]: #28348
+#28242 := [unit-resolution #28351 #28241]: #23957
+#23303 := (or #23954 #3022)
+#23302 := [def-axiom]: #23303
+#28243 := [unit-resolution #23302 #28242]: #3022
+#28633 := (+ #3021 #18936)
+#26421 := (>= #28633 0::int)
+#28632 := (= #3021 #18935)
+#27102 := (= #18935 #3021)
+#26769 := (= #18934 #3011)
+#26767 := (= ?x773!13 0::int)
+#23266 := (not #18939)
+#26720 := [hypothesis]: #22757
+#23257 := (or #22752 #23266)
+#23268 := [def-axiom]: #23257
+#26762 := [unit-resolution #23268 #26720]: #23266
+#23178 := (or #22752 #18931)
+#23264 := [def-axiom]: #23178
+#26763 := [unit-resolution #23264 #26720]: #18931
+#26768 := [th-lemma #26763 #26762]: #26767
+#27101 := [monotonicity #26768]: #26769
+#27157 := [monotonicity #27101]: #27102
+#28041 := [symm #27157]: #28632
+#28023 := (not #28632)
+#28024 := (or #28023 #26421)
+#28022 := [th-lemma]: #28024
+#28025 := [unit-resolution #28022 #28041]: #26421
+#23179 := (not #18938)
+#23265 := (or #22752 #23179)
+#23180 := [def-axiom]: #23265
+#28026 := [unit-resolution #23180 #26720]: #23179
+#26970 := (* -1::int #3021)
+#26971 := (+ uf_285 #26970)
+#26972 := (>= #26971 0::int)
+#28244 := (or #13672 #26972)
+#28245 := [th-lemma]: #28244
+#28246 := [unit-resolution #28245 #28243]: #26972
+#28641 := [th-lemma #28246 #28026 #28025]: false
+#28642 := [lemma #28641]: #22752
+#23280 := (or #23954 #23948)
+#23281 := [def-axiom]: #23280
+#29203 := [unit-resolution #23281 #28242]: #23948
+#28560 := [hypothesis]: #13906
+#28561 := [th-lemma #14790 #28560]: false
+#28562 := [lemma #28561]: #13903
+#23300 := (or #23951 #13906 #23945)
+#23301 := [def-axiom]: #23300
+#29204 := [unit-resolution #23301 #28562 #29203]: #23945
+#23309 := (or #23942 #23936)
+#23310 := [def-axiom]: #23309
+#29207 := [unit-resolution #23310 #29204]: #23936
+#23328 := (or #23939 #22757 #23933)
+#23305 := [def-axiom]: #23328
+#29208 := [unit-resolution #23305 #29207 #28642]: #23933
+#23321 := (or #23930 #23924)
+#23322 := [def-axiom]: #23321
+#29209 := [unit-resolution #23322 #29208]: #23924
+#29210 := (or #23927 #13672 #23921)
+#23317 := (or #23927 #13672 #13942 #23921)
+#23318 := [def-axiom]: #23317
+#29211 := [unit-resolution #23318 #14790]: #29210
+#29212 := [unit-resolution #29211 #29209 #28243]: #23921
+#23351 := (or #23918 #13947)
+#23355 := [def-axiom]: #23351
+#29213 := [unit-resolution #23355 #29212]: #13947
+#27053 := (* -1::int #26964)
+#27103 := (+ uf_293 #27053)
+#27104 := (<= #27103 0::int)
+#26965 := (= uf_293 #26964)
+#1382 := (uf_66 #15 #161 #1381)
+#1383 := (pattern #1382)
+#1384 := (uf_125 #1382 #15)
+#8071 := (= #161 #1384)
+#8075 := (forall (vars (?x319 T5) (?x320 int)) (:pat #1383) #8071)
+#17553 := (~ #8075 #8075)
+#17551 := (~ #8071 #8071)
+#17552 := [refl]: #17551
+#17554 := [nnf-pos #17552]: #17553
+#1385 := (= #1384 #161)
+#1386 := (forall (vars (?x319 T5) (?x320 int)) (:pat #1383) #1385)
+#8076 := (iff #1386 #8075)
+#8073 := (iff #1385 #8071)
+#8074 := [rewrite]: #8073
+#8077 := [quant-intro #8074]: #8076
+#8070 := [asserted]: #1386
+#8080 := [mp #8070 #8077]: #8075
+#17555 := [mp~ #8080 #17554]: #8075
+#26411 := (not #8075)
+#26968 := (or #26411 #26965)
+#26969 := [quant-inst]: #26968
+#27438 := [unit-resolution #26969 #17555]: #26965
+#27439 := (not #26965)
+#29214 := (or #27439 #27104)
+#29215 := [th-lemma]: #29214
+#29216 := [unit-resolution #29215 #27438]: #27104
+#29217 := (not #27104)
+#29218 := (or #27037 #22873 #29217)
+#29219 := [th-lemma]: #29218
+#29220 := [unit-resolution #29219 #29216 #29213]: #27037
+#23345 := (or #23918 #23754)
+#23338 := [def-axiom]: #23345
+#29221 := [unit-resolution #23338 #29212]: #23754
+#23365 := (or #23918 #12426)
+#23366 := [def-axiom]: #23365
+#29222 := [unit-resolution #23366 #29212]: #12426
+#27373 := (+ uf_272 #27053)
+#27374 := (<= #27373 0::int)
+#27445 := (not #27374)
+#23356 := (or #23918 #14405)
+#23359 := [def-axiom]: #23356
+#29223 := [unit-resolution #23359 #29212]: #14405
+#27446 := (or #27445 #14404)
+#27437 := [hypothesis]: #14405
+#27105 := (>= #27103 0::int)
+#27440 := (or #27439 #27105)
+#27441 := [th-lemma]: #27440
+#27442 := [unit-resolution #27441 #27438]: #27105
+#27443 := [hypothesis]: #27374
+#27444 := [th-lemma #27443 #27442 #27437]: false
+#27447 := [lemma #27444]: #27446
+#29224 := [unit-resolution #27447 #29223]: #27445
+#23346 := (or #23918 #23912)
+#23339 := [def-axiom]: #23346
+#29225 := [unit-resolution #23339 #29212]: #23912
+#27311 := (<= #26964 131073::int)
+#23336 := (or #23918 #16332)
+#23337 := [def-axiom]: #23336
+#29226 := [unit-resolution #23337 #29212]: #16332
+#29227 := (not #27105)
+#29228 := (or #27311 #23042 #29227)
+#29229 := [th-lemma]: #29228
+#29230 := [unit-resolution #29229 #27442 #29226]: #27311
+#27312 := (not #27311)
+#27038 := (not #27037)
+#27757 := (or #14049 #27038 #27312 #27374 #23037 #23759 #23915)
+#27327 := (uf_66 #2960 #26964 uf_7)
+#27328 := (uf_110 uf_273 #27327)
+#27331 := (= uf_299 #27328)
+#27162 := (= #3068 #27328)
+#27733 := (= #27328 #3068)
+#27638 := (= #27327 #3067)
+#27584 := (= #26964 uf_293)
+#27589 := [symm #27438]: #27584
+#27639 := [monotonicity #27589]: #27638
+#27734 := [monotonicity #27639]: #27733
+#27665 := [symm #27734]: #27162
+#27735 := (= uf_299 #3068)
+#27640 := [hypothesis]: #12426
+#27641 := [hypothesis]: #23912
+#27352 := [hypothesis]: #14046
+#23335 := (or #23872 #14049)
+#23446 := [def-axiom]: #23335
+#27720 := [unit-resolution #23446 #27352]: #23872
+#23378 := (or #23915 #23875 #23909)
+#23380 := [def-axiom]: #23378
+#27731 := [unit-resolution #23380 #27720 #27641]: #23909
+#23397 := (or #23906 #12576)
+#23398 := [def-axiom]: #23397
+#27666 := [unit-resolution #23398 #27731]: #12576
+#27732 := [symm #27666]: #3139
+#27736 := [trans #27732 #27640]: #27735
+#27737 := [trans #27736 #27665]: #27331
+#27738 := [hypothesis]: #27445
+#27675 := [hypothesis]: #27311
+#27739 := [hypothesis]: #27037
+#23405 := (or #23906 #23900)
+#23406 := [def-axiom]: #23405
+#27740 := [unit-resolution #23406 #27731]: #23900
+#27363 := [hypothesis]: #23754
+#27108 := (+ uf_292 #13970)
+#27109 := (<= #27108 0::int)
+#27741 := (or #12644 #27109)
+#27742 := [th-lemma]: #27741
+#27743 := [unit-resolution #27742 #27666]: #27109
+#27349 := (not #27109)
+#27367 := (or #23008 #23759 #27349 #14049)
+#27179 := (+ uf_294 #19528)
+#27180 := (<= #27179 0::int)
+#27355 := (not #27180)
+#23419 := (not #19530)
+#27353 := [hypothesis]: #23013
+#23443 := (or #23008 #23419)
+#23444 := [def-axiom]: #23443
+#27354 := [unit-resolution #23444 #27353]: #23419
+#27356 := (or #27355 #14049 #19530)
+#27357 := [th-lemma]: #27356
+#27358 := [unit-resolution #27357 #27354 #27352]: #27355
+#27191 := (+ uf_292 #19541)
+#27192 := (>= #27191 0::int)
+#27348 := (not #27192)
+#27342 := [hypothesis]: #27109
+#23439 := (not #19543)
+#23445 := (or #23008 #23439)
+#23413 := [def-axiom]: #23445
+#27359 := [unit-resolution #23413 #27353]: #23439
+#27350 := (or #27348 #19543 #27349)
+#27343 := [hypothesis]: #23439
+#27346 := [hypothesis]: #27192
+#27347 := [th-lemma #27346 #27343 #27342]: false
+#27351 := [lemma #27347]: #27350
+#27360 := [unit-resolution #27351 #27359 #27342]: #27348
+#27364 := (or #27180 #27192)
+#23383 := (or #23008 #19192)
+#23438 := [def-axiom]: #23383
+#27361 := [unit-resolution #23438 #27353]: #19192
+#23457 := (or #23008 #19191)
+#23437 := [def-axiom]: #23457
+#27362 := [unit-resolution #23437 #27353]: #19191
+#27205 := (or #23759 #22992 #22993 #27180 #27192)
+#27168 := (+ #19196 #14431)
+#27169 := (<= #27168 0::int)
+#27170 := (+ ?x781!15 #14044)
+#27171 := (>= #27170 0::int)
+#27172 := (or #22993 #27171 #27169 #22992)
+#27206 := (or #23759 #27172)
+#27213 := (iff #27206 #27205)
+#27200 := (or #22992 #22993 #27180 #27192)
+#27208 := (or #23759 #27200)
+#27211 := (iff #27208 #27205)
+#27212 := [rewrite]: #27211
+#27209 := (iff #27206 #27208)
+#27203 := (iff #27172 #27200)
+#27197 := (or #22993 #27180 #27192 #22992)
+#27201 := (iff #27197 #27200)
+#27202 := [rewrite]: #27201
+#27198 := (iff #27172 #27197)
+#27195 := (iff #27169 #27192)
+#27185 := (+ #14431 #19196)
+#27188 := (<= #27185 0::int)
+#27193 := (iff #27188 #27192)
+#27194 := [rewrite]: #27193
+#27189 := (iff #27169 #27188)
+#27186 := (= #27168 #27185)
+#27187 := [rewrite]: #27186
+#27190 := [monotonicity #27187]: #27189
+#27196 := [trans #27190 #27194]: #27195
+#27183 := (iff #27171 #27180)
+#27173 := (+ #14044 ?x781!15)
+#27176 := (>= #27173 0::int)
+#27181 := (iff #27176 #27180)
+#27182 := [rewrite]: #27181
+#27177 := (iff #27171 #27176)
+#27174 := (= #27170 #27173)
+#27175 := [rewrite]: #27174
+#27178 := [monotonicity #27175]: #27177
+#27184 := [trans #27178 #27182]: #27183
+#27199 := [monotonicity #27184 #27196]: #27198
+#27204 := [trans #27199 #27202]: #27203
+#27210 := [monotonicity #27204]: #27209
+#27214 := [trans #27210 #27212]: #27213
+#27207 := [quant-inst]: #27206
+#27215 := [mp #27207 #27214]: #27205
+#27365 := [unit-resolution #27215 #27363 #27362 #27361]: #27364
+#27366 := [unit-resolution #27365 #27360 #27358]: false
+#27368 := [lemma #27366]: #27367
+#27753 := [unit-resolution #27368 #27743 #27352 #27363]: #23008
+#23423 := (or #23903 #23897 #23013)
+#23424 := [def-axiom]: #23423
+#27754 := [unit-resolution #23424 #27753 #27740]: #23897
+#23454 := (or #23894 #23886)
+#23455 := [def-axiom]: #23454
+#27755 := [unit-resolution #23455 #27754]: #23886
+#27334 := (not #27331)
+#27520 := (or #23891 #27038 #27312 #27334 #27374)
+#27317 := (+ #26964 #13873)
+#27318 := (>= #27317 0::int)
+#27326 := (= #27328 uf_299)
+#27329 := (not #27326)
+#27330 := (or #27329 #27038 #27318 #27312)
+#27518 := (or #23891 #27330)
+#27642 := (iff #27518 #27520)
+#27382 := (or #27038 #27312 #27334 #27374)
+#27590 := (or #23891 #27382)
+#27593 := (iff #27590 #27520)
+#27594 := [rewrite]: #27593
+#27591 := (iff #27518 #27590)
+#27385 := (iff #27330 #27382)
+#27379 := (or #27334 #27038 #27374 #27312)
+#27383 := (iff #27379 #27382)
+#27384 := [rewrite]: #27383
+#27380 := (iff #27330 #27379)
+#27377 := (iff #27318 #27374)
+#27335 := (+ #13873 #26964)
+#27370 := (>= #27335 0::int)
+#27375 := (iff #27370 #27374)
+#27376 := [rewrite]: #27375
+#27371 := (iff #27318 #27370)
+#27336 := (= #27317 #27335)
+#27369 := [rewrite]: #27336
+#27372 := [monotonicity #27369]: #27371
+#27378 := [trans #27372 #27376]: #27377
+#27344 := (iff #27329 #27334)
+#27332 := (iff #27326 #27331)
+#27333 := [rewrite]: #27332
+#27345 := [monotonicity #27333]: #27344
+#27381 := [monotonicity #27345 #27378]: #27380
+#27386 := [trans #27381 #27384]: #27385
+#27592 := [monotonicity #27386]: #27591
+#27647 := [trans #27592 #27594]: #27642
+#27521 := [quant-inst]: #27518
+#27648 := [mp #27521 #27647]: #27520
+#27756 := [unit-resolution #27648 #27755 #27739 #27675 #27738 #27737]: false
+#27758 := [lemma #27756]: #27757
+#29231 := [unit-resolution #27758 #29230 #29225 #29224 #29222 #29221 #29220]: #14049
+#23541 := (+ uf_294 #14142)
+#23536 := (>= #23541 0::int)
+#27163 := (uf_58 #3079 #3175)
+#27762 := (uf_136 #27163)
+#27763 := (uf_24 uf_273 #27762)
+#27764 := (= uf_9 #27763)
+#27765 := (not #27764)
+#27759 := (uf_135 #27163)
+#27760 := (= uf_9 #27759)
+#27761 := (not #27760)
+#27819 := (or #27761 #27765)
+#27822 := (not #27819)
+#27773 := (uf_210 uf_273 #27762)
+#27774 := (= uf_9 #27773)
+#27771 := (uf_25 uf_273 #27762)
+#27772 := (= uf_26 #27771)
+#27813 := (or #27772 #27774)
+#27816 := (not #27813)
+#27527 := (uf_15 #3175)
+#27777 := (uf_14 #27527)
+#27795 := (= uf_16 #27777)
+#27810 := (not #27795)
+#27768 := (uf_15 #27762)
+#27769 := (uf_14 #27768)
+#27770 := (= uf_16 #27769)
+#27828 := (or #27770 #27810 #27816 #27822)
+#27833 := (not #27828)
+#27784 := (uf_25 uf_273 #3175)
+#27785 := (= uf_26 #27784)
+#27782 := (uf_210 uf_273 #3175)
+#27783 := (= uf_9 #27782)
+#27798 := (or #27783 #27785)
+#27801 := (not #27798)
+#27804 := (or #27795 #27801)
+#27807 := (not #27804)
+#27836 := (or #27807 #27833)
+#27839 := (not #27836)
+#27842 := (or #19008 #27839)
+#27845 := (not #27842)
+#27848 := (iff #12812 #27845)
+#29445 := (or #26854 #27848)
+#27766 := (or #27765 #27761)
+#27767 := (not #27766)
+#27775 := (or #27774 #27772)
+#27776 := (not #27775)
+#27778 := (= #27777 uf_16)
+#27779 := (not #27778)
+#27780 := (or #27779 #27776 #27770 #27767)
+#27781 := (not #27780)
+#27786 := (or #27785 #27783)
+#27787 := (not #27786)
+#27788 := (or #27778 #27787)
+#27789 := (not #27788)
+#27790 := (or #27789 #27781)
+#27791 := (not #27790)
+#27792 := (or #19008 #27791)
+#27793 := (not #27792)
+#27794 := (iff #12812 #27793)
+#29439 := (or #26854 #27794)
+#29438 := (iff #29439 #29445)
+#29456 := (iff #29445 #29445)
+#29454 := [rewrite]: #29456
+#27849 := (iff #27794 #27848)
+#27846 := (iff #27793 #27845)
+#27843 := (iff #27792 #27842)
+#27840 := (iff #27791 #27839)
+#27837 := (iff #27790 #27836)
+#27834 := (iff #27781 #27833)
+#27831 := (iff #27780 #27828)
+#27825 := (or #27810 #27816 #27770 #27822)
+#27829 := (iff #27825 #27828)
+#27830 := [rewrite]: #27829
+#27826 := (iff #27780 #27825)
+#27823 := (iff #27767 #27822)
+#27820 := (iff #27766 #27819)
+#27821 := [rewrite]: #27820
+#27824 := [monotonicity #27821]: #27823
+#27817 := (iff #27776 #27816)
+#27814 := (iff #27775 #27813)
+#27815 := [rewrite]: #27814
+#27818 := [monotonicity #27815]: #27817
+#27811 := (iff #27779 #27810)
+#27796 := (iff #27778 #27795)
+#27797 := [rewrite]: #27796
+#27812 := [monotonicity #27797]: #27811
+#27827 := [monotonicity #27812 #27818 #27824]: #27826
+#27832 := [trans #27827 #27830]: #27831
+#27835 := [monotonicity #27832]: #27834
+#27808 := (iff #27789 #27807)
+#27805 := (iff #27788 #27804)
+#27802 := (iff #27787 #27801)
+#27799 := (iff #27786 #27798)
+#27800 := [rewrite]: #27799
+#27803 := [monotonicity #27800]: #27802
+#27806 := [monotonicity #27797 #27803]: #27805
+#27809 := [monotonicity #27806]: #27808
+#27838 := [monotonicity #27809 #27835]: #27837
+#27841 := [monotonicity #27838]: #27840
+#27844 := [monotonicity #27841]: #27843
+#27847 := [monotonicity #27844]: #27846
+#27850 := [monotonicity #27847]: #27849
+#29455 := [monotonicity #27850]: #29438
+#29457 := [trans #29455 #29454]: #29438
+#29446 := [quant-inst]: #29439
+#29459 := [mp #29446 #29457]: #29445
+#29640 := [unit-resolution #29459 #22514]: #27848
+#29381 := (not #27848)
+#29642 := (or #29381 #27842)
+#29641 := [hypothesis]: #19017
+#29377 := (or #29381 #12812 #27842)
+#29382 := [def-axiom]: #29377
+#28866 := [unit-resolution #29382 #29641]: #29642
+#29632 := [unit-resolution #28866 #29640]: #27842
+#29635 := (or #27845 #27839)
+#23357 := (or #23918 #13950)
+#23358 := [def-axiom]: #23357
+#28992 := [unit-resolution #23358 #29212]: #13950
+#28994 := [trans #26494 #27946]: #25983
+#28995 := [unit-resolution #26021 #28994 #27937]: #25981
+#28996 := [unit-resolution #27928 #28995]: #26058
+#28997 := [unit-resolution #26217 #28996]: #26041
+#29000 := [trans #28997 #27953]: #26522
+#27729 := (or #12803 #14243 #26523 #14046)
+#27672 := [hypothesis]: #13950
+#27528 := (uf_66 #23223 uf_294 #26404)
+#27529 := (uf_125 #27528 #23223)
+#27558 := (* -1::int #27529)
+#27667 := (+ uf_294 #27558)
+#27668 := (<= #27667 0::int)
+#27530 := (= uf_294 #27529)
+#27533 := (or #26411 #27530)
+#27534 := [quant-inst]: #27533
+#27673 := [unit-resolution #27534 #17555]: #27530
+#27676 := (not #27530)
+#27677 := (or #27676 #27668)
+#27678 := [th-lemma]: #27677
+#27679 := [unit-resolution #27678 #27673]: #27668
+#27549 := (>= #27529 0::int)
+#27550 := (not #27549)
+#27601 := (uf_66 #26511 #27529 #24114)
+#27605 := (uf_58 #3079 #27601)
+#27606 := (uf_135 #27605)
+#27607 := (= uf_9 #27606)
+#27602 := (uf_27 uf_273 #27601)
+#27603 := (= uf_9 #27602)
+#27604 := (not #27603)
+#27611 := (or #27604 #27607)
+#27699 := (iff #19008 #27604)
+#27697 := (iff #12803 #27603)
+#27695 := (iff #27603 #12803)
+#27693 := (= #27602 #3176)
+#27691 := (= #27601 #3175)
+#27684 := (= #27529 uf_294)
+#27685 := [symm #27673]: #27684
+#27692 := [monotonicity #27690 #27685 #27683]: #27691
+#27694 := [monotonicity #27692]: #27693
+#27696 := [monotonicity #27694]: #27695
+#27698 := [symm #27696]: #27697
+#27700 := [monotonicity #27698]: #27699
+#27680 := [hypothesis]: #19008
+#27701 := [mp #27680 #27700]: #27604
+#27636 := (or #27611 #27603)
+#27637 := [def-axiom]: #27636
+#27702 := [unit-resolution #27637 #27701]: #27611
+#27559 := (+ #24116 #27558)
+#27560 := (<= #27559 0::int)
+#27712 := (not #27560)
+#27708 := [hypothesis]: #14049
+#27669 := (>= #27667 0::int)
+#27709 := (or #27676 #27669)
+#27710 := [th-lemma]: #27709
+#27711 := [unit-resolution #27710 #27673]: #27669
+#27714 := (not #27669)
+#27715 := (or #27712 #27713 #27714 #14046)
+#27716 := [th-lemma]: #27715
+#27717 := [unit-resolution #27716 #27711 #27708 #27707]: #27712
+#27614 := (not #27611)
+#27725 := (or #27550 #27560 #27614)
+#27625 := (or #26542 #23209 #26523 #26526 #27550 #27560 #27614)
+#27608 := (or #27607 #27604)
+#27609 := (not #27608)
+#27547 := (+ #27529 #26452)
+#27548 := (>= #27547 0::int)
+#27610 := (or #26526 #27550 #27548 #26523 #23209 #27609)
+#27626 := (or #26542 #27610)
+#27633 := (iff #27626 #27625)
+#27620 := (or #23209 #26523 #26526 #27550 #27560 #27614)
+#27628 := (or #26542 #27620)
+#27631 := (iff #27628 #27625)
+#27632 := [rewrite]: #27631
+#27629 := (iff #27626 #27628)
+#27623 := (iff #27610 #27620)
+#27617 := (or #26526 #27550 #27560 #26523 #23209 #27614)
+#27621 := (iff #27617 #27620)
+#27622 := [rewrite]: #27621
+#27618 := (iff #27610 #27617)
+#27615 := (iff #27609 #27614)
+#27612 := (iff #27608 #27611)
+#27613 := [rewrite]: #27612
+#27616 := [monotonicity #27613]: #27615
+#27563 := (iff #27548 #27560)
+#27552 := (+ #26452 #27529)
+#27555 := (>= #27552 0::int)
+#27561 := (iff #27555 #27560)
+#27562 := [rewrite]: #27561
+#27556 := (iff #27548 #27555)
+#27553 := (= #27547 #27552)
+#27554 := [rewrite]: #27553
+#27557 := [monotonicity #27554]: #27556
+#27564 := [trans #27557 #27562]: #27563
+#27619 := [monotonicity #27564 #27616]: #27618
+#27624 := [trans #27619 #27622]: #27623
+#27630 := [monotonicity #27624]: #27629
+#27634 := [trans #27630 #27632]: #27633
+#27627 := [quant-inst]: #27626
+#27635 := [mp #27627 #27634]: #27625
+#27726 := [unit-resolution #27635 #22104 #14784 #27724 #27723]: #27725
+#27727 := [unit-resolution #27726 #27717 #27702]: #27550
+#27728 := [th-lemma #27727 #27679 #27672]: false
+#27730 := [lemma #27728]: #27729
+#29001 := [unit-resolution #27730 #29231 #29000 #28992]: #12803
+#29437 := (or #27845 #19008 #27839)
+#29380 := [def-axiom]: #29437
+#29636 := [unit-resolution #29380 #29001]: #29635
+#29634 := [unit-resolution #29636 #29632]: #27839
+#29590 := (or #27836 #27828)
+#29500 := [def-axiom]: #29590
+#29637 := [unit-resolution #29500 #29634]: #27828
+#29123 := (= #24653 #27777)
+#29378 := (= #27777 #24653)
+#29114 := (= #27527 uf_7)
+#28862 := (= #27527 #24114)
+#27514 := (= #24114 #27527)
+#27302 := (uf_48 #3175 #24114)
+#27308 := (= uf_9 #27302)
+#27513 := (iff #27308 #27514)
+#28999 := (or #25432 #27513)
+#27515 := (iff #27514 #27308)
+#28993 := (or #25432 #27515)
+#29008 := (iff #28993 #28999)
+#28998 := (iff #28999 #28999)
+#29010 := [rewrite]: #28998
+#27516 := (iff #27515 #27513)
+#27517 := [rewrite]: #27516
+#29009 := [monotonicity #27517]: #29008
+#29011 := [trans #29009 #29010]: #29008
+#29007 := [quant-inst]: #28993
+#29012 := [mp #29007 #29011]: #28999
+#29076 := [unit-resolution #29012 #23681]: #27513
+#29751 := (= #3178 #27302)
+#29068 := (= #27302 #3178)
+#29078 := [monotonicity #27683]: #29068
+#29752 := [symm #29078]: #29751
+#27490 := (+ uf_294 #26365)
+#27493 := (uf_43 #24114 #27490)
+#27643 := (uf_15 #27493)
+#29135 := (= #27643 #27527)
+#29116 := (= #27527 #27643)
+#29048 := (= #3175 #27493)
+#27480 := (uf_66 #23223 uf_294 #24114)
+#27496 := (= #27480 #27493)
+#27499 := (not #27496)
+#27481 := (uf_139 #27480 #23223)
+#27482 := (= uf_9 #27481)
+#27483 := (not #27482)
+#27505 := (or #27483 #27499)
+#27510 := (not #27505)
+#29033 := (or #26114 #27510)
+#27484 := (+ uf_294 #26358)
+#27485 := (uf_43 #24114 #27484)
+#27486 := (= #27480 #27485)
+#27487 := (not #27486)
+#27488 := (or #27487 #27483)
+#27489 := (not #27488)
+#29034 := (or #26114 #27489)
+#29030 := (iff #29034 #29033)
+#29036 := (iff #29033 #29033)
+#29037 := [rewrite]: #29036
+#27511 := (iff #27489 #27510)
+#27508 := (iff #27488 #27505)
+#27502 := (or #27499 #27483)
+#27506 := (iff #27502 #27505)
+#27507 := [rewrite]: #27506
+#27503 := (iff #27488 #27502)
+#27500 := (iff #27487 #27499)
+#27497 := (iff #27486 #27496)
+#27494 := (= #27485 #27493)
+#27491 := (= #27484 #27490)
+#27492 := [rewrite]: #27491
+#27495 := [monotonicity #27492]: #27494
+#27498 := [monotonicity #27495]: #27497
+#27501 := [monotonicity #27498]: #27500
+#27504 := [monotonicity #27501]: #27503
+#27509 := [trans #27504 #27507]: #27508
+#27512 := [monotonicity #27509]: #27511
+#29035 := [monotonicity #27512]: #29030
+#29038 := [trans #29035 #29037]: #29030
+#29029 := [quant-inst]: #29034
+#29039 := [mp #29029 #29038]: #29033
+#29088 := [unit-resolution #29039 #21660]: #27510
+#28968 := (or #27505 #27496)
+#29050 := [def-axiom]: #28968
+#29049 := [unit-resolution #29050 #29088]: #27496
+#29056 := (= #3175 #27480)
+#29054 := (= #27480 #3175)
+#29055 := [monotonicity #28039 #27683]: #29054
+#29057 := [symm #29055]: #29056
+#29082 := [trans #29057 #29049]: #29048
+#29117 := [monotonicity #29082]: #29116
+#29115 := [symm #29117]: #29135
+#27644 := (= #24114 #27643)
+#29031 := (or #24181 #27644)
+#29032 := [quant-inst]: #29031
+#29087 := [unit-resolution #29032 #23694]: #27644
+#29136 := [trans #29087 #29115]: #27514
+#28947 := (not #27514)
+#27309 := (not #27308)
+#29080 := (iff #19011 #27309)
+#29071 := (iff #12806 #27308)
+#29081 := (iff #27308 #12806)
+#29066 := [monotonicity #29078]: #29081
+#29072 := [symm #29066]: #29071
+#29083 := [monotonicity #29072]: #29080
+#29077 := [hypothesis]: #19011
+#29079 := [mp #29077 #29083]: #27309
+#28946 := (not #27513)
+#29042 := (or #28946 #27308 #28947)
+#29043 := [def-axiom]: #29042
+#29084 := [unit-resolution #29043 #29079 #29076]: #28947
+#29137 := [unit-resolution #29084 #29136]: false
+#29138 := [lemma #29137]: #12806
+#29753 := [trans #29138 #29752]: #27308
+#28964 := (or #28946 #27309 #27514)
+#28951 := [def-axiom]: #28964
+#28867 := [unit-resolution #28951 #29753 #29076]: #27514
+#29113 := [symm #28867]: #28862
+#28864 := [trans #29113 #27683]: #29114
+#29141 := [monotonicity #28864]: #29378
+#29124 := [symm #29141]: #29123
+#29188 := [trans #28004 #29124]: #27795
+#29563 := (not #27770)
+#29681 := (iff #12299 #29563)
+#29679 := (iff #12296 #27770)
+#29461 := (iff #27770 #12296)
+#29267 := (= #27769 #2955)
+#29265 := (= #27768 #2952)
+#29264 := (= #27768 #24234)
+#29783 := (= #27762 #2962)
+#29781 := (= #27762 #26432)
+#27531 := (uf_66 #26432 #27529 #24114)
+#27532 := (uf_58 #3079 #27531)
+#27535 := (uf_136 #27532)
+#29779 := (= #27535 #26432)
+#27536 := (= #26432 #27535)
+#27543 := (up_68 #27532)
+#27544 := (not #27543)
+#27540 := (uf_27 uf_273 #27531)
+#27541 := (= uf_9 #27540)
+#27542 := (not #27541)
+#27538 := (uf_135 #27532)
+#27539 := (= uf_9 #27538)
+#27537 := (not #27536)
+#27565 := (or #27537 #27539 #27542 #27544)
+#27568 := (not #27565)
+#28420 := (or #27549 #14243)
+#28416 := [hypothesis]: #27550
+#28417 := [th-lemma #28416 #27679 #27672]: false
+#28421 := [lemma #28417]: #28420
+#29742 := [unit-resolution #28421 #28992]: #27549
+#29745 := (or #27712 #27714)
+#29743 := (or #27712 #27714 #14046)
+#29744 := [unit-resolution #27716 #27707]: #29743
+#29746 := [unit-resolution #29744 #29231]: #29745
+#29747 := [unit-resolution #29746 #27711]: #27712
+#29144 := (or #27098 #26451 #27550 #27560 #27568)
+#27545 := (or #27544 #27542 #27539 #27537)
+#27546 := (not #27545)
+#27551 := (or #27550 #27548 #26451 #27546)
+#29145 := (or #27098 #27551)
+#29157 := (iff #29145 #29144)
+#27574 := (or #26451 #27550 #27560 #27568)
+#29168 := (or #27098 #27574)
+#29156 := (iff #29168 #29144)
+#29154 := [rewrite]: #29156
+#29155 := (iff #29145 #29168)
+#27577 := (iff #27551 #27574)
+#27571 := (or #27550 #27560 #26451 #27568)
+#27575 := (iff #27571 #27574)
+#27576 := [rewrite]: #27575
+#27572 := (iff #27551 #27571)
+#27569 := (iff #27546 #27568)
+#27566 := (iff #27545 #27565)
+#27567 := [rewrite]: #27566
+#27570 := [monotonicity #27567]: #27569
+#27573 := [monotonicity #27564 #27570]: #27572
+#27578 := [trans #27573 #27576]: #27577
+#29164 := [monotonicity #27578]: #29155
+#29158 := [trans #29164 #29154]: #29157
+#29167 := [quant-inst]: #29145
+#29159 := [mp #29167 #29158]: #29144
+#29748 := [unit-resolution #29159 #21444 #29747 #29742 #28031]: #27568
+#29175 := (or #27565 #27536)
+#29176 := [def-axiom]: #29175
+#29749 := [unit-resolution #29176 #29748]: #27536
+#29780 := [symm #29749]: #29779
+#29777 := (= #27762 #27535)
+#29775 := (= #27163 #27532)
+#29773 := (= #27532 #27163)
+#29771 := (= #27531 #3175)
+#27310 := (uf_116 #3175)
+#27388 := (uf_43 #24114 #27310)
+#29765 := (= #27388 #3175)
+#27429 := (= #3175 #27388)
+#27431 := (or #27309 #27429)
+#29044 := (or #25416 #27309 #27429)
+#27430 := (or #27429 #27309)
+#29045 := (or #25416 #27430)
+#28949 := (iff #29045 #29044)
+#28962 := (or #25416 #27431)
+#28965 := (iff #28962 #29044)
+#28948 := [rewrite]: #28965
+#28960 := (iff #29045 #28962)
+#27432 := (iff #27430 #27431)
+#27433 := [rewrite]: #27432
+#28963 := [monotonicity #27433]: #28960
+#28945 := [trans #28963 #28948]: #28949
+#28961 := [quant-inst]: #29045
+#28950 := [mp #28961 #28945]: #29044
+#29754 := [unit-resolution #28950 #18736]: #27431
+#29755 := [unit-resolution #29754 #29753]: #27429
+#29766 := [symm #29755]: #29765
+#29769 := (= #27531 #27388)
+#28122 := (+ #26643 #27529)
+#28146 := (+ #26356 #28122)
+#28149 := (uf_43 #24114 #28146)
+#29763 := (= #28149 #27388)
+#29757 := (= #28146 #27310)
+#29735 := (= #27310 #28146)
+#29736 := (* -1::int #28146)
+#29737 := (+ #27310 #29736)
+#29738 := (<= #29737 0::int)
+#27645 := (uf_116 #27493)
+#27649 := (* -1::int #27645)
+#29118 := (+ #27310 #27649)
+#29119 := (<= #29118 0::int)
+#29091 := (= #27310 #27645)
+#29592 := (= #27645 #27310)
+#29585 := (= #27493 #3175)
+#29612 := (= #27493 #27480)
+#29613 := [symm #29049]: #29612
+#29591 := [trans #29613 #29055]: #29585
+#29588 := [monotonicity #29591]: #29592
+#29593 := [symm #29588]: #29091
+#29604 := (not #29091)
+#29605 := (or #29604 #29119)
+#29606 := [th-lemma]: #29605
+#29607 := [unit-resolution #29606 #29593]: #29119
+#27650 := (+ #26357 #27649)
+#27651 := (+ #26356 #27650)
+#27652 := (+ uf_294 #27651)
+#29185 := (>= #27652 0::int)
+#27653 := (= #27652 0::int)
+#29089 := (or #24187 #27653)
+#27646 := (= #27490 #27645)
+#29085 := (or #24187 #27646)
+#29108 := (iff #29085 #29089)
+#29110 := (iff #29089 #29089)
+#29111 := [rewrite]: #29110
+#27654 := (iff #27646 #27653)
+#27655 := [rewrite]: #27654
+#29109 := [monotonicity #27655]: #29108
+#29112 := [trans #29109 #29111]: #29108
+#29086 := [quant-inst]: #29085
+#29107 := [mp #29086 #29112]: #29089
+#29608 := [unit-resolution #29107 #23688]: #27653
+#29595 := (not #27653)
+#29596 := (or #29595 #29185)
+#29597 := [th-lemma]: #29596
+#29598 := [unit-resolution #29597 #29608]: #29185
+#29601 := (not #27668)
+#29600 := (not #27892)
+#29599 := (not #27068)
+#29594 := (not #29185)
+#29586 := (not #29119)
+#29602 := (or #29738 #29586 #29594 #29599 #29600 #29601)
+#29603 := [th-lemma]: #29602
+#29625 := [unit-resolution #29603 #28258 #27679 #29598 #29607 #28054]: #29738
+#29739 := (>= #29737 0::int)
+#29120 := (>= #29118 0::int)
+#29626 := (or #29604 #29120)
+#29616 := [th-lemma]: #29626
+#29614 := [unit-resolution #29616 #29593]: #29120
+#29196 := (<= #27652 0::int)
+#29617 := (or #29595 #29196)
+#29618 := [th-lemma]: #29617
+#29619 := [unit-resolution #29618 #29608]: #29196
+#29627 := (not #27893)
+#29624 := (not #27073)
+#29621 := (not #29196)
+#29620 := (not #29120)
+#29623 := (or #29739 #29620 #29621 #29624 #29627 #27714)
+#29628 := [th-lemma]: #29623
+#29629 := [unit-resolution #29628 #28051 #28271 #29619 #29614 #27711]: #29739
+#29503 := (not #29739)
+#29630 := (not #29738)
+#29518 := (or #29735 #29630 #29503)
+#29532 := [th-lemma]: #29518
+#29517 := [unit-resolution #29532 #29629 #29625]: #29735
+#29263 := [symm #29517]: #29757
+#29472 := [monotonicity #29263]: #29763
+#29767 := (= #27531 #28149)
+#28104 := (uf_66 #25404 #27529 #24114)
+#28136 := (= #28104 #28149)
+#28137 := (not #28136)
+#28107 := (uf_139 #28104 #25404)
+#28108 := (= uf_9 #28107)
+#28109 := (not #28108)
+#28145 := (or #28109 #28137)
+#28249 := (not #28145)
+#29261 := (or #26114 #28249)
+#28110 := (+ #27529 #26644)
+#28111 := (uf_43 #24114 #28110)
+#28112 := (= #28104 #28111)
+#28117 := (not #28112)
+#28118 := (or #28117 #28109)
+#28121 := (not #28118)
+#29262 := (or #26114 #28121)
+#29295 := (iff #29262 #29261)
+#29335 := (iff #29261 #29261)
+#29336 := [rewrite]: #29335
+#28250 := (iff #28121 #28249)
+#28247 := (iff #28118 #28145)
+#28142 := (or #28137 #28109)
+#28156 := (iff #28142 #28145)
+#28157 := [rewrite]: #28156
+#28143 := (iff #28118 #28142)
+#28140 := (iff #28117 #28137)
+#28138 := (iff #28112 #28136)
+#28150 := (= #28111 #28149)
+#28147 := (= #28110 #28146)
+#28148 := [rewrite]: #28147
+#28151 := [monotonicity #28148]: #28150
+#28139 := [monotonicity #28151]: #28138
+#28141 := [monotonicity #28139]: #28140
+#28144 := [monotonicity #28141]: #28143
+#28248 := [trans #28144 #28157]: #28247
+#28251 := [monotonicity #28248]: #28250
+#29334 := [monotonicity #28251]: #29295
+#29337 := [trans #29334 #29336]: #29295
+#29294 := [quant-inst]: #29262
+#29338 := [mp #29294 #29337]: #29261
+#29759 := [unit-resolution #29338 #21660]: #28249
+#29340 := (or #28145 #28136)
+#29279 := [def-axiom]: #29340
+#29760 := [unit-resolution #29279 #29759]: #28136
+#29761 := (= #27531 #28104)
+#29762 := [monotonicity #27948]: #29761
+#29768 := [trans #29762 #29760]: #29767
+#29473 := [trans #29768 #29472]: #29769
+#29499 := [trans #29473 #29766]: #29771
+#29656 := [monotonicity #29499]: #29773
+#29657 := [symm #29656]: #29775
+#29180 := [monotonicity #29657]: #29777
+#29677 := [trans #29180 #29780]: #29781
+#29199 := [trans #29677 #27935]: #29783
+#29181 := [monotonicity #29199]: #29264
+#29266 := [trans #29181 #28359]: #29265
+#29460 := [monotonicity #29266]: #29267
+#29462 := [monotonicity #29460]: #29461
+#29680 := [symm #29462]: #29679
+#29682 := [monotonicity #29680]: #29681
+#29683 := [mp #14796 #29682]: #29563
+#29170 := (not #27607)
+#29696 := (iff #29170 #27761)
+#29689 := (iff #27607 #27760)
+#29693 := (iff #27760 #27607)
+#29691 := (= #27759 #27606)
+#29688 := (= #27163 #27605)
+#29686 := (= #27605 #27163)
+#29687 := [monotonicity #27692]: #29686
+#29690 := [symm #29687]: #29688
+#29692 := [monotonicity #29690]: #29691
+#29694 := [monotonicity #29692]: #29693
+#29695 := [symm #29694]: #29689
+#29697 := [monotonicity #29695]: #29696
+#29684 := [unit-resolution #27635 #22104 #14784 #29000 #29747 #29742 #27723]: #27614
+#29173 := (or #27611 #29170)
+#29169 := [def-axiom]: #29173
+#29685 := [unit-resolution #29169 #29684]: #29170
+#29698 := [mp #29685 #29697]: #27761
+#29577 := (or #27819 #27760)
+#29578 := [def-axiom]: #29577
+#29699 := [unit-resolution #29578 #29698]: #27819
+#29709 := (or #27833 #27770 #27810 #27822)
+#29792 := (not #29735)
+#29793 := (or #29792 #27772)
+#29788 := (= #2967 #27771)
+#29785 := (= #27771 #2967)
+#29756 := [hypothesis]: #29735
+#29758 := [symm #29756]: #29757
+#29764 := [monotonicity #29758]: #29763
+#29770 := [trans #29768 #29764]: #29769
+#29772 := [trans #29770 #29766]: #29771
+#29774 := [monotonicity #29772]: #29773
+#29776 := [symm #29774]: #29775
+#29778 := [monotonicity #29776]: #29777
+#29782 := [trans #29778 #29780]: #29781
+#29784 := [trans #29782 #27935]: #29783
+#29786 := [monotonicity #29784]: #29785
+#29789 := [symm #29786]: #29788
+#29790 := [trans #14799 #29789]: #27772
+#29458 := (not #27772)
+#29740 := [hypothesis]: #29458
+#29791 := [unit-resolution #29740 #29790]: false
+#29794 := [lemma #29791]: #29793
+#29702 := [unit-resolution #29794 #29517]: #27772
+#29528 := (or #27813 #29458)
+#29529 := [def-axiom]: #29528
+#29703 := [unit-resolution #29529 #29702]: #27813
+#29571 := (or #27833 #27770 #27810 #27816 #27822)
+#29572 := [def-axiom]: #29571
+#29710 := [unit-resolution #29572 #29703]: #29709
+#29711 := [unit-resolution #29710 #29699 #29683 #29188 #29637]: false
+#29712 := [lemma #29711]: #12812
+#23247 := (not #19374)
+#29440 := [hypothesis]: #23803
+#23427 := (or #23812 #23800)
+#23522 := [def-axiom]: #23427
+#29504 := [unit-resolution #23522 #29440]: #23812
+#23396 := (or #23806 #23800)
+#23538 := [def-axiom]: #23396
+#29505 := [unit-resolution #23538 #29440]: #23806
+#29542 := (or #23818 #23809)
+#23403 := (or #23906 #14046)
+#23404 := [def-axiom]: #23403
+#29536 := [unit-resolution #23404 #29231]: #23906
+#29537 := [unit-resolution #23380 #29536 #29225]: #23875
+#23447 := (or #23872 #23866)
+#23448 := [def-axiom]: #23447
+#29538 := [unit-resolution #23448 #29537]: #23866
+#27307 := (or #23818 #23809 #19008 #23869)
+#27389 := [hypothesis]: #23821
+#23428 := (or #23818 #12812)
+#23429 := [def-axiom]: #23428
+#27390 := [unit-resolution #23429 #27389]: #12812
+#23411 := (or #23818 #12806)
+#23426 := [def-axiom]: #23411
+#27391 := [unit-resolution #23426 #27389]: #12806
+#27392 := [hypothesis]: #12803
+#27387 := [hypothesis]: #23866
+#23466 := (or #23869 #19008 #19011 #23863)
+#23461 := [def-axiom]: #23466
+#27393 := [unit-resolution #23461 #27391 #27387 #27392]: #23863
+#23475 := (or #23860 #23854)
+#23470 := [def-axiom]: #23475
+#27394 := [unit-resolution #23470 #27393]: #23854
+#23468 := (or #23857 #19011 #19017 #23851)
+#23469 := [def-axiom]: #23468
+#27395 := [unit-resolution #23469 #27394 #27391 #27390]: #23851
+#27396 := [hypothesis]: #23806
+#23528 := (or #23824 #23818)
+#23515 := [def-axiom]: #23528
+#27397 := [unit-resolution #23515 #27389]: #23824
+#23521 := (or #23833 #19008 #19011 #23827)
+#23510 := [def-axiom]: #23521
+#27304 := [unit-resolution #23510 #27397 #27392 #27391]: #23833
+#23499 := (or #23836 #23830)
+#23501 := [def-axiom]: #23499
+#27305 := [unit-resolution #23501 #27304]: #23836
+#23492 := (or #23845 #23809 #23839)
+#23494 := [def-axiom]: #23492
+#27306 := [unit-resolution #23494 #27305 #27396]: #23845
+#23482 := (or #23848 #23842)
+#23483 := [def-axiom]: #23482
+#27269 := [unit-resolution #23483 #27306 #27395]: false
+#27303 := [lemma #27269]: #27307
+#29521 := [unit-resolution #27303 #29001 #29538]: #29542
+#29525 := [unit-resolution #29521 #29505]: #23818
+#29520 := (or #23821 #19017 #23815)
+#23431 := (or #23821 #19011 #19017 #23815)
+#23432 := [def-axiom]: #23431
+#29526 := [unit-resolution #23432 #29138]: #29520
+#29527 := [unit-resolution #29526 #29525 #29504 #29712]: false
+#29530 := [lemma #29527]: #23800
+#29896 := (or #23803 #23797)
+#16270 := (<= uf_272 131073::int)
+#16273 := (iff #13872 #16270)
+#16264 := (+ 131073::int #13873)
+#16267 := (>= #16264 0::int)
+#16271 := (iff #16267 #16270)
+#16272 := [rewrite]: #16271
+#16268 := (iff #13872 #16267)
+#16265 := (= #13874 #16264)
+#16266 := [monotonicity #7888]: #16265
+#16269 := [monotonicity #16266]: #16268
+#16274 := [trans #16269 #16272]: #16273
+#14787 := [not-or-elim #14776]: #13880
+#14788 := [and-elim #14787]: #13872
+#16275 := [mp #14788 #16274]: #16270
+#29232 := [hypothesis]: #19037
+#29233 := [th-lemma #29232 #29231 #16275]: false
+#29234 := [lemma #29233]: #16368
+#29894 := (or #23803 #19037 #23797)
+#29891 := (or #14243 #14088)
+#29892 := [th-lemma]: #29891
+#29893 := [unit-resolution #29892 #28992]: #14088
+#23558 := (or #23803 #19034 #19037 #23797)
+#23555 := [def-axiom]: #23558
+#29895 := [unit-resolution #23555 #29893]: #29894
+#29897 := [unit-resolution #29895 #29234]: #29896
+#29898 := [unit-resolution #29897 #29530]: #23797
+#23561 := (or #23794 #23788)
+#23565 := [def-axiom]: #23561
+#29899 := [unit-resolution #23565 #29898]: #23788
+#23271 := (>= #14169 -1::int)
+#23285 := (or #23794 #14168)
+#23286 := [def-axiom]: #23285
+#29900 := [unit-resolution #23286 #29898]: #14168
+#29901 := (or #14172 #23271)
+#29902 := [th-lemma]: #29901
+#29903 := [unit-resolution #29902 #29900]: #23271
+#29238 := (not #23271)
+#29239 := (or #14100 #29238)
+#29201 := [hypothesis]: #23271
+#29202 := [hypothesis]: #14105
+#29237 := [th-lemma #29202 #29231 #29201]: false
+#29240 := [lemma #29237]: #29239
+#29904 := [unit-resolution #29240 #29903]: #14100
+#23580 := (or #23791 #14105 #23785)
+#23566 := [def-axiom]: #23580
+#29905 := [unit-resolution #23566 #29904 #29899]: #23785
+#23575 := (or #23782 #23776)
+#23213 := [def-axiom]: #23575
+#29906 := [unit-resolution #23213 #29905]: #23776
+#29920 := (= #3068 #3209)
+#29918 := (= #3209 #3068)
+#29914 := (= #3208 #3067)
+#29912 := (= #3208 #27327)
+#29910 := (= uf_301 #26964)
+#29907 := [hypothesis]: #23809
+#23549 := (or #23806 #12826)
+#23550 := [def-axiom]: #23549
+#29908 := [unit-resolution #23550 #29907]: #12826
+#29909 := [symm #29908]: #3189
+#29911 := [trans #29909 #27438]: #29910
+#29913 := [monotonicity #29911]: #29912
+#29915 := [trans #29913 #27639]: #29914
+#29919 := [monotonicity #29915]: #29918
+#29921 := [symm #29919]: #29920
+#29922 := (= uf_300 #3068)
+#23559 := (or #23806 #12823)
+#23548 := [def-axiom]: #23559
+#29916 := [unit-resolution #23548 #29907]: #12823
+#29917 := [symm #29916]: #3187
+#29923 := [trans #29917 #29222]: #29922
+#29924 := [trans #29923 #29921]: #12862
+#28863 := (+ uf_293 #14142)
+#28865 := (>= #28863 0::int)
+#29925 := (or #12993 #28865)
+#29926 := [th-lemma]: #29925
+#29927 := [unit-resolution #29926 #29908]: #28865
+#29483 := (not #28865)
+#29930 := (or #14145 #29483)
+#29928 := (or #14145 #14404 #29483)
+#29929 := [th-lemma]: #29928
+#29931 := [unit-resolution #29929 #29223]: #29930
+#29932 := [unit-resolution #29931 #29927]: #14145
+#23374 := (or #22784 #22782 #14144)
+#23581 := [def-axiom]: #23374
+#29933 := [unit-resolution #23581 #29932 #29924]: #22784
+#23255 := (or #23770 #22783)
+#23256 := [def-axiom]: #23255
+#29934 := [unit-resolution #23256 #29933]: #23770
+#23572 := (or #23779 #23773 #22836)
+#23573 := [def-axiom]: #23572
+#29935 := [unit-resolution #23573 #29934 #29906]: #22836
+#23583 := (or #22831 #23247)
+#23243 := [def-axiom]: #23583
+#29936 := [unit-resolution #23243 #29935]: #23247
+#29307 := (+ uf_294 #19372)
+#29860 := (>= #29307 0::int)
+#29955 := (not #29860)
+#29855 := (= uf_294 ?x785!14)
+#29888 := (not #29855)
+#29858 := (= #3184 #19060)
+#29864 := (not #29858)
+#29859 := (+ #3184 #19385)
+#29861 := (>= #29859 0::int)
+#29871 := (not #29861)
+#23394 := (or #23806 #14207)
+#23395 := [def-axiom]: #23394
+#29937 := [unit-resolution #23395 #29907]: #14207
+#29541 := (+ uf_292 #14120)
+#29539 := (<= #29541 0::int)
+#29938 := (or #13002 #29539)
+#29939 := [th-lemma]: #29938
+#29940 := [unit-resolution #29939 #29916]: #29539
+#23227 := (or #22831 #23584)
+#23568 := [def-axiom]: #23227
+#29941 := [unit-resolution #23568 #29935]: #23584
+#29872 := (not #29539)
+#29873 := (or #29871 #19387 #29872 #14211)
+#29866 := [hypothesis]: #14207
+#29867 := [hypothesis]: #29539
+#29868 := [hypothesis]: #23584
+#29869 := [hypothesis]: #29861
+#29870 := [th-lemma #29869 #29868 #29867 #29866]: false
+#29874 := [lemma #29870]: #29873
+#29942 := [unit-resolution #29874 #29941 #29940 #29937]: #29871
+#29865 := (or #29864 #29861)
+#29875 := [th-lemma]: #29865
+#29943 := [unit-resolution #29875 #29942]: #29864
+#29889 := (or #29888 #29858)
+#29884 := (= #19060 #3184)
+#29882 := (= #19059 #3175)
+#29880 := (= ?x785!14 uf_294)
+#29879 := [hypothesis]: #29855
+#29881 := [symm #29879]: #29880
+#29883 := [monotonicity #29881]: #29882
+#29885 := [monotonicity #29883]: #29884
+#29886 := [symm #29885]: #29858
+#29878 := [hypothesis]: #29864
+#29887 := [unit-resolution #29878 #29886]: false
+#29890 := [lemma #29887]: #29889
+#29944 := [unit-resolution #29890 #29943]: #29888
+#29958 := (or #29855 #29955)
+#29308 := (<= #29307 0::int)
+#29319 := (+ uf_292 #19385)
+#29320 := (>= #29319 0::int)
+#29945 := (not #29320)
+#29946 := (or #29945 #19387 #29872)
+#29947 := [th-lemma]: #29946
+#29948 := [unit-resolution #29947 #29940 #29941]: #29945
+#29951 := (or #29308 #29320)
+#23582 := (or #22831 #19056)
+#23242 := [def-axiom]: #23582
+#29949 := [unit-resolution #23242 #29935]: #19056
+#23586 := (or #22831 #19055)
+#23592 := [def-axiom]: #23586
+#29950 := [unit-resolution #23592 #29935]: #19055
+#29802 := (or #23759 #22815 #22816 #29308 #29320)
+#29296 := (+ #19060 #14431)
+#29297 := (<= #29296 0::int)
+#29298 := (+ ?x785!14 #14044)
+#29299 := (>= #29298 0::int)
+#29300 := (or #22816 #29299 #29297 #22815)
+#29803 := (or #23759 #29300)
+#29810 := (iff #29803 #29802)
+#29328 := (or #22815 #22816 #29308 #29320)
+#29805 := (or #23759 #29328)
+#29808 := (iff #29805 #29802)
+#29809 := [rewrite]: #29808
+#29806 := (iff #29803 #29805)
+#29331 := (iff #29300 #29328)
+#29325 := (or #22816 #29308 #29320 #22815)
+#29329 := (iff #29325 #29328)
+#29330 := [rewrite]: #29329
+#29326 := (iff #29300 #29325)
+#29323 := (iff #29297 #29320)
+#29313 := (+ #14431 #19060)
+#29316 := (<= #29313 0::int)
+#29321 := (iff #29316 #29320)
+#29322 := [rewrite]: #29321
+#29317 := (iff #29297 #29316)
+#29314 := (= #29296 #29313)
+#29315 := [rewrite]: #29314
+#29318 := [monotonicity #29315]: #29317
+#29324 := [trans #29318 #29322]: #29323
+#29311 := (iff #29299 #29308)
+#29301 := (+ #14044 ?x785!14)
+#29304 := (>= #29301 0::int)
+#29309 := (iff #29304 #29308)
+#29310 := [rewrite]: #29309
+#29305 := (iff #29299 #29304)
+#29302 := (= #29298 #29301)
+#29303 := [rewrite]: #29302
+#29306 := [monotonicity #29303]: #29305
+#29312 := [trans #29306 #29310]: #29311
+#29327 := [monotonicity #29312 #29324]: #29326
+#29332 := [trans #29327 #29330]: #29331
+#29807 := [monotonicity #29332]: #29806
+#29811 := [trans #29807 #29809]: #29810
+#29804 := [quant-inst]: #29803
+#29812 := [mp #29804 #29811]: #29802
+#29952 := [unit-resolution #29812 #29221 #29950 #29949]: #29951
+#29953 := [unit-resolution #29952 #29948]: #29308
+#29954 := (not #29308)
+#29956 := (or #29855 #29954 #29955)
+#29957 := [th-lemma]: #29956
+#29959 := [unit-resolution #29957 #29953]: #29958
+#29960 := [unit-resolution #29959 #29944]: #29955
+#29961 := [th-lemma #29903 #29960 #29936]: false
+#29962 := [lemma #29961]: #23806
+#29633 := [unit-resolution #29521 #29962]: #23818
+#29615 := [unit-resolution #29526 #29633 #29712]: #23815
+#23534 := (or #23812 #13075)
+#23416 := [def-axiom]: #23534
+#29713 := [unit-resolution #23416 #29615]: #13075
+#29142 := (or #13081 #23536)
+#29708 := [th-lemma]: #29142
+#29714 := [unit-resolution #29708 #29713]: #23536
+#29715 := [hypothesis]: #14144
+#29716 := [th-lemma #29715 #29714 #29231]: false
+#29717 := [lemma #29716]: #14145
+#29990 := (or #22784 #14144)
+#29985 := (= #3184 #3209)
+#29982 := (= #3209 #3184)
+#29979 := (= #3208 #3175)
+#29978 := [symm #29713]: #3247
+#29980 := [monotonicity #29978]: #29979
+#29983 := [monotonicity #29980]: #29982
+#29986 := [symm #29983]: #29985
+#29987 := (= uf_300 #3184)
+#23533 := (or #23812 #13070)
+#23531 := [def-axiom]: #23533
+#29977 := [unit-resolution #23531 #29615]: #13070
+#29984 := [symm #29977]: #3240
+#23373 := (or #23812 #3246)
+#23375 := [def-axiom]: #23373
+#29981 := [unit-resolution #23375 #29615]: #3246
+#29988 := [trans #29981 #29984]: #29987
+#29989 := [trans #29988 #29986]: #12862
+#29991 := [unit-resolution #23581 #29989]: #29990
+#29992 := [unit-resolution #29991 #29717]: #22784
+#29993 := [unit-resolution #23256 #29992]: #23770
+#29994 := [unit-resolution #23573 #29906]: #23776
+#29995 := [unit-resolution #29994 #29993]: #22836
+#30004 := [unit-resolution #23568 #29995]: #23584
+#30026 := (or #29945 #19387)
+#29570 := (+ #3184 #14120)
+#29587 := (<= #29570 0::int)
+#29569 := (= #3184 uf_300)
+#30005 := (= uf_304 uf_300)
+#30006 := [symm #29981]: #30005
+#30007 := [trans #29977 #30006]: #29569
+#30008 := (not #29569)
+#30009 := (or #30008 #29587)
+#30010 := [th-lemma]: #30009
+#30011 := [unit-resolution #30010 #30007]: #29587
+#30016 := (or #19017 #23851)
+#30012 := (or #19011 #23863)
+#30013 := [unit-resolution #23461 #29001 #29538]: #30012
+#30014 := [unit-resolution #30013 #29138]: #23863
+#30015 := [unit-resolution #23470 #30014]: #23854
+#30017 := [unit-resolution #23469 #29138 #30015]: #30016
+#30018 := [unit-resolution #30017 #29712]: #23851
+#30019 := [unit-resolution #23483 #30018]: #23842
+#30020 := [unit-resolution #23494 #29962 #30019]: #23839
+#23514 := (or #23836 #14211)
+#23498 := [def-axiom]: #23514
+#30021 := [unit-resolution #23498 #30020]: #14211
+#30022 := (not #29587)
+#30023 := (or #29539 #14207 #30022)
+#30024 := [th-lemma]: #30023
+#30025 := [unit-resolution #30024 #30021 #30011]: #29539
+#30027 := [unit-resolution #29947 #30025]: #30026
+#30028 := [unit-resolution #30027 #30004]: #29945
+#30029 := [unit-resolution #23242 #29995]: #19056
+#30030 := [unit-resolution #23592 #29995]: #19055
+#30031 := [unit-resolution #29812 #29221 #30030 #30029 #30028]: #29308
+#29996 := [unit-resolution #23243 #29995]: #23247
+#29997 := [hypothesis]: #29955
+#29998 := [th-lemma #29903 #29997 #29996]: false
+#29999 := [lemma #29998]: #29860
+#30032 := [unit-resolution #29957 #29999 #30031]: #29855
+#30033 := [unit-resolution #29890 #30032]: #29858
+#30034 := [unit-resolution #29875 #30033]: #29861
+[th-lemma #30011 #30034 #30004]: false
+unsat
--- a/src/HOL/Boogie/Tools/boogie_commands.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Boogie/Tools/boogie_commands.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -40,7 +40,11 @@
         fun store thm = Boogie_VCs.discharge (name, thm)
         fun after_qed [[thm]] = LocalTheory.theory (store thm)
           | after_qed _ = I
-      in lthy |> Proof.theorem_i NONE after_qed [[(vc, [])]] end)
+      in
+        lthy
+        |> Variable.auto_fixes vc
+        |> Proof.theorem_i NONE after_qed [[(vc, [])]]
+      end)
 
 fun boogie_end thy =
   let
--- a/src/HOL/Boogie/Tools/boogie_loader.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Boogie/Tools/boogie_loader.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -19,7 +19,7 @@
 
 val isabelle_name =
   let 
-    fun purge s = if Symbol.is_letdig s then s else
+    fun purge s = if Symbol.is_letter s orelse Symbol.is_digit s then s else
       (case s of
         "." => "_o_"
       | "_" => "_n_"
@@ -30,6 +30,11 @@
       | _   => ("_" ^ string_of_int (ord s) ^ "_"))
   in prefix "b_" o translate_string purge end
 
+val short_name =
+  translate_string (fn s => if Symbol.is_letdig s then s else "")
+
+fun label_name line col = "L_" ^ string_of_int line ^ "_" ^ string_of_int col
+
 datatype attribute_value = StringValue of string | TermValue of Term.term
 
 
@@ -131,13 +136,11 @@
     in get_first is_builtin end
 
   fun lookup_const thy name T =
-    let
-      val intern = Sign.intern_const thy name
-      val is_type_instance = Type.typ_instance o Sign.tsig_of
+    let val intern = Sign.intern_const thy name
     in
       if Sign.declared_const thy intern
       then
-        if is_type_instance thy (T, Sign.the_const_type thy intern)
+        if Sign.typ_instance thy (T, Sign.the_const_type thy intern)
         then SOME (Const (intern, T))
         else error ("Boogie: function already declared with different type: " ^
           quote name)
@@ -193,20 +196,38 @@
 
 
 
+local
+  fun burrow_distinct eq f xs =
+    let
+      val ys = distinct eq xs
+      val tab = ys ~~ f ys
+    in map (the o AList.lookup eq tab) xs end
+
+  fun indexed names =
+    let
+      val dup = member (op =) (duplicates (op =) (map fst names))
+      fun make_name (n, i) = n ^ (if dup n then "_" ^ string_of_int i else "")
+    in map make_name names end
+
+  fun rename idx_names =
+    idx_names
+    |> burrow_fst (burrow_distinct (op =)
+         (map short_name #> ` (duplicates (op =)) #-> Name.variant_list))
+    |> indexed
+in
 fun add_vcs verbose vcs thy =
   let
-    val reused = duplicates (op =) (map (fst o fst) vcs)
-    fun rename (n, i) = isabelle_name n ^
-      (if member (op =) reused n then "_" ^ string_of_int i else "")
-
-    fun decorate (name, t) = (rename name, HOLogic.mk_Trueprop t)
-    val vcs' = map decorate vcs
+    val vcs' =
+      vcs
+      |> burrow_fst rename
+      |> map (apsnd HOLogic.mk_Trueprop)
   in
     thy
     |> Boogie_VCs.set vcs'
     |> log verbose "The following verification conditions were loaded:"
          (map fst vcs')
   end
+end
 
 
 
@@ -272,8 +293,8 @@
 fun read_int' s = (case read_int (explode s) of (i, []) => SOME i | _ => NONE)
 
 fun $$$ s = Scan.one (fn (_, Token s') => s = s' | _ => false)
-val str = Scan.some (fn (_, Token s) => SOME s | _ => NONE)
-val num = Scan.some (fn (_, Token s) => read_int' s | _ => NONE)
+fun str st = Scan.some (fn (_, Token s) => SOME s | _ => NONE) st
+fun num st = Scan.some (fn (_, Token s) => read_int' s | _ => NONE) st
 
 fun scan_line key scan =
   $$$ key |-- scan --| Scan.one (fn (_, Newline) => true | _ => false)
@@ -314,7 +335,7 @@
     quant "forall" HOLogic.all_const ||
     quant "exists" HOLogic.exists_const ||
     scan_fail "illegal quantifier kind"
-  fun mk_quant q (n, T) t = q T $ Term.absfree (isabelle_name n, T, t)
+  fun mk_quant q (n, T) t = q T $ Term.absfree (n, T, t)
 
   val patternT = @{typ pattern}
   fun mk_pattern _ [] = raise TERM ("mk_pattern", [])
@@ -366,6 +387,31 @@
       val T1 = Term.fastype_of t1 and T2 = Term.fastype_of t2
       val U = mk_wordT (dest_wordT T1 + dest_wordT T2)
     in Const (@{const_name boogie_bv_concat}, [T1, T2] ---> U) $ t1 $ t2 end
+
+  val var_name = str >> prefix "V"
+  val dest_var_name = unprefix "V"
+  fun rename_variables t =
+    let
+      fun make_context names = Name.make_context (duplicates (op =) names)
+      fun short_var_name n = short_name (dest_var_name n)
+
+      val (names, nctxt) =
+        Term.add_free_names t []
+        |> map_filter (try (fn n => (n, short_var_name n)))
+        |> split_list
+        ||>> (fn names => Name.variants names (make_context names))
+        |>> Symtab.make o (op ~~)
+
+      fun rename_free n = the_default n (Symtab.lookup names n)
+      fun rename_abs n = yield_singleton Name.variants (short_var_name n)
+
+      fun rename _ (Free (n, T)) = Free (rename_free n, T)
+        | rename nctxt (Abs (n, T, t)) =
+            let val (n', nctxt') = rename_abs n nctxt
+            in Abs (n', T, rename nctxt' t) end
+        | rename nctxt (t $ u) = rename nctxt t $ rename nctxt u
+        | rename _ t = t
+    in rename nctxt t end
 in
 fun expr tds fds =
   let
@@ -385,12 +431,12 @@
         (fn [] => @{term True}
           | ts as (t :: _) => mk_distinct (Term.fastype_of t) ts) ||
       binexp "=" HOLogic.mk_eq ||
-      scan_line "var" str -- typ tds >> (Free o apfst isabelle_name) ||
+      scan_line "var" var_name -- typ tds >> Free ||
       scan_line "fun" (str -- num) :|-- (fn (name, arity) =>
         scan_lookup "constant" fds name -- scan_count exp arity >>
         Term.list_comb) ||
       quants :|-- (fn (q, ((n, k), i)) =>
-        scan_count (scan_line "var" str -- typ tds) n --
+        scan_count (scan_line "var" var_name -- typ tds) n --
         scan_count (pattern exp) k --
         scan_count (attribute tds fds) i --
         exp >> (fn (((vs, ps), _), t) =>
@@ -398,8 +444,7 @@
       scan_line "label" (label_kind -- num -- num) -- exp >>
         (fn (((l, line), col), t) =>
           if line = 0 orelse col = 0 then t
-          else l $ Free ("L_" ^ string_of_int line ^ "_" ^ string_of_int col,
-            @{typ bool}) $ t) ||
+          else l $ Free (label_name line col, @{typ bool}) $ t) ||
       scan_line "int-num" num >> HOLogic.mk_number @{typ int} ||
       binexp "<" (binop @{term "op < :: int => _"}) ||
       binexp "<=" (binop @{term "op <= :: int => _"}) ||
@@ -421,7 +466,7 @@
       scan_line "bv-extract" (num -- num) -- exp >> mk_extract ||
       binexp "bv-concat" mk_concat ||
       scan_fail "illegal expression") st
-  in exp end
+  in exp >> rename_variables end
 
 and attribute tds fds =
   let
--- a/src/HOL/Code_Evaluation.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Code_Evaluation.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -243,6 +243,26 @@
 hide const dummy_term App valapp
 hide (open) const Const termify valtermify term_of term_of_num
 
+subsection {* Tracing of generated and evaluated code *}
+
+definition tracing :: "String.literal => 'a => 'a"
+where
+  [code del]: "tracing s x = x"
+
+ML {*
+structure Code_Evaluation =
+struct
+
+fun tracing s x = (Output.tracing s; x)
+
+end
+*}
+
+code_const "tracing :: String.literal => 'a => 'a"
+  (Eval "Code'_Evaluation.tracing")
+
+hide (open) const tracing
+code_reserved Eval Code_Evaluation
 
 subsection {* Evaluation setup *}
 
--- a/src/HOL/FunDef.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/FunDef.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -22,7 +22,7 @@
   ("Tools/Function/lexicographic_order.ML")
   ("Tools/Function/pat_completeness.ML")
   ("Tools/Function/fun.ML")
-  ("Tools/Function/induction_scheme.ML")
+  ("Tools/Function/induction_schema.ML")
   ("Tools/Function/termination.ML")
   ("Tools/Function/decompose.ML")
   ("Tools/Function/descent.ML")
@@ -114,13 +114,13 @@
 use "Tools/Function/function.ML"
 use "Tools/Function/pat_completeness.ML"
 use "Tools/Function/fun.ML"
-use "Tools/Function/induction_scheme.ML"
+use "Tools/Function/induction_schema.ML"
 
 setup {* 
   Function.setup
   #> Pat_Completeness.setup
   #> Function_Fun.setup
-  #> Induction_Scheme.setup
+  #> Induction_Schema.setup
 *}
 
 subsection {* Measure Functions *}
--- a/src/HOL/IsaMakefile	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/IsaMakefile	Sat Nov 07 07:37:20 2009 -0800
@@ -57,7 +57,6 @@
   HOL-Prolog \
   HOL-SET_Protocol \
   HOL-SMT-Examples \
-  HOL-SizeChange \
   HOL-Statespace \
   HOL-Subst \
       TLA-Buffer \
@@ -181,7 +180,7 @@
   Tools/Function/function_lib.ML \
   Tools/Function/function.ML \
   Tools/Function/fun.ML \
-  Tools/Function/induction_scheme.ML \
+  Tools/Function/induction_schema.ML \
   Tools/Function/lexicographic_order.ML \
   Tools/Function/measure_functions.ML \
   Tools/Function/mutual.ML \
@@ -663,7 +662,7 @@
   Algebra/poly/UnivPoly2.thy \
   Algebra/ringsimp.ML
 
-$(LOG)/HOL-Algebra.gz: $(ALGEBRA_DEPENDENCIES)
+$(OUT)/HOL-Algebra: $(ALGEBRA_DEPENDENCIES)
 	@cd Algebra; $(ISABELLE_TOOL) usedir -b -g true -V outline=/proof,/ML $(OUT)/HOL HOL-Algebra
 
 
@@ -766,19 +765,6 @@
 	@$(ISABELLE_TOOL) usedir $(OUT)/HOL Imperative_HOL
 
 
-## HOL-SizeChange
-
-HOL-SizeChange: HOL $(LOG)/HOL-SizeChange.gz
-
-$(LOG)/HOL-SizeChange.gz: $(OUT)/HOL Library/Kleene_Algebra.thy	\
-  SizeChange/Graphs.thy SizeChange/Misc_Tools.thy			\
-  SizeChange/Criterion.thy SizeChange/Correctness.thy			\
-  SizeChange/Interpretation.thy SizeChange/Implementation.thy		\
-  SizeChange/Size_Change_Termination.thy SizeChange/Examples.thy	\
-  SizeChange/sct.ML SizeChange/ROOT.ML
-	@$(ISABELLE_TOOL) usedir $(OUT)/HOL SizeChange
-
-
 ## HOL-Decision_Procs
 
 HOL-Decision_Procs: HOL $(LOG)/HOL-Decision_Procs.gz
@@ -953,7 +939,7 @@
   ex/Efficient_Nat_examples.thy ex/Eval_Examples.thy ex/Fundefs.thy	\
   ex/Groebner_Examples.thy ex/Guess.thy ex/HarmonicSeries.thy		\
   ex/Hebrew.thy ex/Hex_Bin_Examples.thy ex/Higher_Order_Logic.thy	\
-  ex/Hilbert_Classical.thy ex/Induction_Scheme.thy			\
+  ex/Hilbert_Classical.thy ex/Induction_Schema.thy			\
   ex/InductiveInvariant.thy ex/InductiveInvariant_examples.thy		\
   ex/Intuitionistic.thy ex/Lagrange.thy ex/LocaleTest2.thy ex/MT.thy	\
   ex/MergeSort.thy ex/Meson_Test.thy ex/MonoidGroup.thy			\
@@ -1343,7 +1329,15 @@
   SMT/Examples/cert/z3_linarith_15					\
   SMT/Examples/cert/z3_linarith_15.proof				\
   SMT/Examples/cert/z3_linarith_16					\
-  SMT/Examples/cert/z3_linarith_16.proof SMT/Examples/cert/z3_mono_01	\
+  SMT/Examples/cert/z3_linarith_16.proof				\
+  SMT/Examples/cert/z3_linarith_17					\
+  SMT/Examples/cert/z3_linarith_17.proof				\
+  SMT/Examples/cert/z3_linarith_18					\
+  SMT/Examples/cert/z3_linarith_18.proof				\
+  SMT/Examples/cert/z3_linarith_19					\
+  SMT/Examples/cert/z3_linarith_19.proof				\
+  SMT/Examples/cert/z3_linarith_20					\
+  SMT/Examples/cert/z3_linarith_20.proof SMT/Examples/cert/z3_mono_01	\
   SMT/Examples/cert/z3_mono_01.proof SMT/Examples/cert/z3_mono_02	\
   SMT/Examples/cert/z3_mono_02.proof SMT/Examples/cert/z3_nat_arith_01	\
   SMT/Examples/cert/z3_nat_arith_01.proof				\
@@ -1400,40 +1394,50 @@
   Boogie/Examples/ROOT.ML Boogie/Examples/Boogie_Max.thy		\
   Boogie/Examples/Boogie_Max.b2i Boogie/Examples/Boogie_Dijkstra.thy	\
   Boogie/Examples/VCC_Max.thy Boogie/Examples/Boogie_Dijkstra.b2i	\
-  Boogie/Examples/VCC_Max.b2i Boogie/Examples/cert/Boogie_b_max		\
-  Boogie/Examples/cert/Boogie_b_max.proof				\
-  Boogie/Examples/cert/Boogie_b_Dijkstra				\
-  Boogie/Examples/cert/Boogie_b_Dijkstra.proof				\
-  Boogie/Examples/cert/VCC_b_maximum					\
-  Boogie/Examples/cert/VCC_b_maximum.proof
+  Boogie/Examples/VCC_Max.b2i Boogie/Examples/cert/Boogie_max		\
+  Boogie/Examples/cert/Boogie_max.proof					\
+  Boogie/Examples/cert/Boogie_Dijkstra					\
+  Boogie/Examples/cert/Boogie_Dijkstra.proof				\
+  Boogie/Examples/cert/VCC_maximum					\
+  Boogie/Examples/cert/VCC_maximum.proof
 	@cd Boogie; $(ISABELLE_TOOL) usedir $(OUT)/HOL-Boogie Examples
 
 
 ## clean
 
 clean:
-	@rm -f $(OUT)/HOL-Plain $(OUT)/HOL-Main $(OUT)/HOL		\
-		$(OUT)/HOL-Nominal $(OUT)/TLA $(LOG)/HOL.gz		\
-		$(LOG)/TLA.gz $(LOG)/HOL-Isar_Examples.gz		\
-		$(LOG)/HOL-Induct.gz $(LOG)/HOL-ex.gz			\
-		$(LOG)/HOL-Subst.gz $(LOG)/HOL-IMP.gz			\
-		$(LOG)/HOL-IMPP.gz $(LOG)/HOL-Hoare.gz			\
-		$(LOG)/HOL-Hoare_Parallel.gz $(LOG)/HOL-Lex.gz		\
-		$(LOG)/HOL-Algebra.gz $(LOG)/HOL-Auth.gz		\
-		$(LOG)/HOL-UNITY.gz $(LOG)/HOL-Modelcheck.gz		\
-		$(LOG)/HOL-Lambda.gz $(LOG)/HOL-Bali.gz			\
-		$(LOG)/HOL-MicroJava.gz $(LOG)/HOL-NanoJava.gz		\
-		$(OUT)/HOL-Multivariate_Analysis			\
-		$(LOG)/HOL-Nominal-Examples.gz $(LOG)/HOL-IOA.gz	\
-		$(LOG)/HOL-Lattice $(LOG)/HOL-Matrix			\
-		$(LOG)/HOL-Hahn_Banach.gz $(LOG)/HOL-SET_Protocol.gz	\
-		$(LOG)/TLA-Inc.gz $(LOG)/TLA-Buffer.gz			\
-		$(LOG)/TLA-Memory.gz $(LOG)/HOL-Library.gz		\
-		$(LOG)/HOL-Unix.gz $(OUT)/HOL-Word $(LOG)/HOL-Word.gz	\
-		$(LOG)/HOL-Word-Examples.gz $(OUT)/HOL-NSA		\
-		$(LOG)/HOL-NSA.gz $(LOG)/HOL-NSA-Examples.gz		\
-		$(LOG)/HOL-Mirabelle.gz $(OUT)/HOL-SMT			\
-		$(LOG)/HOL-SMT.gz $(LOG)/HOL-SMT-Examples.gz 		\
-		$(OUT)/HOL-Boogie $(LOG)/HOL-Boogie.gz 			\
-		$(LOG)/HOL-Boogie-Examples.gz
-
+	@rm -f $(LOG)/HOL-Algebra.gz $(LOG)/HOL-Auth.gz			\
+		$(LOG)/HOL-Bali.gz $(LOG)/HOL-Base.gz			\
+		$(LOG)/HOL-Boogie-Examples.gz $(LOG)/HOL-Boogie.gz	\
+		$(LOG)/HOL-Decision_Procs.gz $(LOG)/HOL-Extraction.gz	\
+		$(LOG)/HOL-Hahn_Banach.gz $(LOG)/HOL-Hoare.gz		\
+		$(LOG)/HOL-Hoare_Parallel.gz $(LOG)/HOL-IMP.gz		\
+		$(LOG)/HOL-IMPP.gz $(LOG)/HOL-IOA.gz			\
+		$(LOG)/HOL-Imperative_HOL.gz $(LOG)/HOL-Import.gz	\
+		$(LOG)/HOL-Induct.gz $(LOG)/HOL-Isar_Examples.gz	\
+		$(LOG)/HOL-Lambda.gz $(LOG)/HOL-Lattice			\
+		$(LOG)/HOL-Lattice.gz $(LOG)/HOL-Lex.gz			\
+		$(LOG)/HOL-Library.gz $(LOG)/HOL-Main.gz		\
+		$(LOG)/HOL-Matrix $(LOG)/HOL-Matrix.gz			\
+		$(LOG)/HOL-Metis_Examples.gz $(LOG)/HOL-MicroJava.gz	\
+		$(LOG)/HOL-Mirabelle.gz $(LOG)/HOL-Modelcheck.gz	\
+		$(LOG)/HOL-Multivariate_Analysis.gz			\
+		$(LOG)/HOL-NSA-Examples.gz $(LOG)/HOL-NSA.gz		\
+		$(LOG)/HOL-NanoJava.gz $(LOG)/HOL-Nitpick_Examples.gz	\
+		$(LOG)/HOL-Nominal-Examples.gz $(LOG)/HOL-Nominal.gz	\
+		$(LOG)/HOL-Number_Theory.gz				\
+		$(LOG)/HOL-Old_Number_Theory.gz $(LOG)/HOL-Plain.gz	\
+		$(LOG)/HOL-Probability.gz $(LOG)/HOL-Prolog.gz		\
+		$(LOG)/HOL-SET_Protocol.gz $(LOG)/HOL-SMT-Examples.gz	\
+		$(LOG)/HOL-SMT.gz					\
+		$(LOG)/HOL-Statespace.gz $(LOG)/HOL-Subst.gz		\
+		$(LOG)/HOL-UNITY.gz $(LOG)/HOL-Unix.gz			\
+		$(LOG)/HOL-W0.gz $(LOG)/HOL-Word-Examples.gz		\
+		$(LOG)/HOL-Word.gz $(LOG)/HOL-ZF.gz $(LOG)/HOL-ex.gz	\
+		$(LOG)/HOL.gz $(LOG)/HOL4.gz $(LOG)/TLA-Buffer.gz	\
+		$(LOG)/TLA-Inc.gz $(LOG)/TLA-Memory.gz $(LOG)/TLA.gz	\
+		$(OUT)/HOL $(OUT)/HOL-Algebra $(OUT)/HOL-Base		\
+		$(OUT)/HOL-Boogie $(OUT)/HOL-Main			\
+		$(OUT)/HOL-Multivariate_Analysis $(OUT)/HOL-NSA		\
+		$(OUT)/HOL-Nominal $(OUT)/HOL-Plain $(OUT)/HOL-SMT	\
+		$(OUT)/HOL-Word $(OUT)/HOL4 $(OUT)/TLA
--- a/src/HOL/Library/Permutation.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Library/Permutation.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -93,11 +93,9 @@
 
 subsection {* Removing elements *}
 
-consts
-  remove :: "'a => 'a list => 'a list"
-primrec
-  "remove x [] = []"
-  "remove x (y # ys) = (if x = y then ys else y # remove x ys)"
+primrec remove :: "'a => 'a list => 'a list" where
+    "remove x [] = []"
+  | "remove x (y # ys) = (if x = y then ys else y # remove x ys)"
 
 lemma perm_remove: "x \<in> set ys ==> ys <~~> x # remove x ys"
   by (induct ys) auto
@@ -156,7 +154,7 @@
   done
 
 lemma multiset_of_le_perm_append:
-    "(multiset_of xs \<le># multiset_of ys) = (\<exists>zs. xs @ zs <~~> ys)";
+    "(multiset_of xs \<le># multiset_of ys) = (\<exists>zs. xs @ zs <~~> ys)"
   apply (auto simp: multiset_of_eq_perm[THEN sym] mset_le_exists_conv)
   apply (insert surj_multiset_of, drule surjD)
   apply (blast intro: sym)+
--- a/src/HOL/Library/Sublist_Order.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Library/Sublist_Order.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -226,8 +226,7 @@
 lemma le_list_filter: "xs \<le> ys \<Longrightarrow> filter f xs \<le> filter f ys"
 by (induct rule: less_eq_list.induct) (auto intro: less_eq_list.drop)
 
-
-lemma "xs <= ys \<longleftrightarrow> (EX N. xs = sublist ys N)" (is "?L = ?R")
+lemma "xs \<le> ys \<longleftrightarrow> (EX N. xs = sublist ys N)" (is "?L = ?R")
 proof
   assume ?L
   thus ?R
--- a/src/HOL/Library/positivstellensatz.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Library/positivstellensatz.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -1,7 +1,9 @@
-(* Title:      Library/Sum_Of_Squares/positivstellensatz
-   Author:     Amine Chaieb, University of Cambridge
-   Description: A generic arithmetic prover based on Positivstellensatz certificates --- 
-    also implements Fourrier-Motzkin elimination as a special case Fourrier-Motzkin elimination.
+(*  Title:      HOL/Library/positivstellensatz.ML
+    Author:     Amine Chaieb, University of Cambridge
+
+A generic arithmetic prover based on Positivstellensatz certificates
+--- also implements Fourrier-Motzkin elimination as a special case
+Fourrier-Motzkin elimination.
 *)
 
 (* A functor for finite mappings based on Tables *)
@@ -187,87 +189,90 @@
   if exists (curry op aconv (concl_of tha)) (#hyps (rep_thm thb)) 
   then equal_elim (symmetric (deduct_antisym_rule tha thb)) tha else thb;
 
-fun conjunctions th = case try Conjunction.elim th of
-   SOME (th1,th2) => (conjunctions th1) @ conjunctions th2
- | NONE => [th];
-
-val pth = @{lemma "(((x::real) < y) == (y - x > 0)) &&& ((x <= y) == (y - x >= 0)) 
-     &&& ((x = y) == (x - y = 0)) &&& ((~(x < y)) == (x - y >= 0)) &&& ((~(x <= y)) == (x - y > 0))
-     &&& ((~(x = y)) == (x - y > 0 | -(x - y) > 0))"
-  by (atomize (full), auto simp add: less_diff_eq le_diff_eq not_less)} |> 
-conjunctions;
+val pth = @{lemma "(((x::real) < y) == (y - x > 0))" and "((x <= y) == (y - x >= 0))" and
+     "((x = y) == (x - y = 0))" and "((~(x < y)) == (x - y >= 0))" and
+     "((~(x <= y)) == (x - y > 0))" and "((~(x = y)) == (x - y > 0 | -(x - y) > 0))"
+  by (atomize (full), auto simp add: less_diff_eq le_diff_eq not_less)};
 
 val pth_final = @{lemma "(~p ==> False) ==> p" by blast}
 val pth_add = 
- @{lemma "(x = (0::real) ==> y = 0 ==> x + y = 0 ) &&& ( x = 0 ==> y >= 0 ==> x + y >= 0) 
-    &&& (x = 0 ==> y > 0 ==> x + y > 0) &&& (x >= 0 ==> y = 0 ==> x + y >= 0) 
-    &&& (x >= 0 ==> y >= 0 ==> x + y >= 0) &&& (x >= 0 ==> y > 0 ==> x + y > 0) 
-    &&& (x > 0 ==> y = 0 ==> x + y > 0) &&& (x > 0 ==> y >= 0 ==> x + y > 0) 
-    &&& (x > 0 ==> y > 0 ==> x + y > 0)"  by simp_all} |> conjunctions ;
+  @{lemma "(x = (0::real) ==> y = 0 ==> x + y = 0 )" and "( x = 0 ==> y >= 0 ==> x + y >= 0)" and
+    "(x = 0 ==> y > 0 ==> x + y > 0)" and "(x >= 0 ==> y = 0 ==> x + y >= 0)" and
+    "(x >= 0 ==> y >= 0 ==> x + y >= 0)" and "(x >= 0 ==> y > 0 ==> x + y > 0)" and
+    "(x > 0 ==> y = 0 ==> x + y > 0)" and "(x > 0 ==> y >= 0 ==> x + y > 0)" and
+    "(x > 0 ==> y > 0 ==> x + y > 0)" by simp_all};
 
 val pth_mul = 
-  @{lemma "(x = (0::real) ==> y = 0 ==> x * y = 0) &&& (x = 0 ==> y >= 0 ==> x * y = 0) &&& 
-           (x = 0 ==> y > 0 ==> x * y = 0) &&& (x >= 0 ==> y = 0 ==> x * y = 0) &&& 
-           (x >= 0 ==> y >= 0 ==> x * y >= 0 ) &&& ( x >= 0 ==> y > 0 ==> x * y >= 0 ) &&&
-           (x > 0 ==>  y = 0 ==> x * y = 0 ) &&& ( x > 0 ==> y >= 0 ==> x * y >= 0 ) &&&
-           (x > 0 ==>  y > 0 ==> x * y > 0)"
+  @{lemma "(x = (0::real) ==> y = 0 ==> x * y = 0)" and "(x = 0 ==> y >= 0 ==> x * y = 0)" and
+    "(x = 0 ==> y > 0 ==> x * y = 0)" and "(x >= 0 ==> y = 0 ==> x * y = 0)" and
+    "(x >= 0 ==> y >= 0 ==> x * y >= 0)" and "(x >= 0 ==> y > 0 ==> x * y >= 0)" and
+    "(x > 0 ==>  y = 0 ==> x * y = 0)" and "(x > 0 ==> y >= 0 ==> x * y >= 0)" and
+    "(x > 0 ==>  y > 0 ==> x * y > 0)"
   by (auto intro: mult_mono[where a="0::real" and b="x" and d="y" and c="0", simplified]
-    mult_strict_mono[where b="x" and d="y" and a="0" and c="0", simplified])} |> conjunctions;
+    mult_strict_mono[where b="x" and d="y" and a="0" and c="0", simplified])};
 
 val pth_emul = @{lemma "y = (0::real) ==> x * y = 0"  by simp};
 val pth_square = @{lemma "x * x >= (0::real)"  by simp};
 
-val weak_dnf_simps = List.take (simp_thms, 34) 
-    @ conjunctions @{lemma "((P & (Q | R)) = ((P&Q) | (P&R))) &&& ((Q | R) & P) = ((Q&P) | (R&P)) &&& (P & Q) = (Q & P) &&& ((P | Q) = (Q | P))" by blast+};
+val weak_dnf_simps =
+  List.take (simp_thms, 34) @
+    @{lemma "((P & (Q | R)) = ((P&Q) | (P&R)))" and "((Q | R) & P) = ((Q&P) | (R&P))" and
+      "(P & Q) = (Q & P)" and "((P | Q) = (Q | P))" by blast+};
 
-val nnfD_simps = conjunctions @{lemma "((~(P & Q)) = (~P | ~Q)) &&& ((~(P | Q)) = (~P & ~Q) ) &&& ((P --> Q) = (~P | Q) ) &&& ((P = Q) = ((P & Q) | (~P & ~ Q))) &&& ((~(P = Q)) = ((P & ~ Q) | (~P & Q)) ) &&& ((~ ~(P)) = P)" by blast+}
+val nnfD_simps =
+  @{lemma "((~(P & Q)) = (~P | ~Q))" and "((~(P | Q)) = (~P & ~Q) )" and
+    "((P --> Q) = (~P | Q) )" and "((P = Q) = ((P & Q) | (~P & ~ Q)))" and
+    "((~(P = Q)) = ((P & ~ Q) | (~P & Q)) )" and "((~ ~(P)) = P)" by blast+};
 
 val choice_iff = @{lemma "(ALL x. EX y. P x y) = (EX f. ALL x. P x (f x))" by metis};
-val prenex_simps = map (fn th => th RS sym) ([@{thm "all_conj_distrib"}, @{thm "ex_disj_distrib"}] @ @{thms "all_simps"(1-4)} @ @{thms "ex_simps"(1-4)});
+val prenex_simps =
+  map (fn th => th RS sym)
+    ([@{thm "all_conj_distrib"}, @{thm "ex_disj_distrib"}] @
+      @{thms "all_simps"(1-4)} @ @{thms "ex_simps"(1-4)});
 
-val real_abs_thms1 = conjunctions @{lemma
-  "((-1 * abs(x::real) >= r) = (-1 * x >= r & 1 * x >= r)) &&&
-  ((-1 * abs(x) + a >= r) = (a + -1 * x >= r & a + 1 * x >= r)) &&&
-  ((a + -1 * abs(x) >= r) = (a + -1 * x >= r & a + 1 * x >= r)) &&&
-  ((a + -1 * abs(x) + b >= r) = (a + -1 * x + b >= r & a + 1 * x + b >= r)) &&&
-  ((a + b + -1 * abs(x) >= r) = (a + b + -1 * x >= r & a + b + 1 * x >= r)) &&&
-  ((a + b + -1 * abs(x) + c >= r) = (a + b + -1 * x + c >= r & a + b + 1 * x + c >= r)) &&&
-  ((-1 * max x y >= r) = (-1 * x >= r & -1 * y >= r)) &&&
-  ((-1 * max x y + a >= r) = (a + -1 * x >= r & a + -1 * y >= r)) &&&
-  ((a + -1 * max x y >= r) = (a + -1 * x >= r & a + -1 * y >= r)) &&&
-  ((a + -1 * max x y + b >= r) = (a + -1 * x + b >= r & a + -1 * y  + b >= r)) &&&
-  ((a + b + -1 * max x y >= r) = (a + b + -1 * x >= r & a + b + -1 * y >= r)) &&&
-  ((a + b + -1 * max x y + c >= r) = (a + b + -1 * x + c >= r & a + b + -1 * y  + c >= r)) &&&
-  ((1 * min x y >= r) = (1 * x >= r & 1 * y >= r)) &&&
-  ((1 * min x y + a >= r) = (a + 1 * x >= r & a + 1 * y >= r)) &&&
-  ((a + 1 * min x y >= r) = (a + 1 * x >= r & a + 1 * y >= r)) &&&
-  ((a + 1 * min x y + b >= r) = (a + 1 * x + b >= r & a + 1 * y  + b >= r) )&&&
-  ((a + b + 1 * min x y >= r) = (a + b + 1 * x >= r & a + b + 1 * y >= r)) &&&
-  ((a + b + 1 * min x y + c >= r) = (a + b + 1 * x + c >= r & a + b + 1 * y  + c >= r)) &&&
-  ((min x y >= r) = (x >= r &  y >= r)) &&&
-  ((min x y + a >= r) = (a + x >= r & a + y >= r)) &&&
-  ((a + min x y >= r) = (a + x >= r & a + y >= r)) &&&
-  ((a + min x y + b >= r) = (a + x + b >= r & a + y  + b >= r)) &&&
-  ((a + b + min x y >= r) = (a + b + x >= r & a + b + y >= r) )&&&
-  ((a + b + min x y + c >= r) = (a + b + x + c >= r & a + b + y + c >= r)) &&&
-  ((-1 * abs(x) > r) = (-1 * x > r & 1 * x > r)) &&&
-  ((-1 * abs(x) + a > r) = (a + -1 * x > r & a + 1 * x > r)) &&&
-  ((a + -1 * abs(x) > r) = (a + -1 * x > r & a + 1 * x > r)) &&&
-  ((a + -1 * abs(x) + b > r) = (a + -1 * x + b > r & a + 1 * x + b > r)) &&&
-  ((a + b + -1 * abs(x) > r) = (a + b + -1 * x > r & a + b + 1 * x > r)) &&&
-  ((a + b + -1 * abs(x) + c > r) = (a + b + -1 * x + c > r & a + b + 1 * x + c > r)) &&&
-  ((-1 * max x y > r) = ((-1 * x > r) & -1 * y > r)) &&&
-  ((-1 * max x y + a > r) = (a + -1 * x > r & a + -1 * y > r)) &&&
-  ((a + -1 * max x y > r) = (a + -1 * x > r & a + -1 * y > r)) &&&
-  ((a + -1 * max x y + b > r) = (a + -1 * x + b > r & a + -1 * y  + b > r)) &&&
-  ((a + b + -1 * max x y > r) = (a + b + -1 * x > r & a + b + -1 * y > r)) &&&
-  ((a + b + -1 * max x y + c > r) = (a + b + -1 * x + c > r & a + b + -1 * y  + c > r)) &&&
-  ((min x y > r) = (x > r &  y > r)) &&&
-  ((min x y + a > r) = (a + x > r & a + y > r)) &&&
-  ((a + min x y > r) = (a + x > r & a + y > r)) &&&
-  ((a + min x y + b > r) = (a + x + b > r & a + y  + b > r)) &&&
-  ((a + b + min x y > r) = (a + b + x > r & a + b + y > r)) &&&
-  ((a + b + min x y + c > r) = (a + b + x + c > r & a + b + y + c > r))"
+val real_abs_thms1 = @{lemma
+  "((-1 * abs(x::real) >= r) = (-1 * x >= r & 1 * x >= r))" and
+  "((-1 * abs(x) + a >= r) = (a + -1 * x >= r & a + 1 * x >= r))" and
+  "((a + -1 * abs(x) >= r) = (a + -1 * x >= r & a + 1 * x >= r))" and
+  "((a + -1 * abs(x) + b >= r) = (a + -1 * x + b >= r & a + 1 * x + b >= r))" and
+  "((a + b + -1 * abs(x) >= r) = (a + b + -1 * x >= r & a + b + 1 * x >= r))" and
+  "((a + b + -1 * abs(x) + c >= r) = (a + b + -1 * x + c >= r & a + b + 1 * x + c >= r))" and
+  "((-1 * max x y >= r) = (-1 * x >= r & -1 * y >= r))" and
+  "((-1 * max x y + a >= r) = (a + -1 * x >= r & a + -1 * y >= r))" and
+  "((a + -1 * max x y >= r) = (a + -1 * x >= r & a + -1 * y >= r))" and
+  "((a + -1 * max x y + b >= r) = (a + -1 * x + b >= r & a + -1 * y  + b >= r))" and
+  "((a + b + -1 * max x y >= r) = (a + b + -1 * x >= r & a + b + -1 * y >= r))" and
+  "((a + b + -1 * max x y + c >= r) = (a + b + -1 * x + c >= r & a + b + -1 * y  + c >= r))" and
+  "((1 * min x y >= r) = (1 * x >= r & 1 * y >= r))" and
+  "((1 * min x y + a >= r) = (a + 1 * x >= r & a + 1 * y >= r))" and
+  "((a + 1 * min x y >= r) = (a + 1 * x >= r & a + 1 * y >= r))" and
+  "((a + 1 * min x y + b >= r) = (a + 1 * x + b >= r & a + 1 * y  + b >= r))" and
+  "((a + b + 1 * min x y >= r) = (a + b + 1 * x >= r & a + b + 1 * y >= r))" and
+  "((a + b + 1 * min x y + c >= r) = (a + b + 1 * x + c >= r & a + b + 1 * y  + c >= r))" and
+  "((min x y >= r) = (x >= r &  y >= r))" and
+  "((min x y + a >= r) = (a + x >= r & a + y >= r))" and
+  "((a + min x y >= r) = (a + x >= r & a + y >= r))" and
+  "((a + min x y + b >= r) = (a + x + b >= r & a + y  + b >= r))" and
+  "((a + b + min x y >= r) = (a + b + x >= r & a + b + y >= r))" and
+  "((a + b + min x y + c >= r) = (a + b + x + c >= r & a + b + y + c >= r))" and
+  "((-1 * abs(x) > r) = (-1 * x > r & 1 * x > r))" and
+  "((-1 * abs(x) + a > r) = (a + -1 * x > r & a + 1 * x > r))" and
+  "((a + -1 * abs(x) > r) = (a + -1 * x > r & a + 1 * x > r))" and
+  "((a + -1 * abs(x) + b > r) = (a + -1 * x + b > r & a + 1 * x + b > r))" and
+  "((a + b + -1 * abs(x) > r) = (a + b + -1 * x > r & a + b + 1 * x > r))" and
+  "((a + b + -1 * abs(x) + c > r) = (a + b + -1 * x + c > r & a + b + 1 * x + c > r))" and
+  "((-1 * max x y > r) = ((-1 * x > r) & -1 * y > r))" and
+  "((-1 * max x y + a > r) = (a + -1 * x > r & a + -1 * y > r))" and
+  "((a + -1 * max x y > r) = (a + -1 * x > r & a + -1 * y > r))" and
+  "((a + -1 * max x y + b > r) = (a + -1 * x + b > r & a + -1 * y  + b > r))" and
+  "((a + b + -1 * max x y > r) = (a + b + -1 * x > r & a + b + -1 * y > r))" and
+  "((a + b + -1 * max x y + c > r) = (a + b + -1 * x + c > r & a + b + -1 * y  + c > r))" and
+  "((min x y > r) = (x > r &  y > r))" and
+  "((min x y + a > r) = (a + x > r & a + y > r))" and
+  "((a + min x y > r) = (a + x > r & a + y > r))" and
+  "((a + min x y + b > r) = (a + x + b > r & a + y  + b > r))" and
+  "((a + b + min x y > r) = (a + b + x > r & a + b + y > r))" and
+  "((a + b + min x y + c > r) = (a + b + x + c > r & a + b + y + c > r))"
   by auto};
 
 val abs_split' = @{lemma "P (abs (x::'a::ordered_idom)) == (x >= 0 & P x | x < 0 & P (-x))"
--- a/src/HOL/SMT/Examples/SMT_Examples.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/SMT/Examples/SMT_Examples.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -390,6 +390,26 @@
   by smt
 
 
+lemma "let P = 2 * x + 1 > x + (x::real) in P \<or> False \<or> P"
+  using [[smt_cert="$ISABELLE_SMT/Examples/cert/z3_linarith_17"]]
+  by smt
+
+lemma "x + (let y = x mod 2 in 2 * y + 1) \<ge> x + (1::int)"
+  using [[smt_cert="$ISABELLE_SMT/Examples/cert/z3_linarith_18"]]
+  by smt
+
+lemma "x + (let y = x mod 2 in y + y) < x + (3::int)"
+  using [[smt_cert="$ISABELLE_SMT/Examples/cert/z3_linarith_19"]]
+  by smt
+
+lemma 
+  assumes "x \<noteq> (0::real)"
+  shows "x + x \<noteq> (let P = (abs x > 1) in if P \<or> \<not>P then 4 else 2) * x"
+  using assms
+  using [[smt_cert="$ISABELLE_SMT/Examples/cert/z3_linarith_20"]]
+  by smt
+
+
 subsection {* Linear arithmetic with quantifiers *}
 
 lemma "~ (\<exists>x::int. False)"
@@ -529,7 +549,7 @@
 
 section {* Bitvectors *}
 
-locale bv
+locale z3_bv_test
 begin
 
 text {*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/SMT/Examples/cert/z3_linarith_17	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,8 @@
+(benchmark Isabelle
+:extrasorts ( T1)
+:extrafuns (
+  (uf_1 Real)
+ )
+:assumption (not (flet ($x1 (< (+ uf_1 uf_1) (+ (* 2.0 uf_1) 1.0))) (or $x1 (or false $x1))))
+:formula true
+)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/SMT/Examples/cert/z3_linarith_17.proof	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,52 @@
+#2 := false
+#8 := 1::real
+decl uf_1 :: real
+#4 := uf_1
+#6 := 2::real
+#7 := (* 2::real uf_1)
+#9 := (+ #7 1::real)
+#5 := (+ uf_1 uf_1)
+#10 := (< #5 #9)
+#11 := (or false #10)
+#12 := (or #10 #11)
+#13 := (not #12)
+#64 := (iff #13 false)
+#32 := (+ 1::real #7)
+#35 := (< #7 #32)
+#52 := (not #35)
+#62 := (iff #52 false)
+#1 := true
+#57 := (not true)
+#60 := (iff #57 false)
+#61 := [rewrite]: #60
+#58 := (iff #52 #57)
+#55 := (iff #35 true)
+#56 := [rewrite]: #55
+#59 := [monotonicity #56]: #58
+#63 := [trans #59 #61]: #62
+#53 := (iff #13 #52)
+#50 := (iff #12 #35)
+#45 := (or #35 #35)
+#48 := (iff #45 #35)
+#49 := [rewrite]: #48
+#46 := (iff #12 #45)
+#43 := (iff #11 #35)
+#38 := (or false #35)
+#41 := (iff #38 #35)
+#42 := [rewrite]: #41
+#39 := (iff #11 #38)
+#36 := (iff #10 #35)
+#33 := (= #9 #32)
+#34 := [rewrite]: #33
+#30 := (= #5 #7)
+#31 := [rewrite]: #30
+#37 := [monotonicity #31 #34]: #36
+#40 := [monotonicity #37]: #39
+#44 := [trans #40 #42]: #43
+#47 := [monotonicity #37 #44]: #46
+#51 := [trans #47 #49]: #50
+#54 := [monotonicity #51]: #53
+#65 := [trans #54 #63]: #64
+#29 := [asserted]: #13
+[mp #29 #65]: false
+unsat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/SMT/Examples/cert/z3_linarith_18	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,7 @@
+(benchmark Isabelle
+:extrafuns (
+  (uf_1 Int)
+ )
+:assumption (not (<= (+ uf_1 1) (+ uf_1 (+ (* 2 (mod uf_1 2)) 1))))
+:formula true
+)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/SMT/Examples/cert/z3_linarith_18.proof	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,52 @@
+#2 := false
+#55 := 0::int
+#7 := 2::int
+decl uf_1 :: int
+#4 := uf_1
+#8 := (mod uf_1 2::int)
+#9 := (* 2::int #8)
+#56 := (>= #9 0::int)
+#51 := (not #56)
+#5 := 1::int
+#10 := (+ #9 1::int)
+#11 := (+ uf_1 #10)
+#6 := (+ uf_1 1::int)
+#12 := (<= #6 #11)
+#13 := (not #12)
+#58 := (iff #13 #51)
+#39 := (+ uf_1 #9)
+#40 := (+ 1::int #39)
+#30 := (+ 1::int uf_1)
+#45 := (<= #30 #40)
+#48 := (not #45)
+#52 := (iff #48 #51)
+#53 := (iff #45 #56)
+#54 := [rewrite]: #53
+#57 := [monotonicity #54]: #52
+#49 := (iff #13 #48)
+#46 := (iff #12 #45)
+#43 := (= #11 #40)
+#33 := (+ 1::int #9)
+#36 := (+ uf_1 #33)
+#41 := (= #36 #40)
+#42 := [rewrite]: #41
+#37 := (= #11 #36)
+#34 := (= #10 #33)
+#35 := [rewrite]: #34
+#38 := [monotonicity #35]: #37
+#44 := [trans #38 #42]: #43
+#31 := (= #6 #30)
+#32 := [rewrite]: #31
+#47 := [monotonicity #32 #44]: #46
+#50 := [monotonicity #47]: #49
+#59 := [trans #50 #57]: #58
+#29 := [asserted]: #13
+#60 := [mp #29 #59]: #51
+#107 := (>= #8 0::int)
+#1 := true
+#28 := [true-axiom]: true
+#135 := (or false #107)
+#136 := [th-lemma]: #135
+#137 := [unit-resolution #136 #28]: #107
+[th-lemma #137 #60]: false
+unsat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/SMT/Examples/cert/z3_linarith_19	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,7 @@
+(benchmark Isabelle
+:extrafuns (
+  (uf_1 Int)
+ )
+:assumption (not (< (+ uf_1 (+ (mod uf_1 2) (mod uf_1 2))) (+ uf_1 3)))
+:formula true
+)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/SMT/Examples/cert/z3_linarith_19.proof	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,50 @@
+#2 := false
+#5 := 2::int
+decl uf_1 :: int
+#4 := uf_1
+#6 := (mod uf_1 2::int)
+#122 := (>= #6 2::int)
+#123 := (not #122)
+#1 := true
+#27 := [true-axiom]: true
+#133 := (or false #123)
+#134 := [th-lemma]: #133
+#135 := [unit-resolution #134 #27]: #123
+#9 := 3::int
+#29 := (* 2::int #6)
+#48 := (>= #29 3::int)
+#10 := (+ uf_1 3::int)
+#7 := (+ #6 #6)
+#8 := (+ uf_1 #7)
+#11 := (< #8 #10)
+#12 := (not #11)
+#55 := (iff #12 #48)
+#35 := (+ 3::int uf_1)
+#32 := (+ uf_1 #29)
+#38 := (< #32 #35)
+#41 := (not #38)
+#53 := (iff #41 #48)
+#46 := (not #48)
+#45 := (not #46)
+#51 := (iff #45 #48)
+#52 := [rewrite]: #51
+#49 := (iff #41 #45)
+#47 := (iff #38 #46)
+#44 := [rewrite]: #47
+#50 := [monotonicity #44]: #49
+#54 := [trans #50 #52]: #53
+#42 := (iff #12 #41)
+#39 := (iff #11 #38)
+#36 := (= #10 #35)
+#37 := [rewrite]: #36
+#33 := (= #8 #32)
+#30 := (= #7 #29)
+#31 := [rewrite]: #30
+#34 := [monotonicity #31]: #33
+#40 := [monotonicity #34 #37]: #39
+#43 := [monotonicity #40]: #42
+#56 := [trans #43 #54]: #55
+#28 := [asserted]: #12
+#57 := [mp #28 #56]: #48
+[th-lemma #57 #135]: false
+unsat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/SMT/Examples/cert/z3_linarith_20	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,9 @@
+(benchmark Isabelle
+:extrasorts ( T1)
+:extrafuns (
+  (uf_1 Real)
+ )
+:assumption (not (= uf_1 0.0))
+:assumption (not (not (= (+ uf_1 uf_1) (* (ite (or (< 1.0 (ite (< uf_1 0.0) (~ uf_1) uf_1)) (not (< 1.0 (ite (< uf_1 0.0) (~ uf_1) uf_1)))) 4.0 2.0) uf_1))))
+:formula true
+)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/SMT/Examples/cert/z3_linarith_20.proof	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,118 @@
+#2 := false
+#5 := 0::real
+decl uf_1 :: real
+#4 := uf_1
+#94 := (<= uf_1 0::real)
+#17 := 2::real
+#40 := (* 2::real uf_1)
+#102 := (<= #40 0::real)
+#103 := (>= #40 0::real)
+#105 := (not #103)
+#104 := (not #102)
+#106 := (or #104 #105)
+#107 := (not #106)
+#88 := (= #40 0::real)
+#108 := (iff #88 #107)
+#109 := [rewrite]: #108
+#16 := 4::real
+#11 := (- uf_1)
+#10 := (< uf_1 0::real)
+#12 := (ite #10 #11 uf_1)
+#9 := 1::real
+#13 := (< 1::real #12)
+#14 := (not #13)
+#15 := (or #13 #14)
+#18 := (ite #15 4::real 2::real)
+#19 := (* #18 uf_1)
+#8 := (+ uf_1 uf_1)
+#20 := (= #8 #19)
+#21 := (not #20)
+#22 := (not #21)
+#89 := (iff #22 #88)
+#70 := (* 4::real uf_1)
+#73 := (= #40 #70)
+#86 := (iff #73 #88)
+#87 := [rewrite]: #86
+#84 := (iff #22 #73)
+#76 := (not #73)
+#79 := (not #76)
+#82 := (iff #79 #73)
+#83 := [rewrite]: #82
+#80 := (iff #22 #79)
+#77 := (iff #21 #76)
+#74 := (iff #20 #73)
+#71 := (= #19 #70)
+#68 := (= #18 4::real)
+#1 := true
+#63 := (ite true 4::real 2::real)
+#66 := (= #63 4::real)
+#67 := [rewrite]: #66
+#64 := (= #18 #63)
+#61 := (iff #15 true)
+#43 := -1::real
+#44 := (* -1::real uf_1)
+#47 := (ite #10 #44 uf_1)
+#50 := (< 1::real #47)
+#53 := (not #50)
+#56 := (or #50 #53)
+#59 := (iff #56 true)
+#60 := [rewrite]: #59
+#57 := (iff #15 #56)
+#54 := (iff #14 #53)
+#51 := (iff #13 #50)
+#48 := (= #12 #47)
+#45 := (= #11 #44)
+#46 := [rewrite]: #45
+#49 := [monotonicity #46]: #48
+#52 := [monotonicity #49]: #51
+#55 := [monotonicity #52]: #54
+#58 := [monotonicity #52 #55]: #57
+#62 := [trans #58 #60]: #61
+#65 := [monotonicity #62]: #64
+#69 := [trans #65 #67]: #68
+#72 := [monotonicity #69]: #71
+#41 := (= #8 #40)
+#42 := [rewrite]: #41
+#75 := [monotonicity #42 #72]: #74
+#78 := [monotonicity #75]: #77
+#81 := [monotonicity #78]: #80
+#85 := [trans #81 #83]: #84
+#90 := [trans #85 #87]: #89
+#39 := [asserted]: #22
+#91 := [mp #39 #90]: #88
+#110 := [mp #91 #109]: #107
+#111 := [not-or-elim #110]: #102
+#127 := (or #94 #104)
+#128 := [th-lemma]: #127
+#129 := [unit-resolution #128 #111]: #94
+#92 := (>= uf_1 0::real)
+#112 := [not-or-elim #110]: #103
+#130 := (or #92 #105)
+#131 := [th-lemma]: #130
+#132 := [unit-resolution #131 #112]: #92
+#114 := (not #94)
+#113 := (not #92)
+#115 := (or #113 #114)
+#95 := (and #92 #94)
+#98 := (not #95)
+#124 := (iff #98 #115)
+#116 := (not #115)
+#119 := (not #116)
+#122 := (iff #119 #115)
+#123 := [rewrite]: #122
+#120 := (iff #98 #119)
+#117 := (iff #95 #116)
+#118 := [rewrite]: #117
+#121 := [monotonicity #118]: #120
+#125 := [trans #121 #123]: #124
+#6 := (= uf_1 0::real)
+#7 := (not #6)
+#99 := (iff #7 #98)
+#96 := (iff #6 #95)
+#97 := [rewrite]: #96
+#100 := [monotonicity #97]: #99
+#38 := [asserted]: #7
+#101 := [mp #38 #100]: #98
+#126 := [mp #101 #125]: #115
+[unit-resolution #126 #132 #129]: false
+unsat
--- a/src/HOL/SMT/SMT.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/SMT/SMT.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -13,9 +13,59 @@
 
 setup {* CVC3_Solver.setup #> Yices_Solver.setup *}
 
-declare [[ smt_solver = z3, smt_timeout = 20 ]]
+
+
+section {* Setup *}
+
+text {*
+Without further ado, the SMT solvers CVC3 and Z3 are provided
+remotely via an SMT server. For faster responses, the solver
+environment variables CVC3_SOLVER, YICES_SOLVER, and Z3_SOLVER
+need to point to the respective SMT solver executable.
+*}
+
+
+
+section {* Available configuration options *}
+
+text {* Choose the SMT solver to be applied (one of cvc3, yices, or z3): *}
+
+declare [[ smt_solver = z3 ]]
+
+text {* Restrict the runtime of an SMT solver (in seconds): *}
+
+declare [[ smt_timeout = 20 ]]
+
+
+subsection {* Z3-specific options *}
+
+text {* Enable proof reconstruction for Z3: *}
+
+declare [[ z3_proofs = false ]]
+
+text {* Pass extra command-line arguments to Z3
+to control its behaviour: *}
+
+declare [[ z3_options = "" ]]
+
+
+subsection {* Special configuration options *}
+
+text {*
+Trace the problem file, the result of the SMT solver and
+further information: *}
+
+declare [[ smt_trace = false ]]
+
+text {* Unfold (some) definitions passed to the SMT solver: *}
+
 declare [[ smt_unfold_defs = true ]]
-declare [[ smt_trace = false, smt_keep = "", smt_cert = "" ]]
-declare [[ z3_proofs = false, z3_options = "" ]]
+
+text {*
+Produce or use certificates (to avoid repeated invocation of an
+SMT solver again and again). The value is an absolute path
+pointing to the problem file. See also the examples. *}
+
+declare [[ smt_keep = "", smt_cert = "" ]]
 
 end
--- a/src/HOL/SMT/Tools/cvc3_solver.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/SMT/Tools/cvc3_solver.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -36,7 +36,7 @@
   end
 
 fun smtlib_solver oracle _ = {
-  command = {env_var=env_var, remote_name=solver_name},
+  command = {env_var=env_var, remote_name=SOME solver_name},
   arguments = options,
   interface = SMTLIB_Interface.interface,
   reconstruct = oracle }
--- a/src/HOL/SMT/Tools/smt_solver.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/SMT/Tools/smt_solver.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -18,7 +18,7 @@
     recon: SMT_Translate.recon,
     assms: thm list option }
   type solver_config = {
-    command: {env_var: string, remote_name: string},
+    command: {env_var: string, remote_name: string option},
     arguments: string list,
     interface: interface,
     reconstruct: proof_data -> thm }
@@ -69,7 +69,7 @@
   assms: thm list option }
 
 type solver_config = {
-  command: {env_var: string, remote_name: string},
+  command: {env_var: string, remote_name: string option},
   arguments: string list,
   interface: interface,
   reconstruct: proof_data -> thm }
@@ -96,7 +96,7 @@
 
 local
 
-fun with_files ctxt f x =
+fun with_files ctxt f =
   let
     fun make_names n = (n, n ^ ".proof")
 
@@ -107,43 +107,79 @@
       else pairself (File.tmp_path o Path.explode)
         (make_names ("smt-" ^ serial_string ()))
 
-    val y = Exn.capture (f problem_path proof_path) x
+    val y = Exn.capture f (problem_path, proof_path)
 
     val _ = if keep' = "" then (pairself (try File.rm) paths; ()) else ()
   in Exn.release y end
 
-fun run in_path out_path (ctxt, cmd, output) =
+fun invoke ctxt output f (paths as (problem_path, proof_path)) =
   let
     fun pretty tag ls = Pretty.string_of (Pretty.big_list tag
       (map Pretty.str ls))
 
-    val x = File.open_output output in_path
+    val x = File.open_output output problem_path
     val _ = trace_msg ctxt (pretty "SMT problem:" o split_lines o File.read)
-      in_path
+      problem_path
 
-    val _ = with_timeout ctxt system_out (cmd in_path out_path)
-    fun lines_of path = the_default [] (try (File.fold_lines cons out_path) [])
-    val ls = rev (dropwhile (equal "") (lines_of out_path))
+    val _ = with_timeout ctxt f paths
+    fun lines_of path = the_default [] (try (File.fold_lines cons path) [])
+    val ls = rev (dropwhile (equal "") (lines_of proof_path))
     val _ = trace_msg ctxt (pretty "SMT result:") ls
   in (x, ls) end
 
+val expand_name = Path.implode o Path.expand o Path.explode 
+
+fun run_perl name args ps =
+  system_out (space_implode " " ("perl -w" ::
+    File.shell_path (Path.explode (getenv name)) ::
+    map File.shell_quote args @ ps))
+
+fun use_certificate ctxt ps =
+  let val name = Config.get ctxt cert
+  in
+    if name = "" then false
+    else
+     (tracing ("Using certificate " ^ quote (expand_name name) ^ " ...");
+      run_perl "CERT_SMT_SOLVER" [expand_name name] ps;
+      true)
+  end
+
+fun run_locally f ctxt env_var args ps =
+  if getenv env_var = ""
+  then f ("Undefined Isabelle environment variable: " ^ quote env_var)
+  else
+    let val app = Path.expand (Path.explode (getenv env_var))
+    in
+      if not (File.exists app)
+      then f ("No such file: " ^ quote (Path.implode app))
+      else
+       (tracing ("Invoking local SMT solver " ^ quote (Path.implode app) ^
+          " ...");
+        system_out (space_implode " " (File.shell_path app ::
+        map File.shell_quote args @ ps)); ())
+    end
+
+fun run_remote remote_name args ps msg =
+  (case remote_name of
+    NONE => error msg
+  | SOME name =>
+      let
+        val url = getenv "REMOTE_SMT_URL"
+        val _ = tracing ("Invoking remote SMT solver " ^ quote name ^ " at " ^
+          quote url ^ " ...")
+      in (run_perl "REMOTE_SMT_SOLVER" (url :: name :: args) ps; ()) end)
+
+fun run ctxt {env_var, remote_name} args (problem_path, proof_path) =
+  let val ps = [File.shell_path problem_path, ">", File.shell_path proof_path]
+  in
+    if use_certificate ctxt ps then ()
+    else run_locally (run_remote remote_name args ps) ctxt env_var args ps
+  end
+
 in
 
-fun run_solver ctxt {env_var, remote_name} args output =
-  let
-    val qf = File.shell_path and qq = File.shell_quote
-    val qs = qf o Path.explode
-    val local_name = getenv env_var
-    val cert_name = Config.get ctxt cert
-    val remote = qs (getenv "REMOTE_SMT_SOLVER")
-    val cert_script = qs (getenv "CERT_SMT_SOLVER")
-    fun cmd f1 f2 =
-      if cert_name <> ""
-      then "perl -w" :: [cert_script, qs cert_name, qf f1, ">", qf f2]
-      else if local_name <> ""
-      then qs local_name :: map qq args @ [qf f1, ">", qf f2]
-      else "perl -w" :: remote :: map qq (remote_name :: args) @ [qf f1, qf f2]
-  in with_files ctxt run (ctxt, space_implode " " oo cmd, output) end
+fun run_solver ctxt cmd args output =
+  with_files ctxt (invoke ctxt output (run ctxt cmd args))
 
 end
 
@@ -223,13 +259,13 @@
         (map (Syntax.pretty_term ctxt) ex))
     end
 
-  fun fail_tac ctxt msg st = (trace_msg ctxt I msg; Tactical.no_tac st)
+  fun fail_tac f msg st = (f msg; Tactical.no_tac st)
 
   fun SAFE pass_exns tac ctxt i st =
     if pass_exns then tac ctxt i st
     else (tac ctxt i st
-      handle SMT msg => fail_tac ctxt ("SMT: " ^ msg) st
-           | SMT_COUNTEREXAMPLE cex => fail_tac ctxt (pretty_cex ctxt cex) st)
+      handle SMT msg => fail_tac (trace_msg ctxt (prefix "SMT: ")) msg st
+           | SMT_COUNTEREXAMPLE ce => fail_tac tracing (pretty_cex ctxt ce) st)
 
   fun smt_solver rules ctxt = solver_of (Context.Proof ctxt) ctxt rules
 in
--- a/src/HOL/SMT/Tools/smtlib_interface.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/SMT/Tools/smtlib_interface.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -79,29 +79,39 @@
 val tvar = prefix "?"
 val fvar = prefix "$"
 
+datatype lexpr =
+  LVar of string |
+  LTerm of lexpr list * (string, string) T.sterm
+
 fun wr_expr loc env t =
   (case t of
-    T.SVar i => wr1 (nth env i)
+    T.SVar i =>
+      (case nth env i of
+        LVar name => wr1 name
+      | LTerm (env', t') => wr_expr loc env' t')
   | T.SApp (n, ts) =>
       (case dest_marker t of
         SOME (loc', t') => wr_expr loc' env t'
       | NONE => wrn (wr_expr loc env) n ts)
   | T.SLet ((v, _), t1, t2) =>
-      if loc then raise SMT_Solver.SMT "SMTLIB: let expression in term"
+      if loc
+      then
+        let val (_, t1') = the (dest_marker t1)
+        in wr_expr loc (LTerm (env, t1') :: env) t2 end
       else
         let
           val (loc', t1') = the (dest_marker t1)
           val (kind, v') = if loc' then ("let", tvar v)  else ("flet", fvar v)
         in
           par (wr kind #> par (wr v' #> wr_expr loc' env t1') #>
-            wr_expr loc (v' :: env) t2)
+            wr_expr loc (LVar v' :: env) t2)
         end
   | T.SQuant (q, vs, ps, b) =>
       let
         val wr_quant = wr o (fn T.SForall => "forall" | T.SExists => "exists")
         fun wr_var (n, s) = par (wr (tvar n) #> wr1 s)
 
-        val wre = wr_expr loc (map (tvar o fst) (rev vs) @ env)
+        val wre = wr_expr loc (map (LVar o tvar o fst) (rev vs) @ env)
 
         fun wrp s ts = wr1 (":" ^ s ^ " {") #> fold wre ts #> wr1 "}"
         fun wr_pat (T.SPat ts) = wrp "pat" ts
--- a/src/HOL/SMT/Tools/yices_solver.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/SMT/Tools/yices_solver.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -32,7 +32,7 @@
   end
 
 fun smtlib_solver oracle _ = {
-  command = {env_var=env_var, remote_name=solver_name},
+  command = {env_var=env_var, remote_name=NONE},
   arguments = options,
   interface = SMTLIB_Interface.interface,
   reconstruct = oracle }
--- a/src/HOL/SMT/Tools/z3_model.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/SMT/Tools/z3_model.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -55,7 +55,8 @@
 val value = mapping |-- expr
 
 val args_case = Scan.repeat expr -- value
-val else_case = space -- Scan.this_string "else" |-- value >> pair []
+val else_case = space -- Scan.this_string "else" |-- value >>
+  pair ([] : expr list)
 
 val func =
   let fun cases st = (else_case >> single || args_case ::: cases) st
--- a/src/HOL/SMT/Tools/z3_solver.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/SMT/Tools/z3_solver.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -66,7 +66,7 @@
 fun solver oracle ctxt =
   let val with_proof = Config.get ctxt proofs
   in
-    {command = {env_var=env_var, remote_name=solver_name},
+    {command = {env_var=env_var, remote_name=SOME solver_name},
     arguments = cmdline_options ctxt,
     interface = Z3_Interface.interface,
     reconstruct = if with_proof then prover else oracle}
--- a/src/HOL/SMT/lib/scripts/remote_smt.pl	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/SMT/lib/scripts/remote_smt.pl	Sat Nov 07 07:37:20 2009 -0800
@@ -8,17 +8,12 @@
 use LWP;
 
 
-# environment
-
-my $remote_smt_url = $ENV{"REMOTE_SMT_URL"};
-
-
 # arguments
 
-my $solver = $ARGV[0];
-my @options = @ARGV[1 .. ($#ARGV - 2)];
-my $problem_file = $ARGV[-2];
-my $output_file = $ARGV[-1];
+my $url = $ARGV[0];
+my $solver = $ARGV[1];
+my @options = @ARGV[2 .. ($#ARGV - 1)];
+my $problem_file = $ARGV[-1];
 
 
 # call solver
@@ -26,7 +21,7 @@
 my $agent = LWP::UserAgent->new;
 $agent->agent("SMT-Request");
 $agent->timeout(180);
-my $response = $agent->post($remote_smt_url, [
+my $response = $agent->post($url, [
   "Solver" => $solver,
   "Options" => join(" ", @options),
   "Problem" => [$problem_file] ],
@@ -36,8 +31,6 @@
   exit 1;
 }
 else {
-  open(FILE, ">$output_file");
-  print FILE $response->content;
-  close(FILE);
+  print $response->content;
+  exit 0;
 }
-
--- a/src/HOL/SizeChange/Correctness.thy	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1450 +0,0 @@
-(*  Title:      HOL/Library/SCT_Theorem.thy
-    Author:     Alexander Krauss, TU Muenchen
-*)
-
-header "Proof of the Size-Change Principle"
-
-theory Correctness
-imports Main Ramsey Misc_Tools Criterion
-begin
-
-subsection {* Auxiliary definitions *}
-
-definition is_thread :: "nat \<Rightarrow> 'a sequence \<Rightarrow> ('a, 'a scg) ipath \<Rightarrow> bool"
-where
-  "is_thread n \<theta> p = (\<forall>i\<ge>n. eqlat p \<theta> i)"
-
-definition is_fthread :: 
-  "'a sequence \<Rightarrow> ('a, 'a scg) ipath \<Rightarrow> nat \<Rightarrow> nat \<Rightarrow> bool"
-where
-  "is_fthread \<theta> mp i j = (\<forall>k\<in>{i..<j}. eqlat mp \<theta> k)"
-
-definition is_desc_fthread ::
-  "'a sequence \<Rightarrow> ('a, 'a scg) ipath \<Rightarrow> nat \<Rightarrow> nat \<Rightarrow> bool"
-where
-  "is_desc_fthread \<theta> mp i j = 
-  (is_fthread \<theta> mp i j \<and>
-  (\<exists>k\<in>{i..<j}. descat mp \<theta> k))"
-
-definition
-  "has_fth p i j n m = 
-  (\<exists>\<theta>. is_fthread \<theta> p i j \<and> \<theta> i = n \<and> \<theta> j = m)"
-
-definition
-  "has_desc_fth p i j n m = 
-  (\<exists>\<theta>. is_desc_fthread \<theta> p i j \<and> \<theta> i = n \<and> \<theta> j = m)"
-
-
-subsection {* Everything is finite *}
-
-lemma finite_range:
-  fixes f :: "nat \<Rightarrow> 'a"
-  assumes fin: "finite (range f)"
-  shows "\<exists>x. \<exists>\<^sub>\<infinity>i. f i = x"
-proof (rule classical)
-  assume "\<not>(\<exists>x. \<exists>\<^sub>\<infinity>i. f i = x)"
-  hence "\<forall>x. \<exists>j. \<forall>i>j. f i \<noteq> x"
-    unfolding INFM_nat by blast
-  with choice
-  have "\<exists>j. \<forall>x. \<forall>i>(j x). f i \<noteq> x" .
-  then obtain j where 
-    neq: "\<And>x i. j x < i \<Longrightarrow> f i \<noteq> x" by blast
-
-  from fin have "finite (range (j o f))" 
-    by (auto simp:comp_def range_composition)
-  with finite_nat_bounded
-  obtain m where "range (j o f) \<subseteq> {..<m}" by blast
-  hence "j (f m) < m" unfolding comp_def by auto
-
-  with neq[of "f m" m] show ?thesis by blast
-qed
-
-lemma finite_range_ignore_prefix:
-  fixes f :: "nat \<Rightarrow> 'a"
-  assumes fA: "finite A"
-  assumes inA: "\<forall>x\<ge>n. f x \<in> A"
-  shows "finite (range f)"
-proof -
-  have a: "UNIV = {0 ..< (n::nat)} \<union> { x. n \<le> x }" by auto
-  have b: "range f = f ` {0 ..< n} \<union> f ` { x. n \<le> x }" 
-    (is "\<dots> = ?A \<union> ?B")
-    by (unfold a) (simp add:image_Un)
-  
-  have "finite ?A" by (rule finite_imageI) simp
-  moreover
-  from inA have "?B \<subseteq> A" by auto
-  from this fA have "finite ?B" by (rule finite_subset)
-  ultimately show ?thesis using b by simp
-qed
-
-
-
-
-definition 
-  "finite_graph G = finite (dest_graph G)"
-definition 
-  "all_finite G = (\<forall>n H m. has_edge G n H m \<longrightarrow> finite_graph H)"
-definition
-  "finite_acg A = (finite_graph A \<and> all_finite A)"
-definition 
-  "nodes G = fst ` dest_graph G \<union> snd ` snd ` dest_graph G"
-definition 
-  "edges G = fst ` snd ` dest_graph G"
-definition 
-  "smallnodes G = \<Union>(nodes ` edges G)"
-
-lemma thread_image_nodes:
-  assumes th: "is_thread n \<theta> p"
-  shows "\<forall>i\<ge>n. \<theta> i \<in> nodes (snd (p i))"
-using prems
-unfolding is_thread_def has_edge_def nodes_def
-by force
-
-lemma finite_nodes: "finite_graph G \<Longrightarrow> finite (nodes G)"
-  unfolding finite_graph_def nodes_def
-  by auto
-
-lemma nodes_subgraph: "A \<le> B \<Longrightarrow> nodes A \<subseteq> nodes B"
-  unfolding graph_leq_def nodes_def
-  by auto
-
-lemma finite_edges: "finite_graph G \<Longrightarrow> finite (edges G)"
-  unfolding finite_graph_def edges_def
-  by auto
-
-lemma edges_sum[simp]: "edges (A + B) = edges A \<union> edges B"
-  unfolding edges_def graph_plus_def
-  by auto
-
-lemma nodes_sum[simp]: "nodes (A + B) = nodes A \<union> nodes B"
-  unfolding nodes_def graph_plus_def
-  by auto
-
-lemma finite_acg_subset:
-  "A \<le> B \<Longrightarrow> finite_acg B \<Longrightarrow> finite_acg A"
-  unfolding finite_acg_def finite_graph_def all_finite_def
-  has_edge_def graph_leq_def
-  by (auto elim:finite_subset)
-
-lemma scg_finite: 
-  fixes G :: "'a scg"
-  assumes fin: "finite (nodes G)"
-  shows "finite_graph G"
-  unfolding finite_graph_def
-proof (rule finite_subset)
-  show "dest_graph G \<subseteq> nodes G \<times> UNIV \<times> nodes G" (is "_ \<subseteq> ?P")
-    unfolding nodes_def
-    by force
-  show "finite ?P"
-    by (intro finite_cartesian_product fin finite)
-qed
-
-lemma smallnodes_sum[simp]: 
-  "smallnodes (A + B) = smallnodes A \<union> smallnodes B"
-  unfolding smallnodes_def 
-  by auto
-
-lemma in_smallnodes:
-  fixes A :: "'a acg"
-  assumes e: "has_edge A x G y"
-  shows "nodes G \<subseteq> smallnodes A"
-proof -
-  have "fst (snd (x, G, y)) \<in> fst ` snd  ` dest_graph A"
-    unfolding has_edge_def
-    by (rule imageI)+ (rule e[unfolded has_edge_def])
-  then have "G \<in> edges A" 
-    unfolding edges_def by simp
-  thus ?thesis
-    unfolding smallnodes_def
-    by blast
-qed
-
-lemma finite_smallnodes:
-  assumes fA: "finite_acg A"
-  shows "finite (smallnodes A)"
-  unfolding smallnodes_def edges_def
-proof 
-  from fA
-  show "finite (nodes ` fst ` snd ` dest_graph A)"
-    unfolding finite_acg_def finite_graph_def
-    by simp
-  
-  fix M assume "M \<in> nodes ` fst ` snd ` dest_graph A"
-  then obtain n G m  
-    where M: "M = nodes G" and nGm: "(n,G,m) \<in> dest_graph A"
-    by auto
-  
-  from fA
-  have "all_finite A" unfolding finite_acg_def by simp
-  with nGm have "finite_graph G" 
-    unfolding all_finite_def has_edge_def by auto
-  with finite_nodes 
-  show "finite M" 
-    unfolding finite_graph_def M .
-qed
-
-lemma nodes_tcl:
-  "nodes (tcl A) = nodes A"
-proof
-  show "nodes A \<subseteq> nodes (tcl A)"
-    apply (rule nodes_subgraph)
-    by (subst tcl_unfold_right) simp
-
-  show "nodes (tcl A) \<subseteq> nodes A"
-  proof 
-    fix x assume "x \<in> nodes (tcl A)"
-    then obtain z G y
-      where z: "z \<in> dest_graph (tcl A)"
-      and dis: "z = (x, G, y) \<or> z = (y, G, x)"
-      unfolding nodes_def
-      by auto force+
-
-    from dis
-    show "x \<in> nodes A"
-    proof
-      assume "z = (x, G, y)"
-      with z have "has_edge (tcl A) x G y" unfolding has_edge_def by simp
-      then obtain n where "n > 0 " and An: "has_edge (A ^ n) x G y"
-        unfolding in_tcl by auto
-      then obtain n' where "n = Suc n'" by (cases n, auto)
-      hence "A ^ n = A * A ^ n'" by (simp add:power_Suc)
-      with An obtain e k 
-        where "has_edge A x e k" by (auto simp:in_grcomp)
-      thus "x \<in> nodes A" unfolding has_edge_def nodes_def 
-        by force
-    next
-      assume "z = (y, G, x)"
-      with z have "has_edge (tcl A) y G x" unfolding has_edge_def by simp
-      then obtain n where "n > 0 " and An: "has_edge (A ^ n) y G x"
-        unfolding in_tcl by auto
-      then obtain n' where "n = Suc n'" by (cases n, auto)
-      hence "A ^ n = A ^ n' * A" by (simp add:power_Suc power_commutes)
-      with An obtain e k 
-        where "has_edge A k e x" by (auto simp:in_grcomp)
-      thus "x \<in> nodes A" unfolding has_edge_def nodes_def 
-        by force
-    qed
-  qed
-qed
-
-lemma smallnodes_tcl: 
-  fixes A :: "'a acg"
-  shows "smallnodes (tcl A) = smallnodes A"
-proof (intro equalityI subsetI)
-  fix n assume "n \<in> smallnodes (tcl A)"
-  then obtain x G y where edge: "has_edge (tcl A) x G y" 
-    and "n \<in> nodes G"
-    unfolding smallnodes_def edges_def has_edge_def 
-    by auto
-  
-  from `n \<in> nodes G`
-  have "n \<in> fst ` dest_graph G \<or> n \<in> snd ` snd ` dest_graph G"
-    (is "?A \<or> ?B")
-    unfolding nodes_def by blast
-  thus "n \<in> smallnodes A"
-  proof
-    assume ?A
-    then obtain m e where A: "has_edge G n e m"
-      unfolding has_edge_def by auto
-
-    have "tcl A = A * star A"
-      unfolding tcl_def
-      by (simp add: star_simulation[of A A A, simplified])
-
-    with edge
-    have "has_edge (A * star A) x G y" by simp
-    then obtain H H' z
-      where AH: "has_edge A x H z" and G: "G = H * H'"
-      by (auto simp:in_grcomp)
-    from A
-    obtain m' e' where "has_edge H n e' m'"
-      by (auto simp:G in_grcomp)
-    hence "n \<in> nodes H" unfolding nodes_def has_edge_def 
-      by force
-    with in_smallnodes[OF AH] show "n \<in> smallnodes A" ..
-  next
-    assume ?B
-    then obtain m e where B: "has_edge G m e n"
-      unfolding has_edge_def by auto
-
-    with edge
-    have "has_edge (star A * A) x G y" by (simp add:tcl_def)
-    then obtain H H' z
-      where AH': "has_edge A z H' y" and G: "G = H * H'"
-      by (auto simp:in_grcomp simp del: star_slide2)
-    from B
-    obtain m' e' where "has_edge H' m' e' n"
-      by (auto simp:G in_grcomp)
-    hence "n \<in> nodes H'" unfolding nodes_def has_edge_def 
-      by force
-    with in_smallnodes[OF AH'] show "n \<in> smallnodes A" ..
-  qed
-next
-  fix x assume "x \<in> smallnodes A"
-  then show "x \<in> smallnodes (tcl A)"
-    by (subst tcl_unfold_right) simp
-qed
-
-lemma finite_nodegraphs:
-  assumes F: "finite F"
-  shows "finite { G::'a scg. nodes G \<subseteq> F }" (is "finite ?P")
-proof (rule finite_subset)
-  show "?P \<subseteq> Graph ` (Pow (F \<times> UNIV \<times> F))" (is "?P \<subseteq> ?Q")
-  proof
-    fix x assume xP: "x \<in> ?P"
-    obtain S where x[simp]: "x = Graph S"
-      by (cases x) auto
-    from xP
-    show "x \<in> ?Q"
-      apply (simp add:nodes_def)
-      apply (rule imageI)
-      apply (rule PowI)
-      apply force
-      done
-  qed
-  show "finite ?Q"
-    by (auto intro:finite_imageI finite_cartesian_product F finite)
-qed
-
-lemma finite_graphI:
-  fixes A :: "'a acg"
-  assumes fin: "finite (nodes A)" "finite (smallnodes A)"
-  shows "finite_graph A"
-proof -
-  obtain S where A[simp]: "A = Graph S"
-    by (cases A) auto
-
-  have "finite S" 
-  proof (rule finite_subset)
-    show "S \<subseteq> nodes A \<times> { G::'a scg. nodes G \<subseteq> smallnodes A } \<times> nodes A"
-      (is "S \<subseteq> ?T")
-    proof
-      fix x assume xS: "x \<in> S"
-      obtain a b c where x[simp]: "x = (a, b, c)"
-        by (cases x) auto
-
-      then have edg: "has_edge A a b c"
-        unfolding has_edge_def using xS
-        by simp
-
-      hence "a \<in> nodes A" "c \<in> nodes A"
-        unfolding nodes_def has_edge_def by force+
-      moreover
-      from edg have "nodes b \<subseteq> smallnodes A" by (rule in_smallnodes)
-      hence "b \<in> { G :: 'a scg. nodes G \<subseteq> smallnodes A }" by simp
-      ultimately show "x \<in> ?T" by simp
-    qed
-
-    show "finite ?T"
-      by (intro finite_cartesian_product fin finite_nodegraphs)
-  qed
-  thus ?thesis
-    unfolding finite_graph_def by simp
-qed
-
-
-lemma smallnodes_allfinite:
-  fixes A :: "'a acg"
-  assumes fin: "finite (smallnodes A)"
-  shows "all_finite A"
-  unfolding all_finite_def
-proof (intro allI impI)
-  fix n H m assume "has_edge A n H m"
-  then have "nodes H \<subseteq> smallnodes A"
-    by (rule in_smallnodes)
-  then have "finite (nodes H)" 
-    by (rule finite_subset) (rule fin)
-  thus "finite_graph H" by (rule scg_finite)
-qed
-
-lemma finite_tcl: 
-  fixes A :: "'a acg"
-  shows "finite_acg (tcl A) \<longleftrightarrow> finite_acg A"
-proof
-  assume f: "finite_acg A"
-  from f have g: "finite_graph A" and "all_finite A"
-    unfolding finite_acg_def by auto
-
-  from g have "finite (nodes A)" by (rule finite_nodes)
-  then have "finite (nodes (tcl A))" unfolding nodes_tcl .
-  moreover
-  from f have "finite (smallnodes A)" by (rule finite_smallnodes)
-  then have fs: "finite (smallnodes (tcl A))" unfolding smallnodes_tcl .
-  ultimately
-  have "finite_graph (tcl A)" by (rule finite_graphI)
-
-  moreover from fs have "all_finite (tcl A)"
-    by (rule smallnodes_allfinite)
-  ultimately show "finite_acg (tcl A)" unfolding finite_acg_def ..
-next
-  assume a: "finite_acg (tcl A)"
-  have "A \<le> tcl A" by (rule less_tcl)
-  thus "finite_acg A" using a
-    by (rule finite_acg_subset)
-qed
-
-lemma finite_acg_empty: "finite_acg (Graph {})"
-  unfolding finite_acg_def finite_graph_def all_finite_def
-  has_edge_def
-  by simp
-
-lemma finite_acg_ins: 
-  assumes fA: "finite_acg (Graph A)"
-  assumes fG: "finite G"
-  shows "finite_acg (Graph (insert (a, Graph G, b) A))" 
-  using fA fG
-  unfolding finite_acg_def finite_graph_def all_finite_def
-  has_edge_def
-  by auto
-
-lemmas finite_acg_simps = finite_acg_empty finite_acg_ins finite_graph_def
-
-subsection {* Contraction and more *}
-
-abbreviation 
-  "pdesc P == (fst P, prod P, end_node P)"
-
-lemma pdesc_acgplus: 
-  assumes "has_ipath \<A> p"
-  and "i < j"
-  shows "has_edge (tcl \<A>) (fst (p\<langle>i,j\<rangle>)) (prod (p\<langle>i,j\<rangle>)) (end_node (p\<langle>i,j\<rangle>))"
-  unfolding plus_paths
-  apply (rule exI)
-  apply (insert prems)  
-  by (auto intro:sub_path_is_path[of "\<A>" p i j] simp:sub_path_def)
-
-
-lemma combine_fthreads: 
-  assumes range: "i < j" "j \<le> k"
-  shows 
-  "has_fth p i k m r =
-  (\<exists>n. has_fth p i j m n \<and> has_fth p j k n r)" (is "?L = ?R")
-proof (intro iffI)
-  assume "?L"
-  then obtain \<theta>
-    where "is_fthread \<theta> p i k" 
-    and [simp]: "\<theta> i = m" "\<theta> k = r"
-    by (auto simp:has_fth_def)
-
-  with range
-  have "is_fthread \<theta> p i j" and "is_fthread \<theta> p j k"
-    by (auto simp:is_fthread_def)
-  hence "has_fth p i j m (\<theta> j)" and "has_fth p j k (\<theta> j) r"
-    by (auto simp:has_fth_def)
-  thus "?R" by auto
-next
-  assume "?R"
-  then obtain n \<theta>1 \<theta>2
-    where ths: "is_fthread \<theta>1 p i j" "is_fthread \<theta>2 p j k"
-    and [simp]: "\<theta>1 i = m" "\<theta>1 j = n" "\<theta>2 j = n" "\<theta>2 k = r"
-    by (auto simp:has_fth_def)
-
-  let ?\<theta> = "(\<lambda>i. if i < j then \<theta>1 i else \<theta>2 i)"
-  have "is_fthread ?\<theta> p i k"
-    unfolding is_fthread_def
-  proof
-    fix l assume range: "l \<in> {i..<k}"
-    
-    show "eqlat p ?\<theta> l"
-    proof (cases rule:three_cases)
-      assume "Suc l < j"
-      with ths range show ?thesis 
-        unfolding is_fthread_def Ball_def
-        by simp
-    next
-      assume "Suc l = j"
-      hence "l < j" "\<theta>2 (Suc l) = \<theta>1 (Suc l)" by auto
-      with ths range show ?thesis 
-        unfolding is_fthread_def Ball_def
-        by simp
-    next
-      assume "j \<le> l"
-      with ths range show ?thesis 
-        unfolding is_fthread_def Ball_def
-        by simp
-    qed arith
-  qed
-  moreover 
-  have "?\<theta> i = m" "?\<theta> k = r" using range by auto
-  ultimately show "has_fth p i k m r" 
-    by (auto simp:has_fth_def)
-qed 
-
-
-lemma desc_is_fthread:
-  "is_desc_fthread \<theta> p i k \<Longrightarrow> is_fthread \<theta> p i k"
-  unfolding is_desc_fthread_def
-  by simp
-
-
-lemma combine_dfthreads: 
-  assumes range: "i < j" "j \<le> k"
-  shows 
-  "has_desc_fth p i k m r =
-  (\<exists>n. (has_desc_fth p i j m n \<and> has_fth p j k n r)
-  \<or> (has_fth p i j m n \<and> has_desc_fth p j k n r))" (is "?L = ?R")
-proof 
-  assume "?L"
-  then obtain \<theta>
-    where desc: "is_desc_fthread \<theta> p i k" 
-    and [simp]: "\<theta> i = m" "\<theta> k = r"
-    by (auto simp:has_desc_fth_def)
-
-  hence "is_fthread \<theta> p i k"
-    by (simp add: desc_is_fthread)
-  with range have fths: "is_fthread \<theta> p i j" "is_fthread \<theta> p j k"
-    unfolding is_fthread_def
-    by auto
-  hence hfths: "has_fth p i j m (\<theta> j)" "has_fth p j k (\<theta> j) r"
-    by (auto simp:has_fth_def)
-
-  from desc obtain l 
-    where "i \<le> l" "l < k"
-    and "descat p \<theta> l"
-    by (auto simp:is_desc_fthread_def)
-
-  with fths
-  have "is_desc_fthread \<theta> p i j \<or> is_desc_fthread \<theta> p j k"
-    unfolding is_desc_fthread_def
-    by (cases "l < j") auto
-  hence "has_desc_fth p i j m (\<theta> j) \<or> has_desc_fth p j k (\<theta> j) r"
-    by (auto simp:has_desc_fth_def)
-  with hfths show ?R
-    by auto
-next
-  assume "?R"
-  then obtain n \<theta>1 \<theta>2
-    where "(is_desc_fthread \<theta>1 p i j \<and> is_fthread \<theta>2 p j k)
-    \<or> (is_fthread \<theta>1 p i j \<and> is_desc_fthread \<theta>2 p j k)"
-    and [simp]: "\<theta>1 i = m" "\<theta>1 j = n" "\<theta>2 j = n" "\<theta>2 k = r"
-    by (auto simp:has_fth_def has_desc_fth_def)
-
-  hence ths2: "is_fthread \<theta>1 p i j" "is_fthread \<theta>2 p j k"
-    and dths: "is_desc_fthread \<theta>1 p i j \<or> is_desc_fthread \<theta>2 p j k"
-    by (auto simp:desc_is_fthread)
-
-  let ?\<theta> = "(\<lambda>i. if i < j then \<theta>1 i else \<theta>2 i)"
-  have "is_fthread ?\<theta> p i k"
-    unfolding is_fthread_def
-  proof
-    fix l assume range: "l \<in> {i..<k}"
-    
-    show "eqlat p ?\<theta> l"
-    proof (cases rule:three_cases)
-      assume "Suc l < j"
-      with ths2 range show ?thesis 
-        unfolding is_fthread_def Ball_def
-        by simp
-    next
-      assume "Suc l = j"
-      hence "l < j" "\<theta>2 (Suc l) = \<theta>1 (Suc l)" by auto
-      with ths2 range show ?thesis 
-        unfolding is_fthread_def Ball_def
-        by simp
-    next
-      assume "j \<le> l"
-      with ths2 range show ?thesis 
-        unfolding is_fthread_def Ball_def
-        by simp
-    qed arith
-  qed
-  moreover
-  from dths
-  have "\<exists>l. i \<le> l \<and> l < k \<and> descat p ?\<theta> l"
-  proof
-    assume "is_desc_fthread \<theta>1 p i j"
-
-    then obtain l where range: "i \<le> l" "l < j" and "descat p \<theta>1 l"
-      unfolding is_desc_fthread_def Bex_def by auto
-    hence "descat p ?\<theta> l" 
-      by (cases "Suc l = j", auto)
-    with `j \<le> k` and range show ?thesis 
-      by (rule_tac x="l" in exI, auto)
-  next
-    assume "is_desc_fthread \<theta>2 p j k"
-    then obtain l where range: "j \<le> l" "l < k" and "descat p \<theta>2 l"
-      unfolding is_desc_fthread_def Bex_def by auto
-    with `i < j` have "descat p ?\<theta> l" "i \<le> l"
-      by auto
-    with range show ?thesis 
-      by (rule_tac x="l" in exI, auto)
-  qed
-  ultimately have "is_desc_fthread ?\<theta> p i k"
-    by (simp add: is_desc_fthread_def Bex_def)
-
-  moreover 
-  have "?\<theta> i = m" "?\<theta> k = r" using range by auto
-
-  ultimately show "has_desc_fth p i k m r" 
-    by (auto simp:has_desc_fth_def)
-qed 
-
-    
-
-lemma fth_single:
-  "has_fth p i (Suc i) m n = eql (snd (p i)) m n" (is "?L = ?R")
-proof 
-  assume "?L" thus "?R"
-    unfolding is_fthread_def Ball_def has_fth_def
-    by auto
-next
-  let ?\<theta> = "\<lambda>k. if k = i then m else n"
-  assume edge: "?R"
-  hence "is_fthread ?\<theta> p i (Suc i) \<and> ?\<theta> i = m \<and> ?\<theta> (Suc i) = n"
-    unfolding is_fthread_def Ball_def
-    by auto
-
-  thus "?L"
-    unfolding has_fth_def 
-    by auto
-qed
-
-lemma desc_fth_single:
-  "has_desc_fth p i (Suc i) m n = 
-  dsc (snd (p i)) m n" (is "?L = ?R")
-proof 
-  assume "?L" thus "?R"
-    unfolding is_desc_fthread_def has_desc_fth_def is_fthread_def
-    Bex_def 
-    by (elim exE conjE) (case_tac "k = i", auto)
-next
-  let ?\<theta> = "\<lambda>k. if k = i then m else n"
-  assume edge: "?R"
-  hence "is_desc_fthread ?\<theta> p i (Suc i) \<and> ?\<theta> i = m \<and> ?\<theta> (Suc i) = n"
-    unfolding is_desc_fthread_def is_fthread_def Ball_def Bex_def
-    by auto
-  thus "?L"
-    unfolding has_desc_fth_def 
-    by auto
-qed
-
-lemma mk_eql: "(G \<turnstile> m \<leadsto>\<^bsup>e\<^esup> n) \<Longrightarrow> eql G m n"
-  by (cases e, auto)
-
-lemma eql_scgcomp:
-  "eql (G * H) m r =
-  (\<exists>n. eql G m n \<and> eql H n r)" (is "?L = ?R")
-proof
-  show "?L \<Longrightarrow> ?R"
-    by (auto simp:in_grcomp intro!:mk_eql)
-
-  assume "?R"
-  then obtain n where l: "eql G m n" and r:"eql H n r" by auto
-  thus ?L
-    by (cases "dsc G m n") (auto simp:in_grcomp mult_sedge_def)
-qed
-
-lemma desc_scgcomp:
-  "dsc (G * H) m r =
-  (\<exists>n. (dsc G m n \<and> eql H n r) \<or> (eqp G m n \<and> dsc H n r))" (is "?L = ?R")
-proof
-  show "?R \<Longrightarrow> ?L" by (auto simp:in_grcomp mult_sedge_def)
-
-  assume "?L"
-  thus ?R
-    by (auto simp:in_grcomp mult_sedge_def)
-  (case_tac "e", auto, case_tac "e'", auto)
-qed
-
-
-lemma has_fth_unfold:
-  assumes "i < j"
-  shows "has_fth p i j m n = 
-    (\<exists>r. has_fth p i (Suc i) m r \<and> has_fth p (Suc i) j r n)"
-    by (rule combine_fthreads) (insert `i < j`, auto)
-
-lemma has_dfth_unfold:
-  assumes range: "i < j"
-  shows 
-  "has_desc_fth p i j m r =
-  (\<exists>n. (has_desc_fth p i (Suc i) m n \<and> has_fth p (Suc i) j n r)
-  \<or> (has_fth p i (Suc i) m n \<and> has_desc_fth p (Suc i) j n r))"
-  by (rule combine_dfthreads) (insert `i < j`, auto)
-
-
-lemma Lemma7a:
- "i \<le> j \<Longrightarrow> has_fth p i j m n = eql (prod (p\<langle>i,j\<rangle>)) m n"
-proof (induct i arbitrary: m rule:inc_induct)
-  case base show ?case
-    unfolding has_fth_def is_fthread_def sub_path_def
-    by (auto simp:in_grunit one_sedge_def)
-next
-  case (step i)
-  note IH = `\<And>m. has_fth p (Suc i) j m n = 
-  eql (prod (p\<langle>Suc i,j\<rangle>)) m n`
-
-  have "has_fth p i j m n 
-    = (\<exists>r. has_fth p i (Suc i) m r \<and> has_fth p (Suc i) j r n)"
-    by (rule has_fth_unfold[OF `i < j`])
-  also have "\<dots> = (\<exists>r. has_fth p i (Suc i) m r 
-    \<and> eql (prod (p\<langle>Suc i,j\<rangle>)) r n)"
-    by (simp only:IH)
-  also have "\<dots> = (\<exists>r. eql (snd (p i)) m r
-    \<and> eql (prod (p\<langle>Suc i,j\<rangle>)) r n)"
-    by (simp only:fth_single)
-  also have "\<dots> = eql (snd (p i) * prod (p\<langle>Suc i,j\<rangle>)) m n"
-    by (simp only:eql_scgcomp)
-  also have "\<dots> = eql (prod (p\<langle>i,j\<rangle>)) m n"
-    by (simp only:prod_unfold[OF `i < j`])
-  finally show ?case .
-qed
-
-
-lemma Lemma7b:
-assumes "i \<le> j"
-shows
-  "has_desc_fth p i j m n = 
-  dsc (prod (p\<langle>i,j\<rangle>)) m n"
-using prems
-proof (induct i arbitrary: m rule:inc_induct)
-  case base show ?case
-    unfolding has_desc_fth_def is_desc_fthread_def sub_path_def 
-    by (auto simp:in_grunit one_sedge_def)
-next
-  case (step i)
-  thus ?case 
-    by (simp only:prod_unfold desc_scgcomp desc_fth_single
-    has_dfth_unfold fth_single Lemma7a) auto
-qed
-
-
-lemma descat_contract:
-  assumes [simp]: "increasing s"
-  shows
-  "descat (contract s p) \<theta> i = 
-  has_desc_fth p (s i) (s (Suc i)) (\<theta> i) (\<theta> (Suc i))"
-  by (simp add:Lemma7b increasing_weak contract_def)
-
-lemma eqlat_contract:
-  assumes [simp]: "increasing s"
-  shows
-  "eqlat (contract s p) \<theta> i = 
-  has_fth p (s i) (s (Suc i)) (\<theta> i) (\<theta> (Suc i))"
-  by (auto simp:Lemma7a increasing_weak contract_def)
-
-
-subsubsection {* Connecting threads *}
-
-definition
-  "connect s \<theta>s = (\<lambda>k. \<theta>s (section_of s k) k)"
-
-
-lemma next_in_range:
-  assumes [simp]: "increasing s"
-  assumes a: "k \<in> section s i"
-  shows "(Suc k \<in> section s i) \<or> (Suc k \<in> section s (Suc i))"
-proof -
-  from a have "k < s (Suc i)" by simp
-  
-  hence "Suc k < s (Suc i) \<or> Suc k = s (Suc i)" by arith
-  thus ?thesis
-  proof
-    assume "Suc k < s (Suc i)"
-    with a have "Suc k \<in> section s i" by simp
-    thus ?thesis ..
-  next
-    assume eq: "Suc k = s (Suc i)"
-    with increasing_strict have "Suc k < s (Suc (Suc i))" by simp
-    with eq have "Suc k \<in> section s (Suc i)" by simp
-    thus ?thesis ..
-  qed
-qed
-
-
-lemma connect_threads:
-  assumes [simp]: "increasing s"
-  assumes connected: "\<theta>s i (s (Suc i)) = \<theta>s (Suc i) (s (Suc i))"
-  assumes fth: "is_fthread (\<theta>s i) p (s i) (s (Suc i))"
-
-  shows
-  "is_fthread (connect s \<theta>s) p (s i) (s (Suc i))"
-  unfolding is_fthread_def
-proof 
-  fix k assume krng: "k \<in> section s i"
-
-  with fth have eqlat: "eqlat p (\<theta>s i) k" 
-    unfolding is_fthread_def by simp
-
-  from krng and next_in_range 
-  have "(Suc k \<in> section s i) \<or> (Suc k \<in> section s (Suc i))" 
-    by simp
-  thus "eqlat p (connect s \<theta>s) k"
-  proof
-    assume "Suc k \<in> section s i"
-    with krng eqlat show ?thesis
-      unfolding connect_def
-      by (simp only:section_of_known `increasing s`)
-  next
-    assume skrng: "Suc k \<in> section s (Suc i)"
-    with krng have "Suc k = s (Suc i)" by auto
-
-    with krng skrng eqlat show ?thesis
-      unfolding connect_def
-      by (simp only:section_of_known connected[symmetric] `increasing s`)
-  qed
-qed
-
-
-lemma connect_dthreads:
-  assumes inc[simp]: "increasing s"
-  assumes connected: "\<theta>s i (s (Suc i)) = \<theta>s (Suc i) (s (Suc i))"
-  assumes fth: "is_desc_fthread (\<theta>s i) p (s i) (s (Suc i))"
-
-  shows
-  "is_desc_fthread (connect s \<theta>s) p (s i) (s (Suc i))"
-  unfolding is_desc_fthread_def
-proof 
-  show "is_fthread (connect s \<theta>s) p (s i) (s (Suc i))"
-    apply (rule connect_threads)
-    apply (insert fth)
-    by (auto simp:connected is_desc_fthread_def)
-
-  from fth
-  obtain k where dsc: "descat p (\<theta>s i) k" and krng: "k \<in> section s i"
-    unfolding is_desc_fthread_def by blast
-  
-  from krng and next_in_range 
-  have "(Suc k \<in> section s i) \<or> (Suc k \<in> section s (Suc i))" 
-    by simp
-  hence "descat p (connect s \<theta>s) k"
-  proof
-    assume "Suc k \<in> section s i"
-    with krng dsc show ?thesis unfolding connect_def
-      by (simp only:section_of_known inc)
-  next
-    assume skrng: "Suc k \<in> section s (Suc i)"
-    with krng have "Suc k = s (Suc i)" by auto
-
-    with krng skrng dsc show ?thesis unfolding connect_def
-      by (simp only:section_of_known connected[symmetric] inc)
-  qed
-  with krng show "\<exists>k\<in>section s i. descat p (connect s \<theta>s) k" ..
-qed
-
-lemma mk_inf_thread:
-  assumes [simp]: "increasing s"
-  assumes fths: "\<And>i. i > n \<Longrightarrow> is_fthread \<theta> p (s i) (s (Suc i))"
-  shows "is_thread (s (Suc n)) \<theta> p"
-  unfolding is_thread_def 
-proof (intro allI impI)
-  fix j assume st: "s (Suc n) \<le> j"
-
-  let ?k = "section_of s j"
-  from in_section_of st
-  have rs: "j \<in> section s ?k" by simp
-
-  with st have "s (Suc n) < s (Suc ?k)" by simp
-  with increasing_bij have "n < ?k" by simp
-  with rs and fths[of ?k]
-  show "eqlat p \<theta> j" by (simp add:is_fthread_def)
-qed
-
-
-lemma mk_inf_desc_thread:
-  assumes [simp]: "increasing s"
-  assumes fths: "\<And>i. i > n \<Longrightarrow> is_fthread \<theta> p (s i) (s (Suc i))"
-  assumes fdths: "\<exists>\<^sub>\<infinity>i. is_desc_fthread \<theta> p (s i) (s (Suc i))"
-  shows "is_desc_thread \<theta> p"
-  unfolding is_desc_thread_def 
-proof (intro exI conjI)
-
-  from mk_inf_thread[of s n \<theta> p] fths
-  show "\<forall>i\<ge>s (Suc n). eqlat p \<theta> i" 
-    by (fold is_thread_def) simp
-
-  show "\<exists>\<^sub>\<infinity>l. descat p \<theta> l"
-    unfolding INFM_nat
-  proof
-    fix i 
-    
-    let ?k = "section_of s i"
-    from fdths obtain j
-      where "?k < j" "is_desc_fthread \<theta> p (s j) (s (Suc j))"
-      unfolding INFM_nat by auto
-    then obtain l where "s j \<le> l" and desc: "descat p \<theta> l"
-      unfolding is_desc_fthread_def
-      by auto
-
-    have "i < s (Suc ?k)" by (rule section_of2) simp
-    also have "\<dots> \<le> s j"
-      by (rule increasing_weak [OF `increasing s`]) (insert `?k < j`, arith)
-    also note `\<dots> \<le> l`
-    finally have "i < l" .
-    with desc
-    show "\<exists>l. i < l \<and> descat p \<theta> l" by blast
-  qed
-qed
-
-
-lemma desc_ex_choice:
-  assumes A: "((\<exists>n.\<forall>i\<ge>n. \<exists>x. P x i) \<and> (\<exists>\<^sub>\<infinity>i. \<exists>x. Q x i))"
-  and imp: "\<And>x i. Q x i \<Longrightarrow> P x i"
-  shows "\<exists>xs. ((\<exists>n.\<forall>i\<ge>n. P (xs i) i) \<and> (\<exists>\<^sub>\<infinity>i. Q (xs i) i))"
-  (is "\<exists>xs. ?Ps xs \<and> ?Qs xs")
-proof
-  let ?w = "\<lambda>i. (if (\<exists>x. Q x i) then (SOME x. Q x i)
-                                 else (SOME x. P x i))"
-
-  from A
-  obtain n where P: "\<And>i. n \<le> i \<Longrightarrow> \<exists>x. P x i"
-    by auto
-  {
-    fix i::'a assume "n \<le> i"
-
-    have "P (?w i) i"
-    proof (cases "\<exists>x. Q x i")
-      case True
-      hence "Q (?w i) i" by (auto intro:someI)
-      with imp show "P (?w i) i" .
-    next
-      case False
-      with P[OF `n \<le> i`] show "P (?w i) i" 
-        by (auto intro:someI)
-    qed
-  }
-
-  hence "?Ps ?w" by (rule_tac x=n in exI) auto
-
-  moreover
-  from A have "\<exists>\<^sub>\<infinity>i. (\<exists>x. Q x i)" ..
-  hence "?Qs ?w" by (rule INFM_mono) (auto intro:someI)
-  ultimately
-  show "?Ps ?w \<and> ?Qs ?w" ..
-qed
-
-
-
-lemma dthreads_join:
-  assumes [simp]: "increasing s"
-  assumes dthread: "is_desc_thread \<theta> (contract s p)"
-  shows "\<exists>\<theta>s. desc (\<lambda>i. is_fthread (\<theta>s i) p (s i) (s (Suc i))
-                           \<and> \<theta>s i (s i) = \<theta> i 
-                           \<and> \<theta>s i (s (Suc i)) = \<theta> (Suc i))
-                   (\<lambda>i. is_desc_fthread (\<theta>s i) p (s i) (s (Suc i))
-                           \<and> \<theta>s i (s i) = \<theta> i 
-                           \<and> \<theta>s i (s (Suc i)) = \<theta> (Suc i))"
-    apply (rule desc_ex_choice)
-    apply (insert dthread)
-    apply (simp only:is_desc_thread_def)
-    apply (simp add:eqlat_contract)
-    apply (simp add:descat_contract)
-    apply (simp only:has_fth_def has_desc_fth_def)
-    by (auto simp:is_desc_fthread_def)
-
-
-
-lemma INFM_drop_prefix:
-  "(\<exists>\<^sub>\<infinity>i::nat. i > n \<and> P i) = (\<exists>\<^sub>\<infinity>i. P i)"
-  apply (auto simp:INFM_nat)
-  apply (drule_tac x = "max m n" in spec)
-  apply (elim exE conjE)
-  apply (rule_tac x = "na" in exI)
-  by auto
-
-
-
-lemma contract_keeps_threads:
-  assumes inc[simp]: "increasing s"
-  shows "(\<exists>\<theta>. is_desc_thread \<theta> p) 
-  \<longleftrightarrow> (\<exists>\<theta>. is_desc_thread \<theta> (contract s p))"
-  (is "?A \<longleftrightarrow> ?B")
-proof 
-  assume "?A"
-  then obtain \<theta> n 
-    where fr: "\<forall>i\<ge>n. eqlat p \<theta> i" 
-      and ds: "\<exists>\<^sub>\<infinity>i. descat p \<theta> i"
-    unfolding is_desc_thread_def 
-    by auto
-
-  let ?c\<theta> = "\<lambda>i. \<theta> (s i)"
-
-  have "is_desc_thread ?c\<theta> (contract s p)"
-    unfolding is_desc_thread_def
-  proof (intro exI conjI)
-    
-    show "\<forall>i\<ge>n. eqlat (contract s p) ?c\<theta> i"
-    proof (intro allI impI)
-      fix i assume "n \<le> i"
-      also have "i \<le> s i" 
-        using increasing_inc by auto
-      finally have "n \<le> s i" .
-
-      with fr have "is_fthread \<theta> p (s i) (s (Suc i))"
-        unfolding is_fthread_def by auto
-      hence "has_fth p (s i) (s (Suc i)) (\<theta> (s i)) (\<theta> (s (Suc i)))"
-        unfolding has_fth_def by auto
-      with less_imp_le[OF increasing_strict]
-      have "eql (prod (p\<langle>s i,s (Suc i)\<rangle>)) (\<theta> (s i)) (\<theta> (s (Suc i)))"
-        by (simp add:Lemma7a)
-      thus "eqlat (contract s p) ?c\<theta> i" unfolding contract_def
-        by auto
-    qed
-
-    show "\<exists>\<^sub>\<infinity>i. descat (contract s p) ?c\<theta> i"
-      unfolding INFM_nat 
-    proof 
-      fix i
-
-      let ?K = "section_of s (max (s (Suc i)) n)"
-      from `\<exists>\<^sub>\<infinity>i. descat p \<theta> i` obtain j
-          where "s (Suc ?K) < j" "descat p \<theta> j"
-        unfolding INFM_nat by blast
-      
-      let ?L = "section_of s j"
-      {
-        fix x assume r: "x \<in> section s ?L"
-        
-        have e1: "max (s (Suc i)) n < s (Suc ?K)" by (rule section_of2) simp
-        note `s (Suc ?K) < j`
-        also have "j < s (Suc ?L)"
-          by (rule section_of2) simp
-        finally have "Suc ?K \<le> ?L"
-          by (simp add:increasing_bij)          
-        with increasing_weak have "s (Suc ?K) \<le> s ?L" by simp
-        with e1 r have "max (s (Suc i)) n < x" by simp
-        
-        hence "(s (Suc i)) < x" "n < x" by auto
-      }
-      note range_est = this
-      
-      have "is_desc_fthread \<theta> p (s ?L) (s (Suc ?L))"
-        unfolding is_desc_fthread_def is_fthread_def
-      proof
-        show "\<forall>m\<in>section s ?L. eqlat p \<theta> m"
-        proof 
-          fix m assume "m\<in>section s ?L"
-          with range_est(2) have "n < m" . 
-          with fr show "eqlat p \<theta> m" by simp
-        qed
-
-        from in_section_of inc less_imp_le[OF `s (Suc ?K) < j`]
-        have "j \<in> section s ?L" .
-
-        with `descat p \<theta> j`
-        show "\<exists>m\<in>section s ?L. descat p \<theta> m" ..
-      qed
-      
-      with less_imp_le[OF increasing_strict]
-      have a: "descat (contract s p) ?c\<theta> ?L"
-        unfolding contract_def Lemma7b[symmetric]
-        by (auto simp:Lemma7b[symmetric] has_desc_fth_def)
-      
-      have "i < ?L"
-      proof (rule classical)
-        assume "\<not> i < ?L" 
-        hence "s ?L < s (Suc i)" 
-          by (simp add:increasing_bij)
-        also have "\<dots> < s ?L"
-          by (rule range_est(1)) (simp add:increasing_strict)
-        finally show ?thesis .
-      qed
-      with a show "\<exists>l. i < l \<and> descat (contract s p) ?c\<theta> l"
-        by blast
-    qed
-  qed
-  with exI show "?B" .
-next
-  assume "?B"
-  then obtain \<theta> 
-    where dthread: "is_desc_thread \<theta> (contract s p)" ..
-
-  with dthreads_join inc 
-  obtain \<theta>s where ths_spec:
-    "desc (\<lambda>i. is_fthread (\<theta>s i) p (s i) (s (Suc i))
-                  \<and> \<theta>s i (s i) = \<theta> i 
-                  \<and> \<theta>s i (s (Suc i)) = \<theta> (Suc i))
-          (\<lambda>i. is_desc_fthread (\<theta>s i) p (s i) (s (Suc i))
-                  \<and> \<theta>s i (s i) = \<theta> i 
-                  \<and> \<theta>s i (s (Suc i)) = \<theta> (Suc i))" 
-      (is "desc ?alw ?inf") 
-    by blast
-
-  then obtain n where fr: "\<forall>i\<ge>n. ?alw i" by blast
-  hence connected: "\<And>i. n < i \<Longrightarrow> \<theta>s i (s (Suc i)) = \<theta>s (Suc i) (s (Suc i))"
-    by auto
-  
-  let ?j\<theta> = "connect s \<theta>s"
-  
-  from fr ths_spec have ths_spec2:
-      "\<And>i. i > n \<Longrightarrow> is_fthread (\<theta>s i) p (s i) (s (Suc i))"
-      "\<exists>\<^sub>\<infinity>i. is_desc_fthread (\<theta>s i) p (s i) (s (Suc i))"
-    by (auto intro:INFM_mono)
-  
-  have p1: "\<And>i. i > n \<Longrightarrow> is_fthread ?j\<theta> p (s i) (s (Suc i))"
-    by (rule connect_threads) (auto simp:connected ths_spec2)
-  
-  from ths_spec2(2)
-  have "\<exists>\<^sub>\<infinity>i. n < i \<and> is_desc_fthread (\<theta>s i) p (s i) (s (Suc i))"
-    unfolding INFM_drop_prefix .
-  
-  hence p2: "\<exists>\<^sub>\<infinity>i. is_desc_fthread ?j\<theta> p (s i) (s (Suc i))"
-    apply (rule INFM_mono)
-    apply (rule connect_dthreads)
-    by (auto simp:connected)
-  
-  with `increasing s` p1
-  have "is_desc_thread ?j\<theta> p" 
-    by (rule mk_inf_desc_thread)
-  with exI show "?A" .
-qed
-
-
-lemma repeated_edge:
-  assumes "\<And>i. i > n \<Longrightarrow> dsc (snd (p i)) k k"
-  shows "is_desc_thread (\<lambda>i. k) p"
-proof-
-  have th: "\<forall> m. \<exists>na>m. n < na" by arith
-  show ?thesis using prems
-  unfolding is_desc_thread_def 
-  apply (auto)
-  apply (rule_tac x="Suc n" in exI, auto)
-  apply (rule INFM_mono[where P="\<lambda>i. n < i"])
-  apply (simp only:INFM_nat)
-  by (auto simp add: th)
-qed
-
-lemma fin_from_inf:
-  assumes "is_thread n \<theta> p"
-  assumes "n < i"
-  assumes "i < j"
-  shows "is_fthread \<theta> p i j"
-  using prems
-  unfolding is_thread_def is_fthread_def 
-  by auto
-
-
-subsection {* Ramsey's Theorem *}
-
-definition 
-  "set2pair S = (THE (x,y). x < y \<and> S = {x,y})"
-
-lemma set2pair_conv: 
-  fixes x y :: nat
-  assumes "x < y"
-  shows "set2pair {x, y} = (x, y)"
-  unfolding set2pair_def
-proof (rule the_equality, simp_all only:split_conv split_paired_all)
-  from `x < y` show "x < y \<and> {x,y}={x,y}" by simp
-next
-  fix a b
-  assume a: "a < b \<and> {x, y} = {a, b}"
-  hence "{a, b} = {x, y}" by simp_all
-  hence "(a, b) = (x, y) \<or> (a, b) = (y, x)" 
-    by (cases "x = y") auto
-  thus "(a, b) = (x, y)"
-  proof 
-    assume "(a, b) = (y, x)"
-    with a and `x < y`
-    show ?thesis by auto (* contradiction *)
-  qed
-qed  
-
-definition 
-  "set2list = inv set"
-
-lemma finite_set2list: 
-  assumes "finite S" 
-  shows "set (set2list S) = S"
-  unfolding set2list_def 
-proof (rule f_inv_into_f)
-  from `finite S` have "\<exists>l. set l = S"
-    by (rule finite_list)
-  thus "S \<in> range set"
-    unfolding image_def
-    by auto
-qed
-
-
-corollary RamseyNatpairs:
-  fixes S :: "'a set"
-    and f :: "nat \<times> nat \<Rightarrow> 'a"
-
-  assumes "finite S"
-  and inS: "\<And>x y. x < y \<Longrightarrow> f (x, y) \<in> S"
-
-  obtains T :: "nat set" and s :: "'a"
-  where "infinite T"
-    and "s \<in> S"
-    and "\<And>x y. \<lbrakk>x \<in> T; y \<in> T; x < y\<rbrakk> \<Longrightarrow> f (x, y) = s"
-proof -
-  from `finite S`
-  have "set (set2list S) = S" by (rule finite_set2list)
-  then 
-  obtain l where S: "S = set l" by auto
-  also from set_conv_nth have "\<dots> = {l ! i |i. i < length l}" .
-  finally have "S = {l ! i |i. i < length l}" .
-
-  let ?s = "length l"
-
-  from inS 
-  have index_less: "\<And>x y. x \<noteq> y \<Longrightarrow> index_of l (f (set2pair {x, y})) < ?s"
-  proof -
-    fix x y :: nat
-    assume neq: "x \<noteq> y"
-    have "f (set2pair {x, y}) \<in> S"
-    proof (cases "x < y")
-      case True hence "set2pair {x, y} = (x, y)"
-        by (rule set2pair_conv)
-      with True inS
-      show ?thesis by simp
-    next
-      case False 
-      with neq have y_less: "y < x" by simp
-      have x:"{x,y} = {y,x}" by auto
-      with y_less have "set2pair {x, y} = (y, x)"
-        by (simp add:set2pair_conv)
-      with y_less inS
-      show ?thesis by simp
-    qed
-
-    thus "index_of l (f (set2pair {x, y})) < length l"
-      by (simp add: S index_of_length)
-  qed
-
-  have "\<exists>Y. infinite Y \<and>
-    (\<exists>t. t < ?s \<and>
-         (\<forall>x\<in>Y. \<forall>y\<in>Y. x \<noteq> y \<longrightarrow>
-                      index_of l (f (set2pair {x, y})) = t))"
-    by (rule Ramsey2[of "UNIV::nat set", simplified])
-       (auto simp:index_less)
-  then obtain T i
-    where inf: "infinite T"
-    and i: "i < length l"
-    and d: "\<And>x y. \<lbrakk>x \<in> T; y\<in>T; x \<noteq> y\<rbrakk>
-    \<Longrightarrow> index_of l (f (set2pair {x, y})) = i"
-    by auto
-
-  have "l ! i \<in> S" unfolding S using i
-    by (rule nth_mem)
-  moreover
-  have "\<And>x y. x \<in> T \<Longrightarrow> y\<in>T \<Longrightarrow> x < y
-    \<Longrightarrow> f (x, y) = l ! i"
-  proof -
-    fix x y assume "x \<in> T" "y \<in> T" "x < y"
-    with d have 
-      "index_of l (f (set2pair {x, y})) = i" by auto
-    with `x < y`
-    have "i = index_of l (f (x, y))" 
-      by (simp add:set2pair_conv)
-    with `i < length l`
-    show "f (x, y) = l ! i" 
-      by (auto intro:index_of_member[symmetric] iff:index_of_length)
-  qed
-  moreover note inf
-  ultimately
-  show ?thesis using prems
-    by blast
-qed
-
-
-subsection {* Main Result *}
-
-
-theorem LJA_Theorem4: 
-  assumes "finite_acg A"
-  shows "SCT A \<longleftrightarrow> SCT' A"
-proof
-  assume "SCT A"
-  
-  show "SCT' A"
-  proof (rule classical)
-    assume "\<not> SCT' A"
-    
-    then obtain n G
-      where in_closure: "(tcl A) \<turnstile> n \<leadsto>\<^bsup>G\<^esup> n"
-      and idemp: "G * G = G"
-      and no_strict_arc: "\<forall>p. \<not>(G \<turnstile> p \<leadsto>\<^bsup>\<down>\<^esup> p)"
-      unfolding SCT'_def no_bad_graphs_def by auto
-    
-    from in_closure obtain k
-      where k_pow: "A ^ k \<turnstile> n \<leadsto>\<^bsup>G\<^esup> n"
-      and "0 < k"
-      unfolding in_tcl by auto
-        
-    from power_induces_path k_pow
-    obtain loop where loop_props:
-      "has_fpath A loop"
-      "n = fst loop" "n = end_node loop"
-      "G = prod loop" "k = length (snd loop)" . 
-
-    with `0 < k` and path_loop_graph
-    have "has_ipath A (omega loop)" by blast
-    with `SCT A` 
-    have thread: "\<exists>\<theta>. is_desc_thread \<theta> (omega loop)" by (auto simp:SCT_def)
-
-    let ?s = "\<lambda>i. k * i"
-    let ?cp = "\<lambda>i::nat. (n, G)"
-
-    from loop_props have "fst loop = end_node loop" by auto
-    with `0 < k` `k = length (snd loop)`
-    have "\<And>i. (omega loop)\<langle>?s i,?s (Suc i)\<rangle> = loop"
-      by (rule sub_path_loop)
-
-    with `n = fst loop` `G = prod loop` `k = length (snd loop)`
-    have a: "contract ?s (omega loop) = ?cp"
-      unfolding contract_def
-      by (simp add:path_loop_def split_def fst_p0)
-
-    from `0 < k` have "increasing ?s"
-      by (auto simp:increasing_def)
-    with thread have "\<exists>\<theta>. is_desc_thread \<theta> ?cp"
-      unfolding a[symmetric] 
-      by (unfold contract_keeps_threads[symmetric])
-
-    then obtain \<theta> where desc: "is_desc_thread \<theta> ?cp" by auto
-
-    then obtain n where thr: "is_thread n \<theta> ?cp" 
-      unfolding is_desc_thread_def is_thread_def 
-      by auto
-
-    have "finite (range \<theta>)"
-    proof (rule finite_range_ignore_prefix)
-      
-      from `finite_acg A`
-      have "finite_acg (tcl A)" by (simp add:finite_tcl)
-      with in_closure have "finite_graph G" 
-        unfolding finite_acg_def all_finite_def by blast
-      thus "finite (nodes G)" by (rule finite_nodes)
-
-      from thread_image_nodes[OF thr]
-      show "\<forall>i\<ge>n. \<theta> i \<in> nodes G" by simp
-    qed
-    with finite_range
-    obtain p where inf_visit: "\<exists>\<^sub>\<infinity>i. \<theta> i = p" by auto
-
-    then obtain i where "n < i" "\<theta> i = p" 
-      by (auto simp:INFM_nat)
-
-    from desc
-    have "\<exists>\<^sub>\<infinity>i. descat ?cp \<theta> i"
-      unfolding is_desc_thread_def by auto
-    then obtain j 
-      where "i < j" and "descat ?cp \<theta> j"
-      unfolding INFM_nat by auto
-    from inf_visit obtain k where "j < k" "\<theta> k = p"
-      by (auto simp:INFM_nat)
-
-    from `i < j` `j < k` `n < i` thr 
-      fin_from_inf[of n \<theta> ?cp]
-      `descat ?cp \<theta> j`
-    have "is_desc_fthread \<theta> ?cp i k"
-      unfolding is_desc_fthread_def
-      by auto
-
-    with `\<theta> k = p` `\<theta> i = p`
-    have dfth: "has_desc_fth ?cp i k p p"
-      unfolding has_desc_fth_def
-      by auto
-
-    from `i < j` `j < k` have "i < k" by auto
-    hence "prod (?cp\<langle>i, k\<rangle>) = G"
-    proof (induct i rule:strict_inc_induct)
-      case base thus ?case by (simp add:sub_path_def)
-    next
-      case (step i) thus ?case
-        by (simp add:sub_path_def upt_rec[of i k] idemp)
-    qed
-
-    with `i < j` `j < k` dfth Lemma7b[of i k ?cp p p]
-    have "dsc G p p" by auto
-    with no_strict_arc have False by auto
-    thus ?thesis ..
-  qed
-next
-  assume "SCT' A"
-
-  show "SCT A"
-  proof (rule classical)
-    assume "\<not> SCT A"
-
-    with SCT_def
-    obtain p 
-      where ipath: "has_ipath A p"
-      and no_desc_th: "\<not> (\<exists>\<theta>. is_desc_thread \<theta> p)"
-      by blast
-
-    from `finite_acg A`
-    have "finite_acg (tcl A)" by (simp add: finite_tcl)
-    hence "finite (dest_graph (tcl A))" (is "finite ?AG")
-      by (simp add: finite_acg_def finite_graph_def)
-
-    from pdesc_acgplus[OF ipath]
-    have a: "\<And>x y. x<y \<Longrightarrow> pdesc p\<langle>x,y\<rangle> \<in> dest_graph (tcl A)"
-      unfolding has_edge_def .
-      
-    obtain S G
-      where "infinite S" "G \<in> dest_graph (tcl A)" 
-      and all_G: "\<And>x y. \<lbrakk> x \<in> S; y \<in> S; x < y\<rbrakk> \<Longrightarrow> 
-      pdesc (p\<langle>x,y\<rangle>) = G"
-      apply (rule RamseyNatpairs[of ?AG "\<lambda>(x,y). pdesc p\<langle>x, y\<rangle>"])
-      apply (rule `finite ?AG`)
-      by (simp only:split_conv, rule a, auto)
-
-    obtain n H m where
-      G_struct: "G = (n, H, m)" by (cases G)
-
-    let ?s = "enumerate S"
-    let ?q = "contract ?s p"
-
-    note all_in_S[simp] = enumerate_in_set[OF `infinite S`]
-        from `infinite S` 
-    have inc[simp]: "increasing ?s" 
-      unfolding increasing_def by (simp add:enumerate_mono)
-    note increasing_bij[OF this, simp]
-      
-    from ipath_contract inc ipath
-    have "has_ipath (tcl A) ?q" .
-
-    from all_G G_struct 
-    have all_H: "\<And>i. (snd (?q i)) = H"
-          unfolding contract_def 
-      by simp
-    
-    have loop: "(tcl A) \<turnstile> n \<leadsto>\<^bsup>H\<^esup> n"
-      and idemp: "H * H = H"
-    proof - 
-      let ?i = "?s 0" and ?j = "?s (Suc 0)" and ?k = "?s (Suc (Suc 0))"
-      
-      have "pdesc (p\<langle>?i,?j\<rangle>) = G"
-                and "pdesc (p\<langle>?j,?k\<rangle>) = G"
-                and "pdesc (p\<langle>?i,?k\<rangle>) = G"
-                using all_G 
-                by auto
-          
-      with G_struct 
-      have "m = end_node (p\<langle>?i,?j\<rangle>)"
-                                "n = fst (p\<langle>?j,?k\<rangle>)"
-                                and Hs: "prod (p\<langle>?i,?j\<rangle>) = H"
-                                "prod (p\<langle>?j,?k\<rangle>) = H"
-                                "prod (p\<langle>?i,?k\<rangle>) = H"
-                by auto
-                        
-      hence "m = n" by simp
-      thus "tcl A \<turnstile> n \<leadsto>\<^bsup>H\<^esup> n"
-                using G_struct `G \<in> dest_graph (tcl A)`
-                by (simp add:has_edge_def)
-          
-      from sub_path_prod[of ?i ?j ?k p]      
-      show "H * H = H"
-                unfolding Hs by simp
-    qed
-    moreover have "\<And>k. \<not>dsc H k k"
-    proof
-      fix k :: 'a assume "dsc H k k"
-      
-      with all_H repeated_edge
-      have "\<exists>\<theta>. is_desc_thread \<theta> ?q" by fast
-          with inc have "\<exists>\<theta>. is_desc_thread \<theta> p"
-                by (subst contract_keeps_threads) 
-      with no_desc_th
-      show False ..
-    qed
-    ultimately 
-    have False
-      using `SCT' A`[unfolded SCT'_def no_bad_graphs_def]
-      by blast
-    thus ?thesis ..
-  qed
-qed
-
-end
--- a/src/HOL/SizeChange/Criterion.thy	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-(*  Title:      HOL/Library/SCT_Definition.thy
-    ID:         $Id$
-    Author:     Alexander Krauss, TU Muenchen
-*)
-
-header {* The Size-Change Principle (Definition) *}
-
-theory Criterion
-imports Graphs Infinite_Set
-begin
-
-subsection {* Size-Change Graphs *}
-
-datatype sedge =
-    LESS ("\<down>")
-  | LEQ ("\<Down>")
-
-instantiation sedge :: comm_monoid_mult
-begin
-
-definition
-  one_sedge_def: "1 = \<Down>"
-
-definition
-  mult_sedge_def:" a * b = (if a = \<down> then \<down> else b)"
-
-instance  proof
-  fix a b c :: sedge
-  show "a * b * c = a * (b * c)" by (simp add:mult_sedge_def)
-  show "1 * a = a" by (simp add:mult_sedge_def one_sedge_def)
-  show "a * b = b * a" unfolding mult_sedge_def
-    by (cases a, simp) (cases b, auto)
-qed
-
-end
-
-lemma sedge_UNIV:
-  "UNIV = { LESS, LEQ }"
-proof (intro equalityI subsetI)
-  fix x show "x \<in> { LESS, LEQ }"
-    by (cases x) auto
-qed auto
-
-instance sedge :: finite
-proof
-  show "finite (UNIV::sedge set)"
-  by (simp add: sedge_UNIV)
-qed
-
-
-
-types 'a scg = "('a, sedge) graph"
-types 'a acg = "('a, 'a scg) graph"
-
-
-subsection {* Size-Change Termination *}
-
-abbreviation (input)
-  "desc P Q == ((\<exists>n.\<forall>i\<ge>n. P i) \<and> (\<exists>\<^sub>\<infinity>i. Q i))"
-
-abbreviation (input)
-  "dsc G i j \<equiv> has_edge G i LESS j"
-
-abbreviation (input)
-  "eqp G i j \<equiv> has_edge G i LEQ j"
-
-abbreviation
-  eql :: "'a scg \<Rightarrow> 'a \<Rightarrow> 'a \<Rightarrow> bool"
-("_ \<turnstile> _ \<leadsto> _")
-where
-  "eql G i j \<equiv> has_edge G i LESS j \<or> has_edge G i LEQ j"
-
-
-abbreviation (input) descat :: "('a, 'a scg) ipath \<Rightarrow> 'a sequence \<Rightarrow> nat \<Rightarrow> bool"
-where
-  "descat p \<theta> i \<equiv> has_edge (snd (p i)) (\<theta> i) LESS (\<theta> (Suc i))"
-
-abbreviation (input) eqat :: "('a, 'a scg) ipath \<Rightarrow> 'a sequence \<Rightarrow> nat \<Rightarrow> bool"
-where
-  "eqat p \<theta> i \<equiv> has_edge (snd (p i)) (\<theta> i) LEQ (\<theta> (Suc i))"
-
-
-abbreviation (input) eqlat :: "('a, 'a scg) ipath \<Rightarrow> 'a sequence \<Rightarrow> nat \<Rightarrow> bool"
-where
-  "eqlat p \<theta> i \<equiv> (has_edge (snd (p i)) (\<theta> i) LESS (\<theta> (Suc i))
-                  \<or> has_edge (snd (p i)) (\<theta> i) LEQ (\<theta> (Suc i)))"
-
-
-definition is_desc_thread :: "'a sequence \<Rightarrow> ('a, 'a scg) ipath \<Rightarrow> bool"
-where
-  "is_desc_thread \<theta> p = ((\<exists>n.\<forall>i\<ge>n. eqlat p \<theta> i) \<and> (\<exists>\<^sub>\<infinity>i. descat p \<theta> i))" 
-
-definition SCT :: "'a acg \<Rightarrow> bool"
-where
-  "SCT \<A> = 
-  (\<forall>p. has_ipath \<A> p \<longrightarrow> (\<exists>\<theta>. is_desc_thread \<theta> p))"
-
-
-
-definition no_bad_graphs :: "'a acg \<Rightarrow> bool"
-where
-  "no_bad_graphs A = 
-  (\<forall>n G. has_edge A n G n \<and> G * G = G
-  \<longrightarrow> (\<exists>p. has_edge G p LESS p))"
-
-
-definition SCT' :: "'a acg \<Rightarrow> bool"
-where
-  "SCT' A = no_bad_graphs (tcl A)"
-
-end
--- a/src/HOL/SizeChange/Examples.thy	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-(*  Title:      HOL/Library/SCT_Examples.thy
-    ID:         $Id$
-    Author:     Alexander Krauss, TU Muenchen
-*)
-
-header {* Examples for Size-Change Termination *}
-
-theory Examples
-imports Size_Change_Termination
-begin
-
-function f :: "nat \<Rightarrow> nat \<Rightarrow> nat"
-where
-  "f n 0 = n"
-| "f 0 (Suc m) = f (Suc m) m"
-| "f (Suc n) (Suc m) = f m n"
-by pat_completeness auto
-
-
-termination
-  unfolding f_rel_def lfp_const
-  apply (rule SCT_on_relations)
-  apply (tactic "Sct.abs_rel_tac") (* Build call descriptors *)
-  apply (rule ext, rule ext, simp) (* Show that they are correct *)
-  apply (tactic "Sct.mk_call_graph @{context}") (* Build control graph *)
-  apply (rule SCT_Main)                 (* Apply main theorem *)
-  apply (simp add:finite_acg_simps) (* show finiteness *)
-  oops (*FIXME by eval*) (* Evaluate to true *)
-
-function p :: "nat \<Rightarrow> nat \<Rightarrow> nat \<Rightarrow> nat"
-where
-  "p m n r = (if r>0 then p m (r - 1) n else
-              if n>0 then p r (n - 1) m 
-                     else m)"
-by pat_completeness auto
-
-termination
-  unfolding p_rel_def lfp_const
-  apply (rule SCT_on_relations)
-  apply (tactic "Sct.abs_rel_tac") 
-  apply (rule ext, rule ext, simp) 
-  apply (tactic "Sct.mk_call_graph @{context}")
-  apply (rule SCT_Main)
-  apply (simp add:finite_acg_ins finite_acg_empty finite_graph_def) (* show finiteness *)
-  oops (* FIXME by eval *)
-
-function foo :: "bool \<Rightarrow> nat \<Rightarrow> nat \<Rightarrow> nat"
-where
-  "foo True (Suc n) m = foo True n (Suc m)"
-| "foo True 0 m = foo False 0 m"
-| "foo False n (Suc m) = foo False (Suc n) m"
-| "foo False n 0 = n"
-by pat_completeness auto
-
-termination
-  unfolding foo_rel_def lfp_const
-  apply (rule SCT_on_relations)
-  apply (tactic "Sct.abs_rel_tac") 
-  apply (rule ext, rule ext, simp) 
-  apply (tactic "Sct.mk_call_graph @{context}")
-  apply (rule SCT_Main)
-  apply (simp add:finite_acg_ins finite_acg_empty finite_graph_def) (* show finiteness *)
-  oops (* FIXME by eval *)
-
-
-function (sequential) 
-  bar :: "nat \<Rightarrow> nat \<Rightarrow> nat \<Rightarrow> nat"
-where
-  "bar 0 (Suc n) m = bar m m m"
-| "bar k n m = 0"
-by pat_completeness auto
-
-termination
-  unfolding bar_rel_def lfp_const
-  apply (rule SCT_on_relations)
-  apply (tactic "Sct.abs_rel_tac") 
-  apply (rule ext, rule ext, simp) 
-  apply (tactic "Sct.mk_call_graph @{context}")
-  apply (rule SCT_Main)
-  apply (simp add:finite_acg_ins finite_acg_empty finite_graph_def) (* show finiteness *)
-  by (simp only:sctTest_simps cong: sctTest_congs)
-
-end
--- a/src/HOL/SizeChange/Graphs.thy	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,768 +0,0 @@
-(*  Title:      HOL/Library/Graphs.thy
-    Author:     Alexander Krauss, TU Muenchen
-*)
-
-header {* General Graphs as Sets *}
-
-theory Graphs
-imports Main Misc_Tools Kleene_Algebra
-begin
-
-subsection {* Basic types, Size Change Graphs *}
-
-datatype ('a, 'b) graph = 
-  Graph "('a \<times> 'b \<times> 'a) set"
-
-primrec dest_graph :: "('a, 'b) graph \<Rightarrow> ('a \<times> 'b \<times> 'a) set"
-  where "dest_graph (Graph G) = G"
-
-lemma graph_dest_graph[simp]:
-  "Graph (dest_graph G) = G"
-  by (cases G) simp
-
-lemma split_graph_all:
-  "(\<And>gr. PROP P gr) \<equiv> (\<And>set. PROP P (Graph set))"
-proof
-  fix set
-  assume "\<And>gr. PROP P gr"
-  then show "PROP P (Graph set)" .
-next
-  fix gr
-  assume "\<And>set. PROP P (Graph set)"
-  then have "PROP P (Graph (dest_graph gr))" .
-  then show "PROP P gr" by simp
-qed
-
-definition 
-  has_edge :: "('n,'e) graph \<Rightarrow> 'n \<Rightarrow> 'e \<Rightarrow> 'n \<Rightarrow> bool"
-("_ \<turnstile> _ \<leadsto>\<^bsup>_\<^esup> _")
-where
-  "has_edge G n e n' = ((n, e, n') \<in> dest_graph G)"
-
-
-subsection {* Graph composition *}
-
-fun grcomp :: "('n, 'e::times) graph \<Rightarrow> ('n, 'e) graph  \<Rightarrow> ('n, 'e) graph"
-where
-  "grcomp (Graph G) (Graph H) = 
-  Graph {(p,b,q) | p b q. 
-  (\<exists>k e e'. (p,e,k)\<in>G \<and> (k,e',q)\<in>H \<and> b = e * e')}"
-
-
-declare grcomp.simps[code del]
-
-
-lemma graph_ext:
-  assumes "\<And>n e n'. has_edge G n e n' = has_edge H n e n'"
-  shows "G = H"
-  using assms
-  by (cases G, cases H) (auto simp:split_paired_all has_edge_def)
-
-
-instantiation graph :: (type, type) comm_monoid_add
-begin
-
-definition
-  graph_zero_def: "0 = Graph {}" 
-
-definition
-  graph_plus_def [code del]: "G + H = Graph (dest_graph G \<union> dest_graph H)"
-
-instance proof
-  fix x y z :: "('a,'b) graph"
-  show "x + y + z = x + (y + z)" 
-   and "x + y = y + x" 
-   and "0 + x = x"
-  unfolding graph_plus_def graph_zero_def by auto
-qed
-
-end
-
-instantiation graph :: (type, type) "{distrib_lattice, complete_lattice}"
-begin
-
-definition
-  graph_leq_def [code del]: "G \<le> H \<longleftrightarrow> dest_graph G \<subseteq> dest_graph H"
-
-definition
-  graph_less_def [code del]: "G < H \<longleftrightarrow> dest_graph G \<subset> dest_graph H"
-
-definition
-  [code del]: "bot = Graph {}"
-
-definition
-  [code del]: "top = Graph UNIV"
-
-definition
-  [code del]: "inf G H = Graph (dest_graph G \<inter> dest_graph H)"
-
-definition
-  [code del]: "sup (G \<Colon> ('a, 'b) graph) H = G + H"
-
-definition
-  Inf_graph_def [code del]: "Inf = (\<lambda>Gs. Graph (\<Inter>(dest_graph ` Gs)))"
-
-definition
-  Sup_graph_def [code del]: "Sup = (\<lambda>Gs. Graph (\<Union>(dest_graph ` Gs)))"
-
-instance proof
-  fix x y z :: "('a,'b) graph"
-  fix A :: "('a, 'b) graph set"
-
-  show "(x < y) = (x \<le> y \<and> \<not> y \<le> x)"
-    unfolding graph_leq_def graph_less_def
-    by (cases x, cases y) auto
-
-  show "x \<le> x" unfolding graph_leq_def ..
-
-  { assume "x \<le> y" "y \<le> z" 
-    with order_trans show "x \<le> z"
-      unfolding graph_leq_def . }
-
-  { assume "x \<le> y" "y \<le> x" thus "x = y" 
-      unfolding graph_leq_def 
-      by (cases x, cases y) simp }
-
-  show "inf x y \<le> x" "inf x y \<le> y"
-    unfolding inf_graph_def graph_leq_def 
-    by auto    
-  
-  { assume "x \<le> y" "x \<le> z" thus "x \<le> inf y z"
-      unfolding inf_graph_def graph_leq_def 
-      by auto }
-
-  show "x \<le> sup x y" "y \<le> sup x y"
-    unfolding sup_graph_def graph_leq_def graph_plus_def by auto
-
-  { assume "y \<le> x" "z \<le> x" thus "sup y z \<le> x"
-      unfolding sup_graph_def graph_leq_def graph_plus_def by auto }
-
-  show "bot \<le> x" unfolding graph_leq_def bot_graph_def by simp
-
-  show "x \<le> top" unfolding graph_leq_def top_graph_def by simp
-  
-  show "sup x (inf y z) = inf (sup x y) (sup x z)"
-    unfolding inf_graph_def sup_graph_def graph_leq_def graph_plus_def by auto
-
-  { assume "x \<in> A" thus "Inf A \<le> x" 
-      unfolding Inf_graph_def graph_leq_def by auto }
-
-  { assume "\<And>x. x \<in> A \<Longrightarrow> z \<le> x" thus "z \<le> Inf A"
-    unfolding Inf_graph_def graph_leq_def by auto }
-
-  { assume "x \<in> A" thus "x \<le> Sup A" 
-      unfolding Sup_graph_def graph_leq_def by auto }
-
-  { assume "\<And>x. x \<in> A \<Longrightarrow> x \<le> z" thus "Sup A \<le> z"
-    unfolding Sup_graph_def graph_leq_def by auto }
-qed
-
-end
-
-lemma in_grplus:
-  "has_edge (G + H) p b q = (has_edge G p b q \<or> has_edge H p b q)"
-  by (cases G, cases H, auto simp:has_edge_def graph_plus_def)
-
-lemma in_grzero:
-  "has_edge 0 p b q = False"
-  by (simp add:graph_zero_def has_edge_def)
-
-
-subsubsection {* Multiplicative Structure *}
-
-instantiation graph :: (type, times) mult_zero
-begin
-
-definition
-  graph_mult_def [code del]: "G * H = grcomp G H" 
-
-instance proof
-  fix a :: "('a, 'b) graph"
-
-  show "0 * a = 0" 
-    unfolding graph_mult_def graph_zero_def
-    by (cases a) (simp add:grcomp.simps)
-  show "a * 0 = 0" 
-    unfolding graph_mult_def graph_zero_def
-    by (cases a) (simp add:grcomp.simps)
-qed
-
-end
-
-instantiation graph :: (type, one) one 
-begin
-
-definition
-  graph_one_def: "1 = Graph { (x, 1, x) |x. True}"
-
-instance ..
-
-end
-
-lemma in_grcomp:
-  "has_edge (G * H) p b q
-  = (\<exists>k e e'. has_edge G p e k \<and> has_edge H k e' q \<and> b = e * e')"
-  by (cases G, cases H) (auto simp:graph_mult_def has_edge_def image_def)
-
-lemma in_grunit:
-  "has_edge 1 p b q = (p = q \<and> b = 1)"
-  by (auto simp:graph_one_def has_edge_def)
-
-instance graph :: (type, semigroup_mult) semigroup_mult
-proof
-  fix G1 G2 G3 :: "('a,'b) graph"
-  
-  show "G1 * G2 * G3 = G1 * (G2 * G3)"
-  proof (rule graph_ext, rule trans)
-    fix p J q
-    show "has_edge ((G1 * G2) * G3) p J q =
-      (\<exists>G i H j I.
-      has_edge G1 p G i
-      \<and> has_edge G2 i H j
-      \<and> has_edge G3 j I q
-      \<and> J = (G * H) * I)"
-      by (simp only:in_grcomp) blast
-    show "\<dots> = has_edge (G1 * (G2 * G3)) p J q"
-      by (simp only:in_grcomp mult_assoc) blast
-  qed
-qed
-
-instance graph :: (type, monoid_mult) "{semiring_1, idem_add}"
-proof
-  fix a b c :: "('a, 'b) graph"
-  
-  show "1 * a = a" 
-    by (rule graph_ext) (auto simp:in_grcomp in_grunit)
-  show "a * 1 = a"
-    by (rule graph_ext) (auto simp:in_grcomp in_grunit)
-
-  show "(a + b) * c = a * c + b * c"
-    by (rule graph_ext, simp add:in_grcomp in_grplus) blast
-
-  show "a * (b + c) = a * b + a * c"
-    by (rule graph_ext, simp add:in_grcomp in_grplus) blast
-
-  show "(0::('a,'b) graph) \<noteq> 1" unfolding graph_zero_def graph_one_def
-    by simp
-
-  show "a + a = a" unfolding graph_plus_def by simp
-  
-qed
-
-instantiation graph :: (type, monoid_mult) star
-begin
-
-definition
-  graph_star_def: "star (G \<Colon> ('a, 'b) graph) = (SUP n. G ^ n)" 
-
-instance ..
-
-end
-
-lemma graph_leqI:
-  assumes "\<And>n e n'. has_edge G n e n' \<Longrightarrow> has_edge H n e n'"
-  shows "G \<le> H"
-  using assms
-  unfolding graph_leq_def has_edge_def
-  by auto
-
-lemma in_graph_plusE:
-  assumes "has_edge (G + H) n e n'"
-  assumes "has_edge G n e n' \<Longrightarrow> P"
-  assumes "has_edge H n e n' \<Longrightarrow> P"
-  shows P
-  using assms
-  by (auto simp: in_grplus)
-
-lemma in_graph_compE:
-  assumes GH: "has_edge (G * H) n e n'"
-  obtains e1 k e2 
-  where "has_edge G n e1 k" "has_edge H k e2 n'" "e = e1 * e2"
-  using GH
-  by (auto simp: in_grcomp)
-
-lemma 
-  assumes "x \<in> S k"
-  shows "x \<in> (\<Union>k. S k)"
-  using assms by blast
-
-lemma graph_union_least:
-  assumes "\<And>n. Graph (G n) \<le> C"
-  shows "Graph (\<Union>n. G n) \<le> C"
-  using assms unfolding graph_leq_def
-  by auto
-
-lemma Sup_graph_eq:
-  "(SUP n. Graph (G n)) = Graph (\<Union>n. G n)"
-proof (rule order_antisym)
-  show "(SUP n. Graph (G n)) \<le> Graph (\<Union>n. G n)"
-    by  (rule SUP_leI) (auto simp add: graph_leq_def)
-
-  show "Graph (\<Union>n. G n) \<le> (SUP n. Graph (G n))"
-  by (rule graph_union_least, rule le_SUPI', rule) 
-qed
-
-lemma has_edge_leq: "has_edge G p b q = (Graph {(p,b,q)} \<le> G)"
-  unfolding has_edge_def graph_leq_def
-  by (cases G) simp
-
-
-lemma Sup_graph_eq2:
-  "(SUP n. G n) = Graph (\<Union>n. dest_graph (G n))"
-  using Sup_graph_eq[of "\<lambda>n. dest_graph (G n)", simplified]
-  by simp
-
-lemma in_SUP:
-  "has_edge (SUP x. Gs x) p b q = (\<exists>x. has_edge (Gs x) p b q)"
-  unfolding Sup_graph_eq2 has_edge_leq graph_leq_def
-  by simp
-
-instance graph :: (type, monoid_mult) kleene_by_complete_lattice
-proof
-  fix a b c :: "('a, 'b) graph"
-
-  show "a \<le> b \<longleftrightarrow> a + b = b" unfolding graph_leq_def graph_plus_def
-    by (cases a, cases b) auto
-
-  from less_le_not_le show "a < b \<longleftrightarrow> a \<le> b \<and> \<not> b \<le> a" .
-
-  show "a * star b * c = (SUP n. a * b ^ n * c)"
-    unfolding graph_star_def
-    by (rule graph_ext) (force simp:in_SUP in_grcomp)
-qed
-
-
-lemma in_star: 
-  "has_edge (star G) a x b = (\<exists>n. has_edge (G ^ n) a x b)"
-  by (auto simp:graph_star_def in_SUP)
-
-lemma tcl_is_SUP:
-  "tcl (G::('a::type, 'b::monoid_mult) graph) =
-  (SUP n. G ^ (Suc n))"
-  unfolding tcl_def 
-  using star_cont[of 1 G G]
-  by (simp add:power_Suc power_commutes)
-
-
-lemma in_tcl: 
-  "has_edge (tcl G) a x b = (\<exists>n>0. has_edge (G ^ n) a x b)"
-  apply (auto simp: tcl_is_SUP in_SUP simp del: power.simps power_Suc)
-  apply (rule_tac x = "n - 1" in exI, auto)
-  done
-
-
-subsection {* Infinite Paths *}
-
-types ('n, 'e) ipath = "('n \<times> 'e) sequence"
-
-definition has_ipath :: "('n, 'e) graph \<Rightarrow> ('n, 'e) ipath \<Rightarrow> bool"
-where
-  "has_ipath G p = 
-  (\<forall>i. has_edge G (fst (p i)) (snd (p i)) (fst (p (Suc i))))"
-
-
-subsection {* Finite Paths *}
-
-types ('n, 'e) fpath = "('n \<times> ('e \<times> 'n) list)"
-
-inductive  has_fpath :: "('n, 'e) graph \<Rightarrow> ('n, 'e) fpath \<Rightarrow> bool" 
-  for G :: "('n, 'e) graph"
-where
-  has_fpath_empty: "has_fpath G (n, [])"
-| has_fpath_join: "\<lbrakk>G \<turnstile> n \<leadsto>\<^bsup>e\<^esup> n'; has_fpath G (n', es)\<rbrakk> \<Longrightarrow> has_fpath G (n, (e, n')#es)"
-
-definition 
-  "end_node p = 
-  (if snd p = [] then fst p else snd (snd p ! (length (snd p) - 1)))"
-
-definition path_nth :: "('n, 'e) fpath \<Rightarrow> nat \<Rightarrow> ('n \<times> 'e \<times> 'n)"
-where
-  "path_nth p k = (if k = 0 then fst p else snd (snd p ! (k - 1)), snd p ! k)"
-
-lemma endnode_nth:
-  assumes "length (snd p) = Suc k"
-  shows "end_node p = snd (snd (path_nth p k))"
-  using assms unfolding end_node_def path_nth_def
-  by auto
-
-lemma path_nth_graph:
-  assumes "k < length (snd p)"
-  assumes "has_fpath G p"
-  shows "(\<lambda>(n,e,n'). has_edge G n e n') (path_nth p k)"
-using assms
-proof (induct k arbitrary: p)
-  case 0 thus ?case 
-    unfolding path_nth_def by (auto elim:has_fpath.cases)
-next
-  case (Suc k p)
-
-  from `has_fpath G p` show ?case 
-  proof (rule has_fpath.cases)
-    case goal1 with Suc show ?case by simp
-  next
-    fix n e n' es
-    assume st: "p = (n, (e, n') # es)"
-       "G \<turnstile> n \<leadsto>\<^bsup>e\<^esup> n'"
-       "has_fpath G (n', es)"
-    with Suc
-    have "(\<lambda>(n, b, a). G \<turnstile> n \<leadsto>\<^bsup>b\<^esup> a) (path_nth (n', es) k)" by simp
-    with st show ?thesis by (cases k, auto simp:path_nth_def)
-  qed
-qed
-
-lemma path_nth_connected:
-  assumes "Suc k < length (snd p)"
-  shows "fst (path_nth p (Suc k)) = snd (snd (path_nth p k))"
-  using assms
-  unfolding path_nth_def
-  by auto
-
-definition path_loop :: "('n, 'e) fpath \<Rightarrow> ('n, 'e) ipath" ("omega")
-where
-  "omega p \<equiv> (\<lambda>i. (\<lambda>(n,e,n'). (n,e)) (path_nth p (i mod (length (snd p)))))"
-
-lemma fst_p0: "fst (path_nth p 0) = fst p"
-  unfolding path_nth_def by simp
-
-lemma path_loop_connect:
-  assumes "fst p = end_node p"
-  and "0 < length (snd p)" (is "0 < ?l")
-  shows "fst (path_nth p (Suc i mod (length (snd p))))
-  = snd (snd (path_nth p (i mod length (snd p))))"
-  (is "\<dots> = snd (snd (path_nth p ?k))")
-proof -
-  from `0 < ?l` have "i mod ?l < ?l" (is "?k < ?l")
-    by simp
-
-  show ?thesis 
-  proof (cases "Suc ?k < ?l")
-    case True
-    hence "Suc ?k \<noteq> ?l" by simp
-    with path_nth_connected[OF True]
-    show ?thesis
-      by (simp add:mod_Suc)
-  next
-    case False 
-    with `?k < ?l` have wrap: "Suc ?k = ?l" by simp
-
-    hence "fst (path_nth p (Suc i mod ?l)) = fst (path_nth p 0)" 
-      by (simp add: mod_Suc)
-    also from fst_p0 have "\<dots> = fst p" .
-    also have "\<dots> = end_node p" by fact
-    also have "\<dots> = snd (snd (path_nth p ?k))" 
-      by (auto simp: endnode_nth wrap)
-    finally show ?thesis .
-  qed
-qed
-
-lemma path_loop_graph:
-  assumes "has_fpath G p"
-  and loop: "fst p = end_node p"
-  and nonempty: "0 < length (snd p)" (is "0 < ?l")
-  shows "has_ipath G (omega p)"
-proof -
-  {
-    fix i 
-    from `0 < ?l` have "i mod ?l < ?l" (is "?k < ?l")
-      by simp
-    from this and `has_fpath G p`
-    have pk_G: "(\<lambda>(n,e,n'). has_edge G n e n') (path_nth p ?k)"
-      by (rule path_nth_graph)
-
-    from path_loop_connect[OF loop nonempty] pk_G
-    have "has_edge G (fst (omega p i)) (snd (omega p i)) (fst (omega p (Suc i)))"
-      unfolding path_loop_def has_edge_def split_def
-      by simp
-  }
-  then show ?thesis by (auto simp:has_ipath_def)
-qed
-
-definition prod :: "('n, 'e::monoid_mult) fpath \<Rightarrow> 'e"
-where
-  "prod p = foldr (op *) (map fst (snd p)) 1"
-
-lemma prod_simps[simp]:
-  "prod (n, []) = 1"
-  "prod (n, (e,n')#es) = e * (prod (n',es))"
-unfolding prod_def
-by simp_all
-
-lemma power_induces_path:
-  assumes a: "has_edge (A ^ k) n G m"
-  obtains p 
-    where "has_fpath A p"
-      and "n = fst p" "m = end_node p"
-      and "G = prod p"
-      and "k = length (snd p)"
-  using a
-proof (induct k arbitrary:m n G thesis)
-  case (0 m n G)
-  let ?p = "(n, [])"
-  from 0 have "has_fpath A ?p" "m = end_node ?p" "G = prod ?p"
-    by (auto simp:in_grunit end_node_def intro:has_fpath.intros)
-  thus ?case using 0 by (auto simp:end_node_def)
-next
-  case (Suc k m n G)
-  hence "has_edge (A * A ^ k) n G m" 
-    by (simp add:power_Suc power_commutes)
-  then obtain G' H j where 
-    a_A: "has_edge A n G' j"
-    and H_pow: "has_edge (A ^ k) j H m"
-    and [simp]: "G = G' * H"
-    by (auto simp:in_grcomp) 
-
-  from H_pow and Suc
-  obtain p
-    where p_path: "has_fpath A p"
-    and [simp]: "j = fst p" "m = end_node p" "H = prod p" 
-    "k = length (snd p)"
-    by blast
-
-  let ?p' = "(n, (G', j)#snd p)"
-  from a_A and p_path
-  have "has_fpath A ?p'" "m = end_node ?p'" "G = prod ?p'"
-    by (auto simp:end_node_def nth.simps intro:has_fpath.intros split:nat.split)
-  thus ?case using Suc by auto
-qed
-
-
-subsection {* Sub-Paths *}
-
-definition sub_path :: "('n, 'e) ipath \<Rightarrow> nat \<Rightarrow> nat \<Rightarrow> ('n, 'e) fpath"
-("(_\<langle>_,_\<rangle>)")
-where
-  "p\<langle>i,j\<rangle> =
-  (fst (p i), map (\<lambda>k. (snd (p k), fst (p (Suc k)))) [i ..< j])"
-
-
-lemma sub_path_is_path: 
-  assumes ipath: "has_ipath G p"
-  assumes l: "i \<le> j"
-  shows "has_fpath G (p\<langle>i,j\<rangle>)"
-  using l
-proof (induct i rule:inc_induct)
-  case base show ?case by (auto simp:sub_path_def intro:has_fpath.intros)
-next
-  case (step i)
-  with ipath upt_rec[of i j]
-  show ?case
-    by (auto simp:sub_path_def has_ipath_def intro:has_fpath.intros)
-qed
-
-
-lemma sub_path_start[simp]:
-  "fst (p\<langle>i,j\<rangle>) = fst (p i)"
-  by (simp add:sub_path_def)
-
-lemma nth_upto[simp]: "k < j - i \<Longrightarrow> [i ..< j] ! k = i + k"
-  by (induct k) auto
-
-lemma sub_path_end[simp]:
-  "i < j \<Longrightarrow> end_node (p\<langle>i,j\<rangle>) = fst (p j)"
-  by (auto simp:sub_path_def end_node_def)
-
-lemma foldr_map: "foldr f (map g xs) = foldr (f o g) xs"
-  by (induct xs) auto
-
-lemma upto_append[simp]:
-  assumes "i \<le> j" "j \<le> k"
-  shows "[ i ..< j ] @ [j ..< k] = [i ..< k]"
-  using assms and upt_add_eq_append[of i j "k - j"]
-  by simp
-
-lemma foldr_monoid: "foldr (op *) xs 1 * foldr (op *) ys 1
-  = foldr (op *) (xs @ ys) (1::'a::monoid_mult)"
-  by (induct xs) (auto simp:mult_assoc)
-
-lemma sub_path_prod:
-  assumes "i < j"
-  assumes "j < k"
-  shows "prod (p\<langle>i,k\<rangle>) = prod (p\<langle>i,j\<rangle>) * prod (p\<langle>j,k\<rangle>)"
-  using assms
-  unfolding prod_def sub_path_def
-  by (simp add:map_compose[symmetric] comp_def)
-   (simp only:foldr_monoid map_append[symmetric] upto_append)
-
-
-lemma path_acgpow_aux:
-  assumes "length es = l"
-  assumes "has_fpath G (n,es)"
-  shows "has_edge (G ^ l) n (prod (n,es)) (end_node (n,es))"
-using assms
-proof (induct l arbitrary:n es)
-  case 0 thus ?case
-    by (simp add:in_grunit end_node_def) 
-next
-  case (Suc l n es)
-  hence "es \<noteq> []" by auto
-  let ?n' = "snd (hd es)"
-  let ?es' = "tl es"
-  let ?e = "fst (hd es)"
-
-  from Suc have len: "length ?es' = l" by auto
-
-  from Suc
-  have [simp]: "end_node (n, es) = end_node (?n', ?es')"
-    by (cases es) (auto simp:end_node_def nth.simps split:nat.split)
-
-  from `has_fpath G (n,es)`
-  have "has_fpath G (?n', ?es')"
-    by (rule has_fpath.cases) (auto intro:has_fpath.intros)
-  with Suc len
-  have "has_edge (G ^ l) ?n' (prod (?n', ?es')) (end_node (?n', ?es'))"
-    by auto
-  moreover
-  from `es \<noteq> []`
-  have "prod (n, es) = ?e * (prod (?n', ?es'))"
-    by (cases es) auto
-  moreover
-  from `has_fpath G (n,es)` have c:"has_edge G n ?e ?n'"
-    by (rule has_fpath.cases) (insert `es \<noteq> []`, auto)
-
-  ultimately
-  show ?case
-     unfolding power_Suc 
-     by (auto simp:in_grcomp)
-qed
-
-
-lemma path_acgpow:
-   "has_fpath G p
-  \<Longrightarrow> has_edge (G ^ length (snd p)) (fst p) (prod p) (end_node p)"
-by (cases p)
-   (rule path_acgpow_aux[of "snd p" "length (snd p)" _ "fst p", simplified])
-
-
-lemma star_paths:
-  "has_edge (star G) a x b =
-   (\<exists>p. has_fpath G p \<and> a = fst p \<and> b = end_node p \<and> x = prod p)"
-proof
-  assume "has_edge (star G) a x b"
-  then obtain n where pow: "has_edge (G ^ n) a x b"
-    by (auto simp:in_star)
-
-  then obtain p where
-    "has_fpath G p" "a = fst p" "b = end_node p" "x = prod p"
-    by (rule power_induces_path)
-
-  thus "\<exists>p. has_fpath G p \<and> a = fst p \<and> b = end_node p \<and> x = prod p"
-    by blast
-next
-  assume "\<exists>p. has_fpath G p \<and> a = fst p \<and> b = end_node p \<and> x = prod p"
-  then obtain p where
-    "has_fpath G p" "a = fst p" "b = end_node p" "x = prod p"
-    by blast
-
-  hence "has_edge (G ^ length (snd p)) a x b"
-    by (auto intro:path_acgpow)
-
-  thus "has_edge (star G) a x b"
-    by (auto simp:in_star)
-qed
-
-
-lemma plus_paths:
-  "has_edge (tcl G) a x b =
-   (\<exists>p. has_fpath G p \<and> a = fst p \<and> b = end_node p \<and> x = prod p \<and> 0 < length (snd p))"
-proof
-  assume "has_edge (tcl G) a x b"
-  
-  then obtain n where pow: "has_edge (G ^ n) a x b" and "0 < n"
-    by (auto simp:in_tcl)
-
-  from pow obtain p where
-    "has_fpath G p" "a = fst p" "b = end_node p" "x = prod p"
-    "n = length (snd p)"
-    by (rule power_induces_path)
-
-  with `0 < n`
-  show "\<exists>p. has_fpath G p \<and> a = fst p \<and> b = end_node p \<and> x = prod p \<and> 0 < length (snd p) "
-    by blast
-next
-  assume "\<exists>p. has_fpath G p \<and> a = fst p \<and> b = end_node p \<and> x = prod p
-    \<and> 0 < length (snd p)"
-  then obtain p where
-    "has_fpath G p" "a = fst p" "b = end_node p" "x = prod p"
-    "0 < length (snd p)"
-    by blast
-
-  hence "has_edge (G ^ length (snd p)) a x b"
-    by (auto intro:path_acgpow)
-
-  with `0 < length (snd p)`
-  show "has_edge (tcl G) a x b"
-    by (auto simp:in_tcl)
-qed
-
-
-definition
-  "contract s p = 
-  (\<lambda>i. (fst (p (s i)), prod (p\<langle>s i,s (Suc i)\<rangle>)))"
-
-lemma ipath_contract:
-  assumes [simp]: "increasing s"
-  assumes ipath: "has_ipath G p"
-  shows "has_ipath (tcl G) (contract s p)"
-  unfolding has_ipath_def 
-proof
-  fix i
-  let ?p = "p\<langle>s i,s (Suc i)\<rangle>"
-
-  from increasing_strict 
-  have "fst (p (s (Suc i))) = end_node ?p" by simp
-  moreover
-  from increasing_strict[of s i "Suc i"] have "snd ?p \<noteq> []"
-    by (simp add:sub_path_def)
-  moreover
-  from ipath increasing_weak[of s] have "has_fpath G ?p"
-    by (rule sub_path_is_path) auto
-  ultimately
-  show "has_edge (tcl G) 
-    (fst (contract s p i)) (snd (contract s p i)) (fst (contract s p (Suc i)))"
-    unfolding contract_def plus_paths
-    by (intro exI) auto
-qed
-
-lemma prod_unfold:
-  "i < j \<Longrightarrow> prod (p\<langle>i,j\<rangle>) 
-  = snd (p i) * prod (p\<langle>Suc i, j\<rangle>)"
-  unfolding prod_def
-  by (simp add:sub_path_def upt_rec[of "i" j])
-
-
-lemma sub_path_loop:
-  assumes "0 < k"
-  assumes k: "k = length (snd loop)"
-  assumes loop: "fst loop = end_node loop"
-  shows "(omega loop)\<langle>k * i,k * Suc i\<rangle> = loop" (is "?\<omega> = loop")
-proof (rule prod_eqI)
-  show "fst ?\<omega> = fst loop"
-    by (auto simp:path_loop_def path_nth_def split_def k)
-
-  show "snd ?\<omega> = snd loop"
-  proof (rule nth_equalityI[rule_format])
-    show leneq: "length (snd ?\<omega>) = length (snd loop)"
-      unfolding sub_path_def k by simp
-
-    fix j assume "j < length (snd (?\<omega>))"
-    with leneq and k have "j < k" by simp
-
-    have a: "\<And>i. fst (path_nth loop (Suc i mod k))
-      = snd (snd (path_nth loop (i mod k)))"
-      unfolding k
-      apply (rule path_loop_connect[OF loop])
-      using `0 < k` and k
-      apply auto
-      done
-
-    from `j < k` 
-    show "snd ?\<omega> ! j = snd loop ! j"
-      unfolding sub_path_def
-      apply (simp add:path_loop_def split_def add_ac)
-      apply (simp add:a k[symmetric])
-      apply (simp add:path_nth_def)
-      done
-  qed
-qed
-
-end
--- a/src/HOL/SizeChange/Implementation.thy	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,185 +0,0 @@
-(*  Title:      HOL/Library/SCT_Implementation.thy
-    ID:         $Id$
-    Author:     Alexander Krauss, TU Muenchen
-*)
-
-header {* Implemtation of the SCT criterion *}
-
-theory Implementation
-imports Correctness
-begin
-
-fun edges_match :: "('n \<times> 'e \<times> 'n) \<times> ('n \<times> 'e \<times> 'n) \<Rightarrow> bool"
-where
-  "edges_match ((n, e, m), (n',e',m')) = (m = n')"
-
-fun connect_edges :: 
-  "('n \<times> ('e::times) \<times> 'n) \<times> ('n \<times> 'e \<times> 'n)
-  \<Rightarrow> ('n \<times> 'e \<times> 'n)"
-where
-  "connect_edges ((n,e,m), (n', e', m')) = (n, e * e', m')"
-
-lemma grcomp_code [code]:
-  "grcomp (Graph G) (Graph H) = Graph (connect_edges ` { x \<in> G\<times>H. edges_match x })"
-  by (rule graph_ext) (auto simp:graph_mult_def has_edge_def image_def)
-
-
-lemma mk_tcl_finite_terminates:
-  fixes A :: "'a acg"
-  assumes fA: "finite_acg A" 
-  shows "mk_tcl_dom (A, A)"
-proof -
-  from fA have fin_tcl: "finite_acg (tcl A)"
-    by (simp add:finite_tcl)
-
-  hence "finite (dest_graph (tcl A))"
-    unfolding finite_acg_def finite_graph_def ..
-
-  let ?count = "\<lambda>G. card (dest_graph G)"
-  let ?N = "?count (tcl A)"
-  let ?m = "\<lambda>X. ?N - (?count X)"
-
-  let ?P = "\<lambda>X. mk_tcl_dom (A, X)"
-  
-  {
-    fix X
-    assume "X \<le> tcl A"
-    then
-    have "mk_tcl_dom (A, X)"
-    proof (induct X rule:measure_induct_rule[of ?m])
-      case (less X)
-      show ?case
-      proof (cases "X * A \<le> X")
-        case True 
-        with mk_tcl.domintros show ?thesis by auto
-      next
-        case False
-        then have l: "X < X + X * A"
-          unfolding graph_less_def graph_leq_def graph_plus_def
-          by auto
-
-        from `X \<le> tcl A` 
-        have "X * A \<le> tcl A * A" by (simp add:mult_mono)
-        also have "\<dots> \<le> A + tcl A * A" by simp
-        also have "\<dots> = tcl A" by (simp add:tcl_unfold_right[symmetric])
-        finally have "X * A \<le> tcl A" .
-        with `X \<le> tcl A` 
-        have "X + X * A \<le> tcl A + tcl A"
-          by (rule add_mono)
-        hence less_tcl: "X + X * A \<le> tcl A" by simp 
-        hence "X < tcl A"
-          using l `X \<le> tcl A` by auto
-
-        from less_tcl fin_tcl
-        have "finite_acg (X + X * A)" by (rule finite_acg_subset)
-        hence "finite (dest_graph (X + X * A))" 
-          unfolding finite_acg_def finite_graph_def ..
-        
-        hence X: "?count X < ?count (X + X * A)"
-          using l[simplified graph_less_def graph_leq_def]
-          by (rule psubset_card_mono)
-        
-        have "?count X < ?N" 
-          apply (rule psubset_card_mono)
-          by fact (rule `X < tcl A`[simplified graph_less_def])
-        
-        with X have "?m (X + X * A) < ?m X" by arith
-        
-        from  less.hyps this less_tcl
-        have "mk_tcl_dom (A, X + X * A)" .
-        with mk_tcl.domintros show ?thesis .
-      qed
-    qed
-  }
-  from this less_tcl show ?thesis .
-qed
-
-
-lemma mk_tcl_finite_tcl:
-  fixes A :: "'a acg"
-  assumes fA: "finite_acg A"
-  shows "mk_tcl A A = tcl A"
-  using mk_tcl_finite_terminates[OF fA]
-  by (simp only: tcl_def mk_tcl_correctness star_simulation)
-
-definition test_SCT :: "nat acg \<Rightarrow> bool"
-where
-  "test_SCT \<A> = 
-  (let \<T> = mk_tcl \<A> \<A>
-    in (\<forall>(n,G,m)\<in>dest_graph \<T>. 
-          n \<noteq> m \<or> G * G \<noteq> G \<or> 
-         (\<exists>(p::nat,e,q)\<in>dest_graph G. p = q \<and> e = LESS)))"
-
-
-lemma SCT'_exec:
-  assumes fin: "finite_acg A"
-  shows "SCT' A = test_SCT A"
-  using mk_tcl_finite_tcl[OF fin]
-  unfolding test_SCT_def Let_def 
-  unfolding SCT'_def no_bad_graphs_def has_edge_def
-  by force
-
-code_modulename SML
-  Implementation Graphs
-
-lemma [code]:
-  "(G\<Colon>('a\<Colon>eq, 'b\<Colon>eq) graph) \<le> H \<longleftrightarrow> dest_graph G \<subseteq> dest_graph H"
-  "(G\<Colon>('a\<Colon>eq, 'b\<Colon>eq) graph) < H \<longleftrightarrow> dest_graph G \<subset> dest_graph H"
-  unfolding graph_leq_def graph_less_def by rule+
-
-lemma [code]:
-  "(G\<Colon>('a\<Colon>eq, 'b\<Colon>eq) graph) + H = Graph (dest_graph G \<union> dest_graph H)"
-  unfolding graph_plus_def ..
-
-lemma [code]:
-  "(G\<Colon>('a\<Colon>eq, 'b\<Colon>{eq, times}) graph) * H = grcomp G H"
-  unfolding graph_mult_def ..
-
-
-
-lemma SCT'_empty: "SCT' (Graph {})"
-  unfolding SCT'_def no_bad_graphs_def graph_zero_def[symmetric]
-  tcl_zero
-  by (simp add:in_grzero)
-
-
-
-subsection {* Witness checking *}
-
-definition test_SCT_witness :: "nat acg \<Rightarrow> nat acg \<Rightarrow> bool"
-where
-  "test_SCT_witness A T = 
-  (A \<le> T \<and> A * T \<le> T \<and>
-       (\<forall>(n,G,m)\<in>dest_graph T. 
-          n \<noteq> m \<or> G * G \<noteq> G \<or> 
-         (\<exists>(p::nat,e,q)\<in>dest_graph G. p = q \<and> e = LESS)))"
-
-lemma no_bad_graphs_ucl:
-  assumes "A \<le> B"
-  assumes "no_bad_graphs B"
-  shows "no_bad_graphs A"
-  using assms
-  unfolding no_bad_graphs_def has_edge_def graph_leq_def 
-  by blast
-
-lemma SCT'_witness:
-  assumes a: "test_SCT_witness A T"
-  shows "SCT' A"
-proof -
-  from a have "A \<le> T" "A * T \<le> T" by (auto simp:test_SCT_witness_def)
-  hence "A + A * T \<le> T" 
-    by (subst add_idem[of T, symmetric], rule add_mono)
-  with star3' have "tcl A \<le> T" unfolding tcl_def .
-  moreover
-  from a have "no_bad_graphs T"
-    unfolding no_bad_graphs_def test_SCT_witness_def has_edge_def
-    by auto
-  ultimately
-  show ?thesis
-    unfolding SCT'_def
-    by (rule no_bad_graphs_ucl)
-qed
-
-(* ML {* @{code test_SCT} *} *)
-
-end
--- a/src/HOL/SizeChange/Interpretation.thy	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,415 +0,0 @@
-(*  Title:      HOL/Library/SCT_Interpretation.thy
-    ID:         $Id$
-    Author:     Alexander Krauss, TU Muenchen
-*)
-
-header {* Applying SCT to function definitions *}
-
-theory Interpretation
-imports Main Misc_Tools Criterion
-begin
-
-definition
-  "idseq R s x = (s 0 = x \<and> (\<forall>i. R (s (Suc i)) (s i)))"
-
-lemma not_acc_smaller:
-  assumes notacc: "\<not> accp R x"
-  shows "\<exists>y. R y x \<and> \<not> accp R y"
-proof (rule classical)
-  assume "\<not> ?thesis"
-  hence "\<And>y. R y x \<Longrightarrow> accp R y" by blast
-  with accp.accI have "accp R x" .
-  with notacc show ?thesis by contradiction
-qed
-
-lemma non_acc_has_idseq:
-  assumes "\<not> accp R x"
-  shows "\<exists>s. idseq R s x"
-proof -
-  
-  have "\<exists>f. \<forall>x. \<not>accp R x \<longrightarrow> R (f x) x \<and> \<not>accp R (f x)"
-    by (rule choice, auto simp:not_acc_smaller)
-  
-  then obtain f where
-    in_R: "\<And>x. \<not>accp R x \<Longrightarrow> R (f x) x"
-    and nia: "\<And>x. \<not>accp R x \<Longrightarrow> \<not>accp R (f x)"
-    by blast
-  
-  let ?s = "\<lambda>i. (f ^^ i) x"
-  
-  {
-    fix i
-    have "\<not>accp R (?s i)"
-      by (induct i) (auto simp:nia `\<not>accp R x`)
-    hence "R (f (?s i)) (?s i)"
-      by (rule in_R)
-  }
-  
-  hence "idseq R ?s x"
-    unfolding idseq_def
-    by auto
-  
-  thus ?thesis by auto
-qed
-
-
-
-
-
-types ('a, 'q) cdesc =
-  "('q \<Rightarrow> bool) \<times> ('q \<Rightarrow> 'a) \<times>('q \<Rightarrow> 'a)"
-
-
-fun in_cdesc :: "('a, 'q) cdesc \<Rightarrow> 'a \<Rightarrow> 'a \<Rightarrow> bool"
-where
-  "in_cdesc (\<Gamma>, r, l) x y = (\<exists>q. x = r q \<and> y = l q \<and> \<Gamma> q)"
-
-primrec mk_rel :: "('a, 'q) cdesc list \<Rightarrow> 'a \<Rightarrow> 'a \<Rightarrow> bool"
-where
-  "mk_rel [] x y = False"
-| "mk_rel (c#cs) x y =
-  (in_cdesc c x y \<or> mk_rel cs x y)"
-
-
-lemma some_rd:
-  assumes "mk_rel rds x y"
-  shows "\<exists>rd\<in>set rds. in_cdesc rd x y"
-  using assms
-  by (induct rds) (auto simp:in_cdesc_def)
-
-(* from a value sequence, get a sequence of rds *)
-
-lemma ex_cs:
-  assumes idseq: "idseq (mk_rel rds) s x"
-  shows "\<exists>cs. \<forall>i. cs i \<in> set rds \<and> in_cdesc (cs i) (s (Suc i)) (s i)"
-proof -
-  from idseq
-  have a: "\<forall>i. \<exists>rd \<in> set rds. in_cdesc rd (s (Suc i)) (s i)"
-    by (auto simp:idseq_def intro:some_rd)
-  
-  show ?thesis
-    by (rule choice) (insert a, blast)
-qed
-
-
-types 'a measures = "nat \<Rightarrow> 'a \<Rightarrow> nat"
-
-fun stepP :: "('a, 'q) cdesc \<Rightarrow> ('a, 'q) cdesc \<Rightarrow> 
-  ('a \<Rightarrow> nat) \<Rightarrow> ('a \<Rightarrow> nat) \<Rightarrow> (nat \<Rightarrow> nat \<Rightarrow> bool) \<Rightarrow> bool"
-where
-  "stepP (\<Gamma>1,r1,l1) (\<Gamma>2,r2,l2) m1 m2 R
-  = (\<forall>q\<^isub>1 q\<^isub>2. \<Gamma>1 q\<^isub>1 \<and> \<Gamma>2 q\<^isub>2 \<and> r1 q\<^isub>1 = l2 q\<^isub>2 
-  \<longrightarrow> R (m2 (l2 q\<^isub>2)) ((m1 (l1 q\<^isub>1))))"
-
-
-definition
-  decr :: "('a, 'q) cdesc \<Rightarrow> ('a, 'q) cdesc \<Rightarrow> 
-  ('a \<Rightarrow> nat) \<Rightarrow> ('a \<Rightarrow> nat) \<Rightarrow> bool"
-where
-  "decr c1 c2 m1 m2 = stepP c1 c2 m1 m2 (op <)"
-
-definition
-  decreq :: "('a, 'q) cdesc \<Rightarrow> ('a, 'q) cdesc \<Rightarrow> 
-  ('a \<Rightarrow> nat) \<Rightarrow> ('a \<Rightarrow> nat) \<Rightarrow> bool"
-where
-  "decreq c1 c2 m1 m2 = stepP c1 c2 m1 m2 (op \<le>)"
-
-definition
-  no_step :: "('a, 'q) cdesc \<Rightarrow> ('a, 'q) cdesc \<Rightarrow> bool"
-where
-  "no_step c1 c2 = stepP c1 c2 (\<lambda>x. 0) (\<lambda>x. 0) (\<lambda>x y. False)"
-
-
-
-lemma decr_in_cdesc:
-  assumes "in_cdesc RD1 y x"
-  assumes "in_cdesc RD2 z y"
-  assumes "decr RD1 RD2 m1 m2"
-  shows "m2 y < m1 x"
-  using assms
-  by (cases RD1, cases RD2, auto simp:decr_def)
-
-lemma decreq_in_cdesc:
-  assumes "in_cdesc RD1 y x"
-  assumes "in_cdesc RD2 z y"
-  assumes "decreq RD1 RD2 m1 m2"
-  shows "m2 y \<le> m1 x"
-  using assms
-  by (cases RD1, cases RD2, auto simp:decreq_def)
-
-
-lemma no_inf_desc_nat_sequence:
-  fixes s :: "nat \<Rightarrow> nat"
-  assumes leq: "\<And>i. n \<le> i \<Longrightarrow> s (Suc i) \<le> s i"
-  assumes less: "\<exists>\<^sub>\<infinity>i. s (Suc i) < s i"
-  shows False
-proof -
-  {
-    fix i j:: nat 
-    assume "n \<le> i"
-    assume "i \<le> j"
-    {
-      fix k 
-      have "s (i + k) \<le> s i"
-      proof (induct k)
-        case 0 thus ?case by simp
-      next
-        case (Suc k)
-        with leq[of "i + k"] `n \<le> i`
-        show ?case by simp
-      qed
-    }
-    from this[of "j - i"] `n \<le> i` `i \<le> j`
-    have "s j \<le> s i" by auto
-  }
-  note decr = this
-  
-  let ?min = "LEAST x. x \<in> range (\<lambda>i. s (n + i))"
-  have "?min \<in> range (\<lambda>i. s (n + i))"
-    by (rule LeastI) auto
-  then obtain k where min: "?min = s (n + k)" by auto
-  
-  from less 
-  obtain k' where "n + k < k'"
-    and "s (Suc k') < s k'"
-    unfolding INFM_nat by auto
-  
-  with decr[of "n + k" k'] min
-  have "s (Suc k') < ?min" by auto
-  moreover from `n + k < k'`
-  have "s (Suc k') = s (n + (Suc k' - n))" by simp
-  ultimately
-  show False using not_less_Least by blast
-qed
-
-
-
-definition
-  approx :: "nat scg \<Rightarrow> ('a, 'q) cdesc \<Rightarrow> ('a, 'q) cdesc 
-  \<Rightarrow> 'a measures \<Rightarrow> 'a measures \<Rightarrow> bool"
-  where
-  "approx G C C' M M'
-  = (\<forall>i j. (dsc G i j \<longrightarrow> decr C C' (M i) (M' j))
-  \<and>(eqp G i j \<longrightarrow> decreq C C' (M i) (M' j)))"
-
-
-
-
-(* Unfolding "approx" for finite graphs *)
-
-lemma approx_empty: 
-  "approx (Graph {}) c1 c2 ms1 ms2"
-  unfolding approx_def has_edge_def dest_graph.simps by simp
-
-lemma approx_less:
-  assumes "stepP c1 c2 (ms1 i) (ms2 j) (op <)"
-  assumes "approx (Graph Es) c1 c2 ms1 ms2"
-  shows "approx (Graph (insert (i, \<down>, j) Es)) c1 c2 ms1 ms2"
-  using assms
-  unfolding approx_def has_edge_def dest_graph.simps decr_def
-  by auto
-
-lemma approx_leq:
-  assumes "stepP c1 c2 (ms1 i) (ms2 j) (op \<le>)"
-  assumes "approx (Graph Es) c1 c2 ms1 ms2"
-  shows "approx (Graph (insert (i, \<Down>, j) Es)) c1 c2 ms1 ms2"
-  using assms
-  unfolding approx_def has_edge_def dest_graph.simps decreq_def
-  by auto
-
-
-lemma "approx (Graph {(1, \<down>, 2),(2, \<Down>, 3)}) c1 c2 ms1 ms2"
-  apply (intro approx_less approx_leq approx_empty) 
-  oops
-
-
-(*
-fun
-  no_step :: "('a, 'q) cdesc \<Rightarrow> ('a, 'q) cdesc \<Rightarrow> bool"
-where
-  "no_step (\<Gamma>1, r1, l1) (\<Gamma>2, r2, l2) =
-  (\<forall>q\<^isub>1 q\<^isub>2. \<Gamma>1 q\<^isub>1 \<and> \<Gamma>2 q\<^isub>2 \<and> r1 q\<^isub>1 = l2 q\<^isub>2 \<longrightarrow> False)"
-*)
-
-lemma no_stepI:
-  "stepP c1 c2 m1 m2 (\<lambda>x y. False)
-  \<Longrightarrow> no_step c1 c2"
-by (cases c1, cases c2) (auto simp: no_step_def)
-
-definition
-  sound_int :: "nat acg \<Rightarrow> ('a, 'q) cdesc list 
-  \<Rightarrow> 'a measures list \<Rightarrow> bool"
-where
-  "sound_int \<A> RDs M =
-  (\<forall>n<length RDs. \<forall>m<length RDs.
-  no_step (RDs ! n) (RDs ! m) \<or>
-  (\<exists>G. (\<A> \<turnstile> n \<leadsto>\<^bsup>G\<^esup> m) \<and> approx G (RDs ! n) (RDs ! m) (M ! n) (M ! m)))"
-
-
-(* The following are uses by the tactics *)
-lemma length_simps: "length [] = 0" "length (x#xs) = Suc (length xs)"
-  by auto
-
-lemma all_less_zero: "\<forall>n<(0::nat). P n"
-  by simp
-
-lemma all_less_Suc:
-  assumes Pk: "P k"
-  assumes Pn: "\<forall>n<k. P n"
-  shows "\<forall>n<Suc k. P n"
-proof (intro allI impI)
-  fix n assume "n < Suc k"
-  show "P n"
-  proof (cases "n < k")
-    case True with Pn show ?thesis by simp
-  next
-    case False with `n < Suc k` have "n = k" by simp
-    with Pk show ?thesis by simp
-  qed
-qed
-
-
-lemma step_witness:
-  assumes "in_cdesc RD1 y x"
-  assumes "in_cdesc RD2 z y"
-  shows "\<not> no_step RD1 RD2"
-  using assms
-  by (cases RD1, cases RD2) (auto simp:no_step_def)
-
-
-theorem SCT_on_relations:
-  assumes R: "R = mk_rel RDs"
-  assumes sound: "sound_int \<A> RDs M"
-  assumes "SCT \<A>"
-  shows "\<forall>x. accp R x"
-proof (rule, rule classical)
-  fix x
-  assume "\<not> accp R x"
-  with non_acc_has_idseq
-  have "\<exists>s. idseq R s x" .
-  then obtain s where "idseq R s x" ..
-  hence "\<exists>cs. \<forall>i. cs i \<in> set RDs \<and>
-    in_cdesc (cs i) (s (Suc i)) (s i)"
-    unfolding R by (rule ex_cs) 
-  then obtain cs where
-    [simp]: "\<And>i. cs i \<in> set RDs"
-      and ird[simp]: "\<And>i. in_cdesc (cs i) (s (Suc i)) (s i)"
-    by blast
-  
-  let ?cis = "\<lambda>i. index_of RDs (cs i)"
-  have "\<forall>i. \<exists>G. (\<A> \<turnstile> ?cis i \<leadsto>\<^bsup>G\<^esup> (?cis (Suc i)))
-    \<and> approx G (RDs ! ?cis i) (RDs ! ?cis (Suc i)) 
-    (M ! ?cis i) (M ! ?cis (Suc i))" (is "\<forall>i. \<exists>G. ?P i G")
-  proof
-    fix i
-    let ?n = "?cis i" and ?n' = "?cis (Suc i)"
-    
-    have "in_cdesc (RDs ! ?n) (s (Suc i)) (s i)"
-      "in_cdesc (RDs ! ?n') (s (Suc (Suc i))) (s (Suc i))"
-      by (simp_all add:index_of_member)
-    with step_witness
-    have "\<not> no_step (RDs ! ?n) (RDs ! ?n')" .
-    moreover have
-      "?n < length RDs" 
-      "?n' < length RDs"
-      by (simp_all add:index_of_length[symmetric])
-    ultimately
-    obtain G
-      where "\<A> \<turnstile> ?n \<leadsto>\<^bsup>G\<^esup> ?n'"
-      and "approx G (RDs ! ?n) (RDs ! ?n') (M ! ?n) (M ! ?n')"
-      using sound
-      unfolding sound_int_def by auto
-    
-    thus "\<exists>G. ?P i G" by blast
-  qed
-  with choice
-  have "\<exists>Gs. \<forall>i. ?P i (Gs i)" .
-  then obtain Gs where 
-    A: "\<And>i. \<A> \<turnstile> ?cis i \<leadsto>\<^bsup>(Gs i)\<^esup> (?cis (Suc i))" 
-    and B: "\<And>i. approx (Gs i) (RDs ! ?cis i) (RDs ! ?cis (Suc i)) 
-    (M ! ?cis i) (M ! ?cis (Suc i))"
-    by blast
-  
-  let ?p = "\<lambda>i. (?cis i, Gs i)"
-  
-  from A have "has_ipath \<A> ?p"
-    unfolding has_ipath_def
-    by auto
-  
-  with `SCT \<A>` SCT_def 
-  obtain th where "is_desc_thread th ?p"
-    by auto
-  
-  then obtain n
-    where fr: "\<forall>i\<ge>n. eqlat ?p th i"
-    and inf: "\<exists>\<^sub>\<infinity>i. descat ?p th i"
-    unfolding is_desc_thread_def by auto
-  
-  from B
-  have approx:
-    "\<And>i. approx (Gs i) (cs i) (cs (Suc i)) 
-    (M ! ?cis i) (M ! ?cis (Suc i))"
-    by (simp add:index_of_member)
-  
-  let ?seq = "\<lambda>i. (M ! ?cis i) (th i) (s i)"
-  
-  have "\<And>i. n < i \<Longrightarrow> ?seq (Suc i) \<le> ?seq i"
-  proof -
-    fix i 
-    let ?q1 = "th i" and ?q2 = "th (Suc i)"
-    assume "n < i"
-    
-    with fr have "eqlat ?p th i" by simp 
-    hence "dsc (Gs i) ?q1 ?q2 \<or> eqp (Gs i) ?q1 ?q2" 
-      by simp
-    thus "?seq (Suc i) \<le> ?seq i"
-    proof
-      assume "dsc (Gs i) ?q1 ?q2"
-      
-      with approx
-      have a:"decr (cs i) (cs (Suc i)) 
-        ((M ! ?cis i) ?q1) ((M ! ?cis (Suc i)) ?q2)" 
-        unfolding approx_def by auto
-      
-      show ?thesis
-        apply (rule less_imp_le)
-        apply (rule decr_in_cdesc[of _ "s (Suc i)" "s i"])
-        by (rule ird a)+
-    next
-      assume "eqp (Gs i) ?q1 ?q2"
-      
-      with approx
-      have a:"decreq (cs i) (cs (Suc i)) 
-        ((M ! ?cis i) ?q1) ((M ! ?cis (Suc i)) ?q2)" 
-        unfolding approx_def by auto
-      
-      show ?thesis
-        apply (rule decreq_in_cdesc[of _ "s (Suc i)" "s i"])
-        by (rule ird a)+
-    qed
-  qed
-  moreover have "\<exists>\<^sub>\<infinity>i. ?seq (Suc i) < ?seq i" unfolding INFM_nat
-  proof 
-    fix i 
-    from inf obtain j where "i < j" and d: "descat ?p th j"
-      unfolding INFM_nat by auto
-    let ?q1 = "th j" and ?q2 = "th (Suc j)"
-    from d have "dsc (Gs j) ?q1 ?q2" by auto
-    
-    with approx
-    have a:"decr (cs j) (cs (Suc j)) 
-      ((M ! ?cis j) ?q1) ((M ! ?cis (Suc j)) ?q2)" 
-      unfolding approx_def by auto
-    
-    have "?seq (Suc j) < ?seq j"
-      apply (rule decr_in_cdesc[of _ "s (Suc j)" "s j"])
-      by (rule ird a)+
-    with `i < j` 
-    show "\<exists>j. i < j \<and> ?seq (Suc j) < ?seq j" by auto
-  qed
-  ultimately have False
-    by (rule no_inf_desc_nat_sequence[of "Suc n"]) simp
-  thus "accp R x" ..
-qed
-
-end
--- a/src/HOL/SizeChange/Misc_Tools.thy	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,173 +0,0 @@
-(*  Title:      HOL/Library/SCT_Misc.thy
-    ID:         $Id$
-    Author:     Alexander Krauss, TU Muenchen
-*)
-
-header {* Miscellaneous Tools for Size-Change Termination *}
-
-theory Misc_Tools
-imports Main
-begin
-
-subsection {* Searching in lists *}
-
-fun index_of :: "'a list \<Rightarrow> 'a \<Rightarrow> nat"
-where
-  "index_of [] c = 0"
-| "index_of (x#xs) c = (if x = c then 0 else Suc (index_of xs c))"
-
-lemma index_of_member: 
-  "(x \<in> set l) \<Longrightarrow> (l ! index_of l x = x)"
-  by (induct l) auto
-
-lemma index_of_length:
-  "(x \<in> set l) = (index_of l x < length l)"
-  by (induct l) auto
-
-subsection {* Some reasoning tools *}
-
-lemma three_cases:
-  assumes "a1 \<Longrightarrow> thesis"
-  assumes "a2 \<Longrightarrow> thesis"
-  assumes "a3 \<Longrightarrow> thesis"
-  assumes "\<And>R. \<lbrakk>a1 \<Longrightarrow> R; a2 \<Longrightarrow> R; a3 \<Longrightarrow> R\<rbrakk> \<Longrightarrow> R"
-  shows "thesis"
-  using assms
-  by auto
-
-
-subsection {* Sequences *}
-
-types
-  'a sequence = "nat \<Rightarrow> 'a"
-
-
-subsubsection {* Increasing sequences *}
-
-definition
-  increasing :: "(nat \<Rightarrow> nat) \<Rightarrow> bool" where
-  "increasing s = (\<forall>i j. i < j \<longrightarrow> s i < s j)"
-
-lemma increasing_strict:
-  assumes "increasing s"
-  assumes "i < j"
-  shows "s i < s j"
-  using assms
-  unfolding increasing_def by simp
-
-lemma increasing_weak:
-  assumes "increasing s"
-  assumes "i \<le> j"
-  shows "s i \<le> s j"
-  using assms increasing_strict[of s i j]
-  by (cases "i < j") auto
-
-lemma increasing_inc:
-  assumes "increasing s"
-  shows "n \<le> s n"
-proof (induct n)
-  case 0 then show ?case by simp
-next
-  case (Suc n)
-  with increasing_strict [OF `increasing s`, of n "Suc n"]
-  show ?case by auto
-qed
-
-lemma increasing_bij:
-  assumes [simp]: "increasing s"
-  shows "(s i < s j) = (i < j)"
-proof
-  assume "s i < s j"
-  show "i < j"
-  proof (rule classical)
-    assume "\<not> ?thesis"
-    hence "j \<le> i" by arith
-    with increasing_weak have "s j \<le> s i" by simp
-    with `s i < s j` show ?thesis by simp
-  qed
-qed (simp add:increasing_strict)
-
-
-subsubsection {* Sections induced by an increasing sequence *}
-
-abbreviation
-  "section s i == {s i ..< s (Suc i)}"
-
-definition
-  "section_of s n = (LEAST i. n < s (Suc i))"
-
-lemma section_help:
-  assumes "increasing s"
-  shows "\<exists>i. n < s (Suc i)" 
-proof -
-  have "n \<le> s n"
-    using `increasing s` by (rule increasing_inc)
-  also have "\<dots> < s (Suc n)"
-    using `increasing s` increasing_strict by simp
-  finally show ?thesis ..
-qed
-
-lemma section_of2:
-  assumes "increasing s"
-  shows "n < s (Suc (section_of s n))"
-  unfolding section_of_def
-  by (rule LeastI_ex) (rule section_help [OF `increasing s`])
-
-lemma section_of1:
-  assumes [simp, intro]: "increasing s"
-  assumes "s i \<le> n"
-  shows "s (section_of s n) \<le> n"
-proof (rule classical)
-  let ?m = "section_of s n"
-
-  assume "\<not> ?thesis"
-  hence a: "n < s ?m" by simp
-  
-  have nonzero: "?m \<noteq> 0"
-  proof
-    assume "?m = 0"
-    from increasing_weak have "s 0 \<le> s i" by simp
-    also note `\<dots> \<le> n`
-    finally show False using `?m = 0` `n < s ?m` by simp 
-  qed
-  with a have "n < s (Suc (?m - 1))" by simp
-  with Least_le have "?m \<le> ?m - 1"
-    unfolding section_of_def .
-  with nonzero show ?thesis by simp
-qed
-
-lemma section_of_known: 
-  assumes [simp]: "increasing s"
-  assumes in_sect: "k \<in> section s i"
-  shows "section_of s k = i" (is "?s = i")
-proof (rule classical)
-  assume "\<not> ?thesis"
-
-  hence "?s < i \<or> ?s > i" by arith
-  thus ?thesis
-  proof
-    assume "?s < i"
-    hence "Suc ?s \<le> i" by simp
-    with increasing_weak have "s (Suc ?s) \<le> s i" by simp
-    moreover have "k < s (Suc ?s)" using section_of2 by simp
-    moreover from in_sect have "s i \<le> k" by simp
-    ultimately show ?thesis by simp 
-  next
-    assume "i < ?s" hence "Suc i \<le> ?s" by simp
-    with increasing_weak have "s (Suc i) \<le> s ?s" by simp
-    moreover 
-    from in_sect have "s i \<le> k" by simp
-    with section_of1 have "s ?s \<le> k" by simp
-    moreover from in_sect have "k < s (Suc i)" by simp
-    ultimately show ?thesis by simp
-  qed
-qed 
-  
-lemma in_section_of: 
-  assumes "increasing s"
-  assumes "s i \<le> k"
-  shows "k \<in> section s (section_of s k)"
-  using assms
-  by (auto intro:section_of1 section_of2)
-
-end
--- a/src/HOL/SizeChange/ROOT.ML	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-(*  Title:      HOL/SizeChange/ROOT.ML
-    ID:         $Id$
-*)
-
-no_document use_thy "Infinite_Set";
-no_document use_thy "Ramsey";
-use_thy "Examples";
--- a/src/HOL/SizeChange/Size_Change_Termination.thy	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-(*  Title:      HOL/Library/Size_Change_Termination.thy
-    Author:     Alexander Krauss, TU Muenchen
-*)
-
-header "Size-Change Termination"
-
-theory Size_Change_Termination
-imports Correctness Interpretation Implementation 
-uses "sct.ML"
-begin
-
-subsection {* Simplifier setup *}
-
-text {* This is needed to run the SCT algorithm in the simplifier: *}
-
-lemma setbcomp_simps:
-  "{x\<in>{}. P x} = {}"
-  "{x\<in>insert y ys. P x} = (if P y then insert y {x\<in>ys. P x} else {x\<in>ys. P x})"
-  by auto
-
-lemma setbcomp_cong:
-  "A = B \<Longrightarrow> (\<And>x. P x = Q x) \<Longrightarrow> {x\<in>A. P x} = {x\<in>B. Q x}"
-  by auto
-
-lemma cartprod_simps:
-  "{} \<times> A = {}"
-  "insert a A \<times> B = Pair a ` B \<union> (A \<times> B)"
-  by (auto simp:image_def)
-
-lemma image_simps:
-  "fu ` {} = {}"
-  "fu ` insert a A = insert (fu a) (fu ` A)"
-  by (auto simp:image_def)
-
-lemmas union_simps = 
-  Un_empty_left Un_empty_right Un_insert_left
-  
-lemma subset_simps:
-  "{} \<subseteq> B"
-  "insert a A \<subseteq> B \<equiv> a \<in> B \<and> A \<subseteq> B"
-  by auto 
-
-lemma element_simps:
-  "x \<in> {} \<equiv> False"
-  "x \<in> insert a A \<equiv> x = a \<or> x \<in> A"
-  by auto
-
-lemma set_eq_simp:
-  "A = B \<longleftrightarrow> A \<subseteq> B \<and> B \<subseteq> A" by auto
-
-lemma ball_simps:
-  "\<forall>x\<in>{}. P x \<equiv> True"
-  "(\<forall>x\<in>insert a A. P x) \<equiv> P a \<and> (\<forall>x\<in>A. P x)"
-by auto
-
-lemma bex_simps:
-  "\<exists>x\<in>{}. P x \<equiv> False"
-  "(\<exists>x\<in>insert a A. P x) \<equiv> P a \<or> (\<exists>x\<in>A. P x)"
-by auto
-
-lemmas set_simps =
-  setbcomp_simps
-  cartprod_simps image_simps union_simps subset_simps
-  element_simps set_eq_simp
-  ball_simps bex_simps
-
-lemma sedge_simps:
-  "\<down> * x = \<down>"
-  "\<Down> * x = x"
-  by (auto simp:mult_sedge_def)
-
-lemmas sctTest_simps =
-  simp_thms
-  if_True
-  if_False
-  nat.inject
-  nat.distinct
-  Pair_eq 
-
-  grcomp_code 
-  edges_match.simps 
-  connect_edges.simps 
-
-  sedge_simps
-  sedge.distinct
-  set_simps
-
-  graph_mult_def 
-  graph_leq_def
-  dest_graph.simps
-  graph_plus_def
-  graph.inject
-  graph_zero_def
-
-  test_SCT_def
-  mk_tcl_code
-
-  Let_def
-  split_conv
-
-lemmas sctTest_congs = 
-  if_weak_cong let_weak_cong setbcomp_cong
-
-
-lemma SCT_Main:
-  "finite_acg A \<Longrightarrow> test_SCT A \<Longrightarrow> SCT A"
-  using LJA_Theorem4 SCT'_exec
-  by auto
-
-end
--- a/src/HOL/SizeChange/document/root.tex	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-
-% $Id$
-
-\documentclass[11pt,a4paper]{article}
-\usepackage{latexsym}
-\usepackage{isabelle,isabellesym}
-
-% this should be the last package used
-\usepackage{pdfsetup}
-
-% urls in roman style, theory text in math-similar italics
-\urlstyle{rm}
-\isabellestyle{it}
-
-
-\begin{document}
-
-\title{Size-Change Termination}
-\author{Alexander Krauss}
-\maketitle
-
-%\tableofcontents
-
-\parindent 0pt\parskip 0.5ex
-
-\input{session}
-
-\end{document}
--- a/src/HOL/SizeChange/sct.ML	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,351 +0,0 @@
-(*  Title:      HOL/SizeChange/sct.ML
-    Author:     Alexander Krauss, TU Muenchen
-
-Tactics for size change termination.
-*)
-signature SCT =
-sig
-  val abs_rel_tac : tactic
-  val mk_call_graph : Proof.context -> tactic
-end
-
-structure Sct : SCT =
-struct
-
-fun matrix [] ys = []
-  | matrix (x::xs) ys = map (pair x) ys :: matrix xs ys
-
-fun map_matrix f xss = map (map f) xss
-
-val scgT = @{typ "nat scg"}
-val acgT = @{typ "nat acg"}
-
-fun edgeT nT eT = HOLogic.mk_prodT (nT, HOLogic.mk_prodT (eT, nT))
-fun graphT nT eT = Type ("Graphs.graph", [nT, eT])
-
-fun graph_const nT eT = Const ("Graphs.graph.Graph", HOLogic.mk_setT (edgeT nT eT) --> graphT nT eT)
-
-val stepP_const = "Interpretation.stepP"
-val stepP_def = thm "Interpretation.stepP.simps"
-
-fun mk_stepP RD1 RD2 M1 M2 Rel =
-    let val RDT = fastype_of RD1
-      val MT = fastype_of M1
-    in
-      Const (stepP_const, RDT --> RDT --> MT --> MT --> (fastype_of Rel) --> HOLogic.boolT)
-            $ RD1 $ RD2 $ M1 $ M2 $ Rel
-    end
-
-val no_stepI = thm "Interpretation.no_stepI"
-
-val approx_const = "Interpretation.approx"
-val approx_empty = thm "Interpretation.approx_empty"
-val approx_less = thm "Interpretation.approx_less"
-val approx_leq = thm "Interpretation.approx_leq"
-
-fun mk_approx G RD1 RD2 Ms1 Ms2 =
-    let val RDT = fastype_of RD1
-      val MsT = fastype_of Ms1
-    in Const (approx_const, scgT --> RDT --> RDT --> MsT --> MsT --> HOLogic.boolT) $ G $ RD1 $ RD2 $ Ms1 $ Ms2 end
-
-val sound_int_const = "Interpretation.sound_int"
-val sound_int_def = thm "Interpretation.sound_int_def"
-fun mk_sound_int A RDs M =
-    let val RDsT = fastype_of RDs
-      val MT = fastype_of M
-    in Const (sound_int_const, acgT --> RDsT --> MT --> HOLogic.boolT) $ A $ RDs $ M end
-
-
-val nth_const = "List.nth"
-fun mk_nth xs =
-    let val lT as Type (_, [T]) = fastype_of xs
-    in Const (nth_const, lT --> HOLogic.natT --> T) $ xs end
-
-
-val has_edge_simps = [thm "Graphs.has_edge_def", thm "Graphs.dest_graph.simps"]
-
-val all_less_zero = thm "Interpretation.all_less_zero"
-val all_less_Suc = thm "Interpretation.all_less_Suc"
-
-(* --> Library? *)
-fun del_index n [] = []
-  | del_index n (x :: xs) =
-    if n>0 then x :: del_index (n - 1) xs else xs
-
-(* Lists as finite multisets *)
-
-fun remove1 eq x [] = []
-  | remove1 eq x (y :: ys) = if eq (x, y) then ys else y :: remove1 eq x ys
-
-fun multi_union eq [] ys = ys
-  | multi_union eq (x::xs) ys = x :: multi_union eq xs (remove1 eq x ys)
-
-fun dest_ex (Const ("Ex", _) $ Abs (a as (_,T,_))) =
-    let
-      val (n, body) = Term.dest_abs a
-    in
-      (Free (n, T), body)
-    end
-  | dest_ex _ = raise Match
-
-fun dest_all_ex (t as (Const ("Ex",_) $ _)) =
-    let
-      val (v,b) = dest_ex t
-      val (vs, b') = dest_all_ex b
-    in
-      (v :: vs, b')
-    end
-  | dest_all_ex t = ([],t)
-
-fun dist_vars [] vs = (null vs orelse error "dist_vars"; [])
-  | dist_vars (T::Ts) vs =
-    case find_index (fn v => fastype_of v = T) vs of
-      ~1 => Free ("", T) :: dist_vars Ts vs
-    |  i => (nth vs i) :: dist_vars Ts (del_index i vs)
-
-fun dest_case rebind t =
-    let
-      val ((_ $ _ $ rhs) :: (_ $ _ $ match) :: guards) = HOLogic.dest_conj t
-      val guard = case guards of [] => HOLogic.true_const | gs => foldr1 HOLogic.mk_conj gs
-    in
-      foldr1 HOLogic.mk_prod [rebind guard, rebind rhs, rebind match]
-    end
-
-fun bind_many [] = I
-  | bind_many vs = Function_Lib.tupled_lambda (foldr1 HOLogic.mk_prod vs)
-
-(* Builds relation descriptions from a relation definition *)
-fun mk_reldescs (Abs a) =
-    let
-      val (_, Abs a') = Term.dest_abs a
-      val (_, b) = Term.dest_abs a'
-      val cases = HOLogic.dest_disj b
-      val (vss, bs) = split_list (map dest_all_ex cases)
-      val unionTs = fold (multi_union (op =)) (map (map fastype_of) vss) []
-      val rebind = map (bind_many o dist_vars unionTs) vss
-
-      val RDs = map2 dest_case rebind bs
-    in
-      HOLogic.mk_list (fastype_of (hd RDs)) RDs
-    end
-
-fun abs_rel_tac (st : thm) =
-    let
-      val thy = theory_of_thm st
-      val (def, rd) = HOLogic.dest_eq (HOLogic.dest_Trueprop (hd (prems_of st)))
-      val RDs = cterm_of thy (mk_reldescs def)
-      val rdvar = Var (the_single (Term.add_vars rd [])) |> cterm_of thy
-    in
-      Seq.single (cterm_instantiate [(rdvar, RDs)] st)
-    end
-
-
-
-
-
-
-(* very primitive *)
-fun measures_of ctxt RD =
-    let
-      val domT = range_type (fastype_of (fst (HOLogic.dest_prod (snd (HOLogic.dest_prod RD)))))
-      val measures = MeasureFunctions.get_measure_functions ctxt domT
-    in
-      measures
-    end
-
-val mk_number = HOLogic.mk_nat
-val dest_number = HOLogic.dest_nat
-
-fun nums_to i = map_range mk_number i
-
-val nth_simps = [@{thm List.nth_Cons_0}, @{thm List.nth_Cons_Suc}]
-val nth_ss = (HOL_basic_ss addsimps nth_simps)
-val simp_nth_tac = simp_tac nth_ss
-
-
-fun tabulate_tlist thy l =
-    let
-      val n = length (HOLogic.dest_list l)
-      val table = Inttab.make (map_range (fn i => (i, Simplifier.rewrite nth_ss (cterm_of thy (mk_nth l $ mk_number i)))) n)
-    in
-      the o Inttab.lookup table
-    end
-
-val get_elem = snd o Logic.dest_equals o prop_of
-
-fun inst_nums thy i j (t:thm) =
-  instantiate' [] [NONE, NONE, NONE, SOME (cterm_of thy (mk_number i)), NONE, SOME (cterm_of thy (mk_number j))] t
-
-datatype call_fact =
-   NoStep of thm
- | Graph of (term * thm)
-
-fun rand (_ $ t) = t
-
-fun setup_probe_goal ctxt domT Dtab Mtab (i, j) =
-    let
-      val css = clasimpset_of ctxt
-      val thy = ProofContext.theory_of ctxt
-      val RD1 = get_elem (Dtab i)
-      val RD2 = get_elem (Dtab j)
-      val Ms1 = get_elem (Mtab i)
-      val Ms2 = get_elem (Mtab j)
-
-      val Mst1 = HOLogic.dest_list (rand Ms1)
-      val Mst2 = HOLogic.dest_list (rand Ms2)
-
-      val mvar1 = Free ("sctmfv1", domT --> HOLogic.natT)
-      val mvar2 = Free ("sctmfv2", domT --> HOLogic.natT)
-      val relvar = Free ("sctmfrel", HOLogic.natT --> HOLogic.natT --> HOLogic.boolT)
-      val N = length Mst1 and M = length Mst2
-      val saved_state = HOLogic.mk_Trueprop (mk_stepP RD1 RD2 mvar1 mvar2 relvar)
-                         |> cterm_of thy
-                         |> Goal.init
-                         |> auto_tac css |> Seq.hd
-
-      val no_step = saved_state
-                      |> forall_intr (cterm_of thy relvar)
-                      |> forall_elim (cterm_of thy (Abs ("", HOLogic.natT, Abs ("", HOLogic.natT, HOLogic.false_const))))
-                      |> auto_tac css |> Seq.hd
-
-    in
-      if Thm.no_prems no_step
-      then NoStep (Goal.finish ctxt no_step RS no_stepI)
-      else
-        let
-          fun set_m1 i =
-              let
-                val M1 = nth Mst1 i
-                val with_m1 = saved_state
-                                |> forall_intr (cterm_of thy mvar1)
-                                |> forall_elim (cterm_of thy M1)
-                                |> auto_tac css |> Seq.hd
-
-                fun set_m2 j =
-                    let
-                      val M2 = nth Mst2 j
-                      val with_m2 = with_m1
-                                      |> forall_intr (cterm_of thy mvar2)
-                                      |> forall_elim (cterm_of thy M2)
-                                      |> auto_tac css |> Seq.hd
-
-                      val decr = forall_intr (cterm_of thy relvar)
-                                   #> forall_elim (cterm_of thy @{const HOL.less(nat)})
-                                   #> auto_tac css #> Seq.hd
-
-                      val decreq = forall_intr (cterm_of thy relvar)
-                                     #> forall_elim (cterm_of thy @{const HOL.less_eq(nat)})
-                                     #> auto_tac css #> Seq.hd
-
-                      val thm1 = decr with_m2
-                    in
-                      if Thm.no_prems thm1
-                      then ((rtac (inst_nums thy i j approx_less) 1) THEN (simp_nth_tac 1) THEN (rtac (Goal.finish ctxt thm1) 1))
-                      else let val thm2 = decreq with_m2 in
-                             if Thm.no_prems thm2
-                             then ((rtac (inst_nums thy i j approx_leq) 1) THEN (simp_nth_tac 1) THEN (rtac (Goal.finish ctxt thm2) 1))
-                             else all_tac end
-                    end
-              in set_m2 end
-
-          val goal = HOLogic.mk_Trueprop (mk_approx (Var (("G", 0), scgT)) RD1 RD2 Ms1 Ms2)
-
-          val tac = (EVERY (map_range (fn n => EVERY (map_range (set_m1 n) M)) N))
-                      THEN (rtac approx_empty 1)
-
-          val approx_thm = goal
-                    |> cterm_of thy
-                    |> Goal.init
-                    |> tac |> Seq.hd
-                    |> Goal.finish ctxt
-
-          val _ $ (_ $ G $ _ $ _ $ _ $ _) = prop_of approx_thm
-        in
-          Graph (G, approx_thm)
-        end
-    end
-
-fun mk_edge m G n = HOLogic.mk_prod (m, HOLogic.mk_prod (G, n))
-
-fun in_graph_tac ctxt =
-    simp_tac (HOL_basic_ss addsimps has_edge_simps) 1
-    THEN (simp_tac (simpset_of ctxt) 1) (* FIXME reduce simpset *)
-
-fun approx_tac _ (NoStep thm) = rtac disjI1 1 THEN rtac thm 1
-  | approx_tac ctxt (Graph (G, thm)) =
-    rtac disjI2 1
-    THEN rtac exI 1
-    THEN rtac conjI 1
-    THEN rtac thm 2
-    THEN (in_graph_tac ctxt)
-
-fun all_less_tac [] = rtac all_less_zero 1
-  | all_less_tac (t :: ts) = rtac all_less_Suc 1
-                                  THEN simp_nth_tac 1
-                                  THEN t
-                                  THEN all_less_tac ts
-
-
-fun mk_length l = HOLogic.size_const (fastype_of l) $ l;
-val length_simps = thms "Interpretation.length_simps"
-
-
-
-fun mk_call_graph ctxt (st : thm) =
-    let
-      val thy = ProofContext.theory_of ctxt
-      val _ $ _ $ RDlist $ _ = HOLogic.dest_Trueprop (hd (prems_of st))
-
-      val RDs = HOLogic.dest_list RDlist
-      val n = length RDs
-
-      val Mss = map (measures_of ctxt) RDs
-
-      val domT = domain_type (fastype_of (hd (hd Mss)))
-
-      val mfuns = map (fn Ms => mk_nth (HOLogic.mk_list (fastype_of (hd Ms)) Ms)) Mss
-                      |> (fn l => HOLogic.mk_list (fastype_of (hd l)) l)
-
-      val Dtab = tabulate_tlist thy RDlist
-      val Mtab = tabulate_tlist thy mfuns
-
-      val len_simp = Simplifier.rewrite (HOL_basic_ss addsimps length_simps) (cterm_of thy (mk_length RDlist))
-
-      val mlens = map length Mss
-
-      val indices = (n - 1 downto 0)
-      val pairs = matrix indices indices
-      val parts = map_matrix (fn (n,m) =>
-                                 (timeap_msg (string_of_int n ^ "," ^ string_of_int m)
-                                             (setup_probe_goal ctxt domT Dtab Mtab) (n,m))) pairs
-
-
-      val s = fold_index (fn (i, cs) => fold_index (fn (j, Graph (G, _)) => prefix ("(" ^ string_of_int i ^ "," ^ string_of_int j ^ "): " ^
-                                                                            Syntax.string_of_term ctxt G ^ ",\n")
-                                                     | _ => I) cs) parts ""
-      val _ = warning s
-
-
-      val ACG = map_filter (fn (Graph (G, _),(m, n)) => SOME (mk_edge (mk_number m) G (mk_number n)) | _ => NONE) (flat parts ~~ flat pairs)
-                    |> HOLogic.mk_set (edgeT HOLogic.natT scgT)
-                    |> curry op $ (graph_const HOLogic.natT scgT)
-
-
-      val sound_int_goal = HOLogic.mk_Trueprop (mk_sound_int ACG RDlist mfuns)
-
-      val tac =
-          unfold_tac [sound_int_def, len_simp] (simpset_of ctxt)
-            THEN all_less_tac (map (all_less_tac o map (approx_tac ctxt)) parts)
-    in
-      tac (instantiate' [] [SOME (cterm_of thy ACG), SOME (cterm_of thy mfuns)] st)
-    end
-
-
-end
-
-
-
-
-
-
-
--- a/src/HOL/Statespace/state_space.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Statespace/state_space.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -355,7 +355,7 @@
 fun add_declaration name decl thy =
   thy
   |> TheoryTarget.init name
-  |> (fn lthy => LocalTheory.declaration (decl lthy) lthy)
+  |> (fn lthy => LocalTheory.declaration false (decl lthy) lthy)
   |> LocalTheory.exit_global;
 
 fun parent_components thy (Ts, pname, renaming) =
--- a/src/HOL/Tools/ATP_Manager/atp_minimal.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Tools/ATP_Manager/atp_minimal.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -1,11 +1,15 @@
 (*  Title:      HOL/Tools/ATP_Manager/atp_minimal.ML
     Author:     Philipp Meyer, TU Muenchen
 
-Minimalization of theorem list for metis by using an external automated theorem prover
+Minimization of theorem list for metis by using an external automated theorem prover
 *)
 
 signature ATP_MINIMAL =
 sig
+  val minimize: ATP_Wrapper.prover -> string -> int -> Proof.state ->
+    (string * thm list) list -> ((string * thm list) list * int) option * string
+  (* To be removed once TN has finished his measurements;
+     the int component of the result should then be removed: *)
   val minimalize: ATP_Wrapper.prover -> string -> int -> Proof.state ->
     (string * thm list) list -> ((string * thm list) list * int) option * string
 end
@@ -13,7 +17,16 @@
 structure ATP_Minimal: ATP_MINIMAL =
 struct
 
-(* minimalization algorithm *)
+(* Linear minimization *)
+
+fun lin_gen_minimize p s =
+let
+  fun min [] needed = needed
+    | min (x::xs) needed =
+        if p(xs @ needed) then min xs needed else min xs (x::needed)
+in (min s [], length s) end;
+
+(* Clever minimalization algorithm *)
 
 local
   fun isplit (l, r) [] = (l, r)
@@ -120,7 +133,7 @@
 
 (* minimalization of thms *)
 
-fun minimalize prover prover_name time_limit state name_thms_pairs =
+fun gen_minimalize gen_min prover prover_name time_limit state name_thms_pairs =
   let
     val _ =
       priority ("Minimize called with " ^ string_of_int (length name_thms_pairs) ^
@@ -141,11 +154,11 @@
             else name_thms_pairs
           val (min_thms, n) =
             if null to_use then ([], 0)
-            else minimal (test_thms (SOME filtered)) to_use
+            else gen_min (test_thms (SOME filtered)) to_use
           val min_names = sort_distinct string_ord (map fst min_thms)
           val _ = priority (cat_lines
-            ["Interations: " ^ string_of_int n,
-              "Minimal " ^ string_of_int (length min_thms) ^ " theorems"])
+            ["Iterations: " ^ string_of_int n (* FIXME TN remove later *),
+             "Minimal " ^ string_of_int (length min_thms) ^ " theorems"])
         in
           (SOME (min_thms, n), "Try this command: " ^
             Markup.markup Markup.sendback ("apply (metis " ^ space_implode " " min_names ^ ")"))
@@ -193,6 +206,10 @@
 
 fun get_options args = fold get_opt args (default_prover, default_time_limit)
 
+val minimize = gen_minimalize lin_gen_minimize
+
+val minimalize = gen_minimalize minimal
+
 fun sh_min_command args thm_names state =
   let
     val (prover_name, time_limit) = get_options args
@@ -202,10 +219,11 @@
       | NONE => error ("Unknown prover: " ^ quote prover_name))
     val name_thms_pairs = get_thms (Proof.context_of state) thm_names
   in
-    writeln (#2 (minimalize prover prover_name time_limit state name_thms_pairs))
+    writeln (#2 (minimize prover prover_name time_limit state name_thms_pairs))
   end
 
-val parse_args = Scan.optional (Args.bracks (P.list (P.xname --| P.$$$ "=" -- P.xname))) []
+val parse_args =
+  Scan.optional (Args.bracks (P.list (P.xname --| P.$$$ "=" -- P.xname))) []
 val parse_thm_names = Scan.repeat (P.xname -- Scan.option Attrib.thm_sel)
 
 val _ =
@@ -217,4 +235,3 @@
 end
 
 end
-
--- a/src/HOL/Tools/Datatype/datatype_abs_proofs.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Tools/Datatype/datatype_abs_proofs.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -338,8 +338,7 @@
           (DatatypeProp.make_cases new_type_names descr sorts thy2)
   in
     thy2
-    |> Context.the_theory o fold (fold Nitpick_Simps.add_thm) case_thms
-       o Context.Theory
+    |> Context.theory_map ((fold o fold) Nitpick_Simps.add_thm case_thms)
     |> Sign.parent_path
     |> store_thmss "cases" new_type_names case_thms
     |-> (fn thmss => pair (thmss, case_names))
--- a/src/HOL/Tools/Function/function.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Tools/Function/function.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -118,7 +118,7 @@
             else Specification.print_consts lthy (K false) (map fst fixes)
         in
           lthy
-          |> LocalTheory.declaration (add_function_data o morph_function_data cdata)
+          |> LocalTheory.declaration false (add_function_data o morph_function_data cdata)
         end
     in
       lthy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Tools/Function/induction_schema.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,405 @@
+(*  Title:      HOL/Tools/Function/induction_schema.ML
+    Author:     Alexander Krauss, TU Muenchen
+
+A method to prove induction schemas.
+*)
+
+signature INDUCTION_SCHEMA =
+sig
+  val mk_ind_tac : (int -> tactic) -> (int -> tactic) -> (int -> tactic)
+                   -> Proof.context -> thm list -> tactic
+  val induction_schema_tac : Proof.context -> thm list -> tactic
+  val setup : theory -> theory
+end
+
+
+structure Induction_Schema : INDUCTION_SCHEMA =
+struct
+
+open Function_Lib
+
+
+type rec_call_info = int * (string * typ) list * term list * term list
+
+datatype scheme_case =
+  SchemeCase of
+  {
+   bidx : int,
+   qs: (string * typ) list,
+   oqnames: string list,
+   gs: term list,
+   lhs: term list,
+   rs: rec_call_info list
+  }
+
+datatype scheme_branch = 
+  SchemeBranch of
+  {
+   P : term,
+   xs: (string * typ) list,
+   ws: (string * typ) list,
+   Cs: term list
+  }
+
+datatype ind_scheme =
+  IndScheme of
+  {
+   T: typ, (* sum of products *)
+   branches: scheme_branch list,
+   cases: scheme_case list
+  }
+
+val ind_atomize = MetaSimplifier.rewrite true @{thms induct_atomize}
+val ind_rulify = MetaSimplifier.rewrite true @{thms induct_rulify}
+
+fun meta thm = thm RS eq_reflection
+
+val sum_prod_conv = MetaSimplifier.rewrite true 
+                    (map meta (@{thm split_conv} :: @{thms sum.cases}))
+
+fun term_conv thy cv t = 
+    cv (cterm_of thy t)
+    |> prop_of |> Logic.dest_equals |> snd
+
+fun mk_relT T = HOLogic.mk_setT (HOLogic.mk_prodT (T, T))
+
+fun dest_hhf ctxt t = 
+    let 
+      val (ctxt', vars, imp) = dest_all_all_ctx ctxt t
+    in
+      (ctxt', vars, Logic.strip_imp_prems imp, Logic.strip_imp_concl imp)
+    end
+
+
+fun mk_scheme' ctxt cases concl =
+    let
+      fun mk_branch concl =
+          let
+            val (ctxt', ws, Cs, _ $ Pxs) = dest_hhf ctxt concl
+            val (P, xs) = strip_comb Pxs
+          in
+            SchemeBranch { P=P, xs=map dest_Free xs, ws=ws, Cs=Cs }
+          end
+
+      val (branches, cases') = (* correction *)
+          case Logic.dest_conjunction_list concl of
+            [conc] => 
+            let 
+              val _ $ Pxs = Logic.strip_assums_concl conc
+              val (P, _) = strip_comb Pxs
+              val (cases', conds) = take_prefix (Term.exists_subterm (curry op aconv P)) cases
+              val concl' = fold_rev (curry Logic.mk_implies) conds conc
+            in
+              ([mk_branch concl'], cases')
+            end
+          | concls => (map mk_branch concls, cases)
+
+      fun mk_case premise =
+          let
+            val (ctxt', qs, prems, _ $ Plhs) = dest_hhf ctxt premise
+            val (P, lhs) = strip_comb Plhs
+                                
+            fun bidx Q = find_index (fn SchemeBranch {P=P',...} => Q aconv P') branches
+
+            fun mk_rcinfo pr =
+                let
+                  val (ctxt'', Gvs, Gas, _ $ Phyp) = dest_hhf ctxt' pr
+                  val (P', rcs) = strip_comb Phyp
+                in
+                  (bidx P', Gvs, Gas, rcs)
+                end
+                
+            fun is_pred v = exists (fn SchemeBranch {P,...} => v aconv P) branches
+
+            val (gs, rcprs) = 
+                take_prefix (not o Term.exists_subterm is_pred) prems
+          in
+            SchemeCase {bidx=bidx P, qs=qs, oqnames=map fst qs(*FIXME*), gs=gs, lhs=lhs, rs=map mk_rcinfo rcprs}
+          end
+
+      fun PT_of (SchemeBranch { xs, ...}) =
+            foldr1 HOLogic.mk_prodT (map snd xs)
+
+      val ST = Balanced_Tree.make (uncurry SumTree.mk_sumT) (map PT_of branches)
+    in
+      IndScheme {T=ST, cases=map mk_case cases', branches=branches }
+    end
+
+
+
+fun mk_completeness ctxt (IndScheme {cases, branches, ...}) bidx =
+    let
+      val SchemeBranch { xs, ws, Cs, ... } = nth branches bidx
+      val relevant_cases = filter (fn SchemeCase {bidx=bidx', ...} => bidx' = bidx) cases
+
+      val allqnames = fold (fn SchemeCase {qs, ...} => fold (insert (op =) o Free) qs) relevant_cases []
+      val (Pbool :: xs') = map Free (Variable.variant_frees ctxt allqnames (("P", HOLogic.boolT) :: xs))
+      val Cs' = map (Pattern.rewrite_term (ProofContext.theory_of ctxt) (filter_out (op aconv) (map Free xs ~~ xs')) []) Cs
+                       
+      fun mk_case (SchemeCase {qs, oqnames, gs, lhs, ...}) =
+          HOLogic.mk_Trueprop Pbool
+                     |> fold_rev (fn x_l => curry Logic.mk_implies (HOLogic.mk_Trueprop(HOLogic.mk_eq x_l)))
+                                 (xs' ~~ lhs)
+                     |> fold_rev (curry Logic.mk_implies) gs
+                     |> fold_rev mk_forall_rename (oqnames ~~ map Free qs)
+    in
+      HOLogic.mk_Trueprop Pbool
+       |> fold_rev (curry Logic.mk_implies o mk_case) relevant_cases
+       |> fold_rev (curry Logic.mk_implies) Cs'
+       |> fold_rev (Logic.all o Free) ws
+       |> fold_rev mk_forall_rename (map fst xs ~~ xs')
+       |> mk_forall_rename ("P", Pbool)
+    end
+
+fun mk_wf ctxt R (IndScheme {T, ...}) =
+    HOLogic.Trueprop $ (Const (@{const_name wf}, mk_relT T --> HOLogic.boolT) $ R)
+
+fun mk_ineqs R (IndScheme {T, cases, branches}) =
+    let
+      fun inject i ts =
+          SumTree.mk_inj T (length branches) (i + 1) (foldr1 HOLogic.mk_prod ts)
+
+      val thesis = Free ("thesis", HOLogic.boolT) (* FIXME *)
+
+      fun mk_pres bdx args = 
+          let
+            val SchemeBranch { xs, ws, Cs, ... } = nth branches bdx
+            fun replace (x, v) t = betapply (lambda (Free x) t, v)
+            val Cs' = map (fold replace (xs ~~ args)) Cs
+            val cse = 
+                HOLogic.mk_Trueprop thesis
+                |> fold_rev (curry Logic.mk_implies) Cs'
+                |> fold_rev (Logic.all o Free) ws
+          in
+            Logic.mk_implies (cse, HOLogic.mk_Trueprop thesis)
+          end
+
+      fun f (SchemeCase {bidx, qs, oqnames, gs, lhs, rs, ...}) = 
+          let
+            fun g (bidx', Gvs, Gas, rcarg) =
+                let val export = 
+                         fold_rev (curry Logic.mk_implies) Gas
+                         #> fold_rev (curry Logic.mk_implies) gs
+                         #> fold_rev (Logic.all o Free) Gvs
+                         #> fold_rev mk_forall_rename (oqnames ~~ map Free qs)
+                in
+                (HOLogic.mk_mem (HOLogic.mk_prod (inject bidx' rcarg, inject bidx lhs), R)
+                 |> HOLogic.mk_Trueprop
+                 |> export,
+                 mk_pres bidx' rcarg
+                 |> export
+                 |> Logic.all thesis)
+                end
+          in
+            map g rs
+          end
+    in
+      map f cases
+    end
+
+
+fun mk_hol_imp a b = HOLogic.imp $ a $ b
+
+fun mk_ind_goal thy branches =
+    let
+      fun brnch (SchemeBranch { P, xs, ws, Cs, ... }) =
+          HOLogic.mk_Trueprop (list_comb (P, map Free xs))
+          |> fold_rev (curry Logic.mk_implies) Cs
+          |> fold_rev (Logic.all o Free) ws
+          |> term_conv thy ind_atomize
+          |> ObjectLogic.drop_judgment thy
+          |> tupled_lambda (foldr1 HOLogic.mk_prod (map Free xs))
+    in
+      SumTree.mk_sumcases HOLogic.boolT (map brnch branches)
+    end
+
+
+fun mk_induct_rule ctxt R x complete_thms wf_thm ineqss (IndScheme {T, cases=scases, branches}) =
+    let
+      val n = length branches
+
+      val scases_idx = map_index I scases
+
+      fun inject i ts =
+          SumTree.mk_inj T n (i + 1) (foldr1 HOLogic.mk_prod ts)
+      val P_of = nth (map (fn (SchemeBranch { P, ... }) => P) branches)
+
+      val thy = ProofContext.theory_of ctxt
+      val cert = cterm_of thy 
+
+      val P_comp = mk_ind_goal thy branches
+
+      (* Inductive Hypothesis: !!z. (z,x):R ==> P z *)
+      val ihyp = Term.all T $ Abs ("z", T, 
+               Logic.mk_implies
+                 (HOLogic.mk_Trueprop (
+                  Const ("op :", HOLogic.mk_prodT (T, T) --> mk_relT T --> HOLogic.boolT) 
+                    $ (HOLogic.pair_const T T $ Bound 0 $ x) 
+                    $ R),
+                   HOLogic.mk_Trueprop (P_comp $ Bound 0)))
+           |> cert
+
+      val aihyp = assume ihyp
+
+     (* Rule for case splitting along the sum types *)
+      val xss = map (fn (SchemeBranch { xs, ... }) => map Free xs) branches
+      val pats = map_index (uncurry inject) xss
+      val sum_split_rule = Pat_Completeness.prove_completeness thy [x] (P_comp $ x) xss (map single pats)
+
+      fun prove_branch (bidx, (SchemeBranch { P, xs, ws, Cs, ... }, (complete_thm, pat))) =
+          let
+            val fxs = map Free xs
+            val branch_hyp = assume (cert (HOLogic.mk_Trueprop (HOLogic.mk_eq (x, pat))))
+                             
+            val C_hyps = map (cert #> assume) Cs
+
+            val (relevant_cases, ineqss') = filter (fn ((_, SchemeCase {bidx=bidx', ...}), _) => bidx' = bidx) (scases_idx ~~ ineqss)
+                                            |> split_list
+                           
+            fun prove_case (cidx, SchemeCase {qs, oqnames, gs, lhs, rs, ...}) ineq_press =
+                let
+                  val case_hyps = map (assume o cert o HOLogic.mk_Trueprop o HOLogic.mk_eq) (fxs ~~ lhs)
+                           
+                  val cqs = map (cert o Free) qs
+                  val ags = map (assume o cert) gs
+                            
+                  val replace_x_ss = HOL_basic_ss addsimps (branch_hyp :: case_hyps)
+                  val sih = full_simplify replace_x_ss aihyp
+                            
+                  fun mk_Prec (idx, Gvs, Gas, rcargs) (ineq, pres) =
+                      let
+                        val cGas = map (assume o cert) Gas
+                        val cGvs = map (cert o Free) Gvs
+                        val import = fold forall_elim (cqs @ cGvs)
+                                     #> fold Thm.elim_implies (ags @ cGas)
+                        val ipres = pres
+                                     |> forall_elim (cert (list_comb (P_of idx, rcargs)))
+                                     |> import
+                      in
+                        sih |> forall_elim (cert (inject idx rcargs))
+                            |> Thm.elim_implies (import ineq) (* Psum rcargs *)
+                            |> Conv.fconv_rule sum_prod_conv
+                            |> Conv.fconv_rule ind_rulify
+                            |> (fn th => th COMP ipres) (* P rs *)
+                            |> fold_rev (implies_intr o cprop_of) cGas
+                            |> fold_rev forall_intr cGvs
+                      end
+                      
+                  val P_recs = map2 mk_Prec rs ineq_press   (*  [P rec1, P rec2, ... ]  *)
+                               
+                  val step = HOLogic.mk_Trueprop (list_comb (P, lhs))
+                             |> fold_rev (curry Logic.mk_implies o prop_of) P_recs
+                             |> fold_rev (curry Logic.mk_implies) gs
+                             |> fold_rev (Logic.all o Free) qs
+                             |> cert
+                             
+                  val Plhs_to_Pxs_conv = 
+                      foldl1 (uncurry Conv.combination_conv) 
+                      (Conv.all_conv :: map (fn ch => K (Thm.symmetric (ch RS eq_reflection))) case_hyps)
+
+                  val res = assume step
+                                   |> fold forall_elim cqs
+                                   |> fold Thm.elim_implies ags
+                                   |> fold Thm.elim_implies P_recs (* P lhs *) 
+                                   |> Conv.fconv_rule (Conv.arg_conv Plhs_to_Pxs_conv) (* P xs *)
+                                   |> fold_rev (implies_intr o cprop_of) (ags @ case_hyps)
+                                   |> fold_rev forall_intr cqs (* !!qs. Gas ==> xs = lhss ==> P xs *)
+                in
+                  (res, (cidx, step))
+                end
+
+            val (cases, steps) = split_list (map2 prove_case relevant_cases ineqss')
+
+            val bstep = complete_thm
+                |> forall_elim (cert (list_comb (P, fxs)))
+                |> fold (forall_elim o cert) (fxs @ map Free ws)
+                |> fold Thm.elim_implies C_hyps             (* FIXME: optimization using rotate_prems *)
+                |> fold Thm.elim_implies cases (* P xs *)
+                |> fold_rev (implies_intr o cprop_of) C_hyps
+                |> fold_rev (forall_intr o cert o Free) ws
+
+            val Pxs = cert (HOLogic.mk_Trueprop (P_comp $ x))
+                     |> Goal.init
+                     |> (MetaSimplifier.rewrite_goals_tac (map meta (branch_hyp :: @{thm split_conv} :: @{thms sum.cases}))
+                         THEN CONVERSION ind_rulify 1)
+                     |> Seq.hd
+                     |> Thm.elim_implies (Conv.fconv_rule Drule.beta_eta_conversion bstep)
+                     |> Goal.finish ctxt
+                     |> implies_intr (cprop_of branch_hyp)
+                     |> fold_rev (forall_intr o cert) fxs
+          in
+            (Pxs, steps)
+          end
+
+      val (branches, steps) = split_list (map_index prove_branch (branches ~~ (complete_thms ~~ pats)))
+                              |> apsnd flat
+                           
+      val istep = sum_split_rule
+                |> fold (fn b => fn th => Drule.compose_single (b, 1, th)) branches
+                |> implies_intr ihyp
+                |> forall_intr (cert x) (* "!!x. (!!y<x. P y) ==> P x" *)
+         
+      val induct_rule =
+          @{thm "wf_induct_rule"}
+            |> (curry op COMP) wf_thm 
+            |> (curry op COMP) istep
+
+      val steps_sorted = map snd (sort (int_ord o pairself fst) steps)
+    in
+      (steps_sorted, induct_rule)
+    end
+
+
+fun mk_ind_tac comp_tac pres_tac term_tac ctxt facts = (ALLGOALS (Method.insert_tac facts)) THEN HEADGOAL 
+(SUBGOAL (fn (t, i) =>
+  let
+    val (ctxt', _, cases, concl) = dest_hhf ctxt t
+    val scheme as IndScheme {T=ST, branches, ...} = mk_scheme' ctxt' cases concl
+(*     val _ = tracing (makestring scheme)*)
+    val ([Rn,xn], ctxt'') = Variable.variant_fixes ["R","x"] ctxt'
+    val R = Free (Rn, mk_relT ST)
+    val x = Free (xn, ST)
+    val cert = cterm_of (ProofContext.theory_of ctxt)
+
+    val ineqss = mk_ineqs R scheme
+                   |> map (map (pairself (assume o cert)))
+    val complete = map_range (mk_completeness ctxt scheme #> cert #> assume) (length branches)
+    val wf_thm = mk_wf ctxt R scheme |> cert |> assume
+
+    val (descent, pres) = split_list (flat ineqss)
+    val newgoals = complete @ pres @ wf_thm :: descent 
+
+    val (steps, indthm) = mk_induct_rule ctxt'' R x complete wf_thm ineqss scheme
+
+    fun project (i, SchemeBranch {xs, ...}) =
+        let
+          val inst = cert (SumTree.mk_inj ST (length branches) (i + 1) (foldr1 HOLogic.mk_prod (map Free xs)))
+        in
+          indthm |> Drule.instantiate' [] [SOME inst]
+                 |> simplify SumTree.sumcase_split_ss
+                 |> Conv.fconv_rule ind_rulify
+(*                 |> (fn thm => (tracing (makestring thm); thm))*)
+        end                  
+
+    val res = Conjunction.intr_balanced (map_index project branches)
+                 |> fold_rev implies_intr (map cprop_of newgoals @ steps)
+                 |> (fn thm => Thm.generalize ([], [Rn]) (Thm.maxidx_of thm + 1) thm)
+
+    val nbranches = length branches
+    val npres = length pres
+  in
+    Thm.compose_no_flatten false (res, length newgoals) i
+    THEN term_tac (i + nbranches + npres)
+    THEN (EVERY (map (TRY o pres_tac) ((i + nbranches + npres - 1) downto (i + nbranches))))
+    THEN (EVERY (map (TRY o comp_tac) ((i + nbranches - 1) downto i)))
+  end))
+
+
+fun induction_schema_tac ctxt =
+  mk_ind_tac (K all_tac) (assume_tac APPEND' Goal.assume_rule_tac ctxt) (K all_tac) ctxt;
+
+val setup =
+  Method.setup @{binding induction_schema} (Scan.succeed (RAW_METHOD o induction_schema_tac))
+    "proves an induction principle"
+
+end
--- a/src/HOL/Tools/Function/induction_scheme.ML	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,405 +0,0 @@
-(*  Title:      HOL/Tools/Function/induction_scheme.ML
-    Author:     Alexander Krauss, TU Muenchen
-
-A method to prove induction schemes.
-*)
-
-signature INDUCTION_SCHEME =
-sig
-  val mk_ind_tac : (int -> tactic) -> (int -> tactic) -> (int -> tactic)
-                   -> Proof.context -> thm list -> tactic
-  val induct_scheme_tac : Proof.context -> thm list -> tactic
-  val setup : theory -> theory
-end
-
-
-structure Induction_Scheme : INDUCTION_SCHEME =
-struct
-
-open Function_Lib
-
-
-type rec_call_info = int * (string * typ) list * term list * term list
-
-datatype scheme_case =
-  SchemeCase of
-  {
-   bidx : int,
-   qs: (string * typ) list,
-   oqnames: string list,
-   gs: term list,
-   lhs: term list,
-   rs: rec_call_info list
-  }
-
-datatype scheme_branch = 
-  SchemeBranch of
-  {
-   P : term,
-   xs: (string * typ) list,
-   ws: (string * typ) list,
-   Cs: term list
-  }
-
-datatype ind_scheme =
-  IndScheme of
-  {
-   T: typ, (* sum of products *)
-   branches: scheme_branch list,
-   cases: scheme_case list
-  }
-
-val ind_atomize = MetaSimplifier.rewrite true @{thms induct_atomize}
-val ind_rulify = MetaSimplifier.rewrite true @{thms induct_rulify}
-
-fun meta thm = thm RS eq_reflection
-
-val sum_prod_conv = MetaSimplifier.rewrite true 
-                    (map meta (@{thm split_conv} :: @{thms sum.cases}))
-
-fun term_conv thy cv t = 
-    cv (cterm_of thy t)
-    |> prop_of |> Logic.dest_equals |> snd
-
-fun mk_relT T = HOLogic.mk_setT (HOLogic.mk_prodT (T, T))
-
-fun dest_hhf ctxt t = 
-    let 
-      val (ctxt', vars, imp) = dest_all_all_ctx ctxt t
-    in
-      (ctxt', vars, Logic.strip_imp_prems imp, Logic.strip_imp_concl imp)
-    end
-
-
-fun mk_scheme' ctxt cases concl =
-    let
-      fun mk_branch concl =
-          let
-            val (ctxt', ws, Cs, _ $ Pxs) = dest_hhf ctxt concl
-            val (P, xs) = strip_comb Pxs
-          in
-            SchemeBranch { P=P, xs=map dest_Free xs, ws=ws, Cs=Cs }
-          end
-
-      val (branches, cases') = (* correction *)
-          case Logic.dest_conjunction_list concl of
-            [conc] => 
-            let 
-              val _ $ Pxs = Logic.strip_assums_concl conc
-              val (P, _) = strip_comb Pxs
-              val (cases', conds) = take_prefix (Term.exists_subterm (curry op aconv P)) cases
-              val concl' = fold_rev (curry Logic.mk_implies) conds conc
-            in
-              ([mk_branch concl'], cases')
-            end
-          | concls => (map mk_branch concls, cases)
-
-      fun mk_case premise =
-          let
-            val (ctxt', qs, prems, _ $ Plhs) = dest_hhf ctxt premise
-            val (P, lhs) = strip_comb Plhs
-                                
-            fun bidx Q = find_index (fn SchemeBranch {P=P',...} => Q aconv P') branches
-
-            fun mk_rcinfo pr =
-                let
-                  val (ctxt'', Gvs, Gas, _ $ Phyp) = dest_hhf ctxt' pr
-                  val (P', rcs) = strip_comb Phyp
-                in
-                  (bidx P', Gvs, Gas, rcs)
-                end
-                
-            fun is_pred v = exists (fn SchemeBranch {P,...} => v aconv P) branches
-
-            val (gs, rcprs) = 
-                take_prefix (not o Term.exists_subterm is_pred) prems
-          in
-            SchemeCase {bidx=bidx P, qs=qs, oqnames=map fst qs(*FIXME*), gs=gs, lhs=lhs, rs=map mk_rcinfo rcprs}
-          end
-
-      fun PT_of (SchemeBranch { xs, ...}) =
-            foldr1 HOLogic.mk_prodT (map snd xs)
-
-      val ST = Balanced_Tree.make (uncurry SumTree.mk_sumT) (map PT_of branches)
-    in
-      IndScheme {T=ST, cases=map mk_case cases', branches=branches }
-    end
-
-
-
-fun mk_completeness ctxt (IndScheme {cases, branches, ...}) bidx =
-    let
-      val SchemeBranch { xs, ws, Cs, ... } = nth branches bidx
-      val relevant_cases = filter (fn SchemeCase {bidx=bidx', ...} => bidx' = bidx) cases
-
-      val allqnames = fold (fn SchemeCase {qs, ...} => fold (insert (op =) o Free) qs) relevant_cases []
-      val (Pbool :: xs') = map Free (Variable.variant_frees ctxt allqnames (("P", HOLogic.boolT) :: xs))
-      val Cs' = map (Pattern.rewrite_term (ProofContext.theory_of ctxt) (filter_out (op aconv) (map Free xs ~~ xs')) []) Cs
-                       
-      fun mk_case (SchemeCase {qs, oqnames, gs, lhs, ...}) =
-          HOLogic.mk_Trueprop Pbool
-                     |> fold_rev (fn x_l => curry Logic.mk_implies (HOLogic.mk_Trueprop(HOLogic.mk_eq x_l)))
-                                 (xs' ~~ lhs)
-                     |> fold_rev (curry Logic.mk_implies) gs
-                     |> fold_rev mk_forall_rename (oqnames ~~ map Free qs)
-    in
-      HOLogic.mk_Trueprop Pbool
-       |> fold_rev (curry Logic.mk_implies o mk_case) relevant_cases
-       |> fold_rev (curry Logic.mk_implies) Cs'
-       |> fold_rev (Logic.all o Free) ws
-       |> fold_rev mk_forall_rename (map fst xs ~~ xs')
-       |> mk_forall_rename ("P", Pbool)
-    end
-
-fun mk_wf ctxt R (IndScheme {T, ...}) =
-    HOLogic.Trueprop $ (Const (@{const_name wf}, mk_relT T --> HOLogic.boolT) $ R)
-
-fun mk_ineqs R (IndScheme {T, cases, branches}) =
-    let
-      fun inject i ts =
-          SumTree.mk_inj T (length branches) (i + 1) (foldr1 HOLogic.mk_prod ts)
-
-      val thesis = Free ("thesis", HOLogic.boolT) (* FIXME *)
-
-      fun mk_pres bdx args = 
-          let
-            val SchemeBranch { xs, ws, Cs, ... } = nth branches bdx
-            fun replace (x, v) t = betapply (lambda (Free x) t, v)
-            val Cs' = map (fold replace (xs ~~ args)) Cs
-            val cse = 
-                HOLogic.mk_Trueprop thesis
-                |> fold_rev (curry Logic.mk_implies) Cs'
-                |> fold_rev (Logic.all o Free) ws
-          in
-            Logic.mk_implies (cse, HOLogic.mk_Trueprop thesis)
-          end
-
-      fun f (SchemeCase {bidx, qs, oqnames, gs, lhs, rs, ...}) = 
-          let
-            fun g (bidx', Gvs, Gas, rcarg) =
-                let val export = 
-                         fold_rev (curry Logic.mk_implies) Gas
-                         #> fold_rev (curry Logic.mk_implies) gs
-                         #> fold_rev (Logic.all o Free) Gvs
-                         #> fold_rev mk_forall_rename (oqnames ~~ map Free qs)
-                in
-                (HOLogic.mk_mem (HOLogic.mk_prod (inject bidx' rcarg, inject bidx lhs), R)
-                 |> HOLogic.mk_Trueprop
-                 |> export,
-                 mk_pres bidx' rcarg
-                 |> export
-                 |> Logic.all thesis)
-                end
-          in
-            map g rs
-          end
-    in
-      map f cases
-    end
-
-
-fun mk_hol_imp a b = HOLogic.imp $ a $ b
-
-fun mk_ind_goal thy branches =
-    let
-      fun brnch (SchemeBranch { P, xs, ws, Cs, ... }) =
-          HOLogic.mk_Trueprop (list_comb (P, map Free xs))
-          |> fold_rev (curry Logic.mk_implies) Cs
-          |> fold_rev (Logic.all o Free) ws
-          |> term_conv thy ind_atomize
-          |> ObjectLogic.drop_judgment thy
-          |> tupled_lambda (foldr1 HOLogic.mk_prod (map Free xs))
-    in
-      SumTree.mk_sumcases HOLogic.boolT (map brnch branches)
-    end
-
-
-fun mk_induct_rule ctxt R x complete_thms wf_thm ineqss (IndScheme {T, cases=scases, branches}) =
-    let
-      val n = length branches
-
-      val scases_idx = map_index I scases
-
-      fun inject i ts =
-          SumTree.mk_inj T n (i + 1) (foldr1 HOLogic.mk_prod ts)
-      val P_of = nth (map (fn (SchemeBranch { P, ... }) => P) branches)
-
-      val thy = ProofContext.theory_of ctxt
-      val cert = cterm_of thy 
-
-      val P_comp = mk_ind_goal thy branches
-
-      (* Inductive Hypothesis: !!z. (z,x):R ==> P z *)
-      val ihyp = Term.all T $ Abs ("z", T, 
-               Logic.mk_implies
-                 (HOLogic.mk_Trueprop (
-                  Const ("op :", HOLogic.mk_prodT (T, T) --> mk_relT T --> HOLogic.boolT) 
-                    $ (HOLogic.pair_const T T $ Bound 0 $ x) 
-                    $ R),
-                   HOLogic.mk_Trueprop (P_comp $ Bound 0)))
-           |> cert
-
-      val aihyp = assume ihyp
-
-     (* Rule for case splitting along the sum types *)
-      val xss = map (fn (SchemeBranch { xs, ... }) => map Free xs) branches
-      val pats = map_index (uncurry inject) xss
-      val sum_split_rule = Pat_Completeness.prove_completeness thy [x] (P_comp $ x) xss (map single pats)
-
-      fun prove_branch (bidx, (SchemeBranch { P, xs, ws, Cs, ... }, (complete_thm, pat))) =
-          let
-            val fxs = map Free xs
-            val branch_hyp = assume (cert (HOLogic.mk_Trueprop (HOLogic.mk_eq (x, pat))))
-                             
-            val C_hyps = map (cert #> assume) Cs
-
-            val (relevant_cases, ineqss') = filter (fn ((_, SchemeCase {bidx=bidx', ...}), _) => bidx' = bidx) (scases_idx ~~ ineqss)
-                                            |> split_list
-                           
-            fun prove_case (cidx, SchemeCase {qs, oqnames, gs, lhs, rs, ...}) ineq_press =
-                let
-                  val case_hyps = map (assume o cert o HOLogic.mk_Trueprop o HOLogic.mk_eq) (fxs ~~ lhs)
-                           
-                  val cqs = map (cert o Free) qs
-                  val ags = map (assume o cert) gs
-                            
-                  val replace_x_ss = HOL_basic_ss addsimps (branch_hyp :: case_hyps)
-                  val sih = full_simplify replace_x_ss aihyp
-                            
-                  fun mk_Prec (idx, Gvs, Gas, rcargs) (ineq, pres) =
-                      let
-                        val cGas = map (assume o cert) Gas
-                        val cGvs = map (cert o Free) Gvs
-                        val import = fold forall_elim (cqs @ cGvs)
-                                     #> fold Thm.elim_implies (ags @ cGas)
-                        val ipres = pres
-                                     |> forall_elim (cert (list_comb (P_of idx, rcargs)))
-                                     |> import
-                      in
-                        sih |> forall_elim (cert (inject idx rcargs))
-                            |> Thm.elim_implies (import ineq) (* Psum rcargs *)
-                            |> Conv.fconv_rule sum_prod_conv
-                            |> Conv.fconv_rule ind_rulify
-                            |> (fn th => th COMP ipres) (* P rs *)
-                            |> fold_rev (implies_intr o cprop_of) cGas
-                            |> fold_rev forall_intr cGvs
-                      end
-                      
-                  val P_recs = map2 mk_Prec rs ineq_press   (*  [P rec1, P rec2, ... ]  *)
-                               
-                  val step = HOLogic.mk_Trueprop (list_comb (P, lhs))
-                             |> fold_rev (curry Logic.mk_implies o prop_of) P_recs
-                             |> fold_rev (curry Logic.mk_implies) gs
-                             |> fold_rev (Logic.all o Free) qs
-                             |> cert
-                             
-                  val Plhs_to_Pxs_conv = 
-                      foldl1 (uncurry Conv.combination_conv) 
-                      (Conv.all_conv :: map (fn ch => K (Thm.symmetric (ch RS eq_reflection))) case_hyps)
-
-                  val res = assume step
-                                   |> fold forall_elim cqs
-                                   |> fold Thm.elim_implies ags
-                                   |> fold Thm.elim_implies P_recs (* P lhs *) 
-                                   |> Conv.fconv_rule (Conv.arg_conv Plhs_to_Pxs_conv) (* P xs *)
-                                   |> fold_rev (implies_intr o cprop_of) (ags @ case_hyps)
-                                   |> fold_rev forall_intr cqs (* !!qs. Gas ==> xs = lhss ==> P xs *)
-                in
-                  (res, (cidx, step))
-                end
-
-            val (cases, steps) = split_list (map2 prove_case relevant_cases ineqss')
-
-            val bstep = complete_thm
-                |> forall_elim (cert (list_comb (P, fxs)))
-                |> fold (forall_elim o cert) (fxs @ map Free ws)
-                |> fold Thm.elim_implies C_hyps             (* FIXME: optimization using rotate_prems *)
-                |> fold Thm.elim_implies cases (* P xs *)
-                |> fold_rev (implies_intr o cprop_of) C_hyps
-                |> fold_rev (forall_intr o cert o Free) ws
-
-            val Pxs = cert (HOLogic.mk_Trueprop (P_comp $ x))
-                     |> Goal.init
-                     |> (MetaSimplifier.rewrite_goals_tac (map meta (branch_hyp :: @{thm split_conv} :: @{thms sum.cases}))
-                         THEN CONVERSION ind_rulify 1)
-                     |> Seq.hd
-                     |> Thm.elim_implies (Conv.fconv_rule Drule.beta_eta_conversion bstep)
-                     |> Goal.finish ctxt
-                     |> implies_intr (cprop_of branch_hyp)
-                     |> fold_rev (forall_intr o cert) fxs
-          in
-            (Pxs, steps)
-          end
-
-      val (branches, steps) = split_list (map_index prove_branch (branches ~~ (complete_thms ~~ pats)))
-                              |> apsnd flat
-                           
-      val istep = sum_split_rule
-                |> fold (fn b => fn th => Drule.compose_single (b, 1, th)) branches
-                |> implies_intr ihyp
-                |> forall_intr (cert x) (* "!!x. (!!y<x. P y) ==> P x" *)
-         
-      val induct_rule =
-          @{thm "wf_induct_rule"}
-            |> (curry op COMP) wf_thm 
-            |> (curry op COMP) istep
-
-      val steps_sorted = map snd (sort (int_ord o pairself fst) steps)
-    in
-      (steps_sorted, induct_rule)
-    end
-
-
-fun mk_ind_tac comp_tac pres_tac term_tac ctxt facts = (ALLGOALS (Method.insert_tac facts)) THEN HEADGOAL 
-(SUBGOAL (fn (t, i) =>
-  let
-    val (ctxt', _, cases, concl) = dest_hhf ctxt t
-    val scheme as IndScheme {T=ST, branches, ...} = mk_scheme' ctxt' cases concl
-(*     val _ = tracing (makestring scheme)*)
-    val ([Rn,xn], ctxt'') = Variable.variant_fixes ["R","x"] ctxt'
-    val R = Free (Rn, mk_relT ST)
-    val x = Free (xn, ST)
-    val cert = cterm_of (ProofContext.theory_of ctxt)
-
-    val ineqss = mk_ineqs R scheme
-                   |> map (map (pairself (assume o cert)))
-    val complete = map_range (mk_completeness ctxt scheme #> cert #> assume) (length branches)
-    val wf_thm = mk_wf ctxt R scheme |> cert |> assume
-
-    val (descent, pres) = split_list (flat ineqss)
-    val newgoals = complete @ pres @ wf_thm :: descent 
-
-    val (steps, indthm) = mk_induct_rule ctxt'' R x complete wf_thm ineqss scheme
-
-    fun project (i, SchemeBranch {xs, ...}) =
-        let
-          val inst = cert (SumTree.mk_inj ST (length branches) (i + 1) (foldr1 HOLogic.mk_prod (map Free xs)))
-        in
-          indthm |> Drule.instantiate' [] [SOME inst]
-                 |> simplify SumTree.sumcase_split_ss
-                 |> Conv.fconv_rule ind_rulify
-(*                 |> (fn thm => (tracing (makestring thm); thm))*)
-        end                  
-
-    val res = Conjunction.intr_balanced (map_index project branches)
-                 |> fold_rev implies_intr (map cprop_of newgoals @ steps)
-                 |> (fn thm => Thm.generalize ([], [Rn]) (Thm.maxidx_of thm + 1) thm)
-
-    val nbranches = length branches
-    val npres = length pres
-  in
-    Thm.compose_no_flatten false (res, length newgoals) i
-    THEN term_tac (i + nbranches + npres)
-    THEN (EVERY (map (TRY o pres_tac) ((i + nbranches + npres - 1) downto (i + nbranches))))
-    THEN (EVERY (map (TRY o comp_tac) ((i + nbranches - 1) downto i)))
-  end))
-
-
-fun induct_scheme_tac ctxt =
-  mk_ind_tac (K all_tac) (assume_tac APPEND' Goal.assume_rule_tac ctxt) (K all_tac) ctxt;
-
-val setup =
-  Method.setup @{binding induct_scheme} (Scan.succeed (RAW_METHOD o induct_scheme_tac))
-    "proves an induction principle"
-
-end
--- a/src/HOL/Tools/Function/scnp_reconstruct.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Tools/Function/scnp_reconstruct.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -418,7 +418,7 @@
      (Args.$$$ "ms" >> K MS))
   || Scan.succeed [MAX, MS, MIN]
 
-val setup = Method.setup @{binding sizechange}
+val setup = Method.setup @{binding size_change}
   (Scan.lift orders --| Method.sections clasimp_modifiers >> decomp_scnp)
   "termination prover with graph decomposition and the NP subset of size change termination"
 
--- a/src/HOL/Tools/Predicate_Compile/predicate_compile.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Tools/Predicate_Compile/predicate_compile.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -37,8 +37,7 @@
   map (fn (c, thms) => "Constant " ^ c ^ " has specification:\n"
     ^ (space_implode "\n" (map (Display.string_of_thm_global thy) thms)) ^ "\n") specs
 
-(* TODO: *)
-fun overload_const thy s = s
+fun overload_const thy s = the_default s (Option.map fst (AxClass.inst_of_param thy s))
 
 fun map_specs f specs =
   map (fn (s, ths) => (s, f ths)) specs
@@ -87,8 +86,8 @@
     val _ = print_intross options thy''' "Introduction rules with new constants: " intross3
     val intross4 = map_specs (maps remove_pointless_clauses) intross3
     val _ = print_intross options thy''' "After removing pointless clauses: " intross4
-    val intross5 = (*map (fn (s, ths) => (overload_const s, map (AxClass.overload thy''') ths))*) intross4
-    val intross6 = map_specs (map (expand_tuples thy''')) intross4
+    val intross5 = map (fn (s, ths) => (overload_const thy''' s, map (AxClass.overload thy''') ths)) intross4
+    val intross6 = map_specs (map (expand_tuples thy''')) intross5
     val _ = print_intross options thy''' "introduction rules before registering: " intross6
     val _ = print_step options "Registering introduction rules..."
     val thy'''' = fold Predicate_Compile_Core.register_intros intross6 thy'''
@@ -121,7 +120,8 @@
       skip_proof = chk "skip_proof",
       inductify = chk "inductify",
       random = chk "random",
-      depth_limited = chk "depth_limited"
+      depth_limited = chk "depth_limited",
+      annotated = chk "annotated"
     }
   end
 
@@ -149,11 +149,14 @@
 val setup = Predicate_Compile_Fun.setup_oracle #> Predicate_Compile_Core.setup
 
 val bool_options = ["show_steps", "show_intermediate_results", "show_proof_trace", "show_modes",
-  "show_mode_inference", "show_compilation", "skip_proof", "inductify", "random", "depth_limited"]
+  "show_mode_inference", "show_compilation", "skip_proof", "inductify", "random", "depth_limited",
+  "annotated"]
 
 local structure P = OuterParse
 in
 
+(* Parser for mode annotations *)
+
 (*val parse_argmode' = P.nat >> rpair NONE || P.$$$ "(" |-- P.enum1 "," --| P.$$$ ")"*)
 datatype raw_argmode = Argmode of string | Argmode_Tuple of string list
 
@@ -184,16 +187,42 @@
   Scan.optional (P.$$$ "(" |-- Args.$$$ "mode" |-- P.$$$ ":" |--
     P.enum1 "," (parse_mode || parse_mode') --| P.$$$ ")" >> SOME) NONE
 
-val scan_params =
+(* Parser for options *)
+
+val scan_options =
   let
-    val scan_bool_param = foldl1 (op ||) (map Args.$$$ bool_options)
+    val scan_bool_option = foldl1 (op ||) (map Args.$$$ bool_options)
   in
-    Scan.optional (P.$$$ "[" |-- P.enum1 "," scan_bool_param --| P.$$$ "]") []
+    Scan.optional (P.$$$ "[" |-- P.enum1 "," scan_bool_option --| P.$$$ "]") []
   end
 
+val opt_print_modes = Scan.optional (P.$$$ "(" |-- P.!!! (Scan.repeat1 P.xname --| P.$$$ ")")) [];
+
+val opt_smode = (P.$$$ "_" >> K NONE) || (parse_smode >> SOME)
+
+val opt_param_modes = Scan.optional (P.$$$ "[" |-- Args.$$$ "mode" |-- P.$$$ ":" |--
+  P.enum ", " opt_smode --| P.$$$ "]" >> SOME) NONE
+
+val value_options =
+  let
+    val depth_limit = Scan.optional (Args.$$$ "depth_limit" |-- P.$$$ "=" |-- P.nat >> SOME) NONE
+    val random = Scan.optional (Args.$$$ "random" >> K true) false
+    val annotated = Scan.optional (Args.$$$ "annotated" >> K true) false
+  in
+    Scan.optional (P.$$$ "[" |-- depth_limit -- (random -- annotated) --| P.$$$ "]")
+      (NONE, (false, false))
+  end
+
+(* code_pred command and values command *)
+
 val _ = OuterSyntax.local_theory_to_proof "code_pred"
   "prove equations for predicate specified by intro/elim rules"
-  OuterKeyword.thy_goal (opt_modes -- scan_params -- P.term_group >> code_pred_cmd)
+  OuterKeyword.thy_goal (opt_modes -- scan_options -- P.term_group >> code_pred_cmd)
+
+val _ = OuterSyntax.improper_command "values" "enumerate and print comprehensions" OuterKeyword.diag
+  (opt_print_modes -- opt_param_modes -- value_options -- Scan.optional P.nat ~1 -- P.term
+    >> (fn ((((print_modes, param_modes), options), k), t) => Toplevel.no_timing o Toplevel.keep
+        (Predicate_Compile_Core.values_cmd print_modes param_modes options k t)));
 
 end
 
--- a/src/HOL/Tools/Predicate_Compile/predicate_compile_aux.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Tools/Predicate_Compile/predicate_compile_aux.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -170,7 +170,8 @@
 
   inductify : bool,
   random : bool,
-  depth_limited : bool
+  depth_limited : bool,
+  annotated : bool
 };
 
 fun expected_modes (Options opt) = #expected_modes opt
@@ -185,6 +186,7 @@
 fun is_inductify (Options opt) = #inductify opt
 fun is_random (Options opt) = #random opt
 fun is_depth_limited (Options opt) = #depth_limited opt
+fun is_annotated (Options opt) = #annotated opt
 
 val default_options = Options {
   expected_modes = NONE,
@@ -198,7 +200,8 @@
   
   inductify = false,
   random = false,
-  depth_limited = false
+  depth_limited = false,
+  annotated = false
 }
 
 
--- a/src/HOL/Tools/Predicate_Compile/predicate_compile_core.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Tools/Predicate_Compile/predicate_compile_core.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -6,9 +6,11 @@
 
 signature PREDICATE_COMPILE_CORE =
 sig
-  val setup: theory -> theory
-  val code_pred: Predicate_Compile_Aux.options -> string -> Proof.context -> Proof.state
-  val code_pred_cmd: Predicate_Compile_Aux.options -> string -> Proof.context -> Proof.state
+  val setup : theory -> theory
+  val code_pred : Predicate_Compile_Aux.options -> string -> Proof.context -> Proof.state
+  val code_pred_cmd : Predicate_Compile_Aux.options -> string -> Proof.context -> Proof.state
+  val values_cmd : string list -> Predicate_Compile_Aux.smode option list option
+    -> int option * (bool * bool) -> int -> string -> Toplevel.state -> unit
   val register_predicate : (string * thm list * thm * int) -> theory -> theory
   val register_intros : string * thm list -> theory -> theory
   val is_registered : theory -> string -> bool
@@ -19,20 +21,21 @@
   val modes_of: theory -> string -> Predicate_Compile_Aux.mode list
   val depth_limited_modes_of: theory -> string -> Predicate_Compile_Aux.mode list
   val depth_limited_function_name_of : theory -> string -> Predicate_Compile_Aux.mode -> string
-  val generator_modes_of: theory -> string -> Predicate_Compile_Aux.mode list
-  val generator_name_of : theory -> string -> Predicate_Compile_Aux.mode -> string
+  val random_modes_of: theory -> string -> Predicate_Compile_Aux.mode list
+  val random_function_name_of : theory -> string -> Predicate_Compile_Aux.mode -> string
   val all_modes_of : theory -> (string * Predicate_Compile_Aux.mode list) list
-  val all_generator_modes_of : theory -> (string * Predicate_Compile_Aux.mode list) list
-  val intros_of: theory -> string -> thm list
-  val nparams_of: theory -> string -> int
-  val add_intro: thm -> theory -> theory
-  val set_elim: thm -> theory -> theory
+  val all_random_modes_of : theory -> (string * Predicate_Compile_Aux.mode list) list
+  val intros_of : theory -> string -> thm list
+  val nparams_of : theory -> string -> int
+  val add_intro : thm -> theory -> theory
+  val set_elim : thm -> theory -> theory
   val set_nparams : string -> int -> theory -> theory
-  val print_stored_rules: theory -> unit
-  val print_all_modes: theory -> unit
+  val print_stored_rules : theory -> unit
+  val print_all_modes : theory -> unit
   val mk_casesrule : Proof.context -> term -> int -> thm list -> term
   val eval_ref : (unit -> term Predicate.pred) option Unsynchronized.ref
-  val random_eval_ref : (unit -> int * int -> term Predicate.pred * (int * int)) option Unsynchronized.ref
+  val random_eval_ref : (unit -> int * int -> term Predicate.pred * (int * int))
+    option Unsynchronized.ref
   val code_pred_intros_attrib : attribute
   (* used by Quickcheck_Generator *) 
   (* temporary for testing of the compilation *)
@@ -51,7 +54,9 @@
   val randompred_compfuns : compilation_funs
   val add_equations : Predicate_Compile_Aux.options -> string list -> theory -> theory
   val add_quickcheck_equations : Predicate_Compile_Aux.options -> string list -> theory -> theory
-  val add_depth_limited_equations : Predicate_Compile_Aux.options -> string list -> theory -> theory
+  val add_depth_limited_equations : Predicate_Compile_Aux.options
+    -> string list -> theory -> theory
+  val mk_tracing : string -> term -> term
 end;
 
 structure Predicate_Compile_Core : PREDICATE_COMPILE_CORE =
@@ -116,6 +121,10 @@
   Type ("*", [Type ("*", [T, @{typ "unit => Code_Evaluation.term"}]) ,@{typ Random.seed}])])) = T
   | dest_randomT T = raise TYPE ("dest_randomT", [T], [])
 
+fun mk_tracing s t =
+  Const(@{const_name Code_Evaluation.tracing},
+    @{typ String.literal} --> (fastype_of t) --> (fastype_of t)) $ (HOLogic.mk_literal s) $ t
+
 (* destruction of intro rules *)
 
 (* FIXME: look for other place where this functionality was used before *)
@@ -197,17 +206,22 @@
   intros : thm list,
   elim : thm option,
   nparams : int,
-  functions : (mode * predfun_data) list,
-  generators : (mode * function_data) list,
-  depth_limited_functions : (mode * function_data) list 
+  functions : bool * (mode * predfun_data) list,
+  random_functions : bool * (mode * function_data) list,
+  depth_limited_functions : bool * (mode * function_data) list,
+  annotated_functions : bool * (mode * function_data) list
 };
 
 fun rep_pred_data (PredData data) = data;
-fun mk_pred_data ((intros, elim, nparams), (functions, generators, depth_limited_functions)) =
+fun mk_pred_data ((intros, elim, nparams),
+  (functions, random_functions, depth_limited_functions, annotated_functions)) =
   PredData {intros = intros, elim = elim, nparams = nparams,
-    functions = functions, generators = generators, depth_limited_functions = depth_limited_functions}
-fun map_pred_data f (PredData {intros, elim, nparams, functions, generators, depth_limited_functions}) =
-  mk_pred_data (f ((intros, elim, nparams), (functions, generators, depth_limited_functions)))
+    functions = functions, random_functions = random_functions,
+    depth_limited_functions = depth_limited_functions, annotated_functions = annotated_functions}
+fun map_pred_data f (PredData {intros, elim, nparams,
+  functions, random_functions, depth_limited_functions, annotated_functions}) =
+  mk_pred_data (f ((intros, elim, nparams), (functions, random_functions,
+    depth_limited_functions, annotated_functions)))
 
 fun eq_option eq (NONE, NONE) = true
   | eq_option eq (SOME x, SOME y) = eq (x, y)
@@ -250,22 +264,19 @@
 
 val nparams_of = #nparams oo the_pred_data
 
-val modes_of = (map fst) o #functions oo the_pred_data
+val modes_of = (map fst) o snd o #functions oo the_pred_data
 
-val depth_limited_modes_of = (map fst) o #depth_limited_functions oo the_pred_data
-
-val random_modes_of = (map fst) o #generators oo the_pred_data
-  
 fun all_modes_of thy = map (fn name => (name, modes_of thy name)) (all_preds_of thy) 
 
-val is_compiled = not o null o #functions oo the_pred_data
+val defined_functions = fst o #functions oo the_pred_data
 
 fun lookup_predfun_data thy name mode =
-  Option.map rep_predfun_data (AList.lookup (op =)
-  (#functions (the_pred_data thy name)) mode)
+  Option.map rep_predfun_data
+    (AList.lookup (op =) (snd (#functions (the_pred_data thy name))) mode)
 
 fun the_predfun_data thy name mode = case lookup_predfun_data thy name mode
-  of NONE => error ("No function defined for mode " ^ string_of_mode mode ^ " of predicate " ^ name)
+  of NONE => error ("No function defined for mode " ^ string_of_mode mode ^
+    " of predicate " ^ name)
    | SOME data => data;
 
 val predfun_name_of = #name ooo the_predfun_data
@@ -276,31 +287,54 @@
 
 val predfun_elim_of = #elim ooo the_predfun_data
 
-fun lookup_generator_data thy name mode = 
-  Option.map rep_function_data (AList.lookup (op =)
-  (#generators (the_pred_data thy name)) mode)
+fun lookup_random_function_data thy name mode =
+  Option.map rep_function_data
+  (AList.lookup (op =) (snd (#random_functions (the_pred_data thy name))) mode)
 
-fun the_generator_data thy name mode = case lookup_generator_data thy name mode
-  of NONE => error ("No generator defined for mode " ^ string_of_mode mode ^ " of predicate " ^ name)
+fun the_random_function_data thy name mode = case lookup_random_function_data thy name mode of
+     NONE => error ("No random function defined for mode " ^ string_of_mode mode ^
+       " of predicate " ^ name)
    | SOME data => data
 
-val generator_name_of = #name ooo the_generator_data
+val random_function_name_of = #name ooo the_random_function_data
+
+val random_modes_of = (map fst) o snd o #random_functions oo the_pred_data
 
-val generator_modes_of = (map fst) o #generators oo the_pred_data
+val defined_random_functions = fst o #random_functions oo the_pred_data
 
-fun all_generator_modes_of thy =
-  map (fn name => (name, generator_modes_of thy name)) (all_preds_of thy) 
+fun all_random_modes_of thy =
+  map (fn name => (name, random_modes_of thy name)) (all_preds_of thy) 
 
 fun lookup_depth_limited_function_data thy name mode =
-  Option.map rep_function_data (AList.lookup (op =)
-  (#depth_limited_functions (the_pred_data thy name)) mode)
+  Option.map rep_function_data
+    (AList.lookup (op =) (snd (#depth_limited_functions (the_pred_data thy name))) mode)
+
+fun the_depth_limited_function_data thy name mode =
+  case lookup_depth_limited_function_data thy name mode of
+    NONE => error ("No depth-limited function defined for mode " ^ string_of_mode mode
+      ^ " of predicate " ^ name)
+   | SOME data => data
+
+val depth_limited_function_name_of = #name ooo the_depth_limited_function_data
 
-fun the_depth_limited_function_data thy name mode = case lookup_depth_limited_function_data thy name mode
-  of NONE => error ("No depth-limited function defined for mode " ^ string_of_mode mode
+val depth_limited_modes_of = (map fst) o snd o #depth_limited_functions oo the_pred_data
+
+val defined_depth_limited_functions = fst o #depth_limited_functions oo the_pred_data
+
+fun lookup_annotated_function_data thy name mode =
+  Option.map rep_function_data
+    (AList.lookup (op =) (snd (#annotated_functions (the_pred_data thy name))) mode)
+
+fun the_annotated_function_data thy name mode = case lookup_annotated_function_data thy name mode
+  of NONE => error ("No annotated function defined for mode " ^ string_of_mode mode
     ^ " of predicate " ^ name)
    | SOME data => data
 
-val depth_limited_function_name_of = #name ooo the_depth_limited_function_data
+val annotated_function_name_of = #name ooo the_annotated_function_data
+
+val annotated_modes_of = (map fst) o snd o #annotated_functions oo the_pred_data
+
+val defined_annotated_functions = fst o #annotated_functions oo the_pred_data
 
 (* diagnostic display functions *)
 
@@ -546,15 +580,25 @@
   val P = HOLogic.mk_Trueprop (Free ("P", HOLogic.boolT))
   val elim_t = Logic.list_implies ([clausehd, Logic.mk_implies (@{prop False}, P)], P)
   val intro = Goal.prove (ProofContext.init thy) names [] intro_t
-        (fn {...} => etac @{thm FalseE} 1)
+        (fn _ => etac @{thm FalseE} 1)
   val elim = Goal.prove (ProofContext.init thy) ("P" :: names) [] elim_t
-        (fn {...} => etac elim 1) 
+        (fn _ => etac elim 1) 
 in
   ([intro], elim)
 end
 
 fun expand_tuples_elim th = th
 
+(* updaters *)
+
+fun apfst4 f (x1, x2, x3, x4) = (f x1, x2, x3, x4)
+fun apsnd4 f (x1, x2, x3, x4) = (x1, f x2, x3, x4)
+fun aptrd4 f (x1, x2, x3, x4) = (x1, x2, f x3, x4)
+fun apfourth4 f (x1, x2, x3, x4) = (x1, x2, x3, f x4)
+fun appair f g (x, y) = (f x, g x)
+
+val no_compilation = ((false, []), (false, []), (false, []), (false, []))
+
 fun fetch_pred_data thy name =
   case try (Inductive.the_inductive (ProofContext.init thy)) name of
     SOME (info as (_, result)) => 
@@ -576,19 +620,13 @@
           (mk_casesrule (ProofContext.init thy) pred nparams intros)
         val (intros, elim) = (*if null intros then noclause thy name elim else*) (intros, elim)
       in
-        mk_pred_data ((intros, SOME elim, nparams), ([], [], []))
-      end                                                                    
+        mk_pred_data ((intros, SOME elim, nparams), no_compilation)
+      end
   | NONE => error ("No such predicate: " ^ quote name)
 
-(* updaters *)
-
-fun apfst3 f (x, y, z) =  (f x, y, z)
-fun apsnd3 f (x, y, z) =  (x, f y, z)
-fun aptrd3 f (x, y, z) =  (x, y, f z)
-
 fun add_predfun name mode data =
   let
-    val add = (apsnd o apfst3 o cons) (mode, mk_predfun_data data)
+    val add = (apsnd o apfst4) (fn (x, y) => (true, cons (mode, mk_predfun_data data) y))
   in PredData.map (Graph.map_node name (map_pred_data add)) end
 
 fun is_inductive_predicate thy name =
@@ -599,7 +637,8 @@
     val intros = (#intros o rep_pred_data) value
   in
     fold Term.add_const_names (map Thm.prop_of intros) []
-      |> filter (fn c => (not (c = key)) andalso (is_inductive_predicate thy c orelse is_registered thy c))
+      |> filter (fn c => (not (c = key)) andalso
+        (is_inductive_predicate thy c orelse is_registered thy c))
   end;
 
 
@@ -637,8 +676,9 @@
          (apfst (fn (intros, elim, nparams) => (intros @ [thm], elim, nparams)))) gr
      | NONE =>
        let
-         val nparams = the_default (guess_nparams T)  (try (#nparams o rep_pred_data o (fetch_pred_data thy)) name)
-       in Graph.new_node (name, mk_pred_data (([thm], NONE, nparams), ([], [], []))) gr end;
+         val nparams = the_default (guess_nparams T)
+           (try (#nparams o rep_pred_data o (fetch_pred_data thy)) name)
+       in Graph.new_node (name, mk_pred_data (([thm], NONE, nparams), no_compilation)) gr end;
   in PredData.map cons_intro thy end
 
 fun set_elim thm = let
@@ -659,7 +699,8 @@
   in
     if not (member (op =) (Graph.keys (PredData.get thy)) constname) then
       PredData.map
-        (Graph.new_node (constname, mk_pred_data ((intros, SOME elim, nparams), ([], [], [])))) thy
+        (Graph.new_node (constname,
+          mk_pred_data ((intros, SOME elim, nparams), no_compilation))) thy
     else thy
   end
 
@@ -679,16 +720,24 @@
       (mk_casesrule (ProofContext.init thy) pred nparams pre_intros)
   in register_predicate (constname, pre_intros, pre_elim, nparams) thy end
 
-fun set_generator_name pred mode name = 
+fun set_random_function_name pred mode name = 
   let
-    val set = (apsnd o apsnd3 o cons) (mode, mk_function_data (name, NONE))
+    val set = (apsnd o apsnd4) (fn (x, y) => (true, cons (mode, mk_function_data (name, NONE)) y))
   in
     PredData.map (Graph.map_node pred (map_pred_data set))
   end
 
 fun set_depth_limited_function_name pred mode name = 
   let
-    val set = (apsnd o aptrd3 o cons) (mode, mk_function_data (name, NONE))
+    val set = (apsnd o aptrd4) (fn (x, y) => (true, cons (mode, mk_function_data (name, NONE)) y))
+  in
+    PredData.map (Graph.map_node pred (map_pred_data set))
+  end
+
+fun set_annotated_function_name pred mode name =
+  let
+    val set = (apsnd o apfourth4)
+      (fn (x, y) => (true, cons (mode, mk_function_data (name, NONE)) y))
   in
     PredData.map (Graph.map_node pred (map_pred_data set))
   end
@@ -715,19 +764,6 @@
 fun mk_not (CompilationFuns funs) = #mk_not funs
 fun mk_map (CompilationFuns funs) = #mk_map funs
 
-fun funT_of compfuns (iss, is) T =
-  let
-    val Ts = binder_types T
-    val (paramTs, (inargTs, outargTs)) = split_modeT (iss, is) Ts
-    val paramTs' = map2 (fn NONE => I | SOME is => funT_of compfuns ([], is)) iss paramTs
-  in
-    (paramTs' @ inargTs) ---> (mk_predT compfuns (HOLogic.mk_tupleT outargTs))
-  end;
-
-fun mk_fun_of compfuns thy (name, T) mode = 
-  Const (predfun_name_of thy name mode, funT_of compfuns mode T)
-
-
 structure PredicateCompFuns =
 struct
 
@@ -815,9 +851,9 @@
 fun mk_map T1 T2 tf tp = Const (@{const_name Quickcheck.map},
   (T1 --> T2) --> mk_randompredT T1 --> mk_randompredT T2) $ tf $ tp
 
-val compfuns = CompilationFuns {mk_predT = mk_randompredT, dest_predT = dest_randompredT, mk_bot = mk_bot,
-    mk_single = mk_single, mk_bind = mk_bind, mk_sup = mk_sup, mk_if = mk_if, mk_not = mk_not,
-    mk_map = mk_map};
+val compfuns = CompilationFuns {mk_predT = mk_randompredT, dest_predT = dest_randompredT,
+    mk_bot = mk_bot, mk_single = mk_single, mk_bind = mk_bind, mk_sup = mk_sup, mk_if = mk_if,
+    mk_not = mk_not, mk_map = mk_map};
 
 end;
 (* for external use with interactive mode *)
@@ -829,25 +865,41 @@
     val T = dest_randomT (fastype_of random)
   in
     Const (@{const_name Quickcheck.Random}, (@{typ Random.seed} -->
-      HOLogic.mk_prodT (HOLogic.mk_prodT (T, @{typ "unit => term"}), @{typ Random.seed})) --> 
+      HOLogic.mk_prodT (HOLogic.mk_prodT (T, @{typ "unit => term"}), @{typ Random.seed})) -->
       RandomPredCompFuns.mk_randompredT T) $ random
   end;
 
+(* function types and names of different compilations *)
+
+fun funT_of compfuns (iss, is) T =
+  let
+    val Ts = binder_types T
+    val (paramTs, (inargTs, outargTs)) = split_modeT (iss, is) Ts
+    val paramTs' = map2 (fn NONE => I | SOME is => funT_of compfuns ([], is)) iss paramTs
+  in
+    (paramTs' @ inargTs) ---> (mk_predT compfuns (HOLogic.mk_tupleT outargTs))
+  end;
+
 fun depth_limited_funT_of compfuns (iss, is) T =
   let
     val Ts = binder_types T
     val (paramTs, (inargTs, outargTs)) = split_modeT (iss, is) Ts
-    val paramTs' = map2 (fn SOME is => depth_limited_funT_of compfuns ([], is) | NONE => I) iss paramTs 
+    val paramTs' =
+      map2 (fn SOME is => depth_limited_funT_of compfuns ([], is) | NONE => I) iss paramTs
   in
     (paramTs' @ inargTs @ [@{typ bool}, @{typ "code_numeral"}])
       ---> (mk_predT compfuns (HOLogic.mk_tupleT outargTs))
-  end;  
+  end;
 
-fun mk_depth_limited_fun_of compfuns thy (name, T) mode =
-  Const (depth_limited_function_name_of thy name mode, depth_limited_funT_of compfuns mode T)
-  
-fun mk_generator_of compfuns thy (name, T) mode = 
-  Const (generator_name_of thy name mode, depth_limited_funT_of compfuns mode T)
+fun random_function_funT_of (iss, is) T =
+  let
+    val Ts = binder_types T
+    val (paramTs, (inargTs, outargTs)) = split_modeT (iss, is) Ts
+    val paramTs' = map2 (fn SOME is => random_function_funT_of ([], is) | NONE => I) iss paramTs
+  in
+    (paramTs' @ inargTs @ [@{typ code_numeral}]) --->
+      (mk_predT RandomPredCompFuns.compfuns (HOLogic.mk_tupleT outargTs))
+  end
 
 (* Mode analysis *)
 
@@ -860,7 +912,8 @@
     fun check t = (case strip_comb t of
         (Free _, []) => true
       | (Const (s, T), ts) => (case (AList.lookup (op =) cnstrs s, body_type T) of
-            (SOME (i, Tname), Type (Tname', _)) => length ts = i andalso Tname = Tname' andalso forall check ts
+            (SOME (i, Tname), Type (Tname', _)) =>
+              length ts = i andalso Tname = Tname' andalso forall check ts
           | _ => false)
       | _ => false)
   in check end;
@@ -993,11 +1046,14 @@
                   (filter_out (equal p) ps)
               | _ =>
                   let 
-                    val all_generator_vs = all_subsets (subtract (op =) vs prem_vs) |> sort (int_ord o (pairself length))
+                    val all_generator_vs = all_subsets (subtract (op =) vs prem_vs)
+                      |> sort (int_ord o (pairself length))
                   in
                     case (find_first (fn generator_vs => is_some
-                      (select_mode_prem thy modes' (union (op =) vs generator_vs) ps)) all_generator_vs) of
-                      SOME generator_vs => check_mode_prems ((map (generator vTs) generator_vs) @ acc_ps)
+                      (select_mode_prem thy modes' (union (op =) vs generator_vs) ps))
+                        all_generator_vs) of
+                      SOME generator_vs => check_mode_prems
+                        ((map (generator vTs) generator_vs) @ acc_ps)
                         (union (op =) vs generator_vs) ps
                     | NONE => NONE
                   end)
@@ -1073,14 +1129,14 @@
   let
     val prednames = map fst clauses
     val extra_modes' = all_modes_of thy
-    val gen_modes = all_generator_modes_of thy
+    val gen_modes = all_random_modes_of thy
       |> filter_out (fn (name, _) => member (op =) prednames name)
     val starting_modes = remove_from extra_modes' all_modes
     fun eq_mode (m1, m2) = (m1 = m2)
     val modes =
       fixp (fn modes =>
-        map (check_modes_pred options true thy param_vs clauses extra_modes' (gen_modes @ modes)) modes)
-         starting_modes
+        map (check_modes_pred options true thy param_vs clauses extra_modes'
+          (gen_modes @ modes)) modes) starting_modes
   in
     AList.join (op =)
     (fn _ => fn ((mps1, mps2)) =>
@@ -1169,7 +1225,9 @@
 
 datatype comp_modifiers = Comp_Modifiers of
 {
-  const_name_of : theory -> string -> Predicate_Compile_Aux.mode -> string,
+  function_name_of : theory -> string -> Predicate_Compile_Aux.mode -> string,
+  set_function_name : string -> Predicate_Compile_Aux.mode -> string -> theory -> theory,
+  function_name_prefix : string,
   funT_of : compilation_funs -> mode -> typ -> typ,
   additional_arguments : string list -> term list,
   wrap_compilation : compilation_funs -> string -> typ -> mode -> term list -> term -> term,
@@ -1178,7 +1236,9 @@
 
 fun dest_comp_modifiers (Comp_Modifiers c) = c
 
-val const_name_of = #const_name_of o dest_comp_modifiers
+val function_name_of = #function_name_of o dest_comp_modifiers
+val set_function_name = #set_function_name o dest_comp_modifiers
+val function_name_prefix = #function_name_prefix o dest_comp_modifiers
 val funT_of = #funT_of o dest_comp_modifiers
 val additional_arguments = #additional_arguments o dest_comp_modifiers
 val wrap_compilation = #wrap_compilation o dest_comp_modifiers
@@ -1200,7 +1260,8 @@
       | map_params t = t
     in map_aterms map_params arg end
 
-fun compile_match compilation_modifiers compfuns additional_arguments param_vs iss thy eqs eqs' out_ts success_t =
+fun compile_match compilation_modifiers compfuns additional_arguments
+  param_vs iss thy eqs eqs' out_ts success_t =
   let
     val eqs'' = maps mk_eq eqs @ eqs'
     val eqs'' =
@@ -1243,7 +1304,7 @@
      val params' = map (compile_param compilation_modifiers compfuns thy) (ms ~~ params)
      val f' =
        case f of
-         Const (name, T) => Const (Comp_Mod.const_name_of compilation_modifiers thy name mode,
+         Const (name, T) => Const (Comp_Mod.function_name_of compilation_modifiers thy name mode,
            Comp_Mod.funT_of compilation_modifiers compfuns mode T)
        | Free (name, T) => Free (name, Comp_Mod.funT_of compilation_modifiers compfuns mode T)
        | _ => error ("PredicateCompiler: illegal parameter term")
@@ -1251,23 +1312,26 @@
      list_comb (f', params' @ args')
    end
 
-fun compile_expr compilation_modifiers compfuns thy ((Mode (mode, _, ms)), t) inargs additional_arguments =
+fun compile_expr compilation_modifiers compfuns thy ((Mode (mode, _, ms)), t)
+  inargs additional_arguments =
   case strip_comb t of
     (Const (name, T), params) =>
        let
          val params' = map (compile_param compilation_modifiers compfuns thy) (ms ~~ params)
-           (*val mk_fun_of = if depth_limited then mk_depth_limited_fun_of else mk_fun_of*)
-         val name' = Comp_Mod.const_name_of compilation_modifiers thy name mode
+         val name' = Comp_Mod.function_name_of compilation_modifiers thy name mode
          val T' = Comp_Mod.funT_of compilation_modifiers compfuns mode T
        in
          (list_comb (Const (name', T'), params' @ inargs @ additional_arguments))
        end
   | (Free (name, T), params) =>
-    list_comb (Free (name, Comp_Mod.funT_of compilation_modifiers compfuns mode T), params @ inargs @ additional_arguments)
+    list_comb (Free (name, Comp_Mod.funT_of compilation_modifiers compfuns mode T),
+      params @ inargs @ additional_arguments)
 
-fun compile_clause compilation_modifiers compfuns thy all_vs param_vs additional_arguments (iss, is) inp (ts, moded_ps) =
+fun compile_clause compilation_modifiers compfuns thy all_vs param_vs additional_arguments
+  (iss, is) inp (ts, moded_ps) =
   let
-    val compile_match = compile_match compilation_modifiers compfuns additional_arguments param_vs iss thy
+    val compile_match = compile_match compilation_modifiers compfuns
+      additional_arguments param_vs iss thy
     fun check_constrt t (names, eqs) =
       if is_constrt thy t then (t, (names, eqs)) else
         let
@@ -1302,10 +1366,11 @@
                Prem (us, t) =>
                  let
                    val (in_ts, out_ts''') = split_smode is us;
-                   val in_ts = map (compile_arg compilation_modifiers compfuns additional_arguments
-                     thy param_vs iss) in_ts
+                   val in_ts = map (compile_arg compilation_modifiers compfuns
+                     additional_arguments thy param_vs iss) in_ts
                    val u =
-                     compile_expr compilation_modifiers compfuns thy (mode, t) in_ts additional_arguments'
+                     compile_expr compilation_modifiers compfuns thy
+                       (mode, t) in_ts additional_arguments'
                    val rest = compile_prems out_ts''' vs' names'' ps
                  in
                    (u, rest)
@@ -1313,10 +1378,11 @@
              | Negprem (us, t) =>
                  let
                    val (in_ts, out_ts''') = split_smode is us
-                   val in_ts = map (compile_arg compilation_modifiers compfuns additional_arguments
-                     thy param_vs iss) in_ts
+                   val in_ts = map (compile_arg compilation_modifiers compfuns
+                     additional_arguments thy param_vs iss) in_ts
                    val u = mk_not compfuns
-                     (compile_expr compilation_modifiers compfuns thy (mode, t) in_ts additional_arguments')
+                     (compile_expr compilation_modifiers compfuns thy
+                       (mode, t) in_ts additional_arguments')
                    val rest = compile_prems out_ts''' vs' names'' ps
                  in
                    (u, rest)
@@ -1351,12 +1417,14 @@
     val (Ts1, Ts2) = chop (length (fst mode)) (binder_types T)
     val (Us1, Us2) = split_smodeT (snd mode) Ts2
     val Ts1' =
-      map2 (fn NONE => I | SOME is => Comp_Mod.funT_of compilation_modifiers compfuns ([], is)) (fst mode) Ts1
+      map2 (fn NONE => I | SOME is => Comp_Mod.funT_of compilation_modifiers compfuns ([], is))
+        (fst mode) Ts1
     fun mk_input_term (i, NONE) =
         [Free (Name.variant (all_vs @ param_vs) ("x" ^ string_of_int i), nth Ts2 (i - 1))]
       | mk_input_term (i, SOME pis) = case HOLogic.strip_tupleT (nth Ts2 (i - 1)) of
                [] => error "strange unit input"
-             | [T] => [Free (Name.variant (all_vs @ param_vs) ("x" ^ string_of_int i), nth Ts2 (i - 1))]
+             | [T] => [Free (Name.variant (all_vs @ param_vs)
+               ("x" ^ string_of_int i), nth Ts2 (i - 1))]
              | Ts => let
                val vnames = Name.variant_list (all_vs @ param_vs)
                 (map (fn j => "x" ^ string_of_int i ^ "p" ^ string_of_int j)
@@ -1365,16 +1433,18 @@
                else [HOLogic.mk_tuple (map Free (vnames ~~ map (fn j => nth Ts (j - 1)) pis))] end
     val in_ts = maps mk_input_term (snd mode)
     val params = map2 (fn s => fn T => Free (s, T)) param_vs Ts1'
-    val additional_arguments = Comp_Mod.additional_arguments compilation_modifiers (all_vs @ param_vs)
+    val additional_arguments = Comp_Mod.additional_arguments compilation_modifiers
+      (all_vs @ param_vs)
     val cl_ts =
       map (compile_clause compilation_modifiers compfuns
         thy all_vs param_vs additional_arguments mode (HOLogic.mk_tuple in_ts)) moded_cls;
-    val compilation = Comp_Mod.wrap_compilation compilation_modifiers compfuns s T mode additional_arguments
+    val compilation = Comp_Mod.wrap_compilation compilation_modifiers compfuns
+      s T mode additional_arguments
       (if null cl_ts then
         mk_bot compfuns (HOLogic.mk_tupleT Us2)
       else foldr1 (mk_sup compfuns) cl_ts)
     val fun_const =
-      Const (Comp_Mod.const_name_of compilation_modifiers thy s mode,
+      Const (Comp_Mod.function_name_of compilation_modifiers thy s mode,
         Comp_Mod.funT_of compilation_modifiers compfuns mode T)
   in
     HOLogic.mk_Trueprop
@@ -1399,7 +1469,8 @@
   val Ts = binder_types (fastype_of pred)
   val funtrm = Const (mode_id, funT)
   val (Ts1, Ts2) = chop (length iss) Ts;
-  val Ts1' = map2 (fn NONE => I | SOME is => funT_of (PredicateCompFuns.compfuns) ([], is)) iss Ts1
+  val Ts1' =
+    map2 (fn NONE => I | SOME is => funT_of (PredicateCompFuns.compfuns) ([], is)) iss Ts1
   val param_names = Name.variant_list []
     (map (fn i => "x" ^ string_of_int i) (1 upto (length Ts1)));
   val params = map Free (param_names ~~ Ts1')
@@ -1440,10 +1511,12 @@
   val simprules = [defthm, @{thm eval_pred},
     @{thm "split_beta"}, @{thm "fst_conv"}, @{thm "snd_conv"}, @{thm pair_collapse}]
   val unfolddef_tac = Simplifier.asm_full_simp_tac (HOL_basic_ss addsimps simprules) 1
-  val introthm = Goal.prove (ProofContext.init thy) (argnames @ param_names @ param_names' @ ["y"]) [] introtrm (fn {...} => unfolddef_tac)
+  val introthm = Goal.prove (ProofContext.init thy)
+    (argnames @ param_names @ param_names' @ ["y"]) [] introtrm (fn _ => unfolddef_tac)
   val P = HOLogic.mk_Trueprop (Free ("P", HOLogic.boolT));
   val elimtrm = Logic.list_implies ([funpropE, Logic.mk_implies (predpropE, P)], P)
-  val elimthm = Goal.prove (ProofContext.init thy) (argnames @ param_names @ param_names' @ ["y", "P"]) [] elimtrm (fn {...} => unfolddef_tac)
+  val elimthm = Goal.prove (ProofContext.init thy)
+    (argnames @ param_names @ param_names' @ ["y", "P"]) [] elimtrm (fn _ => unfolddef_tac)
 in
   (introthm, elimthm)
 end;
@@ -1451,7 +1524,8 @@
 fun create_constname_of_mode thy prefix name mode = 
   let
     fun string_of_mode mode = if null mode then "0"
-      else space_implode "_" (map (fn (i, NONE) => string_of_int i | (i, SOME pis) => string_of_int i ^ "p"
+      else space_implode "_"
+        (map (fn (i, NONE) => string_of_int i | (i, SOME pis) => string_of_int i ^ "p"
         ^ space_implode "p" (map string_of_int pis)) mode)
     val HOmode = space_implode "_and_"
       (fold (fn NONE => I | SOME mode => cons (string_of_mode mode)) (fst mode) [])
@@ -1525,7 +1599,9 @@
                val xin = Free (name_in, HOLogic.mk_tupleT Tins)
                val xout = Free (name_out, HOLogic.mk_tupleT Touts)
                val xarg = mk_arg xin xout pis T
-             in (((if null Tins then [] else [xin], if null Touts then [] else [xout]), xarg), name_in :: name_out :: names) end
+             in
+               (((if null Tins then [] else [xin],
+               if null Touts then [] else [xout]), xarg), name_in :: name_out :: names) end
              end
       val (xinoutargs, names) = fold_map mk_vars ((1 upto (length Ts2)) ~~ Ts2) param_names
       val (xinout, xargs) = split_list xinoutargs
@@ -1559,46 +1635,22 @@
     fold create_definition modes thy
   end;
 
-fun create_definitions_of_depth_limited_functions preds (name, modes) thy =
+fun define_functions comp_modifiers compfuns preds (name, modes) thy =
   let
     val T = AList.lookup (op =) preds name |> the
     fun create_definition mode thy =
       let
-        val mode_cname = create_constname_of_mode thy "depth_limited_" name mode
-        val funT = depth_limited_funT_of PredicateCompFuns.compfuns mode T
+        val function_name_prefix = Comp_Mod.function_name_prefix comp_modifiers
+        val mode_cname = create_constname_of_mode thy function_name_prefix name mode
+        val funT = Comp_Mod.funT_of comp_modifiers compfuns mode T
       in
         thy |> Sign.add_consts_i [(Binding.name (Long_Name.base_name mode_cname), funT, NoSyn)]
-        |> set_depth_limited_function_name name mode mode_cname 
+        |> Comp_Mod.set_function_name comp_modifiers name mode mode_cname
       end;
   in
     fold create_definition modes thy
   end;
 
-fun generator_funT_of (iss, is) T =
-  let
-    val Ts = binder_types T
-    val (paramTs, (inargTs, outargTs)) = split_modeT (iss, is) Ts
-    val paramTs' = map2 (fn SOME is => generator_funT_of ([], is) | NONE => I) iss paramTs
-  in
-    (paramTs' @ inargTs @ [@{typ code_numeral}]) --->
-      (mk_predT RandomPredCompFuns.compfuns (HOLogic.mk_tupleT outargTs))
-  end
-
-fun random_create_definitions preds (name, modes) thy =
-  let
-    val T = AList.lookup (op =) preds name |> the
-    fun create_definition mode thy =
-      let
-        val mode_cname = create_constname_of_mode thy "gen_" name mode
-        val funT = generator_funT_of mode T
-      in
-        thy |> Sign.add_consts_i [(Binding.name (Long_Name.base_name mode_cname), funT, NoSyn)]
-        |> set_generator_name name mode mode_cname
-      end;
-  in
-    fold create_definition modes thy
-  end;
-  
 (* Proving equivalence of term *)
 
 fun is_Type (Type _) = true
@@ -1748,7 +1800,8 @@
             in
               rtac @{thm bindI} 1
               THEN (if (is_some name) then
-                  simp_tac (HOL_basic_ss addsimps [predfun_definition_of thy (the name) (iss, is)]) 1
+                  simp_tac (HOL_basic_ss addsimps
+                    [predfun_definition_of thy (the name) (iss, is)]) 1
                   THEN rtac @{thm not_predI} 1
                   THEN simp_tac (HOL_basic_ss addsimps [@{thm not_False_eq_True}]) 1
                   THEN (REPEAT_DETERM (atac 1))
@@ -1819,14 +1872,16 @@
         THEN (print_tac "after splitting with split_asm rules")
         (* THEN (Simplifier.asm_full_simp_tac HOL_basic_ss 1)
           THEN (DETERM (TRY (etac @{thm Pair_inject} 1)))*)
-          THEN (REPEAT_DETERM_N (num_of_constrs - 1) (etac @{thm botE} 1 ORELSE etac @{thm botE} 2)))
+          THEN (REPEAT_DETERM_N (num_of_constrs - 1)
+            (etac @{thm botE} 1 ORELSE etac @{thm botE} 2)))
         THEN (assert_tac (Max_number_of_subgoals 2))
         THEN (EVERY (map split_term_tac ts))
       end
     else all_tac
   in
     split_term_tac (HOLogic.mk_tuple out_ts)
-    THEN (DETERM (TRY ((Splitter.split_asm_tac [@{thm "split_if_asm"}] 1) THEN (etac @{thm botE} 2))))
+    THEN (DETERM (TRY ((Splitter.split_asm_tac [@{thm "split_if_asm"}] 1)
+    THEN (etac @{thm botE} 2))))
   end
 
 (* VERY LARGE SIMILIRATIY to function prove_param 
@@ -1906,7 +1961,8 @@
       THEN (print_tac "state before assumption matching")
       THEN (REPEAT (atac 1 ORELSE 
          (CHANGED (asm_full_simp_tac (HOL_basic_ss' addsimps
-           [@{thm split_eta}, @{thm "split_beta"}, @{thm "fst_conv"}, @{thm "snd_conv"}, @{thm pair_collapse}]) 1)
+           [@{thm split_eta}, @{thm "split_beta"}, @{thm "fst_conv"},
+             @{thm "snd_conv"}, @{thm pair_collapse}]) 1)
           THEN print_tac "state after simp_tac:"))))
     | prove_prems2 out_ts ((p, mode as Mode ((iss, is), _, param_modes)) :: ps) =
       let
@@ -1928,7 +1984,8 @@
             print_tac "before neg prem 2"
             THEN etac @{thm bindE} 1
             THEN (if is_some name then
-                full_simp_tac (HOL_basic_ss addsimps [predfun_definition_of thy (the name) (iss, is)]) 1 
+                full_simp_tac (HOL_basic_ss addsimps
+                  [predfun_definition_of thy (the name) (iss, is)]) 1
                 THEN etac @{thm not_predE} 1
                 THEN simp_tac (HOL_basic_ss addsimps [@{thm not_False_eq_True}]) 1
                 THEN (EVERY (map (prove_param2 thy) (param_modes ~~ params)))
@@ -2023,9 +2080,10 @@
 fun dest_prem thy params t =
   (case strip_comb t of
     (v as Free _, ts) => if v mem params then Prem (ts, v) else Sidecond t
-  | (c as Const (@{const_name Not}, _), [t]) => (case dest_prem thy params t of          
+  | (c as Const (@{const_name Not}, _), [t]) => (case dest_prem thy params t of
       Prem (ts, t) => Negprem (ts, t)
-    | Negprem _ => error ("Double negation not allowed in premise: " ^ (Syntax.string_of_term_global thy (c $ t))) 
+    | Negprem _ => error ("Double negation not allowed in premise: " ^
+        Syntax.string_of_term_global thy (c $ t)) 
     | Sidecond t => Sidecond (c $ t))
   | (c as Const (s, _), ts) =>
     if is_registered thy s then
@@ -2040,14 +2098,17 @@
     val nparams = nparams_of thy (hd prednames)
     val preds = map (fn c => Const (c, Sign.the_const_type thy c)) prednames
     val (preds, intrs) = unify_consts thy preds intrs
-    val ([preds, intrs], _) = fold_burrow (Variable.import_terms false) [preds, intrs] (ProofContext.init thy)
+    val ([preds, intrs], _) = fold_burrow (Variable.import_terms false) [preds, intrs]
+      (ProofContext.init thy)
     val preds = map dest_Const preds
-    val extra_modes = all_modes_of thy |> filter_out (fn (name, _) => member (op =) prednames name)
+    val extra_modes = all_modes_of thy
+      |> filter_out (fn (name, _) => member (op =) prednames name)
     val params = case intrs of
         [] =>
           let
             val (paramTs, _) = chop nparams (binder_types (snd (hd preds)))
-            val param_names = Name.variant_list [] (map (fn i => "p" ^ string_of_int i) (1 upto length paramTs))
+            val param_names = Name.variant_list [] (map (fn i => "p" ^ string_of_int i)
+              (1 upto length paramTs))
           in map Free (param_names ~~ paramTs) end
       | intr :: _ => fst (chop nparams
         (snd (strip_comb (HOLogic.dest_Trueprop (Logic.strip_imp_concl intr)))))
@@ -2083,12 +2144,13 @@
               [] => [(i + 1, NONE)]
             | [U] => [(i + 1, NONE)]
             | Us =>  (i + 1, NONE) ::
-              (map (pair (i + 1) o SOME) (subtract (op =) [[], 1 upto (length Us)] (subsets 1 (length Us)))))
+              (map (pair (i + 1) o SOME)
+                (subtract (op =) [[], 1 upto (length Us)] (subsets 1 (length Us)))))
           Ts)
       in
         cprod (cprods (map (fn T => case strip_type T of
-          (Rs as _ :: _, Type ("bool", [])) => map SOME (all_smodes_of_typs Rs) | _ => [NONE]) Ts),
-           all_smodes_of_typs Us)
+          (Rs as _ :: _, Type ("bool", [])) =>
+            map SOME (all_smodes_of_typs Rs) | _ => [NONE]) Ts), all_smodes_of_typs Us)
       end
     val all_modes = map (fn (s, T) => (s, modes_of_typ T)) preds
   in (preds, nparams, all_vs, param_vs, extra_modes, clauses, all_modes) end;
@@ -2157,7 +2219,7 @@
             val eq_term = HOLogic.mk_Trueprop
               (HOLogic.mk_eq (list_comb (Const (predname, T), args), rhs))
             val def = predfun_definition_of thy predname full_mode
-            val tac = fn {...} => Simplifier.simp_tac
+            val tac = fn _ => Simplifier.simp_tac
               (HOL_basic_ss addsimps [def, @{thm eval_pred}]) 1
             val eq = Goal.prove (ProofContext.init thy) arg_names [] eq_term tac
           in
@@ -2176,7 +2238,7 @@
   {
   compile_preds : theory -> string list -> string list -> (string * typ) list
     -> (moded_clause list) pred_mode_table -> term pred_mode_table,
-  create_definitions: (string * typ) list -> string * mode list -> theory -> theory,
+  define_functions : (string * typ) list -> string * mode list -> theory -> theory,
   infer_modes : options -> theory -> (string * mode list) list -> (string * mode list) list
     -> string list -> (string * (term list * indprem list) list) list
     -> moded_clause list pred_mode_table,
@@ -2185,7 +2247,7 @@
     -> moded_clause list pred_mode_table -> term pred_mode_table -> thm pred_mode_table,
   add_code_equations : theory -> int -> (string * typ) list
     -> (string * thm list) list -> (string * thm list) list,
-  are_not_defined : theory -> string list -> bool,
+  defined : theory -> string -> bool,
   qname : bstring
   }
 
@@ -2193,19 +2255,21 @@
 fun add_equations_of steps options prednames thy =
   let
     fun dest_steps (Steps s) = s
-    val _ = print_step options ("Starting predicate compiler for predicates " ^ commas prednames ^ "...")
+    val _ = print_step options
+      ("Starting predicate compiler for predicates " ^ commas prednames ^ "...")
       (*val _ = check_intros_elim_match thy prednames*)
       (*val _ = map (check_format_of_intro_rule thy) (maps (intros_of thy) prednames)*)
     val (preds, nparams, all_vs, param_vs, extra_modes, clauses, all_modes) =
       prepare_intrs thy prednames (maps (intros_of thy) prednames)
     val _ = print_step options "Infering modes..."
-    val moded_clauses = #infer_modes (dest_steps steps) options thy extra_modes all_modes param_vs clauses 
+    val moded_clauses =
+      #infer_modes (dest_steps steps) options thy extra_modes all_modes param_vs clauses
     val modes = map (fn (p, mps) => (p, map fst mps)) moded_clauses
     val _ = check_expected_modes options modes
     val _ = print_modes options modes
       (*val _ = print_moded_clauses thy moded_clauses*)
     val _ = print_step options "Defining executable functions..."
-    val thy' = fold (#create_definitions (dest_steps steps) preds) modes thy
+    val thy' = fold (#define_functions (dest_steps steps) preds) modes thy
       |> Theory.checkpoint
     val _ = print_step options "Compiling equations..."
     val compiled_terms =
@@ -2232,7 +2296,8 @@
     val (G', v) = case try (Graph.get_node G) key of
         SOME v => (G, v)
       | NONE => (Graph.new_node (key, value_of key) G, value_of key)
-    val (G'', visited') = fold (extend' value_of edges_of) (subtract (op =) visited (edges_of (key, v)))
+    val (G'', visited') = fold (extend' value_of edges_of)
+      (subtract (op =) visited (edges_of (key, v)))
       (G', key :: visited)
   in
     (fold (Graph.add_edge o (pair key)) (edges_of (key, v)) G'', visited')
@@ -2243,22 +2308,26 @@
 fun gen_add_equations steps options names thy =
   let
     fun dest_steps (Steps s) = s
-    val thy' = PredData.map (fold (extend (fetch_pred_data thy) (depending_preds_of thy)) names) thy
+    val thy' = thy
+      |> PredData.map (fold (extend (fetch_pred_data thy) (depending_preds_of thy)) names)
       |> Theory.checkpoint;
     fun strong_conn_of gr keys =
       Graph.strong_conn (Graph.subgraph (member (op =) (Graph.all_succs gr keys)) gr)
     val scc = strong_conn_of (PredData.get thy') names
     val thy'' = fold_rev
       (fn preds => fn thy =>
-        if #are_not_defined (dest_steps steps) thy preds then
-          add_equations_of steps options preds thy else thy)
+        if not (forall (#defined (dest_steps steps) thy) preds) then
+          add_equations_of steps options preds thy
+        else thy)
       scc thy' |> Theory.checkpoint
   in thy'' end
 
 (* different instantiantions of the predicate compiler *)
 
 val predicate_comp_modifiers = Comp_Mod.Comp_Modifiers
-  {const_name_of = predfun_name_of : (theory -> string -> mode -> string),
+  {function_name_of = predfun_name_of : (theory -> string -> mode -> string),
+  set_function_name = (fn _ => fn _ => fn _ => I),
+  function_name_prefix = "",
   funT_of = funT_of : (compilation_funs -> mode -> typ -> typ),
   additional_arguments = K [],
   wrap_compilation = K (K (K (K (K I))))
@@ -2267,8 +2336,10 @@
   }
 
 val depth_limited_comp_modifiers = Comp_Mod.Comp_Modifiers
-  {const_name_of = depth_limited_function_name_of,
+  {function_name_of = depth_limited_function_name_of,
+  set_function_name = set_depth_limited_function_name,
   funT_of = depth_limited_funT_of : (compilation_funs -> mode -> typ -> typ),
+  function_name_prefix = "depth_limited_",
   additional_arguments = fn names =>
     let
       val [depth_name, polarity_name] = Name.variant_list names ["depth", "polarity"]
@@ -2285,7 +2356,8 @@
     in
       if_const $ HOLogic.mk_eq (depth, @{term "0 :: code_numeral"})
         $ (if_const $ polarity $ mk_bot compfuns (dest_predT compfuns T')
-          $ (if full_mode then mk_single compfuns HOLogic.unit else Const (@{const_name undefined}, T')))
+          $ (if full_mode then mk_single compfuns HOLogic.unit else
+            Const (@{const_name undefined}, T')))
         $ compilation
     end,
   transform_additional_arguments =
@@ -2300,39 +2372,62 @@
   }
 
 val random_comp_modifiers = Comp_Mod.Comp_Modifiers
-  {const_name_of = generator_name_of,
-  funT_of = K generator_funT_of : (compilation_funs -> mode -> typ -> typ),
+  {function_name_of = random_function_name_of,
+  set_function_name = set_random_function_name,
+  function_name_prefix = "random",
+  funT_of = K random_function_funT_of : (compilation_funs -> mode -> typ -> typ),
   additional_arguments = fn names => [Free (Name.variant names "size", @{typ code_numeral})],
   wrap_compilation = K (K (K (K (K I))))
     : (compilation_funs -> string -> typ -> mode -> term list -> term -> term),
   transform_additional_arguments = K I : (indprem -> term list -> term list)
   }
 
+val annotated_comp_modifiers = Comp_Mod.Comp_Modifiers
+  {function_name_of = annotated_function_name_of,
+  set_function_name = set_annotated_function_name,
+  function_name_prefix = "annotated",
+  funT_of = funT_of : (compilation_funs -> mode -> typ -> typ),
+  additional_arguments = K [],
+  wrap_compilation =
+    fn compfuns => fn s => fn T => fn mode => fn additional_arguments => fn compilation =>
+      mk_tracing ("calling predicate " ^ s ^ " with mode " ^ string_of_mode mode) compilation,
+  transform_additional_arguments = K I : (indprem -> term list -> term list)
+  }
+
 val add_equations = gen_add_equations
   (Steps {infer_modes = infer_modes,
-  create_definitions = create_definitions,
+  define_functions = create_definitions,
   compile_preds = compile_preds predicate_comp_modifiers PredicateCompFuns.compfuns,
   prove = prove,
   add_code_equations = add_code_equations,
-  are_not_defined = fn thy => forall (null o modes_of thy),
+  defined = defined_functions,
   qname = "equation"})
 
 val add_depth_limited_equations = gen_add_equations
   (Steps {infer_modes = infer_modes,
-  create_definitions = create_definitions_of_depth_limited_functions,
+  define_functions = define_functions depth_limited_comp_modifiers PredicateCompFuns.compfuns,
   compile_preds = compile_preds depth_limited_comp_modifiers PredicateCompFuns.compfuns,
   prove = prove_by_skip,
   add_code_equations = K (K (K I)),
-  are_not_defined = fn thy => forall (null o depth_limited_modes_of thy),
+  defined = defined_depth_limited_functions,
   qname = "depth_limited_equation"})
 
+val add_annotated_equations = gen_add_equations
+  (Steps {infer_modes = infer_modes,
+  define_functions = define_functions annotated_comp_modifiers PredicateCompFuns.compfuns,
+  compile_preds = compile_preds annotated_comp_modifiers PredicateCompFuns.compfuns,
+  prove = prove_by_skip,
+  add_code_equations = K (K (K I)),
+  defined = defined_annotated_functions,
+  qname = "annotated_equation"})
+
 val add_quickcheck_equations = gen_add_equations
   (Steps {infer_modes = infer_modes_with_generator,
-  create_definitions = random_create_definitions,
+  define_functions = define_functions random_comp_modifiers RandomPredCompFuns.compfuns,
   compile_preds = compile_preds random_comp_modifiers RandomPredCompFuns.compfuns,
   prove = prove_by_skip,
   add_code_equations = K (K (K I)),
-  are_not_defined = fn thy => forall (null o random_modes_of thy),
+  defined = defined_random_functions,
   qname = "random_equation"})
 
 (** user interface **)
@@ -2392,6 +2487,8 @@
             add_quickcheck_equations options [const])
            else if is_depth_limited options then
              add_depth_limited_equations options [const]
+           else if is_annotated options then
+             add_annotated_equations options [const]
            else
              add_equations options [const]))
       end
@@ -2405,11 +2502,12 @@
 (* transformation for code generation *)
 
 val eval_ref = Unsynchronized.ref (NONE : (unit -> term Predicate.pred) option);
-val random_eval_ref = Unsynchronized.ref (NONE : (unit -> int * int -> term Predicate.pred * (int * int)) option);
+val random_eval_ref =
+  Unsynchronized.ref (NONE : (unit -> int * int -> term Predicate.pred * (int * int)) option);
 
 (*FIXME turn this into an LCF-guarded preprocessor for comprehensions*)
-(* TODO: *)
-fun analyze_compr thy compfuns (depth_limit, random) t_compr =
+(* TODO: make analyze_compr generic with respect to the compilation modifiers*)
+fun analyze_compr thy compfuns param_user_modes (depth_limit, (random, annotated)) t_compr =
   let
     val split = case t_compr of (Const (@{const_name Collect}, _) $ t) => t
       | _ => error ("Not a set comprehension: " ^ Syntax.string_of_term_global thy t_compr);
@@ -2420,9 +2518,17 @@
       (fn (i, t) => case t of Bound j => if j < length Ts then NONE
         else SOME (i+1) | _ => SOME (i+1)) args); (*FIXME dangling bounds should not occur*)
     val user_mode' = map (rpair NONE) user_mode
-    val all_modes_of = if random then all_generator_modes_of else all_modes_of
-      (*val compile_expr = if random then compile_gen_expr else compile_expr*)
-    val modes = filter (fn Mode (_, is, _) => is = user_mode')
+    val all_modes_of = if random then all_random_modes_of else all_modes_of
+    fun fits_to is NONE = true
+      | fits_to is (SOME pm) = (is = pm)
+    fun valid ((SOME (Mode (_, is, ms))) :: ms') (pm :: pms) =
+        fits_to is pm andalso valid (ms @ ms') pms
+      | valid (NONE :: ms') pms = valid ms' pms
+      | valid [] [] = true
+      | valid [] _ = error "Too many mode annotations"
+      | valid (SOME _ :: _) [] = error "Not enough mode annotations"
+    val modes = filter (fn Mode (_, is, ms) => is = user_mode'
+        andalso (the_default true (Option.map (valid ms) param_user_modes)))
       (modes_of_term (all_modes_of thy) (list_comb (pred, params)));
     val m = case modes
      of [] => error ("No mode possible for comprehension "
@@ -2436,10 +2542,11 @@
         NONE => (if random then [@{term "5 :: code_numeral"}] else [])
       | SOME d => [@{term "True"}, HOLogic.mk_number @{typ "code_numeral"} d]
     val comp_modifiers =
-      case depth_limit of NONE => 
-      (if random then random_comp_modifiers else predicate_comp_modifiers) | SOME _ => depth_limited_comp_modifiers
-    val mk_fun_of = if random then mk_generator_of else
-      if (is_some depth_limit) then mk_depth_limited_fun_of else mk_fun_of
+      case depth_limit of
+        NONE =>
+          (if random then random_comp_modifiers else
+           if annotated then annotated_comp_modifiers else predicate_comp_modifiers)
+      | SOME _ => depth_limited_comp_modifiers
     val t_pred = compile_expr comp_modifiers compfuns thy
       (m, list_comb (pred, params)) inargs additional_arguments;
     val t_eval = if null outargs then t_pred else
@@ -2457,10 +2564,10 @@
       in mk_map compfuns T_pred T_compr arrange t_pred end
   in t_eval end;
 
-fun eval thy (options as (depth_limit, random)) t_compr =
+fun eval thy param_user_modes (options as (depth_limit, (random, annotated))) t_compr =
   let
     val compfuns = if random then RandomPredCompFuns.compfuns else PredicateCompFuns.compfuns
-    val t = analyze_compr thy compfuns options t_compr;
+    val t = analyze_compr thy compfuns param_user_modes options t_compr;
     val T = dest_predT compfuns (fastype_of t);
     val t' = mk_map compfuns T HOLogic.termT (HOLogic.term_of_const T) t;
     val eval =
@@ -2472,15 +2579,16 @@
         Code_ML.eval NONE ("Predicate_Compile_Core.eval_ref", eval_ref) Predicate.map thy t' []
   in (T, eval) end;
 
-fun values ctxt options k t_compr =
+fun values ctxt param_user_modes options k t_compr =
   let
     val thy = ProofContext.theory_of ctxt;
-    val (T, ts) = eval thy options t_compr;
+    val (T, ts) = eval thy param_user_modes options t_compr;
     val (ts, _) = Predicate.yieldn k ts;
     val setT = HOLogic.mk_setT T;
     val elemsT = HOLogic.mk_set T ts;
+    val cont = Free ("...", setT)
   in if k = ~1 orelse length ts < k then elemsT
-    else Const (@{const_name Set.union}, setT --> setT --> setT) $ elemsT $ t_compr
+    else Const (@{const_name Set.union}, setT --> setT --> setT) $ elemsT $ cont
   end;
   (*
 fun random_values ctxt k t = 
@@ -2490,35 +2598,16 @@
   in
   end;
   *)
-fun values_cmd modes options k raw_t state =
+fun values_cmd print_modes param_user_modes options k raw_t state =
   let
     val ctxt = Toplevel.context_of state;
     val t = Syntax.read_term ctxt raw_t;
-    val t' = values ctxt options k t;
+    val t' = values ctxt param_user_modes options k t;
     val ty' = Term.type_of t';
     val ctxt' = Variable.auto_fixes t' ctxt;
-    val p = PrintMode.with_modes modes (fn () =>
+    val p = PrintMode.with_modes print_modes (fn () =>
       Pretty.block [Pretty.quote (Syntax.pretty_term ctxt' t'), Pretty.fbrk,
         Pretty.str "::", Pretty.brk 1, Pretty.quote (Syntax.pretty_typ ctxt' ty')]) ();
   in Pretty.writeln p end;
 
-local structure P = OuterParse in
-
-val opt_modes = Scan.optional (P.$$$ "(" |-- P.!!! (Scan.repeat1 P.xname --| P.$$$ ")")) [];
-
-val options =
-  let
-    val depth_limit = Scan.optional (Args.$$$ "depth_limit" |-- P.$$$ "=" |-- P.nat >> SOME) NONE
-    val random = Scan.optional (Args.$$$ "random" >> K true) false
-  in
-    Scan.optional (P.$$$ "[" |-- depth_limit -- random --| P.$$$ "]") (NONE, false)
-  end
-
-val _ = OuterSyntax.improper_command "values" "enumerate and print comprehensions" OuterKeyword.diag
-  (opt_modes -- options -- Scan.optional P.nat ~1 -- P.term
-    >> (fn (((modes, options), k), t) => Toplevel.no_timing o Toplevel.keep
-        (values_cmd modes options k t)));
-
 end;
-
-end;
--- a/src/HOL/Tools/Predicate_Compile/predicate_compile_data.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Tools/Predicate_Compile/predicate_compile_data.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -113,7 +113,7 @@
     val (rewr, _) = fold_map mk_tuple_rewrites frees nctxt 
     val t' = Pattern.rewrite_term thy rewr [] t
     val tac = Skip_Proof.cheat_tac thy
-    val th'' = Goal.prove ctxt (Term.add_free_names t' []) [] t' (fn {...} => tac)
+    val th'' = Goal.prove ctxt (Term.add_free_names t' []) [] t' (fn _ => tac)
     val th''' = LocalDefs.unfold ctxt [@{thm split_conv}] th''
   in
     th'''
@@ -161,7 +161,9 @@
 
 fun make_const_spec_table options thy =
   let
-    fun store ignore_const f = fold (store_thm_in_table options ignore_const thy) (map (Thm.transfer thy) (f (ProofContext.init thy)))
+    fun store ignore_const f =
+      fold (store_thm_in_table options ignore_const thy)
+        (map (Thm.transfer thy) (f (ProofContext.init thy)))
     val table = Symtab.empty
       |> store [] Predicate_Compile_Alternative_Defs.get
     val ignore_consts = Symtab.keys table
--- a/src/HOL/Tools/Predicate_Compile/predicate_compile_pred.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Tools/Predicate_Compile/predicate_compile_pred.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -98,7 +98,7 @@
               THEN REPEAT_DETERM (rtac @{thm conjI} 1 THEN atac 1)
               THEN TRY (atac 1)
           in
-            Goal.prove ctxt' (map fst ps) [] introrule (fn {...} => tac)
+            Goal.prove ctxt' (map fst ps) [] introrule (fn _ => tac)
           end
       in
         map_index prove_introrule (map mk_introrule disjuncts)
--- a/src/HOL/Tools/Predicate_Compile/predicate_compile_quickcheck.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Tools/Predicate_Compile/predicate_compile_quickcheck.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -33,7 +33,8 @@
   
   inductify = false,
   random = false,
-  depth_limited = false
+  depth_limited = false,
+  annotated = false
 }
 
 fun dest_compfuns (Predicate_Compile_Core.CompilationFuns funs) = funs
@@ -86,11 +87,11 @@
       (*  |> Predicate_Compile_Core.add_depth_limited_equations Predicate_Compile_Aux.default_options [full_constname]*)
       |> Predicate_Compile_Core.add_quickcheck_equations options [full_constname]
     val depth_limited_modes = Predicate_Compile_Core.depth_limited_modes_of thy'' full_constname
-    val modes = Predicate_Compile_Core.generator_modes_of thy'' full_constname  
+    val modes = Predicate_Compile_Core.random_modes_of thy'' full_constname  
     val prog =
       if member (op =) modes ([], []) then
         let
-          val name = Predicate_Compile_Core.generator_name_of thy'' full_constname ([], [])
+          val name = Predicate_Compile_Core.random_function_name_of thy'' full_constname ([], [])
           val T = [@{typ code_numeral}] ---> (mk_randompredT (HOLogic.mk_tupleT (map snd vs')))
           in Const (name, T) $ Bound 0 end
       (*else if member (op =) depth_limited_modes ([], []) then
--- a/src/HOL/Tools/inductive.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Tools/inductive.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -20,9 +20,11 @@
 
 signature BASIC_INDUCTIVE =
 sig
-  type inductive_result
+  type inductive_result =
+    {preds: term list, elims: thm list, raw_induct: thm,
+     induct: thm, intrs: thm list}
   val morph_result: morphism -> inductive_result -> inductive_result
-  type inductive_info
+  type inductive_info = {names: string list, coind: bool} * inductive_result
   val the_inductive: Proof.context -> string -> inductive_info
   val print_inductives: Proof.context -> unit
   val mono_add: attribute
@@ -36,7 +38,9 @@
     thm list list * local_theory
   val inductive_cases_i: (Attrib.binding * term list) list -> local_theory ->
     thm list list * local_theory
-  type inductive_flags
+  type inductive_flags =
+    {quiet_mode: bool, verbose: bool, kind: string, alt_name: binding,
+     coind: bool, no_elim: bool, no_ind: bool, skip_mono: bool, fork_mono: bool}
   val add_inductive_i:
     inductive_flags -> ((binding * typ) * mixfix) list ->
     (string * typ) list -> (Attrib.binding * term) list -> thm list -> local_theory ->
@@ -62,7 +66,11 @@
 signature INDUCTIVE =
 sig
   include BASIC_INDUCTIVE
-  type add_ind_def
+  type add_ind_def =
+    inductive_flags ->
+    term list -> (Attrib.binding * term) list -> thm list ->
+    term list -> (binding * mixfix) list ->
+    local_theory -> inductive_result * local_theory
   val declare_rules: string -> binding -> bool -> bool -> string list ->
     thm list -> binding list -> Attrib.src list list -> (thm * string list) list ->
     thm -> local_theory -> thm list * thm list * thm * local_theory
@@ -592,19 +600,21 @@
 
 (** specification of (co)inductive predicates **)
 
-fun mk_ind_def quiet_mode skip_mono fork_mono alt_name coind cs intr_ts monos params cnames_syn ctxt =
-  let  (* FIXME proper naming convention: lthy *)
+fun mk_ind_def quiet_mode skip_mono fork_mono alt_name coind
+    cs intr_ts monos params cnames_syn lthy =
+  let
     val fp_name = if coind then @{const_name Inductive.gfp} else @{const_name Inductive.lfp};
 
     val argTs = fold (combine (op =) o arg_types_of (length params)) cs [];
     val k = log 2 1 (length cs);
     val predT = replicate k HOLogic.boolT ---> argTs ---> HOLogic.boolT;
-    val p :: xs = map Free (Variable.variant_frees ctxt intr_ts
+    val p :: xs = map Free (Variable.variant_frees lthy intr_ts
       (("p", predT) :: (mk_names "x" (length argTs) ~~ argTs)));
-    val bs = map Free (Variable.variant_frees ctxt (p :: xs @ intr_ts)
+    val bs = map Free (Variable.variant_frees lthy (p :: xs @ intr_ts)
       (map (rpair HOLogic.boolT) (mk_names "b" k)));
 
-    fun subst t = (case dest_predicate cs params t of
+    fun subst t =
+      (case dest_predicate cs params t of
         SOME (_, i, ts, (Ts, Us)) =>
           let
             val l = length Us;
@@ -651,44 +661,44 @@
         Binding.name (space_implode "_" (map (Binding.name_of o fst) cnames_syn))
       else alt_name;
 
-    val ((rec_const, (_, fp_def)), ctxt') = ctxt
+    val ((rec_const, (_, fp_def)), lthy') = lthy
       |> LocalTheory.conceal
       |> LocalTheory.define Thm.internalK
         ((rec_name, case cnames_syn of [(_, syn)] => syn | _ => NoSyn),
          (Attrib.empty_binding, fold_rev lambda params
            (Const (fp_name, (predT --> predT) --> predT) $ fp_fun)))
-      ||> LocalTheory.restore_naming ctxt;
+      ||> LocalTheory.restore_naming lthy;
     val fp_def' = Simplifier.rewrite (HOL_basic_ss addsimps [fp_def])
-      (cterm_of (ProofContext.theory_of ctxt') (list_comb (rec_const, params)));
+      (cterm_of (ProofContext.theory_of lthy') (list_comb (rec_const, params)));
     val specs =
       if length cs < 2 then []
       else
         map_index (fn (i, (name_mx, c)) =>
           let
             val Ts = arg_types_of (length params) c;
-            val xs = map Free (Variable.variant_frees ctxt intr_ts
+            val xs = map Free (Variable.variant_frees lthy intr_ts
               (mk_names "x" (length Ts) ~~ Ts))
           in
             (name_mx, (Attrib.empty_binding, fold_rev lambda (params @ xs)
               (list_comb (rec_const, params @ make_bool_args' bs i @
                 make_args argTs (xs ~~ Ts)))))
           end) (cnames_syn ~~ cs);
-    val (consts_defs, ctxt'') = ctxt'
+    val (consts_defs, lthy'') = lthy'
       |> LocalTheory.conceal
       |> fold_map (LocalTheory.define Thm.internalK) specs
-      ||> LocalTheory.restore_naming ctxt';
+      ||> LocalTheory.restore_naming lthy';
     val preds = (case cs of [_] => [rec_const] | _ => map #1 consts_defs);
 
-    val mono = prove_mono quiet_mode skip_mono fork_mono predT fp_fun monos ctxt'';
-    val ((_, [mono']), ctxt''') =
-      LocalTheory.note Thm.internalK (apfst Binding.conceal Attrib.empty_binding, [mono]) ctxt'';
+    val mono = prove_mono quiet_mode skip_mono fork_mono predT fp_fun monos lthy'';
+    val ((_, [mono']), lthy''') =
+      LocalTheory.note Thm.internalK (apfst Binding.conceal Attrib.empty_binding, [mono]) lthy'';
 
-  in (ctxt''', rec_name, mono', fp_def', map (#2 o #2) consts_defs,
+  in (lthy''', rec_name, mono', fp_def', map (#2 o #2) consts_defs,
     list_comb (rec_const, params), preds, argTs, bs, xs)
   end;
 
-fun declare_rules kind rec_binding coind no_ind cnames intrs intr_bindings intr_atts
-      elims raw_induct ctxt =
+fun declare_rules kind rec_binding coind no_ind cnames
+      intrs intr_bindings intr_atts elims raw_induct lthy =
   let
     val rec_name = Binding.name_of rec_binding;
     fun rec_qualified qualified = Binding.qualify qualified rec_name;
@@ -703,86 +713,91 @@
         (raw_induct, [ind_case_names, Rule_Cases.consumes 0])
       else (raw_induct RSN (2, rev_mp), [ind_case_names, Rule_Cases.consumes 1]);
 
-    val (intrs', ctxt1) =
-      ctxt |>
+    val (intrs', lthy1) =
+      lthy |>
       LocalTheory.notes kind
         (map (rec_qualified false) intr_bindings ~~ intr_atts ~~
           map (fn th => [([th],
            [Attrib.internal (K (Context_Rules.intro_query NONE)),
             Attrib.internal (K Nitpick_Intros.add)])]) intrs) |>>
       map (hd o snd);
-    val (((_, elims'), (_, [induct'])), ctxt2) =
-      ctxt1 |>
+    val (((_, elims'), (_, [induct'])), lthy2) =
+      lthy1 |>
       LocalTheory.note kind ((rec_qualified true (Binding.name "intros"), []), intrs') ||>>
       fold_map (fn (name, (elim, cases)) =>
-        LocalTheory.note kind ((Binding.qualify true (Long_Name.base_name name) (Binding.name "cases"),
-          [Attrib.internal (K (Rule_Cases.case_names cases)),
-           Attrib.internal (K (Rule_Cases.consumes 1)),
-           Attrib.internal (K (Induct.cases_pred name)),
-           Attrib.internal (K (Context_Rules.elim_query NONE))]), [elim]) #>
+        LocalTheory.note kind
+          ((Binding.qualify true (Long_Name.base_name name) (Binding.name "cases"),
+            [Attrib.internal (K (Rule_Cases.case_names cases)),
+             Attrib.internal (K (Rule_Cases.consumes 1)),
+             Attrib.internal (K (Induct.cases_pred name)),
+             Attrib.internal (K (Context_Rules.elim_query NONE))]), [elim]) #>
         apfst (hd o snd)) (if null elims then [] else cnames ~~ elims) ||>>
       LocalTheory.note kind
         ((rec_qualified true (Binding.name (coind_prefix coind ^ "induct")),
           map (Attrib.internal o K) (#2 induct)), [rulify (#1 induct)]);
 
-    val ctxt3 = if no_ind orelse coind then ctxt2 else
-      let val inducts = cnames ~~ Project_Rule.projects ctxt2 (1 upto length cnames) induct'
-      in
-        ctxt2 |>
-        LocalTheory.notes kind [((rec_qualified true (Binding.name "inducts"), []),
-          inducts |> map (fn (name, th) => ([th],
-            [Attrib.internal (K ind_case_names),
-             Attrib.internal (K (Rule_Cases.consumes 1)),
-             Attrib.internal (K (Induct.induct_pred name))])))] |> snd
-      end
-  in (intrs', elims', induct', ctxt3) end;
+    val lthy3 =
+      if no_ind orelse coind then lthy2
+      else
+        let val inducts = cnames ~~ Project_Rule.projects lthy2 (1 upto length cnames) induct' in
+          lthy2 |>
+          LocalTheory.notes kind [((rec_qualified true (Binding.name "inducts"), []),
+            inducts |> map (fn (name, th) => ([th],
+              [Attrib.internal (K ind_case_names),
+               Attrib.internal (K (Rule_Cases.consumes 1)),
+               Attrib.internal (K (Induct.induct_pred name))])))] |> snd
+        end;
+  in (intrs', elims', induct', lthy3) end;
 
 type inductive_flags =
   {quiet_mode: bool, verbose: bool, kind: string, alt_name: binding,
-   coind: bool, no_elim: bool, no_ind: bool, skip_mono: bool, fork_mono: bool}
+   coind: bool, no_elim: bool, no_ind: bool, skip_mono: bool, fork_mono: bool};
 
 type add_ind_def =
   inductive_flags ->
   term list -> (Attrib.binding * term) list -> thm list ->
   term list -> (binding * mixfix) list ->
-  local_theory -> inductive_result * local_theory
+  local_theory -> inductive_result * local_theory;
 
-fun add_ind_def {quiet_mode, verbose, kind, alt_name, coind, no_elim, no_ind, skip_mono, fork_mono}
-    cs intros monos params cnames_syn ctxt =
+fun add_ind_def
+    {quiet_mode, verbose, kind, alt_name, coind, no_elim, no_ind, skip_mono, fork_mono}
+    cs intros monos params cnames_syn lthy =
   let
     val _ = null cnames_syn andalso error "No inductive predicates given";
     val names = map (Binding.name_of o fst) cnames_syn;
     val _ = message (quiet_mode andalso not verbose)
       ("Proofs for " ^ coind_prefix coind ^ "inductive predicate(s) " ^ commas_quote names);
 
-    val cnames = map (LocalTheory.full_name ctxt o #1) cnames_syn;  (* FIXME *)
+    val cnames = map (LocalTheory.full_name lthy o #1) cnames_syn;  (* FIXME *)
     val ((intr_names, intr_atts), intr_ts) =
-      apfst split_list (split_list (map (check_rule ctxt cs params) intros));
+      apfst split_list (split_list (map (check_rule lthy cs params) intros));
 
-    val (ctxt1, rec_name, mono, fp_def, rec_preds_defs, rec_const, preds,
+    val (lthy1, rec_name, mono, fp_def, rec_preds_defs, rec_const, preds,
       argTs, bs, xs) = mk_ind_def quiet_mode skip_mono fork_mono alt_name coind cs intr_ts
-        monos params cnames_syn ctxt;
+        monos params cnames_syn lthy;
 
     val (intrs, unfold) = prove_intrs quiet_mode coind mono fp_def (length bs + length xs)
-      params intr_ts rec_preds_defs ctxt1;
-    val elims = if no_elim then [] else
-      prove_elims quiet_mode cs params intr_ts (map Binding.name_of intr_names)
-        unfold rec_preds_defs ctxt1;
+      params intr_ts rec_preds_defs lthy1;
+    val elims =
+      if no_elim then []
+      else
+        prove_elims quiet_mode cs params intr_ts (map Binding.name_of intr_names)
+          unfold rec_preds_defs lthy1;
     val raw_induct = zero_var_indexes
-      (if no_ind then Drule.asm_rl else
-       if coind then
+      (if no_ind then Drule.asm_rl
+       else if coind then
          singleton (ProofContext.export
-           (snd (Variable.add_fixes (map (fst o dest_Free) params) ctxt1)) ctxt1)
+           (snd (Variable.add_fixes (map (fst o dest_Free) params) lthy1)) lthy1)
            (rotate_prems ~1 (ObjectLogic.rulify
              (fold_rule rec_preds_defs
                (rewrite_rule simp_thms'''
                 (mono RS (fp_def RS @{thm def_coinduct}))))))
        else
          prove_indrule quiet_mode cs argTs bs xs rec_const params intr_ts mono fp_def
-           rec_preds_defs ctxt1);
+           rec_preds_defs lthy1);
 
-    val (intrs', elims', induct, ctxt2) = declare_rules kind rec_name coind no_ind
-      cnames intrs intr_names intr_atts elims raw_induct ctxt1;
+    val (intrs', elims', induct, lthy2) = declare_rules kind rec_name coind no_ind
+      cnames intrs intr_names intr_atts elims raw_induct lthy1;
 
     val result =
       {preds = preds,
@@ -791,11 +806,11 @@
        raw_induct = rulify raw_induct,
        induct = induct};
 
-    val ctxt3 = ctxt2
-      |> LocalTheory.declaration (fn phi =>
+    val lthy3 = lthy2
+      |> LocalTheory.declaration false (fn phi =>
         let val result' = morph_result phi result;
         in put_inductives cnames (*global names!?*) ({names = cnames, coind = coind}, result') end);
-  in (result, ctxt3) end;
+  in (result, lthy3) end;
 
 
 (* external interfaces *)
@@ -970,8 +985,13 @@
 
 val ind_decl = gen_ind_decl add_ind_def;
 
-val _ = OuterSyntax.local_theory' "inductive" "define inductive predicates" K.thy_decl (ind_decl false);
-val _ = OuterSyntax.local_theory' "coinductive" "define coinductive predicates" K.thy_decl (ind_decl true);
+val _ =
+  OuterSyntax.local_theory' "inductive" "define inductive predicates" K.thy_decl
+    (ind_decl false);
+
+val _ =
+  OuterSyntax.local_theory' "coinductive" "define coinductive predicates" K.thy_decl
+    (ind_decl true);
 
 val _ =
   OuterSyntax.local_theory "inductive_cases"
--- a/src/HOL/Tools/inductive_set.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/Tools/inductive_set.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -406,11 +406,11 @@
 
 fun add_ind_set_def
     {quiet_mode, verbose, kind, alt_name, coind, no_elim, no_ind, skip_mono, fork_mono}
-    cs intros monos params cnames_syn ctxt =
-  let (* FIXME proper naming convention: lthy *)
-    val thy = ProofContext.theory_of ctxt;
+    cs intros monos params cnames_syn lthy =
+  let
+    val thy = ProofContext.theory_of lthy;
     val {set_arities, pred_arities, to_pred_simps, ...} =
-      PredSetConvData.get (Context.Proof ctxt);
+      PredSetConvData.get (Context.Proof lthy);
     fun infer (Abs (_, _, t)) = infer t
       | infer (Const ("op :", _) $ t $ u) =
           infer_arities thy set_arities (SOME (HOLogic.flat_tuple_paths t), u)
@@ -446,9 +446,9 @@
         val (Us, U) = split_last (binder_types T);
         val _ = Us = paramTs orelse error (Pretty.string_of (Pretty.chunks
           [Pretty.str "Argument types",
-           Pretty.block (Pretty.commas (map (Syntax.pretty_typ ctxt) Us)),
+           Pretty.block (Pretty.commas (map (Syntax.pretty_typ lthy) Us)),
            Pretty.str ("of " ^ s ^ " do not agree with types"),
-           Pretty.block (Pretty.commas (map (Syntax.pretty_typ ctxt) paramTs)),
+           Pretty.block (Pretty.commas (map (Syntax.pretty_typ lthy) paramTs)),
            Pretty.str "of declared parameters"]));
         val Ts = HOLogic.strip_ptupleT fs U;
         val c' = Free (s ^ "p",
@@ -474,29 +474,29 @@
         Pattern.rewrite_term thy [] [to_pred_proc thy eqns'] |>
         eta_contract (member op = cs' orf is_pred pred_arities))) intros;
     val cnames_syn' = map (fn (b, _) => (Binding.suffix_name "p" b, NoSyn)) cnames_syn;
-    val monos' = map (to_pred [] (Context.Proof ctxt)) monos;
-    val ({preds, intrs, elims, raw_induct, ...}, ctxt1) =
+    val monos' = map (to_pred [] (Context.Proof lthy)) monos;
+    val ({preds, intrs, elims, raw_induct, ...}, lthy1) =
       Inductive.add_ind_def
         {quiet_mode = quiet_mode, verbose = verbose, kind = kind, alt_name = Binding.empty,
           coind = coind, no_elim = no_elim, no_ind = no_ind,
           skip_mono = skip_mono, fork_mono = fork_mono}
-        cs' intros' monos' params1 cnames_syn' ctxt;
+        cs' intros' monos' params1 cnames_syn' lthy;
 
     (* define inductive sets using previously defined predicates *)
-    val (defs, ctxt2) = ctxt1
+    val (defs, lthy2) = lthy1
       |> LocalTheory.conceal  (* FIXME ?? *)
       |> fold_map (LocalTheory.define Thm.internalK)
         (map (fn ((c_syn, (fs, U, _)), p) => (c_syn, (Attrib.empty_binding,
            fold_rev lambda params (HOLogic.Collect_const U $
              HOLogic.mk_psplits fs U HOLogic.boolT (list_comb (p, params3))))))
            (cnames_syn ~~ cs_info ~~ preds))
-      ||> LocalTheory.restore_naming ctxt1;
+      ||> LocalTheory.restore_naming lthy1;
 
     (* prove theorems for converting predicate to set notation *)
-    val ctxt3 = fold
-      (fn (((p, c as Free (s, _)), (fs, U, Ts)), (_, (_, def))) => fn ctxt =>
+    val lthy3 = fold
+      (fn (((p, c as Free (s, _)), (fs, U, Ts)), (_, (_, def))) => fn lthy =>
         let val conv_thm =
-          Goal.prove ctxt (map (fst o dest_Free) params) []
+          Goal.prove lthy (map (fst o dest_Free) params) []
             (HOLogic.mk_Trueprop (HOLogic.mk_eq
               (list_comb (p, params3),
                list_abs (map (pair "x") Ts, HOLogic.mk_mem
@@ -505,29 +505,29 @@
             (K (REPEAT (rtac ext 1) THEN simp_tac (HOL_basic_ss addsimps
               [def, mem_Collect_eq, split_conv]) 1))
         in
-          ctxt |> LocalTheory.note kind ((Binding.name (s ^ "p_" ^ s ^ "_eq"),
+          lthy |> LocalTheory.note kind ((Binding.name (s ^ "p_" ^ s ^ "_eq"),
             [Attrib.internal (K pred_set_conv_att)]),
               [conv_thm]) |> snd
-        end) (preds ~~ cs ~~ cs_info ~~ defs) ctxt2;
+        end) (preds ~~ cs ~~ cs_info ~~ defs) lthy2;
 
     (* convert theorems to set notation *)
     val rec_name =
       if Binding.is_empty alt_name then
         Binding.name (space_implode "_" (map (Binding.name_of o fst) cnames_syn))
       else alt_name;
-    val cnames = map (LocalTheory.full_name ctxt3 o #1) cnames_syn;  (* FIXME *)
+    val cnames = map (LocalTheory.full_name lthy3 o #1) cnames_syn;  (* FIXME *)
     val (intr_names, intr_atts) = split_list (map fst intros);
-    val raw_induct' = to_set [] (Context.Proof ctxt3) raw_induct;
-    val (intrs', elims', induct, ctxt4) =
+    val raw_induct' = to_set [] (Context.Proof lthy3) raw_induct;
+    val (intrs', elims', induct, lthy4) =
       Inductive.declare_rules kind rec_name coind no_ind cnames
-      (map (to_set [] (Context.Proof ctxt3)) intrs) intr_names intr_atts
-      (map (fn th => (to_set [] (Context.Proof ctxt3) th,
-         map fst (fst (Rule_Cases.get th)))) elims)
-      raw_induct' ctxt3
+        (map (to_set [] (Context.Proof lthy3)) intrs) intr_names intr_atts
+        (map (fn th => (to_set [] (Context.Proof lthy3) th,
+           map fst (fst (Rule_Cases.get th)))) elims)
+        raw_induct' lthy3;
   in
     ({intrs = intrs', elims = elims', induct = induct,
       raw_induct = raw_induct', preds = map fst defs},
-     ctxt4)
+     lthy4)
   end;
 
 val add_inductive_i = Inductive.gen_add_inductive_i add_ind_set_def;
@@ -544,8 +544,10 @@
 val setup =
   Attrib.setup @{binding pred_set_conv} (Scan.succeed pred_set_conv_att)
     "declare rules for converting between predicate and set notation" #>
-  Attrib.setup @{binding to_set} (Attrib.thms >> to_set_att) "convert rule to set notation" #>
-  Attrib.setup @{binding to_pred} (Attrib.thms >> to_pred_att) "convert rule to predicate notation" #>
+  Attrib.setup @{binding to_set} (Attrib.thms >> to_set_att)
+    "convert rule to set notation" #>
+  Attrib.setup @{binding to_pred} (Attrib.thms >> to_pred_att)
+    "convert rule to predicate notation" #>
   Attrib.setup @{binding code_ind_set}
     (Scan.lift (Scan.option (Args.$$$ "target" |-- Args.colon |-- Args.name) >> code_ind_att))
     "introduction rules for executable predicates" #>
@@ -562,10 +564,12 @@
 val ind_set_decl = Inductive.gen_ind_decl add_ind_set_def;
 
 val _ =
-  OuterSyntax.local_theory' "inductive_set" "define inductive sets" K.thy_decl (ind_set_decl false);
+  OuterSyntax.local_theory' "inductive_set" "define inductive sets" K.thy_decl
+    (ind_set_decl false);
 
 val _ =
-  OuterSyntax.local_theory' "coinductive_set" "define coinductive sets" K.thy_decl (ind_set_decl true);
+  OuterSyntax.local_theory' "coinductive_set" "define coinductive sets" K.thy_decl
+    (ind_set_decl true);
 
 end;
 
--- a/src/HOL/ex/Codegenerator_Candidates.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/ex/Codegenerator_Candidates.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -25,6 +25,13 @@
   "~~/src/HOL/ex/Records"
 begin
 
+inductive sublist :: "'a list \<Rightarrow> 'a list \<Rightarrow> bool" where
+    empty: "sublist [] xs"
+  | drop: "sublist ys xs \<Longrightarrow> sublist ys (x # xs)"
+  | take: "sublist ys xs \<Longrightarrow> sublist (x # ys) (x # xs)"
+
+code_pred sublist .
+
 (*avoid popular infix*)
 code_reserved SML upto
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/ex/Induction_Schema.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -0,0 +1,48 @@
+(*  Title:      HOL/ex/Induction_Schema.thy
+    Author:     Alexander Krauss, TU Muenchen
+*)
+
+header {* Examples of automatically derived induction rules *}
+
+theory Induction_Schema
+imports Main
+begin
+
+subsection {* Some simple induction principles on nat *}
+
+lemma nat_standard_induct: (* cf. Nat.thy *)
+  "\<lbrakk>P 0; \<And>n. P n \<Longrightarrow> P (Suc n)\<rbrakk> \<Longrightarrow> P x"
+by induction_schema (pat_completeness, lexicographic_order)
+
+lemma nat_induct2:
+  "\<lbrakk> P 0; P (Suc 0); \<And>k. P k ==> P (Suc k) ==> P (Suc (Suc k)) \<rbrakk>
+  \<Longrightarrow> P n"
+by induction_schema (pat_completeness, lexicographic_order)
+
+lemma minus_one_induct:
+  "\<lbrakk>\<And>n::nat. (n \<noteq> 0 \<Longrightarrow> P (n - 1)) \<Longrightarrow> P n\<rbrakk> \<Longrightarrow> P x"
+by induction_schema (pat_completeness, lexicographic_order)
+
+theorem diff_induct: (* cf. Nat.thy *)
+  "(!!x. P x 0) ==> (!!y. P 0 (Suc y)) ==>
+    (!!x y. P x y ==> P (Suc x) (Suc y)) ==> P m n"
+by induction_schema (pat_completeness, lexicographic_order)
+
+lemma list_induct2': (* cf. List.thy *)
+  "\<lbrakk> P [] [];
+  \<And>x xs. P (x#xs) [];
+  \<And>y ys. P [] (y#ys);
+   \<And>x xs y ys. P xs ys  \<Longrightarrow> P (x#xs) (y#ys) \<rbrakk>
+ \<Longrightarrow> P xs ys"
+by induction_schema (pat_completeness, lexicographic_order)
+
+theorem even_odd_induct:
+  assumes "R 0"
+  assumes "Q 0"
+  assumes "\<And>n. Q n \<Longrightarrow> R (Suc n)"
+  assumes "\<And>n. R n \<Longrightarrow> Q (Suc n)"
+  shows "R n" "Q n"
+  using assms
+by induction_schema (pat_completeness+, lexicographic_order)
+
+end
\ No newline at end of file
--- a/src/HOL/ex/Induction_Scheme.thy	Fri Nov 06 09:50:37 2009 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-(*  Title:      HOL/ex/Induction_Scheme.thy
-    ID:         $Id$
-    Author:     Alexander Krauss, TU Muenchen
-*)
-
-header {* Examples of automatically derived induction rules *}
-
-theory Induction_Scheme
-imports Main
-begin
-
-subsection {* Some simple induction principles on nat *}
-
-lemma nat_standard_induct: (* cf. Nat.thy *)
-  "\<lbrakk>P 0; \<And>n. P n \<Longrightarrow> P (Suc n)\<rbrakk> \<Longrightarrow> P x"
-by induct_scheme (pat_completeness, lexicographic_order)
-
-lemma nat_induct2:
-  "\<lbrakk> P 0; P (Suc 0); \<And>k. P k ==> P (Suc k) ==> P (Suc (Suc k)) \<rbrakk>
-  \<Longrightarrow> P n"
-by induct_scheme (pat_completeness, lexicographic_order)
-
-lemma minus_one_induct:
-  "\<lbrakk>\<And>n::nat. (n \<noteq> 0 \<Longrightarrow> P (n - 1)) \<Longrightarrow> P n\<rbrakk> \<Longrightarrow> P x"
-by induct_scheme (pat_completeness, lexicographic_order)
-
-theorem diff_induct: (* cf. Nat.thy *)
-  "(!!x. P x 0) ==> (!!y. P 0 (Suc y)) ==>
-    (!!x y. P x y ==> P (Suc x) (Suc y)) ==> P m n"
-by induct_scheme (pat_completeness, lexicographic_order)
-
-lemma list_induct2': (* cf. List.thy *)
-  "\<lbrakk> P [] [];
-  \<And>x xs. P (x#xs) [];
-  \<And>y ys. P [] (y#ys);
-   \<And>x xs y ys. P xs ys  \<Longrightarrow> P (x#xs) (y#ys) \<rbrakk>
- \<Longrightarrow> P xs ys"
-by induct_scheme (pat_completeness, lexicographic_order)
-
-theorem even_odd_induct:
-  assumes "R 0"
-  assumes "Q 0"
-  assumes "\<And>n. Q n \<Longrightarrow> R (Suc n)"
-  assumes "\<And>n. R n \<Longrightarrow> Q (Suc n)"
-  shows "R n" "Q n"
-  using assms
-by induct_scheme (pat_completeness+, lexicographic_order)
-
-end
\ No newline at end of file
--- a/src/HOL/ex/Predicate_Compile_Quickcheck_ex.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/ex/Predicate_Compile_Quickcheck_ex.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -9,7 +9,9 @@
 quickcheck[generator=predicate_compile]
 oops
 
+(* TODO: some error with doubled negation *)
 lemma "x \<in> {Suc 0, Suc (Suc 0)} ==> x \<noteq> Suc 0"
+(*quickcheck[generator=predicate_compile]*)
 oops
 
 lemma "x \<in> {Suc 0, Suc (Suc 0)} ==> x = Suc 0"
@@ -23,12 +25,17 @@
 section {* Numerals *}
 
 lemma
-  "x \<in> {1, 2, (3::nat)} ==> x < 3"
+  "x \<in> {1, 2, (3::nat)} ==> x = 1 \<or> x = 2"
+quickcheck[generator=predicate_compile]
+oops
+
+lemma "x \<in> {1, 2, (3::nat)} ==> x < 3"
 (*quickcheck[generator=predicate_compile]*)
 oops
+
 lemma
-  "x \<in> {1, 2} \<union> {3, 4} ==> x > 4"
-(*quickcheck[generator=predicate_compile]*)
+  "x \<in> {1, 2} \<union> {3, 4} ==> x = (1::nat) \<or> x = (2::nat)"
+quickcheck[generator=predicate_compile]
 oops
 
 section {* Context Free Grammar *}
--- a/src/HOL/ex/Predicate_Compile_ex.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/ex/Predicate_Compile_ex.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -188,13 +188,23 @@
 (*values "{x. one_or_two x}"*)
 values [random] "{x. one_or_two x}"
 
-definition one_or_two':
-  "one_or_two' == {1, (2::nat)}"
+inductive one_or_two' :: "nat => bool"
+where
+  "one_or_two' 1"
+| "one_or_two' 2"
+
+code_pred one_or_two' .
+thm one_or_two'.equation
 
-code_pred [inductify] one_or_two' .
-thm one_or_two'.equation
-(* TODO: handling numerals *)
-(*values "{x. one_or_two' x}"*)
+values "{x. one_or_two' x}"
+
+definition one_or_two'':
+  "one_or_two'' == {1, (2::nat)}"
+
+code_pred [inductify] one_or_two'' .
+thm one_or_two''.equation
+
+values "{x. one_or_two'' x}"
 
 
 subsection {* even predicate *}
@@ -250,10 +260,12 @@
 code_pred (mode: [1, 2], [3], [2, 3], [1, 3], [1, 2, 3]) append .
 code_pred [depth_limited] append .
 code_pred [random] append .
+code_pred [annotated] append .
 
 thm append.equation
 thm append.depth_limited_equation
 thm append.random_equation
+thm append.annotated_equation
 
 values "{(ys, xs). append xs ys [0, Suc 0, 2]}"
 values "{zs. append [0, Suc 0, 2] [17, 8] zs}"
@@ -264,6 +276,7 @@
 value [code] "Predicate.the (append_1_2 [0::int, 1, 2] [3, 4, 5])"
 value [code] "Predicate.the (append_3 ([]::int list))"
 
+
 text {* tricky case with alternative rules *}
 
 inductive append2
@@ -460,13 +473,13 @@
 values "{m. succ 0 m}"
 values "{m. succ m 0}"
 
-(* FIXME: why does this not terminate? -- value chooses mode [] --> [1] and then starts enumerating all successors *)
+text {* values command needs mode annotation of the parameter succ
+to disambiguate which mode is to be chosen. *} 
 
-(*
-values 20 "{n. tranclp succ 10 n}"
-values "{n. tranclp succ n 10}"
+values [mode: [1]] 20 "{n. tranclp succ 10 n}"
+values [mode: [2]] 10 "{n. tranclp succ n 10}"
 values 20 "{(n, m). tranclp succ n m}"
-*)
+
 
 subsection {* IMP *}
 
@@ -529,10 +542,13 @@
 
 code_pred steps .
 
+values 3 
+ "{as . steps (par (or (pre 0 nil) (pre 1 nil)) (pre 2 nil)) as (par nil nil)}"
+
 values 5
  "{as . steps (par (or (pre 0 nil) (pre 1 nil)) (pre 2 nil)) as (par nil nil)}"
 
-(* FIXME
+(* FIXME:
 values 3 "{(a,q). step (par nil nil) a q}"
 *)
 
@@ -645,6 +661,7 @@
 thm set_of.equation
 
 code_pred [inductify] is_ord .
+thm is_ord_aux.equation
 thm is_ord.equation
 
 
@@ -699,7 +716,7 @@
 code_pred [inductify] take .
 code_pred [inductify] drop .
 code_pred [inductify] zip .
-code_pred [inductify] upt .
+(*code_pred [inductify] upt .*)
 code_pred [inductify] remdups .
 code_pred [inductify] remove1 .
 code_pred [inductify] removeAll .
--- a/src/HOL/ex/ROOT.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/ex/ROOT.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -24,7 +24,7 @@
   "Binary",
   "Recdefs",
   "Fundefs",
-  "Induction_Scheme",
+  "Induction_Schema",
   "InductiveInvariant_examples",
   "LocaleTest2",
   "Records",
--- a/src/HOL/ex/Termination.thy	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOL/ex/Termination.thy	Sat Nov 07 07:37:20 2009 -0800
@@ -168,7 +168,7 @@
 
 
 
-subsection {* Refined analysis: The @{text sizechange} method *}
+subsection {* Refined analysis: The @{text size_change} method *}
 
 text {* Unsolvable for @{text lexicographic_order} *}
 
@@ -179,7 +179,7 @@
 | "fun1 (Suc a, 0) = 0"
 | "fun1 (Suc a, Suc b) = fun1 (b, a)"
 by pat_completeness auto
-termination by sizechange
+termination by size_change
 
 
 text {* 
@@ -195,7 +195,7 @@
 | "oprod x y z = eprod x (y - 1) (z+x)"
 | "eprod x y z = (if y=0 then z else prod (2*x) (y div 2) z)"
 by pat_completeness auto
-termination by sizechange
+termination by size_change
 
 text {* 
   Permutations of arguments:
@@ -207,7 +207,7 @@
                   else if n > 0 then perm r (n - 1) m
                   else m)"
 by auto
-termination by sizechange
+termination by size_change
 
 text {*
   Artificial examples and regression tests:
@@ -227,6 +227,6 @@
            0
       )"
 by pat_completeness auto
-termination by sizechange -- {* requires Multiset *}
+termination by size_change -- {* requires Multiset *}
 
 end
--- a/src/HOLCF/IsaMakefile	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOLCF/IsaMakefile	Sat Nov 07 07:37:20 2009 -0800
@@ -187,7 +187,8 @@
 ## clean
 
 clean:
-	@rm -f $(OUT)/HOLCF $(LOG)/HOLCF.gz $(LOG)/HOLCF-IMP.gz \
-	  $(LOG)/HOLCF-ex.gz $(LOG)/HOLCF-FOCUS.gz \
-          $(OUT)/IOA $(LOG)/IOA.gz $(LOG)/IOA-ABP.gz \
-	  $(LOG)/IOA-NTP.gz $(LOG)/IOA-Modelcheck.gz $(LOG)/IOA-Storage.gz
+	@rm -f $(OUT)/HOLCF $(LOG)/HOLCF.gz $(LOG)/HOLCF-IMP.gz	\
+	  $(LOG)/HOLCF-ex.gz $(LOG)/HOLCF-FOCUS.gz $(OUT)/IOA	\
+	  $(LOG)/IOA.gz $(LOG)/IOA-ABP.gz $(LOG)/IOA-NTP.gz	\
+	  $(LOG)/IOA-Modelcheck.gz $(LOG)/IOA-Storage.gz	\
+	  $(LOG)/IOA-ex.gz
--- a/src/HOLCF/Tools/adm_tac.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOLCF/Tools/adm_tac.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -1,4 +1,5 @@
-(*  Author:     Stefan Berghofer, TU Muenchen
+(*  Title:      HOLCF/Tools/adm_tac.ML
+    Author:     Stefan Berghofer, TU Muenchen
 
 Admissibility tactic.
 
@@ -18,7 +19,7 @@
   val adm_tac: Proof.context -> (int -> tactic) -> int -> tactic
 end;
 
-structure Adm :> ADM =
+structure Adm : ADM =
 struct
 
 
--- a/src/HOLCF/Tools/fixrec.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/HOLCF/Tools/fixrec.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -13,8 +13,8 @@
   val add_fixpat: Thm.binding * term list -> theory -> theory
   val add_fixpat_cmd: Attrib.binding * string list -> theory -> theory
   val add_matchers: (string * string) list -> theory -> theory
-  val fixrec_simp_add: Thm.attribute
-  val fixrec_simp_del: Thm.attribute
+  val fixrec_simp_add: attribute
+  val fixrec_simp_del: attribute
   val fixrec_simp_tac: Proof.context -> int -> tactic
   val setup: theory -> theory
 end;
@@ -165,7 +165,7 @@
   val empty = Symtab.empty;
   val copy = I;
   val extend = I;
-  val merge = K (Symtab.merge (K true));
+  fun merge _ = Symtab.merge (K true);
 );
 
 local
@@ -179,7 +179,7 @@
 
 in
 
-val add_unfold : Thm.attribute =
+val add_unfold : attribute =
   Thm.declaration_attribute
     (fn th => FixrecUnfoldData.map (Symtab.insert (K true) (lhs_name th, th)));
 
@@ -257,7 +257,7 @@
   val empty = Symtab.empty;
   val copy = I;
   val extend = I;
-  val merge = K (Symtab.merge (K true));
+  fun merge _ = Symtab.merge (K true);
 );
 
 (* associate match functions with pattern constants *)
@@ -372,7 +372,7 @@
       addsimprocs [@{simproc cont_proc}];
   val copy = I;
   val extend = I;
-  val merge = K merge_ss;
+  fun merge _ = merge_ss;
 );
 
 fun fixrec_simp_tac ctxt =
@@ -394,11 +394,11 @@
     SUBGOAL (fn ti => the_default no_tac (try tac ti))
   end;
 
-val fixrec_simp_add : Thm.attribute =
+val fixrec_simp_add : attribute =
   Thm.declaration_attribute
     (fn th => FixrecSimpData.map (fn ss => ss addsimps [th]));
 
-val fixrec_simp_del : Thm.attribute =
+val fixrec_simp_del : attribute =
   Thm.declaration_attribute
     (fn th => FixrecSimpData.map (fn ss => ss delsimps [th]));
 
--- a/src/Pure/Isar/constdefs.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/Pure/Isar/constdefs.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -44,7 +44,8 @@
           else ());
     val b = Binding.name c;
 
-    val def = Term.subst_atomic [(Free (c, T), Const (Sign.full_bname thy c, T))] prop;
+    val head = Const (Sign.full_bname thy c, T);
+    val def = Term.subst_atomic [(Free (c, T), head)] prop;
     val name = Thm.def_binding_optional b raw_name;
     val atts = map (prep_att thy) raw_atts;
 
@@ -52,7 +53,10 @@
       thy
       |> Sign.add_consts_i [(b, T, mx)]
       |> PureThy.add_defs false [((name, def), atts)]
-      |-> (fn [thm] => Code.add_default_eqn thm #> Context.theory_map (Predicate_Compile_Preproc_Const_Defs.add_thm thm));
+      |-> (fn [thm] =>  (* FIXME thm vs. atts !? *)
+        Spec_Rules.add_global Spec_Rules.Equational ([Logic.varify head], [thm]) #>
+        Code.add_default_eqn thm #>
+        Context.theory_map (Predicate_Compile_Preproc_Const_Defs.add_thm thm));
   in ((c, T), thy') end;
 
 fun gen_constdefs prep_vars prep_prop prep_att (raw_structs, specs) thy =
--- a/src/Pure/Isar/isar_cmd.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/Pure/Isar/isar_cmd.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -16,7 +16,7 @@
   val oracle: bstring * Position.T -> Symbol_Pos.text * Position.T -> theory -> theory
   val add_axioms: ((binding * string) * Attrib.src list) list -> theory -> theory
   val add_defs: (bool * bool) * ((binding * string) * Attrib.src list) list -> theory -> theory
-  val declaration: Symbol_Pos.text * Position.T -> local_theory -> local_theory
+  val declaration: bool -> Symbol_Pos.text * Position.T -> local_theory -> local_theory
   val simproc_setup: string -> string list -> Symbol_Pos.text * Position.T -> string list ->
     local_theory -> local_theory
   val hide_names: bool -> string * xstring list -> theory -> theory
@@ -178,10 +178,10 @@
 
 (* declarations *)
 
-fun declaration (txt, pos) =
+fun declaration pervasive (txt, pos) =
   txt |> ML_Context.expression pos
     "val declaration: Morphism.declaration"
-    "Context.map_proof (LocalTheory.declaration declaration)"
+    ("Context.map_proof (LocalTheory.declaration " ^ Bool.toString pervasive ^ " declaration)")
   |> Context.proof_map;
 
 
--- a/src/Pure/Isar/isar_syn.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/Pure/Isar/isar_syn.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -22,8 +22,9 @@
   "advanced", "and", "assumes", "attach", "begin", "binder",
   "constrains", "defines", "fixes", "for", "identifier", "if",
   "imports", "in", "infix", "infixl", "infixr", "is",
-  "notes", "obtains", "open", "output", "overloaded", "shows",
-  "structure", "unchecked", "uses", "where", "|"];
+  "notes", "obtains", "open", "output", "overloaded", "pervasive",
+  "shows", "structure", "unchecked", "uses", "where", "|"];
+
 
 
 (** init and exit **)
@@ -337,7 +338,7 @@
 
 val _ =
   OuterSyntax.local_theory "declaration" "generic ML declaration" (K.tag_ml K.thy_decl)
-    (P.ML_source >> IsarCmd.declaration);
+    (P.opt_keyword "pervasive" -- P.ML_source >> uncurry IsarCmd.declaration);
 
 val _ =
   OuterSyntax.local_theory "simproc_setup" "define simproc in ML" (K.tag_ml K.thy_decl)
--- a/src/Pure/Isar/local_theory.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/Pure/Isar/local_theory.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -27,6 +27,7 @@
   val map_contexts: (Context.generic -> Context.generic) -> local_theory -> local_theory
   val standard_morphism: local_theory -> Proof.context -> morphism
   val target_morphism: local_theory -> morphism
+  val global_morphism: local_theory -> morphism
   val pretty: local_theory -> Pretty.T list
   val abbrev: Syntax.mode -> (binding * mixfix) * term -> local_theory ->
     (term * term) * local_theory
@@ -35,9 +36,9 @@
   val note: string -> Attrib.binding * thm list -> local_theory -> (string * thm list) * local_theory
   val notes: string -> (Attrib.binding * (thm list * Attrib.src list) list) list ->
     local_theory -> (string * thm list) list * local_theory
-  val type_syntax: declaration -> local_theory -> local_theory
-  val term_syntax: declaration -> local_theory -> local_theory
-  val declaration: declaration -> local_theory -> local_theory
+  val type_syntax: bool -> declaration -> local_theory -> local_theory
+  val term_syntax: bool -> declaration -> local_theory -> local_theory
+  val declaration: bool -> declaration -> local_theory -> local_theory
   val notation: bool -> Syntax.mode -> (term * mixfix) list -> local_theory -> local_theory
   val init: string -> operations -> Proof.context -> local_theory
   val restore: local_theory -> local_theory
@@ -65,9 +66,9 @@
   notes: string ->
     (Attrib.binding * (thm list * Attrib.src list) list) list ->
     local_theory -> (string * thm list) list * local_theory,
-  type_syntax: declaration -> local_theory -> local_theory,
-  term_syntax: declaration -> local_theory -> local_theory,
-  declaration: declaration -> local_theory -> local_theory,
+  type_syntax: bool -> declaration -> local_theory -> local_theory,
+  term_syntax: bool -> declaration -> local_theory -> local_theory,
+  declaration: bool -> declaration -> local_theory -> local_theory,
   reinit: local_theory -> local_theory,
   exit: local_theory -> Proof.context};
 
@@ -174,27 +175,27 @@
   Morphism.binding_morphism (Name_Space.transform_binding (naming_of lthy));
 
 fun target_morphism lthy = standard_morphism lthy (target_of lthy);
+fun global_morphism lthy = standard_morphism lthy (ProofContext.init (ProofContext.theory_of lthy));
 
 
 (* basic operations *)
 
 fun operation f lthy = f (#operations (get_lthy lthy)) lthy;
-fun operation1 f x = operation (fn ops => f ops x);
 fun operation2 f x y lthy = operation (fn ops => f ops x y) lthy;
 
 val pretty = operation #pretty;
 val abbrev = apsnd checkpoint ooo operation2 #abbrev;
 val define = apsnd checkpoint ooo operation2 #define;
 val notes = apsnd checkpoint ooo operation2 #notes;
-val type_syntax = checkpoint oo operation1 #type_syntax;
-val term_syntax = checkpoint oo operation1 #term_syntax;
-val declaration = checkpoint oo operation1 #declaration;
+val type_syntax = checkpoint ooo operation2 #type_syntax;
+val term_syntax = checkpoint ooo operation2 #term_syntax;
+val declaration = checkpoint ooo operation2 #declaration;
 
 fun note kind (a, ths) = notes kind [(a, [(ths, [])])] #>> the_single;
 
 fun notation add mode raw_args lthy =
   let val args = map (apfst (Morphism.term (target_morphism lthy))) raw_args
-  in term_syntax (ProofContext.target_notation add mode args) lthy end;
+  in term_syntax false (ProofContext.target_notation add mode args) lthy end;
 
 
 (* init *)
--- a/src/Pure/Isar/spec_rules.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/Pure/Isar/spec_rules.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -1,18 +1,19 @@
 (*  Title:      Pure/Isar/spec_rules.ML
     Author:     Makarius
 
-Rules that characterize functional/relational specifications.  NB: In
-the face of arbitrary morphisms, the original shape of specifications
-may get transformed almost arbitrarily.
+Rules that characterize specifications, with rough classification.
+NB: In the face of arbitrary morphisms, the original shape of
+specifications may get lost.
 *)
 
 signature SPEC_RULES =
 sig
-  datatype kind = Functional | Relational | Co_Relational
-  val dest: Proof.context -> (kind * (term * thm list) list) list
-  val dest_global: theory -> (kind * (term * thm list) list) list
-  val add: kind * (term * thm list) list -> local_theory -> local_theory
-  val add_global: kind * (term * thm list) list -> theory -> theory
+  datatype rough_classification = Unknown | Equational | Inductive | Co_Inductive
+  type spec = rough_classification * (term list * thm list)
+  val get: Proof.context -> spec list
+  val get_global: theory -> spec list
+  val add: rough_classification -> term list * thm list -> local_theory -> local_theory
+  val add_global: rough_classification -> term list * thm list -> theory -> theory
 end;
 
 structure Spec_Rules: SPEC_RULES =
@@ -20,30 +21,34 @@
 
 (* maintain rules *)
 
-datatype kind = Functional | Relational | Co_Relational;
+datatype rough_classification = Unknown | Equational | Inductive | Co_Inductive;
+type spec = rough_classification * (term list * thm list);
 
 structure Rules = GenericDataFun
 (
-  type T = (kind * (term * thm list) list) Item_Net.T;
+  type T = spec Item_Net.T;
   val empty : T =
     Item_Net.init
-      (fn ((k1, spec1), (k2, spec2)) => k1 = k2 andalso
-        eq_list (fn ((t1, ths1), (t2, ths2)) =>
-          t1 aconv t2 andalso eq_list Thm.eq_thm_prop (ths1, ths2)) (spec1, spec2))
-      (map #1 o #2);
+      (fn ((class1, (ts1, ths1)), (class2, (ts2, ths2))) =>
+        class1 = class2 andalso
+        eq_list (op aconv) (ts1, ts2) andalso
+        eq_list Thm.eq_thm_prop (ths1, ths2))
+      (#1 o #2);
   val extend = I;
   fun merge _ = Item_Net.merge;
 );
 
-val dest = Item_Net.content o Rules.get o Context.Proof;
-val dest_global = Item_Net.content o Rules.get o Context.Theory;
+val get = Item_Net.content o Rules.get o Context.Proof;
+val get_global = Item_Net.content o Rules.get o Context.Theory;
 
-fun add (kind, specs) = LocalTheory.declaration
+fun add class (ts, ths) = LocalTheory.declaration true
   (fn phi =>
-    let val specs' = map (fn (t, ths) => (Morphism.term phi t, Morphism.fact phi ths)) specs;
-    in Rules.map (Item_Net.update (kind, specs')) end);
+    let
+      val ts' = map (Morphism.term phi) ts;
+      val ths' = map (Morphism.thm phi) ths;
+    in Rules.map (Item_Net.update (class, (ts', ths'))) end);
 
-fun add_global entry =
-  Context.theory_map (Rules.map (Item_Net.update entry));
+fun add_global class spec =
+  Context.theory_map (Rules.map (Item_Net.update (class, spec)));
 
 end;
--- a/src/Pure/Isar/specification.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/Pure/Isar/specification.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -201,19 +201,23 @@
                 Position.str_of (Binding.pos_of b));
           in (b, mx) end);
     val name = Thm.def_binding_optional b raw_name;
-    val ((lhs, (_, th)), lthy2) = lthy
+    val ((lhs, (_, raw_th)), lthy2) = lthy
       |> LocalTheory.define Thm.definitionK
         (var, ((Binding.suffix_name "_raw" name, []), rhs));
-    val ((def_name, [th']), lthy3) = lthy2
+
+    val th = prove lthy2 raw_th;
+    val lthy3 = lthy2 |> Spec_Rules.add Spec_Rules.Equational ([lhs], [th]);
+
+    val ((def_name, [th']), lthy4) = lthy3
       |> LocalTheory.note Thm.definitionK
-        ((name, Predicate_Compile_Preproc_Const_Defs.add_attrib :: Code.add_default_eqn_attrib :: atts),
-          [prove lthy2 th]);
+        ((name, Predicate_Compile_Preproc_Const_Defs.add_attrib ::
+            Code.add_default_eqn_attrib :: atts), [th]);
 
-    val lhs' = Morphism.term (LocalTheory.target_morphism lthy3) lhs;
+    val lhs' = Morphism.term (LocalTheory.target_morphism lthy4) lhs;
     val _ =
       if not do_print then ()
-      else print_consts lthy3 (member (op =) (Term.add_frees lhs' [])) [(x, T)];
-  in ((lhs, (def_name, th')), lthy3) end;
+      else print_consts lthy4 (member (op =) (Term.add_frees lhs' [])) [(x, T)];
+  in ((lhs, (def_name, th')), lthy4) end;
 
 val definition = gen_def false check_free_spec;
 val definition_cmd = gen_def true read_free_spec;
--- a/src/Pure/Isar/theory_target.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/Pure/Isar/theory_target.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -71,26 +71,38 @@
      else pretty_thy ctxt target is_class);
 
 
-(* target declarations *)
+(* generic declarations *)
+
+local
 
-fun target_decl add (Target {target, ...}) d lthy =
+fun direct_decl decl =
+  let val decl0 = Morphism.form decl in
+    LocalTheory.theory (Context.theory_map decl0) #>
+    LocalTheory.target (Context.proof_map decl0)
+  end;
+
+fun target_decl add (Target {target, ...}) pervasive decl lthy =
   let
-    val d' = Morphism.transform (LocalTheory.target_morphism lthy) d;
-    val d0 = Morphism.form d';
+    val global_decl = Morphism.transform (LocalTheory.global_morphism lthy) decl;
+    val target_decl = Morphism.transform (LocalTheory.target_morphism lthy) decl;
   in
     if target = "" then
       lthy
-      |> LocalTheory.theory (Context.theory_map d0)
-      |> LocalTheory.target (Context.proof_map d0)
+      |> direct_decl target_decl
     else
       lthy
-      |> LocalTheory.target (add target d')
+      |> pervasive ? direct_decl global_decl
+      |> LocalTheory.target (add target target_decl)
   end;
 
+in
+
 val type_syntax = target_decl Locale.add_type_syntax;
 val term_syntax = target_decl Locale.add_term_syntax;
 val declaration = target_decl Locale.add_declaration;
 
+end;
+
 fun class_target (Target {target, ...}) f =
   LocalTheory.raw_theory f #>
   LocalTheory.target (Class_Target.refresh_syntax target);
@@ -178,7 +190,9 @@
     val b' = Morphism.binding phi b;
     val rhs' = Morphism.term phi rhs;
     val arg = (b', Term.close_schematic_term rhs');
-    val similar_body = Type.similar_types (rhs, rhs');
+(*    val similar_body = Type.similar_types (rhs, rhs'); *)
+    val same_shape = op aconv o pairself (Term.map_types (fn _ => Term.dummyT));
+    val similar_body = same_shape (rhs, rhs');
     (* FIXME workaround based on educated guess *)
     val prefix' = Binding.prefix_of b';
     val class_global =
@@ -219,7 +233,7 @@
     val t = Term.list_comb (const, map Free xs);
   in
     lthy'
-    |> is_locale ? term_syntax ta (locale_const ta Syntax.mode_default ((b, mx2), t))
+    |> is_locale ? term_syntax ta false (locale_const ta Syntax.mode_default ((b, mx2), t))
     |> is_class ? class_target ta (Class_Target.declare target ((b, mx1), t))
     |> LocalDefs.add_def ((b, NoSyn), t)
   end;
@@ -244,7 +258,7 @@
         LocalTheory.theory_result (Sign.add_abbrev PrintMode.internal (b, global_rhs))
         #-> (fn (lhs, _) =>
           let val lhs' = Term.list_comb (Logic.unvarify lhs, xs) in
-            term_syntax ta (locale_const ta prmode ((b, mx2), lhs')) #>
+            term_syntax ta false (locale_const ta prmode ((b, mx2), lhs')) #>
             is_class ? class_target ta (Class_Target.abbrev target prmode ((b, mx1), t'))
           end)
       else
--- a/src/Pure/Tools/named_thms.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/Pure/Tools/named_thms.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -1,8 +1,7 @@
 (*  Title:      Pure/Tools/named_thms.ML
     Author:     Makarius
 
-Named collections of theorems in canonical order.  Based on naive data
-structures -- not scalable!
+Named collections of theorems in canonical order.
 *)
 
 signature NAMED_THMS =
@@ -20,22 +19,23 @@
 
 structure Data = GenericDataFun
 (
-  type T = thm list;
-  val empty = [];
+  type T = thm Item_Net.T;
+  val empty = Thm.full_rules;
   val extend = I;
-  fun merge _ = Thm.merge_thms;
+  fun merge _ = Item_Net.merge;
 );
 
-val get = Data.get o Context.Proof;
+val content = Item_Net.content o Data.get;
+val get = content o Context.Proof;
 
-val add_thm = Data.map o Thm.add_thm;
-val del_thm = Data.map o Thm.del_thm;
+val add_thm = Data.map o Item_Net.update;
+val del_thm = Data.map o Item_Net.remove;
 
 val add = Thm.declaration_attribute add_thm;
 val del = Thm.declaration_attribute del_thm;
 
 val setup =
   Attrib.setup (Binding.name name) (Attrib.add_del add del) ("declaration of " ^ description) #>
-  PureThy.add_thms_dynamic (Binding.name name, Data.get);
+  PureThy.add_thms_dynamic (Binding.name name, content);
 
 end;
--- a/src/Pure/more_thm.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/Pure/more_thm.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -48,6 +48,7 @@
   val add_thm: thm -> thm list -> thm list
   val del_thm: thm -> thm list -> thm list
   val merge_thms: thm list * thm list -> thm list
+  val full_rules: thm Item_Net.T
   val intro_rules: thm Item_Net.T
   val elim_rules: thm Item_Net.T
   val elim_implies: thm -> thm -> thm
@@ -246,6 +247,7 @@
 val del_thm = remove eq_thm_prop;
 val merge_thms = merge eq_thm_prop;
 
+val full_rules = Item_Net.init eq_thm_prop (single o Thm.full_prop_of);
 val intro_rules = Item_Net.init eq_thm_prop (single o Thm.concl_of);
 val elim_rules = Item_Net.init eq_thm_prop (single o Thm.major_prem_of);
 
--- a/src/Pure/simplifier.ML	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/Pure/simplifier.ML	Sat Nov 07 07:37:20 2009 -0800
@@ -192,7 +192,7 @@
        identifier = identifier}
       |> morph_simproc (LocalTheory.target_morphism lthy);
   in
-    lthy |> LocalTheory.declaration (fn phi =>
+    lthy |> LocalTheory.declaration false (fn phi =>
       let
         val b' = Morphism.binding phi b;
         val simproc' = morph_simproc phi simproc;
--- a/src/ZF/IsaMakefile	Fri Nov 06 09:50:37 2009 -0800
+++ b/src/ZF/IsaMakefile	Sat Nov 07 07:37:20 2009 -0800
@@ -143,7 +143,7 @@
 ## clean
 
 clean:
-	@rm -f $(OUT)/ZF $(LOG)/ZF.gz $(LOG)/ZF-AC.gz $(LOG)/ZF-Coind.gz \
-	  $(LOG)/ZF-Constructible.gz $(LOG)/ZF-ex.gz \
-          $(LOG)/ZF-IMP.gz $(LOG)/ZF-Resid.gz \
-	  $(LOG)/ZF-UNITY.gz
+	@rm -f $(OUT)/ZF $(LOG)/ZF.gz $(LOG)/ZF-AC.gz		\
+	  $(LOG)/ZF-Coind.gz $(LOG)/ZF-Constructible.gz		\
+	  $(LOG)/ZF-ex.gz $(LOG)/ZF-IMP.gz $(LOG)/ZF-Induct.gz	\
+	  $(LOG)/ZF-Resid.gz $(LOG)/ZF-UNITY.gz