use Z3's builtin support for div and mod
authorboehmes
Thu, 27 May 2010 14:55:53 +0200
changeset 37151 3e9e8dfb3c98
parent 37150 73e738371c90
child 37152 f309fd16a0bd
use Z3's builtin support for div and mod
src/HOL/SMT.thy
src/HOL/SMT_Examples/SMT_Examples.certs
src/HOL/SMT_Examples/SMT_Examples.thy
src/HOL/SMT_Examples/SMT_Tests.certs
src/HOL/SMT_Examples/SMT_Tests.thy
src/HOL/Tools/SMT/z3_interface.ML
src/HOL/Tools/SMT/z3_proof_tools.ML
--- a/src/HOL/SMT.thy	Thu May 27 14:54:13 2010 +0200
+++ b/src/HOL/SMT.thy	Thu May 27 14:55:53 2010 +0200
@@ -88,6 +88,29 @@
 
 
 
+subsection {* Integer division and modulo for Z3 *}
+
+definition z3div :: "int \<Rightarrow> int \<Rightarrow> int" where
+  "z3div k l = (if 0 \<le> l then k div l else -(k div (-l)))"
+
+definition z3mod :: "int \<Rightarrow> int \<Rightarrow> int" where
+  "z3mod k l = (if 0 \<le> l then k mod l else k mod (-l))"
+
+lemma div_by_z3div: "k div l = (
+     if k = 0 \<or> l = 0 then 0
+     else if (0 < k \<and> 0 < l) \<or> (k < 0 \<and> 0 < l) then z3div k l
+     else z3div (-k) (-l))"
+  by (auto simp add: z3div_def)
+
+lemma mod_by_z3mod: "k mod l = (
+     if l = 0 then k
+     else if k = 0 then 0
+     else if (0 < k \<and> 0 < l) \<or> (k < 0 \<and> 0 < l) then z3mod k l
+     else - z3mod (-k) (-l))"
+  by (auto simp add: z3mod_def)
+
+
+
 subsection {* Setup *}
 
 use "Tools/SMT/smt_monomorph.ML"
@@ -292,6 +315,6 @@
 
 hide_type (open) pattern
 hide_const Pattern "apply" term_eq
-hide_const (open) trigger pat nopat
+hide_const (open) trigger pat nopat z3div z3mod
 
 end
--- a/src/HOL/SMT_Examples/SMT_Examples.certs	Thu May 27 14:54:13 2010 +0200
+++ b/src/HOL/SMT_Examples/SMT_Examples.certs	Thu May 27 14:55:53 2010 +0200
@@ -13273,3 +13273,2923 @@
 #223 := [asserted]: #31
 [unit-resolution #223 #592]: false
 unsat
+deae667b0e6d09bfcbbf377d5f8aa82b0236a988 348 0
+#2 := false
+#11 := 0::int
+decl f5 :: int
+#38 := f5
+#421 := (>= f5 0::int)
+#427 := (<= f5 0::int)
+#755 := (not #427)
+#411 := (not #421)
+#756 := (or #411 #755)
+#717 := (not #756)
+#41 := 2::int
+#445 := (mod f5 2::int)
+#71 := -1::int
+#446 := (* -1::int #445)
+decl f4 :: (-> int int int)
+#42 := (f4 f5 2::int)
+#447 := (+ #42 #446)
+#444 := (= #447 0::int)
+#707 := (not #444)
+#719 := (>= #447 0::int)
+#649 := (not #719)
+#656 := [hypothesis]: #719
+#691 := (>= #445 0::int)
+#1 := true
+#62 := [true-axiom]: true
+#667 := (or false #691)
+#645 := [th-lemma]: #667
+#646 := [unit-resolution #645 #62]: #691
+#202 := (>= #42 0::int)
+#205 := (not #202)
+#39 := 1::int
+#43 := (* 2::int #42)
+#44 := (+ #43 1::int)
+#45 := (+ f5 #44)
+#40 := (+ f5 1::int)
+#46 := (<= #40 #45)
+#47 := (not #46)
+#210 := (iff #47 #205)
+#184 := (+ f5 #43)
+#185 := (+ 1::int #184)
+#175 := (+ 1::int f5)
+#190 := (<= #175 #185)
+#193 := (not #190)
+#208 := (iff #193 #205)
+#199 := (>= #43 0::int)
+#196 := (not #199)
+#206 := (iff #196 #205)
+#203 := (iff #199 #202)
+#204 := [rewrite]: #203
+#207 := [monotonicity #204]: #206
+#200 := (iff #193 #196)
+#197 := (iff #190 #199)
+#198 := [rewrite]: #197
+#201 := [monotonicity #198]: #200
+#209 := [trans #201 #207]: #208
+#194 := (iff #47 #193)
+#191 := (iff #46 #190)
+#188 := (= #45 #185)
+#178 := (+ 1::int #43)
+#181 := (+ f5 #178)
+#186 := (= #181 #185)
+#187 := [rewrite]: #186
+#182 := (= #45 #181)
+#179 := (= #44 #178)
+#180 := [rewrite]: #179
+#183 := [monotonicity #180]: #182
+#189 := [trans #183 #187]: #188
+#176 := (= #40 #175)
+#177 := [rewrite]: #176
+#192 := [monotonicity #177 #189]: #191
+#195 := [monotonicity #192]: #194
+#211 := [trans #195 #209]: #210
+#174 := [asserted]: #47
+#212 := [mp #174 #211]: #205
+#648 := [th-lemma #212 #646 #656]: false
+#650 := [lemma #648]: #649
+#662 := (or #707 #719)
+#663 := [th-lemma]: #662
+#664 := [unit-resolution #663 #650]: #707
+#639 := (or #717 #444)
+#743 := -2::int
+#441 := (* -1::int f5)
+#467 := (mod #441 -2::int)
+#363 := (+ #42 #467)
+#462 := (= #363 0::int)
+#741 := (ite #756 #444 #462)
+#765 := (= #42 0::int)
+#766 := (= f5 0::int)
+#452 := (ite #766 #765 #741)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#777 := (pattern #29)
+#75 := (* -1::int #9)
+#72 := (* -1::int #8)
+#130 := (mod #72 #75)
+#289 := (+ #29 #130)
+#290 := (= #289 0::int)
+#30 := (mod #8 #9)
+#286 := (* -1::int #30)
+#287 := (+ #29 #286)
+#288 := (= #287 0::int)
+#97 := (<= #9 0::int)
+#93 := (<= #8 0::int)
+#228 := (or #93 #97)
+#229 := (not #228)
+#104 := (>= #8 0::int)
+#220 := (or #97 #104)
+#221 := (not #220)
+#235 := (or #221 #229)
+#291 := (ite #235 #288 #290)
+#285 := (= #29 0::int)
+#12 := (= #8 0::int)
+#292 := (ite #12 #285 #291)
+#284 := (= #8 #29)
+#13 := (= #9 0::int)
+#293 := (ite #13 #284 #292)
+#778 := (forall (vars (?v0 int) (?v1 int)) (:pat #777) #293)
+#296 := (forall (vars (?v0 int) (?v1 int)) #293)
+#781 := (iff #296 #778)
+#779 := (iff #293 #293)
+#780 := [refl]: #779
+#782 := [quant-intro #780]: #781
+#136 := (* -1::int #130)
+#253 := (ite #235 #30 #136)
+#256 := (ite #12 0::int #253)
+#259 := (ite #13 #8 #256)
+#262 := (= #29 #259)
+#265 := (forall (vars (?v0 int) (?v1 int)) #262)
+#297 := (iff #265 #296)
+#294 := (iff #262 #293)
+#295 := [rewrite]: #294
+#298 := [quant-intro #295]: #297
+#105 := (not #104)
+#98 := (not #97)
+#108 := (and #98 #105)
+#94 := (not #93)
+#101 := (and #94 #98)
+#111 := (or #101 #108)
+#156 := (ite #111 #30 #136)
+#159 := (ite #12 0::int #156)
+#162 := (ite #13 #8 #159)
+#165 := (= #29 #162)
+#168 := (forall (vars (?v0 int) (?v1 int)) #165)
+#266 := (iff #168 #265)
+#263 := (iff #165 #262)
+#260 := (= #162 #259)
+#257 := (= #159 #256)
+#254 := (= #156 #253)
+#238 := (iff #111 #235)
+#232 := (or #229 #221)
+#236 := (iff #232 #235)
+#237 := [rewrite]: #236
+#233 := (iff #111 #232)
+#230 := (iff #108 #221)
+#231 := [rewrite]: #230
+#218 := (iff #101 #229)
+#219 := [rewrite]: #218
+#234 := [monotonicity #219 #231]: #233
+#239 := [trans #234 #237]: #238
+#255 := [monotonicity #239]: #254
+#258 := [monotonicity #255]: #257
+#261 := [monotonicity #258]: #260
+#264 := [monotonicity #261]: #263
+#267 := [quant-intro #264]: #266
+#216 := (~ #168 #168)
+#213 := (~ #165 #165)
+#226 := [refl]: #213
+#217 := [nnf-pos #226]: #216
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#171 := (iff #37 #168)
+#65 := (and #16 #18)
+#68 := (or #17 #65)
+#141 := (ite #68 #30 #136)
+#144 := (ite #12 0::int #141)
+#147 := (ite #13 #8 #144)
+#150 := (= #29 #147)
+#153 := (forall (vars (?v0 int) (?v1 int)) #150)
+#169 := (iff #153 #168)
+#166 := (iff #150 #165)
+#163 := (= #147 #162)
+#160 := (= #144 #159)
+#157 := (= #141 #156)
+#112 := (iff #68 #111)
+#109 := (iff #65 #108)
+#106 := (iff #18 #105)
+#107 := [rewrite]: #106
+#99 := (iff #16 #98)
+#100 := [rewrite]: #99
+#110 := [monotonicity #100 #107]: #109
+#102 := (iff #17 #101)
+#95 := (iff #15 #94)
+#96 := [rewrite]: #95
+#103 := [monotonicity #96 #100]: #102
+#113 := [monotonicity #103 #110]: #112
+#158 := [monotonicity #113]: #157
+#161 := [monotonicity #158]: #160
+#164 := [monotonicity #161]: #163
+#167 := [monotonicity #164]: #166
+#170 := [quant-intro #167]: #169
+#154 := (iff #37 #153)
+#151 := (iff #36 #150)
+#148 := (= #35 #147)
+#145 := (= #34 #144)
+#142 := (= #33 #141)
+#139 := (= #32 #136)
+#133 := (- #130)
+#137 := (= #133 #136)
+#138 := [rewrite]: #137
+#134 := (= #32 #133)
+#131 := (= #31 #130)
+#76 := (= #23 #75)
+#77 := [rewrite]: #76
+#73 := (= #22 #72)
+#74 := [rewrite]: #73
+#132 := [monotonicity #74 #77]: #131
+#135 := [monotonicity #132]: #134
+#140 := [trans #135 #138]: #139
+#69 := (iff #20 #68)
+#66 := (iff #19 #65)
+#67 := [rewrite]: #66
+#70 := [monotonicity #67]: #69
+#143 := [monotonicity #70 #140]: #142
+#146 := [monotonicity #143]: #145
+#149 := [monotonicity #146]: #148
+#152 := [monotonicity #149]: #151
+#155 := [quant-intro #152]: #154
+#172 := [trans #155 #170]: #171
+#129 := [asserted]: #37
+#173 := [mp #129 #172]: #168
+#227 := [mp~ #173 #217]: #168
+#268 := [mp #227 #267]: #265
+#299 := [mp #268 #298]: #296
+#783 := [mp #299 #782]: #778
+#736 := (not #778)
+#725 := (or #736 #452)
+#357 := (* -1::int 2::int)
+#442 := (mod #441 #357)
+#443 := (+ #42 #442)
+#434 := (= #443 0::int)
+#448 := (<= 2::int 0::int)
+#762 := (or #427 #448)
+#764 := (not #762)
+#551 := (or #448 #421)
+#758 := (not #551)
+#432 := (or #758 #764)
+#433 := (ite #432 #444 #434)
+#767 := (ite #766 #765 #433)
+#768 := (= f5 #42)
+#763 := (= 2::int 0::int)
+#769 := (ite #763 #768 #767)
+#726 := (or #736 #769)
+#722 := (iff #726 #725)
+#728 := (iff #725 #725)
+#729 := [rewrite]: #728
+#735 := (iff #769 #452)
+#455 := (ite false #768 #452)
+#449 := (iff #455 #452)
+#731 := [rewrite]: #449
+#733 := (iff #769 #455)
+#453 := (iff #767 #452)
+#738 := (iff #433 #741)
+#463 := (iff #434 #462)
+#739 := (= #443 #363)
+#468 := (= #442 #467)
+#744 := (= #357 -2::int)
+#466 := [rewrite]: #744
+#469 := [monotonicity #466]: #468
+#740 := [monotonicity #469]: #739
+#737 := [monotonicity #740]: #463
+#754 := (iff #432 #756)
+#395 := (iff #764 #755)
+#390 := (iff #762 #427)
+#749 := (or #427 false)
+#746 := (iff #749 #427)
+#752 := [rewrite]: #746
+#750 := (iff #762 #749)
+#424 := (iff #448 false)
+#760 := [rewrite]: #424
+#751 := [monotonicity #760]: #750
+#753 := [trans #751 #752]: #390
+#396 := [monotonicity #753]: #395
+#747 := (iff #758 #411)
+#409 := (iff #551 #421)
+#420 := (or false #421)
+#745 := (iff #420 #421)
+#408 := [rewrite]: #745
+#761 := (iff #551 #420)
+#404 := [monotonicity #760]: #761
+#410 := [trans #404 #408]: #409
+#748 := [monotonicity #410]: #747
+#757 := [monotonicity #748 #396]: #754
+#742 := [monotonicity #757 #737]: #738
+#454 := [monotonicity #742]: #453
+#759 := (iff #763 false)
+#419 := [rewrite]: #759
+#734 := [monotonicity #419 #454]: #733
+#732 := [trans #734 #731]: #735
+#723 := [monotonicity #732]: #722
+#724 := [trans #723 #729]: #722
+#727 := [quant-inst]: #726
+#730 := [mp #727 #724]: #725
+#665 := [unit-resolution #730 #783]: #452
+#595 := (not #766)
+#594 := (not #452)
+#651 := (or #594 #595)
+#700 := (not #765)
+#666 := (or #700 #202)
+#690 := [th-lemma]: #666
+#684 := [unit-resolution #690 #212]: #700
+#554 := (or #594 #595 #765)
+#702 := [def-axiom]: #554
+#652 := [unit-resolution #702 #684]: #651
+#647 := [unit-resolution #652 #665]: #595
+#604 := (or #594 #766 #741)
+#699 := [def-axiom]: #604
+#653 := [unit-resolution #699 #647 #665]: #741
+#721 := (not #741)
+#550 := (or #721 #717 #444)
+#552 := [def-axiom]: #550
+#635 := [unit-resolution #552 #653]: #639
+#636 := [unit-resolution #635 #664]: #717
+#572 := (or #756 #421)
+#573 := [def-axiom]: #572
+#637 := [unit-resolution #573 #636]: #421
+#715 := (or #756 #427)
+#716 := [def-axiom]: #715
+#640 := [unit-resolution #716 #636]: #427
+#643 := (or #755 #411)
+#641 := (or #766 #755 #411)
+#642 := [th-lemma]: #641
+#638 := [unit-resolution #642 #647]: #643
+[unit-resolution #638 #640 #637]: false
+unsat
+b454cfdd6e83abb6ce89d3619b7a03d74c715ceb 354 0
+#2 := false
+#11 := 0::int
+decl f5 :: int
+#38 := f5
+#444 := (<= f5 0::int)
+#760 := (>= f5 0::int)
+#406 := (not #760)
+#749 := (not #444)
+#753 := (or #749 #406)
+#716 := (not #753)
+#39 := 2::int
+#441 := (mod f5 2::int)
+#70 := -1::int
+#442 := (* -1::int #441)
+decl f4 :: (-> int int int)
+#40 := (f4 f5 2::int)
+#370 := (+ #40 #442)
+#443 := (= #370 0::int)
+#589 := (not #443)
+#546 := (<= #370 0::int)
+#649 := (not #546)
+#657 := (>= #441 2::int)
+#658 := (not #657)
+#1 := true
+#61 := [true-axiom]: true
+#645 := (or false #658)
+#646 := [th-lemma]: #645
+#647 := [unit-resolution #646 #61]: #658
+#648 := [hypothesis]: #546
+#200 := (>= #40 2::int)
+#43 := 3::int
+#44 := (+ f5 3::int)
+#41 := (+ #40 #40)
+#42 := (+ f5 #41)
+#45 := (< #42 #44)
+#46 := (not #45)
+#205 := (iff #46 #200)
+#180 := (+ 3::int f5)
+#174 := (* 2::int #40)
+#177 := (+ f5 #174)
+#183 := (< #177 #180)
+#186 := (not #183)
+#203 := (iff #186 #200)
+#192 := (>= #174 3::int)
+#201 := (iff #192 #200)
+#202 := [rewrite]: #201
+#198 := (iff #186 #192)
+#190 := (not #192)
+#193 := (not #190)
+#196 := (iff #193 #192)
+#197 := [rewrite]: #196
+#194 := (iff #186 #193)
+#191 := (iff #183 #190)
+#189 := [rewrite]: #191
+#195 := [monotonicity #189]: #194
+#199 := [trans #195 #197]: #198
+#204 := [trans #199 #202]: #203
+#187 := (iff #46 #186)
+#184 := (iff #45 #183)
+#181 := (= #44 #180)
+#182 := [rewrite]: #181
+#178 := (= #42 #177)
+#175 := (= #41 #174)
+#176 := [rewrite]: #175
+#179 := [monotonicity #176]: #178
+#185 := [monotonicity #179 #182]: #184
+#188 := [monotonicity #185]: #187
+#206 := [trans #188 #204]: #205
+#173 := [asserted]: #46
+#207 := [mp #173 #206]: #200
+#643 := [th-lemma #207 #648 #647]: false
+#635 := [lemma #643]: #649
+#652 := (or #589 #546)
+#663 := [th-lemma]: #652
+#641 := [unit-resolution #663 #635]: #589
+#613 := (or #716 #443)
+#464 := -2::int
+#437 := (* -1::int f5)
+#735 := (mod #437 -2::int)
+#459 := (+ #40 #735)
+#734 := (= #459 0::int)
+#449 := (ite #753 #443 #734)
+#429 := (= #40 0::int)
+#761 := (= f5 0::int)
+#729 := (ite #761 #429 #449)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#773 := (pattern #29)
+#74 := (* -1::int #9)
+#71 := (* -1::int #8)
+#129 := (mod #71 #74)
+#284 := (+ #29 #129)
+#285 := (= #284 0::int)
+#30 := (mod #8 #9)
+#281 := (* -1::int #30)
+#282 := (+ #29 #281)
+#283 := (= #282 0::int)
+#96 := (<= #9 0::int)
+#92 := (<= #8 0::int)
+#223 := (or #92 #96)
+#224 := (not #223)
+#103 := (>= #8 0::int)
+#215 := (or #96 #103)
+#216 := (not #215)
+#230 := (or #216 #224)
+#286 := (ite #230 #283 #285)
+#280 := (= #29 0::int)
+#12 := (= #8 0::int)
+#287 := (ite #12 #280 #286)
+#279 := (= #8 #29)
+#13 := (= #9 0::int)
+#288 := (ite #13 #279 #287)
+#774 := (forall (vars (?v0 int) (?v1 int)) (:pat #773) #288)
+#291 := (forall (vars (?v0 int) (?v1 int)) #288)
+#777 := (iff #291 #774)
+#775 := (iff #288 #288)
+#776 := [refl]: #775
+#778 := [quant-intro #776]: #777
+#135 := (* -1::int #129)
+#248 := (ite #230 #30 #135)
+#251 := (ite #12 0::int #248)
+#254 := (ite #13 #8 #251)
+#257 := (= #29 #254)
+#260 := (forall (vars (?v0 int) (?v1 int)) #257)
+#292 := (iff #260 #291)
+#289 := (iff #257 #288)
+#290 := [rewrite]: #289
+#293 := [quant-intro #290]: #292
+#104 := (not #103)
+#97 := (not #96)
+#107 := (and #97 #104)
+#93 := (not #92)
+#100 := (and #93 #97)
+#110 := (or #100 #107)
+#155 := (ite #110 #30 #135)
+#158 := (ite #12 0::int #155)
+#161 := (ite #13 #8 #158)
+#164 := (= #29 #161)
+#167 := (forall (vars (?v0 int) (?v1 int)) #164)
+#261 := (iff #167 #260)
+#258 := (iff #164 #257)
+#255 := (= #161 #254)
+#252 := (= #158 #251)
+#249 := (= #155 #248)
+#233 := (iff #110 #230)
+#227 := (or #224 #216)
+#231 := (iff #227 #230)
+#232 := [rewrite]: #231
+#228 := (iff #110 #227)
+#225 := (iff #107 #216)
+#226 := [rewrite]: #225
+#213 := (iff #100 #224)
+#214 := [rewrite]: #213
+#229 := [monotonicity #214 #226]: #228
+#234 := [trans #229 #232]: #233
+#250 := [monotonicity #234]: #249
+#253 := [monotonicity #250]: #252
+#256 := [monotonicity #253]: #255
+#259 := [monotonicity #256]: #258
+#262 := [quant-intro #259]: #261
+#211 := (~ #167 #167)
+#208 := (~ #164 #164)
+#221 := [refl]: #208
+#212 := [nnf-pos #221]: #211
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#170 := (iff #37 #167)
+#64 := (and #16 #18)
+#67 := (or #17 #64)
+#140 := (ite #67 #30 #135)
+#143 := (ite #12 0::int #140)
+#146 := (ite #13 #8 #143)
+#149 := (= #29 #146)
+#152 := (forall (vars (?v0 int) (?v1 int)) #149)
+#168 := (iff #152 #167)
+#165 := (iff #149 #164)
+#162 := (= #146 #161)
+#159 := (= #143 #158)
+#156 := (= #140 #155)
+#111 := (iff #67 #110)
+#108 := (iff #64 #107)
+#105 := (iff #18 #104)
+#106 := [rewrite]: #105
+#98 := (iff #16 #97)
+#99 := [rewrite]: #98
+#109 := [monotonicity #99 #106]: #108
+#101 := (iff #17 #100)
+#94 := (iff #15 #93)
+#95 := [rewrite]: #94
+#102 := [monotonicity #95 #99]: #101
+#112 := [monotonicity #102 #109]: #111
+#157 := [monotonicity #112]: #156
+#160 := [monotonicity #157]: #159
+#163 := [monotonicity #160]: #162
+#166 := [monotonicity #163]: #165
+#169 := [quant-intro #166]: #168
+#153 := (iff #37 #152)
+#150 := (iff #36 #149)
+#147 := (= #35 #146)
+#144 := (= #34 #143)
+#141 := (= #33 #140)
+#138 := (= #32 #135)
+#132 := (- #129)
+#136 := (= #132 #135)
+#137 := [rewrite]: #136
+#133 := (= #32 #132)
+#130 := (= #31 #129)
+#75 := (= #23 #74)
+#76 := [rewrite]: #75
+#72 := (= #22 #71)
+#73 := [rewrite]: #72
+#131 := [monotonicity #73 #76]: #130
+#134 := [monotonicity #131]: #133
+#139 := [trans #134 #137]: #138
+#68 := (iff #20 #67)
+#65 := (iff #19 #64)
+#66 := [rewrite]: #65
+#69 := [monotonicity #66]: #68
+#142 := [monotonicity #69 #139]: #141
+#145 := [monotonicity #142]: #144
+#148 := [monotonicity #145]: #147
+#151 := [monotonicity #148]: #150
+#154 := [quant-intro #151]: #153
+#171 := [trans #154 #169]: #170
+#128 := [asserted]: #37
+#172 := [mp #128 #171]: #167
+#222 := [mp~ #172 #212]: #167
+#263 := [mp #222 #262]: #260
+#294 := [mp #263 #293]: #291
+#779 := [mp #294 #778]: #774
+#718 := (not #774)
+#719 := (or #718 #729)
+#352 := (* -1::int 2::int)
+#438 := (mod #437 #352)
+#439 := (+ #40 #438)
+#430 := (= #439 0::int)
+#440 := (<= 2::int 0::int)
+#423 := (or #444 #440)
+#758 := (not #423)
+#417 := (or #440 #760)
+#547 := (not #417)
+#754 := (or #547 #758)
+#428 := (ite #754 #443 #430)
+#762 := (ite #761 #429 #428)
+#763 := (= f5 #40)
+#764 := (= 2::int 0::int)
+#759 := (ite #764 #763 #762)
+#724 := (or #718 #759)
+#720 := (iff #724 #719)
+#567 := (iff #719 #719)
+#568 := [rewrite]: #567
+#722 := (iff #759 #729)
+#727 := (ite false #763 #729)
+#732 := (iff #727 #729)
+#721 := [rewrite]: #732
+#731 := (iff #759 #727)
+#730 := (iff #762 #729)
+#450 := (iff #428 #449)
+#738 := (iff #430 #734)
+#733 := (= #439 #459)
+#736 := (= #438 #735)
+#465 := (= #352 -2::int)
+#358 := [rewrite]: #465
+#458 := [monotonicity #358]: #736
+#737 := [monotonicity #458]: #733
+#448 := [monotonicity #737]: #738
+#462 := (iff #754 #753)
+#392 := (or #406 #749)
+#739 := (iff #392 #753)
+#740 := [rewrite]: #739
+#752 := (iff #754 #392)
+#751 := (iff #758 #749)
+#748 := (iff #423 #444)
+#744 := (or #444 false)
+#747 := (iff #744 #444)
+#742 := [rewrite]: #747
+#745 := (iff #423 #744)
+#415 := (iff #440 false)
+#420 := [rewrite]: #415
+#746 := [monotonicity #420]: #745
+#386 := [trans #746 #742]: #748
+#391 := [monotonicity #386]: #751
+#407 := (iff #547 #406)
+#404 := (iff #417 #760)
+#756 := (or false #760)
+#400 := (iff #756 #760)
+#741 := [rewrite]: #400
+#416 := (iff #417 #756)
+#757 := [monotonicity #420]: #416
+#405 := [trans #757 #741]: #404
+#743 := [monotonicity #405]: #407
+#750 := [monotonicity #743 #391]: #752
+#463 := [trans #750 #740]: #462
+#451 := [monotonicity #463 #448]: #450
+#445 := [monotonicity #451]: #730
+#765 := (iff #764 false)
+#755 := [rewrite]: #765
+#728 := [monotonicity #755 #445]: #731
+#723 := [trans #728 #721]: #722
+#726 := [monotonicity #723]: #720
+#569 := [trans #726 #568]: #720
+#725 := [quant-inst]: #724
+#711 := [mp #725 #569]: #719
+#642 := [unit-resolution #711 #779]: #729
+#696 := (not #761)
+#695 := (not #729)
+#638 := (or #695 #696)
+#602 := (not #429)
+#712 := (<= #40 0::int)
+#644 := (not #712)
+#674 := (not #200)
+#675 := (or #644 #674)
+#631 := [th-lemma]: #675
+#632 := [unit-resolution #631 #207]: #644
+#633 := (or #602 #712)
+#636 := [th-lemma]: #633
+#637 := [unit-resolution #636 #632]: #602
+#699 := (or #695 #696 #429)
+#584 := [def-axiom]: #699
+#639 := [unit-resolution #584 #637]: #638
+#634 := [unit-resolution #639 #642]: #696
+#599 := (or #695 #761 #449)
+#601 := [def-axiom]: #599
+#640 := [unit-resolution #601 #634 #642]: #449
+#703 := (not #449)
+#705 := (or #703 #716 #443)
+#706 := [def-axiom]: #705
+#614 := [unit-resolution #706 #640]: #613
+#615 := [unit-resolution #614 #641]: #716
+#714 := (or #753 #444)
+#708 := [def-axiom]: #714
+#508 := [unit-resolution #708 #615]: #444
+#709 := (or #753 #760)
+#715 := [def-axiom]: #709
+#619 := [unit-resolution #715 #615]: #760
+#620 := (or #761 #749 #406)
+#621 := [th-lemma]: #620
+#626 := [unit-resolution #621 #634]: #753
+[unit-resolution #626 #619 #508]: false
+unsat
+0e48ace6bba696247bebe6478869416df8f68a25 943 0
+#2 := false
+#49 := 1::int
+decl f4 :: (-> int int int)
+#41 := 2::int
+decl f6 :: int
+#39 := f6
+#51 := (f4 f6 2::int)
+#407 := (>= #51 1::int)
+#11 := 0::int
+#561 := (mod f6 2::int)
+#78 := -1::int
+#562 := (* -1::int #561)
+#563 := (+ #51 #562)
+#474 := (>= #563 0::int)
+#564 := (= #563 0::int)
+decl f5 :: int
+#38 := f5
+#40 := (+ f5 f6)
+#765 := (= #40 0::int)
+#605 := (not #765)
+#421 := (<= #40 0::int)
+#751 := (not #421)
+#448 := (>= #40 0::int)
+#405 := (<= #51 1::int)
+#952 := (>= #561 2::int)
+#953 := (not #952)
+#1235 := [hypothesis]: #952
+#1 := true
+#69 := [true-axiom]: true
+#1236 := (or false #953)
+#1237 := [th-lemma]: #1236
+#1238 := [unit-resolution #1237 #69 #1235]: false
+#1239 := [lemma #1238]: #953
+#473 := (<= #563 0::int)
+#757 := (not #448)
+#855 := [hypothesis]: #757
+#428 := (or #605 #448)
+#430 := [th-lemma]: #428
+#431 := [unit-resolution #430 #855]: #605
+#1181 := (or #564 #765)
+#650 := -4::int
+#469 := (* -1::int f5)
+#647 := (mod #469 -4::int)
+#44 := 4::int
+#45 := (f4 f5 4::int)
+#635 := (+ #45 #647)
+#640 := (= #635 0::int)
+#683 := (mod f5 4::int)
+#685 := (* -1::int #683)
+#695 := (+ #45 #685)
+#696 := (= #695 0::int)
+#697 := (>= f5 0::int)
+#656 := (not #697)
+#688 := (<= f5 0::int)
+#657 := (not #688)
+#646 := (or #657 #656)
+#643 := (ite #646 #696 #640)
+#676 := (= f5 0::int)
+#577 := (not #676)
+#675 := (= #45 0::int)
+#582 := (not #675)
+#46 := 3::int
+#1034 := (= 3::int 0::int)
+#1036 := (iff #1034 false)
+#1037 := [rewrite]: #1036
+#1031 := [hypothesis]: #675
+#1032 := (= 3::int #45)
+#47 := (= #45 3::int)
+#187 := [asserted]: #47
+#1033 := [symm #187]: #1032
+#1035 := [trans #1033 #1031]: #1034
+#1038 := [mp #1035 #1037]: false
+#1039 := [lemma #1038]: #582
+#1053 := (or #577 #675)
+#617 := (ite #676 #675 #643)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#777 := (pattern #29)
+#82 := (* -1::int #9)
+#79 := (* -1::int #8)
+#137 := (mod #79 #82)
+#289 := (+ #29 #137)
+#290 := (= #289 0::int)
+#30 := (mod #8 #9)
+#286 := (* -1::int #30)
+#287 := (+ #29 #286)
+#288 := (= #287 0::int)
+#111 := (>= #8 0::int)
+#104 := (<= #9 0::int)
+#219 := (or #104 #111)
+#220 := (not #219)
+#100 := (<= #8 0::int)
+#206 := (or #100 #104)
+#204 := (not #206)
+#223 := (or #204 #220)
+#291 := (ite #223 #288 #290)
+#285 := (= #29 0::int)
+#12 := (= #8 0::int)
+#292 := (ite #12 #285 #291)
+#284 := (= #8 #29)
+#13 := (= #9 0::int)
+#293 := (ite #13 #284 #292)
+#778 := (forall (vars (?v0 int) (?v1 int)) (:pat #777) #293)
+#296 := (forall (vars (?v0 int) (?v1 int)) #293)
+#781 := (iff #296 #778)
+#779 := (iff #293 #293)
+#780 := [refl]: #779
+#782 := [quant-intro #780]: #781
+#143 := (* -1::int #137)
+#239 := (ite #223 #30 #143)
+#242 := (ite #12 0::int #239)
+#245 := (ite #13 #8 #242)
+#248 := (= #29 #245)
+#251 := (forall (vars (?v0 int) (?v1 int)) #248)
+#297 := (iff #251 #296)
+#294 := (iff #248 #293)
+#295 := [rewrite]: #294
+#298 := [quant-intro #295]: #297
+#112 := (not #111)
+#105 := (not #104)
+#115 := (and #105 #112)
+#101 := (not #100)
+#108 := (and #101 #105)
+#118 := (or #108 #115)
+#163 := (ite #118 #30 #143)
+#166 := (ite #12 0::int #163)
+#169 := (ite #13 #8 #166)
+#172 := (= #29 #169)
+#175 := (forall (vars (?v0 int) (?v1 int)) #172)
+#252 := (iff #175 #251)
+#249 := (iff #172 #248)
+#246 := (= #169 #245)
+#243 := (= #166 #242)
+#240 := (= #163 #239)
+#224 := (iff #118 #223)
+#221 := (iff #115 #220)
+#222 := [rewrite]: #221
+#217 := (iff #108 #204)
+#218 := [rewrite]: #217
+#225 := [monotonicity #218 #222]: #224
+#241 := [monotonicity #225]: #240
+#244 := [monotonicity #241]: #243
+#247 := [monotonicity #244]: #246
+#250 := [monotonicity #247]: #249
+#253 := [quant-intro #250]: #252
+#212 := (~ #175 #175)
+#214 := (~ #172 #172)
+#211 := [refl]: #214
+#207 := [nnf-pos #211]: #212
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#178 := (iff #37 #175)
+#72 := (and #16 #18)
+#75 := (or #17 #72)
+#148 := (ite #75 #30 #143)
+#151 := (ite #12 0::int #148)
+#154 := (ite #13 #8 #151)
+#157 := (= #29 #154)
+#160 := (forall (vars (?v0 int) (?v1 int)) #157)
+#176 := (iff #160 #175)
+#173 := (iff #157 #172)
+#170 := (= #154 #169)
+#167 := (= #151 #166)
+#164 := (= #148 #163)
+#119 := (iff #75 #118)
+#116 := (iff #72 #115)
+#113 := (iff #18 #112)
+#114 := [rewrite]: #113
+#106 := (iff #16 #105)
+#107 := [rewrite]: #106
+#117 := [monotonicity #107 #114]: #116
+#109 := (iff #17 #108)
+#102 := (iff #15 #101)
+#103 := [rewrite]: #102
+#110 := [monotonicity #103 #107]: #109
+#120 := [monotonicity #110 #117]: #119
+#165 := [monotonicity #120]: #164
+#168 := [monotonicity #165]: #167
+#171 := [monotonicity #168]: #170
+#174 := [monotonicity #171]: #173
+#177 := [quant-intro #174]: #176
+#161 := (iff #37 #160)
+#158 := (iff #36 #157)
+#155 := (= #35 #154)
+#152 := (= #34 #151)
+#149 := (= #33 #148)
+#146 := (= #32 #143)
+#140 := (- #137)
+#144 := (= #140 #143)
+#145 := [rewrite]: #144
+#141 := (= #32 #140)
+#138 := (= #31 #137)
+#83 := (= #23 #82)
+#84 := [rewrite]: #83
+#80 := (= #22 #79)
+#81 := [rewrite]: #80
+#139 := [monotonicity #81 #84]: #138
+#142 := [monotonicity #139]: #141
+#147 := [trans #142 #145]: #146
+#76 := (iff #20 #75)
+#73 := (iff #19 #72)
+#74 := [rewrite]: #73
+#77 := [monotonicity #74]: #76
+#150 := [monotonicity #77 #147]: #149
+#153 := [monotonicity #150]: #152
+#156 := [monotonicity #153]: #155
+#159 := [monotonicity #156]: #158
+#162 := [quant-intro #159]: #161
+#179 := [trans #162 #177]: #178
+#136 := [asserted]: #37
+#180 := [mp #136 #179]: #175
+#208 := [mp~ #180 #207]: #175
+#254 := [mp #208 #253]: #251
+#299 := [mp #254 #298]: #296
+#783 := [mp #299 #782]: #778
+#571 := (not #778)
+#628 := (or #571 #617)
+#705 := (* -1::int 4::int)
+#692 := (mod #469 #705)
+#694 := (+ #45 #692)
+#686 := (= #694 0::int)
+#693 := (<= 4::int 0::int)
+#698 := (or #693 #697)
+#687 := (not #698)
+#689 := (or #688 #693)
+#690 := (not #689)
+#684 := (or #690 #687)
+#691 := (ite #684 #696 #686)
+#678 := (ite #676 #675 #691)
+#679 := (= f5 #45)
+#680 := (= 4::int 0::int)
+#681 := (ite #680 #679 #678)
+#631 := (or #571 #681)
+#633 := (iff #631 #628)
+#634 := (iff #628 #628)
+#614 := [rewrite]: #634
+#626 := (iff #681 #617)
+#512 := (ite false #679 #617)
+#625 := (iff #512 #617)
+#630 := [rewrite]: #625
+#623 := (iff #681 #512)
+#618 := (iff #678 #617)
+#638 := (iff #691 #643)
+#641 := (iff #686 #640)
+#636 := (= #694 #635)
+#653 := (= #692 #647)
+#651 := (= #705 -4::int)
+#652 := [rewrite]: #651
+#639 := [monotonicity #652]: #653
+#637 := [monotonicity #639]: #636
+#642 := [monotonicity #637]: #641
+#648 := (iff #684 #646)
+#667 := (iff #687 #656)
+#665 := (iff #698 #697)
+#660 := (or false #697)
+#663 := (iff #660 #697)
+#664 := [rewrite]: #663
+#661 := (iff #698 #660)
+#668 := (iff #693 false)
+#669 := [rewrite]: #668
+#662 := [monotonicity #669]: #661
+#666 := [trans #662 #664]: #665
+#645 := [monotonicity #666]: #667
+#658 := (iff #690 #657)
+#654 := (iff #689 #688)
+#671 := (or #688 false)
+#670 := (iff #671 #688)
+#674 := [rewrite]: #670
+#672 := (iff #689 #671)
+#673 := [monotonicity #669]: #672
+#655 := [trans #673 #674]: #654
+#659 := [monotonicity #655]: #658
+#649 := [monotonicity #659 #645]: #648
+#644 := [monotonicity #649 #642]: #638
+#619 := [monotonicity #644]: #618
+#677 := (iff #680 false)
+#682 := [rewrite]: #677
+#624 := [monotonicity #682 #619]: #623
+#627 := [trans #624 #630]: #626
+#629 := [monotonicity #627]: #633
+#560 := [trans #629 #614]: #633
+#632 := [quant-inst]: #631
+#615 := [mp #632 #560]: #628
+#1052 := [unit-resolution #615 #783]: #617
+#576 := (not #617)
+#578 := (or #576 #577 #675)
+#579 := [def-axiom]: #578
+#1054 := [unit-resolution #579 #1052]: #1053
+#1055 := [unit-resolution #1054 #1039]: #577
+#1056 := (or #676 #643)
+#580 := (or #576 #676 #643)
+#581 := [def-axiom]: #580
+#1057 := [unit-resolution #581 #1052]: #1056
+#1058 := [unit-resolution #1057 #1055]: #643
+#598 := (not #643)
+#943 := (or #564 #598 #765)
+#556 := (<= #695 0::int)
+#853 := [hypothesis]: #643
+#567 := (<= f6 0::int)
+#543 := (= f6 0::int)
+#460 := (not #564)
+#826 := [hypothesis]: #460
+#824 := (or #543 #564)
+#463 := -2::int
+#363 := (* -1::int f6)
+#508 := (mod #363 -2::int)
+#510 := (+ #51 #508)
+#495 := (= #510 0::int)
+#533 := (not #567)
+#565 := (>= f6 0::int)
+#513 := (not #565)
+#523 := (or #513 #533)
+#498 := (ite #523 #564 #495)
+#542 := (= #51 0::int)
+#501 := (ite #543 #542 #498)
+#487 := (or #571 #501)
+#357 := (* -1::int 2::int)
+#557 := (mod #363 #357)
+#558 := (+ #51 #557)
+#559 := (= #558 0::int)
+#427 := (<= 2::int 0::int)
+#566 := (or #427 #565)
+#549 := (not #566)
+#537 := (or #567 #427)
+#538 := (not #537)
+#539 := (or #538 #549)
+#540 := (ite #539 #564 #559)
+#544 := (ite #543 #542 #540)
+#387 := (= f6 #51)
+#768 := (= 2::int 0::int)
+#545 := (ite #768 #387 #544)
+#488 := (or #571 #545)
+#490 := (iff #488 #487)
+#491 := (iff #487 #487)
+#476 := [rewrite]: #491
+#485 := (iff #545 #501)
+#504 := (ite false #387 #501)
+#482 := (iff #504 #501)
+#484 := [rewrite]: #482
+#493 := (iff #545 #504)
+#502 := (iff #544 #501)
+#499 := (iff #540 #498)
+#496 := (iff #559 #495)
+#492 := (= #558 #510)
+#509 := (= #557 #508)
+#737 := (= #357 -2::int)
+#741 := [rewrite]: #737
+#507 := [monotonicity #741]: #509
+#494 := [monotonicity #507]: #492
+#497 := [monotonicity #494]: #496
+#520 := (iff #539 #523)
+#518 := (or #533 #513)
+#516 := (iff #518 #523)
+#519 := [rewrite]: #516
+#522 := (iff #539 #518)
+#514 := (iff #549 #513)
+#521 := (iff #566 #565)
+#527 := (or false #565)
+#526 := (iff #527 #565)
+#531 := [rewrite]: #526
+#529 := (iff #566 #527)
+#745 := (iff #427 false)
+#408 := [rewrite]: #745
+#530 := [monotonicity #408]: #529
+#511 := [trans #530 #531]: #521
+#517 := [monotonicity #511]: #514
+#536 := (iff #538 #533)
+#534 := (iff #537 #567)
+#541 := (or #567 false)
+#528 := (iff #541 #567)
+#532 := [rewrite]: #528
+#546 := (iff #537 #541)
+#525 := [monotonicity #408]: #546
+#535 := [trans #525 #532]: #534
+#524 := [monotonicity #535]: #536
+#515 := [monotonicity #524 #517]: #522
+#506 := [trans #515 #519]: #520
+#500 := [monotonicity #506 #497]: #499
+#503 := [monotonicity #500]: #502
+#769 := (iff #768 false)
+#759 := [rewrite]: #769
+#505 := [monotonicity #759 #503]: #493
+#486 := [trans #505 #484]: #485
+#483 := [monotonicity #486]: #490
+#477 := [trans #483 #476]: #490
+#489 := [quant-inst]: #488
+#478 := [mp #489 #477]: #487
+#829 := [unit-resolution #478 #783]: #501
+#435 := (not #543)
+#370 := [hypothesis]: #435
+#422 := (not #501)
+#438 := (or #422 #543 #498)
+#439 := [def-axiom]: #438
+#366 := [unit-resolution #439 #370 #829]: #498
+#835 := (or #565 #564)
+#827 := [hypothesis]: #513
+#480 := (or #523 #565)
+#479 := [def-axiom]: #480
+#828 := [unit-resolution #479 #827]: #523
+#830 := (or #435 #565)
+#831 := [th-lemma]: #830
+#832 := [unit-resolution #831 #827]: #435
+#833 := [unit-resolution #439 #832 #829]: #498
+#471 := (not #523)
+#456 := (not #498)
+#457 := (or #456 #471 #564)
+#458 := [def-axiom]: #457
+#834 := [unit-resolution #458 #833 #828 #826]: false
+#836 := [lemma #834]: #835
+#371 := [unit-resolution #836 #826]: #565
+#358 := (or #543 #533 #513)
+#360 := [th-lemma]: #358
+#821 := [unit-resolution #360 #370 #371]: #533
+#481 := (or #523 #567)
+#470 := [def-axiom]: #481
+#822 := [unit-resolution #470 #821]: #523
+#823 := [unit-resolution #458 #822 #366 #826]: false
+#825 := [lemma #823]: #824
+#852 := [unit-resolution #825 #826]: #543
+#913 := (or #435 #567)
+#914 := [th-lemma]: #913
+#915 := [unit-resolution #914 #852]: #567
+#916 := [hypothesis]: #605
+#739 := (+ #469 #363)
+#738 := (mod #739 -2::int)
+#42 := (f4 #40 2::int)
+#453 := (+ #42 #738)
+#733 := (= #453 0::int)
+#445 := (mod #40 2::int)
+#446 := (* -1::int #445)
+#447 := (+ #42 #446)
+#444 := (= #447 0::int)
+#466 := (or #751 #757)
+#731 := (ite #466 #444 #733)
+#918 := (or #765 #731)
+#43 := (= #42 0::int)
+#736 := (ite #765 #43 #731)
+#572 := (or #571 #736)
+#441 := (* -1::int #40)
+#442 := (mod #441 #357)
+#443 := (+ #42 #442)
+#434 := (= #443 0::int)
+#762 := (or #427 #448)
+#764 := (not #762)
+#551 := (or #421 #427)
+#758 := (not #551)
+#432 := (or #758 #764)
+#433 := (ite #432 #444 #434)
+#766 := (ite #765 #43 #433)
+#767 := (= #40 #42)
+#763 := (ite #768 #767 #766)
+#573 := (or #571 #763)
+#716 := (iff #573 #572)
+#718 := (iff #572 #572)
+#712 := [rewrite]: #718
+#724 := (iff #763 #736)
+#419 := (* -1::int #42)
+#424 := (+ f6 #419)
+#760 := (+ f5 #424)
+#420 := (= #760 0::int)
+#727 := (ite false #420 #736)
+#728 := (iff #727 #736)
+#729 := [rewrite]: #728
+#722 := (iff #763 #727)
+#725 := (iff #766 #736)
+#735 := (iff #433 #731)
+#734 := (iff #434 #733)
+#454 := (= #443 #453)
+#742 := (= #442 #738)
+#740 := (= #441 #739)
+#462 := [rewrite]: #740
+#452 := [monotonicity #462 #741]: #742
+#455 := [monotonicity #452]: #454
+#449 := [monotonicity #455]: #734
+#467 := (iff #432 #466)
+#743 := (iff #764 #757)
+#756 := (iff #762 #448)
+#390 := (or false #448)
+#395 := (iff #390 #448)
+#396 := [rewrite]: #395
+#753 := (iff #762 #390)
+#755 := [monotonicity #408]: #753
+#754 := [trans #755 #396]: #756
+#744 := [monotonicity #754]: #743
+#746 := (iff #758 #751)
+#749 := (iff #551 #421)
+#409 := (or #421 false)
+#747 := (iff #409 #421)
+#748 := [rewrite]: #747
+#410 := (iff #551 #409)
+#411 := [monotonicity #408]: #410
+#750 := [trans #411 #748]: #749
+#752 := [monotonicity #750]: #746
+#468 := [monotonicity #752 #744]: #467
+#732 := [monotonicity #468 #449]: #735
+#726 := [monotonicity #732]: #725
+#761 := (iff #767 #420)
+#404 := [rewrite]: #761
+#723 := [monotonicity #759 #404 #726]: #722
+#730 := [trans #723 #729]: #724
+#717 := [monotonicity #730]: #716
+#713 := [trans #717 #712]: #716
+#715 := [quant-inst]: #573
+#719 := [mp #715 #713]: #572
+#917 := [unit-resolution #719 #783]: #736
+#603 := (not #736)
+#607 := (or #603 #765 #731)
+#608 := [def-axiom]: #607
+#919 := [unit-resolution #608 #917]: #918
+#920 := [unit-resolution #919 #916]: #731
+#711 := (not #731)
+#911 := (or #448 #513 #533 #598 #711)
+#854 := [hypothesis]: #565
+#856 := (or #513 #656 #448)
+#857 := [th-lemma]: #856
+#858 := [unit-resolution #857 #855 #854]: #656
+#621 := (or #646 #697)
+#616 := [def-axiom]: #621
+#859 := [unit-resolution #616 #858]: #646
+#622 := (not #646)
+#600 := (or #598 #622 #696)
+#601 := [def-axiom]: #600
+#860 := [unit-resolution #601 #859 #853]: #696
+#592 := (not #696)
+#861 := (or #592 #556)
+#862 := [th-lemma]: #861
+#863 := [unit-resolution #862 #860]: #556
+#587 := (>= #695 0::int)
+#864 := (or #592 #587)
+#865 := [th-lemma]: #864
+#866 := [unit-resolution #865 #860]: #587
+#548 := (<= #45 3::int)
+#867 := (not #47)
+#868 := (or #867 #548)
+#869 := [th-lemma]: #868
+#870 := [unit-resolution #869 #187]: #548
+#555 := (>= #45 3::int)
+#871 := (or #867 #555)
+#872 := [th-lemma]: #871
+#873 := [unit-resolution #872 #187]: #555
+#874 := [hypothesis]: #567
+#361 := (div f5 4::int)
+#791 := (* -4::int #361)
+#792 := (+ #791 #685)
+#793 := (+ f5 #792)
+#845 := (<= #793 0::int)
+#790 := (= #793 0::int)
+#875 := (or false #790)
+#876 := [th-lemma]: #875
+#877 := [unit-resolution #876 #69]: #790
+#878 := (not #790)
+#879 := (or #878 #845)
+#880 := [th-lemma]: #879
+#881 := [unit-resolution #880 #877]: #845
+#846 := (>= #793 0::int)
+#882 := (or #878 #846)
+#883 := [th-lemma]: #882
+#884 := [unit-resolution #883 #877]: #846
+#707 := (<= #447 0::int)
+#885 := [hypothesis]: #731
+#721 := (or #466 #448)
+#550 := [def-axiom]: #721
+#886 := [unit-resolution #550 #855]: #466
+#552 := (not #466)
+#593 := (or #711 #552 #444)
+#594 := [def-axiom]: #593
+#887 := [unit-resolution #594 #886 #885]: #444
+#702 := (not #444)
+#888 := (or #702 #707)
+#889 := [th-lemma]: #888
+#890 := [unit-resolution #889 #887]: #707
+#709 := (>= #447 0::int)
+#891 := (or #702 #709)
+#892 := [th-lemma]: #891
+#893 := [unit-resolution #892 #887]: #709
+#586 := (<= #42 0::int)
+#181 := [asserted]: #43
+#609 := (not #43)
+#894 := (or #609 #586)
+#895 := [th-lemma]: #894
+#896 := [unit-resolution #895 #181]: #586
+#547 := (>= #42 0::int)
+#897 := (or #609 #547)
+#898 := [th-lemma]: #897
+#899 := [unit-resolution #898 #181]: #547
+#412 := (div #40 2::int)
+#400 := (* -2::int #412)
+#403 := (+ #400 #446)
+#391 := (+ f6 #403)
+#393 := (+ f5 #391)
+#838 := (<= #393 0::int)
+#401 := (= #393 0::int)
+#900 := (or false #401)
+#901 := [th-lemma]: #900
+#902 := [unit-resolution #901 #69]: #401
+#903 := (not #401)
+#904 := (or #903 #838)
+#905 := [th-lemma]: #904
+#906 := [unit-resolution #905 #902]: #838
+#839 := (>= #393 0::int)
+#907 := (or #903 #839)
+#908 := [th-lemma]: #907
+#909 := [unit-resolution #908 #902]: #839
+#910 := [th-lemma #909 #906 #899 #896 #893 #890 #884 #881 #854 #874 #873 #870 #866 #863]: false
+#912 := [lemma #910]: #911
+#927 := [unit-resolution #912 #371 #915 #853 #920]: #448
+#928 := (or #765 #751 #757)
+#929 := [th-lemma]: #928
+#930 := [unit-resolution #929 #927 #916]: #751
+#931 := (or #657 #533 #421)
+#932 := [th-lemma]: #931
+#933 := [unit-resolution #932 #930 #915]: #657
+#596 := (or #646 #688)
+#620 := [def-axiom]: #596
+#934 := [unit-resolution #620 #933]: #646
+#935 := [unit-resolution #601 #934 #853]: #696
+#936 := [unit-resolution #862 #935]: #556
+#937 := [unit-resolution #865 #935]: #587
+#720 := (or #466 #421)
+#714 := [def-axiom]: #720
+#938 := [unit-resolution #714 #930]: #466
+#939 := [unit-resolution #594 #938 #920]: #444
+#940 := [unit-resolution #889 #939]: #707
+#941 := [unit-resolution #892 #939]: #709
+#942 := [th-lemma #909 #906 #899 #896 #941 #940 #873 #870 #884 #881 #371 #915 #937 #936]: false
+#944 := [lemma #942]: #943
+#1182 := [unit-resolution #944 #1058]: #1181
+#1183 := [unit-resolution #1182 #431]: #564
+#1184 := (or #460 #473)
+#1185 := [th-lemma]: #1184
+#1123 := [unit-resolution #1185 #1183]: #473
+#1125 := (not #473)
+#1126 := (or #405 #952 #1125)
+#1107 := [th-lemma]: #1126
+#1234 := [unit-resolution #1107 #1123 #1239]: #405
+#429 := (or #448 #444)
+#461 := [hypothesis]: #702
+#436 := [unit-resolution #919 #431]: #731
+#437 := [unit-resolution #594 #436 #886 #461]: false
+#440 := [lemma #437]: #429
+#1240 := [unit-resolution #440 #855]: #444
+#1241 := (or #460 #474)
+#1242 := [th-lemma]: #1241
+#1243 := [unit-resolution #1242 #1183]: #474
+#1027 := (not #474)
+#1244 := (or #702 #407 #1027)
+#975 := (or #646 #676)
+#968 := [hypothesis]: #577
+#969 := [hypothesis]: #622
+#970 := [unit-resolution #620 #969]: #688
+#971 := [unit-resolution #616 #969]: #697
+#972 := (or #676 #657 #656)
+#973 := [th-lemma]: #972
+#974 := [unit-resolution #973 #971 #970 #968]: false
+#976 := [lemma #974]: #975
+#1059 := [unit-resolution #976 #1055]: #646
+#1060 := [unit-resolution #601 #1059 #1058]: #696
+#1061 := [unit-resolution #865 #1060]: #587
+#1108 := [unit-resolution #862 #1060]: #556
+#1003 := (not #556)
+#1026 := (not #587)
+#1028 := (or #702 #1026 #407 #1027 #1003)
+#840 := (div f6 2::int)
+#1006 := (* -1::int #840)
+#1007 := (+ #685 #1006)
+#1008 := (+ #562 #1007)
+#1009 := (+ #446 #1008)
+#987 := (* -1::int #412)
+#1010 := (+ #987 #1009)
+#1005 := (* -2::int #361)
+#1011 := (+ #1005 #1010)
+#1012 := (+ #45 #1011)
+#1013 := (+ #42 #1012)
+#1014 := (+ f6 #1013)
+#1015 := (+ f5 #1014)
+#1016 := (>= #1015 2::int)
+#1002 := (not #1016)
+#999 := [hypothesis]: #556
+#982 := [hypothesis]: #444
+#988 := [unit-resolution #889 #982]: #707
+#1004 := (not #707)
+#1017 := (or #1002 #1003 #1004)
+#946 := (>= #561 0::int)
+#984 := (or false #946)
+#985 := [th-lemma]: #984
+#986 := [unit-resolution #985 #69]: #946
+#991 := [hypothesis]: #707
+#797 := (* -2::int #840)
+#837 := (+ #562 #797)
+#921 := (+ f6 #837)
+#963 := (<= #921 0::int)
+#796 := (= #921 0::int)
+#992 := (or false #796)
+#993 := [th-lemma]: #992
+#994 := [unit-resolution #993 #69]: #796
+#995 := (not #796)
+#996 := (or #995 #963)
+#997 := [th-lemma]: #996
+#998 := [unit-resolution #997 #994]: #963
+#1000 := [hypothesis]: #1016
+#1001 := [th-lemma #896 #870 #1000 #881 #999 #998 #991 #906 #986]: false
+#1018 := [lemma #1001]: #1017
+#989 := [unit-resolution #1018 #988 #999]: #1002
+#990 := [unit-resolution #892 #982]: #709
+#983 := [hypothesis]: #474
+#1019 := (not #407)
+#1020 := [hypothesis]: #1019
+#964 := (>= #921 0::int)
+#1021 := (or #995 #964)
+#1022 := [th-lemma]: #1021
+#1023 := [unit-resolution #1022 #994]: #964
+#1024 := [hypothesis]: #587
+#1025 := [th-lemma #899 #873 #884 #1024 #1023 #1020 #983 #990 #909 #989]: false
+#1029 := [lemma #1025]: #1028
+#1245 := [unit-resolution #1029 #1108 #1061]: #1244
+#1246 := [unit-resolution #1245 #1243 #1240]: #407
+#1248 := (not #405)
+#1251 := (or #1248 #1019)
+#52 := (= #51 1::int)
+#256 := (not #52)
+#48 := (f4 f5 2::int)
+#50 := (= #48 1::int)
+#962 := (mod f5 2::int)
+#965 := (* -1::int #962)
+#966 := (+ #48 #965)
+#1105 := (<= #966 0::int)
+#967 := (= #966 0::int)
+#1074 := (mod #469 -2::int)
+#1077 := (+ #48 #1074)
+#1080 := (= #1077 0::int)
+#1083 := (ite #646 #967 #1080)
+#1042 := (= #48 0::int)
+#1086 := (ite #676 #1042 #1083)
+#1114 := (or #571 #1086)
+#426 := (mod #469 #357)
+#958 := (+ #48 #426)
+#961 := (= #958 0::int)
+#926 := (or #427 #697)
+#945 := (not #926)
+#465 := (or #688 #427)
+#475 := (not #465)
+#1040 := (or #475 #945)
+#1041 := (ite #1040 #967 #961)
+#1043 := (ite #676 #1042 #1041)
+#1044 := (= f5 #48)
+#1045 := (ite #768 #1044 #1043)
+#1115 := (or #571 #1045)
+#1117 := (iff #1115 #1114)
+#1119 := (iff #1114 #1114)
+#1120 := [rewrite]: #1119
+#1094 := (iff #1045 #1086)
+#1089 := (ite false #1044 #1086)
+#1092 := (iff #1089 #1086)
+#1093 := [rewrite]: #1092
+#1090 := (iff #1045 #1089)
+#1087 := (iff #1043 #1086)
+#1084 := (iff #1041 #1083)
+#1081 := (iff #961 #1080)
+#1078 := (= #958 #1077)
+#1075 := (= #426 #1074)
+#1076 := [monotonicity #741]: #1075
+#1079 := [monotonicity #1076]: #1078
+#1082 := [monotonicity #1079]: #1081
+#1072 := (iff #1040 #646)
+#1070 := (iff #945 #656)
+#1068 := (iff #926 #697)
+#960 := (iff #926 #660)
+#1067 := [monotonicity #408]: #960
+#1069 := [trans #1067 #664]: #1068
+#1071 := [monotonicity #1069]: #1070
+#423 := (iff #475 #657)
+#1048 := (iff #465 #688)
+#1046 := (iff #465 #671)
+#1047 := [monotonicity #408]: #1046
+#1049 := [trans #1047 #674]: #1048
+#959 := [monotonicity #1049]: #423
+#1073 := [monotonicity #959 #1071]: #1072
+#1085 := [monotonicity #1073 #1082]: #1084
+#1088 := [monotonicity #1085]: #1087
+#1091 := [monotonicity #759 #1088]: #1090
+#1095 := [trans #1091 #1093]: #1094
+#1118 := [monotonicity #1095]: #1117
+#1121 := [trans #1118 #1120]: #1117
+#1116 := [quant-inst]: #1115
+#1122 := [mp #1116 #1121]: #1114
+#1151 := [unit-resolution #1122 #783]: #1086
+#1104 := (not #1086)
+#1172 := (or #1104 #1083)
+#1166 := (or #1104 #676 #1083)
+#1167 := [def-axiom]: #1166
+#1174 := [unit-resolution #1167 #1055]: #1172
+#1175 := [unit-resolution #1174 #1151]: #1083
+#1127 := (not #1083)
+#1186 := (or #1127 #967)
+#1128 := (or #1127 #622 #967)
+#1129 := [def-axiom]: #1128
+#1191 := [unit-resolution #1129 #1059]: #1186
+#1192 := [unit-resolution #1191 #1175]: #967
+#1096 := (not #967)
+#1193 := (or #1096 #1105)
+#1194 := [th-lemma]: #1193
+#1195 := [unit-resolution #1194 #1192]: #1105
+#1106 := (>= #966 0::int)
+#1196 := (or #1096 #1106)
+#1197 := [th-lemma]: #1196
+#1198 := [unit-resolution #1197 #1192]: #1106
+#1170 := (>= #48 1::int)
+#1208 := (not #1170)
+#1169 := (<= #48 1::int)
+#1158 := (>= #962 2::int)
+#1159 := (not #1158)
+#1199 := (or false #1159)
+#1200 := [th-lemma]: #1199
+#1201 := [unit-resolution #1200 #69]: #1159
+#1202 := (not #1105)
+#1203 := (or #1169 #1158 #1202)
+#1204 := [th-lemma]: #1203
+#1205 := [unit-resolution #1204 #1195 #1201]: #1169
+#1207 := (not #1169)
+#1211 := (or #1207 #1208)
+#255 := (not #50)
+#1206 := [hypothesis]: #255
+#1209 := (or #50 #1207 #1208)
+#1210 := [th-lemma]: #1209
+#1212 := [unit-resolution #1210 #1206]: #1211
+#1213 := [unit-resolution #1212 #1205]: #1208
+#1124 := (>= #48 0::int)
+#1152 := (>= #962 0::int)
+#1214 := (or false #1152)
+#1215 := [th-lemma]: #1214
+#1216 := [unit-resolution #1215 #69]: #1152
+#1218 := (not #1106)
+#1217 := (not #1152)
+#1219 := (or #1124 #1217 #1218)
+#1220 := [th-lemma]: #1219
+#1221 := [unit-resolution #1220 #1198 #1216]: #1124
+#1130 := (div f5 2::int)
+#1143 := (* -2::int #1130)
+#1144 := (+ #965 #1143)
+#1145 := (+ f5 #1144)
+#1150 := (<= #1145 0::int)
+#1142 := (= #1145 0::int)
+#1222 := (or false #1142)
+#1223 := [th-lemma]: #1222
+#1224 := [unit-resolution #1223 #69]: #1142
+#1225 := (not #1142)
+#1226 := (or #1225 #1150)
+#1227 := [th-lemma]: #1226
+#1228 := [unit-resolution #1227 #1224]: #1150
+#1180 := (>= #1145 0::int)
+#1229 := (or #1225 #1180)
+#1230 := [th-lemma]: #1229
+#1231 := [unit-resolution #1230 #1224]: #1180
+#1232 := [th-lemma #1231 #1228 #1221 #1213 #1198 #1195 #884 #881 #873 #870 #1061 #1108]: false
+#1233 := [lemma #1232]: #50
+#257 := (or #255 #256)
+#53 := (and #50 #52)
+#54 := (not #53)
+#266 := (iff #54 #257)
+#258 := (not #257)
+#261 := (not #258)
+#264 := (iff #261 #257)
+#265 := [rewrite]: #264
+#262 := (iff #54 #261)
+#259 := (iff #53 #258)
+#260 := [rewrite]: #259
+#263 := [monotonicity #260]: #262
+#267 := [trans #263 #265]: #266
+#188 := [asserted]: #54
+#268 := [mp #188 #267]: #257
+#1247 := [unit-resolution #268 #1233]: #256
+#1249 := (or #52 #1248 #1019)
+#1250 := [th-lemma]: #1249
+#1252 := [unit-resolution #1250 #1247]: #1251
+#1253 := [unit-resolution #1252 #1246 #1234]: false
+#1254 := [lemma #1253]: #448
+#1274 := [hypothesis]: #421
+#1276 := (or #460 #751)
+#1264 := [hypothesis]: #564
+#1265 := [unit-resolution #1185 #1264]: #473
+#1266 := [unit-resolution #1242 #1264]: #474
+#1267 := [unit-resolution #1107 #1265 #1239]: #405
+#1268 := [unit-resolution #1252 #1267]: #1019
+#425 := (>= #51 0::int)
+#1271 := (or #425 #1027)
+#1187 := (not #946)
+#1188 := [hypothesis]: #1187
+#1189 := [unit-resolution #985 #69 #1188]: false
+#1190 := [lemma #1189]: #946
+#1269 := (or #425 #1187 #1027)
+#1270 := [th-lemma]: #1269
+#1272 := [unit-resolution #1270 #1190]: #1271
+#1273 := [unit-resolution #1272 #1266]: #425
+#1275 := [th-lemma #1254 #1274 #1061 #1108 #1273 #1268 #1266 #1265 #1023 #998 #884 #881 #873 #870]: false
+#1277 := [lemma #1275]: #1276
+#1259 := [unit-resolution #1277 #1274]: #460
+#1260 := [unit-resolution #825 #1259]: #543
+#1261 := [unit-resolution #914 #1260]: #567
+#1262 := [unit-resolution #836 #1259]: #565
+#1263 := (or #513 #751 #688)
+#1278 := [th-lemma]: #1263
+#1279 := [unit-resolution #1278 #1262 #1274]: #688
+#1280 := [unit-resolution #973 #1055]: #646
+#1281 := [unit-resolution #1280 #1279]: #656
+#1282 := (or #697 #533 #757)
+#1283 := [th-lemma]: #1282
+#1284 := [unit-resolution #1283 #1281 #1261 #1254]: false
+#1285 := [lemma #1284]: #751
+#1286 := (or #605 #421)
+#1287 := [th-lemma]: #1286
+#1288 := [unit-resolution #1287 #1285]: #605
+#1289 := [unit-resolution #1182 #1288]: #564
+#1290 := [unit-resolution #1242 #1289]: #474
+#1257 := (or #765 #444)
+#981 := (or #466 #765)
+#977 := [hypothesis]: #552
+#978 := [unit-resolution #714 #977]: #421
+#979 := [unit-resolution #550 #977]: #448
+#980 := [unit-resolution #929 #979 #978 #916]: false
+#1030 := [lemma #980]: #981
+#1255 := [unit-resolution #1030 #916]: #466
+#1256 := [unit-resolution #594 #1255 #920 #461]: false
+#1258 := [lemma #1256]: #1257
+#1291 := [unit-resolution #1258 #1288]: #444
+#1292 := [unit-resolution #1245 #1291 #1290]: #407
+#1293 := [unit-resolution #1185 #1289]: #473
+#1294 := [unit-resolution #1107 #1293 #1239]: #405
+[unit-resolution #1252 #1294 #1292]: false
+unsat
+888f975d567f96ba47f41ba95b0b2ea663cfeb5c 1271 0
+#2 := false
+decl f6 :: (-> int int int)
+#12 := 2::int
+decl f14 :: int
+#84 := f14
+#89 := (f6 f14 2::int)
+decl f10 :: (-> S4 S5 int)
+decl f11 :: (-> S3 S5 S5)
+decl f13 :: S5
+#82 := f13
+decl f4 :: S3
+#8 := f4
+#86 := (f11 f4 f13)
+decl f12 :: S4
+#81 := f12
+#87 := (f10 f12 #86)
+#88 := (f6 #87 2::int)
+#90 := (= #88 #89)
+#83 := (f10 f12 f13)
+#876 := (f6 #83 2::int)
+#616 := (= #876 #89)
+#85 := (= #83 f14)
+decl f9 :: (-> int int int)
+#124 := -1::int
+#351 := (* -1::int #87)
+#352 := (+ f14 #351)
+#355 := (f9 #352 2::int)
+decl f8 :: S3
+#17 := f8
+#91 := (f11 f8 f13)
+#92 := (f10 f12 #91)
+#358 := (= #92 #355)
+#361 := (not #358)
+#367 := (not #90)
+#368 := (or #367 #361)
+#26 := 0::int
+#1324 := (>= #355 0::int)
+#611 := (= #355 0::int)
+#337 := -2::int
+#935 := (* -1::int f14)
+#932 := (+ #935 #87)
+#922 := (div #932 -2::int)
+#929 := (* -1::int #922)
+#771 := (+ #355 #929)
+#915 := (= #771 0::int)
+#963 := (div #352 2::int)
+#969 := (* -1::int #963)
+#959 := (+ #355 #969)
+#619 := (= #959 0::int)
+#960 := (<= #352 0::int)
+#654 := (not #960)
+#604 := (>= #352 0::int)
+#939 := (not #604)
+#934 := (or #939 #654)
+#918 := (ite #934 #619 #915)
+#948 := (= #352 0::int)
+#919 := (ite #948 #611 #918)
+#24 := (:var 0 int)
+#23 := (:var 1 int)
+#25 := (f9 #23 #24)
+#985 := (pattern #25)
+#128 := (* -1::int #24)
+#125 := (* -1::int #23)
+#131 := (div #125 #128)
+#472 := (* -1::int #131)
+#473 := (+ #25 #472)
+#474 := (= #473 0::int)
+#36 := (div #23 #24)
+#469 := (* -1::int #36)
+#470 := (+ #25 #469)
+#471 := (= #470 0::int)
+#150 := (<= #24 0::int)
+#146 := (<= #23 0::int)
+#427 := (or #146 #150)
+#428 := (not #427)
+#157 := (>= #23 0::int)
+#398 := (or #150 #157)
+#399 := (not #398)
+#434 := (or #399 #428)
+#475 := (ite #434 #471 #474)
+#468 := (= #25 0::int)
+#28 := (= #24 0::int)
+#27 := (= #23 0::int)
+#29 := (or #27 #28)
+#476 := (ite #29 #468 #475)
+#986 := (forall (vars (?v0 int) (?v1 int)) (:pat #985) #476)
+#479 := (forall (vars (?v0 int) (?v1 int)) #476)
+#989 := (iff #479 #986)
+#987 := (iff #476 #476)
+#988 := [refl]: #987
+#990 := [quant-intro #988]: #989
+#439 := (ite #434 #36 #131)
+#442 := (ite #29 0::int #439)
+#445 := (= #25 #442)
+#448 := (forall (vars (?v0 int) (?v1 int)) #445)
+#480 := (iff #448 #479)
+#477 := (iff #445 #476)
+#478 := [rewrite]: #477
+#481 := [quant-intro #478]: #480
+#158 := (not #157)
+#151 := (not #150)
+#161 := (and #151 #158)
+#147 := (not #146)
+#154 := (and #147 #151)
+#164 := (or #154 #161)
+#167 := (ite #164 #36 #131)
+#170 := (ite #29 0::int #167)
+#173 := (= #25 #170)
+#176 := (forall (vars (?v0 int) (?v1 int)) #173)
+#449 := (iff #176 #448)
+#446 := (iff #173 #445)
+#443 := (= #170 #442)
+#440 := (= #167 #439)
+#437 := (iff #164 #434)
+#431 := (or #428 #399)
+#435 := (iff #431 #434)
+#436 := [rewrite]: #435
+#432 := (iff #164 #431)
+#429 := (iff #161 #399)
+#430 := [rewrite]: #429
+#396 := (iff #154 #428)
+#397 := [rewrite]: #396
+#433 := [monotonicity #397 #430]: #432
+#438 := [trans #433 #436]: #437
+#441 := [monotonicity #438]: #440
+#444 := [monotonicity #441]: #443
+#447 := [monotonicity #444]: #446
+#450 := [quant-intro #447]: #449
+#382 := (~ #176 #176)
+#406 := (~ #173 #173)
+#407 := [refl]: #406
+#383 := [nnf-pos #407]: #382
+#38 := (- #24)
+#37 := (- #23)
+#39 := (div #37 #38)
+#31 := (< 0::int #24)
+#33 := (< #23 0::int)
+#34 := (and #33 #31)
+#30 := (< 0::int #23)
+#32 := (and #30 #31)
+#35 := (or #32 #34)
+#40 := (ite #35 #36 #39)
+#41 := (ite #29 0::int #40)
+#42 := (= #25 #41)
+#43 := (forall (vars (?v0 int) (?v1 int)) #42)
+#179 := (iff #43 #176)
+#118 := (and #31 #33)
+#121 := (or #32 #118)
+#134 := (ite #121 #36 #131)
+#137 := (ite #29 0::int #134)
+#140 := (= #25 #137)
+#143 := (forall (vars (?v0 int) (?v1 int)) #140)
+#177 := (iff #143 #176)
+#174 := (iff #140 #173)
+#171 := (= #137 #170)
+#168 := (= #134 #167)
+#165 := (iff #121 #164)
+#162 := (iff #118 #161)
+#159 := (iff #33 #158)
+#160 := [rewrite]: #159
+#152 := (iff #31 #151)
+#153 := [rewrite]: #152
+#163 := [monotonicity #153 #160]: #162
+#155 := (iff #32 #154)
+#148 := (iff #30 #147)
+#149 := [rewrite]: #148
+#156 := [monotonicity #149 #153]: #155
+#166 := [monotonicity #156 #163]: #165
+#169 := [monotonicity #166]: #168
+#172 := [monotonicity #169]: #171
+#175 := [monotonicity #172]: #174
+#178 := [quant-intro #175]: #177
+#144 := (iff #43 #143)
+#141 := (iff #42 #140)
+#138 := (= #41 #137)
+#135 := (= #40 #134)
+#132 := (= #39 #131)
+#129 := (= #38 #128)
+#130 := [rewrite]: #129
+#126 := (= #37 #125)
+#127 := [rewrite]: #126
+#133 := [monotonicity #127 #130]: #132
+#122 := (iff #35 #121)
+#119 := (iff #34 #118)
+#120 := [rewrite]: #119
+#123 := [monotonicity #120]: #122
+#136 := [monotonicity #123 #133]: #135
+#139 := [monotonicity #136]: #138
+#142 := [monotonicity #139]: #141
+#145 := [quant-intro #142]: #144
+#180 := [trans #145 #178]: #179
+#117 := [asserted]: #43
+#181 := [mp #117 #180]: #176
+#408 := [mp~ #181 #383]: #176
+#451 := [mp #408 #450]: #448
+#482 := [mp #451 #481]: #479
+#991 := [mp #482 #990]: #986
+#921 := (not #986)
+#750 := (or #921 #919)
+#632 := (* -1::int 2::int)
+#633 := (* -1::int #352)
+#965 := (div #633 #632)
+#966 := (* -1::int #965)
+#967 := (+ #355 #966)
+#968 := (= #967 0::int)
+#624 := (<= 2::int 0::int)
+#620 := (or #960 #624)
+#961 := (not #620)
+#945 := (or #624 #604)
+#608 := (not #945)
+#609 := (or #608 #961)
+#610 := (ite #609 #619 #968)
+#947 := (= 2::int 0::int)
+#949 := (or #948 #947)
+#950 := (ite #949 #611 #610)
+#752 := (or #921 #950)
+#906 := (iff #752 #750)
+#909 := (iff #750 #750)
+#910 := [rewrite]: #909
+#920 := (iff #950 #919)
+#912 := (iff #610 #918)
+#916 := (iff #968 #915)
+#772 := (= #967 #771)
+#924 := (= #966 #929)
+#923 := (= #965 #922)
+#926 := (= #632 -2::int)
+#927 := [rewrite]: #926
+#936 := (= #633 #932)
+#925 := [rewrite]: #936
+#928 := [monotonicity #925 #927]: #923
+#930 := [monotonicity #928]: #924
+#773 := [monotonicity #930]: #772
+#917 := [monotonicity #773]: #916
+#649 := (iff #609 #934)
+#655 := (iff #961 #654)
+#652 := (iff #620 #960)
+#663 := (or #960 false)
+#938 := (iff #663 #960)
+#942 := [rewrite]: #938
+#937 := (iff #620 #663)
+#954 := (iff #624 false)
+#957 := [rewrite]: #954
+#941 := [monotonicity #957]: #937
+#653 := [trans #941 #942]: #652
+#933 := [monotonicity #653]: #655
+#940 := (iff #608 #939)
+#669 := (iff #945 #604)
+#943 := (or false #604)
+#667 := (iff #943 #604)
+#668 := [rewrite]: #667
+#944 := (iff #945 #943)
+#666 := [monotonicity #957]: #944
+#562 := [trans #666 #668]: #669
+#662 := [monotonicity #562]: #940
+#931 := [monotonicity #662 #933]: #649
+#913 := [monotonicity #931 #917]: #912
+#596 := (iff #949 #948)
+#952 := (or #948 false)
+#955 := (iff #952 #948)
+#595 := [rewrite]: #955
+#590 := (iff #949 #952)
+#951 := (iff #947 false)
+#946 := [rewrite]: #951
+#953 := [monotonicity #946]: #590
+#956 := [trans #953 #595]: #596
+#914 := [monotonicity #956 #913]: #920
+#907 := [monotonicity #914]: #906
+#908 := [trans #907 #910]: #906
+#753 := [quant-inst]: #752
+#911 := [mp #753 #908]: #750
+#1195 := [unit-resolution #911 #991]: #919
+#962 := (not #85)
+#634 := (not #368)
+#1530 := [hypothesis]: #634
+#751 := (or #962 #368)
+#373 := (iff #85 #368)
+#93 := (- f14 #87)
+#94 := (f9 #93 2::int)
+#95 := (= #92 #94)
+#96 := (not #95)
+#97 := (implies #90 #96)
+#98 := (iff #85 #97)
+#374 := (iff #98 #373)
+#371 := (iff #97 #368)
+#364 := (implies #90 #361)
+#369 := (iff #364 #368)
+#370 := [rewrite]: #369
+#365 := (iff #97 #364)
+#362 := (iff #96 #361)
+#359 := (iff #95 #358)
+#356 := (= #94 #355)
+#353 := (= #93 #352)
+#354 := [rewrite]: #353
+#357 := [monotonicity #354]: #356
+#360 := [monotonicity #357]: #359
+#363 := [monotonicity #360]: #362
+#366 := [monotonicity #363]: #365
+#372 := [trans #366 #370]: #371
+#375 := [monotonicity #372]: #374
+#350 := [asserted]: #98
+#378 := [mp #350 #375]: #373
+#574 := (not #373)
+#964 := (or #962 #368 #574)
+#621 := [def-axiom]: #964
+#958 := [unit-resolution #621 #378]: #751
+#1524 := [unit-resolution #958 #1530]: #962
+#1068 := (* -1::int #876)
+#1140 := (+ #89 #1068)
+#1141 := (<= #1140 0::int)
+#1139 := (= #89 #876)
+#868 := (= #88 #876)
+#67 := (:var 0 S5)
+#70 := (f11 f4 #67)
+#66 := (:var 1 S4)
+#71 := (f10 #66 #70)
+#1019 := (pattern #71)
+#72 := (f6 #71 2::int)
+#68 := (f10 #66 #67)
+#69 := (f6 #68 2::int)
+#73 := (= #69 #72)
+#1020 := (forall (vars (?v0 S4) (?v1 S5)) (:pat #1019) #73)
+#74 := (forall (vars (?v0 S4) (?v1 S5)) #73)
+#1023 := (iff #74 #1020)
+#1021 := (iff #73 #73)
+#1022 := [refl]: #1021
+#1024 := [quant-intro #1022]: #1023
+#392 := (~ #74 #74)
+#421 := (~ #73 #73)
+#422 := [refl]: #421
+#393 := [nnf-pos #422]: #392
+#312 := [asserted]: #74
+#423 := [mp~ #312 #393]: #74
+#1025 := [mp #423 #1024]: #1020
+#872 := (not #1020)
+#873 := (or #872 #868)
+#878 := (= #876 #88)
+#870 := (or #872 #878)
+#854 := (iff #870 #873)
+#857 := (iff #873 #873)
+#858 := [rewrite]: #857
+#869 := (iff #878 #868)
+#871 := [rewrite]: #869
+#855 := [monotonicity #871]: #854
+#859 := [trans #855 #858]: #854
+#874 := [quant-inst]: #870
+#860 := [mp #874 #859]: #873
+#1526 := [unit-resolution #860 #1025]: #868
+#1322 := (= #89 #88)
+#556 := (or #368 #90)
+#641 := [def-axiom]: #556
+#1525 := [unit-resolution #641 #1530]: #90
+#1323 := [symm #1525]: #1322
+#1703 := [trans #1323 #1526]: #1139
+#1704 := (not #1139)
+#1705 := (or #1704 #1141)
+#1706 := [th-lemma]: #1705
+#1707 := [unit-resolution #1706 #1703]: #1141
+#1142 := (>= #1140 0::int)
+#1708 := (or #1704 #1142)
+#1709 := [th-lemma]: #1708
+#1710 := [unit-resolution #1709 #1703]: #1142
+#584 := (+ #83 #935)
+#571 := (>= #584 0::int)
+#1440 := (not #571)
+#589 := (<= #584 0::int)
+#598 := (* -1::int #355)
+#572 := (+ #92 #598)
+#577 := (<= #572 0::int)
+#642 := (or #368 #358)
+#643 := [def-axiom]: #642
+#1711 := [unit-resolution #643 #1530]: #358
+#1712 := (or #361 #577)
+#1713 := [th-lemma]: #1712
+#1714 := [unit-resolution #1713 #1711]: #577
+#1292 := (not #577)
+#1312 := (or #589 #1292)
+#883 := (not #948)
+#1289 := [hypothesis]: #577
+#1276 := (not #589)
+#1277 := [hypothesis]: #1276
+#1299 := (or #883 #1292 #589)
+#1193 := (<= #355 0::int)
+#1258 := [hypothesis]: #948
+#886 := (not #919)
+#885 := (or #886 #883 #611)
+#895 := [def-axiom]: #885
+#1259 := [unit-resolution #895 #1258 #1195]: #611
+#893 := (not #611)
+#1191 := (or #893 #1193)
+#1192 := [th-lemma]: #1191
+#1245 := [unit-resolution #1192 #1259]: #1193
+#1295 := (or #883 #604)
+#1296 := [th-lemma]: #1295
+#1297 := [unit-resolution #1296 #1258]: #604
+#890 := (* -2::int #92)
+#884 := (+ #351 #890)
+#891 := (+ #83 #884)
+#877 := (<= #891 0::int)
+#875 := (= #891 0::int)
+#75 := (f11 f8 #67)
+#76 := (f10 #66 #75)
+#1026 := (pattern #76)
+#338 := (* -2::int #76)
+#336 := (* -1::int #71)
+#339 := (+ #336 #338)
+#340 := (+ #68 #339)
+#341 := (= #340 0::int)
+#1027 := (forall (vars (?v0 S4) (?v1 S5)) (:pat #1019 #1026) #341)
+#344 := (forall (vars (?v0 S4) (?v1 S5)) #341)
+#1030 := (iff #344 #1027)
+#1028 := (iff #341 #341)
+#1029 := [refl]: #1028
+#1031 := [quant-intro #1029]: #1030
+#394 := (~ #344 #344)
+#424 := (~ #341 #341)
+#425 := [refl]: #424
+#395 := [nnf-pos #425]: #394
+#77 := (* #76 2::int)
+#78 := (+ #77 #71)
+#79 := (= #78 #68)
+#80 := (forall (vars (?v0 S4) (?v1 S5)) #79)
+#347 := (iff #80 #344)
+#314 := (* 2::int #76)
+#320 := (+ #71 #314)
+#328 := (= #68 #320)
+#333 := (forall (vars (?v0 S4) (?v1 S5)) #328)
+#345 := (iff #333 #344)
+#342 := (iff #328 #341)
+#343 := [rewrite]: #342
+#346 := [quant-intro #343]: #345
+#334 := (iff #80 #333)
+#331 := (iff #79 #328)
+#325 := (= #320 #68)
+#329 := (iff #325 #328)
+#330 := [rewrite]: #329
+#326 := (iff #79 #325)
+#323 := (= #78 #320)
+#317 := (+ #314 #71)
+#321 := (= #317 #320)
+#322 := [rewrite]: #321
+#318 := (= #78 #317)
+#315 := (= #77 #314)
+#316 := [rewrite]: #315
+#319 := [monotonicity #316]: #318
+#324 := [trans #319 #322]: #323
+#327 := [monotonicity #324]: #326
+#332 := [trans #327 #330]: #331
+#335 := [quant-intro #332]: #334
+#348 := [trans #335 #346]: #347
+#313 := [asserted]: #80
+#349 := [mp #313 #348]: #344
+#426 := [mp~ #349 #395]: #344
+#1032 := [mp #426 #1031]: #1027
+#879 := (not #1027)
+#880 := (or #879 #875)
+#881 := [quant-inst]: #880
+#1271 := [unit-resolution #881 #1032]: #875
+#1272 := (not #875)
+#1273 := (or #1272 #877)
+#1274 := [th-lemma]: #1273
+#1275 := [unit-resolution #1274 #1271]: #877
+#1298 := [th-lemma #1275 #1289 #1297 #1277 #1245]: false
+#1300 := [lemma #1298]: #1299
+#1194 := [unit-resolution #1300 #1277 #1289]: #883
+#902 := (not #934)
+#811 := (not #619)
+#903 := (<= #959 0::int)
+#1291 := (not #903)
+#1293 := (or #1291 #1292 #589)
+#1201 := (+ f14 #87)
+#1202 := (mod #1201 2::int)
+#1214 := (* -1::int #1202)
+#1213 := (* -2::int #963)
+#1215 := (+ #1213 #1214)
+#1216 := (+ #351 #1215)
+#1217 := (+ f14 #1216)
+#1222 := (>= #1217 0::int)
+#1211 := (= #1217 0::int)
+#1 := true
+#113 := [true-axiom]: true
+#1278 := (or false #1211)
+#1279 := [th-lemma]: #1278
+#1280 := [unit-resolution #1279 #113]: #1211
+#1281 := (not #1211)
+#1282 := (or #1281 #1222)
+#1283 := [th-lemma]: #1282
+#1284 := [unit-resolution #1283 #1280]: #1222
+#1246 := (>= #1202 0::int)
+#1285 := (or false #1246)
+#1286 := [th-lemma]: #1285
+#1287 := [unit-resolution #1286 #113]: #1246
+#1288 := [hypothesis]: #903
+#1290 := [th-lemma #1289 #1288 #1287 #1284 #1277 #1275]: false
+#1294 := [lemma #1290]: #1293
+#1301 := [unit-resolution #1294 #1277 #1289]: #1291
+#1302 := (or #811 #903)
+#1303 := [th-lemma]: #1302
+#1304 := [unit-resolution #1303 #1301]: #811
+#896 := (or #886 #948 #918)
+#897 := [def-axiom]: #896
+#1305 := [unit-resolution #897 #1194 #1195]: #918
+#799 := (not #918)
+#807 := (or #799 #902 #619)
+#808 := [def-axiom]: #807
+#1306 := [unit-resolution #808 #1305 #1304]: #902
+#793 := (or #934 #604)
+#794 := [def-axiom]: #793
+#1307 := [unit-resolution #794 #1306]: #604
+#795 := (or #934 #960)
+#754 := [def-axiom]: #795
+#1308 := [unit-resolution #754 #1306]: #960
+#1309 := (or #948 #654 #939)
+#1310 := [th-lemma]: #1309
+#1311 := [unit-resolution #1310 #1308 #1307 #1194]: false
+#1313 := [lemma #1311]: #1312
+#1715 := [unit-resolution #1313 #1714]: #589
+#1718 := (or #1276 #1440)
+#1716 := (or #85 #1276 #1440)
+#1717 := [th-lemma]: #1716
+#1719 := [unit-resolution #1717 #1524]: #1718
+#1720 := [unit-resolution #1719 #1715]: #1440
+#578 := (>= #572 0::int)
+#1721 := (or #361 #578)
+#1722 := [th-lemma]: #1721
+#1723 := [unit-resolution #1722 #1711]: #578
+#583 := (* -1::int #89)
+#585 := (+ #88 #583)
+#586 := (<= #585 0::int)
+#1724 := (or #367 #586)
+#1725 := [th-lemma]: #1724
+#1726 := [unit-resolution #1725 #1525]: #586
+#1434 := (not #1141)
+#1489 := (not #1142)
+#1430 := (not #578)
+#1636 := (not #586)
+#1701 := (or #948 #1636 #1430 #571 #1489 #1434 #85)
+#864 := (mod f14 2::int)
+#865 := (* -1::int #864)
+#866 := (+ #89 #865)
+#856 := (= #866 0::int)
+#766 := (not #856)
+#1402 := [hypothesis]: #1141
+#581 := (mod #83 2::int)
+#1069 := (+ #581 #1068)
+#1113 := (<= #1069 0::int)
+#1070 := (= #1069 0::int)
+#1453 := [hypothesis]: #962
+#1421 := [hypothesis]: #578
+#1480 := [hypothesis]: #1142
+#1441 := [hypothesis]: #1440
+#788 := (>= #959 0::int)
+#1314 := [hypothesis]: #883
+#1679 := [unit-resolution #897 #1314 #1195]: #918
+#1319 := (or #934 #948)
+#1315 := [hypothesis]: #902
+#1316 := [unit-resolution #794 #1315]: #604
+#1317 := [unit-resolution #754 #1315]: #960
+#1318 := [unit-resolution #1310 #1317 #1316 #1314]: false
+#1320 := [lemma #1318]: #1319
+#1680 := [unit-resolution #1320 #1314]: #934
+#1681 := [unit-resolution #808 #1680 #1679]: #619
+#1682 := (or #811 #788)
+#1683 := [th-lemma]: #1682
+#1684 := [unit-resolution #1683 #1681]: #788
+#1431 := (not #788)
+#1490 := (or #1070 #1489 #571 #1431 #1430 #1434 #85)
+#1409 := 1::int
+#1352 := (div f14 2::int)
+#1405 := (* -1::int #1352)
+#1406 := (+ #865 #1405)
+#1407 := (+ #89 #1406)
+#1408 := (+ f14 #1407)
+#1410 := (>= #1408 1::int)
+#757 := (>= #866 0::int)
+#814 := (mod #935 -2::int)
+#796 := (+ #89 #814)
+#816 := (= #796 0::int)
+#867 := (<= f14 0::int)
+#828 := (not #867)
+#848 := (>= f14 0::int)
+#817 := (not #848)
+#833 := (or #817 #828)
+#797 := (ite #833 #856 #816)
+#847 := (= #89 0::int)
+#853 := (= f14 0::int)
+#789 := (ite #853 #847 #797)
+#44 := (f6 #23 #24)
+#992 := (pattern #44)
+#183 := (mod #125 #128)
+#488 := (+ #44 #183)
+#489 := (= #488 0::int)
+#45 := (mod #23 #24)
+#485 := (* -1::int #45)
+#486 := (+ #44 #485)
+#487 := (= #486 0::int)
+#490 := (ite #434 #487 #489)
+#484 := (= #44 0::int)
+#491 := (ite #27 #484 #490)
+#483 := (= #23 #44)
+#492 := (ite #28 #483 #491)
+#993 := (forall (vars (?v0 int) (?v1 int)) (:pat #992) #492)
+#495 := (forall (vars (?v0 int) (?v1 int)) #492)
+#996 := (iff #495 #993)
+#994 := (iff #492 #492)
+#995 := [refl]: #994
+#997 := [quant-intro #995]: #996
+#189 := (* -1::int #183)
+#452 := (ite #434 #45 #189)
+#455 := (ite #27 0::int #452)
+#458 := (ite #28 #23 #455)
+#461 := (= #44 #458)
+#464 := (forall (vars (?v0 int) (?v1 int)) #461)
+#496 := (iff #464 #495)
+#493 := (iff #461 #492)
+#494 := [rewrite]: #493
+#497 := [quant-intro #494]: #496
+#209 := (ite #164 #45 #189)
+#212 := (ite #27 0::int #209)
+#215 := (ite #28 #23 #212)
+#218 := (= #44 #215)
+#221 := (forall (vars (?v0 int) (?v1 int)) #218)
+#465 := (iff #221 #464)
+#462 := (iff #218 #461)
+#459 := (= #215 #458)
+#456 := (= #212 #455)
+#453 := (= #209 #452)
+#454 := [monotonicity #438]: #453
+#457 := [monotonicity #454]: #456
+#460 := [monotonicity #457]: #459
+#463 := [monotonicity #460]: #462
+#466 := [quant-intro #463]: #465
+#384 := (~ #221 #221)
+#409 := (~ #218 #218)
+#410 := [refl]: #409
+#385 := [nnf-pos #410]: #384
+#46 := (mod #37 #38)
+#47 := (- #46)
+#48 := (ite #35 #45 #47)
+#49 := (ite #27 0::int #48)
+#50 := (ite #28 #23 #49)
+#51 := (= #44 #50)
+#52 := (forall (vars (?v0 int) (?v1 int)) #51)
+#224 := (iff #52 #221)
+#194 := (ite #121 #45 #189)
+#197 := (ite #27 0::int #194)
+#200 := (ite #28 #23 #197)
+#203 := (= #44 #200)
+#206 := (forall (vars (?v0 int) (?v1 int)) #203)
+#222 := (iff #206 #221)
+#219 := (iff #203 #218)
+#216 := (= #200 #215)
+#213 := (= #197 #212)
+#210 := (= #194 #209)
+#211 := [monotonicity #166]: #210
+#214 := [monotonicity #211]: #213
+#217 := [monotonicity #214]: #216
+#220 := [monotonicity #217]: #219
+#223 := [quant-intro #220]: #222
+#207 := (iff #52 #206)
+#204 := (iff #51 #203)
+#201 := (= #50 #200)
+#198 := (= #49 #197)
+#195 := (= #48 #194)
+#192 := (= #47 #189)
+#186 := (- #183)
+#190 := (= #186 #189)
+#191 := [rewrite]: #190
+#187 := (= #47 #186)
+#184 := (= #46 #183)
+#185 := [monotonicity #127 #130]: #184
+#188 := [monotonicity #185]: #187
+#193 := [trans #188 #191]: #192
+#196 := [monotonicity #123 #193]: #195
+#199 := [monotonicity #196]: #198
+#202 := [monotonicity #199]: #201
+#205 := [monotonicity #202]: #204
+#208 := [quant-intro #205]: #207
+#225 := [trans #208 #223]: #224
+#182 := [asserted]: #52
+#226 := [mp #182 #225]: #221
+#411 := [mp~ #226 #385]: #221
+#467 := [mp #411 #466]: #464
+#498 := [mp #467 #497]: #495
+#998 := [mp #498 #997]: #993
+#769 := (not #993)
+#774 := (or #769 #789)
+#861 := (mod #935 #632)
+#862 := (+ #89 #861)
+#863 := (= #862 0::int)
+#845 := (or #867 #624)
+#846 := (not #845)
+#849 := (or #624 #848)
+#850 := (not #849)
+#851 := (or #850 #846)
+#852 := (ite #851 #856 #863)
+#839 := (ite #853 #847 #852)
+#835 := (= f14 #89)
+#836 := (ite #947 #835 #839)
+#775 := (or #769 #836)
+#777 := (iff #775 #774)
+#779 := (iff #774 #774)
+#780 := [rewrite]: #779
+#813 := (iff #836 #789)
+#800 := (ite false #835 #789)
+#812 := (iff #800 #789)
+#792 := [rewrite]: #812
+#801 := (iff #836 #800)
+#791 := (iff #839 #789)
+#756 := (iff #852 #797)
+#822 := (iff #863 #816)
+#820 := (= #862 #796)
+#760 := (= #861 #814)
+#815 := [monotonicity #927]: #760
+#821 := [monotonicity #815]: #820
+#790 := [monotonicity #821]: #822
+#829 := (iff #851 #833)
+#831 := (iff #846 #828)
+#826 := (iff #845 #867)
+#712 := (or #867 false)
+#825 := (iff #712 #867)
+#830 := [rewrite]: #825
+#823 := (iff #845 #712)
+#824 := [monotonicity #957]: #823
+#827 := [trans #824 #830]: #826
+#832 := [monotonicity #827]: #831
+#818 := (iff #850 #817)
+#838 := (iff #849 #848)
+#837 := (or false #848)
+#842 := (iff #837 #848)
+#843 := [rewrite]: #842
+#840 := (iff #849 #837)
+#841 := [monotonicity #957]: #840
+#844 := [trans #841 #843]: #838
+#819 := [monotonicity #844]: #818
+#834 := [monotonicity #819 #832]: #829
+#787 := [monotonicity #834 #790]: #756
+#798 := [monotonicity #787]: #791
+#802 := [monotonicity #946 #798]: #801
+#768 := [trans #802 #792]: #813
+#778 := [monotonicity #768]: #777
+#781 := [trans #778 #780]: #777
+#776 := [quant-inst]: #775
+#782 := [mp #776 #781]: #774
+#1452 := [unit-resolution #782 #998]: #789
+#742 := (not #853)
+#1461 := (iff #962 #742)
+#1459 := (iff #85 #853)
+#1454 := (= 0::int f14)
+#1457 := (iff #1454 #853)
+#1458 := [commutativity]: #1457
+#1455 := (iff #85 #1454)
+#560 := (= #83 0::int)
+#1122 := (not #1070)
+#1336 := [hypothesis]: #1122
+#1348 := (or #560 #1070)
+#575 := (* -1::int #83)
+#1075 := (mod #575 -2::int)
+#1078 := (+ #876 #1075)
+#1081 := (= #1078 0::int)
+#568 := (>= #83 0::int)
+#1041 := (not #568)
+#563 := (<= #83 0::int)
+#1051 := (not #563)
+#1057 := (or #1051 #1041)
+#1084 := (ite #1057 #1070 #1081)
+#559 := (= #876 0::int)
+#1087 := (ite #560 #559 #1084)
+#1097 := (or #769 #1087)
+#576 := (mod #575 #632)
+#579 := (+ #876 #576)
+#580 := (= #579 0::int)
+#573 := (* -1::int #581)
+#582 := (+ #876 #573)
+#566 := (= #582 0::int)
+#564 := (or #563 #624)
+#567 := (not #564)
+#569 := (or #624 #568)
+#565 := (not #569)
+#570 := (or #565 #567)
+#557 := (ite #570 #566 #580)
+#558 := (ite #560 #559 #557)
+#561 := (= #83 #876)
+#1033 := (ite #947 #561 #558)
+#1098 := (or #769 #1033)
+#1100 := (iff #1098 #1097)
+#1102 := (iff #1097 #1097)
+#1103 := [rewrite]: #1102
+#1095 := (iff #1033 #1087)
+#1090 := (ite false #561 #1087)
+#1093 := (iff #1090 #1087)
+#1094 := [rewrite]: #1093
+#1091 := (iff #1033 #1090)
+#1088 := (iff #558 #1087)
+#1085 := (iff #557 #1084)
+#1082 := (iff #580 #1081)
+#1079 := (= #579 #1078)
+#1076 := (= #576 #1075)
+#1077 := [monotonicity #927]: #1076
+#1080 := [monotonicity #1077]: #1079
+#1083 := [monotonicity #1080]: #1082
+#1073 := (iff #566 #1070)
+#1062 := (+ #573 #876)
+#1065 := (= #1062 0::int)
+#1071 := (iff #1065 #1070)
+#1072 := [rewrite]: #1071
+#1066 := (iff #566 #1065)
+#1063 := (= #582 #1062)
+#1064 := [rewrite]: #1063
+#1067 := [monotonicity #1064]: #1066
+#1074 := [trans #1067 #1072]: #1073
+#1060 := (iff #570 #1057)
+#1054 := (or #1041 #1051)
+#1058 := (iff #1054 #1057)
+#1059 := [rewrite]: #1058
+#1055 := (iff #570 #1054)
+#1052 := (iff #567 #1051)
+#1049 := (iff #564 #563)
+#1044 := (or #563 false)
+#1047 := (iff #1044 #563)
+#1048 := [rewrite]: #1047
+#1045 := (iff #564 #1044)
+#1046 := [monotonicity #957]: #1045
+#1050 := [trans #1046 #1048]: #1049
+#1053 := [monotonicity #1050]: #1052
+#1042 := (iff #565 #1041)
+#1039 := (iff #569 #568)
+#1034 := (or false #568)
+#1037 := (iff #1034 #568)
+#1038 := [rewrite]: #1037
+#1035 := (iff #569 #1034)
+#1036 := [monotonicity #957]: #1035
+#1040 := [trans #1036 #1038]: #1039
+#1043 := [monotonicity #1040]: #1042
+#1056 := [monotonicity #1043 #1053]: #1055
+#1061 := [trans #1056 #1059]: #1060
+#1086 := [monotonicity #1061 #1074 #1083]: #1085
+#1089 := [monotonicity #1086]: #1088
+#1092 := [monotonicity #946 #1089]: #1091
+#1096 := [trans #1092 #1094]: #1095
+#1101 := [monotonicity #1096]: #1100
+#1104 := [trans #1101 #1103]: #1100
+#1099 := [quant-inst]: #1098
+#1105 := [mp #1099 #1104]: #1097
+#1339 := [unit-resolution #1105 #998]: #1087
+#1129 := (not #560)
+#1331 := [hypothesis]: #1129
+#1128 := (not #1087)
+#1132 := (or #1128 #560 #1084)
+#1133 := [def-axiom]: #1132
+#1332 := [unit-resolution #1133 #1331 #1339]: #1084
+#1345 := (or #563 #1070)
+#1337 := [hypothesis]: #1051
+#1106 := (or #1057 #563)
+#1107 := [def-axiom]: #1106
+#1338 := [unit-resolution #1107 #1337]: #1057
+#1340 := (or #1129 #563)
+#1341 := [th-lemma]: #1340
+#1342 := [unit-resolution #1341 #1337]: #1129
+#1343 := [unit-resolution #1133 #1342 #1339]: #1084
+#1110 := (not #1057)
+#1117 := (not #1084)
+#1118 := (or #1117 #1110 #1070)
+#1119 := [def-axiom]: #1118
+#1344 := [unit-resolution #1119 #1343 #1338 #1336]: false
+#1346 := [lemma #1344]: #1345
+#1333 := [unit-resolution #1346 #1336]: #563
+#1334 := (or #560 #1051 #1041)
+#1335 := [th-lemma]: #1334
+#1329 := [unit-resolution #1335 #1331 #1333]: #1041
+#1108 := (or #1057 #568)
+#1109 := [def-axiom]: #1108
+#1330 := [unit-resolution #1109 #1329]: #1057
+#1347 := [unit-resolution #1119 #1330 #1332 #1336]: false
+#1349 := [lemma #1347]: #1348
+#1447 := [unit-resolution #1349 #1336]: #560
+#1456 := [monotonicity #1447]: #1455
+#1460 := [trans #1456 #1458]: #1459
+#1462 := [monotonicity #1460]: #1461
+#1463 := [mp #1453 #1462]: #742
+#740 := (not #789)
+#587 := (or #740 #853 #797)
+#745 := [def-axiom]: #587
+#1464 := [unit-resolution #745 #1463 #1452]: #797
+#1465 := (or #1129 #568)
+#1466 := [th-lemma]: #1465
+#1467 := [unit-resolution #1466 #1447]: #568
+#1468 := (or #828 #1041 #571)
+#1469 := [th-lemma]: #1468
+#1470 := [unit-resolution #1469 #1467 #1441]: #828
+#785 := (or #833 #867)
+#770 := [def-axiom]: #785
+#1471 := [unit-resolution #770 #1470]: #833
+#786 := (not #833)
+#761 := (not #797)
+#762 := (or #761 #786 #856)
+#763 := [def-axiom]: #762
+#1472 := [unit-resolution #763 #1471 #1464]: #856
+#1477 := (or #766 #757)
+#1478 := [th-lemma]: #1477
+#1479 := [unit-resolution #1478 #1472]: #757
+#1351 := (>= #876 0::int)
+#1130 := (or #1128 #1129 #559)
+#1131 := [def-axiom]: #1130
+#1448 := [unit-resolution #1131 #1447 #1339]: #559
+#1134 := (not #559)
+#1481 := (or #1134 #1351)
+#1482 := [th-lemma]: #1481
+#1483 := [unit-resolution #1482 #1448]: #1351
+#1365 := (* -2::int #1352)
+#1366 := (+ #865 #1365)
+#1367 := (+ f14 #1366)
+#1373 := (>= #1367 0::int)
+#1364 := (= #1367 0::int)
+#1404 := (or false #1364)
+#1411 := [th-lemma]: #1404
+#1412 := [unit-resolution #1411 #113]: #1364
+#1413 := (not #1364)
+#1484 := (or #1413 #1373)
+#1485 := [th-lemma]: #1484
+#1486 := [unit-resolution #1485 #1412]: #1373
+#1487 := [th-lemma #1486 #1483 #1480 #1467 #1441 #1479]: #1410
+#1429 := (not #1410)
+#1350 := (<= #876 0::int)
+#1449 := (or #1134 #1350)
+#1450 := [th-lemma]: #1449
+#1451 := [unit-resolution #1450 #1448]: #1350
+#755 := (<= #866 0::int)
+#1473 := (or #766 #755)
+#1474 := [th-lemma]: #1473
+#1475 := [unit-resolution #1474 #1472]: #755
+#1420 := [hypothesis]: #788
+#1433 := (not #1350)
+#1432 := (not #755)
+#1435 := (or #1429 #1430 #1431 #1051 #1432 #1433 #1434)
+#1252 := (>= #1202 2::int)
+#1253 := (not #1252)
+#1399 := (or false #1253)
+#1400 := [th-lemma]: #1399
+#1401 := [unit-resolution #1400 #113]: #1253
+#1403 := [hypothesis]: #1350
+#1372 := (<= #1367 0::int)
+#1414 := (or #1413 #1372)
+#1415 := [th-lemma]: #1414
+#1416 := [unit-resolution #1415 #1412]: #1372
+#1417 := [hypothesis]: #755
+#1418 := [hypothesis]: #563
+#1419 := [hypothesis]: #1410
+#882 := (>= #891 0::int)
+#1422 := (or #1272 #882)
+#1423 := [th-lemma]: #1422
+#1424 := [unit-resolution #1423 #1271]: #882
+#1321 := (<= #1217 0::int)
+#1425 := (or #1281 #1321)
+#1426 := [th-lemma]: #1425
+#1427 := [unit-resolution #1426 #1280]: #1321
+#1428 := [th-lemma #1427 #1424 #1421 #1420 #1419 #1418 #1417 #1416 #1403 #1402 #1401]: false
+#1436 := [lemma #1428]: #1435
+#1476 := [unit-resolution #1436 #1333 #1420 #1421 #1475 #1451 #1402]: #1429
+#1488 := [unit-resolution #1476 #1487]: false
+#1491 := [lemma #1488]: #1490
+#1685 := [unit-resolution #1491 #1684 #1441 #1480 #1421 #1402 #1453]: #1070
+#1686 := (or #1122 #1113)
+#1687 := [th-lemma]: #1686
+#1688 := [unit-resolution #1687 #1685]: #1113
+#1114 := (>= #1069 0::int)
+#1689 := (or #1122 #1114)
+#1690 := [th-lemma]: #1689
+#1691 := [unit-resolution #1690 #1685]: #1114
+#1552 := (not #1113)
+#1578 := (not #1114)
+#1598 := (or #766 #571 #1578 #1489 #1431 #1430 #1552 #1434)
+#1386 := (div #83 2::int)
+#1567 := (* -1::int #1386)
+#1568 := (+ #1405 #1567)
+#1569 := (+ #1068 #1568)
+#1570 := (+ #865 #1569)
+#1571 := (+ #89 #1570)
+#1572 := (+ f14 #1571)
+#1594 := (>= #1572 1::int)
+#1564 := [hypothesis]: #1114
+#1493 := (* -2::int #1386)
+#1494 := (+ #573 #1493)
+#1495 := (+ #83 #1494)
+#1501 := (>= #1495 0::int)
+#1492 := (= #1495 0::int)
+#1540 := (or false #1492)
+#1541 := [th-lemma]: #1540
+#1542 := [unit-resolution #1541 #113]: #1492
+#1543 := (not #1492)
+#1565 := (or #1543 #1501)
+#1566 := [th-lemma]: #1565
+#1575 := [unit-resolution #1566 #1542]: #1501
+#1591 := [hypothesis]: #856
+#1595 := [unit-resolution #1478 #1591]: #757
+#1596 := [th-lemma #1441 #1595 #1575 #1564 #1486 #1480]: #1594
+#1587 := (not #1594)
+#1539 := [hypothesis]: #1113
+#1592 := [unit-resolution #1474 #1591]: #755
+#1588 := (or #1587 #1430 #1431 #1432 #1552 #1434)
+#1500 := (<= #1495 0::int)
+#1544 := (or #1543 #1500)
+#1545 := [th-lemma]: #1544
+#1546 := [unit-resolution #1545 #1542]: #1500
+#1585 := [hypothesis]: #1594
+#1586 := [th-lemma #1427 #1424 #1421 #1420 #1585 #1417 #1546 #1539 #1416 #1402 #1401]: false
+#1589 := [lemma #1586]: #1588
+#1593 := [unit-resolution #1589 #1592 #1420 #1421 #1539 #1402]: #1587
+#1597 := [unit-resolution #1593 #1596]: false
+#1599 := [lemma #1597]: #1598
+#1692 := [unit-resolution #1599 #1691 #1441 #1480 #1684 #1421 #1688 #1402]: #766
+#1633 := [hypothesis]: #586
+#1522 := (or #867 #856)
+#1514 := [hypothesis]: #766
+#1515 := [hypothesis]: #828
+#1516 := [unit-resolution #770 #1515]: #833
+#1517 := (or #742 #867)
+#1518 := [th-lemma]: #1517
+#1519 := [unit-resolution #1518 #1515]: #742
+#1520 := [unit-resolution #745 #1519 #1452]: #797
+#1521 := [unit-resolution #763 #1520 #1516 #1514]: false
+#1523 := [lemma #1521]: #1522
+#1693 := [unit-resolution #1523 #1692]: #867
+#1677 := (or #742 #828 #902 #1636 #1430 #1431 #571)
+#736 := (mod #87 2::int)
+#724 := (* -1::int #736)
+#727 := (+ #88 #724)
+#729 := (= #727 0::int)
+#613 := (not #729)
+#629 := (>= #727 0::int)
+#1637 := (not #629)
+#1528 := (<= #89 0::int)
+#1617 := [hypothesis]: #853
+#743 := (or #740 #742 #847)
+#744 := [def-axiom]: #743
+#1618 := [unit-resolution #744 #1617 #1452]: #847
+#741 := (not #847)
+#1619 := (or #741 #1528)
+#1613 := [th-lemma]: #1619
+#1614 := [unit-resolution #1613 #1618]: #1528
+#1622 := (+ #736 #1214)
+#1624 := (>= #1622 0::int)
+#1621 := [hypothesis]: #867
+#1615 := (or #742 #848)
+#1616 := [th-lemma]: #1615
+#1644 := [unit-resolution #1616 #1617]: #848
+#1657 := (or #1624 #817 #828)
+#1643 := (= #736 #1202)
+#1649 := (= #1202 #736)
+#1647 := (= #1201 #87)
+#1645 := (= #87 #1201)
+#1607 := [hypothesis]: #848
+#1646 := [th-lemma #1607 #1621]: #1645
+#1648 := [symm #1646]: #1647
+#1650 := [monotonicity #1648]: #1649
+#1651 := [symm #1650]: #1643
+#1635 := (not #1624)
+#1652 := [hypothesis]: #1635
+#1653 := (not #1643)
+#1654 := (or #1653 #1624)
+#1655 := [th-lemma]: #1654
+#1656 := [unit-resolution #1655 #1652 #1651]: false
+#1658 := [lemma #1656]: #1657
+#1659 := [unit-resolution #1658 #1644 #1621]: #1624
+#1638 := (not #1528)
+#1639 := (or #1635 #1636 #1637 #1638 #1430 #1431 #571)
+#1630 := [hypothesis]: #1624
+#1631 := [hypothesis]: #1528
+#1632 := [hypothesis]: #629
+#1634 := [th-lemma #1633 #1632 #1631 #1427 #1424 #1421 #1420 #1441 #1630]: false
+#1640 := [lemma #1634]: #1639
+#1660 := [unit-resolution #1640 #1659 #1633 #1614 #1421 #1420 #1441]: #1637
+#1661 := (or #613 #629)
+#1662 := [th-lemma]: #1661
+#1663 := [unit-resolution #1662 #1660]: #613
+#730 := (<= #87 0::int)
+#703 := (not #730)
+#721 := (>= #87 0::int)
+#692 := (not #721)
+#705 := (or #692 #703)
+#1664 := [hypothesis]: #934
+#1605 := (or #730 #729)
+#1532 := [hypothesis]: #613
+#1583 := [hypothesis]: #703
+#622 := (or #705 #730)
+#635 := [def-axiom]: #622
+#1584 := [unit-resolution #635 #1583]: #705
+#685 := (mod #351 -2::int)
+#688 := (+ #88 #685)
+#683 := (= #688 0::int)
+#677 := (ite #705 #729 #683)
+#718 := (= #88 0::int)
+#722 := (= #87 0::int)
+#679 := (ite #722 #718 #677)
+#656 := (or #769 #679)
+#734 := (mod #351 #632)
+#735 := (+ #88 #734)
+#733 := (= #735 0::int)
+#726 := (or #730 #624)
+#731 := (not #726)
+#711 := (or #624 #721)
+#713 := (not #711)
+#714 := (or #713 #731)
+#717 := (ite #714 #729 #733)
+#715 := (ite #722 #718 #717)
+#723 := (= #87 #88)
+#716 := (ite #947 #723 #715)
+#657 := (or #769 #716)
+#650 := (iff #657 #656)
+#660 := (iff #656 #656)
+#651 := [rewrite]: #660
+#665 := (iff #716 #679)
+#671 := (ite false #723 #679)
+#673 := (iff #671 #679)
+#674 := [rewrite]: #673
+#672 := (iff #716 #671)
+#681 := (iff #715 #679)
+#678 := (iff #717 #677)
+#691 := (iff #733 #683)
+#689 := (= #735 #688)
+#686 := (= #734 #685)
+#687 := [monotonicity #927]: #686
+#690 := [monotonicity #687]: #689
+#676 := [monotonicity #690]: #691
+#682 := (iff #714 #705)
+#704 := (iff #731 #703)
+#701 := (iff #726 #730)
+#696 := (or #730 false)
+#699 := (iff #696 #730)
+#700 := [rewrite]: #699
+#697 := (iff #726 #696)
+#698 := [monotonicity #957]: #697
+#702 := [trans #698 #700]: #701
+#693 := [monotonicity #702]: #704
+#694 := (iff #713 #692)
+#707 := (iff #711 #721)
+#719 := (or false #721)
+#708 := (iff #719 #721)
+#709 := [rewrite]: #708
+#720 := (iff #711 #719)
+#706 := [monotonicity #957]: #720
+#710 := [trans #706 #709]: #707
+#695 := [monotonicity #710]: #694
+#684 := [monotonicity #695 #693]: #682
+#680 := [monotonicity #684 #676]: #678
+#670 := [monotonicity #680]: #681
+#664 := [monotonicity #946 #670]: #672
+#675 := [trans #664 #674]: #665
+#659 := [monotonicity #675]: #650
+#661 := [trans #659 #651]: #650
+#658 := [quant-inst]: #657
+#628 := [mp #658 #661]: #656
+#1590 := [unit-resolution #628 #998]: #679
+#599 := (not #722)
+#1600 := (or #599 #730)
+#1601 := [th-lemma]: #1600
+#1602 := [unit-resolution #1601 #1583]: #599
+#618 := (not #679)
+#600 := (or #618 #722 #677)
+#603 := [def-axiom]: #600
+#1603 := [unit-resolution #603 #1602 #1590]: #677
+#636 := (not #705)
+#625 := (not #677)
+#626 := (or #625 #636 #729)
+#605 := [def-axiom]: #626
+#1604 := [unit-resolution #605 #1603 #1584 #1532]: false
+#1606 := [lemma #1604]: #1605
+#1665 := [unit-resolution #1606 #1663]: #730
+#1611 := (or #703 #604 #817)
+#1608 := [hypothesis]: #730
+#1609 := [hypothesis]: #939
+#1610 := [th-lemma #1609 #1608 #1607]: false
+#1612 := [lemma #1610]: #1611
+#1666 := [unit-resolution #1612 #1665 #1644]: #604
+#804 := (or #902 #939 #654)
+#899 := [def-axiom]: #804
+#1667 := [unit-resolution #899 #1666 #1664]: #654
+#1668 := (or #692 #828 #960)
+#1669 := [th-lemma]: #1668
+#1670 := [unit-resolution #1669 #1667 #1621]: #692
+#630 := (or #705 #721)
+#631 := [def-axiom]: #630
+#1671 := [unit-resolution #631 #1670]: #705
+#1672 := (or #599 #721)
+#1673 := [th-lemma]: #1672
+#1674 := [unit-resolution #1673 #1670]: #599
+#1675 := [unit-resolution #603 #1674 #1590]: #677
+#1676 := [unit-resolution #605 #1675 #1671 #1663]: false
+#1678 := [lemma #1676]: #1677
+#1694 := [unit-resolution #1678 #1693 #1680 #1633 #1421 #1684 #1441]: #742
+#1695 := [unit-resolution #745 #1694 #1452]: #797
+#1696 := (or #853 #828 #817)
+#1697 := [th-lemma]: #1696
+#1698 := [unit-resolution #1697 #1694 #1693]: #817
+#783 := (or #833 #848)
+#784 := [def-axiom]: #783
+#1699 := [unit-resolution #784 #1698]: #833
+#1700 := [unit-resolution #763 #1699 #1695 #1692]: false
+#1702 := [lemma #1700]: #1701
+#1727 := [unit-resolution #1702 #1726 #1723 #1720 #1710 #1707 #1524]: #948
+#1728 := [unit-resolution #895 #1727 #1195]: #611
+#1729 := (or #893 #1324)
+#1730 := [th-lemma]: #1729
+#1731 := [unit-resolution #1730 #1728]: #1324
+#1732 := (or #883 #960)
+#1733 := [th-lemma]: #1732
+#1734 := [unit-resolution #1733 #1727]: #960
+#1735 := [th-lemma #1723 #1424 #1720 #1734 #1731]: false
+#1736 := [lemma #1735]: #368
+#648 := (or #85 #634)
+#647 := (or #85 #634 #574)
+#644 := [def-axiom]: #647
+#627 := [unit-resolution #644 #378]: #648
+#1737 := [unit-resolution #627 #1736]: #85
+#1763 := [monotonicity #1737]: #616
+#1764 := [trans #1526 #1763]: #90
+#1748 := [hypothesis]: #361
+#1754 := (or #811 #358)
+#640 := (or #962 #571)
+#623 := [th-lemma]: #640
+#588 := [unit-resolution #623 #1737]: #571
+#1115 := [hypothesis]: #619
+#1116 := [unit-resolution #1303 #1115]: #903
+#1327 := (not #1222)
+#1326 := (not #1246)
+#1325 := (not #877)
+#1328 := (or #578 #1325 #1291 #1326 #1327 #1440)
+#1527 := [th-lemma]: #1328
+#1745 := [unit-resolution #1527 #1116 #588 #1284 #1275 #1287]: #578
+#1746 := [unit-resolution #1683 #1115]: #788
+#1743 := (or #577 #1431)
+#1738 := (or #962 #589)
+#1739 := [th-lemma]: #1738
+#1740 := [unit-resolution #1739 #1737]: #589
+#1741 := [hypothesis]: #1292
+#1742 := [th-lemma #1741 #1424 #1420 #1427 #1740 #1401]: false
+#1744 := [lemma #1742]: #1743
+#1747 := [unit-resolution #1744 #1746]: #577
+#1751 := (or #1292 #1430)
+#1749 := (or #358 #1292 #1430)
+#1750 := [th-lemma]: #1749
+#1752 := [unit-resolution #1750 #1748]: #1751
+#1753 := [unit-resolution #1752 #1747 #1745]: false
+#1755 := [lemma #1753]: #1754
+#1135 := [unit-resolution #1755 #1748]: #811
+#759 := (or #948 #619)
+#1260 := [hypothesis]: #811
+#758 := [unit-resolution #808 #1679 #1680 #1260]: false
+#639 := [lemma #758]: #759
+#1136 := [unit-resolution #639 #1135]: #948
+#1137 := [unit-resolution #895 #1136 #1195]: #611
+#805 := [unit-resolution #1192 #1137]: #1193
+#806 := [unit-resolution #1296 #1136]: #604
+#1126 := (not #1193)
+#1127 := (or #578 #939 #1126 #1325 #1440)
+#1124 := [th-lemma]: #1127
+#1125 := [unit-resolution #1124 #806 #588 #805 #1275]: #578
+#1138 := [unit-resolution #1730 #1137]: #1324
+#803 := [unit-resolution #1733 #1136]: #960
+#1757 := (not #882)
+#1756 := (not #1324)
+#1758 := (or #577 #654 #1756 #1757 #1276)
+#1759 := [th-lemma]: #1758
+#1760 := [unit-resolution #1759 #803 #1740 #1424 #1138]: #577
+#1761 := [unit-resolution #1752 #1760 #1125]: false
+#1762 := [lemma #1761]: #358
+#645 := (or #634 #367 #361)
+#646 := [def-axiom]: #645
+#638 := [unit-resolution #646 #1736]: #368
+#615 := [unit-resolution #638 #1762]: #367
+[unit-resolution #615 #1764]: false
+unsat
--- a/src/HOL/SMT_Examples/SMT_Examples.thy	Thu May 27 14:54:13 2010 +0200
+++ b/src/HOL/SMT_Examples/SMT_Examples.thy	Thu May 27 14:55:53 2010 +0200
@@ -335,11 +335,9 @@
 
 lemma "let P = 2 * x + 1 > x + (x::real) in P \<or> False \<or> P" by smt
 
-lemma "x + (let y = x mod 2 in 2 * y + 1) \<ge> x + (1::int)"
-  sorry (* FIXME: div/mod *)
+lemma "x + (let y = x mod 2 in 2 * y + 1) \<ge> x + (1::int)" by smt
 
-lemma "x + (let y = x mod 2 in y + y) < x + (3::int)"
-  sorry (* FIXME: div/mod *)
+lemma "x + (let y = x mod 2 in y + y) < x + (3::int)" by smt
 
 lemma
   assumes "x \<noteq> (0::real)"
@@ -349,7 +347,8 @@
 lemma                                                                         
   assumes "(n + m) mod 2 = 0" and "n mod 4 = 3"                               
   shows "n mod 2 = 1 & m mod 2 = (1::int)"      
-  using assms sorry (* FIXME: div/mod *)
+  using assms by smt
+
 
 
 subsection {* Linear arithmetic with quantifiers *}
@@ -484,10 +483,7 @@
    (eval_dioph ks (map (\<lambda>x. x mod 2) xs) mod 2 = l mod 2 \<and>
     eval_dioph ks (map (\<lambda>x. x div 2) xs) =
       (l - eval_dioph ks (map (\<lambda>x. x mod 2) xs)) div 2)"
-  sorry (* FIXME: div/mod *)
-(*
   by (smt eval_dioph_mod[where n=2] eval_dioph_div_mult[where n=2])
-*)
 
 
 section {* Monomorphization examples *}
--- a/src/HOL/SMT_Examples/SMT_Tests.certs	Thu May 27 14:54:13 2010 +0200
+++ b/src/HOL/SMT_Examples/SMT_Tests.certs	Thu May 27 14:55:53 2010 +0200
@@ -24641,3 +24641,26623 @@
 #545 := [unit-resolution #170 #207]: #239
 [unit-resolution #545 #551]: false
 unsat
+5fd6f0b95d28076d72c87d57b5b920aec5c6efe5 250 0
+#2 := false
+decl f5 :: (-> int S2)
+#11 := 0::int
+#55 := (f5 0::int)
+decl f3 :: (-> int int int)
+#53 := (f3 0::int 0::int)
+#54 := (f5 #53)
+#56 := (= #54 #55)
+#505 := (= #53 0::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#10 := (f3 #8 #9)
+#843 := (pattern #10)
+#81 := -1::int
+#85 := (* -1::int #9)
+#82 := (* -1::int #8)
+#88 := (div #82 #85)
+#345 := (* -1::int #88)
+#346 := (+ #10 #345)
+#347 := (= #346 0::int)
+#21 := (div #8 #9)
+#342 := (* -1::int #21)
+#343 := (+ #10 #342)
+#344 := (= #343 0::int)
+#107 := (<= #9 0::int)
+#103 := (<= #8 0::int)
+#300 := (or #103 #107)
+#301 := (not #300)
+#114 := (>= #8 0::int)
+#283 := (or #107 #114)
+#284 := (not #283)
+#307 := (or #284 #301)
+#348 := (ite #307 #344 #347)
+#341 := (= #10 0::int)
+#13 := (= #9 0::int)
+#12 := (= #8 0::int)
+#14 := (or #12 #13)
+#349 := (ite #14 #341 #348)
+#844 := (forall (vars (?v0 int) (?v1 int)) (:pat #843) #349)
+#352 := (forall (vars (?v0 int) (?v1 int)) #349)
+#847 := (iff #352 #844)
+#845 := (iff #349 #349)
+#846 := [refl]: #845
+#848 := [quant-intro #846]: #847
+#312 := (ite #307 #21 #88)
+#315 := (ite #14 0::int #312)
+#318 := (= #10 #315)
+#321 := (forall (vars (?v0 int) (?v1 int)) #318)
+#353 := (iff #321 #352)
+#350 := (iff #318 #349)
+#351 := [rewrite]: #350
+#354 := [quant-intro #351]: #353
+#115 := (not #114)
+#108 := (not #107)
+#118 := (and #108 #115)
+#104 := (not #103)
+#111 := (and #104 #108)
+#121 := (or #111 #118)
+#124 := (ite #121 #21 #88)
+#127 := (ite #14 0::int #124)
+#130 := (= #10 #127)
+#133 := (forall (vars (?v0 int) (?v1 int)) #130)
+#322 := (iff #133 #321)
+#319 := (iff #130 #318)
+#316 := (= #127 #315)
+#313 := (= #124 #312)
+#310 := (iff #121 #307)
+#304 := (or #301 #284)
+#308 := (iff #304 #307)
+#309 := [rewrite]: #308
+#305 := (iff #121 #304)
+#302 := (iff #118 #284)
+#303 := [rewrite]: #302
+#281 := (iff #111 #301)
+#282 := [rewrite]: #281
+#306 := [monotonicity #282 #303]: #305
+#311 := [trans #306 #309]: #310
+#314 := [monotonicity #311]: #313
+#317 := [monotonicity #314]: #316
+#320 := [monotonicity #317]: #319
+#323 := [quant-intro #320]: #322
+#287 := (~ #133 #133)
+#285 := (~ #130 #130)
+#286 := [refl]: #285
+#288 := [nnf-pos #286]: #287
+#23 := (- #9)
+#22 := (- #8)
+#24 := (div #22 #23)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#25 := (ite #20 #21 #24)
+#26 := (ite #14 0::int #25)
+#27 := (= #10 #26)
+#28 := (forall (vars (?v0 int) (?v1 int)) #27)
+#136 := (iff #28 #133)
+#75 := (and #16 #18)
+#78 := (or #17 #75)
+#91 := (ite #78 #21 #88)
+#94 := (ite #14 0::int #91)
+#97 := (= #10 #94)
+#100 := (forall (vars (?v0 int) (?v1 int)) #97)
+#134 := (iff #100 #133)
+#131 := (iff #97 #130)
+#128 := (= #94 #127)
+#125 := (= #91 #124)
+#122 := (iff #78 #121)
+#119 := (iff #75 #118)
+#116 := (iff #18 #115)
+#117 := [rewrite]: #116
+#109 := (iff #16 #108)
+#110 := [rewrite]: #109
+#120 := [monotonicity #110 #117]: #119
+#112 := (iff #17 #111)
+#105 := (iff #15 #104)
+#106 := [rewrite]: #105
+#113 := [monotonicity #106 #110]: #112
+#123 := [monotonicity #113 #120]: #122
+#126 := [monotonicity #123]: #125
+#129 := [monotonicity #126]: #128
+#132 := [monotonicity #129]: #131
+#135 := [quant-intro #132]: #134
+#101 := (iff #28 #100)
+#98 := (iff #27 #97)
+#95 := (= #26 #94)
+#92 := (= #25 #91)
+#89 := (= #24 #88)
+#86 := (= #23 #85)
+#87 := [rewrite]: #86
+#83 := (= #22 #82)
+#84 := [rewrite]: #83
+#90 := [monotonicity #84 #87]: #89
+#79 := (iff #20 #78)
+#76 := (iff #19 #75)
+#77 := [rewrite]: #76
+#80 := [monotonicity #77]: #79
+#93 := [monotonicity #80 #90]: #92
+#96 := [monotonicity #93]: #95
+#99 := [monotonicity #96]: #98
+#102 := [quant-intro #99]: #101
+#137 := [trans #102 #135]: #136
+#74 := [asserted]: #28
+#138 := [mp #74 #137]: #133
+#272 := [mp~ #138 #288]: #133
+#324 := [mp #272 #323]: #321
+#355 := [mp #324 #354]: #352
+#849 := [mp #355 #848]: #844
+#802 := (not #844)
+#797 := (or #802 #505)
+#429 := (* -1::int 0::int)
+#514 := (div #429 #429)
+#515 := (* -1::int #514)
+#516 := (+ #53 #515)
+#507 := (= #516 0::int)
+#518 := (div 0::int 0::int)
+#519 := (* -1::int #518)
+#447 := (+ #53 #519)
+#520 := (= #447 0::int)
+#517 := (<= 0::int 0::int)
+#521 := (or #517 #517)
+#500 := (not #521)
+#835 := (>= 0::int 0::int)
+#837 := (or #517 #835)
+#494 := (not #837)
+#624 := (or #494 #500)
+#831 := (ite #624 #520 #507)
+#506 := (= 0::int 0::int)
+#838 := (or #506 #506)
+#839 := (ite #838 #505 #831)
+#803 := (or #802 #839)
+#645 := (iff #803 #797)
+#788 := (iff #797 #797)
+#789 := [rewrite]: #788
+#796 := (iff #839 #505)
+#1 := true
+#809 := (ite true #505 #520)
+#800 := (iff #809 #505)
+#795 := [rewrite]: #800
+#798 := (iff #839 #809)
+#808 := (iff #831 #520)
+#528 := (ite false #520 #520)
+#522 := (iff #528 #520)
+#804 := [rewrite]: #522
+#806 := (iff #831 #528)
+#526 := (iff #507 #520)
+#815 := (= #516 #447)
+#814 := (= #515 #519)
+#536 := (= #514 #518)
+#813 := (= #429 0::int)
+#535 := [rewrite]: #813
+#810 := [monotonicity #535 #535]: #536
+#811 := [monotonicity #810]: #814
+#525 := [monotonicity #811]: #815
+#527 := [monotonicity #525]: #526
+#435 := (iff #624 false)
+#817 := (or false false)
+#541 := (iff #817 false)
+#542 := [rewrite]: #541
+#539 := (iff #624 #817)
+#830 := (iff #500 false)
+#821 := (not true)
+#824 := (iff #821 false)
+#819 := [rewrite]: #824
+#829 := (iff #500 #821)
+#468 := (iff #521 true)
+#836 := (or true true)
+#492 := (iff #836 true)
+#497 := [rewrite]: #492
+#826 := (iff #521 #836)
+#834 := (iff #517 true)
+#477 := [rewrite]: #834
+#828 := [monotonicity #477 #477]: #826
+#469 := [trans #828 #497]: #468
+#827 := [monotonicity #469]: #829
+#816 := [trans #827 #819]: #830
+#825 := (iff #494 false)
+#822 := (iff #494 #821)
+#484 := (iff #837 true)
+#482 := (iff #837 #836)
+#818 := (iff #835 true)
+#481 := [rewrite]: #818
+#483 := [monotonicity #477 #481]: #482
+#820 := [trans #483 #497]: #484
+#823 := [monotonicity #820]: #822
+#463 := [trans #823 #819]: #825
+#540 := [monotonicity #463 #816]: #539
+#812 := [trans #540 #542]: #435
+#807 := [monotonicity #812 #527]: #806
+#805 := [trans #807 #804]: #808
+#833 := (iff #838 true)
+#842 := (iff #838 #836)
+#840 := (iff #506 true)
+#841 := [rewrite]: #840
+#832 := [monotonicity #841 #841]: #842
+#493 := [trans #832 #497]: #833
+#799 := [monotonicity #493 #805]: #798
+#801 := [trans #799 #795]: #796
+#646 := [monotonicity #801]: #645
+#790 := [trans #646 #789]: #645
+#644 := [quant-inst]: #803
+#791 := [mp #644 #790]: #797
+#745 := [unit-resolution #791 #849]: #505
+#746 := [monotonicity #745]: #56
+#57 := (not #56)
+#269 := [asserted]: #57
+[unit-resolution #269 #746]: false
+unsat
+577ee4fbd823426a4a6929a83c9bfd94f9748c36 265 0
+#2 := false
+decl f5 :: (-> int S2)
+#11 := 0::int
+#57 := (f5 0::int)
+decl f3 :: (-> int int int)
+decl f6 :: (-> S2 int)
+decl f7 :: S2
+#53 := f7
+#54 := (f6 f7)
+#55 := (f3 #54 0::int)
+#56 := (f5 #55)
+#58 := (= #56 #57)
+#840 := (= #55 0::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#10 := (f3 #8 #9)
+#845 := (pattern #10)
+#83 := -1::int
+#87 := (* -1::int #9)
+#84 := (* -1::int #8)
+#90 := (div #84 #87)
+#347 := (* -1::int #90)
+#348 := (+ #10 #347)
+#349 := (= #348 0::int)
+#21 := (div #8 #9)
+#344 := (* -1::int #21)
+#345 := (+ #10 #344)
+#346 := (= #345 0::int)
+#109 := (<= #9 0::int)
+#105 := (<= #8 0::int)
+#302 := (or #105 #109)
+#303 := (not #302)
+#116 := (>= #8 0::int)
+#285 := (or #109 #116)
+#286 := (not #285)
+#309 := (or #286 #303)
+#350 := (ite #309 #346 #349)
+#343 := (= #10 0::int)
+#13 := (= #9 0::int)
+#12 := (= #8 0::int)
+#14 := (or #12 #13)
+#351 := (ite #14 #343 #350)
+#846 := (forall (vars (?v0 int) (?v1 int)) (:pat #845) #351)
+#354 := (forall (vars (?v0 int) (?v1 int)) #351)
+#849 := (iff #354 #846)
+#847 := (iff #351 #351)
+#848 := [refl]: #847
+#850 := [quant-intro #848]: #849
+#314 := (ite #309 #21 #90)
+#317 := (ite #14 0::int #314)
+#320 := (= #10 #317)
+#323 := (forall (vars (?v0 int) (?v1 int)) #320)
+#355 := (iff #323 #354)
+#352 := (iff #320 #351)
+#353 := [rewrite]: #352
+#356 := [quant-intro #353]: #355
+#117 := (not #116)
+#110 := (not #109)
+#120 := (and #110 #117)
+#106 := (not #105)
+#113 := (and #106 #110)
+#123 := (or #113 #120)
+#126 := (ite #123 #21 #90)
+#129 := (ite #14 0::int #126)
+#132 := (= #10 #129)
+#135 := (forall (vars (?v0 int) (?v1 int)) #132)
+#324 := (iff #135 #323)
+#321 := (iff #132 #320)
+#318 := (= #129 #317)
+#315 := (= #126 #314)
+#312 := (iff #123 #309)
+#306 := (or #303 #286)
+#310 := (iff #306 #309)
+#311 := [rewrite]: #310
+#307 := (iff #123 #306)
+#304 := (iff #120 #286)
+#305 := [rewrite]: #304
+#283 := (iff #113 #303)
+#284 := [rewrite]: #283
+#308 := [monotonicity #284 #305]: #307
+#313 := [trans #308 #311]: #312
+#316 := [monotonicity #313]: #315
+#319 := [monotonicity #316]: #318
+#322 := [monotonicity #319]: #321
+#325 := [quant-intro #322]: #324
+#289 := (~ #135 #135)
+#287 := (~ #132 #132)
+#288 := [refl]: #287
+#290 := [nnf-pos #288]: #289
+#23 := (- #9)
+#22 := (- #8)
+#24 := (div #22 #23)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#25 := (ite #20 #21 #24)
+#26 := (ite #14 0::int #25)
+#27 := (= #10 #26)
+#28 := (forall (vars (?v0 int) (?v1 int)) #27)
+#138 := (iff #28 #135)
+#77 := (and #16 #18)
+#80 := (or #17 #77)
+#93 := (ite #80 #21 #90)
+#96 := (ite #14 0::int #93)
+#99 := (= #10 #96)
+#102 := (forall (vars (?v0 int) (?v1 int)) #99)
+#136 := (iff #102 #135)
+#133 := (iff #99 #132)
+#130 := (= #96 #129)
+#127 := (= #93 #126)
+#124 := (iff #80 #123)
+#121 := (iff #77 #120)
+#118 := (iff #18 #117)
+#119 := [rewrite]: #118
+#111 := (iff #16 #110)
+#112 := [rewrite]: #111
+#122 := [monotonicity #112 #119]: #121
+#114 := (iff #17 #113)
+#107 := (iff #15 #106)
+#108 := [rewrite]: #107
+#115 := [monotonicity #108 #112]: #114
+#125 := [monotonicity #115 #122]: #124
+#128 := [monotonicity #125]: #127
+#131 := [monotonicity #128]: #130
+#134 := [monotonicity #131]: #133
+#137 := [quant-intro #134]: #136
+#103 := (iff #28 #102)
+#100 := (iff #27 #99)
+#97 := (= #26 #96)
+#94 := (= #25 #93)
+#91 := (= #24 #90)
+#88 := (= #23 #87)
+#89 := [rewrite]: #88
+#85 := (= #22 #84)
+#86 := [rewrite]: #85
+#92 := [monotonicity #86 #89]: #91
+#81 := (iff #20 #80)
+#78 := (iff #19 #77)
+#79 := [rewrite]: #78
+#82 := [monotonicity #79]: #81
+#95 := [monotonicity #82 #92]: #94
+#98 := [monotonicity #95]: #97
+#101 := [monotonicity #98]: #100
+#104 := [quant-intro #101]: #103
+#139 := [trans #104 #137]: #138
+#76 := [asserted]: #28
+#140 := [mp #76 #139]: #135
+#274 := [mp~ #140 #290]: #135
+#326 := [mp #274 #325]: #323
+#357 := [mp #326 #356]: #354
+#851 := [mp #357 #850]: #846
+#788 := (not #846)
+#794 := (or #788 #840)
+#431 := (* -1::int 0::int)
+#516 := (* -1::int #54)
+#517 := (div #516 #431)
+#518 := (* -1::int #517)
+#509 := (+ #55 #518)
+#520 := (= #509 0::int)
+#521 := (div #54 0::int)
+#449 := (* -1::int #521)
+#522 := (+ #55 #449)
+#519 := (= #522 0::int)
+#523 := (<= 0::int 0::int)
+#502 := (<= #54 0::int)
+#837 := (or #502 #523)
+#839 := (not #837)
+#496 := (>= #54 0::int)
+#626 := (or #523 #496)
+#833 := (not #626)
+#507 := (or #833 #839)
+#508 := (ite #507 #519 #520)
+#841 := (= 0::int 0::int)
+#842 := (= #54 0::int)
+#843 := (or #842 #841)
+#838 := (ite #843 #840 #508)
+#795 := (or #788 #838)
+#796 := (iff #795 #794)
+#627 := (iff #794 #794)
+#628 := [rewrite]: #627
+#793 := (iff #838 #840)
+#529 := (div #516 0::int)
+#809 := (* -1::int #529)
+#810 := (+ #55 #809)
+#800 := (= #810 0::int)
+#1 := true
+#647 := (ite true #840 #800)
+#791 := (iff #647 #840)
+#792 := [rewrite]: #791
+#648 := (iff #838 #647)
+#805 := (iff #508 #800)
+#797 := (ite false #519 #800)
+#804 := (iff #797 #800)
+#799 := [rewrite]: #804
+#798 := (iff #508 #797)
+#801 := (iff #520 #800)
+#807 := (= #509 #810)
+#524 := (= #518 #809)
+#530 := (= #517 #529)
+#527 := (= #431 0::int)
+#528 := [rewrite]: #527
+#808 := [monotonicity #528]: #530
+#806 := [monotonicity #808]: #524
+#811 := [monotonicity #806]: #807
+#802 := [monotonicity #811]: #801
+#813 := (iff #507 false)
+#815 := (or false false)
+#812 := (iff #815 false)
+#816 := [rewrite]: #812
+#537 := (iff #507 #815)
+#437 := (iff #839 false)
+#821 := (not true)
+#828 := (iff #821 false)
+#830 := [rewrite]: #828
+#543 := (iff #839 #821)
+#541 := (iff #837 true)
+#831 := (or #502 true)
+#818 := (iff #831 true)
+#819 := [rewrite]: #818
+#829 := (iff #837 #831)
+#483 := (iff #523 true)
+#484 := [rewrite]: #483
+#832 := [monotonicity #484]: #829
+#542 := [trans #832 #819]: #541
+#544 := [monotonicity #542]: #543
+#814 := [trans #544 #830]: #437
+#470 := (iff #833 false)
+#827 := (iff #833 #821)
+#825 := (iff #626 true)
+#485 := (or true #496)
+#823 := (iff #485 true)
+#824 := [rewrite]: #823
+#486 := (iff #626 #485)
+#822 := [monotonicity #484]: #486
+#826 := [trans #822 #824]: #825
+#465 := [monotonicity #826]: #827
+#471 := [trans #465 #830]: #470
+#538 := [monotonicity #471 #814]: #537
+#817 := [trans #538 #816]: #813
+#803 := [monotonicity #817 #802]: #798
+#646 := [trans #803 #799]: #805
+#479 := (iff #843 true)
+#494 := (or #842 true)
+#495 := (iff #494 true)
+#836 := [rewrite]: #495
+#499 := (iff #843 #494)
+#844 := (iff #841 true)
+#834 := [rewrite]: #844
+#835 := [monotonicity #834]: #499
+#820 := [trans #835 #836]: #479
+#790 := [monotonicity #820 #646]: #648
+#787 := [trans #790 #792]: #793
+#625 := [monotonicity #787]: #796
+#781 := [trans #625 #628]: #796
+#789 := [quant-inst]: #795
+#782 := [mp #789 #781]: #794
+#737 := [unit-resolution #782 #851]: #840
+#738 := [monotonicity #737]: #58
+#59 := (not #58)
+#271 := [asserted]: #59
+[unit-resolution #271 #738]: false
+unsat
+38260716feee2c5a0d6d5d90494cc5c9c5e520dc 287 0
+#2 := false
+decl f5 :: (-> int S2)
+#11 := 0::int
+#56 := (f5 0::int)
+decl f3 :: (-> int int int)
+#53 := 1::int
+#54 := (f3 0::int 1::int)
+#55 := (f5 #54)
+#57 := (= #55 #56)
+#839 := (= #54 0::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#10 := (f3 #8 #9)
+#843 := (pattern #10)
+#82 := -1::int
+#86 := (* -1::int #9)
+#83 := (* -1::int #8)
+#89 := (div #83 #86)
+#346 := (* -1::int #89)
+#347 := (+ #10 #346)
+#348 := (= #347 0::int)
+#21 := (div #8 #9)
+#343 := (* -1::int #21)
+#344 := (+ #10 #343)
+#345 := (= #344 0::int)
+#108 := (<= #9 0::int)
+#104 := (<= #8 0::int)
+#301 := (or #104 #108)
+#302 := (not #301)
+#115 := (>= #8 0::int)
+#284 := (or #108 #115)
+#285 := (not #284)
+#308 := (or #285 #302)
+#349 := (ite #308 #345 #348)
+#342 := (= #10 0::int)
+#13 := (= #9 0::int)
+#12 := (= #8 0::int)
+#14 := (or #12 #13)
+#350 := (ite #14 #342 #349)
+#844 := (forall (vars (?v0 int) (?v1 int)) (:pat #843) #350)
+#353 := (forall (vars (?v0 int) (?v1 int)) #350)
+#847 := (iff #353 #844)
+#845 := (iff #350 #350)
+#846 := [refl]: #845
+#848 := [quant-intro #846]: #847
+#313 := (ite #308 #21 #89)
+#316 := (ite #14 0::int #313)
+#319 := (= #10 #316)
+#322 := (forall (vars (?v0 int) (?v1 int)) #319)
+#354 := (iff #322 #353)
+#351 := (iff #319 #350)
+#352 := [rewrite]: #351
+#355 := [quant-intro #352]: #354
+#116 := (not #115)
+#109 := (not #108)
+#119 := (and #109 #116)
+#105 := (not #104)
+#112 := (and #105 #109)
+#122 := (or #112 #119)
+#125 := (ite #122 #21 #89)
+#128 := (ite #14 0::int #125)
+#131 := (= #10 #128)
+#134 := (forall (vars (?v0 int) (?v1 int)) #131)
+#323 := (iff #134 #322)
+#320 := (iff #131 #319)
+#317 := (= #128 #316)
+#314 := (= #125 #313)
+#311 := (iff #122 #308)
+#305 := (or #302 #285)
+#309 := (iff #305 #308)
+#310 := [rewrite]: #309
+#306 := (iff #122 #305)
+#303 := (iff #119 #285)
+#304 := [rewrite]: #303
+#282 := (iff #112 #302)
+#283 := [rewrite]: #282
+#307 := [monotonicity #283 #304]: #306
+#312 := [trans #307 #310]: #311
+#315 := [monotonicity #312]: #314
+#318 := [monotonicity #315]: #317
+#321 := [monotonicity #318]: #320
+#324 := [quant-intro #321]: #323
+#288 := (~ #134 #134)
+#286 := (~ #131 #131)
+#287 := [refl]: #286
+#289 := [nnf-pos #287]: #288
+#23 := (- #9)
+#22 := (- #8)
+#24 := (div #22 #23)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#25 := (ite #20 #21 #24)
+#26 := (ite #14 0::int #25)
+#27 := (= #10 #26)
+#28 := (forall (vars (?v0 int) (?v1 int)) #27)
+#137 := (iff #28 #134)
+#76 := (and #16 #18)
+#79 := (or #17 #76)
+#92 := (ite #79 #21 #89)
+#95 := (ite #14 0::int #92)
+#98 := (= #10 #95)
+#101 := (forall (vars (?v0 int) (?v1 int)) #98)
+#135 := (iff #101 #134)
+#132 := (iff #98 #131)
+#129 := (= #95 #128)
+#126 := (= #92 #125)
+#123 := (iff #79 #122)
+#120 := (iff #76 #119)
+#117 := (iff #18 #116)
+#118 := [rewrite]: #117
+#110 := (iff #16 #109)
+#111 := [rewrite]: #110
+#121 := [monotonicity #111 #118]: #120
+#113 := (iff #17 #112)
+#106 := (iff #15 #105)
+#107 := [rewrite]: #106
+#114 := [monotonicity #107 #111]: #113
+#124 := [monotonicity #114 #121]: #123
+#127 := [monotonicity #124]: #126
+#130 := [monotonicity #127]: #129
+#133 := [monotonicity #130]: #132
+#136 := [quant-intro #133]: #135
+#102 := (iff #28 #101)
+#99 := (iff #27 #98)
+#96 := (= #26 #95)
+#93 := (= #25 #92)
+#90 := (= #24 #89)
+#87 := (= #23 #86)
+#88 := [rewrite]: #87
+#84 := (= #22 #83)
+#85 := [rewrite]: #84
+#91 := [monotonicity #85 #88]: #90
+#80 := (iff #20 #79)
+#77 := (iff #19 #76)
+#78 := [rewrite]: #77
+#81 := [monotonicity #78]: #80
+#94 := [monotonicity #81 #91]: #93
+#97 := [monotonicity #94]: #96
+#100 := [monotonicity #97]: #99
+#103 := [quant-intro #100]: #102
+#138 := [trans #103 #136]: #137
+#75 := [asserted]: #28
+#139 := [mp #75 #138]: #134
+#273 := [mp~ #139 #289]: #134
+#325 := [mp #273 #324]: #322
+#356 := [mp #325 #355]: #353
+#849 := [mp #356 #848]: #844
+#679 := (not #844)
+#672 := (or #679 #839)
+#430 := (* -1::int 1::int)
+#514 := (* -1::int 0::int)
+#515 := (div #514 #430)
+#516 := (* -1::int #515)
+#507 := (+ #54 #516)
+#518 := (= #507 0::int)
+#519 := (div 0::int 1::int)
+#520 := (* -1::int #519)
+#517 := (+ #54 #520)
+#521 := (= #517 0::int)
+#500 := (<= 1::int 0::int)
+#835 := (<= 0::int 0::int)
+#837 := (or #835 #500)
+#494 := (not #837)
+#624 := (>= 0::int 0::int)
+#831 := (or #500 #624)
+#505 := (not #831)
+#506 := (or #505 #494)
+#838 := (ite #506 #521 #518)
+#840 := (= 1::int 0::int)
+#841 := (= 0::int 0::int)
+#836 := (or #841 #840)
+#842 := (ite #836 #839 #838)
+#680 := (or #679 #842)
+#682 := (iff #680 #672)
+#684 := (iff #672 #672)
+#777 := [rewrite]: #684
+#676 := (iff #842 #839)
+#1 := true
+#677 := (ite true #839 #839)
+#776 := (iff #677 #839)
+#661 := [rewrite]: #776
+#772 := (iff #842 #677)
+#627 := (iff #838 #839)
+#781 := (ite false #839 #839)
+#667 := (iff #781 #839)
+#668 := [rewrite]: #667
+#784 := (iff #838 #781)
+#782 := (iff #518 #839)
+#779 := (= #507 #54)
+#799 := (+ #54 0::int)
+#796 := (= #799 #54)
+#801 := [rewrite]: #796
+#625 := (= #507 #799)
+#794 := (= #516 0::int)
+#808 := (= #514 0::int)
+#805 := [rewrite]: #808
+#793 := (= #516 #514)
+#786 := (= #515 0::int)
+#788 := (div 0::int -1::int)
+#791 := (= #788 0::int)
+#785 := [rewrite]: #791
+#789 := (= #515 #788)
+#645 := (= #430 -1::int)
+#646 := [rewrite]: #645
+#790 := [monotonicity #805 #646]: #789
+#792 := [trans #790 #785]: #786
+#787 := [monotonicity #792]: #793
+#623 := [trans #787 #805]: #794
+#626 := [monotonicity #623]: #625
+#780 := [trans #626 #801]: #779
+#783 := [monotonicity #780]: #782
+#803 := (iff #521 #839)
+#802 := (= #517 #54)
+#800 := (= #517 #799)
+#809 := (= #520 0::int)
+#522 := (= #520 #514)
+#806 := (= #519 0::int)
+#807 := [rewrite]: #806
+#804 := [monotonicity #807]: #522
+#798 := [trans #804 #805]: #809
+#795 := [monotonicity #798]: #800
+#797 := [trans #795 #801]: #802
+#644 := [monotonicity #797]: #803
+#527 := (iff #506 false)
+#814 := (or false false)
+#525 := (iff #814 false)
+#526 := [rewrite]: #525
+#811 := (iff #506 #814)
+#536 := (iff #494 false)
+#468 := (not true)
+#827 := (iff #468 false)
+#830 := [rewrite]: #827
+#813 := (iff #494 #468)
+#436 := (iff #837 true)
+#493 := (or true false)
+#818 := (iff #493 true)
+#481 := [rewrite]: #818
+#541 := (iff #837 #493)
+#484 := (iff #500 false)
+#820 := [rewrite]: #484
+#539 := (iff #835 true)
+#540 := [rewrite]: #539
+#542 := [monotonicity #540 #820]: #541
+#812 := [trans #542 #481]: #436
+#535 := [monotonicity #812]: #813
+#810 := [trans #535 #830]: #536
+#816 := (iff #505 false)
+#469 := (iff #505 #468)
+#826 := (iff #831 true)
+#823 := (or false true)
+#825 := (iff #823 true)
+#463 := [rewrite]: #825
+#824 := (iff #831 #823)
+#821 := (iff #624 true)
+#822 := [rewrite]: #821
+#819 := [monotonicity #820 #822]: #824
+#828 := [trans #819 #463]: #826
+#829 := [monotonicity #828]: #469
+#817 := [trans #829 #830]: #816
+#815 := [monotonicity #817 #810]: #811
+#528 := [trans #815 #526]: #527
+#666 := [monotonicity #528 #644 #783]: #784
+#775 := [trans #666 #668]: #627
+#482 := (iff #836 true)
+#834 := (iff #836 #493)
+#497 := (iff #840 false)
+#833 := [rewrite]: #497
+#832 := (iff #841 true)
+#492 := [rewrite]: #832
+#477 := [monotonicity #492 #833]: #834
+#483 := [trans #477 #481]: #482
+#773 := [monotonicity #483 #775]: #772
+#678 := [trans #773 #661]: #676
+#683 := [monotonicity #678]: #682
+#774 := [trans #683 #777]: #682
+#681 := [quant-inst]: #680
+#778 := [mp #681 #774]: #672
+#690 := [unit-resolution #778 #849]: #839
+#691 := [monotonicity #690]: #57
+#58 := (not #57)
+#270 := [asserted]: #58
+[unit-resolution #270 #691]: false
+unsat
+6b343bdfe13616e1563ddaa748d8eef633fbba98 287 0
+#2 := false
+decl f5 :: (-> int S2)
+#53 := 1::int
+#56 := (f5 1::int)
+decl f3 :: (-> int int int)
+#54 := (f3 1::int 1::int)
+#55 := (f5 #54)
+#57 := (= #55 #56)
+#801 := (= #54 1::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#10 := (f3 #8 #9)
+#843 := (pattern #10)
+#11 := 0::int
+#82 := -1::int
+#86 := (* -1::int #9)
+#83 := (* -1::int #8)
+#89 := (div #83 #86)
+#346 := (* -1::int #89)
+#347 := (+ #10 #346)
+#348 := (= #347 0::int)
+#21 := (div #8 #9)
+#343 := (* -1::int #21)
+#344 := (+ #10 #343)
+#345 := (= #344 0::int)
+#108 := (<= #9 0::int)
+#104 := (<= #8 0::int)
+#301 := (or #104 #108)
+#302 := (not #301)
+#115 := (>= #8 0::int)
+#284 := (or #108 #115)
+#285 := (not #284)
+#308 := (or #285 #302)
+#349 := (ite #308 #345 #348)
+#342 := (= #10 0::int)
+#13 := (= #9 0::int)
+#12 := (= #8 0::int)
+#14 := (or #12 #13)
+#350 := (ite #14 #342 #349)
+#844 := (forall (vars (?v0 int) (?v1 int)) (:pat #843) #350)
+#353 := (forall (vars (?v0 int) (?v1 int)) #350)
+#847 := (iff #353 #844)
+#845 := (iff #350 #350)
+#846 := [refl]: #845
+#848 := [quant-intro #846]: #847
+#313 := (ite #308 #21 #89)
+#316 := (ite #14 0::int #313)
+#319 := (= #10 #316)
+#322 := (forall (vars (?v0 int) (?v1 int)) #319)
+#354 := (iff #322 #353)
+#351 := (iff #319 #350)
+#352 := [rewrite]: #351
+#355 := [quant-intro #352]: #354
+#116 := (not #115)
+#109 := (not #108)
+#119 := (and #109 #116)
+#105 := (not #104)
+#112 := (and #105 #109)
+#122 := (or #112 #119)
+#125 := (ite #122 #21 #89)
+#128 := (ite #14 0::int #125)
+#131 := (= #10 #128)
+#134 := (forall (vars (?v0 int) (?v1 int)) #131)
+#323 := (iff #134 #322)
+#320 := (iff #131 #319)
+#317 := (= #128 #316)
+#314 := (= #125 #313)
+#311 := (iff #122 #308)
+#305 := (or #302 #285)
+#309 := (iff #305 #308)
+#310 := [rewrite]: #309
+#306 := (iff #122 #305)
+#303 := (iff #119 #285)
+#304 := [rewrite]: #303
+#282 := (iff #112 #302)
+#283 := [rewrite]: #282
+#307 := [monotonicity #283 #304]: #306
+#312 := [trans #307 #310]: #311
+#315 := [monotonicity #312]: #314
+#318 := [monotonicity #315]: #317
+#321 := [monotonicity #318]: #320
+#324 := [quant-intro #321]: #323
+#288 := (~ #134 #134)
+#286 := (~ #131 #131)
+#287 := [refl]: #286
+#289 := [nnf-pos #287]: #288
+#23 := (- #9)
+#22 := (- #8)
+#24 := (div #22 #23)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#25 := (ite #20 #21 #24)
+#26 := (ite #14 0::int #25)
+#27 := (= #10 #26)
+#28 := (forall (vars (?v0 int) (?v1 int)) #27)
+#137 := (iff #28 #134)
+#76 := (and #16 #18)
+#79 := (or #17 #76)
+#92 := (ite #79 #21 #89)
+#95 := (ite #14 0::int #92)
+#98 := (= #10 #95)
+#101 := (forall (vars (?v0 int) (?v1 int)) #98)
+#135 := (iff #101 #134)
+#132 := (iff #98 #131)
+#129 := (= #95 #128)
+#126 := (= #92 #125)
+#123 := (iff #79 #122)
+#120 := (iff #76 #119)
+#117 := (iff #18 #116)
+#118 := [rewrite]: #117
+#110 := (iff #16 #109)
+#111 := [rewrite]: #110
+#121 := [monotonicity #111 #118]: #120
+#113 := (iff #17 #112)
+#106 := (iff #15 #105)
+#107 := [rewrite]: #106
+#114 := [monotonicity #107 #111]: #113
+#124 := [monotonicity #114 #121]: #123
+#127 := [monotonicity #124]: #126
+#130 := [monotonicity #127]: #129
+#133 := [monotonicity #130]: #132
+#136 := [quant-intro #133]: #135
+#102 := (iff #28 #101)
+#99 := (iff #27 #98)
+#96 := (= #26 #95)
+#93 := (= #25 #92)
+#90 := (= #24 #89)
+#87 := (= #23 #86)
+#88 := [rewrite]: #87
+#84 := (= #22 #83)
+#85 := [rewrite]: #84
+#91 := [monotonicity #85 #88]: #90
+#80 := (iff #20 #79)
+#77 := (iff #19 #76)
+#78 := [rewrite]: #77
+#81 := [monotonicity #78]: #80
+#94 := [monotonicity #81 #91]: #93
+#97 := [monotonicity #94]: #96
+#100 := [monotonicity #97]: #99
+#103 := [quant-intro #100]: #102
+#138 := [trans #103 #136]: #137
+#75 := [asserted]: #28
+#139 := [mp #75 #138]: #134
+#273 := [mp~ #139 #289]: #134
+#325 := [mp #273 #324]: #322
+#356 := [mp #325 #355]: #353
+#849 := [mp #356 #848]: #844
+#679 := (not #844)
+#672 := (or #679 #801)
+#430 := (* -1::int 1::int)
+#514 := (div #430 #430)
+#515 := (* -1::int #514)
+#516 := (+ #54 #515)
+#507 := (= #516 0::int)
+#518 := (div 1::int 1::int)
+#519 := (* -1::int #518)
+#520 := (+ #54 #519)
+#517 := (= #520 0::int)
+#521 := (<= 1::int 0::int)
+#500 := (or #521 #521)
+#835 := (not #500)
+#837 := (>= 1::int 0::int)
+#494 := (or #521 #837)
+#624 := (not #494)
+#831 := (or #624 #835)
+#505 := (ite #831 #517 #507)
+#506 := (= #54 0::int)
+#838 := (= 1::int 0::int)
+#839 := (or #838 #838)
+#840 := (ite #839 #506 #505)
+#680 := (or #679 #840)
+#682 := (iff #680 #672)
+#684 := (iff #672 #672)
+#777 := [rewrite]: #684
+#676 := (iff #840 #801)
+#677 := (ite false #506 #801)
+#776 := (iff #677 #801)
+#661 := [rewrite]: #776
+#772 := (iff #840 #677)
+#627 := (iff #505 #801)
+#1 := true
+#781 := (ite true #801 #801)
+#667 := (iff #781 #801)
+#668 := [rewrite]: #667
+#784 := (iff #505 #781)
+#782 := (iff #507 #801)
+#808 := (+ -1::int #54)
+#800 := (= #808 0::int)
+#802 := (iff #800 #801)
+#797 := [rewrite]: #802
+#779 := (iff #507 #800)
+#625 := (= #516 #808)
+#807 := (+ #54 -1::int)
+#805 := (= #807 #808)
+#809 := [rewrite]: #805
+#794 := (= #516 #807)
+#793 := (= #515 -1::int)
+#526 := (= #430 -1::int)
+#527 := [rewrite]: #526
+#786 := (= #515 #430)
+#791 := (= #514 1::int)
+#645 := (div -1::int -1::int)
+#789 := (= #645 1::int)
+#790 := [rewrite]: #789
+#646 := (= #514 #645)
+#788 := [monotonicity #527 #527]: #646
+#785 := [trans #788 #790]: #791
+#792 := [monotonicity #785]: #786
+#787 := [trans #792 #527]: #793
+#623 := [monotonicity #787]: #794
+#626 := [trans #623 #809]: #625
+#780 := [monotonicity #626]: #779
+#783 := [trans #780 #797]: #782
+#803 := (iff #517 #801)
+#795 := (iff #517 #800)
+#798 := (= #520 #808)
+#522 := (= #520 #807)
+#528 := (= #519 -1::int)
+#815 := (= #519 #430)
+#814 := (= #518 1::int)
+#811 := [rewrite]: #814
+#525 := [monotonicity #811]: #815
+#806 := [trans #525 #527]: #528
+#804 := [monotonicity #806]: #522
+#799 := [trans #804 #809]: #798
+#796 := [monotonicity #799]: #795
+#644 := [trans #796 #797]: #803
+#536 := (iff #831 true)
+#483 := (or false true)
+#821 := (iff #483 true)
+#822 := [rewrite]: #821
+#813 := (iff #831 #483)
+#436 := (iff #835 true)
+#817 := (not false)
+#541 := (iff #817 true)
+#542 := [rewrite]: #541
+#539 := (iff #835 #817)
+#830 := (iff #500 false)
+#842 := (or false false)
+#497 := (iff #842 false)
+#833 := [rewrite]: #497
+#829 := (iff #500 #842)
+#477 := (iff #521 false)
+#818 := [rewrite]: #477
+#827 := [monotonicity #818 #818]: #829
+#816 := [trans #827 #833]: #830
+#540 := [monotonicity #816]: #539
+#812 := [trans #540 #542]: #436
+#468 := (iff #624 false)
+#819 := (not true)
+#826 := (iff #819 false)
+#828 := [rewrite]: #826
+#825 := (iff #624 #819)
+#823 := (iff #494 true)
+#484 := (iff #494 #483)
+#481 := (iff #837 true)
+#482 := [rewrite]: #481
+#820 := [monotonicity #818 #482]: #484
+#824 := [trans #820 #822]: #823
+#463 := [monotonicity #824]: #825
+#469 := [trans #463 #828]: #468
+#535 := [monotonicity #469 #812]: #813
+#810 := [trans #535 #822]: #536
+#666 := [monotonicity #810 #644 #783]: #784
+#775 := [trans #666 #668]: #627
+#493 := (iff #839 false)
+#832 := (iff #839 #842)
+#841 := (iff #838 false)
+#836 := [rewrite]: #841
+#492 := [monotonicity #836 #836]: #832
+#834 := [trans #492 #833]: #493
+#773 := [monotonicity #834 #775]: #772
+#678 := [trans #773 #661]: #676
+#683 := [monotonicity #678]: #682
+#774 := [trans #683 #777]: #682
+#681 := [quant-inst]: #680
+#778 := [mp #681 #774]: #672
+#691 := [unit-resolution #778 #849]: #801
+#692 := [monotonicity #691]: #57
+#58 := (not #57)
+#270 := [asserted]: #58
+[unit-resolution #270 #692]: false
+unsat
+5c0dd3f575123070a20e46cf419a9f04838a0c5d 298 0
+#2 := false
+decl f5 :: (-> int S2)
+#53 := 3::int
+#57 := (f5 3::int)
+decl f3 :: (-> int int int)
+#54 := 1::int
+#55 := (f3 3::int 1::int)
+#56 := (f5 #55)
+#58 := (= #56 #57)
+#790 := (= #55 3::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#10 := (f3 #8 #9)
+#844 := (pattern #10)
+#11 := 0::int
+#83 := -1::int
+#87 := (* -1::int #9)
+#84 := (* -1::int #8)
+#90 := (div #84 #87)
+#347 := (* -1::int #90)
+#348 := (+ #10 #347)
+#349 := (= #348 0::int)
+#21 := (div #8 #9)
+#344 := (* -1::int #21)
+#345 := (+ #10 #344)
+#346 := (= #345 0::int)
+#109 := (<= #9 0::int)
+#105 := (<= #8 0::int)
+#302 := (or #105 #109)
+#303 := (not #302)
+#116 := (>= #8 0::int)
+#285 := (or #109 #116)
+#286 := (not #285)
+#309 := (or #286 #303)
+#350 := (ite #309 #346 #349)
+#343 := (= #10 0::int)
+#13 := (= #9 0::int)
+#12 := (= #8 0::int)
+#14 := (or #12 #13)
+#351 := (ite #14 #343 #350)
+#845 := (forall (vars (?v0 int) (?v1 int)) (:pat #844) #351)
+#354 := (forall (vars (?v0 int) (?v1 int)) #351)
+#848 := (iff #354 #845)
+#846 := (iff #351 #351)
+#847 := [refl]: #846
+#849 := [quant-intro #847]: #848
+#314 := (ite #309 #21 #90)
+#317 := (ite #14 0::int #314)
+#320 := (= #10 #317)
+#323 := (forall (vars (?v0 int) (?v1 int)) #320)
+#355 := (iff #323 #354)
+#352 := (iff #320 #351)
+#353 := [rewrite]: #352
+#356 := [quant-intro #353]: #355
+#117 := (not #116)
+#110 := (not #109)
+#120 := (and #110 #117)
+#106 := (not #105)
+#113 := (and #106 #110)
+#123 := (or #113 #120)
+#126 := (ite #123 #21 #90)
+#129 := (ite #14 0::int #126)
+#132 := (= #10 #129)
+#135 := (forall (vars (?v0 int) (?v1 int)) #132)
+#324 := (iff #135 #323)
+#321 := (iff #132 #320)
+#318 := (= #129 #317)
+#315 := (= #126 #314)
+#312 := (iff #123 #309)
+#306 := (or #303 #286)
+#310 := (iff #306 #309)
+#311 := [rewrite]: #310
+#307 := (iff #123 #306)
+#304 := (iff #120 #286)
+#305 := [rewrite]: #304
+#283 := (iff #113 #303)
+#284 := [rewrite]: #283
+#308 := [monotonicity #284 #305]: #307
+#313 := [trans #308 #311]: #312
+#316 := [monotonicity #313]: #315
+#319 := [monotonicity #316]: #318
+#322 := [monotonicity #319]: #321
+#325 := [quant-intro #322]: #324
+#289 := (~ #135 #135)
+#287 := (~ #132 #132)
+#288 := [refl]: #287
+#290 := [nnf-pos #288]: #289
+#23 := (- #9)
+#22 := (- #8)
+#24 := (div #22 #23)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#25 := (ite #20 #21 #24)
+#26 := (ite #14 0::int #25)
+#27 := (= #10 #26)
+#28 := (forall (vars (?v0 int) (?v1 int)) #27)
+#138 := (iff #28 #135)
+#77 := (and #16 #18)
+#80 := (or #17 #77)
+#93 := (ite #80 #21 #90)
+#96 := (ite #14 0::int #93)
+#99 := (= #10 #96)
+#102 := (forall (vars (?v0 int) (?v1 int)) #99)
+#136 := (iff #102 #135)
+#133 := (iff #99 #132)
+#130 := (= #96 #129)
+#127 := (= #93 #126)
+#124 := (iff #80 #123)
+#121 := (iff #77 #120)
+#118 := (iff #18 #117)
+#119 := [rewrite]: #118
+#111 := (iff #16 #110)
+#112 := [rewrite]: #111
+#122 := [monotonicity #112 #119]: #121
+#114 := (iff #17 #113)
+#107 := (iff #15 #106)
+#108 := [rewrite]: #107
+#115 := [monotonicity #108 #112]: #114
+#125 := [monotonicity #115 #122]: #124
+#128 := [monotonicity #125]: #127
+#131 := [monotonicity #128]: #130
+#134 := [monotonicity #131]: #133
+#137 := [quant-intro #134]: #136
+#103 := (iff #28 #102)
+#100 := (iff #27 #99)
+#97 := (= #26 #96)
+#94 := (= #25 #93)
+#91 := (= #24 #90)
+#88 := (= #23 #87)
+#89 := [rewrite]: #88
+#85 := (= #22 #84)
+#86 := [rewrite]: #85
+#92 := [monotonicity #86 #89]: #91
+#81 := (iff #20 #80)
+#78 := (iff #19 #77)
+#79 := [rewrite]: #78
+#82 := [monotonicity #79]: #81
+#95 := [monotonicity #82 #92]: #94
+#98 := [monotonicity #95]: #97
+#101 := [monotonicity #98]: #100
+#104 := [quant-intro #101]: #103
+#139 := [trans #104 #137]: #138
+#76 := [asserted]: #28
+#140 := [mp #76 #139]: #135
+#274 := [mp~ #140 #290]: #135
+#326 := [mp #274 #325]: #323
+#357 := [mp #326 #356]: #354
+#850 := [mp #357 #849]: #845
+#766 := (not #845)
+#768 := (or #766 #790)
+#431 := (* -1::int 1::int)
+#515 := (* -1::int 3::int)
+#516 := (div #515 #431)
+#517 := (* -1::int #516)
+#508 := (+ #55 #517)
+#519 := (= #508 0::int)
+#520 := (div 3::int 1::int)
+#521 := (* -1::int #520)
+#518 := (+ #55 #521)
+#522 := (= #518 0::int)
+#501 := (<= 1::int 0::int)
+#836 := (<= 3::int 0::int)
+#838 := (or #836 #501)
+#495 := (not #838)
+#625 := (>= 3::int 0::int)
+#832 := (or #501 #625)
+#506 := (not #832)
+#507 := (or #506 #495)
+#839 := (ite #507 #522 #519)
+#840 := (= #55 0::int)
+#841 := (= 1::int 0::int)
+#842 := (= 3::int 0::int)
+#837 := (or #842 #841)
+#843 := (ite #837 #840 #839)
+#760 := (or #766 #843)
+#759 := (iff #760 #768)
+#770 := (iff #768 #768)
+#771 := [rewrite]: #770
+#775 := (iff #843 #790)
+#682 := (ite false #840 #790)
+#685 := (iff #682 #790)
+#778 := [rewrite]: #685
+#683 := (iff #843 #682)
+#673 := (iff #839 #790)
+#1 := true
+#777 := (ite true #790 #790)
+#679 := (iff #777 #790)
+#680 := [rewrite]: #679
+#662 := (iff #839 #777)
+#773 := (iff #519 #790)
+#809 := -3::int
+#802 := (+ -3::int #55)
+#646 := (= #802 0::int)
+#791 := (iff #646 #790)
+#792 := [rewrite]: #791
+#776 := (iff #519 #646)
+#669 := (= #508 #802)
+#801 := (+ #55 -3::int)
+#803 := (= #801 #802)
+#798 := [rewrite]: #803
+#667 := (= #508 #801)
+#782 := (= #517 -3::int)
+#806 := (= #515 -3::int)
+#810 := [rewrite]: #806
+#783 := (= #517 #515)
+#780 := (= #516 3::int)
+#788 := (div -3::int -1::int)
+#626 := (= #788 3::int)
+#627 := [rewrite]: #626
+#795 := (= #516 #788)
+#793 := (= #431 -1::int)
+#794 := [rewrite]: #793
+#624 := [monotonicity #810 #794]: #795
+#781 := [trans #624 #627]: #780
+#784 := [monotonicity #781]: #783
+#785 := [trans #784 #810]: #782
+#668 := [monotonicity #785]: #667
+#628 := [trans #668 #798]: #669
+#678 := [monotonicity #628]: #776
+#774 := [trans #678 #792]: #773
+#786 := (iff #522 #790)
+#647 := (iff #522 #646)
+#804 := (= #518 #802)
+#796 := (= #518 #801)
+#799 := (= #521 -3::int)
+#523 := (= #521 #515)
+#807 := (= #520 3::int)
+#808 := [rewrite]: #807
+#805 := [monotonicity #808]: #523
+#800 := [trans #805 #810]: #799
+#797 := [monotonicity #800]: #796
+#645 := [trans #797 #798]: #804
+#789 := [monotonicity #645]: #647
+#787 := [trans #789 #792]: #786
+#528 := (iff #507 true)
+#824 := (or false true)
+#826 := (iff #824 true)
+#464 := [rewrite]: #826
+#526 := (iff #507 #824)
+#812 := (iff #495 true)
+#814 := (not false)
+#811 := (iff #814 true)
+#815 := [rewrite]: #811
+#536 := (iff #495 #814)
+#437 := (iff #838 false)
+#494 := (or false false)
+#819 := (iff #494 false)
+#482 := [rewrite]: #819
+#542 := (iff #838 #494)
+#485 := (iff #501 false)
+#821 := [rewrite]: #485
+#540 := (iff #836 false)
+#541 := [rewrite]: #540
+#543 := [monotonicity #541 #821]: #542
+#813 := [trans #543 #482]: #437
+#537 := [monotonicity #813]: #536
+#816 := [trans #537 #815]: #812
+#817 := (iff #506 false)
+#469 := (not true)
+#828 := (iff #469 false)
+#831 := [rewrite]: #828
+#470 := (iff #506 #469)
+#827 := (iff #832 true)
+#825 := (iff #832 #824)
+#822 := (iff #625 true)
+#823 := [rewrite]: #822
+#820 := [monotonicity #821 #823]: #825
+#829 := [trans #820 #464]: #827
+#830 := [monotonicity #829]: #470
+#818 := [trans #830 #831]: #817
+#527 := [monotonicity #818 #816]: #526
+#529 := [trans #527 #464]: #528
+#677 := [monotonicity #529 #787 #774]: #662
+#681 := [trans #677 #680]: #673
+#483 := (iff #837 false)
+#835 := (iff #837 #494)
+#498 := (iff #841 false)
+#834 := [rewrite]: #498
+#833 := (iff #842 false)
+#493 := [rewrite]: #833
+#478 := [monotonicity #493 #834]: #835
+#484 := [trans #478 #482]: #483
+#684 := [monotonicity #484 #681]: #683
+#779 := [trans #684 #778]: #775
+#769 := [monotonicity #779]: #759
+#767 := [trans #769 #771]: #759
+#757 := [quant-inst]: #760
+#772 := [mp #757 #767]: #768
+#705 := [unit-resolution #772 #850]: #790
+#706 := [monotonicity #705]: #58
+#59 := (not #58)
+#271 := [asserted]: #59
+[unit-resolution #271 #706]: false
+unsat
+a115e847151bf63d3c64fc32935e390311baf0fe 360 0
+#2 := false
+decl f5 :: (-> int S2)
+decl f3 :: (-> int int int)
+#55 := 1::int
+decl f6 :: (-> S2 int)
+decl f7 :: S2
+#53 := f7
+#54 := (f6 f7)
+#56 := (f3 #54 1::int)
+#57 := (f5 #56)
+#272 := (= f7 #57)
+#689 := (f5 #54)
+#624 := (= #689 #57)
+#621 := (= #57 #689)
+#618 := (= #56 #54)
+#11 := 0::int
+#583 := (= 0::int #54)
+#849 := (= #54 0::int)
+#843 := (<= #54 0::int)
+#825 := (not #843)
+#632 := (>= #54 0::int)
+#833 := (not #632)
+#549 := (or #833 #825)
+#799 := (not #549)
+#527 := (div #54 1::int)
+#83 := -1::int
+#528 := (* -1::int #527)
+#525 := (+ #56 #528)
+#529 := (= #525 0::int)
+#789 := (not #529)
+#711 := (= #527 #54)
+#645 := (= #54 #527)
+#712 := (+ #54 #528)
+#695 := (<= #712 0::int)
+#709 := (= #712 0::int)
+#1 := true
+#74 := [true-axiom]: true
+#667 := (or false #709)
+#628 := [th-lemma]: #667
+#629 := [unit-resolution #628 #74]: #709
+#636 := (not #709)
+#638 := (or #636 #695)
+#639 := [th-lemma]: #638
+#640 := [unit-resolution #639 #629]: #695
+#641 := (>= #712 0::int)
+#642 := (or #636 #641)
+#643 := [th-lemma]: #642
+#644 := [unit-resolution #643 #629]: #641
+#646 := [th-lemma #644 #640]: #645
+#648 := [symm #646]: #711
+#666 := (= #56 #527)
+#801 := (<= #525 0::int)
+#659 := [hypothesis]: #529
+#660 := (or #789 #801)
+#661 := [th-lemma]: #660
+#662 := [unit-resolution #661 #659]: #801
+#795 := (>= #525 0::int)
+#663 := (or #789 #795)
+#664 := [th-lemma]: #663
+#665 := [unit-resolution #664 #659]: #795
+#651 := [th-lemma #665 #662]: #666
+#619 := [trans #651 #648]: #618
+#623 := [monotonicity #619]: #621
+#625 := [symm #623]: #624
+#690 := (= f7 #689)
+#38 := (:var 0 S2)
+#39 := (f6 #38)
+#865 := (pattern #39)
+#40 := (f5 #39)
+#187 := (= #38 #40)
+#866 := (forall (vars (?v0 S2)) (:pat #865) #187)
+#190 := (forall (vars (?v0 S2)) #187)
+#867 := (iff #190 #866)
+#869 := (iff #866 #866)
+#870 := [rewrite]: #869
+#868 := [rewrite]: #867
+#871 := [trans #868 #870]: #867
+#284 := (~ #190 #190)
+#300 := (~ #187 #187)
+#301 := [refl]: #300
+#285 := [nnf-pos #301]: #284
+#41 := (= #40 #38)
+#42 := (forall (vars (?v0 S2)) #41)
+#191 := (iff #42 #190)
+#188 := (iff #41 #187)
+#189 := [rewrite]: #188
+#192 := [quant-intro #189]: #191
+#186 := [asserted]: #42
+#195 := [mp #186 #192]: #190
+#302 := [mp~ #195 #285]: #190
+#872 := [mp #302 #871]: #866
+#785 := (not #866)
+#782 := (or #785 #690)
+#786 := [quant-inst]: #782
+#620 := [unit-resolution #786 #872]: #690
+#468 := [trans #620 #625]: #272
+#275 := (not #272)
+#58 := (= #57 f7)
+#59 := (not #58)
+#276 := (iff #59 #275)
+#273 := (iff #58 #272)
+#274 := [rewrite]: #273
+#277 := [monotonicity #274]: #276
+#271 := [asserted]: #59
+#280 := [mp #271 #277]: #275
+#626 := [unit-resolution #280 #468]: false
+#622 := [lemma #626]: #789
+#522 := (* -1::int #54)
+#543 := (div #522 -1::int)
+#822 := (* -1::int #543)
+#533 := (+ #56 #822)
+#536 := (= #533 0::int)
+#530 := (ite #549 #529 #536)
+#685 := (not #849)
+#585 := [hypothesis]: #685
+#586 := (or #849 #530)
+#847 := (= #56 0::int)
+#813 := (ite #849 #847 #530)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#10 := (f3 #8 #9)
+#851 := (pattern #10)
+#87 := (* -1::int #9)
+#84 := (* -1::int #8)
+#90 := (div #84 #87)
+#354 := (* -1::int #90)
+#355 := (+ #10 #354)
+#356 := (= #355 0::int)
+#21 := (div #8 #9)
+#351 := (* -1::int #21)
+#352 := (+ #10 #351)
+#353 := (= #352 0::int)
+#109 := (<= #9 0::int)
+#105 := (<= #8 0::int)
+#309 := (or #105 #109)
+#310 := (not #309)
+#116 := (>= #8 0::int)
+#292 := (or #109 #116)
+#293 := (not #292)
+#316 := (or #293 #310)
+#357 := (ite #316 #353 #356)
+#350 := (= #10 0::int)
+#13 := (= #9 0::int)
+#12 := (= #8 0::int)
+#14 := (or #12 #13)
+#358 := (ite #14 #350 #357)
+#852 := (forall (vars (?v0 int) (?v1 int)) (:pat #851) #358)
+#361 := (forall (vars (?v0 int) (?v1 int)) #358)
+#855 := (iff #361 #852)
+#853 := (iff #358 #358)
+#854 := [refl]: #853
+#856 := [quant-intro #854]: #855
+#321 := (ite #316 #21 #90)
+#324 := (ite #14 0::int #321)
+#327 := (= #10 #324)
+#330 := (forall (vars (?v0 int) (?v1 int)) #327)
+#362 := (iff #330 #361)
+#359 := (iff #327 #358)
+#360 := [rewrite]: #359
+#363 := [quant-intro #360]: #362
+#117 := (not #116)
+#110 := (not #109)
+#120 := (and #110 #117)
+#106 := (not #105)
+#113 := (and #106 #110)
+#123 := (or #113 #120)
+#126 := (ite #123 #21 #90)
+#129 := (ite #14 0::int #126)
+#132 := (= #10 #129)
+#135 := (forall (vars (?v0 int) (?v1 int)) #132)
+#331 := (iff #135 #330)
+#328 := (iff #132 #327)
+#325 := (= #129 #324)
+#322 := (= #126 #321)
+#319 := (iff #123 #316)
+#313 := (or #310 #293)
+#317 := (iff #313 #316)
+#318 := [rewrite]: #317
+#314 := (iff #123 #313)
+#311 := (iff #120 #293)
+#312 := [rewrite]: #311
+#290 := (iff #113 #310)
+#291 := [rewrite]: #290
+#315 := [monotonicity #291 #312]: #314
+#320 := [trans #315 #318]: #319
+#323 := [monotonicity #320]: #322
+#326 := [monotonicity #323]: #325
+#329 := [monotonicity #326]: #328
+#332 := [quant-intro #329]: #331
+#296 := (~ #135 #135)
+#294 := (~ #132 #132)
+#295 := [refl]: #294
+#297 := [nnf-pos #295]: #296
+#23 := (- #9)
+#22 := (- #8)
+#24 := (div #22 #23)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#25 := (ite #20 #21 #24)
+#26 := (ite #14 0::int #25)
+#27 := (= #10 #26)
+#28 := (forall (vars (?v0 int) (?v1 int)) #27)
+#138 := (iff #28 #135)
+#77 := (and #16 #18)
+#80 := (or #17 #77)
+#93 := (ite #80 #21 #90)
+#96 := (ite #14 0::int #93)
+#99 := (= #10 #96)
+#102 := (forall (vars (?v0 int) (?v1 int)) #99)
+#136 := (iff #102 #135)
+#133 := (iff #99 #132)
+#130 := (= #96 #129)
+#127 := (= #93 #126)
+#124 := (iff #80 #123)
+#121 := (iff #77 #120)
+#118 := (iff #18 #117)
+#119 := [rewrite]: #118
+#111 := (iff #16 #110)
+#112 := [rewrite]: #111
+#122 := [monotonicity #112 #119]: #121
+#114 := (iff #17 #113)
+#107 := (iff #15 #106)
+#108 := [rewrite]: #107
+#115 := [monotonicity #108 #112]: #114
+#125 := [monotonicity #115 #122]: #124
+#128 := [monotonicity #125]: #127
+#131 := [monotonicity #128]: #130
+#134 := [monotonicity #131]: #133
+#137 := [quant-intro #134]: #136
+#103 := (iff #28 #102)
+#100 := (iff #27 #99)
+#97 := (= #26 #96)
+#94 := (= #25 #93)
+#91 := (= #24 #90)
+#88 := (= #23 #87)
+#89 := [rewrite]: #88
+#85 := (= #22 #84)
+#86 := [rewrite]: #85
+#92 := [monotonicity #86 #89]: #91
+#81 := (iff #20 #80)
+#78 := (iff #19 #77)
+#79 := [rewrite]: #78
+#82 := [monotonicity #79]: #81
+#95 := [monotonicity #82 #92]: #94
+#98 := [monotonicity #95]: #97
+#101 := [monotonicity #98]: #100
+#104 := [quant-intro #101]: #103
+#139 := [trans #104 #137]: #138
+#76 := [asserted]: #28
+#140 := [mp #76 #139]: #135
+#281 := [mp~ #140 #297]: #135
+#333 := [mp #281 #332]: #330
+#364 := [mp #333 #363]: #361
+#857 := [mp #364 #856]: #852
+#807 := (not #852)
+#808 := (or #807 #813)
+#438 := (* -1::int 1::int)
+#523 := (div #522 #438)
+#524 := (* -1::int #523)
+#515 := (+ #56 #524)
+#526 := (= #515 0::int)
+#508 := (<= 1::int 0::int)
+#845 := (or #843 #508)
+#502 := (not #845)
+#839 := (or #508 #632)
+#513 := (not #839)
+#514 := (or #513 #502)
+#846 := (ite #514 #529 #526)
+#848 := (= 1::int 0::int)
+#844 := (or #849 #848)
+#850 := (ite #844 #847 #846)
+#803 := (or #807 #850)
+#809 := (iff #803 #808)
+#805 := (iff #808 #808)
+#811 := [rewrite]: #805
+#817 := (iff #850 #813)
+#812 := (iff #846 #530)
+#814 := (iff #526 #536)
+#534 := (= #515 #533)
+#819 := (= #524 #822)
+#544 := (= #523 #543)
+#820 := (= #438 -1::int)
+#821 := [rewrite]: #820
+#818 := [monotonicity #821]: #544
+#823 := [monotonicity #818]: #819
+#535 := [monotonicity #823]: #534
+#815 := [monotonicity #535]: #814
+#550 := (iff #514 #549)
+#547 := (iff #502 #825)
+#838 := (iff #845 #843)
+#836 := (or #843 false)
+#837 := (iff #836 #843)
+#835 := [rewrite]: #837
+#476 := (iff #845 #836)
+#490 := (iff #508 false)
+#491 := [rewrite]: #490
+#477 := [monotonicity #491]: #476
+#824 := [trans #477 #835]: #838
+#548 := [monotonicity #824]: #547
+#471 := (iff #513 #833)
+#832 := (iff #839 #632)
+#492 := (or false #632)
+#830 := (iff #492 #632)
+#831 := [rewrite]: #830
+#828 := (iff #839 #492)
+#829 := [monotonicity #491]: #828
+#827 := [trans #829 #831]: #832
+#834 := [monotonicity #827]: #471
+#444 := [monotonicity #834 #548]: #550
+#816 := [monotonicity #444 #815]: #812
+#826 := (iff #844 #849)
+#505 := (or #849 false)
+#842 := (iff #505 #849)
+#485 := [rewrite]: #842
+#841 := (iff #844 #505)
+#840 := (iff #848 false)
+#500 := [rewrite]: #840
+#501 := [monotonicity #500]: #841
+#489 := [trans #501 #485]: #826
+#806 := [monotonicity #489 #816]: #817
+#810 := [monotonicity #806]: #809
+#652 := [trans #810 #811]: #809
+#804 := [quant-inst]: #803
+#653 := [mp #804 #652]: #808
+#574 := [unit-resolution #653 #857]: #813
+#783 := (not #813)
+#784 := (or #783 #849 #530)
+#669 := [def-axiom]: #784
+#563 := [unit-resolution #669 #574]: #586
+#565 := [unit-resolution #563 #585]: #530
+#634 := (not #530)
+#787 := (or #634 #799 #529)
+#788 := [def-axiom]: #787
+#566 := [unit-resolution #788 #565 #622]: #799
+#797 := (or #549 #843)
+#798 := [def-axiom]: #797
+#567 := [unit-resolution #798 #566]: #843
+#654 := (or #549 #632)
+#796 := [def-axiom]: #654
+#568 := [unit-resolution #796 #566]: #632
+#569 := (or #849 #825 #833)
+#570 := [th-lemma]: #569
+#571 := [unit-resolution #570 #585 #568 #567]: false
+#564 := [lemma #571]: #849
+#584 := [symm #564]: #583
+#580 := (or #685 #847)
+#780 := (or #783 #685 #847)
+#781 := [def-axiom]: #780
+#581 := [unit-resolution #781 #574]: #580
+#582 := [unit-resolution #581 #564]: #847
+#607 := [trans #582 #584]: #618
+#612 := [monotonicity #607]: #621
+#572 := [symm #612]: #624
+#557 := [trans #620 #572]: #272
+[unit-resolution #280 #557]: false
+unsat
+7cf914dcc3a7849523fc39aa74c3dcac842a1ca1 288 0
+#2 := false
+decl f5 :: (-> int S2)
+#11 := 0::int
+#56 := (f5 0::int)
+decl f3 :: (-> int int int)
+#53 := 3::int
+#54 := (f3 0::int 3::int)
+#55 := (f5 #54)
+#57 := (= #55 #56)
+#839 := (= #54 0::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#10 := (f3 #8 #9)
+#844 := (pattern #10)
+#82 := -1::int
+#86 := (* -1::int #9)
+#83 := (* -1::int #8)
+#89 := (div #83 #86)
+#346 := (* -1::int #89)
+#347 := (+ #10 #346)
+#348 := (= #347 0::int)
+#21 := (div #8 #9)
+#343 := (* -1::int #21)
+#344 := (+ #10 #343)
+#345 := (= #344 0::int)
+#108 := (<= #9 0::int)
+#104 := (<= #8 0::int)
+#301 := (or #104 #108)
+#302 := (not #301)
+#115 := (>= #8 0::int)
+#284 := (or #108 #115)
+#285 := (not #284)
+#308 := (or #285 #302)
+#349 := (ite #308 #345 #348)
+#342 := (= #10 0::int)
+#13 := (= #9 0::int)
+#12 := (= #8 0::int)
+#14 := (or #12 #13)
+#350 := (ite #14 #342 #349)
+#845 := (forall (vars (?v0 int) (?v1 int)) (:pat #844) #350)
+#353 := (forall (vars (?v0 int) (?v1 int)) #350)
+#848 := (iff #353 #845)
+#846 := (iff #350 #350)
+#847 := [refl]: #846
+#849 := [quant-intro #847]: #848
+#313 := (ite #308 #21 #89)
+#316 := (ite #14 0::int #313)
+#319 := (= #10 #316)
+#322 := (forall (vars (?v0 int) (?v1 int)) #319)
+#354 := (iff #322 #353)
+#351 := (iff #319 #350)
+#352 := [rewrite]: #351
+#355 := [quant-intro #352]: #354
+#116 := (not #115)
+#109 := (not #108)
+#119 := (and #109 #116)
+#105 := (not #104)
+#112 := (and #105 #109)
+#122 := (or #112 #119)
+#125 := (ite #122 #21 #89)
+#128 := (ite #14 0::int #125)
+#131 := (= #10 #128)
+#134 := (forall (vars (?v0 int) (?v1 int)) #131)
+#323 := (iff #134 #322)
+#320 := (iff #131 #319)
+#317 := (= #128 #316)
+#314 := (= #125 #313)
+#311 := (iff #122 #308)
+#305 := (or #302 #285)
+#309 := (iff #305 #308)
+#310 := [rewrite]: #309
+#306 := (iff #122 #305)
+#303 := (iff #119 #285)
+#304 := [rewrite]: #303
+#282 := (iff #112 #302)
+#283 := [rewrite]: #282
+#307 := [monotonicity #283 #304]: #306
+#312 := [trans #307 #310]: #311
+#315 := [monotonicity #312]: #314
+#318 := [monotonicity #315]: #317
+#321 := [monotonicity #318]: #320
+#324 := [quant-intro #321]: #323
+#288 := (~ #134 #134)
+#286 := (~ #131 #131)
+#287 := [refl]: #286
+#289 := [nnf-pos #287]: #288
+#23 := (- #9)
+#22 := (- #8)
+#24 := (div #22 #23)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#25 := (ite #20 #21 #24)
+#26 := (ite #14 0::int #25)
+#27 := (= #10 #26)
+#28 := (forall (vars (?v0 int) (?v1 int)) #27)
+#137 := (iff #28 #134)
+#76 := (and #16 #18)
+#79 := (or #17 #76)
+#92 := (ite #79 #21 #89)
+#95 := (ite #14 0::int #92)
+#98 := (= #10 #95)
+#101 := (forall (vars (?v0 int) (?v1 int)) #98)
+#135 := (iff #101 #134)
+#132 := (iff #98 #131)
+#129 := (= #95 #128)
+#126 := (= #92 #125)
+#123 := (iff #79 #122)
+#120 := (iff #76 #119)
+#117 := (iff #18 #116)
+#118 := [rewrite]: #117
+#110 := (iff #16 #109)
+#111 := [rewrite]: #110
+#121 := [monotonicity #111 #118]: #120
+#113 := (iff #17 #112)
+#106 := (iff #15 #105)
+#107 := [rewrite]: #106
+#114 := [monotonicity #107 #111]: #113
+#124 := [monotonicity #114 #121]: #123
+#127 := [monotonicity #124]: #126
+#130 := [monotonicity #127]: #129
+#133 := [monotonicity #130]: #132
+#136 := [quant-intro #133]: #135
+#102 := (iff #28 #101)
+#99 := (iff #27 #98)
+#96 := (= #26 #95)
+#93 := (= #25 #92)
+#90 := (= #24 #89)
+#87 := (= #23 #86)
+#88 := [rewrite]: #87
+#84 := (= #22 #83)
+#85 := [rewrite]: #84
+#91 := [monotonicity #85 #88]: #90
+#80 := (iff #20 #79)
+#77 := (iff #19 #76)
+#78 := [rewrite]: #77
+#81 := [monotonicity #78]: #80
+#94 := [monotonicity #81 #91]: #93
+#97 := [monotonicity #94]: #96
+#100 := [monotonicity #97]: #99
+#103 := [quant-intro #100]: #102
+#138 := [trans #103 #136]: #137
+#75 := [asserted]: #28
+#139 := [mp #75 #138]: #134
+#273 := [mp~ #139 #289]: #134
+#325 := [mp #273 #324]: #322
+#356 := [mp #325 #355]: #353
+#850 := [mp #356 #849]: #845
+#680 := (not #845)
+#673 := (or #680 #839)
+#430 := (* -1::int 3::int)
+#515 := (* -1::int 0::int)
+#516 := (div #515 #430)
+#517 := (* -1::int #516)
+#508 := (+ #54 #517)
+#519 := (= #508 0::int)
+#520 := (div 0::int 3::int)
+#448 := (* -1::int #520)
+#521 := (+ #54 #448)
+#518 := (= #521 0::int)
+#522 := (<= 3::int 0::int)
+#501 := (<= 0::int 0::int)
+#836 := (or #501 #522)
+#838 := (not #836)
+#495 := (>= 0::int 0::int)
+#625 := (or #522 #495)
+#832 := (not #625)
+#506 := (or #832 #838)
+#507 := (ite #506 #518 #519)
+#840 := (= 3::int 0::int)
+#841 := (= 0::int 0::int)
+#842 := (or #841 #840)
+#837 := (ite #842 #839 #507)
+#681 := (or #680 #837)
+#683 := (iff #681 #673)
+#685 := (iff #673 #673)
+#778 := [rewrite]: #685
+#677 := (iff #837 #839)
+#1 := true
+#678 := (ite true #839 #839)
+#777 := (iff #678 #839)
+#662 := [rewrite]: #777
+#773 := (iff #837 #678)
+#628 := (iff #507 #839)
+#782 := (ite false #839 #839)
+#668 := (iff #782 #839)
+#669 := [rewrite]: #668
+#785 := (iff #507 #782)
+#783 := (iff #519 #839)
+#780 := (= #508 #54)
+#799 := (+ #54 0::int)
+#796 := (= #799 #54)
+#797 := [rewrite]: #796
+#626 := (= #508 #799)
+#795 := (= #517 0::int)
+#805 := (= #515 0::int)
+#809 := [rewrite]: #805
+#794 := (= #517 #515)
+#787 := (= #516 0::int)
+#645 := -3::int
+#789 := (div 0::int -3::int)
+#792 := (= #789 0::int)
+#786 := [rewrite]: #792
+#790 := (= #516 #789)
+#646 := (= #430 -3::int)
+#647 := [rewrite]: #646
+#791 := [monotonicity #809 #647]: #790
+#793 := [trans #791 #786]: #787
+#788 := [monotonicity #793]: #794
+#624 := [trans #788 #809]: #795
+#627 := [monotonicity #624]: #626
+#781 := [trans #627 #797]: #780
+#784 := [monotonicity #781]: #783
+#798 := (iff #518 #839)
+#802 := (= #521 #54)
+#800 := (= #521 #799)
+#806 := (= #448 0::int)
+#808 := (= #448 #515)
+#529 := (= #520 0::int)
+#807 := [rewrite]: #529
+#523 := [monotonicity #807]: #808
+#810 := [trans #523 #809]: #806
+#801 := [monotonicity #810]: #800
+#803 := [trans #801 #797]: #802
+#804 := [monotonicity #803]: #798
+#527 := (iff #506 false)
+#811 := (or false false)
+#816 := (iff #811 false)
+#526 := [rewrite]: #816
+#815 := (iff #506 #811)
+#536 := (iff #838 false)
+#829 := (not true)
+#830 := (iff #829 false)
+#828 := [rewrite]: #830
+#813 := (iff #838 #829)
+#543 := (iff #836 true)
+#834 := (or true false)
+#478 := (iff #834 true)
+#819 := [rewrite]: #478
+#541 := (iff #836 #834)
+#484 := (iff #522 false)
+#485 := [rewrite]: #484
+#818 := (iff #501 true)
+#540 := [rewrite]: #818
+#542 := [monotonicity #540 #485]: #541
+#436 := [trans #542 #819]: #543
+#814 := [monotonicity #436]: #813
+#537 := [trans #814 #828]: #536
+#831 := (iff #832 false)
+#469 := (iff #832 #829)
+#464 := (iff #625 true)
+#823 := (or false true)
+#820 := (iff #823 true)
+#826 := [rewrite]: #820
+#824 := (iff #625 #823)
+#821 := (iff #495 true)
+#822 := [rewrite]: #821
+#825 := [monotonicity #485 #822]: #824
+#827 := [trans #825 #826]: #464
+#470 := [monotonicity #827]: #469
+#817 := [trans #470 #828]: #831
+#812 := [monotonicity #817 #537]: #815
+#528 := [trans #812 #526]: #527
+#667 := [monotonicity #528 #804 #784]: #785
+#776 := [trans #667 #669]: #628
+#482 := (iff #842 true)
+#494 := (iff #842 #834)
+#493 := (iff #840 false)
+#498 := [rewrite]: #493
+#843 := (iff #841 true)
+#833 := [rewrite]: #843
+#835 := [monotonicity #833 #498]: #494
+#483 := [trans #835 #819]: #482
+#774 := [monotonicity #483 #776]: #773
+#679 := [trans #774 #662]: #677
+#684 := [monotonicity #679]: #683
+#775 := [trans #684 #778]: #683
+#682 := [quant-inst]: #681
+#779 := [mp #682 #775]: #673
+#691 := [unit-resolution #779 #850]: #839
+#692 := [monotonicity #691]: #57
+#58 := (not #57)
+#270 := [asserted]: #58
+[unit-resolution #270 #692]: false
+unsat
+ae8fd560a364691767ab3e78098d563d6a39ff78 302 0
+#2 := false
+decl f5 :: (-> int S2)
+#11 := 0::int
+#57 := (f5 0::int)
+decl f3 :: (-> int int int)
+#54 := 3::int
+#53 := 1::int
+#55 := (f3 1::int 3::int)
+#56 := (f5 #55)
+#58 := (= #56 #57)
+#840 := (= #55 0::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#10 := (f3 #8 #9)
+#844 := (pattern #10)
+#83 := -1::int
+#87 := (* -1::int #9)
+#84 := (* -1::int #8)
+#90 := (div #84 #87)
+#347 := (* -1::int #90)
+#348 := (+ #10 #347)
+#349 := (= #348 0::int)
+#21 := (div #8 #9)
+#344 := (* -1::int #21)
+#345 := (+ #10 #344)
+#346 := (= #345 0::int)
+#109 := (<= #9 0::int)
+#105 := (<= #8 0::int)
+#302 := (or #105 #109)
+#303 := (not #302)
+#116 := (>= #8 0::int)
+#285 := (or #109 #116)
+#286 := (not #285)
+#309 := (or #286 #303)
+#350 := (ite #309 #346 #349)
+#343 := (= #10 0::int)
+#13 := (= #9 0::int)
+#12 := (= #8 0::int)
+#14 := (or #12 #13)
+#351 := (ite #14 #343 #350)
+#845 := (forall (vars (?v0 int) (?v1 int)) (:pat #844) #351)
+#354 := (forall (vars (?v0 int) (?v1 int)) #351)
+#848 := (iff #354 #845)
+#846 := (iff #351 #351)
+#847 := [refl]: #846
+#849 := [quant-intro #847]: #848
+#314 := (ite #309 #21 #90)
+#317 := (ite #14 0::int #314)
+#320 := (= #10 #317)
+#323 := (forall (vars (?v0 int) (?v1 int)) #320)
+#355 := (iff #323 #354)
+#352 := (iff #320 #351)
+#353 := [rewrite]: #352
+#356 := [quant-intro #353]: #355
+#117 := (not #116)
+#110 := (not #109)
+#120 := (and #110 #117)
+#106 := (not #105)
+#113 := (and #106 #110)
+#123 := (or #113 #120)
+#126 := (ite #123 #21 #90)
+#129 := (ite #14 0::int #126)
+#132 := (= #10 #129)
+#135 := (forall (vars (?v0 int) (?v1 int)) #132)
+#324 := (iff #135 #323)
+#321 := (iff #132 #320)
+#318 := (= #129 #317)
+#315 := (= #126 #314)
+#312 := (iff #123 #309)
+#306 := (or #303 #286)
+#310 := (iff #306 #309)
+#311 := [rewrite]: #310
+#307 := (iff #123 #306)
+#304 := (iff #120 #286)
+#305 := [rewrite]: #304
+#283 := (iff #113 #303)
+#284 := [rewrite]: #283
+#308 := [monotonicity #284 #305]: #307
+#313 := [trans #308 #311]: #312
+#316 := [monotonicity #313]: #315
+#319 := [monotonicity #316]: #318
+#322 := [monotonicity #319]: #321
+#325 := [quant-intro #322]: #324
+#289 := (~ #135 #135)
+#287 := (~ #132 #132)
+#288 := [refl]: #287
+#290 := [nnf-pos #288]: #289
+#23 := (- #9)
+#22 := (- #8)
+#24 := (div #22 #23)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#25 := (ite #20 #21 #24)
+#26 := (ite #14 0::int #25)
+#27 := (= #10 #26)
+#28 := (forall (vars (?v0 int) (?v1 int)) #27)
+#138 := (iff #28 #135)
+#77 := (and #16 #18)
+#80 := (or #17 #77)
+#93 := (ite #80 #21 #90)
+#96 := (ite #14 0::int #93)
+#99 := (= #10 #96)
+#102 := (forall (vars (?v0 int) (?v1 int)) #99)
+#136 := (iff #102 #135)
+#133 := (iff #99 #132)
+#130 := (= #96 #129)
+#127 := (= #93 #126)
+#124 := (iff #80 #123)
+#121 := (iff #77 #120)
+#118 := (iff #18 #117)
+#119 := [rewrite]: #118
+#111 := (iff #16 #110)
+#112 := [rewrite]: #111
+#122 := [monotonicity #112 #119]: #121
+#114 := (iff #17 #113)
+#107 := (iff #15 #106)
+#108 := [rewrite]: #107
+#115 := [monotonicity #108 #112]: #114
+#125 := [monotonicity #115 #122]: #124
+#128 := [monotonicity #125]: #127
+#131 := [monotonicity #128]: #130
+#134 := [monotonicity #131]: #133
+#137 := [quant-intro #134]: #136
+#103 := (iff #28 #102)
+#100 := (iff #27 #99)
+#97 := (= #26 #96)
+#94 := (= #25 #93)
+#91 := (= #24 #90)
+#88 := (= #23 #87)
+#89 := [rewrite]: #88
+#85 := (= #22 #84)
+#86 := [rewrite]: #85
+#92 := [monotonicity #86 #89]: #91
+#81 := (iff #20 #80)
+#78 := (iff #19 #77)
+#79 := [rewrite]: #78
+#82 := [monotonicity #79]: #81
+#95 := [monotonicity #82 #92]: #94
+#98 := [monotonicity #95]: #97
+#101 := [monotonicity #98]: #100
+#104 := [quant-intro #101]: #103
+#139 := [trans #104 #137]: #138
+#76 := [asserted]: #28
+#140 := [mp #76 #139]: #135
+#274 := [mp~ #140 #290]: #135
+#326 := [mp #274 #325]: #323
+#357 := [mp #326 #356]: #354
+#850 := [mp #357 #849]: #845
+#759 := (not #845)
+#769 := (or #759 #840)
+#431 := (* -1::int 3::int)
+#515 := (* -1::int 1::int)
+#516 := (div #515 #431)
+#517 := (* -1::int #516)
+#508 := (+ #55 #517)
+#519 := (= #508 0::int)
+#520 := (div 1::int 3::int)
+#521 := (* -1::int #520)
+#518 := (+ #55 #521)
+#522 := (= #518 0::int)
+#501 := (<= 3::int 0::int)
+#836 := (<= 1::int 0::int)
+#838 := (or #836 #501)
+#495 := (not #838)
+#625 := (>= 1::int 0::int)
+#832 := (or #501 #625)
+#506 := (not #832)
+#507 := (or #506 #495)
+#839 := (ite #507 #522 #519)
+#841 := (= 3::int 0::int)
+#842 := (= 1::int 0::int)
+#837 := (or #842 #841)
+#843 := (ite #837 #840 #839)
+#770 := (or #759 #843)
+#767 := (iff #770 #769)
+#761 := (iff #769 #769)
+#762 := [rewrite]: #761
+#760 := (iff #843 #840)
+#778 := (ite false #840 #840)
+#766 := (iff #778 #840)
+#768 := [rewrite]: #766
+#775 := (iff #843 #778)
+#684 := (iff #839 #840)
+#774 := (= #55 1::int)
+#1 := true
+#680 := (ite true #840 #774)
+#682 := (iff #680 #840)
+#683 := [rewrite]: #682
+#673 := (iff #839 #680)
+#677 := (iff #519 #774)
+#785 := (+ -1::int #55)
+#776 := (= #785 0::int)
+#777 := (iff #776 #774)
+#662 := [rewrite]: #777
+#678 := (iff #519 #776)
+#669 := (= #508 #785)
+#783 := (+ #55 -1::int)
+#667 := (= #783 #785)
+#668 := [rewrite]: #667
+#784 := (= #508 #783)
+#780 := (= #517 -1::int)
+#647 := (= #515 -1::int)
+#789 := [rewrite]: #647
+#626 := (= #517 #515)
+#795 := (= #516 1::int)
+#790 := -3::int
+#786 := (div -1::int -3::int)
+#794 := (= #786 1::int)
+#788 := [rewrite]: #794
+#787 := (= #516 #786)
+#791 := (= #431 -3::int)
+#792 := [rewrite]: #791
+#793 := [monotonicity #789 #792]: #787
+#624 := [trans #793 #788]: #795
+#627 := [monotonicity #624]: #626
+#781 := [trans #627 #789]: #780
+#782 := [monotonicity #781]: #784
+#628 := [trans #782 #668]: #669
+#773 := [monotonicity #628]: #678
+#679 := [trans #773 #662]: #677
+#645 := (iff #522 #840)
+#798 := (= #518 #55)
+#801 := (+ #55 0::int)
+#802 := (= #801 #55)
+#803 := [rewrite]: #802
+#796 := (= #518 #801)
+#799 := (= #521 0::int)
+#523 := (* -1::int 0::int)
+#806 := (= #523 0::int)
+#810 := [rewrite]: #806
+#805 := (= #521 #523)
+#807 := (= #520 0::int)
+#808 := [rewrite]: #807
+#809 := [monotonicity #808]: #805
+#800 := [trans #809 #810]: #799
+#797 := [monotonicity #800]: #796
+#804 := [trans #797 #803]: #798
+#646 := [monotonicity #804]: #645
+#528 := (iff #507 true)
+#824 := (or false true)
+#826 := (iff #824 true)
+#464 := [rewrite]: #826
+#526 := (iff #507 #824)
+#812 := (iff #495 true)
+#814 := (not false)
+#811 := (iff #814 true)
+#815 := [rewrite]: #811
+#536 := (iff #495 #814)
+#437 := (iff #838 false)
+#494 := (or false false)
+#819 := (iff #494 false)
+#482 := [rewrite]: #819
+#542 := (iff #838 #494)
+#485 := (iff #501 false)
+#821 := [rewrite]: #485
+#540 := (iff #836 false)
+#541 := [rewrite]: #540
+#543 := [monotonicity #541 #821]: #542
+#813 := [trans #543 #482]: #437
+#537 := [monotonicity #813]: #536
+#816 := [trans #537 #815]: #812
+#817 := (iff #506 false)
+#469 := (not true)
+#828 := (iff #469 false)
+#831 := [rewrite]: #828
+#470 := (iff #506 #469)
+#827 := (iff #832 true)
+#825 := (iff #832 #824)
+#822 := (iff #625 true)
+#823 := [rewrite]: #822
+#820 := [monotonicity #821 #823]: #825
+#829 := [trans #820 #464]: #827
+#830 := [monotonicity #829]: #470
+#818 := [trans #830 #831]: #817
+#527 := [monotonicity #818 #816]: #526
+#529 := [trans #527 #464]: #528
+#681 := [monotonicity #529 #646 #679]: #673
+#685 := [trans #681 #683]: #684
+#483 := (iff #837 false)
+#835 := (iff #837 #494)
+#498 := (iff #841 false)
+#834 := [rewrite]: #498
+#833 := (iff #842 false)
+#493 := [rewrite]: #833
+#478 := [monotonicity #493 #834]: #835
+#484 := [trans #478 #482]: #483
+#779 := [monotonicity #484 #685]: #775
+#757 := [trans #779 #768]: #760
+#772 := [monotonicity #757]: #767
+#763 := [trans #772 #762]: #767
+#771 := [quant-inst]: #770
+#764 := [mp #771 #763]: #769
+#701 := [unit-resolution #764 #850]: #840
+#702 := [monotonicity #701]: #58
+#59 := (not #58)
+#271 := [asserted]: #59
+[unit-resolution #271 #702]: false
+unsat
+19dd3be357a28baca5aecbdc323516962271f134 292 0
+#2 := false
+decl f5 :: (-> int S2)
+#56 := 1::int
+#57 := (f5 1::int)
+decl f3 :: (-> int int int)
+#53 := 3::int
+#54 := (f3 3::int 3::int)
+#55 := (f5 #54)
+#58 := (= #55 #57)
+#803 := (= #54 1::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#10 := (f3 #8 #9)
+#844 := (pattern #10)
+#11 := 0::int
+#83 := -1::int
+#87 := (* -1::int #9)
+#84 := (* -1::int #8)
+#90 := (div #84 #87)
+#347 := (* -1::int #90)
+#348 := (+ #10 #347)
+#349 := (= #348 0::int)
+#21 := (div #8 #9)
+#344 := (* -1::int #21)
+#345 := (+ #10 #344)
+#346 := (= #345 0::int)
+#109 := (<= #9 0::int)
+#105 := (<= #8 0::int)
+#302 := (or #105 #109)
+#303 := (not #302)
+#116 := (>= #8 0::int)
+#285 := (or #109 #116)
+#286 := (not #285)
+#309 := (or #286 #303)
+#350 := (ite #309 #346 #349)
+#343 := (= #10 0::int)
+#13 := (= #9 0::int)
+#12 := (= #8 0::int)
+#14 := (or #12 #13)
+#351 := (ite #14 #343 #350)
+#845 := (forall (vars (?v0 int) (?v1 int)) (:pat #844) #351)
+#354 := (forall (vars (?v0 int) (?v1 int)) #351)
+#848 := (iff #354 #845)
+#846 := (iff #351 #351)
+#847 := [refl]: #846
+#849 := [quant-intro #847]: #848
+#314 := (ite #309 #21 #90)
+#317 := (ite #14 0::int #314)
+#320 := (= #10 #317)
+#323 := (forall (vars (?v0 int) (?v1 int)) #320)
+#355 := (iff #323 #354)
+#352 := (iff #320 #351)
+#353 := [rewrite]: #352
+#356 := [quant-intro #353]: #355
+#117 := (not #116)
+#110 := (not #109)
+#120 := (and #110 #117)
+#106 := (not #105)
+#113 := (and #106 #110)
+#123 := (or #113 #120)
+#126 := (ite #123 #21 #90)
+#129 := (ite #14 0::int #126)
+#132 := (= #10 #129)
+#135 := (forall (vars (?v0 int) (?v1 int)) #132)
+#324 := (iff #135 #323)
+#321 := (iff #132 #320)
+#318 := (= #129 #317)
+#315 := (= #126 #314)
+#312 := (iff #123 #309)
+#306 := (or #303 #286)
+#310 := (iff #306 #309)
+#311 := [rewrite]: #310
+#307 := (iff #123 #306)
+#304 := (iff #120 #286)
+#305 := [rewrite]: #304
+#283 := (iff #113 #303)
+#284 := [rewrite]: #283
+#308 := [monotonicity #284 #305]: #307
+#313 := [trans #308 #311]: #312
+#316 := [monotonicity #313]: #315
+#319 := [monotonicity #316]: #318
+#322 := [monotonicity #319]: #321
+#325 := [quant-intro #322]: #324
+#289 := (~ #135 #135)
+#287 := (~ #132 #132)
+#288 := [refl]: #287
+#290 := [nnf-pos #288]: #289
+#23 := (- #9)
+#22 := (- #8)
+#24 := (div #22 #23)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#25 := (ite #20 #21 #24)
+#26 := (ite #14 0::int #25)
+#27 := (= #10 #26)
+#28 := (forall (vars (?v0 int) (?v1 int)) #27)
+#138 := (iff #28 #135)
+#77 := (and #16 #18)
+#80 := (or #17 #77)
+#93 := (ite #80 #21 #90)
+#96 := (ite #14 0::int #93)
+#99 := (= #10 #96)
+#102 := (forall (vars (?v0 int) (?v1 int)) #99)
+#136 := (iff #102 #135)
+#133 := (iff #99 #132)
+#130 := (= #96 #129)
+#127 := (= #93 #126)
+#124 := (iff #80 #123)
+#121 := (iff #77 #120)
+#118 := (iff #18 #117)
+#119 := [rewrite]: #118
+#111 := (iff #16 #110)
+#112 := [rewrite]: #111
+#122 := [monotonicity #112 #119]: #121
+#114 := (iff #17 #113)
+#107 := (iff #15 #106)
+#108 := [rewrite]: #107
+#115 := [monotonicity #108 #112]: #114
+#125 := [monotonicity #115 #122]: #124
+#128 := [monotonicity #125]: #127
+#131 := [monotonicity #128]: #130
+#134 := [monotonicity #131]: #133
+#137 := [quant-intro #134]: #136
+#103 := (iff #28 #102)
+#100 := (iff #27 #99)
+#97 := (= #26 #96)
+#94 := (= #25 #93)
+#91 := (= #24 #90)
+#88 := (= #23 #87)
+#89 := [rewrite]: #88
+#85 := (= #22 #84)
+#86 := [rewrite]: #85
+#92 := [monotonicity #86 #89]: #91
+#81 := (iff #20 #80)
+#78 := (iff #19 #77)
+#79 := [rewrite]: #78
+#82 := [monotonicity #79]: #81
+#95 := [monotonicity #82 #92]: #94
+#98 := [monotonicity #95]: #97
+#101 := [monotonicity #98]: #100
+#104 := [quant-intro #101]: #103
+#139 := [trans #104 #137]: #138
+#76 := [asserted]: #28
+#140 := [mp #76 #139]: #135
+#274 := [mp~ #140 #290]: #135
+#326 := [mp #274 #325]: #323
+#357 := [mp #326 #356]: #354
+#850 := [mp #357 #849]: #845
+#683 := (not #845)
+#684 := (or #683 #803)
+#431 := (* -1::int 3::int)
+#515 := (div #431 #431)
+#516 := (* -1::int #515)
+#517 := (+ #54 #516)
+#508 := (= #517 0::int)
+#519 := (div 3::int 3::int)
+#520 := (* -1::int #519)
+#521 := (+ #54 #520)
+#518 := (= #521 0::int)
+#522 := (<= 3::int 0::int)
+#501 := (or #522 #522)
+#836 := (not #501)
+#838 := (>= 3::int 0::int)
+#495 := (or #522 #838)
+#625 := (not #495)
+#832 := (or #625 #836)
+#506 := (ite #832 #518 #508)
+#507 := (= #54 0::int)
+#839 := (= 3::int 0::int)
+#840 := (or #839 #839)
+#841 := (ite #840 #507 #506)
+#685 := (or #683 #841)
+#775 := (iff #685 #684)
+#766 := (iff #684 #684)
+#768 := [rewrite]: #766
+#681 := (iff #841 #803)
+#662 := (ite false #507 #803)
+#680 := (iff #662 #803)
+#673 := [rewrite]: #680
+#677 := (iff #841 #662)
+#774 := (iff #506 #803)
+#1 := true
+#669 := (ite true #803 #803)
+#678 := (iff #669 #803)
+#773 := [rewrite]: #678
+#628 := (iff #506 #669)
+#667 := (iff #508 #803)
+#806 := (+ -1::int #54)
+#796 := (= #806 0::int)
+#798 := (iff #796 #803)
+#804 := [rewrite]: #798
+#782 := (iff #508 #796)
+#783 := (= #517 #806)
+#523 := (+ #54 -1::int)
+#810 := (= #523 #806)
+#799 := [rewrite]: #810
+#780 := (= #517 #523)
+#626 := (= #516 -1::int)
+#816 := (* -1::int 1::int)
+#528 := (= #816 -1::int)
+#529 := [rewrite]: #528
+#795 := (= #516 #816)
+#794 := (= #515 1::int)
+#647 := -3::int
+#791 := (div -3::int -3::int)
+#787 := (= #791 1::int)
+#793 := [rewrite]: #787
+#792 := (= #515 #791)
+#789 := (= #431 -3::int)
+#790 := [rewrite]: #789
+#786 := [monotonicity #790 #790]: #792
+#788 := [trans #786 #793]: #794
+#624 := [monotonicity #788]: #795
+#627 := [trans #624 #529]: #626
+#781 := [monotonicity #627]: #780
+#784 := [trans #781 #799]: #783
+#785 := [monotonicity #784]: #782
+#668 := [trans #785 #804]: #667
+#645 := (iff #518 #803)
+#797 := (iff #518 #796)
+#800 := (= #521 #806)
+#805 := (= #521 #523)
+#807 := (= #520 -1::int)
+#526 := (= #520 #816)
+#815 := (= #519 1::int)
+#812 := [rewrite]: #815
+#527 := [monotonicity #812]: #526
+#808 := [trans #527 #529]: #807
+#809 := [monotonicity #808]: #805
+#801 := [trans #809 #799]: #800
+#802 := [monotonicity #801]: #797
+#646 := [trans #802 #804]: #645
+#537 := (iff #832 true)
+#484 := (or false true)
+#822 := (iff #484 true)
+#823 := [rewrite]: #822
+#814 := (iff #832 #484)
+#437 := (iff #836 true)
+#818 := (not false)
+#542 := (iff #818 true)
+#543 := [rewrite]: #542
+#540 := (iff #836 #818)
+#831 := (iff #501 false)
+#843 := (or false false)
+#498 := (iff #843 false)
+#834 := [rewrite]: #498
+#830 := (iff #501 #843)
+#478 := (iff #522 false)
+#819 := [rewrite]: #478
+#828 := [monotonicity #819 #819]: #830
+#817 := [trans #828 #834]: #831
+#541 := [monotonicity #817]: #540
+#813 := [trans #541 #543]: #437
+#469 := (iff #625 false)
+#820 := (not true)
+#827 := (iff #820 false)
+#829 := [rewrite]: #827
+#826 := (iff #625 #820)
+#824 := (iff #495 true)
+#485 := (iff #495 #484)
+#482 := (iff #838 true)
+#483 := [rewrite]: #482
+#821 := [monotonicity #819 #483]: #485
+#825 := [trans #821 #823]: #824
+#464 := [monotonicity #825]: #826
+#470 := [trans #464 #829]: #469
+#536 := [monotonicity #470 #813]: #814
+#811 := [trans #536 #823]: #537
+#776 := [monotonicity #811 #646 #668]: #628
+#777 := [trans #776 #773]: #774
+#494 := (iff #840 false)
+#833 := (iff #840 #843)
+#842 := (iff #839 false)
+#837 := [rewrite]: #842
+#493 := [monotonicity #837 #837]: #833
+#835 := [trans #493 #834]: #494
+#679 := [monotonicity #835 #777]: #677
+#682 := [trans #679 #673]: #681
+#779 := [monotonicity #682]: #775
+#760 := [trans #779 #768]: #775
+#778 := [quant-inst]: #685
+#757 := [mp #778 #760]: #684
+#700 := [unit-resolution #757 #850]: #803
+#701 := [monotonicity #700]: #58
+#59 := (not #58)
+#271 := [asserted]: #59
+[unit-resolution #271 #701]: false
+unsat
+4c767e3719e1e1ac215860f12798ea2480d1a7d0 538 0
+#2 := false
+#11 := 0::int
+decl f6 :: (-> S2 int)
+decl f5 :: (-> int S2)
+decl f3 :: (-> int int int)
+#55 := 3::int
+decl f7 :: S2
+#53 := f7
+#54 := (f6 f7)
+#56 := (f3 #54 3::int)
+#57 := (f5 #56)
+#58 := (f6 #57)
+#781 := (= #58 0::int)
+#850 := (= #56 0::int)
+#852 := (= #54 0::int)
+#804 := (mod #54 3::int)
+#84 := -1::int
+#715 := (* -1::int #804)
+#531 := (div #54 3::int)
+#447 := -3::int
+#710 := (* -3::int #531)
+#711 := (+ #710 #715)
+#712 := (+ #54 #711)
+#718 := (>= #712 0::int)
+#709 := (= #712 0::int)
+#1 := true
+#75 := [true-axiom]: true
+#662 := (or false #709)
+#663 := [th-lemma]: #662
+#664 := [unit-resolution #663 #75]: #709
+#665 := (not #709)
+#666 := (or #665 #718)
+#667 := [th-lemma]: #666
+#668 := [unit-resolution #667 #664]: #718
+#277 := (* -1::int #58)
+#278 := (+ #54 #277)
+#276 := (>= #278 0::int)
+#280 := (not #276)
+#59 := (<= #58 #54)
+#60 := (not #59)
+#281 := (iff #60 #280)
+#275 := (iff #59 #276)
+#279 := [rewrite]: #275
+#282 := [monotonicity #279]: #281
+#272 := [asserted]: #60
+#283 := [mp #272 #282]: #280
+#776 := (+ #56 #277)
+#761 := (>= #776 0::int)
+#770 := (= #56 #58)
+#777 := (>= #56 0::int)
+#624 := (not #781)
+#742 := (<= #58 0::int)
+#634 := (not #742)
+#506 := (>= #54 0::int)
+#693 := (f5 #54)
+#744 := (f6 #693)
+#745 := (= #744 0::int)
+#646 := (not #745)
+#689 := (not #852)
+#647 := (iff #689 #646)
+#643 := (iff #852 #745)
+#640 := (iff #745 #852)
+#632 := (= #744 #54)
+#655 := (= #693 f7)
+#694 := (= f7 #693)
+#38 := (:var 0 S2)
+#39 := (f6 #38)
+#869 := (pattern #39)
+#40 := (f5 #39)
+#188 := (= #38 #40)
+#870 := (forall (vars (?v0 S2)) (:pat #869) #188)
+#191 := (forall (vars (?v0 S2)) #188)
+#871 := (iff #191 #870)
+#873 := (iff #870 #870)
+#874 := [rewrite]: #873
+#872 := [rewrite]: #871
+#875 := [trans #872 #874]: #871
+#287 := (~ #191 #191)
+#303 := (~ #188 #188)
+#304 := [refl]: #303
+#288 := [nnf-pos #304]: #287
+#41 := (= #40 #38)
+#42 := (forall (vars (?v0 S2)) #41)
+#192 := (iff #42 #191)
+#189 := (iff #41 #188)
+#190 := [rewrite]: #189
+#193 := [quant-intro #190]: #192
+#187 := [asserted]: #42
+#196 := [mp #187 #193]: #191
+#305 := [mp~ #196 #288]: #191
+#876 := [mp #305 #875]: #870
+#789 := (not #870)
+#786 := (or #789 #694)
+#790 := [quant-inst]: #786
+#670 := [unit-resolution #790 #876]: #694
+#671 := [symm #670]: #655
+#633 := [monotonicity #671]: #632
+#642 := [monotonicity #633]: #640
+#644 := [symm #642]: #643
+#648 := [monotonicity #644]: #647
+#669 := [hypothesis]: #689
+#649 := [mp #669 #648]: #646
+#747 := (or #506 #745)
+#9 := (:var 0 int)
+#44 := (f5 #9)
+#877 := (pattern #44)
+#211 := (>= #9 0::int)
+#45 := (f6 #44)
+#50 := (= #45 0::int)
+#261 := (or #50 #211)
+#884 := (forall (vars (?v0 int)) (:pat #877) #261)
+#266 := (forall (vars (?v0 int)) #261)
+#887 := (iff #266 #884)
+#885 := (iff #261 #261)
+#886 := [refl]: #885
+#888 := [quant-intro #886]: #887
+#291 := (~ #266 #266)
+#309 := (~ #261 #261)
+#310 := [refl]: #309
+#292 := [nnf-pos #310]: #291
+#49 := (< #9 0::int)
+#51 := (implies #49 #50)
+#52 := (forall (vars (?v0 int)) #51)
+#269 := (iff #52 #266)
+#232 := (= 0::int #45)
+#238 := (not #49)
+#239 := (or #238 #232)
+#244 := (forall (vars (?v0 int)) #239)
+#267 := (iff #244 #266)
+#264 := (iff #239 #261)
+#258 := (or #211 #50)
+#262 := (iff #258 #261)
+#263 := [rewrite]: #262
+#259 := (iff #239 #258)
+#256 := (iff #232 #50)
+#257 := [rewrite]: #256
+#254 := (iff #238 #211)
+#214 := (not #211)
+#249 := (not #214)
+#252 := (iff #249 #211)
+#253 := [rewrite]: #252
+#250 := (iff #238 #249)
+#247 := (iff #49 #214)
+#248 := [rewrite]: #247
+#251 := [monotonicity #248]: #250
+#255 := [trans #251 #253]: #254
+#260 := [monotonicity #255 #257]: #259
+#265 := [trans #260 #263]: #264
+#268 := [quant-intro #265]: #267
+#245 := (iff #52 #244)
+#242 := (iff #51 #239)
+#235 := (implies #49 #232)
+#240 := (iff #235 #239)
+#241 := [rewrite]: #240
+#236 := (iff #51 #235)
+#233 := (iff #50 #232)
+#234 := [rewrite]: #233
+#237 := [monotonicity #234]: #236
+#243 := [trans #237 #241]: #242
+#246 := [quant-intro #243]: #245
+#270 := [trans #246 #268]: #269
+#231 := [asserted]: #52
+#271 := [mp #231 #270]: #266
+#311 := [mp~ #271 #292]: #266
+#889 := [mp #311 #888]: #884
+#766 := (not #884)
+#750 := (or #766 #506 #745)
+#746 := (or #745 #506)
+#751 := (or #766 #746)
+#735 := (iff #751 #750)
+#752 := (or #766 #747)
+#733 := (iff #752 #750)
+#734 := [rewrite]: #733
+#730 := (iff #751 #752)
+#748 := (iff #746 #747)
+#749 := [rewrite]: #748
+#731 := [monotonicity #749]: #730
+#736 := [trans #731 #734]: #735
+#741 := [quant-inst]: #751
+#737 := [mp #741 #736]: #750
+#650 := [unit-resolution #737 #889]: #747
+#651 := [unit-resolution #650 #649]: #506
+#831 := (not #506)
+#652 := (or #634 #831 #276)
+#622 := [th-lemma]: #652
+#623 := [unit-resolution #622 #651 #283]: #634
+#625 := (or #624 #742)
+#627 := [th-lemma]: #625
+#628 := [unit-resolution #627 #623]: #624
+#763 := (or #777 #781)
+#762 := (or #766 #777 #781)
+#782 := (or #781 #777)
+#767 := (or #766 #782)
+#759 := (iff #767 #762)
+#754 := (or #766 #763)
+#758 := (iff #754 #762)
+#755 := [rewrite]: #758
+#756 := (iff #767 #754)
+#764 := (iff #782 #763)
+#765 := [rewrite]: #764
+#757 := [monotonicity #765]: #756
+#739 := [trans #757 #755]: #759
+#753 := [quant-inst]: #767
+#740 := [mp #753 #739]: #762
+#629 := [unit-resolution #740 #889]: #763
+#472 := [unit-resolution #629 #628]: #777
+#779 := (not #777)
+#780 := (or #770 #779)
+#195 := (= #9 #45)
+#220 := (or #195 #214)
+#878 := (forall (vars (?v0 int)) (:pat #877) #220)
+#225 := (forall (vars (?v0 int)) #220)
+#881 := (iff #225 #878)
+#879 := (iff #220 #220)
+#880 := [refl]: #879
+#882 := [quant-intro #880]: #881
+#289 := (~ #225 #225)
+#306 := (~ #220 #220)
+#307 := [refl]: #306
+#290 := [nnf-pos #307]: #289
+#46 := (= #45 #9)
+#43 := (<= 0::int #9)
+#47 := (implies #43 #46)
+#48 := (forall (vars (?v0 int)) #47)
+#228 := (iff #48 #225)
+#202 := (not #43)
+#203 := (or #202 #195)
+#208 := (forall (vars (?v0 int)) #203)
+#226 := (iff #208 #225)
+#223 := (iff #203 #220)
+#217 := (or #214 #195)
+#221 := (iff #217 #220)
+#222 := [rewrite]: #221
+#218 := (iff #203 #217)
+#215 := (iff #202 #214)
+#212 := (iff #43 #211)
+#213 := [rewrite]: #212
+#216 := [monotonicity #213]: #215
+#219 := [monotonicity #216]: #218
+#224 := [trans #219 #222]: #223
+#227 := [quant-intro #224]: #226
+#209 := (iff #48 #208)
+#206 := (iff #47 #203)
+#199 := (implies #43 #195)
+#204 := (iff #199 #203)
+#205 := [rewrite]: #204
+#200 := (iff #47 #199)
+#197 := (iff #46 #195)
+#198 := [rewrite]: #197
+#201 := [monotonicity #198]: #200
+#207 := [trans #201 #205]: #206
+#210 := [quant-intro #207]: #209
+#229 := [trans #210 #227]: #228
+#194 := [asserted]: #48
+#230 := [mp #194 #229]: #225
+#308 := [mp~ #230 #290]: #225
+#883 := [mp #308 #882]: #878
+#778 := (not #878)
+#783 := (or #778 #770 #779)
+#772 := (or #778 #780)
+#774 := (iff #772 #783)
+#775 := [rewrite]: #774
+#773 := [quant-inst]: #772
+#769 := [mp #773 #775]: #783
+#630 := [unit-resolution #769 #883]: #780
+#626 := [unit-resolution #630 #472]: #770
+#631 := (not #770)
+#610 := (or #631 #761)
+#613 := [th-lemma]: #610
+#617 := [unit-resolution #613 #626]: #761
+#459 := (* -1::int #531)
+#532 := (+ #56 #459)
+#805 := (<= #532 0::int)
+#529 := (= #532 0::int)
+#526 := (* -1::int #54)
+#547 := (div #526 -3::int)
+#826 := (* -1::int #547)
+#537 := (+ #56 #826)
+#540 := (= #537 0::int)
+#512 := (<= #54 0::int)
+#828 := (not #512)
+#552 := (or #831 #828)
+#534 := (ite #552 #529 #540)
+#620 := (or #852 #534)
+#817 := (ite #852 #850 #534)
+#8 := (:var 1 int)
+#10 := (f3 #8 #9)
+#855 := (pattern #10)
+#88 := (* -1::int #9)
+#85 := (* -1::int #8)
+#91 := (div #85 #88)
+#357 := (* -1::int #91)
+#358 := (+ #10 #357)
+#359 := (= #358 0::int)
+#21 := (div #8 #9)
+#354 := (* -1::int #21)
+#355 := (+ #10 #354)
+#356 := (= #355 0::int)
+#110 := (<= #9 0::int)
+#106 := (<= #8 0::int)
+#312 := (or #106 #110)
+#313 := (not #312)
+#117 := (>= #8 0::int)
+#295 := (or #110 #117)
+#296 := (not #295)
+#319 := (or #296 #313)
+#360 := (ite #319 #356 #359)
+#353 := (= #10 0::int)
+#13 := (= #9 0::int)
+#12 := (= #8 0::int)
+#14 := (or #12 #13)
+#361 := (ite #14 #353 #360)
+#856 := (forall (vars (?v0 int) (?v1 int)) (:pat #855) #361)
+#364 := (forall (vars (?v0 int) (?v1 int)) #361)
+#859 := (iff #364 #856)
+#857 := (iff #361 #361)
+#858 := [refl]: #857
+#860 := [quant-intro #858]: #859
+#324 := (ite #319 #21 #91)
+#327 := (ite #14 0::int #324)
+#330 := (= #10 #327)
+#333 := (forall (vars (?v0 int) (?v1 int)) #330)
+#365 := (iff #333 #364)
+#362 := (iff #330 #361)
+#363 := [rewrite]: #362
+#366 := [quant-intro #363]: #365
+#118 := (not #117)
+#111 := (not #110)
+#121 := (and #111 #118)
+#107 := (not #106)
+#114 := (and #107 #111)
+#124 := (or #114 #121)
+#127 := (ite #124 #21 #91)
+#130 := (ite #14 0::int #127)
+#133 := (= #10 #130)
+#136 := (forall (vars (?v0 int) (?v1 int)) #133)
+#334 := (iff #136 #333)
+#331 := (iff #133 #330)
+#328 := (= #130 #327)
+#325 := (= #127 #324)
+#322 := (iff #124 #319)
+#316 := (or #313 #296)
+#320 := (iff #316 #319)
+#321 := [rewrite]: #320
+#317 := (iff #124 #316)
+#314 := (iff #121 #296)
+#315 := [rewrite]: #314
+#293 := (iff #114 #313)
+#294 := [rewrite]: #293
+#318 := [monotonicity #294 #315]: #317
+#323 := [trans #318 #321]: #322
+#326 := [monotonicity #323]: #325
+#329 := [monotonicity #326]: #328
+#332 := [monotonicity #329]: #331
+#335 := [quant-intro #332]: #334
+#299 := (~ #136 #136)
+#297 := (~ #133 #133)
+#298 := [refl]: #297
+#300 := [nnf-pos #298]: #299
+#23 := (- #9)
+#22 := (- #8)
+#24 := (div #22 #23)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#25 := (ite #20 #21 #24)
+#26 := (ite #14 0::int #25)
+#27 := (= #10 #26)
+#28 := (forall (vars (?v0 int) (?v1 int)) #27)
+#139 := (iff #28 #136)
+#78 := (and #16 #18)
+#81 := (or #17 #78)
+#94 := (ite #81 #21 #91)
+#97 := (ite #14 0::int #94)
+#100 := (= #10 #97)
+#103 := (forall (vars (?v0 int) (?v1 int)) #100)
+#137 := (iff #103 #136)
+#134 := (iff #100 #133)
+#131 := (= #97 #130)
+#128 := (= #94 #127)
+#125 := (iff #81 #124)
+#122 := (iff #78 #121)
+#119 := (iff #18 #118)
+#120 := [rewrite]: #119
+#112 := (iff #16 #111)
+#113 := [rewrite]: #112
+#123 := [monotonicity #113 #120]: #122
+#115 := (iff #17 #114)
+#108 := (iff #15 #107)
+#109 := [rewrite]: #108
+#116 := [monotonicity #109 #113]: #115
+#126 := [monotonicity #116 #123]: #125
+#129 := [monotonicity #126]: #128
+#132 := [monotonicity #129]: #131
+#135 := [monotonicity #132]: #134
+#138 := [quant-intro #135]: #137
+#104 := (iff #28 #103)
+#101 := (iff #27 #100)
+#98 := (= #26 #97)
+#95 := (= #25 #94)
+#92 := (= #24 #91)
+#89 := (= #23 #88)
+#90 := [rewrite]: #89
+#86 := (= #22 #85)
+#87 := [rewrite]: #86
+#93 := [monotonicity #87 #90]: #92
+#82 := (iff #20 #81)
+#79 := (iff #19 #78)
+#80 := [rewrite]: #79
+#83 := [monotonicity #80]: #82
+#96 := [monotonicity #83 #93]: #95
+#99 := [monotonicity #96]: #98
+#102 := [monotonicity #99]: #101
+#105 := [quant-intro #102]: #104
+#140 := [trans #105 #138]: #139
+#77 := [asserted]: #28
+#141 := [mp #77 #140]: #136
+#284 := [mp~ #141 #300]: #136
+#336 := [mp #284 #335]: #333
+#367 := [mp #336 #366]: #364
+#861 := [mp #367 #860]: #856
+#811 := (not #856)
+#812 := (or #811 #817)
+#441 := (* -1::int 3::int)
+#527 := (div #526 #441)
+#528 := (* -1::int #527)
+#519 := (+ #56 #528)
+#530 := (= #519 0::int)
+#533 := (<= 3::int 0::int)
+#847 := (or #512 #533)
+#849 := (not #847)
+#636 := (or #533 #506)
+#843 := (not #636)
+#517 := (or #843 #849)
+#518 := (ite #517 #529 #530)
+#851 := (= 3::int 0::int)
+#853 := (or #852 #851)
+#848 := (ite #853 #850 #518)
+#807 := (or #811 #848)
+#813 := (iff #807 #812)
+#809 := (iff #812 #812)
+#815 := [rewrite]: #809
+#821 := (iff #848 #817)
+#816 := (iff #518 #534)
+#818 := (iff #530 #540)
+#538 := (= #519 #537)
+#823 := (= #528 #826)
+#548 := (= #527 #547)
+#824 := (= #441 -3::int)
+#825 := [rewrite]: #824
+#822 := [monotonicity #825]: #548
+#827 := [monotonicity #822]: #823
+#539 := [monotonicity #827]: #538
+#819 := [monotonicity #539]: #818
+#553 := (iff #517 #552)
+#829 := (iff #849 #828)
+#839 := (iff #847 #512)
+#838 := (or #512 false)
+#481 := (iff #838 #512)
+#841 := [rewrite]: #481
+#840 := (iff #847 #838)
+#493 := (iff #533 false)
+#494 := [rewrite]: #493
+#480 := [monotonicity #494]: #840
+#842 := [trans #480 #841]: #839
+#551 := [monotonicity #842]: #829
+#837 := (iff #843 #831)
+#835 := (iff #636 #506)
+#495 := (or false #506)
+#833 := (iff #495 #506)
+#834 := [rewrite]: #833
+#496 := (iff #636 #495)
+#832 := [monotonicity #494]: #496
+#836 := [trans #832 #834]: #835
+#475 := [monotonicity #836]: #837
+#554 := [monotonicity #475 #551]: #553
+#820 := [monotonicity #554 #819]: #816
+#489 := (iff #853 #852)
+#504 := (or #852 false)
+#505 := (iff #504 #852)
+#846 := [rewrite]: #505
+#509 := (iff #853 #504)
+#854 := (iff #851 false)
+#844 := [rewrite]: #854
+#845 := [monotonicity #844]: #509
+#830 := [trans #845 #846]: #489
+#810 := [monotonicity #830 #820]: #821
+#814 := [monotonicity #810]: #813
+#656 := [trans #814 #815]: #813
+#808 := [quant-inst]: #807
+#657 := [mp #808 #656]: #812
+#619 := [unit-resolution #657 #861]: #817
+#787 := (not #817)
+#788 := (or #787 #852 #534)
+#673 := [def-axiom]: #788
+#618 := [unit-resolution #673 #619]: #620
+#621 := [unit-resolution #618 #669]: #534
+#609 := (or #852 #828 #831)
+#612 := [th-lemma]: #609
+#614 := [unit-resolution #612 #651 #669]: #828
+#801 := (or #552 #512)
+#802 := [def-axiom]: #801
+#615 := [unit-resolution #802 #614]: #552
+#803 := (not #552)
+#638 := (not #534)
+#791 := (or #638 #803 #529)
+#792 := [def-axiom]: #791
+#611 := [unit-resolution #792 #615 #621]: #529
+#793 := (not #529)
+#616 := (or #793 #805)
+#606 := [th-lemma]: #616
+#596 := [unit-resolution #606 #611]: #805
+#714 := (>= #804 0::int)
+#598 := (or false #714)
+#599 := [th-lemma]: #598
+#602 := [unit-resolution #599 #75]: #714
+#603 := [th-lemma #651 #602 #596 #617 #283 #668]: false
+#607 := [lemma #603]: #852
+#717 := (or #689 #850)
+#784 := (or #787 #689 #850)
+#785 := [def-axiom]: #784
+#600 := [unit-resolution #785 #619]: #717
+#608 := [unit-resolution #600 #607]: #850
+#605 := (= #58 #56)
+#653 := (or #689 #506)
+#654 := [th-lemma]: #653
+#659 := [unit-resolution #654 #607]: #506
+#660 := [unit-resolution #622 #659 #283]: #634
+#661 := [unit-resolution #627 #660]: #624
+#601 := [unit-resolution #629 #661]: #777
+#604 := [unit-resolution #630 #601]: #770
+#591 := [symm #604]: #605
+#593 := [trans #591 #608]: #781
+[unit-resolution #661 #593]: false
+unsat
+0741f8b49ae3c9e588dd48232e1ca5de80697aff 605 0
+#2 := false
+decl f5 :: (-> int S2)
+#11 := 0::int
+#59 := (f5 0::int)
+decl f7 :: S2
+#53 := f7
+#60 := (= f7 #59)
+decl f6 :: (-> S2 int)
+#54 := (f6 f7)
+#783 := (f5 #54)
+#628 := (= #783 #59)
+#608 := (= #59 #783)
+#604 := (= 0::int #54)
+#494 := (= #54 0::int)
+#55 := 3::int
+#685 := (mod #54 3::int)
+#630 := (>= #685 0::int)
+#1 := true
+#77 := [true-axiom]: true
+#598 := (or false #630)
+#599 := [th-lemma]: #598
+#597 := [unit-resolution #599 #77]: #630
+decl f3 :: (-> int int int)
+#56 := (f3 #54 3::int)
+#86 := -1::int
+#613 := (* -1::int #56)
+#606 := (+ #54 #613)
+#609 := (<= #606 0::int)
+#605 := (= #54 #56)
+#57 := (f5 #56)
+#727 := (f6 #57)
+#576 := (= #727 #56)
+#730 := (= #56 #727)
+#725 := (>= #56 0::int)
+#718 := (= #727 0::int)
+#590 := (not #718)
+#791 := (not #494)
+#591 := (iff #791 #590)
+#588 := (iff #494 #718)
+#586 := (iff #718 #494)
+#584 := (= #727 #54)
+#58 := (= #57 f7)
+#275 := (= f7 #57)
+#667 := (= #59 #57)
+#665 := (= #57 #59)
+#510 := (= #56 0::int)
+#781 := (f6 #59)
+#769 := (= #781 0::int)
+#9 := (:var 0 int)
+#44 := (f5 #9)
+#882 := (pattern #44)
+#213 := (>= #9 0::int)
+#216 := (not #213)
+#45 := (f6 #44)
+#197 := (= #9 #45)
+#222 := (or #197 #216)
+#883 := (forall (vars (?v0 int)) (:pat #882) #222)
+#227 := (forall (vars (?v0 int)) #222)
+#886 := (iff #227 #883)
+#884 := (iff #222 #222)
+#885 := [refl]: #884
+#887 := [quant-intro #885]: #886
+#294 := (~ #227 #227)
+#311 := (~ #222 #222)
+#312 := [refl]: #311
+#295 := [nnf-pos #312]: #294
+#46 := (= #45 #9)
+#43 := (<= 0::int #9)
+#47 := (implies #43 #46)
+#48 := (forall (vars (?v0 int)) #47)
+#230 := (iff #48 #227)
+#204 := (not #43)
+#205 := (or #204 #197)
+#210 := (forall (vars (?v0 int)) #205)
+#228 := (iff #210 #227)
+#225 := (iff #205 #222)
+#219 := (or #216 #197)
+#223 := (iff #219 #222)
+#224 := [rewrite]: #223
+#220 := (iff #205 #219)
+#217 := (iff #204 #216)
+#214 := (iff #43 #213)
+#215 := [rewrite]: #214
+#218 := [monotonicity #215]: #217
+#221 := [monotonicity #218]: #220
+#226 := [trans #221 #224]: #225
+#229 := [quant-intro #226]: #228
+#211 := (iff #48 #210)
+#208 := (iff #47 #205)
+#201 := (implies #43 #197)
+#206 := (iff #201 #205)
+#207 := [rewrite]: #206
+#202 := (iff #47 #201)
+#199 := (iff #46 #197)
+#200 := [rewrite]: #199
+#203 := [monotonicity #200]: #202
+#209 := [trans #203 #207]: #208
+#212 := [quant-intro #209]: #211
+#231 := [trans #212 #229]: #230
+#196 := [asserted]: #48
+#232 := [mp #196 #231]: #227
+#313 := [mp~ #232 #295]: #227
+#888 := [mp #313 #887]: #883
+#751 := (not #883)
+#752 := (or #751 #769)
+#777 := (>= 0::int 0::int)
+#778 := (not #777)
+#765 := (= 0::int #781)
+#766 := (or #765 #778)
+#753 := (or #751 #766)
+#755 := (iff #753 #752)
+#746 := (iff #752 #752)
+#757 := [rewrite]: #746
+#749 := (iff #766 #769)
+#764 := (or #769 false)
+#747 := (iff #764 #769)
+#748 := [rewrite]: #747
+#744 := (iff #766 #764)
+#763 := (iff #778 false)
+#772 := (not true)
+#761 := (iff #772 false)
+#762 := [rewrite]: #761
+#758 := (iff #778 #772)
+#771 := (iff #777 true)
+#767 := [rewrite]: #771
+#759 := [monotonicity #767]: #758
+#760 := [trans #759 #762]: #763
+#768 := (iff #765 #769)
+#770 := [rewrite]: #768
+#745 := [monotonicity #770 #760]: #744
+#750 := [trans #745 #748]: #749
+#756 := [monotonicity #750]: #755
+#735 := [trans #756 #757]: #755
+#754 := [quant-inst]: #753
+#736 := [mp #754 #735]: #752
+#688 := [unit-resolution #736 #888]: #769
+#692 := (= #54 #781)
+#446 := (not #275)
+#706 := [hypothesis]: #446
+#537 := (or #60 #275)
+#61 := (not #60)
+#281 := (iff #61 #275)
+#62 := (iff #58 #61)
+#284 := (iff #62 #281)
+#278 := (iff #275 #61)
+#282 := (iff #278 #281)
+#283 := [rewrite]: #282
+#279 := (iff #62 #278)
+#276 := (iff #58 #275)
+#277 := [rewrite]: #276
+#280 := [monotonicity #277]: #279
+#285 := [trans #280 #283]: #284
+#274 := [asserted]: #62
+#288 := [mp #274 #285]: #281
+#531 := (not #281)
+#536 := (or #60 #275 #531)
+#464 := [def-axiom]: #536
+#534 := [unit-resolution #464 #288]: #537
+#712 := [unit-resolution #534 #706]: #60
+#702 := [monotonicity #712]: #692
+#682 := [trans #702 #688]: #494
+#658 := (or #791 #510)
+#539 := -3::int
+#517 := (* -1::int #54)
+#822 := (div #517 -3::int)
+#816 := (* -1::int #822)
+#813 := (+ #56 #816)
+#814 := (= #813 0::int)
+#848 := (div #54 3::int)
+#522 := (* -1::int #848)
+#523 := (+ #56 #522)
+#855 := (= #523 0::int)
+#859 := (>= #54 0::int)
+#833 := (not #859)
+#857 := (<= #54 0::int)
+#553 := (not #857)
+#543 := (or #553 #833)
+#662 := (ite #543 #855 #814)
+#806 := (ite #494 #510 #662)
+#8 := (:var 1 int)
+#10 := (f3 #8 #9)
+#860 := (pattern #10)
+#90 := (* -1::int #9)
+#87 := (* -1::int #8)
+#93 := (div #87 #90)
+#362 := (* -1::int #93)
+#363 := (+ #10 #362)
+#364 := (= #363 0::int)
+#21 := (div #8 #9)
+#359 := (* -1::int #21)
+#360 := (+ #10 #359)
+#361 := (= #360 0::int)
+#112 := (<= #9 0::int)
+#108 := (<= #8 0::int)
+#317 := (or #108 #112)
+#318 := (not #317)
+#119 := (>= #8 0::int)
+#300 := (or #112 #119)
+#301 := (not #300)
+#324 := (or #301 #318)
+#365 := (ite #324 #361 #364)
+#358 := (= #10 0::int)
+#13 := (= #9 0::int)
+#12 := (= #8 0::int)
+#14 := (or #12 #13)
+#366 := (ite #14 #358 #365)
+#861 := (forall (vars (?v0 int) (?v1 int)) (:pat #860) #366)
+#369 := (forall (vars (?v0 int) (?v1 int)) #366)
+#864 := (iff #369 #861)
+#862 := (iff #366 #366)
+#863 := [refl]: #862
+#865 := [quant-intro #863]: #864
+#329 := (ite #324 #21 #93)
+#332 := (ite #14 0::int #329)
+#335 := (= #10 #332)
+#338 := (forall (vars (?v0 int) (?v1 int)) #335)
+#370 := (iff #338 #369)
+#367 := (iff #335 #366)
+#368 := [rewrite]: #367
+#371 := [quant-intro #368]: #370
+#120 := (not #119)
+#113 := (not #112)
+#123 := (and #113 #120)
+#109 := (not #108)
+#116 := (and #109 #113)
+#126 := (or #116 #123)
+#129 := (ite #126 #21 #93)
+#132 := (ite #14 0::int #129)
+#135 := (= #10 #132)
+#138 := (forall (vars (?v0 int) (?v1 int)) #135)
+#339 := (iff #138 #338)
+#336 := (iff #135 #335)
+#333 := (= #132 #332)
+#330 := (= #129 #329)
+#327 := (iff #126 #324)
+#321 := (or #318 #301)
+#325 := (iff #321 #324)
+#326 := [rewrite]: #325
+#322 := (iff #126 #321)
+#319 := (iff #123 #301)
+#320 := [rewrite]: #319
+#298 := (iff #116 #318)
+#299 := [rewrite]: #298
+#323 := [monotonicity #299 #320]: #322
+#328 := [trans #323 #326]: #327
+#331 := [monotonicity #328]: #330
+#334 := [monotonicity #331]: #333
+#337 := [monotonicity #334]: #336
+#340 := [quant-intro #337]: #339
+#304 := (~ #138 #138)
+#302 := (~ #135 #135)
+#303 := [refl]: #302
+#305 := [nnf-pos #303]: #304
+#23 := (- #9)
+#22 := (- #8)
+#24 := (div #22 #23)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#25 := (ite #20 #21 #24)
+#26 := (ite #14 0::int #25)
+#27 := (= #10 #26)
+#28 := (forall (vars (?v0 int) (?v1 int)) #27)
+#141 := (iff #28 #138)
+#80 := (and #16 #18)
+#83 := (or #17 #80)
+#96 := (ite #83 #21 #93)
+#99 := (ite #14 0::int #96)
+#102 := (= #10 #99)
+#105 := (forall (vars (?v0 int) (?v1 int)) #102)
+#139 := (iff #105 #138)
+#136 := (iff #102 #135)
+#133 := (= #99 #132)
+#130 := (= #96 #129)
+#127 := (iff #83 #126)
+#124 := (iff #80 #123)
+#121 := (iff #18 #120)
+#122 := [rewrite]: #121
+#114 := (iff #16 #113)
+#115 := [rewrite]: #114
+#125 := [monotonicity #115 #122]: #124
+#117 := (iff #17 #116)
+#110 := (iff #15 #109)
+#111 := [rewrite]: #110
+#118 := [monotonicity #111 #115]: #117
+#128 := [monotonicity #118 #125]: #127
+#131 := [monotonicity #128]: #130
+#134 := [monotonicity #131]: #133
+#137 := [monotonicity #134]: #136
+#140 := [quant-intro #137]: #139
+#106 := (iff #28 #105)
+#103 := (iff #27 #102)
+#100 := (= #26 #99)
+#97 := (= #25 #96)
+#94 := (= #24 #93)
+#91 := (= #23 #90)
+#92 := [rewrite]: #91
+#88 := (= #22 #87)
+#89 := [rewrite]: #88
+#95 := [monotonicity #89 #92]: #94
+#84 := (iff #20 #83)
+#81 := (iff #19 #80)
+#82 := [rewrite]: #81
+#85 := [monotonicity #82]: #84
+#98 := [monotonicity #85 #95]: #97
+#101 := [monotonicity #98]: #100
+#104 := [monotonicity #101]: #103
+#107 := [quant-intro #104]: #106
+#142 := [trans #107 #140]: #141
+#79 := [asserted]: #28
+#143 := [mp #79 #142]: #138
+#289 := [mp~ #143 #305]: #138
+#341 := [mp #289 #340]: #338
+#372 := [mp #341 #371]: #369
+#866 := [mp #372 #865]: #861
+#802 := (not #861)
+#803 := (or #802 #806)
+#538 := (* -1::int 3::int)
+#852 := (div #517 #538)
+#854 := (* -1::int #852)
+#511 := (+ #56 #854)
+#641 := (= #511 0::int)
+#856 := (<= 3::int 0::int)
+#858 := (or #857 #856)
+#853 := (not #858)
+#849 := (or #856 #859)
+#509 := (not #849)
+#514 := (or #509 #853)
+#850 := (ite #514 #855 #641)
+#851 := (= 3::int 0::int)
+#835 := (or #494 #851)
+#498 := (ite #835 #510 #850)
+#809 := (or #802 #498)
+#804 := (iff #809 #803)
+#640 := (iff #803 #803)
+#642 := [rewrite]: #640
+#807 := (iff #498 #806)
+#663 := (iff #850 #662)
+#820 := (iff #641 #814)
+#818 := (= #511 #813)
+#817 := (= #854 #816)
+#826 := (= #852 #822)
+#821 := (= #538 -3::int)
+#825 := [rewrite]: #821
+#815 := [monotonicity #825]: #826
+#812 := [monotonicity #815]: #817
+#819 := [monotonicity #812]: #818
+#661 := [monotonicity #819]: #820
+#823 := (iff #514 #543)
+#828 := (or #833 #553)
+#544 := (iff #828 #543)
+#545 := [rewrite]: #544
+#832 := (iff #514 #828)
+#827 := (iff #853 #553)
+#830 := (iff #858 #857)
+#557 := (or #857 false)
+#452 := (iff #557 #857)
+#829 := [rewrite]: #452
+#558 := (iff #858 #557)
+#842 := (iff #856 false)
+#480 := [rewrite]: #842
+#559 := [monotonicity #480]: #558
+#552 := [trans #559 #829]: #830
+#831 := [monotonicity #552]: #827
+#834 := (iff #509 #833)
+#844 := (iff #849 #859)
+#843 := (or false #859)
+#486 := (iff #843 #859)
+#846 := [rewrite]: #486
+#845 := (iff #849 #843)
+#485 := [monotonicity #480]: #845
+#847 := [trans #485 #846]: #844
+#556 := [monotonicity #847]: #834
+#542 := [monotonicity #556 #831]: #832
+#824 := [trans #542 #545]: #823
+#805 := [monotonicity #824 #661]: #663
+#841 := (iff #835 #494)
+#501 := (or #494 false)
+#839 := (iff #501 #494)
+#840 := [rewrite]: #839
+#837 := (iff #835 #501)
+#499 := (iff #851 false)
+#500 := [rewrite]: #499
+#838 := [monotonicity #500]: #837
+#836 := [trans #838 #840]: #841
+#808 := [monotonicity #836 #805]: #807
+#811 := [monotonicity #808]: #804
+#643 := [trans #811 #642]: #804
+#810 := [quant-inst]: #809
+#796 := [mp #810 #643]: #803
+#703 := [unit-resolution #796 #866]: #806
+#794 := (not #806)
+#795 := (or #794 #791 #510)
+#782 := [def-axiom]: #795
+#659 := [unit-resolution #782 #703]: #658
+#664 := [unit-resolution #659 #682]: #510
+#666 := [monotonicity #664]: #665
+#668 := [symm #666]: #667
+#669 := [trans #712 #668]: #275
+#670 := [unit-resolution #706 #669]: false
+#671 := [lemma #670]: #275
+#600 := [symm #671]: #58
+#585 := [monotonicity #600]: #584
+#587 := [monotonicity #585]: #586
+#589 := [symm #587]: #588
+#592 := [monotonicity #589]: #591
+#582 := [hypothesis]: #791
+#593 := [mp #582 #592]: #590
+#721 := (or #718 #725)
+#50 := (= #45 0::int)
+#263 := (or #50 #213)
+#889 := (forall (vars (?v0 int)) (:pat #882) #263)
+#268 := (forall (vars (?v0 int)) #263)
+#892 := (iff #268 #889)
+#890 := (iff #263 #263)
+#891 := [refl]: #890
+#893 := [quant-intro #891]: #892
+#296 := (~ #268 #268)
+#314 := (~ #263 #263)
+#315 := [refl]: #314
+#297 := [nnf-pos #315]: #296
+#49 := (< #9 0::int)
+#51 := (implies #49 #50)
+#52 := (forall (vars (?v0 int)) #51)
+#271 := (iff #52 #268)
+#234 := (= 0::int #45)
+#240 := (not #49)
+#241 := (or #240 #234)
+#246 := (forall (vars (?v0 int)) #241)
+#269 := (iff #246 #268)
+#266 := (iff #241 #263)
+#260 := (or #213 #50)
+#264 := (iff #260 #263)
+#265 := [rewrite]: #264
+#261 := (iff #241 #260)
+#258 := (iff #234 #50)
+#259 := [rewrite]: #258
+#256 := (iff #240 #213)
+#251 := (not #216)
+#254 := (iff #251 #213)
+#255 := [rewrite]: #254
+#252 := (iff #240 #251)
+#249 := (iff #49 #216)
+#250 := [rewrite]: #249
+#253 := [monotonicity #250]: #252
+#257 := [trans #253 #255]: #256
+#262 := [monotonicity #257 #259]: #261
+#267 := [trans #262 #265]: #266
+#270 := [quant-intro #267]: #269
+#247 := (iff #52 #246)
+#244 := (iff #51 #241)
+#237 := (implies #49 #234)
+#242 := (iff #237 #241)
+#243 := [rewrite]: #242
+#238 := (iff #51 #237)
+#235 := (iff #50 #234)
+#236 := [rewrite]: #235
+#239 := [monotonicity #236]: #238
+#245 := [trans #239 #243]: #244
+#248 := [quant-intro #245]: #247
+#272 := [trans #248 #270]: #271
+#233 := [asserted]: #52
+#273 := [mp #233 #272]: #268
+#316 := [mp~ #273 #297]: #268
+#894 := [mp #316 #893]: #889
+#719 := (not #889)
+#724 := (or #719 #718 #725)
+#704 := (or #719 #721)
+#705 := (iff #704 #724)
+#686 := [rewrite]: #705
+#650 := [quant-inst]: #704
+#710 := [mp #650 #686]: #724
+#594 := [unit-resolution #710 #894]: #721
+#583 := [unit-resolution #594 #593]: #725
+#726 := (not #725)
+#732 := (or #726 #730)
+#734 := (or #751 #726 #730)
+#731 := (or #730 #726)
+#707 := (or #751 #731)
+#720 := (iff #707 #734)
+#709 := (or #751 #732)
+#714 := (iff #709 #734)
+#715 := [rewrite]: #714
+#602 := (iff #707 #709)
+#733 := (iff #731 #732)
+#728 := [rewrite]: #733
+#713 := [monotonicity #728]: #602
+#716 := [trans #713 #715]: #720
+#708 := [quant-inst]: #707
+#717 := [mp #708 #716]: #734
+#595 := [unit-resolution #717 #888]: #732
+#572 := [unit-resolution #595 #583]: #730
+#577 := [symm #572]: #576
+#574 := (= #54 #727)
+#575 := [symm #585]: #574
+#578 := [trans #575 #577]: #605
+#579 := (not #605)
+#580 := (or #579 #609)
+#573 := [th-lemma]: #580
+#581 := [unit-resolution #573 #578]: #609
+#644 := (<= #523 0::int)
+#566 := (or #494 #662)
+#784 := (or #794 #494 #662)
+#776 := [def-axiom]: #784
+#567 := [unit-resolution #776 #703]: #566
+#568 := [unit-resolution #567 #582]: #662
+#722 := (f6 #783)
+#723 := (= #722 0::int)
+#555 := (not #723)
+#565 := (iff #791 #555)
+#563 := (iff #494 #723)
+#562 := (iff #723 #494)
+#560 := (= #722 #54)
+#569 := (= #783 f7)
+#788 := (= f7 #783)
+#38 := (:var 0 S2)
+#39 := (f6 #38)
+#874 := (pattern #39)
+#40 := (f5 #39)
+#190 := (= #38 #40)
+#875 := (forall (vars (?v0 S2)) (:pat #874) #190)
+#193 := (forall (vars (?v0 S2)) #190)
+#876 := (iff #193 #875)
+#878 := (iff #875 #875)
+#879 := [rewrite]: #878
+#877 := [rewrite]: #876
+#880 := [trans #877 #879]: #876
+#292 := (~ #193 #193)
+#308 := (~ #190 #190)
+#309 := [refl]: #308
+#293 := [nnf-pos #309]: #292
+#41 := (= #40 #38)
+#42 := (forall (vars (?v0 S2)) #41)
+#194 := (iff #42 #193)
+#191 := (iff #41 #190)
+#192 := [rewrite]: #191
+#195 := [quant-intro #192]: #194
+#189 := [asserted]: #42
+#198 := [mp #189 #195]: #193
+#310 := [mp~ #198 #293]: #193
+#881 := [mp #310 #880]: #875
+#779 := (not #875)
+#780 := (or #779 #788)
+#774 := [quant-inst]: #780
+#570 := [unit-resolution #774 #881]: #788
+#571 := [symm #570]: #569
+#561 := [monotonicity #571]: #560
+#554 := [monotonicity #561]: #562
+#564 := [symm #554]: #563
+#546 := [monotonicity #564]: #565
+#547 := [mp #582 #546]: #555
+#711 := (or #723 #859)
+#680 := (or #719 #723 #859)
+#687 := (or #719 #711)
+#677 := (iff #687 #680)
+#679 := [rewrite]: #677
+#646 := [quant-inst]: #687
+#681 := [mp #646 #679]: #680
+#548 := [unit-resolution #681 #894]: #711
+#540 := [unit-resolution #548 #547]: #859
+#549 := (or #494 #553 #833)
+#550 := [th-lemma]: #549
+#541 := [unit-resolution #550 #582]: #543
+#551 := [unit-resolution #541 #540]: #553
+#797 := (or #543 #857)
+#799 := [def-axiom]: #797
+#518 := [unit-resolution #799 #551]: #543
+#801 := (not #543)
+#793 := (not #662)
+#678 := (or #793 #801 #855)
+#693 := [def-axiom]: #678
+#520 := [unit-resolution #693 #518 #568]: #855
+#689 := (not #855)
+#521 := (or #689 #644)
+#512 := [th-lemma]: #521
+#525 := [unit-resolution #512 #520]: #644
+#653 := (* -3::int #848)
+#652 := (* -1::int #685)
+#654 := (+ #652 #653)
+#655 := (+ #54 #654)
+#629 := (>= #655 0::int)
+#651 := (= #655 0::int)
+#526 := (or false #651)
+#527 := [th-lemma]: #526
+#528 := [unit-resolution #527 #77]: #651
+#529 := (not #651)
+#519 := (or #529 #629)
+#530 := [th-lemma]: #519
+#513 := [unit-resolution #530 #528]: #629
+#515 := [th-lemma #551 #513 #525 #581 #597]: false
+#516 := [lemma #515]: #494
+#607 := [symm #516]: #604
+#612 := [monotonicity #607]: #608
+#610 := [symm #612]: #628
+#596 := [trans #570 #610]: #60
+#524 := (or #61 #446)
+#532 := (or #61 #446 #531)
+#533 := [def-axiom]: #532
+#535 := [unit-resolution #533 #288]: #524
+#603 := [unit-resolution #535 #671]: #61
+[unit-resolution #603 #596]: false
+unsat
+0dfa1960b9d87fc7e3f972c64e026321f27c2c2b 274 0
+#2 := false
+decl f5 :: (-> int S2)
+#11 := 0::int
+#55 := (f5 0::int)
+decl f4 :: (-> int int int)
+#53 := (f4 0::int 0::int)
+#54 := (f5 #53)
+#56 := (= #54 #55)
+#831 := (= #53 0::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#850 := (pattern #29)
+#81 := -1::int
+#85 := (* -1::int #9)
+#82 := (* -1::int #8)
+#140 := (mod #82 #85)
+#361 := (+ #29 #140)
+#362 := (= #361 0::int)
+#30 := (mod #8 #9)
+#358 := (* -1::int #30)
+#359 := (+ #29 #358)
+#360 := (= #359 0::int)
+#107 := (<= #9 0::int)
+#103 := (<= #8 0::int)
+#300 := (or #103 #107)
+#301 := (not #300)
+#114 := (>= #8 0::int)
+#283 := (or #107 #114)
+#284 := (not #283)
+#307 := (or #284 #301)
+#363 := (ite #307 #360 #362)
+#357 := (= #29 0::int)
+#12 := (= #8 0::int)
+#364 := (ite #12 #357 #363)
+#356 := (= #8 #29)
+#13 := (= #9 0::int)
+#365 := (ite #13 #356 #364)
+#851 := (forall (vars (?v0 int) (?v1 int)) (:pat #850) #365)
+#368 := (forall (vars (?v0 int) (?v1 int)) #365)
+#854 := (iff #368 #851)
+#852 := (iff #365 #365)
+#853 := [refl]: #852
+#855 := [quant-intro #853]: #854
+#146 := (* -1::int #140)
+#325 := (ite #307 #30 #146)
+#328 := (ite #12 0::int #325)
+#331 := (ite #13 #8 #328)
+#334 := (= #29 #331)
+#337 := (forall (vars (?v0 int) (?v1 int)) #334)
+#369 := (iff #337 #368)
+#366 := (iff #334 #365)
+#367 := [rewrite]: #366
+#370 := [quant-intro #367]: #369
+#115 := (not #114)
+#108 := (not #107)
+#118 := (and #108 #115)
+#104 := (not #103)
+#111 := (and #104 #108)
+#121 := (or #111 #118)
+#166 := (ite #121 #30 #146)
+#169 := (ite #12 0::int #166)
+#172 := (ite #13 #8 #169)
+#175 := (= #29 #172)
+#178 := (forall (vars (?v0 int) (?v1 int)) #175)
+#338 := (iff #178 #337)
+#335 := (iff #175 #334)
+#332 := (= #172 #331)
+#329 := (= #169 #328)
+#326 := (= #166 #325)
+#310 := (iff #121 #307)
+#304 := (or #301 #284)
+#308 := (iff #304 #307)
+#309 := [rewrite]: #308
+#305 := (iff #121 #304)
+#302 := (iff #118 #284)
+#303 := [rewrite]: #302
+#281 := (iff #111 #301)
+#282 := [rewrite]: #281
+#306 := [monotonicity #282 #303]: #305
+#311 := [trans #306 #309]: #310
+#327 := [monotonicity #311]: #326
+#330 := [monotonicity #327]: #329
+#333 := [monotonicity #330]: #332
+#336 := [monotonicity #333]: #335
+#339 := [quant-intro #336]: #338
+#273 := (~ #178 #178)
+#270 := (~ #175 #175)
+#289 := [refl]: #270
+#274 := [nnf-pos #289]: #273
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#181 := (iff #37 #178)
+#75 := (and #16 #18)
+#78 := (or #17 #75)
+#151 := (ite #78 #30 #146)
+#154 := (ite #12 0::int #151)
+#157 := (ite #13 #8 #154)
+#160 := (= #29 #157)
+#163 := (forall (vars (?v0 int) (?v1 int)) #160)
+#179 := (iff #163 #178)
+#176 := (iff #160 #175)
+#173 := (= #157 #172)
+#170 := (= #154 #169)
+#167 := (= #151 #166)
+#122 := (iff #78 #121)
+#119 := (iff #75 #118)
+#116 := (iff #18 #115)
+#117 := [rewrite]: #116
+#109 := (iff #16 #108)
+#110 := [rewrite]: #109
+#120 := [monotonicity #110 #117]: #119
+#112 := (iff #17 #111)
+#105 := (iff #15 #104)
+#106 := [rewrite]: #105
+#113 := [monotonicity #106 #110]: #112
+#123 := [monotonicity #113 #120]: #122
+#168 := [monotonicity #123]: #167
+#171 := [monotonicity #168]: #170
+#174 := [monotonicity #171]: #173
+#177 := [monotonicity #174]: #176
+#180 := [quant-intro #177]: #179
+#164 := (iff #37 #163)
+#161 := (iff #36 #160)
+#158 := (= #35 #157)
+#155 := (= #34 #154)
+#152 := (= #33 #151)
+#149 := (= #32 #146)
+#143 := (- #140)
+#147 := (= #143 #146)
+#148 := [rewrite]: #147
+#144 := (= #32 #143)
+#141 := (= #31 #140)
+#86 := (= #23 #85)
+#87 := [rewrite]: #86
+#83 := (= #22 #82)
+#84 := [rewrite]: #83
+#142 := [monotonicity #84 #87]: #141
+#145 := [monotonicity #142]: #144
+#150 := [trans #145 #148]: #149
+#79 := (iff #20 #78)
+#76 := (iff #19 #75)
+#77 := [rewrite]: #76
+#80 := [monotonicity #77]: #79
+#153 := [monotonicity #80 #150]: #152
+#156 := [monotonicity #153]: #155
+#159 := [monotonicity #156]: #158
+#162 := [monotonicity #159]: #161
+#165 := [quant-intro #162]: #164
+#182 := [trans #165 #180]: #181
+#139 := [asserted]: #37
+#183 := [mp #139 #182]: #178
+#290 := [mp~ #183 #274]: #178
+#340 := [mp #290 #339]: #337
+#371 := [mp #340 #370]: #368
+#856 := [mp #371 #855]: #851
+#646 := (not #851)
+#788 := (or #646 #831)
+#429 := (* -1::int 0::int)
+#514 := (mod #429 #429)
+#515 := (+ #53 #514)
+#516 := (= #515 0::int)
+#507 := (mod 0::int 0::int)
+#518 := (* -1::int #507)
+#519 := (+ #53 #518)
+#447 := (= #519 0::int)
+#520 := (<= 0::int 0::int)
+#517 := (or #520 #520)
+#521 := (not #517)
+#500 := (>= 0::int 0::int)
+#835 := (or #520 #500)
+#837 := (not #835)
+#494 := (or #837 #521)
+#624 := (ite #494 #447 #516)
+#505 := (= 0::int 0::int)
+#506 := (ite #505 #831 #624)
+#838 := (= 0::int #53)
+#839 := (ite #505 #838 #506)
+#789 := (or #646 #839)
+#791 := (iff #789 #788)
+#786 := (iff #788 #788)
+#792 := [rewrite]: #786
+#644 := (iff #839 #831)
+#1 := true
+#796 := (ite true #831 #831)
+#797 := (iff #796 #831)
+#803 := [rewrite]: #797
+#801 := (iff #839 #796)
+#800 := (iff #506 #831)
+#536 := (+ #53 #507)
+#811 := (= #536 0::int)
+#808 := (ite true #831 #811)
+#798 := (iff #808 #831)
+#799 := [rewrite]: #798
+#805 := (iff #506 #808)
+#522 := (iff #624 #811)
+#526 := (ite false #447 #811)
+#806 := (iff #526 #811)
+#807 := [rewrite]: #806
+#527 := (iff #624 #526)
+#815 := (iff #516 #811)
+#810 := (= #515 #536)
+#813 := (= #514 #507)
+#435 := (= #429 0::int)
+#812 := [rewrite]: #435
+#535 := [monotonicity #812 #812]: #813
+#814 := [monotonicity #535]: #810
+#525 := [monotonicity #814]: #815
+#541 := (iff #494 false)
+#830 := (or false false)
+#539 := (iff #830 false)
+#540 := [rewrite]: #539
+#816 := (iff #494 #830)
+#829 := (iff #521 false)
+#484 := (not true)
+#822 := (iff #484 false)
+#823 := [rewrite]: #822
+#468 := (iff #521 #484)
+#826 := (iff #517 true)
+#493 := (or true true)
+#818 := (iff #493 true)
+#481 := [rewrite]: #818
+#825 := (iff #517 #493)
+#832 := (iff #520 true)
+#492 := [rewrite]: #832
+#463 := [monotonicity #492 #492]: #825
+#828 := [trans #463 #481]: #826
+#469 := [monotonicity #828]: #468
+#827 := [trans #469 #823]: #829
+#824 := (iff #837 false)
+#820 := (iff #837 #484)
+#482 := (iff #835 true)
+#834 := (iff #835 #493)
+#497 := (iff #500 true)
+#833 := [rewrite]: #497
+#477 := [monotonicity #492 #833]: #834
+#483 := [trans #477 #481]: #482
+#821 := [monotonicity #483]: #820
+#819 := [trans #821 #823]: #824
+#817 := [monotonicity #819 #827]: #816
+#542 := [trans #817 #540]: #541
+#528 := [monotonicity #542 #525]: #527
+#804 := [trans #528 #807]: #522
+#840 := (iff #505 true)
+#841 := [rewrite]: #840
+#809 := [monotonicity #841 #804]: #805
+#795 := [trans #809 #799]: #800
+#836 := (iff #838 #831)
+#842 := [rewrite]: #836
+#802 := [monotonicity #841 #842 #795]: #801
+#645 := [trans #802 #803]: #644
+#785 := [monotonicity #645]: #791
+#793 := [trans #785 #792]: #791
+#790 := [quant-inst]: #789
+#787 := [mp #790 #793]: #788
+#741 := [unit-resolution #787 #856]: #831
+#742 := [monotonicity #741]: #56
+#57 := (not #56)
+#269 := [asserted]: #57
+[unit-resolution #269 #742]: false
+unsat
+d1d747d0faebd6e388f19866072f0756127c8e26 321 0
+#2 := false
+decl f5 :: (-> int S2)
+decl f4 :: (-> int int int)
+#11 := 0::int
+decl f6 :: (-> S2 int)
+decl f7 :: S2
+#53 := f7
+#54 := (f6 f7)
+#55 := (f4 #54 0::int)
+#56 := (f5 #55)
+#271 := (= f7 #56)
+#795 := (f5 #54)
+#772 := (= #795 #56)
+#771 := (= #56 #795)
+#768 := (= #55 #54)
+#848 := (= #54 #55)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#858 := (pattern #29)
+#82 := -1::int
+#86 := (* -1::int #9)
+#83 := (* -1::int #8)
+#141 := (mod #83 #86)
+#369 := (+ #29 #141)
+#370 := (= #369 0::int)
+#30 := (mod #8 #9)
+#366 := (* -1::int #30)
+#367 := (+ #29 #366)
+#368 := (= #367 0::int)
+#108 := (<= #9 0::int)
+#104 := (<= #8 0::int)
+#308 := (or #104 #108)
+#309 := (not #308)
+#115 := (>= #8 0::int)
+#291 := (or #108 #115)
+#292 := (not #291)
+#315 := (or #292 #309)
+#371 := (ite #315 #368 #370)
+#365 := (= #29 0::int)
+#12 := (= #8 0::int)
+#372 := (ite #12 #365 #371)
+#364 := (= #8 #29)
+#13 := (= #9 0::int)
+#373 := (ite #13 #364 #372)
+#859 := (forall (vars (?v0 int) (?v1 int)) (:pat #858) #373)
+#376 := (forall (vars (?v0 int) (?v1 int)) #373)
+#862 := (iff #376 #859)
+#860 := (iff #373 #373)
+#861 := [refl]: #860
+#863 := [quant-intro #861]: #862
+#147 := (* -1::int #141)
+#333 := (ite #315 #30 #147)
+#336 := (ite #12 0::int #333)
+#339 := (ite #13 #8 #336)
+#342 := (= #29 #339)
+#345 := (forall (vars (?v0 int) (?v1 int)) #342)
+#377 := (iff #345 #376)
+#374 := (iff #342 #373)
+#375 := [rewrite]: #374
+#378 := [quant-intro #375]: #377
+#116 := (not #115)
+#109 := (not #108)
+#119 := (and #109 #116)
+#105 := (not #104)
+#112 := (and #105 #109)
+#122 := (or #112 #119)
+#167 := (ite #122 #30 #147)
+#170 := (ite #12 0::int #167)
+#173 := (ite #13 #8 #170)
+#176 := (= #29 #173)
+#179 := (forall (vars (?v0 int) (?v1 int)) #176)
+#346 := (iff #179 #345)
+#343 := (iff #176 #342)
+#340 := (= #173 #339)
+#337 := (= #170 #336)
+#334 := (= #167 #333)
+#318 := (iff #122 #315)
+#312 := (or #309 #292)
+#316 := (iff #312 #315)
+#317 := [rewrite]: #316
+#313 := (iff #122 #312)
+#310 := (iff #119 #292)
+#311 := [rewrite]: #310
+#289 := (iff #112 #309)
+#290 := [rewrite]: #289
+#314 := [monotonicity #290 #311]: #313
+#319 := [trans #314 #317]: #318
+#335 := [monotonicity #319]: #334
+#338 := [monotonicity #335]: #337
+#341 := [monotonicity #338]: #340
+#344 := [monotonicity #341]: #343
+#347 := [quant-intro #344]: #346
+#281 := (~ #179 #179)
+#277 := (~ #176 #176)
+#297 := [refl]: #277
+#282 := [nnf-pos #297]: #281
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#182 := (iff #37 #179)
+#76 := (and #16 #18)
+#79 := (or #17 #76)
+#152 := (ite #79 #30 #147)
+#155 := (ite #12 0::int #152)
+#158 := (ite #13 #8 #155)
+#161 := (= #29 #158)
+#164 := (forall (vars (?v0 int) (?v1 int)) #161)
+#180 := (iff #164 #179)
+#177 := (iff #161 #176)
+#174 := (= #158 #173)
+#171 := (= #155 #170)
+#168 := (= #152 #167)
+#123 := (iff #79 #122)
+#120 := (iff #76 #119)
+#117 := (iff #18 #116)
+#118 := [rewrite]: #117
+#110 := (iff #16 #109)
+#111 := [rewrite]: #110
+#121 := [monotonicity #111 #118]: #120
+#113 := (iff #17 #112)
+#106 := (iff #15 #105)
+#107 := [rewrite]: #106
+#114 := [monotonicity #107 #111]: #113
+#124 := [monotonicity #114 #121]: #123
+#169 := [monotonicity #124]: #168
+#172 := [monotonicity #169]: #171
+#175 := [monotonicity #172]: #174
+#178 := [monotonicity #175]: #177
+#181 := [quant-intro #178]: #180
+#165 := (iff #37 #164)
+#162 := (iff #36 #161)
+#159 := (= #35 #158)
+#156 := (= #34 #155)
+#153 := (= #33 #152)
+#150 := (= #32 #147)
+#144 := (- #141)
+#148 := (= #144 #147)
+#149 := [rewrite]: #148
+#145 := (= #32 #144)
+#142 := (= #31 #141)
+#87 := (= #23 #86)
+#88 := [rewrite]: #87
+#84 := (= #22 #83)
+#85 := [rewrite]: #84
+#143 := [monotonicity #85 #88]: #142
+#146 := [monotonicity #143]: #145
+#151 := [trans #146 #149]: #150
+#80 := (iff #20 #79)
+#77 := (iff #19 #76)
+#78 := [rewrite]: #77
+#81 := [monotonicity #78]: #80
+#154 := [monotonicity #81 #151]: #153
+#157 := [monotonicity #154]: #156
+#160 := [monotonicity #157]: #159
+#163 := [monotonicity #160]: #162
+#166 := [quant-intro #163]: #165
+#183 := [trans #166 #181]: #182
+#140 := [asserted]: #37
+#184 := [mp #140 #183]: #179
+#298 := [mp~ #184 #282]: #179
+#348 := [mp #298 #347]: #345
+#379 := [mp #348 #378]: #376
+#864 := [mp #379 #863]: #859
+#653 := (not #859)
+#654 := (or #653 #848)
+#437 := (* -1::int 0::int)
+#522 := (* -1::int #54)
+#523 := (mod #522 #437)
+#524 := (+ #55 #523)
+#515 := (= #524 0::int)
+#526 := (mod #54 0::int)
+#527 := (* -1::int #526)
+#455 := (+ #55 #527)
+#528 := (= #455 0::int)
+#525 := (<= 0::int 0::int)
+#529 := (<= #54 0::int)
+#508 := (or #529 #525)
+#843 := (not #508)
+#845 := (>= #54 0::int)
+#502 := (or #525 #845)
+#632 := (not #502)
+#839 := (or #632 #843)
+#513 := (ite #839 #528 #515)
+#514 := (= #55 0::int)
+#846 := (= #54 0::int)
+#847 := (ite #846 #514 #513)
+#849 := (= 0::int 0::int)
+#844 := (ite #849 #848 #847)
+#796 := (or #653 #844)
+#798 := (iff #796 #654)
+#793 := (iff #654 #654)
+#794 := [rewrite]: #793
+#811 := (iff #844 #848)
+#544 := (mod #522 0::int)
+#819 := (+ #55 #544)
+#534 := (= #819 0::int)
+#806 := (ite #846 #514 #534)
+#1 := true
+#803 := (ite true #848 #806)
+#810 := (iff #803 #848)
+#805 := [rewrite]: #810
+#804 := (iff #844 #803)
+#807 := (iff #847 #806)
+#813 := (iff #513 #534)
+#814 := (ite false #528 #534)
+#812 := (iff #814 #534)
+#816 := [rewrite]: #812
+#815 := (iff #513 #814)
+#535 := (iff #515 #534)
+#823 := (= #524 #819)
+#818 := (= #523 #544)
+#821 := (= #437 0::int)
+#543 := [rewrite]: #821
+#822 := [monotonicity #543]: #818
+#533 := [monotonicity #822]: #823
+#536 := [monotonicity #533]: #535
+#443 := (iff #839 false)
+#825 := (or false false)
+#549 := (iff #825 false)
+#550 := [rewrite]: #549
+#547 := (iff #839 #825)
+#838 := (iff #843 false)
+#491 := (not true)
+#829 := (iff #491 false)
+#830 := [rewrite]: #829
+#837 := (iff #843 #491)
+#476 := (iff #508 true)
+#827 := (or #529 true)
+#834 := (iff #827 true)
+#836 := [rewrite]: #834
+#833 := (iff #508 #827)
+#500 := (iff #525 true)
+#505 := [rewrite]: #500
+#471 := [monotonicity #505]: #833
+#477 := [trans #471 #836]: #476
+#835 := [monotonicity #477]: #837
+#824 := [trans #835 #830]: #838
+#831 := (iff #632 false)
+#492 := (iff #632 #491)
+#489 := (iff #502 true)
+#841 := (or true #845)
+#485 := (iff #841 true)
+#826 := [rewrite]: #485
+#501 := (iff #502 #841)
+#842 := [monotonicity #505]: #501
+#490 := [trans #842 #826]: #489
+#828 := [monotonicity #490]: #492
+#832 := [trans #828 #830]: #831
+#548 := [monotonicity #832 #824]: #547
+#820 := [trans #548 #550]: #443
+#530 := [monotonicity #820 #536]: #815
+#817 := [trans #530 #816]: #813
+#808 := [monotonicity #817]: #807
+#850 := (iff #849 true)
+#840 := [rewrite]: #850
+#809 := [monotonicity #840 #808]: #804
+#652 := [trans #809 #805]: #811
+#799 := [monotonicity #652]: #798
+#800 := [trans #799 #794]: #798
+#797 := [quant-inst]: #796
+#801 := [mp #797 #800]: #654
+#779 := [unit-resolution #801 #864]: #848
+#769 := [symm #779]: #768
+#765 := [monotonicity #769]: #771
+#756 := [symm #765]: #772
+#802 := (= f7 #795)
+#38 := (:var 0 S2)
+#39 := (f6 #38)
+#865 := (pattern #39)
+#40 := (f5 #39)
+#186 := (= #38 #40)
+#866 := (forall (vars (?v0 S2)) (:pat #865) #186)
+#189 := (forall (vars (?v0 S2)) #186)
+#867 := (iff #189 #866)
+#869 := (iff #866 #866)
+#870 := [rewrite]: #869
+#868 := [rewrite]: #867
+#871 := [trans #868 #870]: #867
+#283 := (~ #189 #189)
+#299 := (~ #186 #186)
+#300 := [refl]: #299
+#284 := [nnf-pos #300]: #283
+#41 := (= #40 #38)
+#42 := (forall (vars (?v0 S2)) #41)
+#190 := (iff #42 #189)
+#187 := (iff #41 #186)
+#188 := [rewrite]: #187
+#191 := [quant-intro #188]: #190
+#185 := [asserted]: #42
+#194 := [mp #185 #191]: #189
+#301 := [mp~ #194 #284]: #189
+#872 := [mp #301 #871]: #866
+#634 := (not #866)
+#787 := (or #634 #802)
+#788 := [quant-inst]: #787
+#770 := [unit-resolution #788 #872]: #802
+#757 := [trans #770 #756]: #271
+#274 := (not #271)
+#57 := (= #56 f7)
+#58 := (not #57)
+#275 := (iff #58 #274)
+#272 := (iff #57 #271)
+#273 := [rewrite]: #272
+#276 := [monotonicity #273]: #275
+#270 := [asserted]: #58
+#279 := [mp #270 #276]: #274
+[unit-resolution #279 #757]: false
+unsat
+a3c833f1598038a8776912ffafadef9d4adb93db 304 0
+#2 := false
+decl f5 :: (-> int S2)
+#11 := 0::int
+#56 := (f5 0::int)
+decl f4 :: (-> int int int)
+#53 := 1::int
+#54 := (f4 0::int 1::int)
+#55 := (f5 #54)
+#57 := (= #55 #56)
+#838 := (= #54 0::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#850 := (pattern #29)
+#82 := -1::int
+#86 := (* -1::int #9)
+#83 := (* -1::int #8)
+#141 := (mod #83 #86)
+#362 := (+ #29 #141)
+#363 := (= #362 0::int)
+#30 := (mod #8 #9)
+#359 := (* -1::int #30)
+#360 := (+ #29 #359)
+#361 := (= #360 0::int)
+#108 := (<= #9 0::int)
+#104 := (<= #8 0::int)
+#301 := (or #104 #108)
+#302 := (not #301)
+#115 := (>= #8 0::int)
+#284 := (or #108 #115)
+#285 := (not #284)
+#308 := (or #285 #302)
+#364 := (ite #308 #361 #363)
+#358 := (= #29 0::int)
+#12 := (= #8 0::int)
+#365 := (ite #12 #358 #364)
+#357 := (= #8 #29)
+#13 := (= #9 0::int)
+#366 := (ite #13 #357 #365)
+#851 := (forall (vars (?v0 int) (?v1 int)) (:pat #850) #366)
+#369 := (forall (vars (?v0 int) (?v1 int)) #366)
+#854 := (iff #369 #851)
+#852 := (iff #366 #366)
+#853 := [refl]: #852
+#855 := [quant-intro #853]: #854
+#147 := (* -1::int #141)
+#326 := (ite #308 #30 #147)
+#329 := (ite #12 0::int #326)
+#332 := (ite #13 #8 #329)
+#335 := (= #29 #332)
+#338 := (forall (vars (?v0 int) (?v1 int)) #335)
+#370 := (iff #338 #369)
+#367 := (iff #335 #366)
+#368 := [rewrite]: #367
+#371 := [quant-intro #368]: #370
+#116 := (not #115)
+#109 := (not #108)
+#119 := (and #109 #116)
+#105 := (not #104)
+#112 := (and #105 #109)
+#122 := (or #112 #119)
+#167 := (ite #122 #30 #147)
+#170 := (ite #12 0::int #167)
+#173 := (ite #13 #8 #170)
+#176 := (= #29 #173)
+#179 := (forall (vars (?v0 int) (?v1 int)) #176)
+#339 := (iff #179 #338)
+#336 := (iff #176 #335)
+#333 := (= #173 #332)
+#330 := (= #170 #329)
+#327 := (= #167 #326)
+#311 := (iff #122 #308)
+#305 := (or #302 #285)
+#309 := (iff #305 #308)
+#310 := [rewrite]: #309
+#306 := (iff #122 #305)
+#303 := (iff #119 #285)
+#304 := [rewrite]: #303
+#282 := (iff #112 #302)
+#283 := [rewrite]: #282
+#307 := [monotonicity #283 #304]: #306
+#312 := [trans #307 #310]: #311
+#328 := [monotonicity #312]: #327
+#331 := [monotonicity #328]: #330
+#334 := [monotonicity #331]: #333
+#337 := [monotonicity #334]: #336
+#340 := [quant-intro #337]: #339
+#274 := (~ #179 #179)
+#271 := (~ #176 #176)
+#290 := [refl]: #271
+#275 := [nnf-pos #290]: #274
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#182 := (iff #37 #179)
+#76 := (and #16 #18)
+#79 := (or #17 #76)
+#152 := (ite #79 #30 #147)
+#155 := (ite #12 0::int #152)
+#158 := (ite #13 #8 #155)
+#161 := (= #29 #158)
+#164 := (forall (vars (?v0 int) (?v1 int)) #161)
+#180 := (iff #164 #179)
+#177 := (iff #161 #176)
+#174 := (= #158 #173)
+#171 := (= #155 #170)
+#168 := (= #152 #167)
+#123 := (iff #79 #122)
+#120 := (iff #76 #119)
+#117 := (iff #18 #116)
+#118 := [rewrite]: #117
+#110 := (iff #16 #109)
+#111 := [rewrite]: #110
+#121 := [monotonicity #111 #118]: #120
+#113 := (iff #17 #112)
+#106 := (iff #15 #105)
+#107 := [rewrite]: #106
+#114 := [monotonicity #107 #111]: #113
+#124 := [monotonicity #114 #121]: #123
+#169 := [monotonicity #124]: #168
+#172 := [monotonicity #169]: #171
+#175 := [monotonicity #172]: #174
+#178 := [monotonicity #175]: #177
+#181 := [quant-intro #178]: #180
+#165 := (iff #37 #164)
+#162 := (iff #36 #161)
+#159 := (= #35 #158)
+#156 := (= #34 #155)
+#153 := (= #33 #152)
+#150 := (= #32 #147)
+#144 := (- #141)
+#148 := (= #144 #147)
+#149 := [rewrite]: #148
+#145 := (= #32 #144)
+#142 := (= #31 #141)
+#87 := (= #23 #86)
+#88 := [rewrite]: #87
+#84 := (= #22 #83)
+#85 := [rewrite]: #84
+#143 := [monotonicity #85 #88]: #142
+#146 := [monotonicity #143]: #145
+#151 := [trans #146 #149]: #150
+#80 := (iff #20 #79)
+#77 := (iff #19 #76)
+#78 := [rewrite]: #77
+#81 := [monotonicity #78]: #80
+#154 := [monotonicity #81 #151]: #153
+#157 := [monotonicity #154]: #156
+#160 := [monotonicity #157]: #159
+#163 := [monotonicity #160]: #162
+#166 := [quant-intro #163]: #165
+#183 := [trans #166 #181]: #182
+#140 := [asserted]: #37
+#184 := [mp #140 #183]: #179
+#291 := [mp~ #184 #275]: #179
+#341 := [mp #291 #340]: #338
+#372 := [mp #341 #371]: #369
+#856 := [mp #372 #855]: #851
+#676 := (not #851)
+#678 := (or #676 #838)
+#430 := (* -1::int 1::int)
+#514 := (* -1::int 0::int)
+#515 := (mod #514 #430)
+#516 := (+ #54 #515)
+#507 := (= #516 0::int)
+#518 := (mod 0::int 1::int)
+#519 := (* -1::int #518)
+#520 := (+ #54 #519)
+#517 := (= #520 0::int)
+#521 := (<= 1::int 0::int)
+#500 := (<= 0::int 0::int)
+#835 := (or #500 #521)
+#837 := (not #835)
+#494 := (>= 0::int 0::int)
+#624 := (or #521 #494)
+#831 := (not #624)
+#505 := (or #831 #837)
+#506 := (ite #505 #517 #507)
+#839 := (= 0::int 0::int)
+#840 := (ite #839 #838 #506)
+#841 := (= 0::int #54)
+#836 := (= 1::int 0::int)
+#842 := (ite #836 #841 #840)
+#679 := (or #676 #842)
+#680 := (iff #679 #678)
+#682 := (iff #678 #678)
+#683 := [rewrite]: #682
+#776 := (iff #842 #838)
+#625 := (ite false #838 #838)
+#780 := (iff #625 #838)
+#782 := [rewrite]: #780
+#772 := (iff #842 #625)
+#775 := (iff #840 #838)
+#1 := true
+#784 := (ite true #838 #838)
+#668 := (iff #784 #838)
+#627 := [rewrite]: #668
+#666 := (iff #840 #784)
+#783 := (iff #506 #838)
+#626 := (iff #506 #625)
+#794 := (iff #507 #838)
+#793 := (= #516 #54)
+#809 := (+ #54 0::int)
+#800 := (= #809 #54)
+#795 := [rewrite]: #800
+#786 := (= #516 #809)
+#791 := (= #515 0::int)
+#645 := (mod 0::int -1::int)
+#789 := (= #645 0::int)
+#790 := [rewrite]: #789
+#646 := (= #515 #645)
+#803 := (= #430 -1::int)
+#644 := [rewrite]: #803
+#522 := (= #514 0::int)
+#804 := [rewrite]: #522
+#788 := [monotonicity #804 #644]: #646
+#785 := [trans #788 #790]: #791
+#792 := [monotonicity #785]: #786
+#787 := [trans #792 #795]: #793
+#623 := [monotonicity #787]: #794
+#802 := (iff #517 #838)
+#796 := (= #520 #54)
+#798 := (= #520 #809)
+#808 := (= #519 0::int)
+#806 := (= #519 #514)
+#527 := (= #518 0::int)
+#528 := [rewrite]: #527
+#807 := [monotonicity #528]: #806
+#805 := [trans #807 #804]: #808
+#799 := [monotonicity #805]: #798
+#801 := [trans #799 #795]: #796
+#797 := [monotonicity #801]: #802
+#525 := (iff #505 false)
+#536 := (or false false)
+#811 := (iff #536 false)
+#815 := [rewrite]: #811
+#810 := (iff #505 #536)
+#813 := (iff #837 false)
+#819 := (not true)
+#826 := (iff #819 false)
+#828 := [rewrite]: #826
+#436 := (iff #837 #819)
+#541 := (iff #835 true)
+#830 := (or true false)
+#539 := (iff #830 true)
+#540 := [rewrite]: #539
+#816 := (iff #835 #830)
+#477 := (iff #521 false)
+#818 := [rewrite]: #477
+#829 := (iff #500 true)
+#827 := [rewrite]: #829
+#817 := [monotonicity #827 #818]: #816
+#542 := [trans #817 #540]: #541
+#812 := [monotonicity #542]: #436
+#535 := [trans #812 #828]: #813
+#468 := (iff #831 false)
+#825 := (iff #831 #819)
+#823 := (iff #624 true)
+#483 := (or false true)
+#821 := (iff #483 true)
+#822 := [rewrite]: #821
+#484 := (iff #624 #483)
+#481 := (iff #494 true)
+#482 := [rewrite]: #481
+#820 := [monotonicity #818 #482]: #484
+#824 := [trans #820 #822]: #823
+#463 := [monotonicity #824]: #825
+#469 := [trans #463 #828]: #468
+#814 := [monotonicity #469 #535]: #810
+#526 := [trans #814 #815]: #525
+#779 := [monotonicity #526 #797 #623]: #626
+#781 := [trans #779 #782]: #783
+#493 := (iff #839 true)
+#834 := [rewrite]: #493
+#667 := [monotonicity #834 #781]: #666
+#677 := [trans #667 #627]: #775
+#497 := (iff #841 #838)
+#833 := [rewrite]: #497
+#832 := (iff #836 false)
+#492 := [rewrite]: #832
+#773 := [monotonicity #492 #833 #677]: #772
+#661 := [trans #773 #782]: #776
+#681 := [monotonicity #661]: #680
+#684 := [trans #681 #683]: #680
+#672 := [quant-inst]: #679
+#777 := [mp #672 #684]: #678
+#712 := [unit-resolution #777 #856]: #838
+#708 := [monotonicity #712]: #57
+#58 := (not #57)
+#270 := [asserted]: #58
+[unit-resolution #270 #708]: false
+unsat
+0ed8143194dfb52577bab03cbe24b15165bf7f58 302 0
+#2 := false
+decl f5 :: (-> int S2)
+#11 := 0::int
+#56 := (f5 0::int)
+decl f4 :: (-> int int int)
+#53 := 1::int
+#54 := (f4 1::int 1::int)
+#55 := (f5 #54)
+#57 := (= #55 #56)
+#505 := (= #54 0::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#850 := (pattern #29)
+#82 := -1::int
+#86 := (* -1::int #9)
+#83 := (* -1::int #8)
+#141 := (mod #83 #86)
+#362 := (+ #29 #141)
+#363 := (= #362 0::int)
+#30 := (mod #8 #9)
+#359 := (* -1::int #30)
+#360 := (+ #29 #359)
+#361 := (= #360 0::int)
+#108 := (<= #9 0::int)
+#104 := (<= #8 0::int)
+#301 := (or #104 #108)
+#302 := (not #301)
+#115 := (>= #8 0::int)
+#284 := (or #108 #115)
+#285 := (not #284)
+#308 := (or #285 #302)
+#364 := (ite #308 #361 #363)
+#358 := (= #29 0::int)
+#12 := (= #8 0::int)
+#365 := (ite #12 #358 #364)
+#357 := (= #8 #29)
+#13 := (= #9 0::int)
+#366 := (ite #13 #357 #365)
+#851 := (forall (vars (?v0 int) (?v1 int)) (:pat #850) #366)
+#369 := (forall (vars (?v0 int) (?v1 int)) #366)
+#854 := (iff #369 #851)
+#852 := (iff #366 #366)
+#853 := [refl]: #852
+#855 := [quant-intro #853]: #854
+#147 := (* -1::int #141)
+#326 := (ite #308 #30 #147)
+#329 := (ite #12 0::int #326)
+#332 := (ite #13 #8 #329)
+#335 := (= #29 #332)
+#338 := (forall (vars (?v0 int) (?v1 int)) #335)
+#370 := (iff #338 #369)
+#367 := (iff #335 #366)
+#368 := [rewrite]: #367
+#371 := [quant-intro #368]: #370
+#116 := (not #115)
+#109 := (not #108)
+#119 := (and #109 #116)
+#105 := (not #104)
+#112 := (and #105 #109)
+#122 := (or #112 #119)
+#167 := (ite #122 #30 #147)
+#170 := (ite #12 0::int #167)
+#173 := (ite #13 #8 #170)
+#176 := (= #29 #173)
+#179 := (forall (vars (?v0 int) (?v1 int)) #176)
+#339 := (iff #179 #338)
+#336 := (iff #176 #335)
+#333 := (= #173 #332)
+#330 := (= #170 #329)
+#327 := (= #167 #326)
+#311 := (iff #122 #308)
+#305 := (or #302 #285)
+#309 := (iff #305 #308)
+#310 := [rewrite]: #309
+#306 := (iff #122 #305)
+#303 := (iff #119 #285)
+#304 := [rewrite]: #303
+#282 := (iff #112 #302)
+#283 := [rewrite]: #282
+#307 := [monotonicity #283 #304]: #306
+#312 := [trans #307 #310]: #311
+#328 := [monotonicity #312]: #327
+#331 := [monotonicity #328]: #330
+#334 := [monotonicity #331]: #333
+#337 := [monotonicity #334]: #336
+#340 := [quant-intro #337]: #339
+#274 := (~ #179 #179)
+#271 := (~ #176 #176)
+#290 := [refl]: #271
+#275 := [nnf-pos #290]: #274
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#182 := (iff #37 #179)
+#76 := (and #16 #18)
+#79 := (or #17 #76)
+#152 := (ite #79 #30 #147)
+#155 := (ite #12 0::int #152)
+#158 := (ite #13 #8 #155)
+#161 := (= #29 #158)
+#164 := (forall (vars (?v0 int) (?v1 int)) #161)
+#180 := (iff #164 #179)
+#177 := (iff #161 #176)
+#174 := (= #158 #173)
+#171 := (= #155 #170)
+#168 := (= #152 #167)
+#123 := (iff #79 #122)
+#120 := (iff #76 #119)
+#117 := (iff #18 #116)
+#118 := [rewrite]: #117
+#110 := (iff #16 #109)
+#111 := [rewrite]: #110
+#121 := [monotonicity #111 #118]: #120
+#113 := (iff #17 #112)
+#106 := (iff #15 #105)
+#107 := [rewrite]: #106
+#114 := [monotonicity #107 #111]: #113
+#124 := [monotonicity #114 #121]: #123
+#169 := [monotonicity #124]: #168
+#172 := [monotonicity #169]: #171
+#175 := [monotonicity #172]: #174
+#178 := [monotonicity #175]: #177
+#181 := [quant-intro #178]: #180
+#165 := (iff #37 #164)
+#162 := (iff #36 #161)
+#159 := (= #35 #158)
+#156 := (= #34 #155)
+#153 := (= #33 #152)
+#150 := (= #32 #147)
+#144 := (- #141)
+#148 := (= #144 #147)
+#149 := [rewrite]: #148
+#145 := (= #32 #144)
+#142 := (= #31 #141)
+#87 := (= #23 #86)
+#88 := [rewrite]: #87
+#84 := (= #22 #83)
+#85 := [rewrite]: #84
+#143 := [monotonicity #85 #88]: #142
+#146 := [monotonicity #143]: #145
+#151 := [trans #146 #149]: #150
+#80 := (iff #20 #79)
+#77 := (iff #19 #76)
+#78 := [rewrite]: #77
+#81 := [monotonicity #78]: #80
+#154 := [monotonicity #81 #151]: #153
+#157 := [monotonicity #154]: #156
+#160 := [monotonicity #157]: #159
+#163 := [monotonicity #160]: #162
+#166 := [quant-intro #163]: #165
+#183 := [trans #166 #181]: #182
+#140 := [asserted]: #37
+#184 := [mp #140 #183]: #179
+#291 := [mp~ #184 #275]: #179
+#341 := [mp #291 #340]: #338
+#372 := [mp #341 #371]: #369
+#856 := [mp #372 #855]: #851
+#776 := (not #851)
+#661 := (or #776 #505)
+#430 := (* -1::int 1::int)
+#514 := (mod #430 #430)
+#515 := (+ #54 #514)
+#516 := (= #515 0::int)
+#507 := (mod 1::int 1::int)
+#518 := (* -1::int #507)
+#519 := (+ #54 #518)
+#520 := (= #519 0::int)
+#517 := (<= 1::int 0::int)
+#521 := (or #517 #517)
+#500 := (not #521)
+#835 := (>= 1::int 0::int)
+#837 := (or #517 #835)
+#494 := (not #837)
+#624 := (or #494 #500)
+#831 := (ite #624 #520 #516)
+#506 := (= 1::int 0::int)
+#838 := (ite #506 #505 #831)
+#839 := (= 1::int #54)
+#840 := (ite #506 #839 #838)
+#676 := (or #776 #840)
+#679 := (iff #676 #661)
+#680 := (iff #661 #661)
+#681 := [rewrite]: #680
+#772 := (iff #840 #505)
+#832 := (= #54 1::int)
+#667 := (ite false #832 #505)
+#775 := (iff #667 #505)
+#677 := [rewrite]: #775
+#668 := (iff #840 #667)
+#784 := (iff #838 #505)
+#779 := (ite false #505 #505)
+#783 := (iff #779 #505)
+#781 := [rewrite]: #783
+#780 := (iff #838 #779)
+#625 := (iff #831 #505)
+#1 := true
+#792 := (ite true #505 #505)
+#794 := (iff #792 #505)
+#623 := [rewrite]: #794
+#793 := (iff #831 #792)
+#785 := (iff #516 #505)
+#790 := (= #515 #54)
+#807 := (+ #54 0::int)
+#808 := (= #807 #54)
+#805 := [rewrite]: #808
+#788 := (= #515 #807)
+#645 := (= #514 0::int)
+#801 := (mod -1::int -1::int)
+#803 := (= #801 0::int)
+#644 := [rewrite]: #803
+#802 := (= #514 #801)
+#795 := (= #430 -1::int)
+#796 := [rewrite]: #795
+#797 := [monotonicity #796 #796]: #802
+#646 := [trans #797 #644]: #645
+#789 := [monotonicity #646]: #788
+#791 := [trans #789 #805]: #790
+#786 := [monotonicity #791]: #785
+#799 := (iff #520 #505)
+#809 := (= #519 #54)
+#522 := (= #519 #807)
+#528 := (= #518 0::int)
+#811 := (* -1::int 0::int)
+#526 := (= #811 0::int)
+#527 := [rewrite]: #526
+#815 := (= #518 #811)
+#810 := (= #507 0::int)
+#814 := [rewrite]: #810
+#525 := [monotonicity #814]: #815
+#806 := [trans #525 #527]: #528
+#804 := [monotonicity #806]: #522
+#798 := [trans #804 #805]: #809
+#800 := [monotonicity #798]: #799
+#535 := (iff #624 true)
+#477 := (or false true)
+#482 := (iff #477 true)
+#483 := [rewrite]: #482
+#812 := (iff #624 #477)
+#542 := (iff #500 true)
+#816 := (not false)
+#540 := (iff #816 true)
+#541 := [rewrite]: #540
+#817 := (iff #500 #816)
+#827 := (iff #521 false)
+#826 := (or false false)
+#469 := (iff #826 false)
+#829 := [rewrite]: #469
+#828 := (iff #521 #826)
+#497 := (iff #517 false)
+#833 := [rewrite]: #497
+#468 := [monotonicity #833 #833]: #828
+#830 := [trans #468 #829]: #827
+#539 := [monotonicity #830]: #817
+#436 := [trans #539 #541]: #542
+#825 := (iff #494 false)
+#821 := (not true)
+#824 := (iff #821 false)
+#819 := [rewrite]: #824
+#822 := (iff #494 #821)
+#484 := (iff #837 true)
+#818 := (iff #837 #477)
+#493 := (iff #835 true)
+#834 := [rewrite]: #493
+#481 := [monotonicity #833 #834]: #818
+#820 := [trans #481 #483]: #484
+#823 := [monotonicity #820]: #822
+#463 := [trans #823 #819]: #825
+#813 := [monotonicity #463 #436]: #812
+#536 := [trans #813 #483]: #535
+#787 := [monotonicity #536 #800 #786]: #793
+#626 := [trans #787 #623]: #625
+#841 := (iff #506 false)
+#836 := [rewrite]: #841
+#782 := [monotonicity #836 #626]: #780
+#666 := [trans #782 #781]: #784
+#842 := (iff #839 #832)
+#492 := [rewrite]: #842
+#627 := [monotonicity #836 #492 #666]: #668
+#773 := [trans #627 #677]: #772
+#672 := [monotonicity #773]: #679
+#682 := [trans #672 #681]: #679
+#678 := [quant-inst]: #676
+#683 := [mp #678 #682]: #661
+#703 := [unit-resolution #683 #856]: #505
+#699 := [monotonicity #703]: #57
+#58 := (not #57)
+#270 := [asserted]: #58
+[unit-resolution #270 #699]: false
+unsat
+fcd87864693d4ad3c0baf637d840e1f36b070f98 313 0
+#2 := false
+decl f5 :: (-> int S2)
+#11 := 0::int
+#57 := (f5 0::int)
+decl f4 :: (-> int int int)
+#54 := 1::int
+#53 := 3::int
+#55 := (f4 3::int 1::int)
+#56 := (f5 #55)
+#58 := (= #56 #57)
+#839 := (= #55 0::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#851 := (pattern #29)
+#83 := -1::int
+#87 := (* -1::int #9)
+#84 := (* -1::int #8)
+#142 := (mod #84 #87)
+#363 := (+ #29 #142)
+#364 := (= #363 0::int)
+#30 := (mod #8 #9)
+#360 := (* -1::int #30)
+#361 := (+ #29 #360)
+#362 := (= #361 0::int)
+#109 := (<= #9 0::int)
+#105 := (<= #8 0::int)
+#302 := (or #105 #109)
+#303 := (not #302)
+#116 := (>= #8 0::int)
+#285 := (or #109 #116)
+#286 := (not #285)
+#309 := (or #286 #303)
+#365 := (ite #309 #362 #364)
+#359 := (= #29 0::int)
+#12 := (= #8 0::int)
+#366 := (ite #12 #359 #365)
+#358 := (= #8 #29)
+#13 := (= #9 0::int)
+#367 := (ite #13 #358 #366)
+#852 := (forall (vars (?v0 int) (?v1 int)) (:pat #851) #367)
+#370 := (forall (vars (?v0 int) (?v1 int)) #367)
+#855 := (iff #370 #852)
+#853 := (iff #367 #367)
+#854 := [refl]: #853
+#856 := [quant-intro #854]: #855
+#148 := (* -1::int #142)
+#327 := (ite #309 #30 #148)
+#330 := (ite #12 0::int #327)
+#333 := (ite #13 #8 #330)
+#336 := (= #29 #333)
+#339 := (forall (vars (?v0 int) (?v1 int)) #336)
+#371 := (iff #339 #370)
+#368 := (iff #336 #367)
+#369 := [rewrite]: #368
+#372 := [quant-intro #369]: #371
+#117 := (not #116)
+#110 := (not #109)
+#120 := (and #110 #117)
+#106 := (not #105)
+#113 := (and #106 #110)
+#123 := (or #113 #120)
+#168 := (ite #123 #30 #148)
+#171 := (ite #12 0::int #168)
+#174 := (ite #13 #8 #171)
+#177 := (= #29 #174)
+#180 := (forall (vars (?v0 int) (?v1 int)) #177)
+#340 := (iff #180 #339)
+#337 := (iff #177 #336)
+#334 := (= #174 #333)
+#331 := (= #171 #330)
+#328 := (= #168 #327)
+#312 := (iff #123 #309)
+#306 := (or #303 #286)
+#310 := (iff #306 #309)
+#311 := [rewrite]: #310
+#307 := (iff #123 #306)
+#304 := (iff #120 #286)
+#305 := [rewrite]: #304
+#283 := (iff #113 #303)
+#284 := [rewrite]: #283
+#308 := [monotonicity #284 #305]: #307
+#313 := [trans #308 #311]: #312
+#329 := [monotonicity #313]: #328
+#332 := [monotonicity #329]: #331
+#335 := [monotonicity #332]: #334
+#338 := [monotonicity #335]: #337
+#341 := [quant-intro #338]: #340
+#275 := (~ #180 #180)
+#272 := (~ #177 #177)
+#291 := [refl]: #272
+#276 := [nnf-pos #291]: #275
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#183 := (iff #37 #180)
+#77 := (and #16 #18)
+#80 := (or #17 #77)
+#153 := (ite #80 #30 #148)
+#156 := (ite #12 0::int #153)
+#159 := (ite #13 #8 #156)
+#162 := (= #29 #159)
+#165 := (forall (vars (?v0 int) (?v1 int)) #162)
+#181 := (iff #165 #180)
+#178 := (iff #162 #177)
+#175 := (= #159 #174)
+#172 := (= #156 #171)
+#169 := (= #153 #168)
+#124 := (iff #80 #123)
+#121 := (iff #77 #120)
+#118 := (iff #18 #117)
+#119 := [rewrite]: #118
+#111 := (iff #16 #110)
+#112 := [rewrite]: #111
+#122 := [monotonicity #112 #119]: #121
+#114 := (iff #17 #113)
+#107 := (iff #15 #106)
+#108 := [rewrite]: #107
+#115 := [monotonicity #108 #112]: #114
+#125 := [monotonicity #115 #122]: #124
+#170 := [monotonicity #125]: #169
+#173 := [monotonicity #170]: #172
+#176 := [monotonicity #173]: #175
+#179 := [monotonicity #176]: #178
+#182 := [quant-intro #179]: #181
+#166 := (iff #37 #165)
+#163 := (iff #36 #162)
+#160 := (= #35 #159)
+#157 := (= #34 #156)
+#154 := (= #33 #153)
+#151 := (= #32 #148)
+#145 := (- #142)
+#149 := (= #145 #148)
+#150 := [rewrite]: #149
+#146 := (= #32 #145)
+#143 := (= #31 #142)
+#88 := (= #23 #87)
+#89 := [rewrite]: #88
+#85 := (= #22 #84)
+#86 := [rewrite]: #85
+#144 := [monotonicity #86 #89]: #143
+#147 := [monotonicity #144]: #146
+#152 := [trans #147 #150]: #151
+#81 := (iff #20 #80)
+#78 := (iff #19 #77)
+#79 := [rewrite]: #78
+#82 := [monotonicity #79]: #81
+#155 := [monotonicity #82 #152]: #154
+#158 := [monotonicity #155]: #157
+#161 := [monotonicity #158]: #160
+#164 := [monotonicity #161]: #163
+#167 := [quant-intro #164]: #166
+#184 := [trans #167 #182]: #183
+#141 := [asserted]: #37
+#185 := [mp #141 #184]: #180
+#292 := [mp~ #185 #276]: #180
+#342 := [mp #292 #341]: #339
+#373 := [mp #342 #372]: #370
+#857 := [mp #373 #856]: #852
+#685 := (not #852)
+#778 := (or #685 #839)
+#431 := (* -1::int 1::int)
+#515 := (* -1::int 3::int)
+#516 := (mod #515 #431)
+#517 := (+ #55 #516)
+#508 := (= #517 0::int)
+#519 := (mod 3::int 1::int)
+#520 := (* -1::int #519)
+#521 := (+ #55 #520)
+#518 := (= #521 0::int)
+#522 := (<= 1::int 0::int)
+#501 := (<= 3::int 0::int)
+#836 := (or #501 #522)
+#838 := (not #836)
+#495 := (>= 3::int 0::int)
+#625 := (or #522 #495)
+#832 := (not #625)
+#506 := (or #832 #838)
+#507 := (ite #506 #518 #508)
+#840 := (= 3::int 0::int)
+#841 := (ite #840 #839 #507)
+#842 := (= 3::int #55)
+#837 := (= 1::int 0::int)
+#843 := (ite #837 #842 #841)
+#775 := (or #685 #843)
+#766 := (iff #775 #778)
+#760 := (iff #778 #778)
+#757 := [rewrite]: #760
+#683 := (iff #843 #839)
+#834 := (= #55 3::int)
+#679 := (ite false #834 #839)
+#681 := (iff #679 #839)
+#682 := [rewrite]: #681
+#680 := (iff #843 #679)
+#662 := (iff #841 #839)
+#776 := (ite false #839 #839)
+#774 := (iff #776 #839)
+#777 := [rewrite]: #774
+#678 := (iff #841 #776)
+#669 := (iff #507 #839)
+#1 := true
+#784 := (ite true #839 #839)
+#667 := (iff #784 #839)
+#668 := [rewrite]: #667
+#782 := (iff #507 #784)
+#781 := (iff #508 #839)
+#627 := (= #517 #55)
+#800 := (+ #55 0::int)
+#797 := (= #800 #55)
+#802 := [rewrite]: #797
+#624 := (= #517 #800)
+#788 := (= #516 0::int)
+#646 := -3::int
+#792 := (mod -3::int -1::int)
+#793 := (= #792 0::int)
+#794 := [rewrite]: #793
+#786 := (= #516 #792)
+#790 := (= #431 -1::int)
+#791 := [rewrite]: #790
+#647 := (= #515 -3::int)
+#789 := [rewrite]: #647
+#787 := [monotonicity #789 #791]: #786
+#795 := [trans #787 #794]: #788
+#626 := [monotonicity #795]: #624
+#780 := [trans #626 #802]: #627
+#783 := [monotonicity #780]: #781
+#804 := (iff #518 #839)
+#803 := (= #521 #55)
+#801 := (= #521 #800)
+#810 := (= #520 0::int)
+#808 := (* -1::int 0::int)
+#809 := (= #808 0::int)
+#806 := [rewrite]: #809
+#523 := (= #520 #808)
+#529 := (= #519 0::int)
+#807 := [rewrite]: #529
+#805 := [monotonicity #807]: #523
+#799 := [trans #805 #806]: #810
+#796 := [monotonicity #799]: #801
+#798 := [trans #796 #802]: #803
+#645 := [monotonicity #798]: #804
+#527 := (iff #506 true)
+#485 := (or false true)
+#823 := (iff #485 true)
+#824 := [rewrite]: #823
+#816 := (iff #506 #485)
+#815 := (iff #838 true)
+#813 := (not false)
+#537 := (iff #813 true)
+#811 := [rewrite]: #537
+#814 := (iff #838 #813)
+#543 := (iff #836 false)
+#817 := (or false false)
+#541 := (iff #817 false)
+#542 := [rewrite]: #541
+#818 := (iff #836 #817)
+#819 := (iff #522 false)
+#482 := [rewrite]: #819
+#828 := (iff #501 false)
+#831 := [rewrite]: #828
+#540 := [monotonicity #831 #482]: #818
+#437 := [trans #540 #542]: #543
+#536 := [monotonicity #437]: #814
+#812 := [trans #536 #811]: #815
+#470 := (iff #832 false)
+#826 := (not true)
+#829 := (iff #826 false)
+#469 := [rewrite]: #829
+#464 := (iff #832 #826)
+#825 := (iff #625 true)
+#821 := (iff #625 #485)
+#483 := (iff #495 true)
+#484 := [rewrite]: #483
+#822 := [monotonicity #482 #484]: #821
+#820 := [trans #822 #824]: #825
+#827 := [monotonicity #820]: #464
+#830 := [trans #827 #469]: #470
+#526 := [monotonicity #830 #812]: #816
+#528 := [trans #526 #824]: #527
+#785 := [monotonicity #528 #645 #783]: #782
+#628 := [trans #785 #668]: #669
+#835 := (iff #840 false)
+#478 := [rewrite]: #835
+#773 := [monotonicity #478 #628]: #678
+#677 := [trans #773 #777]: #662
+#498 := (iff #842 #834)
+#494 := [rewrite]: #498
+#833 := (iff #837 false)
+#493 := [rewrite]: #833
+#673 := [monotonicity #493 #494 #677]: #680
+#684 := [trans #673 #682]: #683
+#768 := [monotonicity #684]: #766
+#759 := [trans #768 #757]: #766
+#779 := [quant-inst]: #775
+#769 := [mp #779 #759]: #778
+#701 := [unit-resolution #769 #857]: #839
+#702 := [monotonicity #701]: #58
+#59 := (not #58)
+#271 := [asserted]: #59
+[unit-resolution #271 #702]: false
+unsat
+5011f4c55d83995f3652179dc30dfbbb91f701d2 447 0
+#2 := false
+#11 := 0::int
+decl f6 :: (-> S2 int)
+decl f7 :: S2
+#53 := f7
+#54 := (f6 f7)
+#496 := (>= #54 0::int)
+decl f5 :: (-> int S2)
+#762 := (f5 #54)
+#708 := (f6 #762)
+#704 := (= #708 0::int)
+#655 := (not #704)
+#841 := (= #54 0::int)
+#674 := (not #841)
+#656 := (iff #674 #655)
+#653 := (iff #841 #704)
+#651 := (iff #704 #841)
+#649 := (= #708 #54)
+#643 := (= #762 f7)
+#763 := (= f7 #762)
+#38 := (:var 0 S2)
+#39 := (f6 #38)
+#859 := (pattern #39)
+#40 := (f5 #39)
+#188 := (= #38 #40)
+#860 := (forall (vars (?v0 S2)) (:pat #859) #188)
+#191 := (forall (vars (?v0 S2)) #188)
+#861 := (iff #191 #860)
+#863 := (iff #860 #860)
+#864 := [rewrite]: #863
+#862 := [rewrite]: #861
+#865 := [trans #862 #864]: #861
+#278 := (~ #191 #191)
+#294 := (~ #188 #188)
+#295 := [refl]: #294
+#279 := [nnf-pos #295]: #278
+#41 := (= #40 #38)
+#42 := (forall (vars (?v0 S2)) #41)
+#192 := (iff #42 #191)
+#189 := (iff #41 #188)
+#190 := [rewrite]: #189
+#193 := [quant-intro #190]: #192
+#187 := [asserted]: #42
+#196 := [mp #187 #193]: #191
+#296 := [mp~ #196 #279]: #191
+#866 := [mp #296 #865]: #860
+#759 := (not #860)
+#766 := (or #759 #763)
+#750 := [quant-inst]: #766
+#688 := [unit-resolution #750 #866]: #763
+#644 := [symm #688]: #643
+#650 := [monotonicity #644]: #649
+#652 := [monotonicity #650]: #651
+#654 := [symm #652]: #653
+#657 := [monotonicity #654]: #656
+#486 := (not #496)
+#673 := [hypothesis]: #486
+#677 := (or #674 #496)
+#687 := [th-lemma]: #677
+#667 := [unit-resolution #687 #673]: #674
+#658 := [mp #667 #657]: #655
+#689 := (or #496 #704)
+#9 := (:var 0 int)
+#44 := (f5 #9)
+#867 := (pattern #44)
+#211 := (>= #9 0::int)
+#45 := (f6 #44)
+#50 := (= #45 0::int)
+#261 := (or #50 #211)
+#874 := (forall (vars (?v0 int)) (:pat #867) #261)
+#266 := (forall (vars (?v0 int)) #261)
+#877 := (iff #266 #874)
+#875 := (iff #261 #261)
+#876 := [refl]: #875
+#878 := [quant-intro #876]: #877
+#282 := (~ #266 #266)
+#300 := (~ #261 #261)
+#301 := [refl]: #300
+#283 := [nnf-pos #301]: #282
+#49 := (< #9 0::int)
+#51 := (implies #49 #50)
+#52 := (forall (vars (?v0 int)) #51)
+#269 := (iff #52 #266)
+#232 := (= 0::int #45)
+#238 := (not #49)
+#239 := (or #238 #232)
+#244 := (forall (vars (?v0 int)) #239)
+#267 := (iff #244 #266)
+#264 := (iff #239 #261)
+#258 := (or #211 #50)
+#262 := (iff #258 #261)
+#263 := [rewrite]: #262
+#259 := (iff #239 #258)
+#256 := (iff #232 #50)
+#257 := [rewrite]: #256
+#254 := (iff #238 #211)
+#214 := (not #211)
+#249 := (not #214)
+#252 := (iff #249 #211)
+#253 := [rewrite]: #252
+#250 := (iff #238 #249)
+#247 := (iff #49 #214)
+#248 := [rewrite]: #247
+#251 := [monotonicity #248]: #250
+#255 := [trans #251 #253]: #254
+#260 := [monotonicity #255 #257]: #259
+#265 := [trans #260 #263]: #264
+#268 := [quant-intro #265]: #267
+#245 := (iff #52 #244)
+#242 := (iff #51 #239)
+#235 := (implies #49 #232)
+#240 := (iff #235 #239)
+#241 := [rewrite]: #240
+#236 := (iff #51 #235)
+#233 := (iff #50 #232)
+#234 := [rewrite]: #233
+#237 := [monotonicity #234]: #236
+#243 := [trans #237 #241]: #242
+#246 := [quant-intro #243]: #245
+#270 := [trans #246 #268]: #269
+#231 := [asserted]: #52
+#271 := [mp #231 #270]: #266
+#302 := [mp~ #271 #283]: #266
+#879 := [mp #302 #878]: #874
+#729 := (not #874)
+#671 := (or #729 #496 #704)
+#709 := (or #704 #496)
+#695 := (or #729 #709)
+#662 := (iff #695 #671)
+#691 := (or #729 #689)
+#672 := (iff #691 #671)
+#631 := [rewrite]: #672
+#697 := (iff #695 #691)
+#635 := (iff #709 #689)
+#690 := [rewrite]: #635
+#665 := [monotonicity #690]: #697
+#664 := [trans #665 #631]: #662
+#696 := [quant-inst]: #695
+#666 := [mp #696 #664]: #671
+#675 := [unit-resolution #666 #879]: #689
+#676 := [unit-resolution #675 #673]: #704
+#659 := [unit-resolution #676 #658]: false
+#660 := [lemma #659]: #496
+#502 := (<= #54 0::int)
+#830 := (not #502)
+#625 := (or #486 #830 #841)
+#684 := (not #625)
+decl f4 :: (-> int int int)
+#55 := 1::int
+#56 := (f4 #54 1::int)
+#840 := (= #56 0::int)
+#760 := (not #840)
+#58 := (f5 0::int)
+#57 := (f5 #56)
+#59 := (= #57 #58)
+#645 := [hypothesis]: #840
+#661 := [monotonicity #645]: #59
+#60 := (not #59)
+#272 := [asserted]: #60
+#622 := [unit-resolution #272 #661]: false
+#623 := [lemma #622]: #760
+#632 := (or #684 #840)
+#84 := -1::int
+#516 := (* -1::int #54)
+#809 := (mod #516 -1::int)
+#810 := (+ #56 #809)
+#800 := (= #810 0::int)
+#781 := (ite #625 #840 #800)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#852 := (pattern #29)
+#88 := (* -1::int #9)
+#85 := (* -1::int #8)
+#143 := (mod #85 #88)
+#364 := (+ #29 #143)
+#365 := (= #364 0::int)
+#30 := (mod #8 #9)
+#361 := (* -1::int #30)
+#362 := (+ #29 #361)
+#363 := (= #362 0::int)
+#110 := (<= #9 0::int)
+#106 := (<= #8 0::int)
+#303 := (or #106 #110)
+#304 := (not #303)
+#117 := (>= #8 0::int)
+#286 := (or #110 #117)
+#287 := (not #286)
+#310 := (or #287 #304)
+#366 := (ite #310 #363 #365)
+#360 := (= #29 0::int)
+#12 := (= #8 0::int)
+#367 := (ite #12 #360 #366)
+#359 := (= #8 #29)
+#13 := (= #9 0::int)
+#368 := (ite #13 #359 #367)
+#853 := (forall (vars (?v0 int) (?v1 int)) (:pat #852) #368)
+#371 := (forall (vars (?v0 int) (?v1 int)) #368)
+#856 := (iff #371 #853)
+#854 := (iff #368 #368)
+#855 := [refl]: #854
+#857 := [quant-intro #855]: #856
+#149 := (* -1::int #143)
+#328 := (ite #310 #30 #149)
+#331 := (ite #12 0::int #328)
+#334 := (ite #13 #8 #331)
+#337 := (= #29 #334)
+#340 := (forall (vars (?v0 int) (?v1 int)) #337)
+#372 := (iff #340 #371)
+#369 := (iff #337 #368)
+#370 := [rewrite]: #369
+#373 := [quant-intro #370]: #372
+#118 := (not #117)
+#111 := (not #110)
+#121 := (and #111 #118)
+#107 := (not #106)
+#114 := (and #107 #111)
+#124 := (or #114 #121)
+#169 := (ite #124 #30 #149)
+#172 := (ite #12 0::int #169)
+#175 := (ite #13 #8 #172)
+#178 := (= #29 #175)
+#181 := (forall (vars (?v0 int) (?v1 int)) #178)
+#341 := (iff #181 #340)
+#338 := (iff #178 #337)
+#335 := (= #175 #334)
+#332 := (= #172 #331)
+#329 := (= #169 #328)
+#313 := (iff #124 #310)
+#307 := (or #304 #287)
+#311 := (iff #307 #310)
+#312 := [rewrite]: #311
+#308 := (iff #124 #307)
+#305 := (iff #121 #287)
+#306 := [rewrite]: #305
+#284 := (iff #114 #304)
+#285 := [rewrite]: #284
+#309 := [monotonicity #285 #306]: #308
+#314 := [trans #309 #312]: #313
+#330 := [monotonicity #314]: #329
+#333 := [monotonicity #330]: #332
+#336 := [monotonicity #333]: #335
+#339 := [monotonicity #336]: #338
+#342 := [quant-intro #339]: #341
+#276 := (~ #181 #181)
+#273 := (~ #178 #178)
+#292 := [refl]: #273
+#277 := [nnf-pos #292]: #276
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#184 := (iff #37 #181)
+#78 := (and #16 #18)
+#81 := (or #17 #78)
+#154 := (ite #81 #30 #149)
+#157 := (ite #12 0::int #154)
+#160 := (ite #13 #8 #157)
+#163 := (= #29 #160)
+#166 := (forall (vars (?v0 int) (?v1 int)) #163)
+#182 := (iff #166 #181)
+#179 := (iff #163 #178)
+#176 := (= #160 #175)
+#173 := (= #157 #172)
+#170 := (= #154 #169)
+#125 := (iff #81 #124)
+#122 := (iff #78 #121)
+#119 := (iff #18 #118)
+#120 := [rewrite]: #119
+#112 := (iff #16 #111)
+#113 := [rewrite]: #112
+#123 := [monotonicity #113 #120]: #122
+#115 := (iff #17 #114)
+#108 := (iff #15 #107)
+#109 := [rewrite]: #108
+#116 := [monotonicity #109 #113]: #115
+#126 := [monotonicity #116 #123]: #125
+#171 := [monotonicity #126]: #170
+#174 := [monotonicity #171]: #173
+#177 := [monotonicity #174]: #176
+#180 := [monotonicity #177]: #179
+#183 := [quant-intro #180]: #182
+#167 := (iff #37 #166)
+#164 := (iff #36 #163)
+#161 := (= #35 #160)
+#158 := (= #34 #157)
+#155 := (= #33 #154)
+#152 := (= #32 #149)
+#146 := (- #143)
+#150 := (= #146 #149)
+#151 := [rewrite]: #150
+#147 := (= #32 #146)
+#144 := (= #31 #143)
+#89 := (= #23 #88)
+#90 := [rewrite]: #89
+#86 := (= #22 #85)
+#87 := [rewrite]: #86
+#145 := [monotonicity #87 #90]: #144
+#148 := [monotonicity #145]: #147
+#153 := [trans #148 #151]: #152
+#82 := (iff #20 #81)
+#79 := (iff #19 #78)
+#80 := [rewrite]: #79
+#83 := [monotonicity #80]: #82
+#156 := [monotonicity #83 #153]: #155
+#159 := [monotonicity #156]: #158
+#162 := [monotonicity #159]: #161
+#165 := [monotonicity #162]: #164
+#168 := [quant-intro #165]: #167
+#185 := [trans #168 #183]: #184
+#142 := [asserted]: #37
+#186 := [mp #142 #185]: #181
+#293 := [mp~ #186 #277]: #181
+#343 := [mp #293 #342]: #340
+#374 := [mp #343 #373]: #371
+#858 := [mp #374 #857]: #853
+#786 := (not #853)
+#668 := (or #786 #781)
+#432 := (* -1::int 1::int)
+#517 := (mod #516 #432)
+#518 := (+ #56 #517)
+#509 := (= #518 0::int)
+#520 := (mod #54 1::int)
+#521 := (* -1::int #520)
+#522 := (+ #56 #521)
+#519 := (= #522 0::int)
+#523 := (<= 1::int 0::int)
+#837 := (or #502 #523)
+#839 := (not #837)
+#626 := (or #523 #496)
+#833 := (not #626)
+#507 := (or #833 #839)
+#508 := (ite #507 #519 #509)
+#842 := (ite #841 #840 #508)
+#843 := (= #54 #56)
+#838 := (= 1::int 0::int)
+#844 := (ite #838 #843 #842)
+#669 := (or #786 #844)
+#629 := (iff #669 #668)
+#679 := (iff #668 #668)
+#774 := [rewrite]: #679
+#785 := (iff #844 #781)
+#831 := (or #486 #830)
+#646 := (or #831 #841)
+#647 := (ite #646 #840 #800)
+#782 := (iff #647 #781)
+#627 := (iff #646 #625)
+#628 := [rewrite]: #627
+#784 := [monotonicity #628]: #782
+#789 := (iff #844 #647)
+#793 := (ite false #843 #647)
+#794 := (iff #793 #647)
+#795 := [rewrite]: #794
+#787 := (iff #844 #793)
+#791 := (iff #842 #647)
+#797 := (ite #831 #840 #800)
+#804 := (ite #841 #840 #797)
+#648 := (iff #804 #647)
+#790 := [rewrite]: #648
+#799 := (iff #842 #804)
+#798 := (iff #508 #797)
+#801 := (iff #509 #800)
+#807 := (= #518 #810)
+#524 := (= #517 #809)
+#530 := (= #432 -1::int)
+#808 := [rewrite]: #530
+#806 := [monotonicity #808]: #524
+#811 := [monotonicity #806]: #807
+#802 := [monotonicity #811]: #801
+#528 := (iff #519 #840)
+#817 := (= #522 #56)
+#537 := (+ #56 0::int)
+#816 := (= #537 #56)
+#813 := [rewrite]: #816
+#538 := (= #522 #537)
+#814 := (= #521 0::int)
+#541 := (* -1::int 0::int)
+#544 := (= #541 0::int)
+#438 := [rewrite]: #544
+#542 := (= #521 #541)
+#818 := (= #520 0::int)
+#819 := [rewrite]: #818
+#543 := [monotonicity #819]: #542
+#815 := [trans #543 #438]: #814
+#812 := [monotonicity #815]: #538
+#527 := [trans #812 #813]: #817
+#529 := [monotonicity #527]: #528
+#829 := (iff #507 #831)
+#470 := (iff #839 #830)
+#465 := (iff #837 #502)
+#824 := (or #502 false)
+#821 := (iff #824 #502)
+#827 := [rewrite]: #821
+#825 := (iff #837 #824)
+#499 := (iff #523 false)
+#835 := [rewrite]: #499
+#826 := [monotonicity #835]: #825
+#828 := [trans #826 #827]: #465
+#471 := [monotonicity #828]: #470
+#822 := (iff #833 #486)
+#484 := (iff #626 #496)
+#495 := (or false #496)
+#820 := (iff #495 #496)
+#483 := [rewrite]: #820
+#836 := (iff #626 #495)
+#479 := [monotonicity #835]: #836
+#485 := [trans #479 #483]: #484
+#823 := [monotonicity #485]: #822
+#832 := [monotonicity #823 #471]: #829
+#803 := [monotonicity #832 #529 #802]: #798
+#805 := [monotonicity #803]: #799
+#792 := [trans #805 #790]: #791
+#834 := (iff #838 false)
+#494 := [rewrite]: #834
+#788 := [monotonicity #494 #792]: #787
+#796 := [trans #788 #795]: #789
+#783 := [trans #796 #784]: #785
+#777 := [monotonicity #783]: #629
+#775 := [trans #777 #774]: #629
+#670 := [quant-inst]: #669
+#778 := [mp #670 #775]: #668
+#630 := [unit-resolution #778 #858]: #781
+#780 := (not #781)
+#767 := (or #780 #684 #840)
+#769 := [def-axiom]: #767
+#633 := [unit-resolution #769 #630]: #632
+#634 := [unit-resolution #633 #623]: #684
+#680 := (or #625 #502)
+#681 := [def-axiom]: #680
+#636 := [unit-resolution #681 #634]: #502
+#682 := (or #625 #674)
+#683 := [def-axiom]: #682
+#637 := [unit-resolution #683 #634]: #674
+#638 := (or #841 #830 #486)
+#639 := [th-lemma]: #638
+[unit-resolution #639 #637 #636 #660]: false
+unsat
+5484d7e02ec48eba208dcf57cc9c9450f3e4ca10 305 0
+#2 := false
+decl f5 :: (-> int S2)
+#11 := 0::int
+#56 := (f5 0::int)
+decl f4 :: (-> int int int)
+#53 := 3::int
+#54 := (f4 0::int 3::int)
+#55 := (f5 #54)
+#57 := (= #55 #56)
+#507 := (= #54 0::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#851 := (pattern #29)
+#82 := -1::int
+#86 := (* -1::int #9)
+#83 := (* -1::int #8)
+#141 := (mod #83 #86)
+#362 := (+ #29 #141)
+#363 := (= #362 0::int)
+#30 := (mod #8 #9)
+#359 := (* -1::int #30)
+#360 := (+ #29 #359)
+#361 := (= #360 0::int)
+#108 := (<= #9 0::int)
+#104 := (<= #8 0::int)
+#301 := (or #104 #108)
+#302 := (not #301)
+#115 := (>= #8 0::int)
+#284 := (or #108 #115)
+#285 := (not #284)
+#308 := (or #285 #302)
+#364 := (ite #308 #361 #363)
+#358 := (= #29 0::int)
+#12 := (= #8 0::int)
+#365 := (ite #12 #358 #364)
+#357 := (= #8 #29)
+#13 := (= #9 0::int)
+#366 := (ite #13 #357 #365)
+#852 := (forall (vars (?v0 int) (?v1 int)) (:pat #851) #366)
+#369 := (forall (vars (?v0 int) (?v1 int)) #366)
+#855 := (iff #369 #852)
+#853 := (iff #366 #366)
+#854 := [refl]: #853
+#856 := [quant-intro #854]: #855
+#147 := (* -1::int #141)
+#326 := (ite #308 #30 #147)
+#329 := (ite #12 0::int #326)
+#332 := (ite #13 #8 #329)
+#335 := (= #29 #332)
+#338 := (forall (vars (?v0 int) (?v1 int)) #335)
+#370 := (iff #338 #369)
+#367 := (iff #335 #366)
+#368 := [rewrite]: #367
+#371 := [quant-intro #368]: #370
+#116 := (not #115)
+#109 := (not #108)
+#119 := (and #109 #116)
+#105 := (not #104)
+#112 := (and #105 #109)
+#122 := (or #112 #119)
+#167 := (ite #122 #30 #147)
+#170 := (ite #12 0::int #167)
+#173 := (ite #13 #8 #170)
+#176 := (= #29 #173)
+#179 := (forall (vars (?v0 int) (?v1 int)) #176)
+#339 := (iff #179 #338)
+#336 := (iff #176 #335)
+#333 := (= #173 #332)
+#330 := (= #170 #329)
+#327 := (= #167 #326)
+#311 := (iff #122 #308)
+#305 := (or #302 #285)
+#309 := (iff #305 #308)
+#310 := [rewrite]: #309
+#306 := (iff #122 #305)
+#303 := (iff #119 #285)
+#304 := [rewrite]: #303
+#282 := (iff #112 #302)
+#283 := [rewrite]: #282
+#307 := [monotonicity #283 #304]: #306
+#312 := [trans #307 #310]: #311
+#328 := [monotonicity #312]: #327
+#331 := [monotonicity #328]: #330
+#334 := [monotonicity #331]: #333
+#337 := [monotonicity #334]: #336
+#340 := [quant-intro #337]: #339
+#274 := (~ #179 #179)
+#271 := (~ #176 #176)
+#290 := [refl]: #271
+#275 := [nnf-pos #290]: #274
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#182 := (iff #37 #179)
+#76 := (and #16 #18)
+#79 := (or #17 #76)
+#152 := (ite #79 #30 #147)
+#155 := (ite #12 0::int #152)
+#158 := (ite #13 #8 #155)
+#161 := (= #29 #158)
+#164 := (forall (vars (?v0 int) (?v1 int)) #161)
+#180 := (iff #164 #179)
+#177 := (iff #161 #176)
+#174 := (= #158 #173)
+#171 := (= #155 #170)
+#168 := (= #152 #167)
+#123 := (iff #79 #122)
+#120 := (iff #76 #119)
+#117 := (iff #18 #116)
+#118 := [rewrite]: #117
+#110 := (iff #16 #109)
+#111 := [rewrite]: #110
+#121 := [monotonicity #111 #118]: #120
+#113 := (iff #17 #112)
+#106 := (iff #15 #105)
+#107 := [rewrite]: #106
+#114 := [monotonicity #107 #111]: #113
+#124 := [monotonicity #114 #121]: #123
+#169 := [monotonicity #124]: #168
+#172 := [monotonicity #169]: #171
+#175 := [monotonicity #172]: #174
+#178 := [monotonicity #175]: #177
+#181 := [quant-intro #178]: #180
+#165 := (iff #37 #164)
+#162 := (iff #36 #161)
+#159 := (= #35 #158)
+#156 := (= #34 #155)
+#153 := (= #33 #152)
+#150 := (= #32 #147)
+#144 := (- #141)
+#148 := (= #144 #147)
+#149 := [rewrite]: #148
+#145 := (= #32 #144)
+#142 := (= #31 #141)
+#87 := (= #23 #86)
+#88 := [rewrite]: #87
+#84 := (= #22 #83)
+#85 := [rewrite]: #84
+#143 := [monotonicity #85 #88]: #142
+#146 := [monotonicity #143]: #145
+#151 := [trans #146 #149]: #150
+#80 := (iff #20 #79)
+#77 := (iff #19 #76)
+#78 := [rewrite]: #77
+#81 := [monotonicity #78]: #80
+#154 := [monotonicity #81 #151]: #153
+#157 := [monotonicity #154]: #156
+#160 := [monotonicity #157]: #159
+#163 := [monotonicity #160]: #162
+#166 := [quant-intro #163]: #165
+#183 := [trans #166 #181]: #182
+#140 := [asserted]: #37
+#184 := [mp #140 #183]: #179
+#291 := [mp~ #184 #275]: #179
+#341 := [mp #291 #340]: #338
+#372 := [mp #341 #371]: #369
+#857 := [mp #372 #856]: #852
+#677 := (not #852)
+#679 := (or #677 #507)
+#430 := (* -1::int 3::int)
+#515 := (* -1::int 0::int)
+#516 := (mod #515 #430)
+#517 := (+ #54 #516)
+#508 := (= #517 0::int)
+#519 := (mod 0::int 3::int)
+#520 := (* -1::int #519)
+#448 := (+ #54 #520)
+#521 := (= #448 0::int)
+#518 := (<= 3::int 0::int)
+#522 := (<= 0::int 0::int)
+#501 := (or #522 #518)
+#836 := (not #501)
+#838 := (>= 0::int 0::int)
+#495 := (or #518 #838)
+#625 := (not #495)
+#832 := (or #625 #836)
+#506 := (ite #832 #521 #508)
+#839 := (= 0::int 0::int)
+#840 := (ite #839 #507 #506)
+#841 := (= 0::int #54)
+#842 := (= 3::int 0::int)
+#837 := (ite #842 #841 #840)
+#680 := (or #677 #837)
+#681 := (iff #680 #679)
+#683 := (iff #679 #679)
+#684 := [rewrite]: #683
+#777 := (iff #837 #507)
+#626 := (ite false #507 #507)
+#781 := (iff #626 #507)
+#783 := [rewrite]: #781
+#773 := (iff #837 #626)
+#776 := (iff #840 #507)
+#1 := true
+#785 := (ite true #507 #507)
+#669 := (iff #785 #507)
+#628 := [rewrite]: #669
+#667 := (iff #840 #785)
+#784 := (iff #506 #507)
+#627 := (iff #506 #626)
+#795 := (iff #508 #507)
+#794 := (= #517 #54)
+#806 := (+ #54 0::int)
+#800 := (= #806 #54)
+#801 := [rewrite]: #800
+#787 := (= #517 #806)
+#792 := (= #516 0::int)
+#798 := -3::int
+#646 := (mod 0::int -3::int)
+#790 := (= #646 0::int)
+#791 := [rewrite]: #790
+#647 := (= #516 #646)
+#804 := (= #430 -3::int)
+#645 := [rewrite]: #804
+#808 := (= #515 0::int)
+#523 := [rewrite]: #808
+#789 := [monotonicity #523 #645]: #647
+#786 := [trans #789 #791]: #792
+#793 := [monotonicity #786]: #787
+#788 := [trans #793 #801]: #794
+#624 := [monotonicity #788]: #795
+#802 := (iff #521 #507)
+#796 := (= #448 #54)
+#810 := (= #448 #806)
+#805 := (= #520 0::int)
+#529 := (= #520 #515)
+#527 := (= #519 0::int)
+#528 := [rewrite]: #527
+#807 := [monotonicity #528]: #529
+#809 := [trans #807 #523]: #805
+#799 := [monotonicity #809]: #810
+#797 := [trans #799 #801]: #796
+#803 := [monotonicity #797]: #802
+#816 := (iff #832 false)
+#536 := (or false false)
+#815 := (iff #536 false)
+#812 := [rewrite]: #815
+#537 := (iff #832 #536)
+#813 := (iff #836 false)
+#825 := (not true)
+#464 := (iff #825 false)
+#827 := [rewrite]: #464
+#543 := (iff #836 #825)
+#541 := (iff #501 true)
+#828 := (or true false)
+#818 := (iff #828 true)
+#540 := [rewrite]: #818
+#831 := (iff #501 #828)
+#835 := (iff #518 false)
+#478 := [rewrite]: #835
+#470 := (iff #522 true)
+#830 := [rewrite]: #470
+#817 := [monotonicity #830 #478]: #831
+#542 := [trans #817 #540]: #541
+#436 := [monotonicity #542]: #543
+#814 := [trans #436 #827]: #813
+#829 := (iff #625 false)
+#820 := (iff #625 #825)
+#823 := (iff #495 true)
+#483 := (or false true)
+#821 := (iff #483 true)
+#822 := [rewrite]: #821
+#484 := (iff #495 #483)
+#819 := (iff #838 true)
+#482 := [rewrite]: #819
+#485 := [monotonicity #478 #482]: #484
+#824 := [trans #485 #822]: #823
+#826 := [monotonicity #824]: #820
+#469 := [trans #826 #827]: #829
+#811 := [monotonicity #469 #814]: #537
+#526 := [trans #811 #812]: #816
+#780 := [monotonicity #526 #803 #624]: #627
+#782 := [trans #780 #783]: #784
+#834 := (iff #839 true)
+#494 := [rewrite]: #834
+#668 := [monotonicity #494 #782]: #667
+#678 := [trans #668 #628]: #776
+#493 := (iff #841 #507)
+#498 := [rewrite]: #493
+#843 := (iff #842 false)
+#833 := [rewrite]: #843
+#774 := [monotonicity #833 #498 #678]: #773
+#662 := [trans #774 #783]: #777
+#682 := [monotonicity #662]: #681
+#685 := [trans #682 #684]: #681
+#673 := [quant-inst]: #680
+#778 := [mp #673 #685]: #679
+#713 := [unit-resolution #778 #857]: #507
+#709 := [monotonicity #713]: #57
+#58 := (not #57)
+#270 := [asserted]: #58
+[unit-resolution #270 #709]: false
+unsat
+5c91ccba5d496066c01fc8eafbef631420f2691e 328 0
+#2 := false
+decl f5 :: (-> int S2)
+#53 := 1::int
+#57 := (f5 1::int)
+decl f4 :: (-> int int int)
+#54 := 3::int
+#55 := (f4 1::int 3::int)
+#56 := (f5 #55)
+#58 := (= #56 #57)
+#834 := (= #55 1::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#851 := (pattern #29)
+#11 := 0::int
+#83 := -1::int
+#87 := (* -1::int #9)
+#84 := (* -1::int #8)
+#142 := (mod #84 #87)
+#363 := (+ #29 #142)
+#364 := (= #363 0::int)
+#30 := (mod #8 #9)
+#360 := (* -1::int #30)
+#361 := (+ #29 #360)
+#362 := (= #361 0::int)
+#109 := (<= #9 0::int)
+#105 := (<= #8 0::int)
+#302 := (or #105 #109)
+#303 := (not #302)
+#116 := (>= #8 0::int)
+#285 := (or #109 #116)
+#286 := (not #285)
+#309 := (or #286 #303)
+#365 := (ite #309 #362 #364)
+#359 := (= #29 0::int)
+#12 := (= #8 0::int)
+#366 := (ite #12 #359 #365)
+#358 := (= #8 #29)
+#13 := (= #9 0::int)
+#367 := (ite #13 #358 #366)
+#852 := (forall (vars (?v0 int) (?v1 int)) (:pat #851) #367)
+#370 := (forall (vars (?v0 int) (?v1 int)) #367)
+#855 := (iff #370 #852)
+#853 := (iff #367 #367)
+#854 := [refl]: #853
+#856 := [quant-intro #854]: #855
+#148 := (* -1::int #142)
+#327 := (ite #309 #30 #148)
+#330 := (ite #12 0::int #327)
+#333 := (ite #13 #8 #330)
+#336 := (= #29 #333)
+#339 := (forall (vars (?v0 int) (?v1 int)) #336)
+#371 := (iff #339 #370)
+#368 := (iff #336 #367)
+#369 := [rewrite]: #368
+#372 := [quant-intro #369]: #371
+#117 := (not #116)
+#110 := (not #109)
+#120 := (and #110 #117)
+#106 := (not #105)
+#113 := (and #106 #110)
+#123 := (or #113 #120)
+#168 := (ite #123 #30 #148)
+#171 := (ite #12 0::int #168)
+#174 := (ite #13 #8 #171)
+#177 := (= #29 #174)
+#180 := (forall (vars (?v0 int) (?v1 int)) #177)
+#340 := (iff #180 #339)
+#337 := (iff #177 #336)
+#334 := (= #174 #333)
+#331 := (= #171 #330)
+#328 := (= #168 #327)
+#312 := (iff #123 #309)
+#306 := (or #303 #286)
+#310 := (iff #306 #309)
+#311 := [rewrite]: #310
+#307 := (iff #123 #306)
+#304 := (iff #120 #286)
+#305 := [rewrite]: #304
+#283 := (iff #113 #303)
+#284 := [rewrite]: #283
+#308 := [monotonicity #284 #305]: #307
+#313 := [trans #308 #311]: #312
+#329 := [monotonicity #313]: #328
+#332 := [monotonicity #329]: #331
+#335 := [monotonicity #332]: #334
+#338 := [monotonicity #335]: #337
+#341 := [quant-intro #338]: #340
+#275 := (~ #180 #180)
+#272 := (~ #177 #177)
+#291 := [refl]: #272
+#276 := [nnf-pos #291]: #275
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#183 := (iff #37 #180)
+#77 := (and #16 #18)
+#80 := (or #17 #77)
+#153 := (ite #80 #30 #148)
+#156 := (ite #12 0::int #153)
+#159 := (ite #13 #8 #156)
+#162 := (= #29 #159)
+#165 := (forall (vars (?v0 int) (?v1 int)) #162)
+#181 := (iff #165 #180)
+#178 := (iff #162 #177)
+#175 := (= #159 #174)
+#172 := (= #156 #171)
+#169 := (= #153 #168)
+#124 := (iff #80 #123)
+#121 := (iff #77 #120)
+#118 := (iff #18 #117)
+#119 := [rewrite]: #118
+#111 := (iff #16 #110)
+#112 := [rewrite]: #111
+#122 := [monotonicity #112 #119]: #121
+#114 := (iff #17 #113)
+#107 := (iff #15 #106)
+#108 := [rewrite]: #107
+#115 := [monotonicity #108 #112]: #114
+#125 := [monotonicity #115 #122]: #124
+#170 := [monotonicity #125]: #169
+#173 := [monotonicity #170]: #172
+#176 := [monotonicity #173]: #175
+#179 := [monotonicity #176]: #178
+#182 := [quant-intro #179]: #181
+#166 := (iff #37 #165)
+#163 := (iff #36 #162)
+#160 := (= #35 #159)
+#157 := (= #34 #156)
+#154 := (= #33 #153)
+#151 := (= #32 #148)
+#145 := (- #142)
+#149 := (= #145 #148)
+#150 := [rewrite]: #149
+#146 := (= #32 #145)
+#143 := (= #31 #142)
+#88 := (= #23 #87)
+#89 := [rewrite]: #88
+#85 := (= #22 #84)
+#86 := [rewrite]: #85
+#144 := [monotonicity #86 #89]: #143
+#147 := [monotonicity #144]: #146
+#152 := [trans #147 #150]: #151
+#81 := (iff #20 #80)
+#78 := (iff #19 #77)
+#79 := [rewrite]: #78
+#82 := [monotonicity #79]: #81
+#155 := [monotonicity #82 #152]: #154
+#158 := [monotonicity #155]: #157
+#161 := [monotonicity #158]: #160
+#164 := [monotonicity #161]: #163
+#167 := [quant-intro #164]: #166
+#184 := [trans #167 #182]: #183
+#141 := [asserted]: #37
+#185 := [mp #141 #184]: #180
+#292 := [mp~ #185 #276]: #180
+#342 := [mp #292 #341]: #339
+#373 := [mp #342 #372]: #370
+#857 := [mp #373 #856]: #852
+#762 := (not #852)
+#763 := (or #762 #834)
+#431 := (* -1::int 3::int)
+#515 := (* -1::int 1::int)
+#516 := (mod #515 #431)
+#517 := (+ #55 #516)
+#508 := (= #517 0::int)
+#519 := (mod 1::int 3::int)
+#520 := (* -1::int #519)
+#521 := (+ #55 #520)
+#518 := (= #521 0::int)
+#522 := (<= 3::int 0::int)
+#501 := (<= 1::int 0::int)
+#836 := (or #501 #522)
+#838 := (not #836)
+#495 := (>= 1::int 0::int)
+#625 := (or #522 #495)
+#832 := (not #625)
+#506 := (or #832 #838)
+#507 := (ite #506 #518 #508)
+#839 := (= #55 0::int)
+#840 := (= 1::int 0::int)
+#841 := (ite #840 #839 #507)
+#842 := (= 1::int #55)
+#837 := (= 3::int 0::int)
+#843 := (ite #837 #842 #841)
+#764 := (or #762 #843)
+#765 := (iff #764 #763)
+#750 := (iff #763 #763)
+#752 := [rewrite]: #750
+#772 := (iff #843 #834)
+#759 := (ite false #834 #834)
+#771 := (iff #759 #834)
+#767 := [rewrite]: #771
+#769 := (iff #843 #759)
+#760 := (iff #841 #834)
+#778 := (ite false #839 #834)
+#766 := (iff #778 #834)
+#768 := [rewrite]: #766
+#775 := (iff #841 #778)
+#684 := (iff #507 #834)
+#773 := -2::int
+#774 := (= #55 -2::int)
+#1 := true
+#680 := (ite true #834 #774)
+#682 := (iff #680 #834)
+#683 := [rewrite]: #682
+#673 := (iff #507 #680)
+#677 := (iff #508 #774)
+#795 := 2::int
+#782 := (+ 2::int #55)
+#628 := (= #782 0::int)
+#777 := (iff #628 #774)
+#662 := [rewrite]: #777
+#776 := (iff #508 #628)
+#668 := (= #517 #782)
+#781 := (+ #55 2::int)
+#785 := (= #781 #782)
+#667 := [rewrite]: #785
+#783 := (= #517 #781)
+#627 := (= #516 2::int)
+#792 := -3::int
+#793 := (mod -1::int -3::int)
+#624 := (= #793 2::int)
+#626 := [rewrite]: #624
+#794 := (= #516 #793)
+#786 := (= #431 -3::int)
+#787 := [rewrite]: #786
+#805 := (= #515 -1::int)
+#809 := [rewrite]: #805
+#788 := [monotonicity #809 #787]: #794
+#780 := [trans #788 #626]: #627
+#784 := [monotonicity #780]: #783
+#669 := [trans #784 #667]: #668
+#678 := [monotonicity #669]: #776
+#679 := [trans #678 #662]: #677
+#790 := (iff #518 #834)
+#796 := (+ -1::int #55)
+#804 := (= #796 0::int)
+#647 := (iff #804 #834)
+#789 := [rewrite]: #647
+#645 := (iff #518 #804)
+#803 := (= #521 #796)
+#799 := (+ #55 -1::int)
+#797 := (= #799 #796)
+#802 := [rewrite]: #797
+#800 := (= #521 #799)
+#806 := (= #520 -1::int)
+#808 := (= #520 #515)
+#529 := (= #519 1::int)
+#807 := [rewrite]: #529
+#523 := [monotonicity #807]: #808
+#810 := [trans #523 #809]: #806
+#801 := [monotonicity #810]: #800
+#798 := [trans #801 #802]: #803
+#646 := [monotonicity #798]: #645
+#791 := [trans #646 #789]: #790
+#527 := (iff #506 true)
+#485 := (or false true)
+#823 := (iff #485 true)
+#824 := [rewrite]: #823
+#816 := (iff #506 #485)
+#815 := (iff #838 true)
+#813 := (not false)
+#537 := (iff #813 true)
+#811 := [rewrite]: #537
+#814 := (iff #838 #813)
+#543 := (iff #836 false)
+#817 := (or false false)
+#541 := (iff #817 false)
+#542 := [rewrite]: #541
+#818 := (iff #836 #817)
+#819 := (iff #522 false)
+#482 := [rewrite]: #819
+#828 := (iff #501 false)
+#831 := [rewrite]: #828
+#540 := [monotonicity #831 #482]: #818
+#437 := [trans #540 #542]: #543
+#536 := [monotonicity #437]: #814
+#812 := [trans #536 #811]: #815
+#470 := (iff #832 false)
+#826 := (not true)
+#829 := (iff #826 false)
+#469 := [rewrite]: #829
+#464 := (iff #832 #826)
+#825 := (iff #625 true)
+#821 := (iff #625 #485)
+#483 := (iff #495 true)
+#484 := [rewrite]: #483
+#822 := [monotonicity #482 #484]: #821
+#820 := [trans #822 #824]: #825
+#827 := [monotonicity #820]: #464
+#830 := [trans #827 #469]: #470
+#526 := [monotonicity #830 #812]: #816
+#528 := [trans #526 #824]: #527
+#681 := [monotonicity #528 #791 #679]: #673
+#685 := [trans #681 #683]: #684
+#835 := (iff #840 false)
+#478 := [rewrite]: #835
+#779 := [monotonicity #478 #685]: #775
+#757 := [trans #779 #768]: #760
+#498 := (iff #842 #834)
+#494 := [rewrite]: #498
+#833 := (iff #837 false)
+#493 := [rewrite]: #833
+#770 := [monotonicity #493 #494 #757]: #769
+#761 := [trans #770 #767]: #772
+#749 := [monotonicity #761]: #765
+#753 := [trans #749 #752]: #765
+#758 := [quant-inst]: #764
+#754 := [mp #758 #753]: #763
+#703 := [unit-resolution #754 #857]: #834
+#708 := [monotonicity #703]: #58
+#59 := (not #58)
+#271 := [asserted]: #59
+[unit-resolution #271 #708]: false
+unsat
+dcb82456f7b7abdc838d01cd635a1c35bdef19ae 303 0
+#2 := false
+decl f5 :: (-> int S2)
+#11 := 0::int
+#56 := (f5 0::int)
+decl f4 :: (-> int int int)
+#53 := 3::int
+#54 := (f4 3::int 3::int)
+#55 := (f5 #54)
+#57 := (= #55 #56)
+#832 := (= #54 0::int)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#851 := (pattern #29)
+#82 := -1::int
+#86 := (* -1::int #9)
+#83 := (* -1::int #8)
+#141 := (mod #83 #86)
+#362 := (+ #29 #141)
+#363 := (= #362 0::int)
+#30 := (mod #8 #9)
+#359 := (* -1::int #30)
+#360 := (+ #29 #359)
+#361 := (= #360 0::int)
+#108 := (<= #9 0::int)
+#104 := (<= #8 0::int)
+#301 := (or #104 #108)
+#302 := (not #301)
+#115 := (>= #8 0::int)
+#284 := (or #108 #115)
+#285 := (not #284)
+#308 := (or #285 #302)
+#364 := (ite #308 #361 #363)
+#358 := (= #29 0::int)
+#12 := (= #8 0::int)
+#365 := (ite #12 #358 #364)
+#357 := (= #8 #29)
+#13 := (= #9 0::int)
+#366 := (ite #13 #357 #365)
+#852 := (forall (vars (?v0 int) (?v1 int)) (:pat #851) #366)
+#369 := (forall (vars (?v0 int) (?v1 int)) #366)
+#855 := (iff #369 #852)
+#853 := (iff #366 #366)
+#854 := [refl]: #853
+#856 := [quant-intro #854]: #855
+#147 := (* -1::int #141)
+#326 := (ite #308 #30 #147)
+#329 := (ite #12 0::int #326)
+#332 := (ite #13 #8 #329)
+#335 := (= #29 #332)
+#338 := (forall (vars (?v0 int) (?v1 int)) #335)
+#370 := (iff #338 #369)
+#367 := (iff #335 #366)
+#368 := [rewrite]: #367
+#371 := [quant-intro #368]: #370
+#116 := (not #115)
+#109 := (not #108)
+#119 := (and #109 #116)
+#105 := (not #104)
+#112 := (and #105 #109)
+#122 := (or #112 #119)
+#167 := (ite #122 #30 #147)
+#170 := (ite #12 0::int #167)
+#173 := (ite #13 #8 #170)
+#176 := (= #29 #173)
+#179 := (forall (vars (?v0 int) (?v1 int)) #176)
+#339 := (iff #179 #338)
+#336 := (iff #176 #335)
+#333 := (= #173 #332)
+#330 := (= #170 #329)
+#327 := (= #167 #326)
+#311 := (iff #122 #308)
+#305 := (or #302 #285)
+#309 := (iff #305 #308)
+#310 := [rewrite]: #309
+#306 := (iff #122 #305)
+#303 := (iff #119 #285)
+#304 := [rewrite]: #303
+#282 := (iff #112 #302)
+#283 := [rewrite]: #282
+#307 := [monotonicity #283 #304]: #306
+#312 := [trans #307 #310]: #311
+#328 := [monotonicity #312]: #327
+#331 := [monotonicity #328]: #330
+#334 := [monotonicity #331]: #333
+#337 := [monotonicity #334]: #336
+#340 := [quant-intro #337]: #339
+#274 := (~ #179 #179)
+#271 := (~ #176 #176)
+#290 := [refl]: #271
+#275 := [nnf-pos #290]: #274
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#182 := (iff #37 #179)
+#76 := (and #16 #18)
+#79 := (or #17 #76)
+#152 := (ite #79 #30 #147)
+#155 := (ite #12 0::int #152)
+#158 := (ite #13 #8 #155)
+#161 := (= #29 #158)
+#164 := (forall (vars (?v0 int) (?v1 int)) #161)
+#180 := (iff #164 #179)
+#177 := (iff #161 #176)
+#174 := (= #158 #173)
+#171 := (= #155 #170)
+#168 := (= #152 #167)
+#123 := (iff #79 #122)
+#120 := (iff #76 #119)
+#117 := (iff #18 #116)
+#118 := [rewrite]: #117
+#110 := (iff #16 #109)
+#111 := [rewrite]: #110
+#121 := [monotonicity #111 #118]: #120
+#113 := (iff #17 #112)
+#106 := (iff #15 #105)
+#107 := [rewrite]: #106
+#114 := [monotonicity #107 #111]: #113
+#124 := [monotonicity #114 #121]: #123
+#169 := [monotonicity #124]: #168
+#172 := [monotonicity #169]: #171
+#175 := [monotonicity #172]: #174
+#178 := [monotonicity #175]: #177
+#181 := [quant-intro #178]: #180
+#165 := (iff #37 #164)
+#162 := (iff #36 #161)
+#159 := (= #35 #158)
+#156 := (= #34 #155)
+#153 := (= #33 #152)
+#150 := (= #32 #147)
+#144 := (- #141)
+#148 := (= #144 #147)
+#149 := [rewrite]: #148
+#145 := (= #32 #144)
+#142 := (= #31 #141)
+#87 := (= #23 #86)
+#88 := [rewrite]: #87
+#84 := (= #22 #83)
+#85 := [rewrite]: #84
+#143 := [monotonicity #85 #88]: #142
+#146 := [monotonicity #143]: #145
+#151 := [trans #146 #149]: #150
+#80 := (iff #20 #79)
+#77 := (iff #19 #76)
+#78 := [rewrite]: #77
+#81 := [monotonicity #78]: #80
+#154 := [monotonicity #81 #151]: #153
+#157 := [monotonicity #154]: #156
+#160 := [monotonicity #157]: #159
+#163 := [monotonicity #160]: #162
+#166 := [quant-intro #163]: #165
+#183 := [trans #166 #181]: #182
+#140 := [asserted]: #37
+#184 := [mp #140 #183]: #179
+#291 := [mp~ #184 #275]: #179
+#341 := [mp #291 #340]: #338
+#372 := [mp #341 #371]: #369
+#857 := [mp #372 #856]: #852
+#777 := (not #852)
+#662 := (or #777 #832)
+#430 := (* -1::int 3::int)
+#515 := (mod #430 #430)
+#516 := (+ #54 #515)
+#517 := (= #516 0::int)
+#508 := (mod 3::int 3::int)
+#519 := (* -1::int #508)
+#520 := (+ #54 #519)
+#448 := (= #520 0::int)
+#521 := (<= 3::int 0::int)
+#518 := (or #521 #521)
+#522 := (not #518)
+#501 := (>= 3::int 0::int)
+#836 := (or #521 #501)
+#838 := (not #836)
+#495 := (or #838 #522)
+#625 := (ite #495 #448 #517)
+#506 := (= 3::int 0::int)
+#507 := (ite #506 #832 #625)
+#839 := (= 3::int #54)
+#840 := (ite #506 #839 #507)
+#677 := (or #777 #840)
+#680 := (iff #677 #662)
+#681 := (iff #662 #662)
+#682 := [rewrite]: #681
+#773 := (iff #840 #832)
+#843 := (= #54 3::int)
+#668 := (ite false #843 #832)
+#776 := (iff #668 #832)
+#678 := [rewrite]: #776
+#669 := (iff #840 #668)
+#785 := (iff #507 #832)
+#780 := (ite false #832 #832)
+#784 := (iff #780 #832)
+#782 := [rewrite]: #784
+#781 := (iff #507 #780)
+#626 := (iff #625 #832)
+#1 := true
+#793 := (ite true #832 #832)
+#795 := (iff #793 #832)
+#624 := [rewrite]: #795
+#794 := (iff #625 #793)
+#786 := (iff #517 #832)
+#791 := (= #516 #54)
+#807 := (+ #54 0::int)
+#805 := (= #807 #54)
+#809 := [rewrite]: #805
+#789 := (= #516 #807)
+#646 := (= #515 0::int)
+#801 := -3::int
+#802 := (mod -3::int -3::int)
+#804 := (= #802 0::int)
+#645 := [rewrite]: #804
+#803 := (= #515 #802)
+#796 := (= #430 -3::int)
+#797 := [rewrite]: #796
+#798 := [monotonicity #797 #797]: #803
+#647 := [trans #798 #645]: #646
+#790 := [monotonicity #647]: #789
+#792 := [trans #790 #809]: #791
+#787 := [monotonicity #792]: #786
+#799 := (iff #448 #832)
+#806 := (= #520 #54)
+#808 := (= #520 #807)
+#528 := (= #519 0::int)
+#815 := (* -1::int 0::int)
+#526 := (= #815 0::int)
+#527 := [rewrite]: #526
+#812 := (= #519 #815)
+#537 := (= #508 0::int)
+#811 := [rewrite]: #537
+#816 := [monotonicity #811]: #812
+#529 := [trans #816 #527]: #528
+#523 := [monotonicity #529]: #808
+#810 := [trans #523 #809]: #806
+#800 := [monotonicity #810]: #799
+#814 := (iff #495 true)
+#835 := (or false true)
+#482 := (iff #835 true)
+#483 := [rewrite]: #482
+#436 := (iff #495 #835)
+#542 := (iff #522 true)
+#831 := (not false)
+#540 := (iff #831 true)
+#541 := [rewrite]: #540
+#817 := (iff #522 #831)
+#830 := (iff #518 false)
+#464 := (or false false)
+#469 := (iff #464 false)
+#470 := [rewrite]: #469
+#827 := (iff #518 #464)
+#493 := (iff #521 false)
+#498 := [rewrite]: #493
+#829 := [monotonicity #498 #498]: #827
+#828 := [trans #829 #470]: #830
+#818 := [monotonicity #828]: #817
+#543 := [trans #818 #541]: #542
+#820 := (iff #838 false)
+#821 := (not true)
+#824 := (iff #821 false)
+#825 := [rewrite]: #824
+#822 := (iff #838 #821)
+#484 := (iff #836 true)
+#478 := (iff #836 #835)
+#834 := (iff #501 true)
+#494 := [rewrite]: #834
+#819 := [monotonicity #498 #494]: #478
+#485 := [trans #819 #483]: #484
+#823 := [monotonicity #485]: #822
+#826 := [trans #823 #825]: #820
+#813 := [monotonicity #826 #543]: #436
+#536 := [trans #813 #483]: #814
+#788 := [monotonicity #536 #800 #787]: #794
+#627 := [trans #788 #624]: #626
+#841 := (iff #506 false)
+#842 := [rewrite]: #841
+#783 := [monotonicity #842 #627]: #781
+#667 := [trans #783 #782]: #785
+#837 := (iff #839 #843)
+#833 := [rewrite]: #837
+#628 := [monotonicity #842 #833 #667]: #669
+#774 := [trans #628 #678]: #773
+#673 := [monotonicity #774]: #680
+#683 := [trans #673 #682]: #680
+#679 := [quant-inst]: #677
+#684 := [mp #679 #683]: #662
+#704 := [unit-resolution #684 #857]: #832
+#700 := [monotonicity #704]: #57
+#58 := (not #57)
+#270 := [asserted]: #58
+[unit-resolution #270 #700]: false
+unsat
+8f127c5591aa0d828a4b81cb8abc9edab86e5a76 533 0
+#2 := false
+#55 := 3::int
+decl f6 :: (-> S2 int)
+decl f7 :: S2
+#53 := f7
+#54 := (f6 f7)
+#533 := (mod #54 3::int)
+#664 := (>= #533 3::int)
+#665 := (not #664)
+#1 := true
+#75 := [true-axiom]: true
+#674 := (or false #665)
+#635 := [th-lemma]: #674
+#636 := [unit-resolution #635 #75]: #665
+#11 := 0::int
+decl f5 :: (-> int S2)
+decl f4 :: (-> int int int)
+#56 := (f4 #54 3::int)
+#57 := (f5 #56)
+#58 := (f6 #57)
+#84 := -1::int
+#779 := (* -1::int #58)
+#763 := (+ #56 #779)
+#766 := (>= #763 0::int)
+#773 := (= #56 #58)
+#780 := (>= #56 0::int)
+#784 := (= #58 0::int)
+#649 := (not #784)
+#746 := (<= #58 0::int)
+#643 := (not #746)
+#276 := (>= #58 3::int)
+#59 := (< #58 3::int)
+#60 := (not #59)
+#284 := (iff #60 #276)
+#275 := (not #276)
+#279 := (not #275)
+#282 := (iff #279 #276)
+#283 := [rewrite]: #282
+#280 := (iff #60 #279)
+#277 := (iff #59 #275)
+#278 := [rewrite]: #277
+#281 := [monotonicity #278]: #280
+#285 := [trans #281 #283]: #284
+#272 := [asserted]: #60
+#286 := [mp #272 #285]: #276
+#645 := (or #643 #275)
+#646 := [th-lemma]: #645
+#647 := [unit-resolution #646 #286]: #643
+#650 := (or #649 #746)
+#651 := [th-lemma]: #650
+#652 := [unit-resolution #651 #647]: #649
+#9 := (:var 0 int)
+#44 := (f5 #9)
+#880 := (pattern #44)
+#211 := (>= #9 0::int)
+#45 := (f6 #44)
+#50 := (= #45 0::int)
+#261 := (or #50 #211)
+#887 := (forall (vars (?v0 int)) (:pat #880) #261)
+#266 := (forall (vars (?v0 int)) #261)
+#890 := (iff #266 #887)
+#888 := (iff #261 #261)
+#889 := [refl]: #888
+#891 := [quant-intro #889]: #890
+#294 := (~ #266 #266)
+#312 := (~ #261 #261)
+#313 := [refl]: #312
+#295 := [nnf-pos #313]: #294
+#49 := (< #9 0::int)
+#51 := (implies #49 #50)
+#52 := (forall (vars (?v0 int)) #51)
+#269 := (iff #52 #266)
+#232 := (= 0::int #45)
+#238 := (not #49)
+#239 := (or #238 #232)
+#244 := (forall (vars (?v0 int)) #239)
+#267 := (iff #244 #266)
+#264 := (iff #239 #261)
+#258 := (or #211 #50)
+#262 := (iff #258 #261)
+#263 := [rewrite]: #262
+#259 := (iff #239 #258)
+#256 := (iff #232 #50)
+#257 := [rewrite]: #256
+#254 := (iff #238 #211)
+#214 := (not #211)
+#249 := (not #214)
+#252 := (iff #249 #211)
+#253 := [rewrite]: #252
+#250 := (iff #238 #249)
+#247 := (iff #49 #214)
+#248 := [rewrite]: #247
+#251 := [monotonicity #248]: #250
+#255 := [trans #251 #253]: #254
+#260 := [monotonicity #255 #257]: #259
+#265 := [trans #260 #263]: #264
+#268 := [quant-intro #265]: #267
+#245 := (iff #52 #244)
+#242 := (iff #51 #239)
+#235 := (implies #49 #232)
+#240 := (iff #235 #239)
+#241 := [rewrite]: #240
+#236 := (iff #51 #235)
+#233 := (iff #50 #232)
+#234 := [rewrite]: #233
+#237 := [monotonicity #234]: #236
+#243 := [trans #237 #241]: #242
+#246 := [quant-intro #243]: #245
+#270 := [trans #246 #268]: #269
+#231 := [asserted]: #52
+#271 := [mp #231 #270]: #266
+#314 := [mp~ #271 #295]: #266
+#892 := [mp #314 #891]: #887
+#765 := (not #887)
+#770 := (or #765 #780 #784)
+#785 := (or #784 #780)
+#756 := (or #765 #785)
+#742 := (iff #756 #770)
+#767 := (or #780 #784)
+#759 := (or #765 #767)
+#758 := (iff #759 #770)
+#762 := [rewrite]: #758
+#760 := (iff #756 #759)
+#768 := (iff #785 #767)
+#769 := [rewrite]: #768
+#761 := [monotonicity #769]: #760
+#743 := [trans #761 #762]: #742
+#757 := [quant-inst]: #756
+#745 := [mp #757 #743]: #770
+#653 := [unit-resolution #745 #892 #652]: #780
+#782 := (not #780)
+#783 := (or #773 #782)
+#195 := (= #9 #45)
+#220 := (or #195 #214)
+#881 := (forall (vars (?v0 int)) (:pat #880) #220)
+#225 := (forall (vars (?v0 int)) #220)
+#884 := (iff #225 #881)
+#882 := (iff #220 #220)
+#883 := [refl]: #882
+#885 := [quant-intro #883]: #884
+#292 := (~ #225 #225)
+#309 := (~ #220 #220)
+#310 := [refl]: #309
+#293 := [nnf-pos #310]: #292
+#46 := (= #45 #9)
+#43 := (<= 0::int #9)
+#47 := (implies #43 #46)
+#48 := (forall (vars (?v0 int)) #47)
+#228 := (iff #48 #225)
+#202 := (not #43)
+#203 := (or #202 #195)
+#208 := (forall (vars (?v0 int)) #203)
+#226 := (iff #208 #225)
+#223 := (iff #203 #220)
+#217 := (or #214 #195)
+#221 := (iff #217 #220)
+#222 := [rewrite]: #221
+#218 := (iff #203 #217)
+#215 := (iff #202 #214)
+#212 := (iff #43 #211)
+#213 := [rewrite]: #212
+#216 := [monotonicity #213]: #215
+#219 := [monotonicity #216]: #218
+#224 := [trans #219 #222]: #223
+#227 := [quant-intro #224]: #226
+#209 := (iff #48 #208)
+#206 := (iff #47 #203)
+#199 := (implies #43 #195)
+#204 := (iff #199 #203)
+#205 := [rewrite]: #204
+#200 := (iff #47 #199)
+#197 := (iff #46 #195)
+#198 := [rewrite]: #197
+#201 := [monotonicity #198]: #200
+#207 := [trans #201 #205]: #206
+#210 := [quant-intro #207]: #209
+#229 := [trans #210 #227]: #228
+#194 := [asserted]: #48
+#230 := [mp #194 #229]: #225
+#311 := [mp~ #230 #293]: #225
+#886 := [mp #311 #885]: #881
+#781 := (not #881)
+#786 := (or #781 #773 #782)
+#775 := (or #781 #783)
+#777 := (iff #775 #786)
+#778 := [rewrite]: #777
+#776 := [quant-inst]: #775
+#772 := [mp #776 #778]: #786
+#654 := [unit-resolution #772 #886]: #783
+#637 := [unit-resolution #654 #653]: #773
+#655 := (not #773)
+#625 := (or #655 #766)
+#626 := [th-lemma]: #625
+#627 := [unit-resolution #626 #637]: #766
+#534 := (* -1::int #533)
+#462 := (+ #56 #534)
+#802 := (<= #462 0::int)
+#535 := (= #462 0::int)
+#556 := -3::int
+#529 := (* -1::int #54)
+#827 := (mod #529 -3::int)
+#551 := (+ #56 #827)
+#826 := (= #551 0::int)
+#852 := (>= #54 0::int)
+#498 := (not #852)
+#536 := (<= #54 0::int)
+#841 := (not #536)
+#845 := (or #841 #498)
+#541 := (ite #845 #535 #826)
+#521 := (= #56 0::int)
+#853 := (= #54 0::int)
+#821 := (ite #853 #521 #541)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#865 := (pattern #29)
+#88 := (* -1::int #9)
+#85 := (* -1::int #8)
+#143 := (mod #85 #88)
+#376 := (+ #29 #143)
+#377 := (= #376 0::int)
+#30 := (mod #8 #9)
+#373 := (* -1::int #30)
+#374 := (+ #29 #373)
+#375 := (= #374 0::int)
+#110 := (<= #9 0::int)
+#106 := (<= #8 0::int)
+#315 := (or #106 #110)
+#316 := (not #315)
+#117 := (>= #8 0::int)
+#298 := (or #110 #117)
+#299 := (not #298)
+#322 := (or #299 #316)
+#378 := (ite #322 #375 #377)
+#372 := (= #29 0::int)
+#12 := (= #8 0::int)
+#379 := (ite #12 #372 #378)
+#371 := (= #8 #29)
+#13 := (= #9 0::int)
+#380 := (ite #13 #371 #379)
+#866 := (forall (vars (?v0 int) (?v1 int)) (:pat #865) #380)
+#383 := (forall (vars (?v0 int) (?v1 int)) #380)
+#869 := (iff #383 #866)
+#867 := (iff #380 #380)
+#868 := [refl]: #867
+#870 := [quant-intro #868]: #869
+#149 := (* -1::int #143)
+#340 := (ite #322 #30 #149)
+#343 := (ite #12 0::int #340)
+#346 := (ite #13 #8 #343)
+#349 := (= #29 #346)
+#352 := (forall (vars (?v0 int) (?v1 int)) #349)
+#384 := (iff #352 #383)
+#381 := (iff #349 #380)
+#382 := [rewrite]: #381
+#385 := [quant-intro #382]: #384
+#118 := (not #117)
+#111 := (not #110)
+#121 := (and #111 #118)
+#107 := (not #106)
+#114 := (and #107 #111)
+#124 := (or #114 #121)
+#169 := (ite #124 #30 #149)
+#172 := (ite #12 0::int #169)
+#175 := (ite #13 #8 #172)
+#178 := (= #29 #175)
+#181 := (forall (vars (?v0 int) (?v1 int)) #178)
+#353 := (iff #181 #352)
+#350 := (iff #178 #349)
+#347 := (= #175 #346)
+#344 := (= #172 #343)
+#341 := (= #169 #340)
+#325 := (iff #124 #322)
+#319 := (or #316 #299)
+#323 := (iff #319 #322)
+#324 := [rewrite]: #323
+#320 := (iff #124 #319)
+#317 := (iff #121 #299)
+#318 := [rewrite]: #317
+#296 := (iff #114 #316)
+#297 := [rewrite]: #296
+#321 := [monotonicity #297 #318]: #320
+#326 := [trans #321 #324]: #325
+#342 := [monotonicity #326]: #341
+#345 := [monotonicity #342]: #344
+#348 := [monotonicity #345]: #347
+#351 := [monotonicity #348]: #350
+#354 := [quant-intro #351]: #353
+#288 := (~ #181 #181)
+#273 := (~ #178 #178)
+#304 := [refl]: #273
+#289 := [nnf-pos #304]: #288
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#184 := (iff #37 #181)
+#78 := (and #16 #18)
+#81 := (or #17 #78)
+#154 := (ite #81 #30 #149)
+#157 := (ite #12 0::int #154)
+#160 := (ite #13 #8 #157)
+#163 := (= #29 #160)
+#166 := (forall (vars (?v0 int) (?v1 int)) #163)
+#182 := (iff #166 #181)
+#179 := (iff #163 #178)
+#176 := (= #160 #175)
+#173 := (= #157 #172)
+#170 := (= #154 #169)
+#125 := (iff #81 #124)
+#122 := (iff #78 #121)
+#119 := (iff #18 #118)
+#120 := [rewrite]: #119
+#112 := (iff #16 #111)
+#113 := [rewrite]: #112
+#123 := [monotonicity #113 #120]: #122
+#115 := (iff #17 #114)
+#108 := (iff #15 #107)
+#109 := [rewrite]: #108
+#116 := [monotonicity #109 #113]: #115
+#126 := [monotonicity #116 #123]: #125
+#171 := [monotonicity #126]: #170
+#174 := [monotonicity #171]: #173
+#177 := [monotonicity #174]: #176
+#180 := [monotonicity #177]: #179
+#183 := [quant-intro #180]: #182
+#167 := (iff #37 #166)
+#164 := (iff #36 #163)
+#161 := (= #35 #160)
+#158 := (= #34 #157)
+#155 := (= #33 #154)
+#152 := (= #32 #149)
+#146 := (- #143)
+#150 := (= #146 #149)
+#151 := [rewrite]: #150
+#147 := (= #32 #146)
+#144 := (= #31 #143)
+#89 := (= #23 #88)
+#90 := [rewrite]: #89
+#86 := (= #22 #85)
+#87 := [rewrite]: #86
+#145 := [monotonicity #87 #90]: #144
+#148 := [monotonicity #145]: #147
+#153 := [trans #148 #151]: #152
+#82 := (iff #20 #81)
+#79 := (iff #19 #78)
+#80 := [rewrite]: #79
+#83 := [monotonicity #80]: #82
+#156 := [monotonicity #83 #153]: #155
+#159 := [monotonicity #156]: #158
+#162 := [monotonicity #159]: #161
+#165 := [monotonicity #162]: #164
+#168 := [quant-intro #165]: #167
+#185 := [trans #168 #183]: #184
+#142 := [asserted]: #37
+#186 := [mp #142 #185]: #181
+#305 := [mp~ #186 #289]: #181
+#355 := [mp #305 #354]: #352
+#386 := [mp #355 #385]: #383
+#871 := [mp #386 #870]: #866
+#810 := (not #866)
+#811 := (or #810 #821)
+#444 := (* -1::int 3::int)
+#530 := (mod #529 #444)
+#531 := (+ #56 #530)
+#522 := (= #531 0::int)
+#532 := (<= 3::int 0::int)
+#515 := (or #536 #532)
+#850 := (not #515)
+#509 := (or #532 #852)
+#639 := (not #509)
+#846 := (or #639 #850)
+#520 := (ite #846 #535 #522)
+#854 := (ite #853 #521 #520)
+#855 := (= #54 #56)
+#856 := (= 3::int 0::int)
+#851 := (ite #856 #855 #854)
+#816 := (or #810 #851)
+#812 := (iff #816 #811)
+#659 := (iff #811 #811)
+#660 := [rewrite]: #659
+#814 := (iff #851 #821)
+#819 := (ite false #855 #821)
+#824 := (iff #819 #821)
+#813 := [rewrite]: #824
+#823 := (iff #851 #819)
+#822 := (iff #854 #821)
+#542 := (iff #520 #541)
+#830 := (iff #522 #826)
+#825 := (= #531 #551)
+#828 := (= #530 #827)
+#557 := (= #444 -3::int)
+#450 := [rewrite]: #557
+#550 := [monotonicity #450]: #828
+#829 := [monotonicity #550]: #825
+#540 := [monotonicity #829]: #830
+#554 := (iff #846 #845)
+#484 := (or #498 #841)
+#831 := (iff #484 #845)
+#832 := [rewrite]: #831
+#844 := (iff #846 #484)
+#843 := (iff #850 #841)
+#840 := (iff #515 #536)
+#836 := (or #536 false)
+#839 := (iff #836 #536)
+#834 := [rewrite]: #839
+#837 := (iff #515 #836)
+#507 := (iff #532 false)
+#512 := [rewrite]: #507
+#838 := [monotonicity #512]: #837
+#478 := [trans #838 #834]: #840
+#483 := [monotonicity #478]: #843
+#499 := (iff #639 #498)
+#496 := (iff #509 #852)
+#848 := (or false #852)
+#492 := (iff #848 #852)
+#833 := [rewrite]: #492
+#508 := (iff #509 #848)
+#849 := [monotonicity #512]: #508
+#497 := [trans #849 #833]: #496
+#835 := [monotonicity #497]: #499
+#842 := [monotonicity #835 #483]: #844
+#555 := [trans #842 #832]: #554
+#543 := [monotonicity #555 #540]: #542
+#537 := [monotonicity #543]: #822
+#857 := (iff #856 false)
+#847 := [rewrite]: #857
+#820 := [monotonicity #847 #537]: #823
+#815 := [trans #820 #813]: #814
+#818 := [monotonicity #815]: #812
+#661 := [trans #818 #660]: #812
+#817 := [quant-inst]: #816
+#803 := [mp #817 #661]: #811
+#628 := [unit-resolution #803 #871]: #821
+#692 := (not #853)
+#691 := (not #521)
+#633 := (iff #649 #691)
+#632 := (iff #784 #521)
+#630 := (iff #521 #784)
+#631 := [monotonicity #637]: #630
+#475 := [symm #631]: #632
+#629 := [monotonicity #475]: #633
+#634 := [mp #652 #629]: #691
+#790 := (not #821)
+#787 := (or #790 #692 #521)
+#788 := [def-axiom]: #787
+#613 := [unit-resolution #788 #634 #628]: #692
+#791 := (or #790 #853 #541)
+#676 := [def-axiom]: #791
+#616 := [unit-resolution #676 #613 #628]: #541
+#696 := (f5 #54)
+#748 := (f6 #696)
+#749 := (= #748 0::int)
+#614 := (not #749)
+#619 := (iff #692 #614)
+#617 := (iff #853 #749)
+#612 := (iff #749 #853)
+#621 := (= #748 #54)
+#622 := (= #696 f7)
+#697 := (= f7 #696)
+#38 := (:var 0 S2)
+#39 := (f6 #38)
+#872 := (pattern #39)
+#40 := (f5 #39)
+#188 := (= #38 #40)
+#873 := (forall (vars (?v0 S2)) (:pat #872) #188)
+#191 := (forall (vars (?v0 S2)) #188)
+#874 := (iff #191 #873)
+#876 := (iff #873 #873)
+#877 := [rewrite]: #876
+#875 := [rewrite]: #874
+#878 := [trans #875 #877]: #874
+#290 := (~ #191 #191)
+#306 := (~ #188 #188)
+#307 := [refl]: #306
+#291 := [nnf-pos #307]: #290
+#41 := (= #40 #38)
+#42 := (forall (vars (?v0 S2)) #41)
+#192 := (iff #42 #191)
+#189 := (iff #41 #188)
+#190 := [rewrite]: #189
+#193 := [quant-intro #190]: #192
+#187 := [asserted]: #42
+#196 := [mp #187 #193]: #191
+#308 := [mp~ #196 #291]: #191
+#879 := [mp #308 #878]: #873
+#792 := (not #873)
+#789 := (or #792 #697)
+#793 := [quant-inst]: #789
+#620 := [unit-resolution #793 #879]: #697
+#623 := [symm #620]: #622
+#624 := [monotonicity #623]: #621
+#615 := [monotonicity #624]: #612
+#618 := [symm #615]: #617
+#609 := [monotonicity #618]: #619
+#599 := [mp #613 #609]: #614
+#750 := (or #749 #852)
+#753 := (or #765 #749 #852)
+#754 := (or #765 #750)
+#755 := (iff #754 #753)
+#733 := [rewrite]: #755
+#744 := [quant-inst]: #754
+#734 := [mp #744 #733]: #753
+#601 := [unit-resolution #734 #892]: #750
+#602 := [unit-resolution #601 #599]: #852
+#605 := (or #853 #841 #498)
+#606 := [th-lemma]: #605
+#610 := [unit-resolution #606 #613]: #845
+#603 := [unit-resolution #610 #602]: #841
+#804 := (or #845 #536)
+#805 := [def-axiom]: #804
+#611 := [unit-resolution #805 #603]: #845
+#801 := (not #845)
+#641 := (not #541)
+#794 := (or #641 #801 #535)
+#795 := [def-axiom]: #794
+#604 := [unit-resolution #795 #611 #616]: #535
+#796 := (not #535)
+#607 := (or #796 #802)
+#608 := [th-lemma]: #607
+#594 := [unit-resolution #608 #604]: #802
+[th-lemma #594 #286 #627 #636]: false
+unsat
+19db6bc804d0259d0474ad9e6fd393c16241618f 671 0
+#2 := false
+decl f6 :: (-> S2 int)
+decl f5 :: (-> int S2)
+decl f4 :: (-> int int int)
+#55 := 3::int
+decl f7 :: S2
+#53 := f7
+#54 := (f6 f7)
+#56 := (f4 #54 3::int)
+#57 := (f5 #56)
+#805 := (f6 #57)
+#806 := (= #56 #805)
+#476 := (not #806)
+#514 := (= #54 #56)
+#692 := (not #514)
+#473 := (iff #692 #476)
+#483 := (iff #514 #806)
+#490 := (iff #806 #514)
+#679 := (= #56 #54)
+#486 := (iff #679 #514)
+#489 := [commutativity]: #486
+#481 := (iff #806 #679)
+#494 := (= #805 #54)
+#58 := (= #57 f7)
+#274 := (= f7 #57)
+#286 := (>= #54 3::int)
+#11 := 0::int
+#870 := (= #56 0::int)
+#549 := (iff #870 #514)
+#547 := (iff #514 #870)
+#702 := (= 0::int #56)
+#545 := (iff #702 #870)
+#546 := [commutativity]: #545
+#541 := (iff #514 #702)
+#530 := (= #54 0::int)
+#285 := (not #286)
+#632 := [hypothesis]: #285
+#538 := (or #530 #286)
+#708 := 1::int
+#769 := (div #54 3::int)
+#628 := -2::int
+#618 := (* -2::int #769)
+#661 := (mod #54 3::int)
+#85 := -1::int
+#868 := (* -1::int #661)
+#619 := (+ #868 #618)
+#617 := (+ #54 #619)
+#620 := (>= #617 1::int)
+#627 := (not #620)
+#802 := (>= #56 0::int)
+#729 := (>= #661 0::int)
+#1 := true
+#76 := [true-axiom]: true
+#630 := (or false #729)
+#616 := [th-lemma]: #630
+#602 := [unit-resolution #616 #76]: #729
+#542 := (+ #56 #868)
+#817 := (>= #542 0::int)
+#543 := (= #542 0::int)
+#572 := -3::int
+#537 := (* -1::int #54)
+#851 := (mod #537 -3::int)
+#562 := (+ #56 #851)
+#565 := (= #562 0::int)
+#876 := (<= #54 0::int)
+#577 := (not #876)
+#873 := (>= #54 0::int)
+#863 := (not #873)
+#472 := (or #863 #577)
+#559 := (ite #472 #543 #565)
+#713 := (not #530)
+#604 := [hypothesis]: #713
+#606 := (or #530 #559)
+#842 := (ite #530 #870 #559)
+#9 := (:var 0 int)
+#8 := (:var 1 int)
+#29 := (f4 #8 #9)
+#887 := (pattern #29)
+#89 := (* -1::int #9)
+#86 := (* -1::int #8)
+#144 := (mod #86 #89)
+#398 := (+ #29 #144)
+#399 := (= #398 0::int)
+#30 := (mod #8 #9)
+#395 := (* -1::int #30)
+#396 := (+ #29 #395)
+#397 := (= #396 0::int)
+#111 := (<= #9 0::int)
+#107 := (<= #8 0::int)
+#337 := (or #107 #111)
+#338 := (not #337)
+#118 := (>= #8 0::int)
+#320 := (or #111 #118)
+#321 := (not #320)
+#344 := (or #321 #338)
+#400 := (ite #344 #397 #399)
+#394 := (= #29 0::int)
+#12 := (= #8 0::int)
+#401 := (ite #12 #394 #400)
+#393 := (= #8 #29)
+#13 := (= #9 0::int)
+#402 := (ite #13 #393 #401)
+#888 := (forall (vars (?v0 int) (?v1 int)) (:pat #887) #402)
+#405 := (forall (vars (?v0 int) (?v1 int)) #402)
+#891 := (iff #405 #888)
+#889 := (iff #402 #402)
+#890 := [refl]: #889
+#892 := [quant-intro #890]: #891
+#150 := (* -1::int #144)
+#362 := (ite #344 #30 #150)
+#365 := (ite #12 0::int #362)
+#368 := (ite #13 #8 #365)
+#371 := (= #29 #368)
+#374 := (forall (vars (?v0 int) (?v1 int)) #371)
+#406 := (iff #374 #405)
+#403 := (iff #371 #402)
+#404 := [rewrite]: #403
+#407 := [quant-intro #404]: #406
+#119 := (not #118)
+#112 := (not #111)
+#122 := (and #112 #119)
+#108 := (not #107)
+#115 := (and #108 #112)
+#125 := (or #115 #122)
+#170 := (ite #125 #30 #150)
+#173 := (ite #12 0::int #170)
+#176 := (ite #13 #8 #173)
+#179 := (= #29 #176)
+#182 := (forall (vars (?v0 int) (?v1 int)) #179)
+#375 := (iff #182 #374)
+#372 := (iff #179 #371)
+#369 := (= #176 #368)
+#366 := (= #173 #365)
+#363 := (= #170 #362)
+#347 := (iff #125 #344)
+#341 := (or #338 #321)
+#345 := (iff #341 #344)
+#346 := [rewrite]: #345
+#342 := (iff #125 #341)
+#339 := (iff #122 #321)
+#340 := [rewrite]: #339
+#318 := (iff #115 #338)
+#319 := [rewrite]: #318
+#343 := [monotonicity #319 #340]: #342
+#348 := [trans #343 #346]: #347
+#364 := [monotonicity #348]: #363
+#367 := [monotonicity #364]: #366
+#370 := [monotonicity #367]: #369
+#373 := [monotonicity #370]: #372
+#376 := [quant-intro #373]: #375
+#310 := (~ #182 #182)
+#307 := (~ #179 #179)
+#326 := [refl]: #307
+#311 := [nnf-pos #326]: #310
+#23 := (- #9)
+#22 := (- #8)
+#31 := (mod #22 #23)
+#32 := (- #31)
+#16 := (< 0::int #9)
+#18 := (< #8 0::int)
+#19 := (and #18 #16)
+#15 := (< 0::int #8)
+#17 := (and #15 #16)
+#20 := (or #17 #19)
+#33 := (ite #20 #30 #32)
+#34 := (ite #12 0::int #33)
+#35 := (ite #13 #8 #34)
+#36 := (= #29 #35)
+#37 := (forall (vars (?v0 int) (?v1 int)) #36)
+#185 := (iff #37 #182)
+#79 := (and #16 #18)
+#82 := (or #17 #79)
+#155 := (ite #82 #30 #150)
+#158 := (ite #12 0::int #155)
+#161 := (ite #13 #8 #158)
+#164 := (= #29 #161)
+#167 := (forall (vars (?v0 int) (?v1 int)) #164)
+#183 := (iff #167 #182)
+#180 := (iff #164 #179)
+#177 := (= #161 #176)
+#174 := (= #158 #173)
+#171 := (= #155 #170)
+#126 := (iff #82 #125)
+#123 := (iff #79 #122)
+#120 := (iff #18 #119)
+#121 := [rewrite]: #120
+#113 := (iff #16 #112)
+#114 := [rewrite]: #113
+#124 := [monotonicity #114 #121]: #123
+#116 := (iff #17 #115)
+#109 := (iff #15 #108)
+#110 := [rewrite]: #109
+#117 := [monotonicity #110 #114]: #116
+#127 := [monotonicity #117 #124]: #126
+#172 := [monotonicity #127]: #171
+#175 := [monotonicity #172]: #174
+#178 := [monotonicity #175]: #177
+#181 := [monotonicity #178]: #180
+#184 := [quant-intro #181]: #183
+#168 := (iff #37 #167)
+#165 := (iff #36 #164)
+#162 := (= #35 #161)
+#159 := (= #34 #158)
+#156 := (= #33 #155)
+#153 := (= #32 #150)
+#147 := (- #144)
+#151 := (= #147 #150)
+#152 := [rewrite]: #151
+#148 := (= #32 #147)
+#145 := (= #31 #144)
+#90 := (= #23 #89)
+#91 := [rewrite]: #90
+#87 := (= #22 #86)
+#88 := [rewrite]: #87
+#146 := [monotonicity #88 #91]: #145
+#149 := [monotonicity #146]: #148
+#154 := [trans #149 #152]: #153
+#83 := (iff #20 #82)
+#80 := (iff #19 #79)
+#81 := [rewrite]: #80
+#84 := [monotonicity #81]: #83
+#157 := [monotonicity #84 #154]: #156
+#160 := [monotonicity #157]: #159
+#163 := [monotonicity #160]: #162
+#166 := [monotonicity #163]: #165
+#169 := [quant-intro #166]: #168
+#186 := [trans #169 #184]: #185
+#143 := [asserted]: #37
+#187 := [mp #143 #186]: #182
+#327 := [mp~ #187 #311]: #182
+#377 := [mp #327 #376]: #374
+#408 := [mp #377 #407]: #405
+#893 := [mp #408 #892]: #888
+#840 := (not #888)
+#681 := (or #840 #842)
+#558 := (* -1::int 3::int)
+#872 := (mod #537 #558)
+#874 := (+ #56 #872)
+#531 := (= #874 0::int)
+#875 := (<= 3::int 0::int)
+#877 := (or #876 #875)
+#878 := (not #877)
+#879 := (or #875 #873)
+#869 := (not #879)
+#529 := (or #869 #878)
+#534 := (ite #529 #543 #531)
+#871 := (ite #530 #870 #534)
+#855 := (= 3::int 0::int)
+#518 := (ite #855 #514 #871)
+#682 := (or #840 #518)
+#825 := (iff #682 #681)
+#827 := (iff #681 #681)
+#828 := [rewrite]: #827
+#839 := (iff #518 #842)
+#836 := (ite false #514 #842)
+#833 := (iff #836 #842)
+#838 := [rewrite]: #833
+#837 := (iff #518 #836)
+#846 := (iff #871 #842)
+#841 := (iff #534 #559)
+#843 := (iff #531 #565)
+#563 := (= #874 #562)
+#848 := (= #872 #851)
+#573 := (= #558 -3::int)
+#847 := [rewrite]: #573
+#852 := [monotonicity #847]: #848
+#564 := [monotonicity #852]: #563
+#844 := [monotonicity #564]: #843
+#849 := (iff #529 #472)
+#578 := (iff #878 #577)
+#854 := (iff #877 #876)
+#506 := (or #876 false)
+#867 := (iff #506 #876)
+#853 := [rewrite]: #867
+#866 := (iff #877 #506)
+#521 := (iff #875 false)
+#857 := [rewrite]: #521
+#864 := [monotonicity #857]: #866
+#576 := [trans #864 #853]: #854
+#579 := [monotonicity #576]: #578
+#865 := (iff #869 #863)
+#862 := (iff #879 #873)
+#858 := (or false #873)
+#861 := (iff #858 #873)
+#856 := [rewrite]: #861
+#859 := (iff #879 #858)
+#860 := [monotonicity #857]: #859
+#500 := [trans #860 #856]: #862
+#505 := [monotonicity #500]: #865
+#850 := [monotonicity #505 #579]: #849
+#845 := [monotonicity #850 #844]: #841
+#835 := [monotonicity #845]: #846
+#519 := (iff #855 false)
+#520 := [rewrite]: #519
+#832 := [monotonicity #520 #835]: #837
+#834 := [trans #832 #838]: #839
+#826 := [monotonicity #834]: #825
+#822 := [trans #826 #828]: #825
+#683 := [quant-inst]: #682
+#823 := [mp #683 #822]: #681
+#605 := [unit-resolution #823 #893]: #842
+#698 := (not #842)
+#709 := (or #698 #530 #559)
+#717 := [def-axiom]: #709
+#607 := [unit-resolution #717 #605]: #606
+#608 := [unit-resolution #607 #604]: #559
+#811 := (f5 #54)
+#779 := (f6 #811)
+#781 := (= #779 0::int)
+#592 := (not #781)
+#594 := (iff #713 #592)
+#603 := (iff #530 #781)
+#613 := (iff #781 #530)
+#611 := (= #779 #54)
+#609 := (= #811 f7)
+#815 := (= f7 #811)
+#38 := (:var 0 S2)
+#39 := (f6 #38)
+#894 := (pattern #39)
+#40 := (f5 #39)
+#189 := (= #38 #40)
+#895 := (forall (vars (?v0 S2)) (:pat #894) #189)
+#192 := (forall (vars (?v0 S2)) #189)
+#896 := (iff #192 #895)
+#898 := (iff #895 #895)
+#899 := [rewrite]: #898
+#897 := [rewrite]: #896
+#900 := [trans #897 #899]: #896
+#312 := (~ #192 #192)
+#328 := (~ #189 #189)
+#329 := [refl]: #328
+#313 := [nnf-pos #329]: #312
+#41 := (= #40 #38)
+#42 := (forall (vars (?v0 S2)) #41)
+#193 := (iff #42 #192)
+#190 := (iff #41 #189)
+#191 := [rewrite]: #190
+#194 := [quant-intro #191]: #193
+#188 := [asserted]: #42
+#197 := [mp #188 #194]: #192
+#330 := [mp~ #197 #313]: #192
+#901 := [mp #330 #900]: #895
+#796 := (not #895)
+#793 := (or #796 #815)
+#795 := [quant-inst]: #793
+#685 := [unit-resolution #795 #901]: #815
+#610 := [symm #685]: #609
+#612 := [monotonicity #610]: #611
+#614 := [monotonicity #612]: #613
+#615 := [symm #614]: #603
+#595 := [monotonicity #615]: #594
+#596 := [mp #604 #595]: #592
+#768 := (or #781 #873)
+#44 := (f5 #9)
+#902 := (pattern #44)
+#212 := (>= #9 0::int)
+#45 := (f6 #44)
+#50 := (= #45 0::int)
+#262 := (or #50 #212)
+#909 := (forall (vars (?v0 int)) (:pat #902) #262)
+#267 := (forall (vars (?v0 int)) #262)
+#912 := (iff #267 #909)
+#910 := (iff #262 #262)
+#911 := [refl]: #910
+#913 := [quant-intro #911]: #912
+#316 := (~ #267 #267)
+#334 := (~ #262 #262)
+#335 := [refl]: #334
+#317 := [nnf-pos #335]: #316
+#49 := (< #9 0::int)
+#51 := (implies #49 #50)
+#52 := (forall (vars (?v0 int)) #51)
+#270 := (iff #52 #267)
+#233 := (= 0::int #45)
+#239 := (not #49)
+#240 := (or #239 #233)
+#245 := (forall (vars (?v0 int)) #240)
+#268 := (iff #245 #267)
+#265 := (iff #240 #262)
+#259 := (or #212 #50)
+#263 := (iff #259 #262)
+#264 := [rewrite]: #263
+#260 := (iff #240 #259)
+#257 := (iff #233 #50)
+#258 := [rewrite]: #257
+#255 := (iff #239 #212)
+#215 := (not #212)
+#250 := (not #215)
+#253 := (iff #250 #212)
+#254 := [rewrite]: #253
+#251 := (iff #239 #250)
+#248 := (iff #49 #215)
+#249 := [rewrite]: #248
+#252 := [monotonicity #249]: #251
+#256 := [trans #252 #254]: #255
+#261 := [monotonicity #256 #258]: #260
+#266 := [trans #261 #264]: #265
+#269 := [quant-intro #266]: #268
+#246 := (iff #52 #245)
+#243 := (iff #51 #240)
+#236 := (implies #49 #233)
+#241 := (iff #236 #240)
+#242 := [rewrite]: #241
+#237 := (iff #51 #236)
+#234 := (iff #50 #233)
+#235 := [rewrite]: #234
+#238 := [monotonicity #235]: #237
+#244 := [trans #238 #242]: #243
+#247 := [quant-intro #244]: #246
+#271 := [trans #247 #269]: #270
+#232 := [asserted]: #52
+#272 := [mp #232 #271]: #267
+#336 := [mp~ #272 #317]: #267
+#914 := [mp #336 #913]: #909
+#782 := (not #909)
+#771 := (or #782 #781 #873)
+#772 := (or #782 #768)
+#774 := (iff #772 #771)
+#775 := [rewrite]: #774
+#773 := [quant-inst]: #772
+#776 := [mp #773 #775]: #771
+#597 := [unit-resolution #776 #914]: #768
+#598 := [unit-resolution #597 #596]: #873
+#599 := (or #530 #577 #863)
+#600 := [th-lemma]: #599
+#593 := [unit-resolution #600 #598 #604]: #577
+#824 := (or #472 #876)
+#831 := [def-axiom]: #824
+#601 := [unit-resolution #831 #593]: #472
+#660 := (not #472)
+#818 := (not #559)
+#821 := (or #818 #660 #543)
+#703 := [def-axiom]: #821
+#586 := [unit-resolution #703 #601 #608]: #543
+#664 := (not #543)
+#587 := (or #664 #817)
+#588 := [th-lemma]: #587
+#590 := [unit-resolution #588 #586]: #817
+#591 := (not #729)
+#589 := (not #817)
+#580 := (or #802 #589 #591)
+#581 := [th-lemma]: #580
+#582 := [unit-resolution #581 #590 #602]: #802
+#816 := (<= #542 0::int)
+#574 := (or #664 #816)
+#583 := [th-lemma]: #574
+#584 := [unit-resolution #583 #586]: #816
+#804 := (not #802)
+#649 := (not #816)
+#626 := (or #627 #286 #649 #804)
+#625 := [hypothesis]: #802
+#747 := (* -3::int #769)
+#750 := (+ #868 #747)
+#751 := (+ #54 #750)
+#727 := (<= #751 0::int)
+#746 := (= #751 0::int)
+#657 := (or false #746)
+#695 := [th-lemma]: #657
+#680 := [unit-resolution #695 #76]: #746
+#658 := (not #746)
+#665 := (or #658 #727)
+#667 := [th-lemma]: #665
+#668 := [unit-resolution #667 #680]: #727
+#677 := [hypothesis]: #816
+#633 := [hypothesis]: #620
+#624 := [th-lemma #632 #633 #677 #668 #625]: false
+#629 := [lemma #624]: #626
+#575 := [unit-resolution #629 #584 #632 #582]: #627
+#666 := (>= #751 0::int)
+#640 := (or #658 #666)
+#636 := [th-lemma]: #640
+#641 := [unit-resolution #636 #680]: #666
+#711 := (* -1::int #56)
+#712 := (+ #54 #711)
+#722 := (<= #712 0::int)