updated SMT certificates
authorboehmes
Mon, 03 Jan 2011 16:49:28 +0100
changeset 41427 5fbad0390649
parent 41426 09615ed31f04
child 41428 44511bf5dcc6
updated SMT certificates
src/HOL/SMT_Examples/SMT_Tests.certs
src/HOL/SMT_Examples/SMT_Tests.thy
--- a/src/HOL/SMT_Examples/SMT_Tests.certs	Mon Jan 03 16:22:08 2011 +0100
+++ b/src/HOL/SMT_Examples/SMT_Tests.certs	Mon Jan 03 16:49:28 2011 +0100
@@ -50919,6 +50919,4834 @@
 #207 := [unit-resolution #173 #546]: #242
 [unit-resolution #207 #552]: false
 unsat
+49afcc0d7e8a703cc498df193e407add0e832e10 72 0
+#2 := false
+decl f4 :: (-> S4 S5 S5)
+decl f9 :: S5
+#22 := f9
+decl f16 :: S4
+#59 := f16
+#60 := (f4 f16 f9)
+#270 := (f4 f16 #60)
+#343 := (= f9 #270)
+#320 := (= #60 #270)
+#336 := (= #270 #60)
+#61 := (= #60 f9)
+#146 := (= f9 #60)
+#62 := (not #61)
+#63 := (not #62)
+#158 := (iff #63 #146)
+#150 := (not #146)
+#153 := (not #150)
+#156 := (iff #153 #146)
+#157 := [rewrite]: #156
+#154 := (iff #63 #153)
+#151 := (iff #62 #150)
+#148 := (iff #61 #146)
+#149 := [rewrite]: #148
+#152 := [monotonicity #149]: #151
+#155 := [monotonicity #152]: #154
+#159 := [trans #155 #157]: #158
+#145 := [asserted]: #63
+#162 := [mp #145 #159]: #146
+#678 := [symm #162]: #61
+#679 := [monotonicity #678]: #336
+#663 := [symm #679]: #320
+#324 := [trans #162 #663]: #343
+#337 := (not #343)
+#11 := (:var 0 S5)
+#10 := (:var 1 S4)
+#12 := (f4 #10 #11)
+#717 := (pattern #12)
+#38 := (= #12 f9)
+#39 := (not #38)
+#718 := (forall (vars (?v0 S4) (?v1 S5)) (:pat #717) #39)
+#40 := (forall (vars (?v0 S4) (?v1 S5)) #39)
+#721 := (iff #40 #718)
+#719 := (iff #39 #39)
+#720 := [refl]: #719
+#722 := [quant-intro #720]: #721
+#165 := (~ #40 #40)
+#167 := (~ #39 #39)
+#164 := [refl]: #167
+#161 := [nnf-pos #164]: #165
+#100 := [asserted]: #40
+#163 := [mp~ #100 #161]: #40
+#723 := [mp #163 #722]: #718
+#348 := (not #718)
+#349 := (or #348 #337)
+#362 := (= #270 f9)
+#290 := (not #362)
+#683 := (or #348 #290)
+#685 := (iff #683 #349)
+#681 := (iff #349 #349)
+#687 := [rewrite]: #681
+#469 := (iff #290 #337)
+#680 := (iff #362 #343)
+#682 := [rewrite]: #680
+#676 := [monotonicity #682]: #469
+#686 := [monotonicity #676]: #685
+#677 := [trans #686 #687]: #685
+#684 := [quant-inst #59 #60]: #683
+#335 := [mp #684 #677]: #349
+#340 := [unit-resolution #335 #723]: #337
+[unit-resolution #340 #324]: false
+unsat
+04befb37cbbc5695f38171536eac721870f8c5ee 59 0
+#2 := false
+decl f4 :: (-> S4 S5 S5)
+decl f9 :: S5
+#22 := f9
+decl f17 :: S4
+#60 := f17
+#61 := (f4 f17 f9)
+decl f16 :: S4
+#59 := f16
+#62 := (f4 f16 #61)
+#148 := (= f9 #62)
+#63 := (= #62 f9)
+#64 := (not #63)
+#65 := (not #64)
+#160 := (iff #65 #148)
+#152 := (not #148)
+#155 := (not #152)
+#158 := (iff #155 #148)
+#159 := [rewrite]: #158
+#156 := (iff #65 #155)
+#153 := (iff #64 #152)
+#150 := (iff #63 #148)
+#151 := [rewrite]: #150
+#154 := [monotonicity #151]: #153
+#157 := [monotonicity #154]: #156
+#161 := [trans #157 #159]: #160
+#147 := [asserted]: #65
+#164 := [mp #147 #161]: #148
+#11 := (:var 0 S5)
+#10 := (:var 1 S4)
+#12 := (f4 #10 #11)
+#719 := (pattern #12)
+#38 := (= #12 f9)
+#39 := (not #38)
+#720 := (forall (vars (?v0 S4) (?v1 S5)) (:pat #719) #39)
+#40 := (forall (vars (?v0 S4) (?v1 S5)) #39)
+#723 := (iff #40 #720)
+#721 := (iff #39 #39)
+#722 := [refl]: #721
+#724 := [quant-intro #722]: #723
+#167 := (~ #40 #40)
+#169 := (~ #39 #39)
+#166 := [refl]: #169
+#163 := [nnf-pos #166]: #167
+#102 := [asserted]: #40
+#165 := [mp~ #102 #163]: #40
+#725 := [mp #165 #724]: #720
+#351 := (not #720)
+#635 := (or #351 #152)
+#636 := (or #351 #64)
+#633 := (iff #636 #635)
+#640 := (iff #635 #635)
+#634 := [rewrite]: #640
+#639 := [monotonicity #154]: #633
+#641 := [trans #639 #634]: #633
+#632 := [quant-inst #59 #61]: #636
+#470 := [mp #632 #641]: #635
+[unit-resolution #470 #725 #164]: false
+unsat
+b0341ff23e5abb796f1191ac954b55a496b57644 136 0
+#2 := false
+decl f4 :: (-> S4 S5 S5)
+decl f9 :: S5
+#22 := f9
+decl f17 :: S4
+#60 := f17
+#64 := (f4 f17 f9)
+decl f16 :: S4
+#59 := f16
+#63 := (f4 f16 f9)
+#65 := (= #63 #64)
+#61 := (= f16 f17)
+#386 := (iff #61 #65)
+#373 := (not #386)
+#66 := (not #65)
+#151 := (or #61 #66)
+#155 := (not #151)
+#62 := (not #61)
+#67 := (implies #62 #66)
+#68 := (not #67)
+#156 := (iff #68 #155)
+#153 := (iff #67 #151)
+#154 := [rewrite]: #153
+#157 := [monotonicity #154]: #156
+#150 := [asserted]: #68
+#160 := [mp #150 #157]: #155
+#159 := [not-or-elim #160]: #65
+#158 := [not-or-elim #160]: #62
+#651 := (or #373 #61 #66)
+#652 := [def-axiom]: #651
+#621 := [unit-resolution #652 #158 #159]: #373
+#45 := (:var 2 S5)
+#44 := (:var 3 S4)
+#46 := (f4 #44 #45)
+#11 := (:var 0 S5)
+#10 := (:var 1 S4)
+#12 := (f4 #10 #11)
+#724 := (pattern #12 #46)
+#122 := (= #11 #45)
+#201 := (not #122)
+#119 := (= #10 #44)
+#200 := (not #119)
+#202 := (or #200 #201)
+#203 := (not #202)
+#115 := (= #12 #46)
+#206 := (iff #115 #203)
+#725 := (forall (vars (?v0 S4) (?v1 S5) (?v2 S4) (?v3 S5)) (:pat #724) #206)
+#209 := (forall (vars (?v0 S4) (?v1 S5) (?v2 S4) (?v3 S5)) #206)
+#728 := (iff #209 #725)
+#726 := (iff #206 #206)
+#727 := [refl]: #726
+#729 := [quant-intro #727]: #728
+#125 := (and #119 #122)
+#128 := (iff #115 #125)
+#131 := (forall (vars (?v0 S4) (?v1 S5) (?v2 S4) (?v3 S5)) #128)
+#210 := (iff #131 #209)
+#207 := (iff #128 #206)
+#204 := (iff #125 #203)
+#205 := [rewrite]: #204
+#208 := [monotonicity #205]: #207
+#211 := [quant-intro #208]: #210
+#187 := (~ #131 #131)
+#162 := (~ #128 #128)
+#163 := [refl]: #162
+#188 := [nnf-pos #163]: #187
+#49 := (= #45 #11)
+#48 := (= #44 #10)
+#50 := (and #48 #49)
+#47 := (= #46 #12)
+#51 := (iff #47 #50)
+#52 := (forall (vars (?v0 S4) (?v1 S5) (?v2 S4) (?v3 S5)) #51)
+#132 := (iff #52 #131)
+#129 := (iff #51 #128)
+#126 := (iff #50 #125)
+#123 := (iff #49 #122)
+#124 := [rewrite]: #123
+#120 := (iff #48 #119)
+#121 := [rewrite]: #120
+#127 := [monotonicity #121 #124]: #126
+#117 := (iff #47 #115)
+#118 := [rewrite]: #117
+#130 := [monotonicity #118 #127]: #129
+#133 := [quant-intro #130]: #132
+#114 := [asserted]: #52
+#136 := [mp #114 #133]: #131
+#189 := [mp~ #136 #188]: #131
+#212 := [mp #189 #211]: #209
+#730 := [mp #212 #729]: #725
+#658 := (not #725)
+#380 := (or #658 #386)
+#335 := (= f9 f9)
+#340 := (not #335)
+#678 := (or #62 #340)
+#336 := (not #678)
+#679 := (iff #65 #336)
+#381 := (or #658 #679)
+#659 := (iff #381 #380)
+#660 := (iff #380 #380)
+#369 := [rewrite]: #660
+#278 := (iff #679 #386)
+#368 := (iff #65 #61)
+#372 := (iff #368 #386)
+#387 := [rewrite]: #372
+#384 := (iff #679 #368)
+#661 := (iff #336 #61)
+#311 := (not #62)
+#672 := (iff #311 #61)
+#675 := [rewrite]: #672
+#312 := (iff #336 #311)
+#671 := (iff #678 #62)
+#668 := (or #62 false)
+#670 := (iff #668 #62)
+#306 := [rewrite]: #670
+#669 := (iff #678 #668)
+#666 := (iff #340 false)
+#1 := true
+#324 := (not true)
+#327 := (iff #324 false)
+#665 := [rewrite]: #327
+#325 := (iff #340 #324)
+#320 := (iff #335 true)
+#663 := [rewrite]: #320
+#326 := [monotonicity #663]: #325
+#667 := [trans #326 #665]: #666
+#664 := [monotonicity #667]: #669
+#673 := [trans #664 #306]: #671
+#674 := [monotonicity #673]: #312
+#662 := [trans #674 #675]: #661
+#385 := [monotonicity #662]: #384
+#657 := [trans #385 #387]: #278
+#656 := [monotonicity #657]: #659
+#370 := [trans #656 #369]: #659
+#655 := [quant-inst #60 #22 #59 #22]: #381
+#371 := [mp #655 #370]: #380
+[unit-resolution #371 #730 #621]: false
+unsat
+fff2cbf089f9102929d14127f6531c5541969006 50 0
+#2 := false
+decl f15 :: (-> S5 S4)
+decl f4 :: (-> S4 S5 S5)
+decl f17 :: S5
+#60 := f17
+decl f16 :: S4
+#59 := f16
+#61 := (f4 f16 f17)
+#62 := (f15 #61)
+#147 := (= f16 #62)
+#151 := (not #147)
+#63 := (= #62 f16)
+#64 := (not #63)
+#152 := (iff #64 #151)
+#149 := (iff #63 #147)
+#150 := [rewrite]: #149
+#153 := [monotonicity #150]: #152
+#146 := [asserted]: #64
+#156 := [mp #146 #153]: #151
+#11 := (:var 0 S5)
+#10 := (:var 1 S4)
+#12 := (f4 #10 #11)
+#711 := (pattern #12)
+#56 := (f15 #12)
+#139 := (= #10 #56)
+#731 := (forall (vars (?v0 S4) (?v1 S5)) (:pat #711) #139)
+#143 := (forall (vars (?v0 S4) (?v1 S5)) #139)
+#734 := (iff #143 #731)
+#732 := (iff #139 #139)
+#733 := [refl]: #732
+#735 := [quant-intro #733]: #734
+#191 := (~ #143 #143)
+#189 := (~ #139 #139)
+#190 := [refl]: #189
+#192 := [nnf-pos #190]: #191
+#57 := (= #56 #10)
+#58 := (forall (vars (?v0 S4) (?v1 S5)) #57)
+#144 := (iff #58 #143)
+#141 := (iff #57 #139)
+#142 := [rewrite]: #141
+#145 := [quant-intro #142]: #144
+#138 := [asserted]: #58
+#148 := [mp #138 #145]: #143
+#193 := [mp~ #148 #192]: #143
+#736 := [mp #193 #735]: #731
+#265 := (not #731)
+#352 := (or #265 #147)
+#266 := [quant-inst #59 #60]: #352
+[unit-resolution #266 #736 #156]: false
+unsat
+affee22ddd78a2e982940d231a35763dd8db5ff1 50 0
+#2 := false
+decl f14 :: (-> S5 S5)
+decl f4 :: (-> S4 S5 S5)
+decl f17 :: S5
+#60 := f17
+decl f16 :: S4
+#59 := f16
+#61 := (f4 f16 f17)
+#62 := (f14 #61)
+#147 := (= f17 #62)
+#151 := (not #147)
+#63 := (= #62 f17)
+#64 := (not #63)
+#152 := (iff #64 #151)
+#149 := (iff #63 #147)
+#150 := [rewrite]: #149
+#153 := [monotonicity #150]: #152
+#146 := [asserted]: #64
+#156 := [mp #146 #153]: #151
+#11 := (:var 0 S5)
+#10 := (:var 1 S4)
+#12 := (f4 #10 #11)
+#711 := (pattern #12)
+#53 := (f14 #12)
+#131 := (= #11 #53)
+#725 := (forall (vars (?v0 S4) (?v1 S5)) (:pat #711) #131)
+#135 := (forall (vars (?v0 S4) (?v1 S5)) #131)
+#728 := (iff #135 #725)
+#726 := (iff #131 #131)
+#727 := [refl]: #726
+#729 := [quant-intro #727]: #728
+#186 := (~ #135 #135)
+#184 := (~ #131 #131)
+#185 := [refl]: #184
+#187 := [nnf-pos #185]: #186
+#54 := (= #53 #11)
+#55 := (forall (vars (?v0 S4) (?v1 S5)) #54)
+#136 := (iff #55 #135)
+#133 := (iff #54 #131)
+#134 := [rewrite]: #133
+#137 := [quant-intro #134]: #136
+#130 := [asserted]: #55
+#140 := [mp #130 #137]: #135
+#188 := [mp~ #140 #187]: #135
+#730 := [mp #188 #729]: #725
+#355 := (not #725)
+#356 := (or #355 #147)
+#284 := [quant-inst #59 #60]: #356
+[unit-resolution #284 #730 #156]: false
+unsat
+9aafa835b8aaa001d18bcde9a4c11eddfa9c9649 56 0
+#2 := false
+decl f15 :: (-> S5 S4)
+decl f4 :: (-> S4 S5 S5)
+decl f9 :: S5
+#22 := f9
+decl f18 :: S4
+#61 := f18
+#62 := (f4 f18 f9)
+decl f17 :: S4
+#60 := f17
+#63 := (f4 f17 #62)
+decl f16 :: S4
+#59 := f16
+#64 := (f4 f16 #63)
+#65 := (f15 #64)
+#150 := (= f16 #65)
+#154 := (not #150)
+#66 := (= #65 f16)
+#67 := (not #66)
+#155 := (iff #67 #154)
+#152 := (iff #66 #150)
+#153 := [rewrite]: #152
+#156 := [monotonicity #153]: #155
+#149 := [asserted]: #67
+#159 := [mp #149 #156]: #154
+#11 := (:var 0 S5)
+#10 := (:var 1 S4)
+#12 := (f4 #10 #11)
+#714 := (pattern #12)
+#56 := (f15 #12)
+#142 := (= #10 #56)
+#734 := (forall (vars (?v0 S4) (?v1 S5)) (:pat #714) #142)
+#146 := (forall (vars (?v0 S4) (?v1 S5)) #142)
+#737 := (iff #146 #734)
+#735 := (iff #142 #142)
+#736 := [refl]: #735
+#738 := [quant-intro #736]: #737
+#194 := (~ #146 #146)
+#192 := (~ #142 #142)
+#193 := [refl]: #192
+#195 := [nnf-pos #193]: #194
+#57 := (= #56 #10)
+#58 := (forall (vars (?v0 S4) (?v1 S5)) #57)
+#147 := (iff #58 #146)
+#144 := (iff #57 #142)
+#145 := [rewrite]: #144
+#148 := [quant-intro #145]: #147
+#141 := [asserted]: #58
+#151 := [mp #141 #148]: #146
+#196 := [mp~ #151 #195]: #146
+#739 := [mp #196 #738]: #734
+#269 := (not #734)
+#516 := (or #269 #150)
+#517 := [quant-inst #59 #63]: #516
+[unit-resolution #517 #739 #159]: false
+unsat
+5f1277eca9b4949514eac16a5c81e154e20379e5 56 0
+#2 := false
+decl f14 :: (-> S5 S5)
+decl f4 :: (-> S4 S5 S5)
+decl f9 :: S5
+#22 := f9
+decl f18 :: S4
+#61 := f18
+#62 := (f4 f18 f9)
+decl f17 :: S4
+#60 := f17
+#63 := (f4 f17 #62)
+decl f16 :: S4
+#59 := f16
+#64 := (f4 f16 #63)
+#65 := (f14 #64)
+#150 := (= #63 #65)
+#154 := (not #150)
+#66 := (= #65 #63)
+#67 := (not #66)
+#155 := (iff #67 #154)
+#152 := (iff #66 #150)
+#153 := [rewrite]: #152
+#156 := [monotonicity #153]: #155
+#149 := [asserted]: #67
+#159 := [mp #149 #156]: #154
+#11 := (:var 0 S5)
+#10 := (:var 1 S4)
+#12 := (f4 #10 #11)
+#714 := (pattern #12)
+#53 := (f14 #12)
+#134 := (= #11 #53)
+#728 := (forall (vars (?v0 S4) (?v1 S5)) (:pat #714) #134)
+#138 := (forall (vars (?v0 S4) (?v1 S5)) #134)
+#731 := (iff #138 #728)
+#729 := (iff #134 #134)
+#730 := [refl]: #729
+#732 := [quant-intro #730]: #731
+#189 := (~ #138 #138)
+#187 := (~ #134 #134)
+#188 := [refl]: #187
+#190 := [nnf-pos #188]: #189
+#54 := (= #53 #11)
+#55 := (forall (vars (?v0 S4) (?v1 S5)) #54)
+#139 := (iff #55 #138)
+#136 := (iff #54 #134)
+#137 := [rewrite]: #136
+#140 := [quant-intro #137]: #139
+#133 := [asserted]: #55
+#143 := [mp #133 #140]: #138
+#191 := [mp~ #143 #190]: #138
+#733 := [mp #191 #732]: #728
+#287 := (not #728)
+#528 := (or #287 #150)
+#483 := [quant-inst #59 #63]: #528
+[unit-resolution #483 #733 #159]: false
+unsat
+3d958afb574f2b777d342f1a937e466d602feddd 95 0
+#2 := false
+decl f15 :: (-> S5 S4)
+decl f14 :: (-> S5 S5)
+decl f4 :: (-> S4 S5 S5)
+decl f9 :: S5
+#22 := f9
+decl f18 :: S4
+#61 := f18
+#62 := (f4 f18 f9)
+decl f17 :: S4
+#60 := f17
+#63 := (f4 f17 #62)
+decl f16 :: S4
+#59 := f16
+#64 := (f4 f16 #63)
+#65 := (f14 #64)
+#66 := (f15 #65)
+#151 := (= f17 #66)
+#617 := (f15 #63)
+#435 := (= #617 #66)
+#439 := (= #66 #617)
+#434 := (= #65 #63)
+#517 := (= #63 #65)
+#11 := (:var 0 S5)
+#10 := (:var 1 S4)
+#12 := (f4 #10 #11)
+#715 := (pattern #12)
+#53 := (f14 #12)
+#135 := (= #11 #53)
+#729 := (forall (vars (?v0 S4) (?v1 S5)) (:pat #715) #135)
+#139 := (forall (vars (?v0 S4) (?v1 S5)) #135)
+#732 := (iff #139 #729)
+#730 := (iff #135 #135)
+#731 := [refl]: #730
+#733 := [quant-intro #731]: #732
+#190 := (~ #139 #139)
+#188 := (~ #135 #135)
+#189 := [refl]: #188
+#191 := [nnf-pos #189]: #190
+#54 := (= #53 #11)
+#55 := (forall (vars (?v0 S4) (?v1 S5)) #54)
+#140 := (iff #55 #139)
+#137 := (iff #54 #135)
+#138 := [rewrite]: #137
+#141 := [quant-intro #138]: #140
+#134 := [asserted]: #55
+#144 := [mp #134 #141]: #139
+#192 := [mp~ #144 #191]: #139
+#734 := [mp #192 #733]: #729
+#288 := (not #729)
+#484 := (or #288 #517)
+#485 := [quant-inst #59 #63]: #484
+#433 := [unit-resolution #485 #734]: #517
+#438 := [symm #433]: #434
+#432 := [monotonicity #438]: #439
+#436 := [symm #432]: #435
+#621 := (= f17 #617)
+#56 := (f15 #12)
+#143 := (= #10 #56)
+#735 := (forall (vars (?v0 S4) (?v1 S5)) (:pat #715) #143)
+#147 := (forall (vars (?v0 S4) (?v1 S5)) #143)
+#738 := (iff #147 #735)
+#736 := (iff #143 #143)
+#737 := [refl]: #736
+#739 := [quant-intro #737]: #738
+#195 := (~ #147 #147)
+#193 := (~ #143 #143)
+#194 := [refl]: #193
+#196 := [nnf-pos #194]: #195
+#57 := (= #56 #10)
+#58 := (forall (vars (?v0 S4) (?v1 S5)) #57)
+#148 := (iff #58 #147)
+#145 := (iff #57 #143)
+#146 := [rewrite]: #145
+#149 := [quant-intro #146]: #148
+#142 := [asserted]: #58
+#152 := [mp #142 #149]: #147
+#197 := [mp~ #152 #196]: #147
+#740 := [mp #197 #739]: #735
+#270 := (not #735)
+#602 := (or #270 #621)
+#599 := [quant-inst #60 #62]: #602
+#431 := [unit-resolution #599 #740]: #621
+#422 := [trans #431 #436]: #151
+#155 := (not #151)
+#67 := (= #66 f17)
+#68 := (not #67)
+#156 := (iff #68 #155)
+#153 := (iff #67 #151)
+#154 := [rewrite]: #153
+#157 := [monotonicity #154]: #156
+#150 := [asserted]: #68
+#160 := [mp #150 #157]: #155
+[unit-resolution #160 #422]: false
+unsat
+27c15c60b6aaec6351efe83812dce879a8ad44d1 71 0
+#2 := false
+decl f14 :: (-> S5 S5)
+decl f4 :: (-> S4 S5 S5)
+decl f9 :: S5
+#22 := f9
+decl f18 :: S4
+#61 := f18
+#62 := (f4 f18 f9)
+decl f17 :: S4
+#60 := f17
+#63 := (f4 f17 #62)
+decl f16 :: S4
+#59 := f16
+#64 := (f4 f16 #63)
+#65 := (f14 #64)
+#66 := (f14 #65)
+#151 := (= #62 #66)
+#608 := (f14 #63)
+#435 := (= #608 #66)
+#439 := (= #66 #608)
+#434 := (= #65 #63)
+#517 := (= #63 #65)
+#11 := (:var 0 S5)
+#10 := (:var 1 S4)
+#12 := (f4 #10 #11)
+#715 := (pattern #12)
+#53 := (f14 #12)
+#135 := (= #11 #53)
+#729 := (forall (vars (?v0 S4) (?v1 S5)) (:pat #715) #135)
+#139 := (forall (vars (?v0 S4) (?v1 S5)) #135)
+#732 := (iff #139 #729)
+#730 := (iff #135 #135)
+#731 := [refl]: #730
+#733 := [quant-intro #731]: #732
+#190 := (~ #139 #139)
+#188 := (~ #135 #135)
+#189 := [refl]: #188
+#191 := [nnf-pos #189]: #190
+#54 := (= #53 #11)
+#55 := (forall (vars (?v0 S4) (?v1 S5)) #54)
+#140 := (iff #55 #139)
+#137 := (iff #54 #135)
+#138 := [rewrite]: #137
+#141 := [quant-intro #138]: #140
+#134 := [asserted]: #55
+#144 := [mp #134 #141]: #139
+#192 := [mp~ #144 #191]: #139
+#734 := [mp #192 #733]: #729
+#288 := (not #729)
+#484 := (or #288 #517)
+#485 := [quant-inst #59 #63]: #484
+#433 := [unit-resolution #485 #734]: #517
+#438 := [symm #433]: #434
+#432 := [monotonicity #438]: #439
+#436 := [symm #432]: #435
+#610 := (= #62 #608)
+#612 := (or #288 #610)
+#613 := [quant-inst #60 #62]: #612
+#431 := [unit-resolution #613 #734]: #610
+#422 := [trans #431 #436]: #151
+#155 := (not #151)
+#67 := (= #66 #62)
+#68 := (not #67)
+#156 := (iff #68 #155)
+#153 := (iff #67 #151)
+#154 := [rewrite]: #153
+#157 := [monotonicity #154]: #156
+#150 := [asserted]: #68
+#160 := [mp #150 #157]: #155
+[unit-resolution #160 #422]: false
+unsat
+a98c8f96e82461af4b3fef055b4043eba1bf782f 97 0
+#2 := false
+decl f17 :: (-> S4 S15)
+decl f15 :: (-> S5 S4)
+decl f4 :: (-> S4 S5 S5)
+decl f9 :: S5
+#22 := f9
+decl f16 :: (-> S15 S16 S4)
+decl f20 :: S16
+#75 := f20
+decl f19 :: S15
+#74 := f19
+#76 := (f16 f19 f20)
+#77 := (f4 #76 f9)
+#78 := (f15 #77)
+#79 := (f17 #78)
+#188 := (= f19 #79)
+#374 := (f17 #76)
+#361 := (= #374 #79)
+#721 := (= #79 #374)
+#717 := (= #78 #76)
+#320 := (= #76 #78)
+#11 := (:var 0 S5)
+#10 := (:var 1 S4)
+#12 := (f4 #10 #11)
+#767 := (pattern #12)
+#56 := (f15 #12)
+#156 := (= #10 #56)
+#787 := (forall (vars (?v0 S4) (?v1 S5)) (:pat #767) #156)
+#160 := (forall (vars (?v0 S4) (?v1 S5)) #156)
+#790 := (iff #160 #787)
+#788 := (iff #156 #156)
+#789 := [refl]: #788
+#791 := [quant-intro #789]: #790
+#232 := (~ #160 #160)
+#230 := (~ #156 #156)
+#231 := [refl]: #230
+#233 := [nnf-pos #231]: #232
+#57 := (= #56 #10)
+#58 := (forall (vars (?v0 S4) (?v1 S5)) #57)
+#161 := (iff #58 #160)
+#158 := (iff #57 #156)
+#159 := [rewrite]: #158
+#162 := [quant-intro #159]: #161
+#155 := [asserted]: #58
+#165 := [mp #155 #162]: #160
+#234 := [mp~ #165 #233]: #160
+#792 := [mp #234 #791]: #787
+#408 := (not #787)
+#322 := (or #408 #320)
+#409 := [quant-inst #76 #22]: #322
+#716 := [unit-resolution #409 #792]: #320
+#720 := [symm #716]: #717
+#723 := [monotonicity #720]: #721
+#362 := [symm #723]: #361
+#375 := (= f19 #374)
+#66 := (:var 0 S16)
+#65 := (:var 1 S15)
+#67 := (f16 #65 #66)
+#801 := (pattern #67)
+#71 := (f17 #67)
+#180 := (= #65 #71)
+#808 := (forall (vars (?v0 S15) (?v1 S16)) (:pat #801) #180)
+#184 := (forall (vars (?v0 S15) (?v1 S16)) #180)
+#811 := (iff #184 #808)
+#809 := (iff #180 #180)
+#810 := [refl]: #809
+#812 := [quant-intro #810]: #811
+#247 := (~ #184 #184)
+#245 := (~ #180 #180)
+#246 := [refl]: #245
+#248 := [nnf-pos #246]: #247
+#72 := (= #71 #65)
+#73 := (forall (vars (?v0 S15) (?v1 S16)) #72)
+#185 := (iff #73 #184)
+#182 := (iff #72 #180)
+#183 := [rewrite]: #182
+#186 := [quant-intro #183]: #185
+#179 := [asserted]: #73
+#189 := [mp #179 #186]: #184
+#249 := [mp~ #189 #248]: #184
+#813 := [mp #249 #812]: #808
+#718 := (not #808)
+#719 := (or #718 #375)
+#714 := [quant-inst #74 #75]: #719
+#356 := [unit-resolution #714 #813]: #375
+#724 := [trans #356 #362]: #188
+#192 := (not #188)
+#80 := (= #79 f19)
+#81 := (not #80)
+#193 := (iff #81 #192)
+#190 := (iff #80 #188)
+#191 := [rewrite]: #190
+#194 := [monotonicity #191]: #193
+#187 := [asserted]: #81
+#197 := [mp #187 #194]: #192
+[unit-resolution #197 #724]: false
+unsat
+81664cdfae8156255b7987f37aef4ab63fd862c1 97 0
+#2 := false
+decl f18 :: (-> S4 S16)
+decl f15 :: (-> S5 S4)
+decl f4 :: (-> S4 S5 S5)
+decl f9 :: S5
+#22 := f9
+decl f16 :: (-> S15 S16 S4)
+decl f20 :: S16
+#75 := f20
+decl f19 :: S15
+#74 := f19
+#76 := (f16 f19 f20)
+#77 := (f4 #76 f9)
+#78 := (f15 #77)
+#79 := (f18 #78)
+#188 := (= f20 #79)
+#728 := (f18 #76)
+#361 := (= #728 #79)
+#721 := (= #79 #728)
+#717 := (= #78 #76)
+#320 := (= #76 #78)
+#11 := (:var 0 S5)
+#10 := (:var 1 S4)
+#12 := (f4 #10 #11)
+#767 := (pattern #12)
+#56 := (f15 #12)
+#156 := (= #10 #56)
+#787 := (forall (vars (?v0 S4) (?v1 S5)) (:pat #767) #156)
+#160 := (forall (vars (?v0 S4) (?v1 S5)) #156)
+#790 := (iff #160 #787)
+#788 := (iff #156 #156)
+#789 := [refl]: #788
+#791 := [quant-intro #789]: #790
+#232 := (~ #160 #160)
+#230 := (~ #156 #156)
+#231 := [refl]: #230
+#233 := [nnf-pos #231]: #232
+#57 := (= #56 #10)
+#58 := (forall (vars (?v0 S4) (?v1 S5)) #57)
+#161 := (iff #58 #160)
+#158 := (iff #57 #156)
+#159 := [rewrite]: #158
+#162 := [quant-intro #159]: #161
+#155 := [asserted]: #58
+#165 := [mp #155 #162]: #160
+#234 := [mp~ #165 #233]: #160
+#792 := [mp #234 #791]: #787
+#408 := (not #787)
+#322 := (or #408 #320)
+#409 := [quant-inst #76 #22]: #322
+#716 := [unit-resolution #409 #792]: #320
+#720 := [symm #716]: #717
+#723 := [monotonicity #720]: #721
+#362 := [symm #723]: #361
+#386 := (= f20 #728)
+#66 := (:var 0 S16)
+#65 := (:var 1 S15)
+#67 := (f16 #65 #66)
+#801 := (pattern #67)
+#68 := (f18 #67)
+#172 := (= #66 #68)
+#802 := (forall (vars (?v0 S15) (?v1 S16)) (:pat #801) #172)
+#176 := (forall (vars (?v0 S15) (?v1 S16)) #172)
+#805 := (iff #176 #802)
+#803 := (iff #172 #172)
+#804 := [refl]: #803
+#806 := [quant-intro #804]: #805
+#242 := (~ #176 #176)
+#240 := (~ #172 #172)
+#241 := [refl]: #240
+#243 := [nnf-pos #241]: #242
+#69 := (= #68 #66)
+#70 := (forall (vars (?v0 S15) (?v1 S16)) #69)
+#177 := (iff #70 #176)
+#174 := (iff #69 #172)
+#175 := [rewrite]: #174
+#178 := [quant-intro #175]: #177
+#171 := [asserted]: #70
+#181 := [mp #171 #178]: #176
+#244 := [mp~ #181 #243]: #176
+#807 := [mp #244 #806]: #802
+#376 := (not #802)
+#377 := (or #376 #386)
+#715 := [quant-inst #74 #75]: #377
+#356 := [unit-resolution #715 #807]: #386
+#724 := [trans #356 #362]: #188
+#192 := (not #188)
+#80 := (= #79 f20)
+#81 := (not #80)
+#193 := (iff #81 #192)
+#190 := (iff #80 #188)
+#191 := [rewrite]: #190
+#194 := [monotonicity #191]: #193
+#187 := [asserted]: #81
+#197 := [mp #187 #194]: #192
+[unit-resolution #197 #724]: false
+unsat
+cf613377475a54ad92f6fa8003d09874c4dd987e 27 0
+#2 := false
+decl f11 :: (-> S4 Int)
+decl f13 :: S4
+#39 := f13
+#42 := (f11 f13)
+decl f12 :: S4
+#38 := f12
+#41 := (f11 f12)
+#43 := (= #41 #42)
+#40 := (= f12 f13)
+#92 := (not #40)
+#94 := (or #92 #43)
+#97 := (not #94)
+#44 := (implies #40 #43)
+#45 := (not #44)
+#98 := (iff #45 #97)
+#95 := (iff #44 #94)
+#96 := [rewrite]: #95
+#99 := [monotonicity #96]: #98
+#91 := [asserted]: #45
+#102 := [mp #91 #99]: #97
+#100 := [not-or-elim #102]: #40
+#277 := [monotonicity #100]: #43
+#101 := (not #43)
+#103 := [not-or-elim #102]: #101
+[unit-resolution #103 #277]: false
+unsat
+6d6860bfe81ec3edbe1c99a18aabbf9ae1253e74 27 0
+#2 := false
+decl f10 :: (-> S4 Int)
+decl f13 :: S4
+#39 := f13
+#42 := (f10 f13)
+decl f12 :: S4
+#38 := f12
+#41 := (f10 f12)
+#43 := (= #41 #42)
+#40 := (= f12 f13)
+#92 := (not #40)
+#94 := (or #92 #43)
+#97 := (not #94)
+#44 := (implies #40 #43)
+#45 := (not #44)
+#98 := (iff #45 #97)
+#95 := (iff #44 #94)
+#96 := [rewrite]: #95
+#99 := [monotonicity #96]: #98
+#91 := [asserted]: #45
+#102 := [mp #91 #99]: #97
+#100 := [not-or-elim #102]: #40
+#277 := [monotonicity #100]: #43
+#101 := (not #43)
+#103 := [not-or-elim #102]: #101
+[unit-resolution #103 #277]: false
+unsat
+ef081363dddbf9a4a6afa336a6060e79996228d7 27 0
+#2 := false
+decl f11 :: (-> S4 Int)
+decl f13 :: S4
+#40 := f13
+#41 := (f11 f13)
+decl f12 :: S4
+#38 := f12
+#39 := (f11 f12)
+#42 := (= #39 #41)
+#44 := (= f12 f13)
+#45 := (not #44)
+#94 := (or #42 #45)
+#98 := (not #94)
+#43 := (not #42)
+#46 := (implies #43 #45)
+#47 := (not #46)
+#99 := (iff #47 #98)
+#96 := (iff #46 #94)
+#97 := [rewrite]: #96
+#100 := [monotonicity #97]: #99
+#93 := [asserted]: #47
+#103 := [mp #93 #100]: #98
+#102 := [not-or-elim #103]: #44
+#277 := [monotonicity #102]: #42
+#101 := [not-or-elim #103]: #43
+[unit-resolution #101 #277]: false
+unsat
+903c4f7ca1d07607d314979b3f7a41a8fc46e4c9 27 0
+#2 := false
+decl f10 :: (-> S4 Int)
+decl f13 :: S4
+#40 := f13
+#41 := (f10 f13)
+decl f12 :: S4
+#38 := f12
+#39 := (f10 f12)
+#42 := (= #39 #41)
+#44 := (= f12 f13)
+#45 := (not #44)
+#94 := (or #42 #45)
+#98 := (not #94)
+#43 := (not #42)
+#46 := (implies #43 #45)
+#47 := (not #46)
+#99 := (iff #47 #98)
+#96 := (iff #46 #94)
+#97 := [rewrite]: #96
+#100 := [monotonicity #97]: #99
+#93 := [asserted]: #47
+#103 := [mp #93 #100]: #98
+#102 := [not-or-elim #103]: #44
+#277 := [monotonicity #102]: #42
+#101 := [not-or-elim #103]: #43
+[unit-resolution #101 #277]: false
+unsat
+c2ddf97e343f0f179028b651e27488b381d9b232 54 0
+#2 := false
+#38 := 3::Int
+decl f11 :: (-> S4 Int)
+decl f4 :: (-> Int Int S3 S4)
+decl f12 :: S3
+#40 := f12
+#39 := 4::Int
+#41 := (f4 3::Int 4::Int f12)
+#42 := (f11 #41)
+#43 := (= #42 3::Int)
+#44 := (not #43)
+#90 := [asserted]: #44
+#11 := (:var 0 S3)
+#10 := (:var 1 Int)
+#9 := (:var 2 Int)
+#12 := (f4 #9 #10 #11)
+#214 := (pattern #12)
+#35 := (f11 #12)
+#83 := (= #9 #35)
+#227 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S3)) (:pat #214) #83)
+#87 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S3)) #83)
+#230 := (iff #87 #227)
+#228 := (iff #83 #83)
+#229 := [refl]: #228
+#231 := [quant-intro #229]: #230
+#130 := (~ #87 #87)
+#128 := (~ #83 #83)
+#129 := [refl]: #128
+#131 := [nnf-pos #129]: #130
+#36 := (= #35 #9)
+#37 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S3)) #36)
+#88 := (iff #37 #87)
+#85 := (iff #36 #83)
+#86 := [rewrite]: #85
+#89 := [quant-intro #86]: #88
+#82 := [asserted]: #37
+#92 := [mp #82 #89]: #87
+#132 := [mp~ #92 #131]: #87
+#232 := [mp #132 #231]: #227
+#233 := (not #227)
+#234 := (or #233 #43)
+#91 := (= 3::Int #42)
+#235 := (or #233 #91)
+#237 := (iff #235 #234)
+#239 := (iff #234 #234)
+#240 := [rewrite]: #239
+#98 := (iff #91 #43)
+#99 := [rewrite]: #98
+#238 := [monotonicity #99]: #237
+#241 := [trans #238 #240]: #237
+#236 := [quant-inst #38 #39 #40]: #235
+#242 := [mp #236 #241]: #234
+[unit-resolution #242 #232 #90]: false
+unsat
+57a3abfe79abd00a70bcda611ae3d757ad63951c 54 0
+#2 := false
+#39 := 4::Int
+decl f10 :: (-> S4 Int)
+decl f4 :: (-> Int Int S3 S4)
+decl f12 :: S3
+#40 := f12
+#38 := 3::Int
+#41 := (f4 3::Int 4::Int f12)
+#42 := (f10 #41)
+#43 := (= #42 4::Int)
+#44 := (not #43)
+#90 := [asserted]: #44
+#11 := (:var 0 S3)
+#10 := (:var 1 Int)
+#9 := (:var 2 Int)
+#12 := (f4 #9 #10 #11)
+#214 := (pattern #12)
+#32 := (f10 #12)
+#75 := (= #10 #32)
+#221 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S3)) (:pat #214) #75)
+#79 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S3)) #75)
+#224 := (iff #79 #221)
+#222 := (iff #75 #75)
+#223 := [refl]: #222
+#225 := [quant-intro #223]: #224
+#125 := (~ #79 #79)
+#123 := (~ #75 #75)
+#124 := [refl]: #123
+#126 := [nnf-pos #124]: #125
+#33 := (= #32 #10)
+#34 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S3)) #33)
+#80 := (iff #34 #79)
+#77 := (iff #33 #75)
+#78 := [rewrite]: #77
+#81 := [quant-intro #78]: #80
+#74 := [asserted]: #34
+#84 := [mp #74 #81]: #79
+#127 := [mp~ #84 #126]: #79
+#226 := [mp #127 #225]: #221
+#248 := (not #221)
+#249 := (or #248 #43)
+#91 := (= 4::Int #42)
+#250 := (or #248 #91)
+#252 := (iff #250 #249)
+#254 := (iff #249 #249)
+#255 := [rewrite]: #254
+#98 := (iff #91 #43)
+#99 := [rewrite]: #98
+#253 := [monotonicity #99]: #252
+#256 := [trans #253 #255]: #252
+#251 := [quant-inst #38 #39 #40]: #250
+#257 := [mp #251 #256]: #249
+[unit-resolution #257 #226 #90]: false
+unsat
+1627078085337168675bc7c62614c7f389cf7cb9 109 0
+#2 := false
+#39 := 4::Int
+#38 := 3::Int
+#269 := (= 3::Int 4::Int)
+#271 := (iff #269 false)
+#272 := [rewrite]: #271
+decl f10 :: (-> S4 Int)
+decl f4 :: (-> Int Int S3 S4)
+decl f12 :: S3
+#40 := f12
+#41 := (f4 3::Int 4::Int f12)
+#43 := (f10 #41)
+#245 := (= #43 4::Int)
+#11 := (:var 0 S3)
+#10 := (:var 1 Int)
+#9 := (:var 2 Int)
+#12 := (f4 #9 #10 #11)
+#209 := (pattern #12)
+#32 := (f10 #12)
+#77 := (= #10 #32)
+#216 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S3)) (:pat #209) #77)
+#81 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S3)) #77)
+#219 := (iff #81 #216)
+#217 := (iff #77 #77)
+#218 := [refl]: #217
+#220 := [quant-intro #218]: #219
+#120 := (~ #81 #81)
+#118 := (~ #77 #77)
+#119 := [refl]: #118
+#121 := [nnf-pos #119]: #120
+#33 := (= #32 #10)
+#34 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S3)) #33)
+#82 := (iff #34 #81)
+#79 := (iff #33 #77)
+#80 := [rewrite]: #79
+#83 := [quant-intro #80]: #82
+#76 := [asserted]: #34
+#86 := [mp #76 #83]: #81
+#122 := [mp~ #86 #121]: #81
+#221 := [mp #122 #220]: #216
+#246 := (not #216)
+#247 := (or #246 #245)
+#242 := (= 4::Int #43)
+#248 := (or #246 #242)
+#250 := (iff #248 #247)
+#252 := (iff #247 #247)
+#253 := [rewrite]: #252
+#243 := (iff #242 #245)
+#244 := [rewrite]: #243
+#251 := [monotonicity #244]: #250
+#254 := [trans #251 #253]: #250
+#249 := [quant-inst #38 #39 #40]: #248
+#255 := [mp #249 #254]: #247
+#258 := [unit-resolution #255 #221]: #245
+#267 := (= 3::Int #43)
+#265 := (= #43 3::Int)
+decl f11 :: (-> S4 Int)
+#42 := (f11 #41)
+#231 := (= #42 3::Int)
+#35 := (f11 #12)
+#85 := (= #9 #35)
+#222 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S3)) (:pat #209) #85)
+#89 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S3)) #85)
+#225 := (iff #89 #222)
+#223 := (iff #85 #85)
+#224 := [refl]: #223
+#226 := [quant-intro #224]: #225
+#125 := (~ #89 #89)
+#123 := (~ #85 #85)
+#124 := [refl]: #123
+#126 := [nnf-pos #124]: #125
+#36 := (= #35 #9)
+#37 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S3)) #36)
+#90 := (iff #37 #89)
+#87 := (iff #36 #85)
+#88 := [rewrite]: #87
+#91 := [quant-intro #88]: #90
+#84 := [asserted]: #37
+#94 := [mp #84 #91]: #89
+#127 := [mp~ #94 #126]: #89
+#227 := [mp #127 #226]: #222
+#232 := (not #222)
+#233 := (or #232 #231)
+#228 := (= 3::Int #42)
+#234 := (or #232 #228)
+#236 := (iff #234 #233)
+#238 := (iff #233 #233)
+#239 := [rewrite]: #238
+#229 := (iff #228 #231)
+#230 := [rewrite]: #229
+#237 := [monotonicity #230]: #236
+#240 := [trans #237 #239]: #236
+#235 := [quant-inst #38 #39 #40]: #234
+#241 := [mp #235 #240]: #233
+#259 := [unit-resolution #241 #227]: #231
+#263 := (= #43 #42)
+#44 := (= #42 #43)
+#45 := (not #44)
+#46 := (not #45)
+#93 := (iff #46 #44)
+#95 := [rewrite]: #93
+#92 := [asserted]: #46
+#98 := [mp #92 #95]: #44
+#264 := [symm #98]: #263
+#266 := [trans #264 #259]: #265
+#268 := [symm #266]: #267
+#270 := [trans #268 #258]: #269
+[mp #270 #272]: false
+unsat
+5633d72176578081af78ab5b81311524f1bf4c82 73 0
+#2 := false
+decl f6 :: (-> Int Int S4 S5)
+decl f13 :: S4
+#47 := f13
+#46 := 4::Int
+#12 := 5::Int
+#50 := (f6 5::Int 4::Int f13)
+decl f9 :: (-> S2 S5 S5)
+#45 := 3::Int
+#48 := (f6 3::Int 4::Int f13)
+decl f4 :: S2
+#8 := f4
+#49 := (f9 f4 #48)
+#51 := (= #49 #50)
+decl f3 :: (-> S2 Int Int)
+#302 := (f3 f4 3::Int)
+#303 := (f6 #302 4::Int f13)
+#343 := (= #303 #50)
+#341 := (= #50 #303)
+#335 := (= 5::Int #302)
+#331 := (= #302 5::Int)
+#9 := (:var 0 Int)
+#10 := (f3 f4 #9)
+#11 := (pattern #10)
+#13 := (= #10 5::Int)
+#14 := (forall (vars (?v0 Int)) (:pat #11) #13)
+#104 := (~ #14 #14)
+#102 := (~ #13 #13)
+#103 := [refl]: #102
+#105 := [nnf-pos #103]: #104
+#72 := [asserted]: #14
+#106 := [mp~ #72 #105]: #14
+#336 := (not #14)
+#337 := (or #336 #331)
+#338 := [quant-inst #45]: #337
+#332 := [unit-resolution #338 #106]: #331
+#339 := [symm #332]: #335
+#342 := [monotonicity #339]: #341
+#344 := [symm #342]: #343
+#306 := (= #49 #303)
+#18 := (:var 0 S4)
+#17 := (:var 1 Int)
+#16 := (:var 2 Int)
+#25 := (:var 3 S2)
+#32 := (f3 #25 #16)
+#33 := (f6 #32 #17 #18)
+#211 := (pattern #33)
+#19 := (f6 #16 #17 #18)
+#31 := (f9 #25 #19)
+#210 := (pattern #31)
+#34 := (= #31 #33)
+#212 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S4)) (:pat #210 #211) #34)
+#35 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S4)) #34)
+#215 := (iff #35 #212)
+#213 := (iff #34 #34)
+#214 := [refl]: #213
+#216 := [quant-intro #214]: #215
+#119 := (~ #35 #35)
+#117 := (~ #34 #34)
+#118 := [refl]: #117
+#120 := [nnf-pos #118]: #119
+#75 := [asserted]: #35
+#121 := [mp~ #75 #120]: #35
+#217 := [mp #121 #216]: #212
+#309 := (not #212)
+#310 := (or #309 #306)
+#311 := [quant-inst #8 #45 #46 #47]: #310
+#340 := [unit-resolution #311 #217]: #306
+#345 := [trans #340 #344]: #51
+#52 := (not #51)
+#99 := [asserted]: #52
+[unit-resolution #99 #345]: false
+unsat
+5ea02bfc9534897f0d6e70c9e3473bb7ef10a30a 73 0
+#2 := false
+decl f6 :: (-> Int Int S4 S5)
+decl f13 :: S4
+#47 := f13
+#12 := 6::Int
+#45 := 3::Int
+#50 := (f6 3::Int 6::Int f13)
+decl f8 :: (-> S2 S5 S5)
+#46 := 4::Int
+#48 := (f6 3::Int 4::Int f13)
+decl f4 :: S2
+#8 := f4
+#49 := (f8 f4 #48)
+#51 := (= #49 #50)
+decl f3 :: (-> S2 Int Int)
+#302 := (f3 f4 4::Int)
+#303 := (f6 3::Int #302 f13)
+#343 := (= #303 #50)
+#341 := (= #50 #303)
+#335 := (= 6::Int #302)
+#331 := (= #302 6::Int)
+#9 := (:var 0 Int)
+#10 := (f3 f4 #9)
+#11 := (pattern #10)
+#13 := (= #10 6::Int)
+#14 := (forall (vars (?v0 Int)) (:pat #11) #13)
+#104 := (~ #14 #14)
+#102 := (~ #13 #13)
+#103 := [refl]: #102
+#105 := [nnf-pos #103]: #104
+#72 := [asserted]: #14
+#106 := [mp~ #72 #105]: #14
+#336 := (not #14)
+#337 := (or #336 #331)
+#338 := [quant-inst #46]: #337
+#332 := [unit-resolution #338 #106]: #331
+#339 := [symm #332]: #335
+#342 := [monotonicity #339]: #341
+#344 := [symm #342]: #343
+#306 := (= #49 #303)
+#18 := (:var 0 S4)
+#17 := (:var 1 Int)
+#25 := (:var 3 S2)
+#27 := (f3 #25 #17)
+#16 := (:var 2 Int)
+#28 := (f6 #16 #27 #18)
+#203 := (pattern #28)
+#19 := (f6 #16 #17 #18)
+#26 := (f8 #25 #19)
+#202 := (pattern #26)
+#29 := (= #26 #28)
+#204 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S4)) (:pat #202 #203) #29)
+#30 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S4)) #29)
+#207 := (iff #30 #204)
+#205 := (iff #29 #29)
+#206 := [refl]: #205
+#208 := [quant-intro #206]: #207
+#114 := (~ #30 #30)
+#112 := (~ #29 #29)
+#113 := [refl]: #112
+#115 := [nnf-pos #113]: #114
+#74 := [asserted]: #30
+#116 := [mp~ #74 #115]: #30
+#209 := [mp #116 #208]: #204
+#309 := (not #204)
+#310 := (or #309 #306)
+#311 := [quant-inst #8 #45 #46 #47]: #310
+#340 := [unit-resolution #311 #209]: #306
+#345 := [trans #340 #344]: #51
+#52 := (not #51)
+#99 := [asserted]: #52
+[unit-resolution #99 #345]: false
+unsat
+0ea4cdefb3e3290c8d99d636ae708d57bfa0c66f 211 0
+#2 := false
+decl f9 :: (-> S2 S5 S5)
+decl f10 :: (-> S2 S5 S5)
+decl f14 :: S5
+#51 := f14
+decl f5 :: S2
+#15 := f5
+#55 := (f10 f5 f14)
+decl f4 :: S2
+#8 := f4
+#56 := (f9 f4 #55)
+#108 := (= f14 #56)
+decl f7 :: (-> Int Int S4 S5)
+decl f11 :: (-> S5 S4)
+decl f15 :: S4
+#52 := f15
+#12 := 4::Int
+#18 := 3::Int
+#53 := (f7 3::Int 4::Int f15)
+#316 := (f11 #53)
+decl f3 :: (-> S2 Int Int)
+#269 := (f3 f5 3::Int)
+#318 := (f7 #269 4::Int #316)
+#350 := (f9 f4 #318)
+#431 := (= #350 #56)
+#424 := (= #56 #350)
+#422 := (= #55 #318)
+#270 := (f7 #269 4::Int f15)
+#418 := (= #270 #318)
+#415 := (= #318 #270)
+#404 := (= #316 f15)
+#317 := (= f15 #316)
+#24 := (:var 0 S4)
+#23 := (:var 1 Int)
+#22 := (:var 2 Int)
+#25 := (f7 #22 #23 #24)
+#250 := (pattern #25)
+#42 := (f11 #25)
+#85 := (= #24 #42)
+#251 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S4)) (:pat #250) #85)
+#88 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S4)) #85)
+#254 := (iff #88 #251)
+#252 := (iff #85 #85)
+#253 := [refl]: #252
+#255 := [quant-intro #253]: #254
+#156 := (~ #88 #88)
+#154 := (~ #85 #85)
+#155 := [refl]: #154
+#157 := [nnf-pos #155]: #156
+#43 := (= #42 #24)
+#44 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S4)) #43)
+#89 := (iff #44 #88)
+#86 := (iff #43 #85)
+#87 := [rewrite]: #86
+#90 := [quant-intro #87]: #89
+#84 := [asserted]: #44
+#93 := [mp #84 #90]: #88
+#158 := [mp~ #93 #157]: #88
+#256 := [mp #158 #255]: #251
+#320 := (not #251)
+#321 := (or #320 #317)
+#322 := [quant-inst #18 #12 #52]: #321
+#403 := [unit-resolution #322 #256]: #317
+#408 := [symm #403]: #404
+#416 := [monotonicity #408]: #415
+#419 := [symm #416]: #418
+#420 := (= #55 #270)
+#271 := (f10 f5 #53)
+#272 := (= #271 #270)
+#273 := (= #270 #271)
+#31 := (:var 3 S2)
+#38 := (f3 #31 #22)
+#39 := (f7 #38 #23 #24)
+#243 := (pattern #39)
+#37 := (f10 #31 #25)
+#242 := (pattern #37)
+#40 := (= #37 #39)
+#244 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S4)) (:pat #242 #243) #40)
+#41 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S4)) #40)
+#247 := (iff #41 #244)
+#245 := (iff #40 #40)
+#246 := [refl]: #245
+#248 := [quant-intro #246]: #247
+#151 := (~ #41 #41)
+#149 := (~ #40 #40)
+#150 := [refl]: #149
+#152 := [nnf-pos #150]: #151
+#83 := [asserted]: #41
+#153 := [mp~ #83 #152]: #41
+#249 := [mp #153 #248]: #244
+#276 := (not #244)
+#277 := (or #276 #273)
+#278 := (or #276 #272)
+#280 := (iff #278 #277)
+#282 := (iff #277 #277)
+#283 := [rewrite]: #282
+#274 := (iff #272 #273)
+#275 := [rewrite]: #274
+#281 := [monotonicity #275]: #280
+#284 := [trans #281 #283]: #280
+#279 := [quant-inst #15 #18 #12 #52]: #278
+#285 := [mp #279 #284]: #277
+#412 := [unit-resolution #285 #249]: #273
+#417 := [symm #412]: #272
+#413 := (= #55 #271)
+#54 := (= f14 #53)
+#115 := (not #54)
+#116 := (or #115 #108)
+#121 := (not #116)
+#57 := (= #56 f14)
+#58 := (implies #54 #57)
+#59 := (not #58)
+#122 := (iff #59 #121)
+#119 := (iff #58 #116)
+#112 := (implies #54 #108)
+#117 := (iff #112 #116)
+#118 := [rewrite]: #117
+#113 := (iff #58 #112)
+#110 := (iff #57 #108)
+#111 := [rewrite]: #110
+#114 := [monotonicity #111]: #113
+#120 := [trans #114 #118]: #119
+#123 := [monotonicity #120]: #122
+#107 := [asserted]: #59
+#126 := [mp #107 #123]: #121
+#124 := [not-or-elim #126]: #54
+#414 := [monotonicity #124]: #413
+#421 := [trans #414 #417]: #420
+#423 := [trans #421 #419]: #422
+#425 := [monotonicity #423]: #424
+#432 := [symm #425]: #431
+#435 := (= f14 #350)
+#343 := (f3 f4 4::Int)
+#346 := (f7 #269 #343 #316)
+#352 := (= #346 #350)
+#33 := (f3 #31 #23)
+#34 := (f7 #22 #33 #24)
+#235 := (pattern #34)
+#32 := (f9 #31 #25)
+#234 := (pattern #32)
+#35 := (= #32 #34)
+#236 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S4)) (:pat #234 #235) #35)
+#36 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S4)) #35)
+#239 := (iff #36 #236)
+#237 := (iff #35 #35)
+#238 := [refl]: #237
+#240 := [quant-intro #238]: #239
+#146 := (~ #36 #36)
+#144 := (~ #35 #35)
+#145 := [refl]: #144
+#147 := [nnf-pos #145]: #146
+#82 := [asserted]: #36
+#148 := [mp~ #82 #147]: #36
+#241 := [mp #148 #240]: #236
+#355 := (not #236)
+#356 := (or #355 #352)
+#351 := (= #350 #346)
+#357 := (or #355 #351)
+#359 := (iff #357 #356)
+#361 := (iff #356 #356)
+#362 := [rewrite]: #361
+#353 := (iff #351 #352)
+#354 := [rewrite]: #353
+#360 := [monotonicity #354]: #359
+#363 := [trans #360 #362]: #359
+#358 := [quant-inst #8 #269 #12 #316]: #357
+#364 := [mp #358 #363]: #356
+#411 := [unit-resolution #364 #241]: #352
+#433 := (= f14 #346)
+#429 := (= #53 #346)
+#427 := (= #346 #53)
+#402 := (= #343 4::Int)
+#9 := (:var 0 Int)
+#10 := (f3 f4 #9)
+#11 := (pattern #10)
+#13 := (= #10 4::Int)
+#14 := (forall (vars (?v0 Int)) (:pat #11) #13)
+#131 := (~ #14 #14)
+#129 := (~ #13 #13)
+#130 := [refl]: #129
+#132 := [nnf-pos #130]: #131
+#79 := [asserted]: #14
+#133 := [mp~ #79 #132]: #14
+#405 := (not #14)
+#406 := (or #405 #402)
+#407 := [quant-inst #12]: #406
+#409 := [unit-resolution #407 #133]: #402
+#342 := (= #269 3::Int)
+#16 := (f3 f5 #9)
+#17 := (pattern #16)
+#19 := (= #16 3::Int)
+#20 := (forall (vars (?v0 Int)) (:pat #17) #19)
+#136 := (~ #20 #20)
+#134 := (~ #19 #19)
+#135 := [refl]: #134
+#137 := [nnf-pos #135]: #136
+#80 := [asserted]: #20
+#138 := [mp~ #80 #137]: #20
+#347 := (not #20)
+#348 := (or #347 #342)
+#349 := [quant-inst #18]: #348
+#410 := [unit-resolution #349 #138]: #342
+#428 := [monotonicity #410 #409 #408]: #427
+#430 := [symm #428]: #429
+#434 := [trans #124 #430]: #433
+#436 := [trans #434 #411]: #435
+#437 := [trans #436 #432]: #108
+#125 := (not #108)
+#127 := [not-or-elim #126]: #125
+[unit-resolution #127 #437]: false
+unsat
+18733e050cdd31352b0648b5596d94a4afc48033 211 0
+#2 := false
+decl f10 :: (-> S2 S5 S5)
+decl f9 :: (-> S2 S5 S5)
+decl f14 :: S5
+#51 := f14
+decl f4 :: S2
+#8 := f4
+#55 := (f9 f4 f14)
+decl f5 :: S2
+#15 := f5
+#56 := (f10 f5 #55)
+#108 := (= f14 #56)
+decl f7 :: (-> Int Int S4 S5)
+decl f11 :: (-> S5 S4)
+decl f15 :: S4
+#52 := f15
+#12 := 4::Int
+#18 := 3::Int
+#53 := (f7 3::Int 4::Int f15)
+#316 := (f11 #53)
+decl f3 :: (-> S2 Int Int)
+#269 := (f3 f4 4::Int)
+#318 := (f7 3::Int #269 #316)
+#350 := (f10 f5 #318)
+#431 := (= #350 #56)
+#424 := (= #56 #350)
+#422 := (= #55 #318)
+#270 := (f7 3::Int #269 f15)
+#418 := (= #270 #318)
+#415 := (= #318 #270)
+#404 := (= #316 f15)
+#317 := (= f15 #316)
+#24 := (:var 0 S4)
+#23 := (:var 1 Int)
+#22 := (:var 2 Int)
+#25 := (f7 #22 #23 #24)
+#250 := (pattern #25)
+#42 := (f11 #25)
+#85 := (= #24 #42)
+#251 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S4)) (:pat #250) #85)
+#88 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S4)) #85)
+#254 := (iff #88 #251)
+#252 := (iff #85 #85)
+#253 := [refl]: #252
+#255 := [quant-intro #253]: #254
+#156 := (~ #88 #88)
+#154 := (~ #85 #85)
+#155 := [refl]: #154
+#157 := [nnf-pos #155]: #156
+#43 := (= #42 #24)
+#44 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S4)) #43)
+#89 := (iff #44 #88)
+#86 := (iff #43 #85)
+#87 := [rewrite]: #86
+#90 := [quant-intro #87]: #89
+#84 := [asserted]: #44
+#93 := [mp #84 #90]: #88
+#158 := [mp~ #93 #157]: #88
+#256 := [mp #158 #255]: #251
+#320 := (not #251)
+#321 := (or #320 #317)
+#322 := [quant-inst #18 #12 #52]: #321
+#403 := [unit-resolution #322 #256]: #317
+#408 := [symm #403]: #404
+#416 := [monotonicity #408]: #415
+#419 := [symm #416]: #418
+#420 := (= #55 #270)
+#271 := (f9 f4 #53)
+#272 := (= #271 #270)
+#273 := (= #270 #271)
+#31 := (:var 3 S2)
+#33 := (f3 #31 #23)
+#34 := (f7 #22 #33 #24)
+#235 := (pattern #34)
+#32 := (f9 #31 #25)
+#234 := (pattern #32)
+#35 := (= #32 #34)
+#236 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S4)) (:pat #234 #235) #35)
+#36 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S4)) #35)
+#239 := (iff #36 #236)
+#237 := (iff #35 #35)
+#238 := [refl]: #237
+#240 := [quant-intro #238]: #239
+#146 := (~ #36 #36)
+#144 := (~ #35 #35)
+#145 := [refl]: #144
+#147 := [nnf-pos #145]: #146
+#82 := [asserted]: #36
+#148 := [mp~ #82 #147]: #36
+#241 := [mp #148 #240]: #236
+#276 := (not #236)
+#277 := (or #276 #273)
+#278 := (or #276 #272)
+#280 := (iff #278 #277)
+#282 := (iff #277 #277)
+#283 := [rewrite]: #282
+#274 := (iff #272 #273)
+#275 := [rewrite]: #274
+#281 := [monotonicity #275]: #280
+#284 := [trans #281 #283]: #280
+#279 := [quant-inst #8 #18 #12 #52]: #278
+#285 := [mp #279 #284]: #277
+#412 := [unit-resolution #285 #241]: #273
+#417 := [symm #412]: #272
+#413 := (= #55 #271)
+#54 := (= f14 #53)
+#115 := (not #54)
+#116 := (or #115 #108)
+#121 := (not #116)
+#57 := (= #56 f14)
+#58 := (implies #54 #57)
+#59 := (not #58)
+#122 := (iff #59 #121)
+#119 := (iff #58 #116)
+#112 := (implies #54 #108)
+#117 := (iff #112 #116)
+#118 := [rewrite]: #117
+#113 := (iff #58 #112)
+#110 := (iff #57 #108)
+#111 := [rewrite]: #110
+#114 := [monotonicity #111]: #113
+#120 := [trans #114 #118]: #119
+#123 := [monotonicity #120]: #122
+#107 := [asserted]: #59
+#126 := [mp #107 #123]: #121
+#124 := [not-or-elim #126]: #54
+#414 := [monotonicity #124]: #413
+#421 := [trans #414 #417]: #420
+#423 := [trans #421 #419]: #422
+#425 := [monotonicity #423]: #424
+#432 := [symm #425]: #431
+#435 := (= f14 #350)
+#343 := (f3 f5 3::Int)
+#346 := (f7 #343 #269 #316)
+#352 := (= #346 #350)
+#38 := (f3 #31 #22)
+#39 := (f7 #38 #23 #24)
+#243 := (pattern #39)
+#37 := (f10 #31 #25)
+#242 := (pattern #37)
+#40 := (= #37 #39)
+#244 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S4)) (:pat #242 #243) #40)
+#41 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S4)) #40)
+#247 := (iff #41 #244)
+#245 := (iff #40 #40)
+#246 := [refl]: #245
+#248 := [quant-intro #246]: #247
+#151 := (~ #41 #41)
+#149 := (~ #40 #40)
+#150 := [refl]: #149
+#152 := [nnf-pos #150]: #151
+#83 := [asserted]: #41
+#153 := [mp~ #83 #152]: #41
+#249 := [mp #153 #248]: #244
+#355 := (not #244)
+#356 := (or #355 #352)
+#351 := (= #350 #346)
+#357 := (or #355 #351)
+#359 := (iff #357 #356)
+#361 := (iff #356 #356)
+#362 := [rewrite]: #361
+#353 := (iff #351 #352)
+#354 := [rewrite]: #353
+#360 := [monotonicity #354]: #359
+#363 := [trans #360 #362]: #359
+#358 := [quant-inst #15 #18 #269 #316]: #357
+#364 := [mp #358 #363]: #356
+#411 := [unit-resolution #364 #249]: #352
+#433 := (= f14 #346)
+#429 := (= #53 #346)
+#427 := (= #346 #53)
+#342 := (= #269 4::Int)
+#9 := (:var 0 Int)
+#10 := (f3 f4 #9)
+#11 := (pattern #10)
+#13 := (= #10 4::Int)
+#14 := (forall (vars (?v0 Int)) (:pat #11) #13)
+#131 := (~ #14 #14)
+#129 := (~ #13 #13)
+#130 := [refl]: #129
+#132 := [nnf-pos #130]: #131
+#79 := [asserted]: #14
+#133 := [mp~ #79 #132]: #14
+#347 := (not #14)
+#348 := (or #347 #342)
+#349 := [quant-inst #12]: #348
+#409 := [unit-resolution #349 #133]: #342
+#402 := (= #343 3::Int)
+#16 := (f3 f5 #9)
+#17 := (pattern #16)
+#19 := (= #16 3::Int)
+#20 := (forall (vars (?v0 Int)) (:pat #17) #19)
+#136 := (~ #20 #20)
+#134 := (~ #19 #19)
+#135 := [refl]: #134
+#137 := [nnf-pos #135]: #136
+#80 := [asserted]: #20
+#138 := [mp~ #80 #137]: #20
+#405 := (not #20)
+#406 := (or #405 #402)
+#407 := [quant-inst #18]: #406
+#410 := [unit-resolution #407 #138]: #402
+#428 := [monotonicity #410 #409 #408]: #427
+#430 := [symm #428]: #429
+#434 := [trans #124 #430]: #433
+#436 := [trans #434 #411]: #435
+#437 := [trans #436 #432]: #108
+#125 := (not #108)
+#127 := [not-or-elim #126]: #125
+[unit-resolution #127 #437]: false
+unsat
+034f1b430cea4d797df825ad65ed44ba0879f423 27 0
+#2 := false
+decl f18 :: (-> S4 Int)
+decl f20 :: S4
+#66 := f20
+#69 := (f18 f20)
+decl f19 :: S4
+#65 := f19
+#68 := (f18 f19)
+#70 := (= #68 #69)
+#67 := (= f19 f20)
+#143 := (not #67)
+#145 := (or #143 #70)
+#148 := (not #145)
+#71 := (implies #67 #70)
+#72 := (not #71)
+#149 := (iff #72 #148)
+#146 := (iff #71 #145)
+#147 := [rewrite]: #146
+#150 := [monotonicity #147]: #149
+#142 := [asserted]: #72
+#153 := [mp #142 #150]: #148
+#151 := [not-or-elim #153]: #67
+#347 := [monotonicity #151]: #70
+#152 := (not #70)
+#154 := [not-or-elim #153]: #152
+[unit-resolution #154 #347]: false
+unsat
+abd2ff3a1f4279c6df17226a8ab8bfa529a1ad2f 27 0
+#2 := false
+decl f17 :: (-> S4 Int)
+decl f20 :: S4
+#66 := f20
+#69 := (f17 f20)
+decl f19 :: S4
+#65 := f19
+#68 := (f17 f19)
+#70 := (= #68 #69)
+#67 := (= f19 f20)
+#143 := (not #67)
+#145 := (or #143 #70)
+#148 := (not #145)
+#71 := (implies #67 #70)
+#72 := (not #71)
+#149 := (iff #72 #148)
+#146 := (iff #71 #145)
+#147 := [rewrite]: #146
+#150 := [monotonicity #147]: #149
+#142 := [asserted]: #72
+#153 := [mp #142 #150]: #148
+#151 := [not-or-elim #153]: #67
+#347 := [monotonicity #151]: #70
+#152 := (not #70)
+#154 := [not-or-elim #153]: #152
+[unit-resolution #154 #347]: false
+unsat
+bcb488b65c53b04f7a912c4badcb5fcbbb811c48 71 0
+#2 := false
+decl f10 :: (-> S4 S1)
+decl f20 :: S4
+#66 := f20
+#70 := (f10 f20)
+decl f1 :: S1
+#4 := f1
+#149 := (= f1 #70)
+decl f19 :: S4
+#65 := f19
+#68 := (f10 f19)
+#145 := (= f1 #68)
+#152 := (iff #145 #149)
+#691 := (= #68 #70)
+#67 := (= f19 f20)
+#158 := (not #67)
+#159 := (or #158 #152)
+#164 := (not #159)
+#71 := (= #70 f1)
+#69 := (= #68 f1)
+#72 := (iff #69 #71)
+#73 := (implies #67 #72)
+#74 := (not #73)
+#165 := (iff #74 #164)
+#162 := (iff #73 #159)
+#155 := (implies #67 #152)
+#160 := (iff #155 #159)
+#161 := [rewrite]: #160
+#156 := (iff #73 #155)
+#153 := (iff #72 #152)
+#150 := (iff #71 #149)
+#151 := [rewrite]: #150
+#147 := (iff #69 #145)
+#148 := [rewrite]: #147
+#154 := [monotonicity #148 #151]: #153
+#157 := [monotonicity #154]: #156
+#163 := [trans #157 #161]: #162
+#166 := [monotonicity #163]: #165
+#144 := [asserted]: #74
+#169 := [mp #144 #166]: #164
+#167 := [not-or-elim #169]: #67
+#693 := [monotonicity #167]: #691
+#348 := [monotonicity #693]: #152
+#372 := (not #149)
+#196 := (not #145)
+#480 := (iff #196 #372)
+#687 := [monotonicity #348]: #480
+#375 := [hypothesis]: #196
+#359 := [mp #375 #687]: #372
+#370 := (or #149 #145)
+#197 := (iff #149 #196)
+#168 := (not #152)
+#198 := (iff #168 #197)
+#199 := [rewrite]: #198
+#170 := [not-or-elim #169]: #168
+#200 := [mp #170 #199]: #197
+#368 := (not #197)
+#369 := (or #149 #145 #368)
+#284 := [def-axiom]: #369
+#361 := [unit-resolution #284 #200]: #370
+#354 := [unit-resolution #361 #375]: #149
+#360 := [unit-resolution #354 #359]: false
+#694 := [lemma #360]: #145
+#696 := [mp #694 #348]: #149
+#374 := (or #372 #196)
+#373 := (or #372 #196 #368)
+#301 := [def-axiom]: #373
+#371 := [unit-resolution #301 #200]: #374
+#695 := [unit-resolution #371 #694]: #372
+[unit-resolution #695 #696]: false
+unsat
+692be396fb86f21c3efb4c10b7720c21916ee57c 27 0
+#2 := false
+decl f18 :: (-> S4 Int)
+decl f20 :: S4
+#67 := f20
+#68 := (f18 f20)
+decl f19 :: S4
+#65 := f19
+#66 := (f18 f19)
+#69 := (= #66 #68)
+#71 := (= f19 f20)
+#72 := (not #71)
+#145 := (or #69 #72)
+#149 := (not #145)
+#70 := (not #69)
+#73 := (implies #70 #72)
+#74 := (not #73)
+#150 := (iff #74 #149)
+#147 := (iff #73 #145)
+#148 := [rewrite]: #147
+#151 := [monotonicity #148]: #150
+#144 := [asserted]: #74
+#154 := [mp #144 #151]: #149
+#153 := [not-or-elim #154]: #71
+#347 := [monotonicity #153]: #69
+#152 := [not-or-elim #154]: #70
+[unit-resolution #152 #347]: false
+unsat
+8c59e0b3bbed886482ee7c694f7985c4332c80bd 27 0
+#2 := false
+decl f17 :: (-> S4 Int)
+decl f20 :: S4
+#67 := f20
+#68 := (f17 f20)
+decl f19 :: S4
+#65 := f19
+#66 := (f17 f19)
+#69 := (= #66 #68)
+#71 := (= f19 f20)
+#72 := (not #71)
+#145 := (or #69 #72)
+#149 := (not #145)
+#70 := (not #69)
+#73 := (implies #70 #72)
+#74 := (not #73)
+#150 := (iff #74 #149)
+#147 := (iff #73 #145)
+#148 := [rewrite]: #147
+#151 := [monotonicity #148]: #150
+#144 := [asserted]: #74
+#154 := [mp #144 #151]: #149
+#153 := [not-or-elim #154]: #71
+#347 := [monotonicity #153]: #69
+#152 := [not-or-elim #154]: #70
+[unit-resolution #152 #347]: false
+unsat
+ec34ee7bf3443acccceee16793505089997d4233 87 0
+#2 := false
+decl f10 :: (-> S4 S1)
+decl f20 :: S4
+#68 := f20
+#69 := (f10 f20)
+decl f1 :: S1
+#4 := f1
+#151 := (= f1 #69)
+decl f19 :: S4
+#65 := f19
+#66 := (f10 f19)
+#147 := (= f1 #66)
+#154 := (iff #147 #151)
+#707 := (= #66 #69)
+#73 := (= f19 f20)
+#74 := (not #73)
+#180 := (or #74 #154)
+#183 := (not #180)
+#70 := (= #69 f1)
+#67 := (= #66 f1)
+#71 := (iff #67 #70)
+#72 := (not #71)
+#75 := (implies #72 #74)
+#76 := (not #75)
+#186 := (iff #76 #183)
+#170 := (iff #151 #147)
+#169 := (or #74 #170)
+#175 := (not #169)
+#184 := (iff #175 #183)
+#181 := (iff #169 #180)
+#178 := (iff #170 #154)
+#179 := [rewrite]: #178
+#182 := [monotonicity #179]: #181
+#185 := [monotonicity #182]: #184
+#176 := (iff #76 #175)
+#173 := (iff #75 #169)
+#160 := (not #147)
+#161 := (iff #151 #160)
+#166 := (implies #161 #74)
+#171 := (iff #166 #169)
+#172 := [rewrite]: #171
+#167 := (iff #75 #166)
+#164 := (iff #72 #161)
+#157 := (not #154)
+#162 := (iff #157 #161)
+#163 := [rewrite]: #162
+#158 := (iff #72 #157)
+#155 := (iff #71 #154)
+#152 := (iff #70 #151)
+#153 := [rewrite]: #152
+#149 := (iff #67 #147)
+#150 := [rewrite]: #149
+#156 := [monotonicity #150 #153]: #155
+#159 := [monotonicity #156]: #158
+#165 := [trans #159 #163]: #164
+#168 := [monotonicity #165]: #167
+#174 := [trans #168 #172]: #173
+#177 := [monotonicity #174]: #176
+#187 := [trans #177 #185]: #186
+#146 := [asserted]: #76
+#190 := [mp #146 #187]: #183
+#188 := [not-or-elim #190]: #73
+#709 := [monotonicity #188]: #707
+#364 := [monotonicity #709]: #154
+#388 := (not #151)
+#496 := (iff #160 #388)
+#703 := [monotonicity #364]: #496
+#391 := [hypothesis]: #160
+#375 := [mp #391 #703]: #388
+#386 := (or #151 #147)
+#189 := [not-or-elim #190]: #157
+#216 := [mp #189 #163]: #161
+#384 := (not #161)
+#385 := (or #151 #147 #384)
+#300 := [def-axiom]: #385
+#377 := [unit-resolution #300 #216]: #386
+#370 := [unit-resolution #377 #391]: #151
+#376 := [unit-resolution #370 #375]: false
+#710 := [lemma #376]: #147
+#712 := [mp #710 #364]: #151
+#390 := (or #388 #160)
+#389 := (or #388 #160 #384)
+#317 := [def-axiom]: #389
+#387 := [unit-resolution #317 #216]: #390
+#711 := [unit-resolution #387 #710]: #388
+[unit-resolution #711 #712]: false
+unsat
+c2545d9068e0d6accd875f4379ed4317f0c0b477 58 0
+#2 := false
+#65 := 3::Int
+decl f18 :: (-> S4 Int)
+decl f4 :: (-> Int Int S5 S4)
+decl f5 :: (-> S1 S3 S5)
+decl f20 :: S3
+#68 := f20
+decl f19 :: S1
+#67 := f19
+#69 := (f5 f19 f20)
+#66 := 4::Int
+#70 := (f4 3::Int 4::Int #69)
+#71 := (f18 #70)
+#72 := (= #71 3::Int)
+#73 := (not #72)
+#143 := [asserted]: #73
+#38 := (:var 0 S5)
+#37 := (:var 1 Int)
+#10 := (:var 2 Int)
+#39 := (f4 #10 #37 #38)
+#316 := (pattern #39)
+#62 := (f18 #39)
+#136 := (= #10 #62)
+#329 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S5)) (:pat #316) #136)
+#140 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S5)) #136)
+#332 := (iff #140 #329)
+#330 := (iff #136 #136)
+#331 := [refl]: #330
+#333 := [quant-intro #331]: #332
+#203 := (~ #140 #140)
+#201 := (~ #136 #136)
+#202 := [refl]: #201
+#204 := [nnf-pos #202]: #203
+#63 := (= #62 #10)
+#64 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S5)) #63)
+#141 := (iff #64 #140)
+#138 := (iff #63 #136)
+#139 := [rewrite]: #138
+#142 := [quant-intro #139]: #141
+#135 := [asserted]: #64
+#145 := [mp #135 #142]: #140
+#205 := [mp~ #145 #204]: #140
+#334 := [mp #205 #333]: #329
+#335 := (not #329)
+#336 := (or #335 #72)
+#144 := (= 3::Int #71)
+#337 := (or #335 #144)
+#339 := (iff #337 #336)
+#341 := (iff #336 #336)
+#342 := [rewrite]: #341
+#151 := (iff #144 #72)
+#152 := [rewrite]: #151
+#340 := [monotonicity #152]: #339
+#343 := [trans #340 #342]: #339
+#338 := [quant-inst #65 #66 #69]: #337
+#344 := [mp #338 #343]: #336
+[unit-resolution #344 #334 #143]: false
+unsat
+e3bb9ab1eb53aa14b85baa6b04545cdb6811e412 58 0
+#2 := false
+#66 := 4::Int
+decl f17 :: (-> S4 Int)
+decl f4 :: (-> Int Int S5 S4)
+decl f5 :: (-> S1 S3 S5)
+decl f20 :: S3
+#68 := f20
+decl f19 :: S1
+#67 := f19
+#69 := (f5 f19 f20)
+#65 := 3::Int
+#70 := (f4 3::Int 4::Int #69)
+#71 := (f17 #70)
+#72 := (= #71 4::Int)
+#73 := (not #72)
+#143 := [asserted]: #73
+#38 := (:var 0 S5)
+#37 := (:var 1 Int)
+#10 := (:var 2 Int)
+#39 := (f4 #10 #37 #38)
+#316 := (pattern #39)
+#59 := (f17 #39)
+#128 := (= #37 #59)
+#323 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S5)) (:pat #316) #128)
+#132 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S5)) #128)
+#326 := (iff #132 #323)
+#324 := (iff #128 #128)
+#325 := [refl]: #324
+#327 := [quant-intro #325]: #326
+#198 := (~ #132 #132)
+#196 := (~ #128 #128)
+#197 := [refl]: #196
+#199 := [nnf-pos #197]: #198
+#60 := (= #59 #37)
+#61 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S5)) #60)
+#133 := (iff #61 #132)
+#130 := (iff #60 #128)
+#131 := [rewrite]: #130
+#134 := [quant-intro #131]: #133
+#127 := [asserted]: #61
+#137 := [mp #127 #134]: #132
+#200 := [mp~ #137 #199]: #132
+#328 := [mp #200 #327]: #323
+#350 := (not #323)
+#351 := (or #350 #72)
+#144 := (= 4::Int #71)
+#352 := (or #350 #144)
+#354 := (iff #352 #351)
+#356 := (iff #351 #351)
+#357 := [rewrite]: #356
+#151 := (iff #144 #72)
+#152 := [rewrite]: #151
+#355 := [monotonicity #152]: #354
+#358 := [trans #355 #357]: #354
+#353 := [quant-inst #65 #66 #69]: #352
+#359 := [mp #353 #358]: #351
+[unit-resolution #359 #328 #143]: false
+unsat
+6296fe8461e452d749fb761ed56ebcfb1fc552d0 105 0
+#2 := false
+decl f10 :: (-> S4 S1)
+decl f4 :: (-> Int Int S5 S4)
+decl f5 :: (-> S1 S3 S5)
+decl f20 :: S3
+#68 := f20
+decl f19 :: S1
+#67 := f19
+#69 := (f5 f19 f20)
+#66 := 4::Int
+#65 := 3::Int
+#70 := (f4 3::Int 4::Int #69)
+#71 := (f10 #70)
+decl f1 :: S1
+#4 := f1
+#146 := (= f1 #71)
+#159 := (not #146)
+#404 := [hypothesis]: #159
+#150 := (= f1 f19)
+#349 := (or #150 #146)
+#160 := (iff #150 #159)
+#73 := (= f19 f1)
+#72 := (= #71 f1)
+#74 := (iff #72 #73)
+#75 := (not #74)
+#163 := (iff #75 #160)
+#153 := (iff #146 #150)
+#156 := (not #153)
+#161 := (iff #156 #160)
+#162 := [rewrite]: #161
+#157 := (iff #75 #156)
+#154 := (iff #74 #153)
+#151 := (iff #73 #150)
+#152 := [rewrite]: #151
+#148 := (iff #72 #146)
+#149 := [rewrite]: #148
+#155 := [monotonicity #149 #152]: #154
+#158 := [monotonicity #155]: #157
+#164 := [trans #158 #162]: #163
+#145 := [asserted]: #75
+#167 := [mp #145 #164]: #160
+#346 := (not #160)
+#347 := (or #150 #146 #346)
+#348 := [def-axiom]: #347
+#350 := [unit-resolution #348 #167]: #349
+#405 := [unit-resolution #350 #404]: #150
+#351 := (not #150)
+#410 := (or #146 #351)
+#12 := (:var 0 S3)
+#11 := (:var 1 S1)
+#13 := (f5 #11 #12)
+#10 := (:var 2 Int)
+#9 := (:var 3 Int)
+#14 := (f4 #9 #10 #13)
+#290 := (pattern #14)
+#109 := (= f1 #11)
+#31 := (f10 #14)
+#105 := (= f1 #31)
+#112 := (iff #105 #109)
+#297 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S3)) (:pat #290) #112)
+#115 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S3)) #112)
+#300 := (iff #115 #297)
+#298 := (iff #112 #112)
+#299 := [refl]: #298
+#301 := [quant-intro #299]: #300
+#184 := (~ #115 #115)
+#182 := (~ #112 #112)
+#183 := [refl]: #182
+#185 := [nnf-pos #183]: #184
+#33 := (= #11 f1)
+#32 := (= #31 f1)
+#34 := (iff #32 #33)
+#35 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S3)) #34)
+#116 := (iff #35 #115)
+#113 := (iff #34 #112)
+#110 := (iff #33 #109)
+#111 := [rewrite]: #110
+#107 := (iff #32 #105)
+#108 := [rewrite]: #107
+#114 := [monotonicity #108 #111]: #113
+#117 := [quant-intro #114]: #116
+#104 := [asserted]: #35
+#120 := [mp #104 #117]: #115
+#186 := [mp~ #120 #185]: #115
+#302 := [mp #186 #301]: #297
+#393 := (not #297)
+#394 := (or #393 #153)
+#395 := [quant-inst #65 #66 #67 #68]: #394
+#409 := [unit-resolution #395 #302]: #153
+#396 := (or #156 #146 #351)
+#397 := [def-axiom]: #396
+#411 := [unit-resolution #397 #409]: #410
+#412 := [unit-resolution #411 #405 #404]: false
+#413 := [lemma #412]: #146
+#354 := (or #351 #159)
+#352 := (or #351 #159 #346)
+#353 := [def-axiom]: #352
+#355 := [unit-resolution #353 #167]: #354
+#414 := [unit-resolution #355 #413]: #351
+#415 := (or #159 #150)
+#398 := (or #156 #159 #150)
+#399 := [def-axiom]: #398
+#416 := [unit-resolution #399 #409]: #415
+[unit-resolution #416 #414 #413]: false
+unsat
+da58db0437f12c2e8d1330c20990ed8cbae3b7f4 113 0
+#2 := false
+#66 := 4::Int
+#65 := 3::Int
+#404 := (= 3::Int 4::Int)
+#406 := (iff #404 false)
+#407 := [rewrite]: #406
+decl f17 :: (-> S4 Int)
+decl f4 :: (-> Int Int S5 S4)
+decl f5 :: (-> S1 S3 S5)
+decl f20 :: S3
+#68 := f20
+decl f19 :: S1
+#67 := f19
+#69 := (f5 f19 f20)
+#70 := (f4 3::Int 4::Int #69)
+#72 := (f17 #70)
+#347 := (= #72 4::Int)
+#38 := (:var 0 S5)
+#37 := (:var 1 Int)
+#10 := (:var 2 Int)
+#39 := (f4 #10 #37 #38)
+#311 := (pattern #39)
+#59 := (f17 #39)
+#130 := (= #37 #59)
+#318 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S5)) (:pat #311) #130)
+#134 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S5)) #130)
+#321 := (iff #134 #318)
+#319 := (iff #130 #130)
+#320 := [refl]: #319
+#322 := [quant-intro #320]: #321
+#193 := (~ #134 #134)
+#191 := (~ #130 #130)
+#192 := [refl]: #191
+#194 := [nnf-pos #192]: #193
+#60 := (= #59 #37)
+#61 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S5)) #60)
+#135 := (iff #61 #134)
+#132 := (iff #60 #130)
+#133 := [rewrite]: #132
+#136 := [quant-intro #133]: #135
+#129 := [asserted]: #61
+#139 := [mp #129 #136]: #134
+#195 := [mp~ #139 #194]: #134
+#323 := [mp #195 #322]: #318
+#348 := (not #318)
+#349 := (or #348 #347)
+#344 := (= 4::Int #72)
+#350 := (or #348 #344)
+#352 := (iff #350 #349)
+#354 := (iff #349 #349)
+#355 := [rewrite]: #354
+#345 := (iff #344 #347)
+#346 := [rewrite]: #345
+#353 := [monotonicity #346]: #352
+#356 := [trans #353 #355]: #352
+#351 := [quant-inst #65 #66 #69]: #350
+#357 := [mp #351 #356]: #349
+#393 := [unit-resolution #357 #323]: #347
+#402 := (= 3::Int #72)
+#400 := (= #72 3::Int)
+decl f18 :: (-> S4 Int)
+#71 := (f18 #70)
+#333 := (= #71 3::Int)
+#62 := (f18 #39)
+#138 := (= #10 #62)
+#324 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S5)) (:pat #311) #138)
+#142 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S5)) #138)
+#327 := (iff #142 #324)
+#325 := (iff #138 #138)
+#326 := [refl]: #325
+#328 := [quant-intro #326]: #327
+#198 := (~ #142 #142)
+#196 := (~ #138 #138)
+#197 := [refl]: #196
+#199 := [nnf-pos #197]: #198
+#63 := (= #62 #10)
+#64 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S5)) #63)
+#143 := (iff #64 #142)
+#140 := (iff #63 #138)
+#141 := [rewrite]: #140
+#144 := [quant-intro #141]: #143
+#137 := [asserted]: #64
+#147 := [mp #137 #144]: #142
+#200 := [mp~ #147 #199]: #142
+#329 := [mp #200 #328]: #324
+#334 := (not #324)
+#335 := (or #334 #333)
+#330 := (= 3::Int #71)
+#336 := (or #334 #330)
+#338 := (iff #336 #335)
+#340 := (iff #335 #335)
+#341 := [rewrite]: #340
+#331 := (iff #330 #333)
+#332 := [rewrite]: #331
+#339 := [monotonicity #332]: #338
+#342 := [trans #339 #341]: #338
+#337 := [quant-inst #65 #66 #69]: #336
+#343 := [mp #337 #342]: #335
+#394 := [unit-resolution #343 #329]: #333
+#398 := (= #72 #71)
+#73 := (= #71 #72)
+#74 := (not #73)
+#75 := (not #74)
+#146 := (iff #75 #73)
+#148 := [rewrite]: #146
+#145 := [asserted]: #75
+#151 := [mp #145 #148]: #73
+#399 := [symm #151]: #398
+#401 := [trans #399 #394]: #400
+#403 := [symm #401]: #402
+#405 := [trans #403 #393]: #404
+[mp #405 #407]: false
+unsat
+b782d188626a2e0381f5b576a0374250a8df82c5 77 0
+#2 := false
+decl f6 :: (-> Int Int S6 S5)
+decl f7 :: (-> S1 S4 S6)
+decl f21 :: S4
+#75 := f21
+decl f20 :: S1
+#74 := f20
+#76 := (f7 f20 f21)
+#73 := 4::Int
+#12 := 5::Int
+#79 := (f6 5::Int 4::Int #76)
+decl f16 :: (-> S2 S5 S5)
+#72 := 3::Int
+#77 := (f6 3::Int 4::Int #76)
+decl f4 :: S2
+#8 := f4
+#78 := (f16 f4 #77)
+#80 := (= #78 #79)
+decl f3 :: (-> S2 Int Int)
+#466 := (f3 f4 3::Int)
+#467 := (f6 #466 4::Int #76)
+#538 := (= #467 #79)
+#536 := (= #79 #467)
+#530 := (= 5::Int #466)
+#526 := (= #466 5::Int)
+#9 := (:var 0 Int)
+#10 := (f3 f4 #9)
+#11 := (pattern #10)
+#13 := (= #10 5::Int)
+#14 := (forall (vars (?v0 Int)) (:pat #11) #13)
+#157 := (~ #14 #14)
+#155 := (~ #13 #13)
+#156 := [refl]: #155
+#158 := [nnf-pos #156]: #157
+#101 := [asserted]: #14
+#159 := [mp~ #101 #158]: #14
+#531 := (not #14)
+#532 := (or #531 #526)
+#533 := [quant-inst #72]: #532
+#527 := [unit-resolution #533 #159]: #526
+#534 := [symm #527]: #530
+#537 := [monotonicity #534]: #536
+#539 := [symm #537]: #538
+#470 := (= #78 #467)
+#45 := (:var 0 S6)
+#44 := (:var 1 Int)
+#17 := (:var 2 Int)
+#52 := (:var 3 S2)
+#59 := (f3 #52 #17)
+#60 := (f6 #59 #44 #45)
+#313 := (pattern #60)
+#46 := (f6 #17 #44 #45)
+#58 := (f16 #52 #46)
+#312 := (pattern #58)
+#61 := (= #58 #60)
+#314 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S6)) (:pat #312 #313) #61)
+#62 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S6)) #61)
+#317 := (iff #62 #314)
+#315 := (iff #61 #61)
+#316 := [refl]: #315
+#318 := [quant-intro #316]: #317
+#192 := (~ #62 #62)
+#190 := (~ #61 #61)
+#191 := [refl]: #190
+#193 := [nnf-pos #191]: #192
+#128 := [asserted]: #62
+#194 := [mp~ #128 #193]: #62
+#319 := [mp #194 #318]: #314
+#473 := (not #314)
+#474 := (or #473 #470)
+#475 := [quant-inst #8 #72 #73 #76]: #474
+#535 := [unit-resolution #475 #319]: #470
+#540 := [trans #535 #539]: #80
+#81 := (not #80)
+#152 := [asserted]: #81
+[unit-resolution #152 #540]: false
+unsat
+a4d93eb089616c7c0d14a8c862a8b98919dd97bb 77 0
+#2 := false
+decl f6 :: (-> Int Int S6 S5)
+decl f7 :: (-> S1 S4 S6)
+decl f21 :: S4
+#75 := f21
+decl f20 :: S1
+#74 := f20
+#76 := (f7 f20 f21)
+#12 := 6::Int
+#72 := 3::Int
+#79 := (f6 3::Int 6::Int #76)
+decl f15 :: (-> S2 S5 S5)
+#73 := 4::Int
+#77 := (f6 3::Int 4::Int #76)
+decl f4 :: S2
+#8 := f4
+#78 := (f15 f4 #77)
+#80 := (= #78 #79)
+decl f3 :: (-> S2 Int Int)
+#466 := (f3 f4 4::Int)
+#467 := (f6 3::Int #466 #76)
+#538 := (= #467 #79)
+#536 := (= #79 #467)
+#530 := (= 6::Int #466)
+#526 := (= #466 6::Int)
+#9 := (:var 0 Int)
+#10 := (f3 f4 #9)
+#11 := (pattern #10)
+#13 := (= #10 6::Int)
+#14 := (forall (vars (?v0 Int)) (:pat #11) #13)
+#157 := (~ #14 #14)
+#155 := (~ #13 #13)
+#156 := [refl]: #155
+#158 := [nnf-pos #156]: #157
+#101 := [asserted]: #14
+#159 := [mp~ #101 #158]: #14
+#531 := (not #14)
+#532 := (or #531 #526)
+#533 := [quant-inst #73]: #532
+#527 := [unit-resolution #533 #159]: #526
+#534 := [symm #527]: #530
+#537 := [monotonicity #534]: #536
+#539 := [symm #537]: #538
+#470 := (= #78 #467)
+#45 := (:var 0 S6)
+#44 := (:var 1 Int)
+#52 := (:var 3 S2)
+#54 := (f3 #52 #44)
+#17 := (:var 2 Int)
+#55 := (f6 #17 #54 #45)
+#305 := (pattern #55)
+#46 := (f6 #17 #44 #45)
+#53 := (f15 #52 #46)
+#304 := (pattern #53)
+#56 := (= #53 #55)
+#306 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S6)) (:pat #304 #305) #56)
+#57 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S6)) #56)
+#309 := (iff #57 #306)
+#307 := (iff #56 #56)
+#308 := [refl]: #307
+#310 := [quant-intro #308]: #309
+#187 := (~ #57 #57)
+#185 := (~ #56 #56)
+#186 := [refl]: #185
+#188 := [nnf-pos #186]: #187
+#126 := [asserted]: #57
+#189 := [mp~ #126 #188]: #57
+#311 := [mp #189 #310]: #306
+#473 := (not #306)
+#474 := (or #473 #470)
+#475 := [quant-inst #8 #72 #73 #76]: #474
+#535 := [unit-resolution #475 #311]: #470
+#540 := [trans #535 #539]: #80
+#81 := (not #80)
+#152 := [asserted]: #81
+[unit-resolution #152 #540]: false
+unsat
+9b928998cfefb8ac92745f24b207e3b96bdec398 409 0
+#2 := false
+decl f12 :: (-> S3 S6 S6)
+decl f17 :: (-> S2 S6 S6)
+decl f18 :: (-> S2 S6 S6)
+decl f22 :: S6
+#85 := f22
+decl f5 :: S2
+#15 := f5
+#90 := (f18 f5 f22)
+decl f4 :: S2
+#8 := f4
+#91 := (f17 f4 #90)
+decl f7 :: S3
+#21 := f7
+#92 := (f12 f7 #91)
+#183 := (= f22 #92)
+decl f9 :: (-> Int Int S7 S6)
+decl f10 :: (-> S1 S5 S7)
+decl f13 :: (-> S6 S5)
+decl f23 :: S5
+#86 := f23
+decl f1 :: S1
+#4 := f1
+#87 := (f10 f1 f23)
+#12 := 4::Int
+#18 := 3::Int
+#88 := (f9 3::Int 4::Int #87)
+#473 := (f13 #88)
+decl f14 :: (-> S6 S1)
+#448 := (f14 #88)
+#499 := (f10 #448 #473)
+decl f3 :: (-> S2 Int Int)
+#532 := (f3 f4 4::Int)
+#591 := (f9 3::Int #532 #499)
+#628 := (f12 f7 #591)
+#793 := (= #628 #92)
+#786 := (= #92 #628)
+#784 := (= #91 #591)
+decl f19 :: (-> S6 S7)
+#445 := (f19 #88)
+#398 := (f3 f5 3::Int)
+#535 := (f9 #398 #532 #445)
+#780 := (= #535 #591)
+#778 := (= #591 #535)
+#755 := (= #499 #445)
+#446 := (= #87 #445)
+#58 := (:var 0 S7)
+#57 := (:var 1 Int)
+#30 := (:var 2 Int)
+#59 := (f9 #30 #57 #58)
+#379 := (pattern #59)
+#76 := (f19 #59)
+#160 := (= #58 #76)
+#380 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S7)) (:pat #379) #160)
+#163 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S7)) #160)
+#383 := (iff #163 #380)
+#381 := (iff #160 #160)
+#382 := [refl]: #381
+#384 := [quant-intro #382]: #383
+#256 := (~ #163 #163)
+#254 := (~ #160 #160)
+#255 := [refl]: #254
+#257 := [nnf-pos #255]: #256
+#77 := (= #76 #58)
+#78 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S7)) #77)
+#164 := (iff #78 #163)
+#161 := (iff #77 #160)
+#162 := [rewrite]: #161
+#165 := [quant-intro #162]: #164
+#159 := [asserted]: #78
+#168 := [mp #159 #165]: #163
+#258 := [mp~ #168 #257]: #163
+#385 := [mp #258 #384]: #380
+#449 := (not #380)
+#450 := (or #449 #446)
+#451 := [quant-inst #18 #12 #87]: #450
+#749 := [unit-resolution #451 #385]: #446
+#753 := (= #499 #87)
+#737 := (= #473 f23)
+#474 := (= f23 #473)
+#32 := (:var 0 S5)
+#31 := (:var 1 S1)
+#33 := (f10 #31 #32)
+#29 := (:var 3 Int)
+#34 := (f9 #29 #30 #33)
+#342 := (pattern #34)
+#48 := (f13 #34)
+#135 := (= #32 #48)
+#343 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) (:pat #342) #135)
+#138 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) #135)
+#346 := (iff #138 #343)
+#344 := (iff #135 #135)
+#345 := [refl]: #344
+#347 := [quant-intro #345]: #346
+#231 := (~ #138 #138)
+#229 := (~ #135 #135)
+#230 := [refl]: #229
+#232 := [nnf-pos #230]: #231
+#49 := (= #48 #32)
+#50 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) #49)
+#139 := (iff #50 #138)
+#136 := (iff #49 #135)
+#137 := [rewrite]: #136
+#140 := [quant-intro #137]: #139
+#134 := [asserted]: #50
+#143 := [mp #134 #140]: #138
+#233 := [mp~ #143 #232]: #138
+#348 := [mp #233 #347]: #343
+#477 := (not #343)
+#478 := (or #477 #474)
+#479 := [quant-inst #18 #12 #4 #86]: #478
+#736 := [unit-resolution #479 #348]: #474
+#741 := [symm #736]: #737
+#751 := (= #448 f1)
+#452 := (= f1 #448)
+#146 := (= f1 #31)
+#51 := (f14 #34)
+#142 := (= f1 #51)
+#149 := (iff #142 #146)
+#349 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) (:pat #342) #149)
+#152 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) #149)
+#352 := (iff #152 #349)
+#350 := (iff #149 #149)
+#351 := [refl]: #350
+#353 := [quant-intro #351]: #352
+#236 := (~ #152 #152)
+#234 := (~ #149 #149)
+#235 := [refl]: #234
+#237 := [nnf-pos #235]: #236
+#53 := (= #31 f1)
+#52 := (= #51 f1)
+#54 := (iff #52 #53)
+#55 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) #54)
+#153 := (iff #55 #152)
+#150 := (iff #54 #149)
+#147 := (iff #53 #146)
+#148 := [rewrite]: #147
+#144 := (iff #52 #142)
+#145 := [rewrite]: #144
+#151 := [monotonicity #145 #148]: #150
+#154 := [quant-intro #151]: #153
+#141 := [asserted]: #55
+#157 := [mp #141 #154]: #152
+#238 := [mp~ #157 #237]: #152
+#354 := [mp #238 #353]: #349
+#463 := (not #349)
+#464 := (or #463 #452)
+#447 := (= f1 f1)
+#453 := (iff #452 #447)
+#465 := (or #463 #453)
+#467 := (iff #465 #464)
+#469 := (iff #464 #464)
+#470 := [rewrite]: #469
+#461 := (iff #453 #452)
+#1 := true
+#456 := (iff #452 true)
+#459 := (iff #456 #452)
+#460 := [rewrite]: #459
+#457 := (iff #453 #456)
+#454 := (iff #447 true)
+#455 := [rewrite]: #454
+#458 := [monotonicity #455]: #457
+#462 := [trans #458 #460]: #461
+#468 := [monotonicity #462]: #467
+#471 := [trans #468 #470]: #467
+#466 := [quant-inst #18 #12 #4 #86]: #465
+#472 := [mp #466 #471]: #464
+#750 := [unit-resolution #472 #354]: #452
+#752 := [symm #750]: #751
+#754 := [monotonicity #752 #741]: #753
+#756 := [trans #754 #749]: #755
+#758 := (= 3::Int #398)
+#531 := (= #398 3::Int)
+#9 := (:var 0 Int)
+#16 := (f3 f5 #9)
+#17 := (pattern #16)
+#19 := (= #16 3::Int)
+#20 := (forall (vars (?v0 Int)) (:pat #17) #19)
+#211 := (~ #20 #20)
+#209 := (~ #19 #19)
+#210 := [refl]: #209
+#212 := [nnf-pos #210]: #211
+#116 := [asserted]: #20
+#213 := [mp~ #116 #212]: #20
+#536 := (not #20)
+#537 := (or #536 #531)
+#538 := [quant-inst #18]: #537
+#757 := [unit-resolution #538 #213]: #531
+#759 := [symm #757]: #758
+#779 := [monotonicity #759 #756]: #778
+#781 := [symm #779]: #780
+#782 := (= #91 #535)
+#475 := (f9 #398 4::Int #445)
+#539 := (f17 f4 #475)
+#540 := (= #539 #535)
+#541 := (= #535 #539)
+#65 := (:var 3 S2)
+#67 := (f3 #65 #57)
+#68 := (f9 #30 #67 #58)
+#364 := (pattern #68)
+#66 := (f17 #65 #59)
+#363 := (pattern #66)
+#69 := (= #66 #68)
+#365 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S7)) (:pat #363 #364) #69)
+#70 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S7)) #69)
+#368 := (iff #70 #365)
+#366 := (iff #69 #69)
+#367 := [refl]: #366
+#369 := [quant-intro #367]: #368
+#246 := (~ #70 #70)
+#244 := (~ #69 #69)
+#245 := [refl]: #244
+#247 := [nnf-pos #245]: #246
+#156 := [asserted]: #70
+#248 := [mp~ #156 #247]: #70
+#370 := [mp #248 #369]: #365
+#544 := (not #365)
+#545 := (or #544 #541)
+#546 := (or #544 #540)
+#548 := (iff #546 #545)
+#550 := (iff #545 #545)
+#551 := [rewrite]: #550
+#542 := (iff #540 #541)
+#543 := [rewrite]: #542
+#549 := [monotonicity #543]: #548
+#552 := [trans #549 #551]: #548
+#547 := [quant-inst #8 #398 #12 #445]: #546
+#553 := [mp #547 #552]: #545
+#760 := [unit-resolution #553 #370]: #541
+#777 := [symm #760]: #540
+#775 := (= #91 #539)
+#773 := (= #90 #475)
+#399 := (f9 #398 4::Int #87)
+#769 := (= #399 #475)
+#766 := (= #475 #399)
+#762 := (= #445 #87)
+#763 := [symm #749]: #762
+#767 := [monotonicity #763]: #766
+#770 := [symm #767]: #769
+#771 := (= #90 #399)
+#400 := (f18 f5 #88)
+#401 := (= #400 #399)
+#402 := (= #399 #400)
+#72 := (f3 #65 #30)
+#73 := (f9 #72 #57 #58)
+#372 := (pattern #73)
+#71 := (f18 #65 #59)
+#371 := (pattern #71)
+#74 := (= #71 #73)
+#373 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S7)) (:pat #371 #372) #74)
+#75 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S7)) #74)
+#376 := (iff #75 #373)
+#374 := (iff #74 #74)
+#375 := [refl]: #374
+#377 := [quant-intro #375]: #376
+#251 := (~ #75 #75)
+#249 := (~ #74 #74)
+#250 := [refl]: #249
+#252 := [nnf-pos #250]: #251
+#158 := [asserted]: #75
+#253 := [mp~ #158 #252]: #75
+#378 := [mp #253 #377]: #373
+#405 := (not #373)
+#406 := (or #405 #402)
+#407 := (or #405 #401)
+#409 := (iff #407 #406)
+#411 := (iff #406 #406)
+#412 := [rewrite]: #411
+#403 := (iff #401 #402)
+#404 := [rewrite]: #403
+#410 := [monotonicity #404]: #409
+#413 := [trans #410 #412]: #409
+#408 := [quant-inst #15 #18 #12 #87]: #407
+#414 := [mp #408 #413]: #406
+#761 := [unit-resolution #414 #378]: #402
+#768 := [symm #761]: #401
+#764 := (= #90 #400)
+#89 := (= f22 #88)
+#190 := (not #89)
+#191 := (or #190 #183)
+#196 := (not #191)
+#93 := (= #92 f22)
+#94 := (implies #89 #93)
+#95 := (not #94)
+#197 := (iff #95 #196)
+#194 := (iff #94 #191)
+#187 := (implies #89 #183)
+#192 := (iff #187 #191)
+#193 := [rewrite]: #192
+#188 := (iff #94 #187)
+#185 := (iff #93 #183)
+#186 := [rewrite]: #185
+#189 := [monotonicity #186]: #188
+#195 := [trans #189 #193]: #194
+#198 := [monotonicity #195]: #197
+#182 := [asserted]: #95
+#201 := [mp #182 #198]: #196
+#199 := [not-or-elim #201]: #89
+#765 := [monotonicity #199]: #764
+#772 := [trans #765 #768]: #771
+#774 := [trans #772 #770]: #773
+#776 := [monotonicity #774]: #775
+#783 := [trans #776 #777]: #782
+#785 := [trans #783 #781]: #784
+#787 := [monotonicity #785]: #786
+#794 := [symm #787]: #793
+#797 := (= f22 #628)
+decl f6 :: (-> S3 S1 S1)
+#620 := (f6 f7 #448)
+#623 := (f10 #620 #473)
+#627 := (f9 3::Int #532 #623)
+#630 := (= #627 #628)
+#41 := (:var 4 S3)
+#43 := (f6 #41 #31)
+#44 := (f10 #43 #32)
+#45 := (f9 #29 #30 #44)
+#335 := (pattern #45)
+#42 := (f12 #41 #34)
+#334 := (pattern #42)
+#46 := (= #42 #45)
+#336 := (forall (vars (?v0 S3) (?v1 Int) (?v2 Int) (?v3 S1) (?v4 S5)) (:pat #334 #335) #46)
+#47 := (forall (vars (?v0 S3) (?v1 Int) (?v2 Int) (?v3 S1) (?v4 S5)) #46)
+#339 := (iff #47 #336)
+#337 := (iff #46 #46)
+#338 := [refl]: #337
+#340 := [quant-intro #338]: #339
+#226 := (~ #47 #47)
+#224 := (~ #46 #46)
+#225 := [refl]: #224
+#227 := [nnf-pos #225]: #226
+#132 := [asserted]: #47
+#228 := [mp~ #132 #227]: #47
+#341 := [mp #228 #340]: #336
+#633 := (not #336)
+#634 := (or #633 #630)
+#629 := (= #628 #627)
+#635 := (or #633 #629)
+#637 := (iff #635 #634)
+#639 := (iff #634 #634)
+#640 := [rewrite]: #639
+#631 := (iff #629 #630)
+#632 := [rewrite]: #631
+#638 := [monotonicity #632]: #637
+#641 := [trans #638 #640]: #637
+#636 := [quant-inst #21 #18 #532 #448 #473]: #635
+#642 := [mp #636 #641]: #634
+#748 := [unit-resolution #642 #341]: #630
+#795 := (= f22 #627)
+#791 := (= #88 #627)
+#789 := (= #627 #88)
+#745 := (= #623 #87)
+#743 := (= #620 f1)
+#691 := (= f1 #620)
+#22 := (:var 0 S1)
+#23 := (f6 f7 #22)
+#24 := (pattern #23)
+#118 := (= f1 #23)
+#128 := (forall (vars (?v0 S1)) (:pat #24) #118)
+#216 := (~ #128 #128)
+#214 := (~ #118 #118)
+#215 := [refl]: #214
+#217 := [nnf-pos #215]: #216
+#25 := (= #23 f1)
+#26 := (iff #25 true)
+#27 := (forall (vars (?v0 S1)) (:pat #24) #26)
+#129 := (iff #27 #128)
+#126 := (iff #26 #118)
+#121 := (iff #118 true)
+#124 := (iff #121 #118)
+#125 := [rewrite]: #124
+#122 := (iff #26 #121)
+#119 := (iff #25 #118)
+#120 := [rewrite]: #119
+#123 := [monotonicity #120]: #122
+#127 := [trans #123 #125]: #126
+#130 := [quant-intro #127]: #129
+#117 := [asserted]: #27
+#133 := [mp #117 #130]: #128
+#218 := [mp~ #133 #217]: #128
+#738 := (not #128)
+#739 := (or #738 #691)
+#740 := [quant-inst #448]: #739
+#742 := [unit-resolution #740 #218]: #691
+#744 := [symm #742]: #743
+#746 := [monotonicity #744 #741]: #745
+#619 := (= #532 4::Int)
+#10 := (f3 f4 #9)
+#11 := (pattern #10)
+#13 := (= #10 4::Int)
+#14 := (forall (vars (?v0 Int)) (:pat #11) #13)
+#206 := (~ #14 #14)
+#204 := (~ #13 #13)
+#205 := [refl]: #204
+#207 := [nnf-pos #205]: #206
+#115 := [asserted]: #14
+#208 := [mp~ #115 #207]: #14
+#624 := (not #14)
+#625 := (or #624 #619)
+#626 := [quant-inst #12]: #625
+#747 := [unit-resolution #626 #208]: #619
+#790 := [monotonicity #747 #746]: #789
+#792 := [symm #790]: #791
+#796 := [trans #199 #792]: #795
+#798 := [trans #796 #748]: #797
+#799 := [trans #798 #794]: #183
+#200 := (not #183)
+#202 := [not-or-elim #201]: #200
+[unit-resolution #202 #799]: false
+unsat
+4e5bdb146605ddee0e865e055a144749744ef3dd 381 0
+#2 := false
+decl f18 :: (-> S2 S6 S6)
+decl f12 :: (-> S3 S6 S6)
+decl f17 :: (-> S2 S6 S6)
+decl f22 :: S6
+#85 := f22
+decl f4 :: S2
+#8 := f4
+#90 := (f17 f4 f22)
+decl f7 :: S3
+#21 := f7
+#91 := (f12 f7 #90)
+decl f5 :: S2
+#15 := f5
+#92 := (f18 f5 #91)
+#183 := (= f22 #92)
+decl f9 :: (-> Int Int S7 S6)
+decl f10 :: (-> S1 S5 S7)
+decl f13 :: (-> S6 S5)
+decl f23 :: S5
+#86 := f23
+decl f1 :: S1
+#4 := f1
+#87 := (f10 f1 f23)
+#12 := 4::Int
+#18 := 3::Int
+#88 := (f9 3::Int 4::Int #87)
+#473 := (f13 #88)
+decl f6 :: (-> S3 S1 S1)
+decl f14 :: (-> S6 S1)
+#448 := (f14 #88)
+#532 := (f6 f7 #448)
+#535 := (f10 #532 #473)
+#555 := (f9 3::Int 4::Int #535)
+#638 := (f18 f5 #555)
+#794 := (= #638 #92)
+#787 := (= #92 #638)
+#785 := (= #91 #555)
+decl f3 :: (-> S2 Int Int)
+#398 := (f3 f4 4::Int)
+#539 := (f9 3::Int #398 #535)
+#781 := (= #539 #555)
+#779 := (= #555 #539)
+#750 := (= 4::Int #398)
+#531 := (= #398 4::Int)
+#9 := (:var 0 Int)
+#10 := (f3 f4 #9)
+#11 := (pattern #10)
+#13 := (= #10 4::Int)
+#14 := (forall (vars (?v0 Int)) (:pat #11) #13)
+#206 := (~ #14 #14)
+#204 := (~ #13 #13)
+#205 := [refl]: #204
+#207 := [nnf-pos #205]: #206
+#115 := [asserted]: #14
+#208 := [mp~ #115 #207]: #14
+#536 := (not #14)
+#537 := (or #536 #531)
+#538 := [quant-inst #12]: #537
+#749 := [unit-resolution #538 #208]: #531
+#751 := [symm #749]: #750
+#780 := [monotonicity #751]: #779
+#782 := [symm #780]: #781
+#783 := (= #91 #539)
+#499 := (f10 #448 #473)
+#500 := (f9 3::Int #398 #499)
+#540 := (f12 f7 #500)
+#541 := (= #540 #539)
+#542 := (= #539 #540)
+#32 := (:var 0 S5)
+#31 := (:var 1 S1)
+#41 := (:var 4 S3)
+#43 := (f6 #41 #31)
+#44 := (f10 #43 #32)
+#30 := (:var 2 Int)
+#29 := (:var 3 Int)
+#45 := (f9 #29 #30 #44)
+#335 := (pattern #45)
+#33 := (f10 #31 #32)
+#34 := (f9 #29 #30 #33)
+#42 := (f12 #41 #34)
+#334 := (pattern #42)
+#46 := (= #42 #45)
+#336 := (forall (vars (?v0 S3) (?v1 Int) (?v2 Int) (?v3 S1) (?v4 S5)) (:pat #334 #335) #46)
+#47 := (forall (vars (?v0 S3) (?v1 Int) (?v2 Int) (?v3 S1) (?v4 S5)) #46)
+#339 := (iff #47 #336)
+#337 := (iff #46 #46)
+#338 := [refl]: #337
+#340 := [quant-intro #338]: #339
+#226 := (~ #47 #47)
+#224 := (~ #46 #46)
+#225 := [refl]: #224
+#227 := [nnf-pos #225]: #226
+#132 := [asserted]: #47
+#228 := [mp~ #132 #227]: #47
+#341 := [mp #228 #340]: #336
+#545 := (not #336)
+#546 := (or #545 #542)
+#547 := (or #545 #541)
+#549 := (iff #547 #546)
+#551 := (iff #546 #546)
+#552 := [rewrite]: #551
+#543 := (iff #541 #542)
+#544 := [rewrite]: #543
+#550 := [monotonicity #544]: #549
+#553 := [trans #550 #552]: #549
+#548 := [quant-inst #21 #18 #398 #448 #473]: #547
+#554 := [mp #548 #553]: #546
+#752 := [unit-resolution #554 #341]: #542
+#778 := [symm #752]: #541
+#776 := (= #91 #540)
+#774 := (= #90 #500)
+#768 := (= #88 #500)
+#761 := (= #500 #88)
+#757 := (= #499 #87)
+#737 := (= #473 f23)
+#474 := (= f23 #473)
+#342 := (pattern #34)
+#48 := (f13 #34)
+#135 := (= #32 #48)
+#343 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) (:pat #342) #135)
+#138 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) #135)
+#346 := (iff #138 #343)
+#344 := (iff #135 #135)
+#345 := [refl]: #344
+#347 := [quant-intro #345]: #346
+#231 := (~ #138 #138)
+#229 := (~ #135 #135)
+#230 := [refl]: #229
+#232 := [nnf-pos #230]: #231
+#49 := (= #48 #32)
+#50 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) #49)
+#139 := (iff #50 #138)
+#136 := (iff #49 #135)
+#137 := [rewrite]: #136
+#140 := [quant-intro #137]: #139
+#134 := [asserted]: #50
+#143 := [mp #134 #140]: #138
+#233 := [mp~ #143 #232]: #138
+#348 := [mp #233 #347]: #343
+#477 := (not #343)
+#478 := (or #477 #474)
+#479 := [quant-inst #18 #12 #4 #86]: #478
+#736 := [unit-resolution #479 #348]: #474
+#741 := [symm #736]: #737
+#755 := (= #448 f1)
+#452 := (= f1 #448)
+#146 := (= f1 #31)
+#51 := (f14 #34)
+#142 := (= f1 #51)
+#149 := (iff #142 #146)
+#349 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) (:pat #342) #149)
+#152 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) #149)
+#352 := (iff #152 #349)
+#350 := (iff #149 #149)
+#351 := [refl]: #350
+#353 := [quant-intro #351]: #352
+#236 := (~ #152 #152)
+#234 := (~ #149 #149)
+#235 := [refl]: #234
+#237 := [nnf-pos #235]: #236
+#53 := (= #31 f1)
+#52 := (= #51 f1)
+#54 := (iff #52 #53)
+#55 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) #54)
+#153 := (iff #55 #152)
+#150 := (iff #54 #149)
+#147 := (iff #53 #146)
+#148 := [rewrite]: #147
+#144 := (iff #52 #142)
+#145 := [rewrite]: #144
+#151 := [monotonicity #145 #148]: #150
+#154 := [quant-intro #151]: #153
+#141 := [asserted]: #55
+#157 := [mp #141 #154]: #152
+#238 := [mp~ #157 #237]: #152
+#354 := [mp #238 #353]: #349
+#463 := (not #349)
+#464 := (or #463 #452)
+#447 := (= f1 f1)
+#453 := (iff #452 #447)
+#465 := (or #463 #453)
+#467 := (iff #465 #464)
+#469 := (iff #464 #464)
+#470 := [rewrite]: #469
+#461 := (iff #453 #452)
+#1 := true
+#456 := (iff #452 true)
+#459 := (iff #456 #452)
+#460 := [rewrite]: #459
+#457 := (iff #453 #456)
+#454 := (iff #447 true)
+#455 := [rewrite]: #454
+#458 := [monotonicity #455]: #457
+#462 := [trans #458 #460]: #461
+#468 := [monotonicity #462]: #467
+#471 := [trans #468 #470]: #467
+#466 := [quant-inst #18 #12 #4 #86]: #465
+#472 := [mp #466 #471]: #464
+#754 := [unit-resolution #472 #354]: #452
+#756 := [symm #754]: #755
+#758 := [monotonicity #756 #741]: #757
+#762 := [monotonicity #749 #758]: #761
+#769 := [symm #762]: #768
+#772 := (= #90 #88)
+#399 := (f9 3::Int #398 #87)
+#766 := (= #399 #88)
+#763 := (= #88 #399)
+#764 := [monotonicity #751]: #763
+#767 := [symm #764]: #766
+#770 := (= #90 #399)
+#400 := (f17 f4 #88)
+#401 := (= #400 #399)
+#402 := (= #399 #400)
+#58 := (:var 0 S7)
+#57 := (:var 1 Int)
+#65 := (:var 3 S2)
+#67 := (f3 #65 #57)
+#68 := (f9 #30 #67 #58)
+#364 := (pattern #68)
+#59 := (f9 #30 #57 #58)
+#66 := (f17 #65 #59)
+#363 := (pattern #66)
+#69 := (= #66 #68)
+#365 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S7)) (:pat #363 #364) #69)
+#70 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S7)) #69)
+#368 := (iff #70 #365)
+#366 := (iff #69 #69)
+#367 := [refl]: #366
+#369 := [quant-intro #367]: #368
+#246 := (~ #70 #70)
+#244 := (~ #69 #69)
+#245 := [refl]: #244
+#247 := [nnf-pos #245]: #246
+#156 := [asserted]: #70
+#248 := [mp~ #156 #247]: #70
+#370 := [mp #248 #369]: #365
+#405 := (not #365)
+#406 := (or #405 #402)
+#407 := (or #405 #401)
+#409 := (iff #407 #406)
+#411 := (iff #406 #406)
+#412 := [rewrite]: #411
+#403 := (iff #401 #402)
+#404 := [rewrite]: #403
+#410 := [monotonicity #404]: #409
+#413 := [trans #410 #412]: #409
+#408 := [quant-inst #8 #18 #12 #87]: #407
+#414 := [mp #408 #413]: #406
+#753 := [unit-resolution #414 #370]: #402
+#765 := [symm #753]: #401
+#759 := (= #90 #400)
+#89 := (= f22 #88)
+#190 := (not #89)
+#191 := (or #190 #183)
+#196 := (not #191)
+#93 := (= #92 f22)
+#94 := (implies #89 #93)
+#95 := (not #94)
+#197 := (iff #95 #196)
+#194 := (iff #94 #191)
+#187 := (implies #89 #183)
+#192 := (iff #187 #191)
+#193 := [rewrite]: #192
+#188 := (iff #94 #187)
+#185 := (iff #93 #183)
+#186 := [rewrite]: #185
+#189 := [monotonicity #186]: #188
+#195 := [trans #189 #193]: #194
+#198 := [monotonicity #195]: #197
+#182 := [asserted]: #95
+#201 := [mp #182 #198]: #196
+#199 := [not-or-elim #201]: #89
+#760 := [monotonicity #199]: #759
+#771 := [trans #760 #765]: #770
+#773 := [trans #771 #767]: #772
+#775 := [trans #773 #769]: #774
+#777 := [monotonicity #775]: #776
+#784 := [trans #777 #778]: #783
+#786 := [trans #784 #782]: #785
+#788 := [monotonicity #786]: #787
+#795 := [symm #788]: #794
+#798 := (= f22 #638)
+#633 := (f3 f5 3::Int)
+#634 := (f9 #633 4::Int #535)
+#640 := (= #634 #638)
+#72 := (f3 #65 #30)
+#73 := (f9 #72 #57 #58)
+#372 := (pattern #73)
+#71 := (f18 #65 #59)
+#371 := (pattern #71)
+#74 := (= #71 #73)
+#373 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S7)) (:pat #371 #372) #74)
+#75 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S7)) #74)
+#376 := (iff #75 #373)
+#374 := (iff #74 #74)
+#375 := [refl]: #374
+#377 := [quant-intro #375]: #376
+#251 := (~ #75 #75)
+#249 := (~ #74 #74)
+#250 := [refl]: #249
+#252 := [nnf-pos #250]: #251
+#158 := [asserted]: #75
+#253 := [mp~ #158 #252]: #75
+#378 := [mp #253 #377]: #373
+#643 := (not #373)
+#644 := (or #643 #640)
+#639 := (= #638 #634)
+#645 := (or #643 #639)
+#647 := (iff #645 #644)
+#649 := (iff #644 #644)
+#650 := [rewrite]: #649
+#641 := (iff #639 #640)
+#642 := [rewrite]: #641
+#648 := [monotonicity #642]: #647
+#651 := [trans #648 #650]: #647
+#646 := [quant-inst #15 #18 #12 #535]: #645
+#652 := [mp #646 #651]: #644
+#748 := [unit-resolution #652 #378]: #640
+#796 := (= f22 #634)
+#792 := (= #88 #634)
+#790 := (= #634 #88)
+#745 := (= #535 #87)
+#743 := (= #532 f1)
+#586 := (= f1 #532)
+#22 := (:var 0 S1)
+#23 := (f6 f7 #22)
+#24 := (pattern #23)
+#118 := (= f1 #23)
+#128 := (forall (vars (?v0 S1)) (:pat #24) #118)
+#216 := (~ #128 #128)
+#214 := (~ #118 #118)
+#215 := [refl]: #214
+#217 := [nnf-pos #215]: #216
+#25 := (= #23 f1)
+#26 := (iff #25 true)
+#27 := (forall (vars (?v0 S1)) (:pat #24) #26)
+#129 := (iff #27 #128)
+#126 := (iff #26 #118)
+#121 := (iff #118 true)
+#124 := (iff #121 #118)
+#125 := [rewrite]: #124
+#122 := (iff #26 #121)
+#119 := (iff #25 #118)
+#120 := [rewrite]: #119
+#123 := [monotonicity #120]: #122
+#127 := [trans #123 #125]: #126
+#130 := [quant-intro #127]: #129
+#117 := [asserted]: #27
+#133 := [mp #117 #130]: #128
+#218 := [mp~ #133 #217]: #128
+#635 := (not #128)
+#636 := (or #635 #586)
+#637 := [quant-inst #448]: #636
+#742 := [unit-resolution #637 #218]: #586
+#744 := [symm #742]: #743
+#746 := [monotonicity #744 #741]: #745
+#735 := (= #633 3::Int)
+#16 := (f3 f5 #9)
+#17 := (pattern #16)
+#19 := (= #16 3::Int)
+#20 := (forall (vars (?v0 Int)) (:pat #17) #19)
+#211 := (~ #20 #20)
+#209 := (~ #19 #19)
+#210 := [refl]: #209
+#212 := [nnf-pos #210]: #211
+#116 := [asserted]: #20
+#213 := [mp~ #116 #212]: #20
+#738 := (not #20)
+#739 := (or #738 #735)
+#740 := [quant-inst #18]: #739
+#747 := [unit-resolution #740 #213]: #735
+#791 := [monotonicity #747 #746]: #790
+#793 := [symm #791]: #792
+#797 := [trans #199 #793]: #796
+#799 := [trans #797 #748]: #798
+#800 := [trans #799 #795]: #183
+#200 := (not #183)
+#202 := [not-or-elim #201]: #200
+[unit-resolution #202 #800]: false
+unsat
+28647514baf56d812f754250e53a79198fbce4ff 371 0
+#2 := false
+decl f17 :: (-> S2 S6 S6)
+decl f18 :: (-> S2 S6 S6)
+decl f12 :: (-> S3 S6 S6)
+decl f22 :: S6
+#85 := f22
+decl f7 :: S3
+#21 := f7
+#90 := (f12 f7 f22)
+decl f5 :: S2
+#15 := f5
+#91 := (f18 f5 #90)
+decl f4 :: S2
+#8 := f4
+#92 := (f17 f4 #91)
+#183 := (= f22 #92)
+decl f9 :: (-> Int Int S7 S6)
+decl f19 :: (-> S6 S7)
+decl f10 :: (-> S1 S5 S7)
+decl f23 :: S5
+#86 := f23
+decl f6 :: (-> S3 S1 S1)
+decl f1 :: S1
+#4 := f1
+#398 := (f6 f7 f1)
+#399 := (f10 #398 f23)
+#12 := 4::Int
+#18 := 3::Int
+#400 := (f9 3::Int 4::Int #399)
+#507 := (f19 #400)
+decl f3 :: (-> S2 Int Int)
+#546 := (f3 f5 3::Int)
+#566 := (f9 #546 4::Int #507)
+#643 := (f17 f4 #566)
+#788 := (= #643 #92)
+#781 := (= #92 #643)
+#766 := (= #91 #566)
+#547 := (f9 #546 4::Int #399)
+#762 := (= #547 #566)
+#760 := (= #566 #547)
+#742 := (= #507 #399)
+#508 := (= #399 #507)
+#58 := (:var 0 S7)
+#57 := (:var 1 Int)
+#30 := (:var 2 Int)
+#59 := (f9 #30 #57 #58)
+#379 := (pattern #59)
+#76 := (f19 #59)
+#160 := (= #58 #76)
+#380 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S7)) (:pat #379) #160)
+#163 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S7)) #160)
+#383 := (iff #163 #380)
+#381 := (iff #160 #160)
+#382 := [refl]: #381
+#384 := [quant-intro #382]: #383
+#256 := (~ #163 #163)
+#254 := (~ #160 #160)
+#255 := [refl]: #254
+#257 := [nnf-pos #255]: #256
+#77 := (= #76 #58)
+#78 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S7)) #77)
+#164 := (iff #78 #163)
+#161 := (iff #77 #160)
+#162 := [rewrite]: #161
+#165 := [quant-intro #162]: #164
+#159 := [asserted]: #78
+#168 := [mp #159 #165]: #163
+#258 := [mp~ #168 #257]: #163
+#385 := [mp #258 #384]: #380
+#450 := (not #380)
+#511 := (or #450 #508)
+#512 := [quant-inst #18 #12 #399]: #511
+#741 := [unit-resolution #512 #385]: #508
+#746 := [symm #741]: #742
+#761 := [monotonicity #746]: #760
+#763 := [symm #761]: #762
+#764 := (= #91 #547)
+#551 := (f18 f5 #400)
+#552 := (= #551 #547)
+#553 := (= #547 #551)
+#65 := (:var 3 S2)
+#72 := (f3 #65 #30)
+#73 := (f9 #72 #57 #58)
+#372 := (pattern #73)
+#71 := (f18 #65 #59)
+#371 := (pattern #71)
+#74 := (= #71 #73)
+#373 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S7)) (:pat #371 #372) #74)
+#75 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S7)) #74)
+#376 := (iff #75 #373)
+#374 := (iff #74 #74)
+#375 := [refl]: #374
+#377 := [quant-intro #375]: #376
+#251 := (~ #75 #75)
+#249 := (~ #74 #74)
+#250 := [refl]: #249
+#252 := [nnf-pos #250]: #251
+#158 := [asserted]: #75
+#253 := [mp~ #158 #252]: #75
+#378 := [mp #253 #377]: #373
+#556 := (not #373)
+#557 := (or #556 #553)
+#558 := (or #556 #552)
+#560 := (iff #558 #557)
+#562 := (iff #557 #557)
+#563 := [rewrite]: #562
+#554 := (iff #552 #553)
+#555 := [rewrite]: #554
+#561 := [monotonicity #555]: #560
+#564 := [trans #561 #563]: #560
+#559 := [quant-inst #15 #18 #12 #399]: #558
+#565 := [mp #559 #564]: #557
+#750 := [unit-resolution #565 #378]: #553
+#759 := [symm #750]: #552
+#757 := (= #91 #551)
+#755 := (= #90 #400)
+#87 := (f10 f1 f23)
+#88 := (f9 3::Int 4::Int #87)
+#401 := (f12 f7 #88)
+#402 := (= #401 #400)
+#403 := (= #400 #401)
+#32 := (:var 0 S5)
+#31 := (:var 1 S1)
+#41 := (:var 4 S3)
+#43 := (f6 #41 #31)
+#44 := (f10 #43 #32)
+#29 := (:var 3 Int)
+#45 := (f9 #29 #30 #44)
+#335 := (pattern #45)
+#33 := (f10 #31 #32)
+#34 := (f9 #29 #30 #33)
+#42 := (f12 #41 #34)
+#334 := (pattern #42)
+#46 := (= #42 #45)
+#336 := (forall (vars (?v0 S3) (?v1 Int) (?v2 Int) (?v3 S1) (?v4 S5)) (:pat #334 #335) #46)
+#47 := (forall (vars (?v0 S3) (?v1 Int) (?v2 Int) (?v3 S1) (?v4 S5)) #46)
+#339 := (iff #47 #336)
+#337 := (iff #46 #46)
+#338 := [refl]: #337
+#340 := [quant-intro #338]: #339
+#226 := (~ #47 #47)
+#224 := (~ #46 #46)
+#225 := [refl]: #224
+#227 := [nnf-pos #225]: #226
+#132 := [asserted]: #47
+#228 := [mp~ #132 #227]: #47
+#341 := [mp #228 #340]: #336
+#406 := (not #336)
+#407 := (or #406 #403)
+#408 := (or #406 #402)
+#410 := (iff #408 #407)
+#412 := (iff #407 #407)
+#413 := [rewrite]: #412
+#404 := (iff #402 #403)
+#405 := [rewrite]: #404
+#411 := [monotonicity #405]: #410
+#414 := [trans #411 #413]: #410
+#409 := [quant-inst #21 #18 #12 #4 #86]: #408
+#415 := [mp #409 #414]: #407
+#751 := [unit-resolution #415 #341]: #403
+#754 := [symm #751]: #402
+#752 := (= #90 #401)
+#89 := (= f22 #88)
+#190 := (not #89)
+#191 := (or #190 #183)
+#196 := (not #191)
+#93 := (= #92 f22)
+#94 := (implies #89 #93)
+#95 := (not #94)
+#197 := (iff #95 #196)
+#194 := (iff #94 #191)
+#187 := (implies #89 #183)
+#192 := (iff #187 #191)
+#193 := [rewrite]: #192
+#188 := (iff #94 #187)
+#185 := (iff #93 #183)
+#186 := [rewrite]: #185
+#189 := [monotonicity #186]: #188
+#195 := [trans #189 #193]: #194
+#198 := [monotonicity #195]: #197
+#182 := [asserted]: #95
+#201 := [mp #182 #198]: #196
+#199 := [not-or-elim #201]: #89
+#753 := [monotonicity #199]: #752
+#756 := [trans #753 #754]: #755
+#758 := [monotonicity #756]: #757
+#765 := [trans #758 #759]: #764
+#767 := [trans #765 #763]: #766
+#782 := [monotonicity #767]: #781
+#789 := [symm #782]: #788
+#794 := (= f22 #643)
+#638 := (f3 f4 4::Int)
+#639 := (f9 #546 #638 #507)
+#645 := (= #639 #643)
+#67 := (f3 #65 #57)
+#68 := (f9 #30 #67 #58)
+#364 := (pattern #68)
+#66 := (f17 #65 #59)
+#363 := (pattern #66)
+#69 := (= #66 #68)
+#365 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S7)) (:pat #363 #364) #69)
+#70 := (forall (vars (?v0 S2) (?v1 Int) (?v2 Int) (?v3 S7)) #69)
+#368 := (iff #70 #365)
+#366 := (iff #69 #69)
+#367 := [refl]: #366
+#369 := [quant-intro #367]: #368
+#246 := (~ #70 #70)
+#244 := (~ #69 #69)
+#245 := [refl]: #244
+#247 := [nnf-pos #245]: #246
+#156 := [asserted]: #70
+#248 := [mp~ #156 #247]: #70
+#370 := [mp #248 #369]: #365
+#648 := (not #365)
+#649 := (or #648 #645)
+#644 := (= #643 #639)
+#650 := (or #648 #644)
+#652 := (iff #650 #649)
+#654 := (iff #649 #649)
+#655 := [rewrite]: #654
+#646 := (iff #644 #645)
+#647 := [rewrite]: #646
+#653 := [monotonicity #647]: #652
+#656 := [trans #653 #655]: #652
+#651 := [quant-inst #8 #546 #12 #507]: #650
+#657 := [mp #651 #656]: #649
+#749 := [unit-resolution #657 #370]: #645
+#792 := (= f22 #639)
+#786 := (= #400 #639)
+#784 := (= #639 #400)
+#740 := (= #638 4::Int)
+#9 := (:var 0 Int)
+#10 := (f3 f4 #9)
+#11 := (pattern #10)
+#13 := (= #10 4::Int)
+#14 := (forall (vars (?v0 Int)) (:pat #11) #13)
+#206 := (~ #14 #14)
+#204 := (~ #13 #13)
+#205 := [refl]: #204
+#207 := [nnf-pos #205]: #206
+#115 := [asserted]: #14
+#208 := [mp~ #115 #207]: #14
+#743 := (not #14)
+#744 := (or #743 #740)
+#745 := [quant-inst #12]: #744
+#747 := [unit-resolution #745 #208]: #740
+#637 := (= #546 3::Int)
+#16 := (f3 f5 #9)
+#17 := (pattern #16)
+#19 := (= #16 3::Int)
+#20 := (forall (vars (?v0 Int)) (:pat #17) #19)
+#211 := (~ #20 #20)
+#209 := (~ #19 #19)
+#210 := [refl]: #209
+#212 := [nnf-pos #210]: #211
+#116 := [asserted]: #20
+#213 := [mp~ #116 #212]: #20
+#640 := (not #20)
+#641 := (or #640 #637)
+#642 := [quant-inst #18]: #641
+#748 := [unit-resolution #642 #213]: #637
+#785 := [monotonicity #748 #747 #746]: #784
+#787 := [symm #785]: #786
+#790 := (= f22 #400)
+#779 := (= #88 #400)
+#777 := (= #87 #399)
+#509 := (= f1 #398)
+decl f14 :: (-> S6 S1)
+#449 := (f14 #88)
+#542 := (f6 f7 #449)
+#774 := (= #542 #398)
+#770 := (= #398 #542)
+#453 := (= f1 #449)
+#342 := (pattern #34)
+#146 := (= f1 #31)
+#51 := (f14 #34)
+#142 := (= f1 #51)
+#149 := (iff #142 #146)
+#349 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) (:pat #342) #149)
+#152 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) #149)
+#352 := (iff #152 #349)
+#350 := (iff #149 #149)
+#351 := [refl]: #350
+#353 := [quant-intro #351]: #352
+#236 := (~ #152 #152)
+#234 := (~ #149 #149)
+#235 := [refl]: #234
+#237 := [nnf-pos #235]: #236
+#53 := (= #31 f1)
+#52 := (= #51 f1)
+#54 := (iff #52 #53)
+#55 := (forall (vars (?v0 Int) (?v1 Int) (?v2 S1) (?v3 S5)) #54)
+#153 := (iff #55 #152)
+#150 := (iff #54 #149)
+#147 := (iff #53 #146)
+#148 := [rewrite]: #147
+#144 := (iff #52 #142)
+#145 := [rewrite]: #144
+#151 := [monotonicity #145 #148]: #150
+#154 := [quant-intro #151]: #153
+#141 := [asserted]: #55
+#157 := [mp #141 #154]: #152
+#238 := [mp~ #157 #237]: #152
+#354 := [mp #238 #353]: #349
+#464 := (not #349)
+#465 := (or #464 #453)
+#448 := (= f1 f1)
+#454 := (iff #453 #448)
+#466 := (or #464 #454)
+#468 := (iff #466 #465)
+#470 := (iff #465 #465)
+#471 := [rewrite]: #470
+#462 := (iff #454 #453)
+#1 := true
+#457 := (iff #453 true)
+#460 := (iff #457 #453)
+#461 := [rewrite]: #460
+#458 := (iff #454 #457)
+#455 := (iff #448 true)
+#456 := [rewrite]: #455
+#459 := [monotonicity #456]: #458
+#463 := [trans #459 #461]: #462
+#469 := [monotonicity #463]: #468
+#472 := [trans #469 #471]: #468
+#467 := [quant-inst #18 #12 #4 #86]: #466
+#473 := [mp #467 #472]: #465
+#769 := [unit-resolution #473 #354]: #453
+#771 := [monotonicity #769]: #770
+#775 := [symm #771]: #774
+#543 := (= f1 #542)
+#22 := (:var 0 S1)
+#23 := (f6 f7 #22)
+#24 := (pattern #23)
+#118 := (= f1 #23)
+#128 := (forall (vars (?v0 S1)) (:pat #24) #118)
+#216 := (~ #128 #128)
+#214 := (~ #118 #118)
+#215 := [refl]: #214
+#217 := [nnf-pos #215]: #216
+#25 := (= #23 f1)
+#26 := (iff #25 true)
+#27 := (forall (vars (?v0 S1)) (:pat #24) #26)
+#129 := (iff #27 #128)
+#126 := (iff #26 #118)
+#121 := (iff #118 true)
+#124 := (iff #121 #118)
+#125 := [rewrite]: #124
+#122 := (iff #26 #121)
+#119 := (iff #25 #118)
+#120 := [rewrite]: #119
+#123 := [monotonicity #120]: #122
+#127 := [trans #123 #125]: #126
+#130 := [quant-intro #127]: #129
+#117 := [asserted]: #27
+#133 := [mp #117 #130]: #128
+#218 := [mp~ #133 #217]: #128
+#548 := (not #128)
+#549 := (or #548 #543)
+#550 := [quant-inst #449]: #549
+#768 := [unit-resolution #550 #218]: #543
+#776 := [trans #768 #775]: #509
+#778 := [monotonicity #776]: #777
+#780 := [monotonicity #778]: #779
+#791 := [trans #199 #780]: #790
+#793 := [trans #791 #787]: #792
+#795 := [trans #793 #749]: #794
+#796 := [trans #795 #789]: #183
+#200 := (not #183)
+#202 := [not-or-elim #201]: #200
+[unit-resolution #202 #796]: false
+unsat
+32bed77391f2e5bd3429d275156eab0436b0859c 18 0
+#2 := false
+decl f3 :: S2
+#8 := f3
+#48 := (= f3 f3)
+#49 := (not #48)
+#155 := (iff #49 false)
+#1 := true
+#150 := (not true)
+#153 := (iff #150 false)
+#154 := [rewrite]: #153
+#151 := (iff #49 #150)
+#147 := (iff #48 true)
+#149 := [rewrite]: #147
+#152 := [monotonicity #149]: #151
+#156 := [trans #152 #154]: #155
+#146 := [asserted]: #49
+[mp #146 #156]: false
+unsat
+3c1ec477ccf1b2909c916c4e5bde25988097c01d 18 0
+#2 := false
+decl f5 :: S2
+#12 := f5
+#48 := (= f5 f5)
+#49 := (not #48)
+#155 := (iff #49 false)
+#1 := true
+#150 := (not true)
+#153 := (iff #150 false)
+#154 := [rewrite]: #153
+#151 := (iff #49 #150)
+#147 := (iff #48 true)
+#149 := [rewrite]: #147
+#152 := [monotonicity #149]: #151
+#156 := [trans #152 #154]: #155
+#146 := [asserted]: #49
+[mp #146 #156]: false
+unsat
+fc393122d71ac475e5b68121edf0d1d7e9737e48 277 0
+#2 := false
+#13 := 2::Int
+#9 := 1::Int
+#330 := (= 1::Int 2::Int)
+#335 := (iff #330 false)
+#336 := [rewrite]: #335
+decl f8 :: (-> S2 Int)
+decl f4 :: (-> Int S2)
+#14 := (f4 2::Int)
+#282 := (f8 #14)
+#290 := (= #282 2::Int)
+decl f9 :: (-> Int S3 S1)
+decl f10 :: S3
+#30 := f10
+#284 := (f9 2::Int f10)
+decl f1 :: S1
+#4 := f1
+#285 := (= f1 #284)
+#286 := (not #285)
+#446 := [hypothesis]: #286
+#29 := (:var 0 Int)
+#31 := (f9 #29 f10)
+#237 := (pattern #31)
+#17 := 3::Int
+#35 := (= #29 3::Int)
+#34 := (= #29 2::Int)
+#33 := (= #29 1::Int)
+#109 := (or #33 #34 #35)
+#75 := (= f1 #31)
+#114 := (iff #75 #109)
+#238 := (forall (vars (?v0 Int)) (:pat #237) #114)
+#117 := (forall (vars (?v0 Int)) #114)
+#241 := (iff #117 #238)
+#239 := (iff #114 #114)
+#240 := [refl]: #239
+#242 := [quant-intro #240]: #241
+#160 := (~ #117 #117)
+#158 := (~ #114 #114)
+#159 := [refl]: #158
+#161 := [nnf-pos #159]: #160
+#36 := (or #34 #35)
+#37 := (or #33 #36)
+#32 := (= #31 f1)
+#38 := (iff #32 #37)
+#39 := (forall (vars (?v0 Int)) #38)
+#120 := (iff #39 #117)
+#84 := (= 3::Int #29)
+#81 := (= 2::Int #29)
+#87 := (or #81 #84)
+#78 := (= 1::Int #29)
+#90 := (or #78 #87)
+#93 := (iff #75 #90)
+#96 := (forall (vars (?v0 Int)) #93)
+#118 := (iff #96 #117)
+#115 := (iff #93 #114)
+#112 := (iff #90 #109)
+#110 := (iff #37 #109)
+#111 := [rewrite]: #110
+#107 := (iff #90 #37)
+#105 := (iff #87 #36)
+#101 := (iff #84 #35)
+#102 := [rewrite]: #101
+#99 := (iff #81 #34)
+#100 := [rewrite]: #99
+#106 := [monotonicity #100 #102]: #105
+#103 := (iff #78 #33)
+#104 := [rewrite]: #103
+#108 := [monotonicity #104 #106]: #107
+#113 := [trans #108 #111]: #112
+#116 := [monotonicity #113]: #115
+#119 := [quant-intro #116]: #118
+#97 := (iff #39 #96)
+#94 := (iff #38 #93)
+#91 := (iff #37 #90)
+#88 := (iff #36 #87)
+#85 := (iff #35 #84)
+#86 := [rewrite]: #85
+#82 := (iff #34 #81)
+#83 := [rewrite]: #82
+#89 := [monotonicity #83 #86]: #88
+#79 := (iff #33 #78)
+#80 := [rewrite]: #79
+#92 := [monotonicity #80 #89]: #91
+#76 := (iff #32 #75)
+#77 := [rewrite]: #76
+#95 := [monotonicity #77 #92]: #94
+#98 := [quant-intro #95]: #97
+#121 := [trans #98 #119]: #120
+#74 := [asserted]: #39
+#122 := [mp #74 #121]: #117
+#162 := [mp~ #122 #161]: #117
+#243 := [mp #162 #242]: #238
+#353 := (not #238)
+#437 := (or #353 #285)
+#411 := (= 2::Int 3::Int)
+#414 := (= 2::Int 2::Int)
+#410 := (= 2::Int 1::Int)
+#415 := (or #410 #414 #411)
+#416 := (iff #285 #415)
+#438 := (or #353 #416)
+#440 := (iff #438 #437)
+#442 := (iff #437 #437)
+#443 := [rewrite]: #442
+#435 := (iff #416 #285)
+#1 := true
+#430 := (iff #285 true)
+#433 := (iff #430 #285)
+#434 := [rewrite]: #433
+#431 := (iff #416 #430)
+#428 := (iff #415 true)
+#423 := (or false true false)
+#426 := (iff #423 true)
+#427 := [rewrite]: #426
+#424 := (iff #415 #423)
+#421 := (iff #411 false)
+#422 := [rewrite]: #421
+#419 := (iff #414 true)
+#420 := [rewrite]: #419
+#417 := (iff #410 false)
+#418 := [rewrite]: #417
+#425 := [monotonicity #418 #420 #422]: #424
+#429 := [trans #425 #427]: #428
+#432 := [monotonicity #429]: #431
+#436 := [trans #432 #434]: #435
+#441 := [monotonicity #436]: #440
+#444 := [trans #441 #443]: #440
+#439 := [quant-inst #13]: #438
+#445 := [mp #439 #444]: #437
+#447 := [unit-resolution #445 #243 #446]: false
+#448 := [lemma #447]: #285
+#291 := (or #286 #290)
+#43 := (f4 #29)
+#251 := (pattern #43)
+#44 := (f8 #43)
+#131 := (= #29 #44)
+#138 := (not #75)
+#139 := (or #138 #131)
+#252 := (forall (vars (?v0 Int)) (:pat #237 #251) #139)
+#144 := (forall (vars (?v0 Int)) #139)
+#255 := (iff #144 #252)
+#253 := (iff #139 #139)
+#254 := [refl]: #253
+#256 := [quant-intro #254]: #255
+#170 := (~ #144 #144)
+#168 := (~ #139 #139)
+#169 := [refl]: #168
+#171 := [nnf-pos #169]: #170
+#45 := (= #44 #29)
+#46 := (implies #32 #45)
+#47 := (forall (vars (?v0 Int)) #46)
+#145 := (iff #47 #144)
+#142 := (iff #46 #139)
+#135 := (implies #75 #131)
+#140 := (iff #135 #139)
+#141 := [rewrite]: #140
+#136 := (iff #46 #135)
+#133 := (iff #45 #131)
+#134 := [rewrite]: #133
+#137 := [monotonicity #77 #134]: #136
+#143 := [trans #137 #141]: #142
+#146 := [quant-intro #143]: #145
+#130 := [asserted]: #47
+#149 := [mp #130 #146]: #144
+#172 := [mp~ #149 #171]: #144
+#257 := [mp #172 #256]: #252
+#270 := (not #252)
+#294 := (or #270 #286 #290)
+#283 := (= 2::Int #282)
+#287 := (or #286 #283)
+#295 := (or #270 #287)
+#302 := (iff #295 #294)
+#297 := (or #270 #291)
+#300 := (iff #297 #294)
+#301 := [rewrite]: #300
+#298 := (iff #295 #297)
+#292 := (iff #287 #291)
+#288 := (iff #283 #290)
+#289 := [rewrite]: #288
+#293 := [monotonicity #289]: #292
+#299 := [monotonicity #293]: #298
+#303 := [trans #299 #301]: #302
+#296 := [quant-inst #13]: #295
+#304 := [mp #296 #303]: #294
+#449 := [unit-resolution #304 #257]: #291
+#450 := [unit-resolution #449 #448]: #290
+#467 := (= 1::Int #282)
+#465 := (= #282 1::Int)
+#10 := (f4 1::Int)
+#258 := (f8 #10)
+#266 := (= #258 1::Int)
+#260 := (f9 1::Int f10)
+#261 := (= f1 #260)
+#262 := (not #261)
+#363 := [hypothesis]: #262
+#354 := (or #353 #261)
+#329 := (= 1::Int 3::Int)
+#328 := (= 1::Int 1::Int)
+#331 := (or #328 #330 #329)
+#332 := (iff #261 #331)
+#355 := (or #353 #332)
+#357 := (iff #355 #354)
+#359 := (iff #354 #354)
+#360 := [rewrite]: #359
+#351 := (iff #332 #261)
+#346 := (iff #261 true)
+#349 := (iff #346 #261)
+#350 := [rewrite]: #349
+#347 := (iff #332 #346)
+#344 := (iff #331 true)
+#339 := (or true false false)
+#342 := (iff #339 true)
+#343 := [rewrite]: #342
+#340 := (iff #331 #339)
+#337 := (iff #329 false)
+#338 := [rewrite]: #337
+#333 := (iff #328 true)
+#334 := [rewrite]: #333
+#341 := [monotonicity #334 #336 #338]: #340
+#345 := [trans #341 #343]: #344
+#348 := [monotonicity #345]: #347
+#352 := [trans #348 #350]: #351
+#358 := [monotonicity #352]: #357
+#361 := [trans #358 #360]: #357
+#356 := [quant-inst #9]: #355
+#362 := [mp #356 #361]: #354
+#364 := [unit-resolution #362 #243 #363]: false
+#365 := [lemma #364]: #261
+#267 := (or #262 #266)
+#271 := (or #270 #262 #266)
+#259 := (= 1::Int #258)
+#263 := (or #262 #259)
+#272 := (or #270 #263)
+#279 := (iff #272 #271)
+#274 := (or #270 #267)
+#277 := (iff #274 #271)
+#278 := [rewrite]: #277
+#275 := (iff #272 #274)
+#268 := (iff #263 #267)
+#264 := (iff #259 #266)
+#265 := [rewrite]: #264
+#269 := [monotonicity #265]: #268
+#276 := [monotonicity #269]: #275
+#280 := [trans #276 #278]: #279
+#273 := [quant-inst #9]: #272
+#281 := [mp #273 #280]: #271
+#451 := [unit-resolution #281 #257]: #267
+#452 := [unit-resolution #451 #365]: #266
+#463 := (= #282 #258)
+#461 := (= #14 #10)
+decl f3 :: S2
+#8 := f3
+#11 := (= f3 #10)
+#70 := [asserted]: #11
+#459 := (= #14 f3)
+decl f5 :: S2
+#12 := f5
+#457 := (= f5 f3)
+#48 := (= f3 f5)
+#49 := (not #48)
+#50 := (not #49)
+#148 := (iff #50 #48)
+#150 := [rewrite]: #148
+#147 := [asserted]: #50
+#153 := [mp #147 #150]: #48
+#458 := [symm #153]: #457
+#455 := (= #14 f5)
+#15 := (= f5 #14)
+#71 := [asserted]: #15
+#456 := [symm #71]: #455
+#460 := [trans #456 #458]: #459
+#462 := [trans #460 #70]: #461
+#464 := [monotonicity #462]: #463
+#466 := [trans #464 #452]: #465
+#468 := [symm #466]: #467
+#469 := [trans #468 #450]: #330
+[mp #469 #336]: false
+unsat
+3eced97a83aec74943eda175c04a4dc551f95874 277 0
+#2 := false
+decl f7 :: (-> S2 S2 S2)
+decl f3 :: S2
+#8 := f3
+#48 := (f7 f3 f3)
+decl f5 :: S2
+#12 := f5
+#148 := (= f5 #48)
+decl f4 :: (-> Int S2)
+#9 := 1::Int
+#10 := (f4 1::Int)
+#265 := (f7 #10 #10)
+#503 := (= #265 #48)
+#499 := (= #48 #265)
+#11 := (= f3 #10)
+#70 := [asserted]: #11
+#500 := [monotonicity #70 #70]: #499
+#504 := [symm #500]: #503
+#507 := (= f5 #265)
+decl f8 :: (-> S2 Int)
+#262 := (f8 #10)
+#13 := 2::Int
+#267 := (* 2::Int #262)
+#270 := (f4 #267)
+#501 := (= #270 #265)
+#273 := (= #265 #270)
+#21 := (:var 0 S2)
+#20 := (:var 1 S2)
+#22 := (f7 #20 #21)
+#234 := (pattern #22)
+#24 := (f8 #21)
+#23 := (f8 #20)
+#25 := (+ #23 #24)
+#26 := (f4 #25)
+#27 := (= #22 #26)
+#235 := (forall (vars (?v0 S2) (?v1 S2)) (:pat #234) #27)
+#28 := (forall (vars (?v0 S2) (?v1 S2)) #27)
+#238 := (iff #28 #235)
+#236 := (iff #27 #27)
+#237 := [refl]: #236
+#239 := [quant-intro #237]: #238
+#159 := (~ #28 #28)
+#156 := (~ #27 #27)
+#158 := [refl]: #156
+#160 := [nnf-pos #158]: #159
+#73 := [asserted]: #28
+#161 := [mp~ #73 #160]: #28
+#240 := [mp #161 #239]: #235
+#276 := (not #235)
+#277 := (or #276 #273)
+#263 := (+ #262 #262)
+#264 := (f4 #263)
+#266 := (= #265 #264)
+#278 := (or #276 #266)
+#280 := (iff #278 #277)
+#282 := (iff #277 #277)
+#283 := [rewrite]: #282
+#274 := (iff #266 #273)
+#271 := (= #264 #270)
+#268 := (= #263 #267)
+#269 := [rewrite]: #268
+#272 := [monotonicity #269]: #271
+#275 := [monotonicity #272]: #274
+#281 := [monotonicity #275]: #280
+#284 := [trans #281 #283]: #280
+#279 := [quant-inst #10 #10]: #278
+#285 := [mp #279 #284]: #277
+#484 := [unit-resolution #285 #240]: #273
+#502 := [symm #484]: #501
+#505 := (= f5 #270)
+#14 := (f4 2::Int)
+#497 := (= #14 #270)
+#495 := (= 2::Int #267)
+#493 := (= #267 2::Int)
+#309 := (<= #262 1::Int)
+#293 := (= #262 1::Int)
+decl f9 :: (-> Int S3 S1)
+decl f10 :: S3
+#30 := f10
+#287 := (f9 1::Int f10)
+decl f1 :: S1
+#4 := f1
+#288 := (= f1 #287)
+#289 := (not #288)
+#481 := [hypothesis]: #289
+#29 := (:var 0 Int)
+#31 := (f9 #29 f10)
+#241 := (pattern #31)
+#17 := 3::Int
+#35 := (= #29 3::Int)
+#34 := (= #29 2::Int)
+#33 := (= #29 1::Int)
+#109 := (or #33 #34 #35)
+#75 := (= f1 #31)
+#114 := (iff #75 #109)
+#242 := (forall (vars (?v0 Int)) (:pat #241) #114)
+#117 := (forall (vars (?v0 Int)) #114)
+#245 := (iff #117 #242)
+#243 := (iff #114 #114)
+#244 := [refl]: #243
+#246 := [quant-intro #244]: #245
+#164 := (~ #117 #117)
+#162 := (~ #114 #114)
+#163 := [refl]: #162
+#165 := [nnf-pos #163]: #164
+#36 := (or #34 #35)
+#37 := (or #33 #36)
+#32 := (= #31 f1)
+#38 := (iff #32 #37)
+#39 := (forall (vars (?v0 Int)) #38)
+#120 := (iff #39 #117)
+#84 := (= 3::Int #29)
+#81 := (= 2::Int #29)
+#87 := (or #81 #84)
+#78 := (= 1::Int #29)
+#90 := (or #78 #87)
+#93 := (iff #75 #90)
+#96 := (forall (vars (?v0 Int)) #93)
+#118 := (iff #96 #117)
+#115 := (iff #93 #114)
+#112 := (iff #90 #109)
+#110 := (iff #37 #109)
+#111 := [rewrite]: #110
+#107 := (iff #90 #37)
+#105 := (iff #87 #36)
+#101 := (iff #84 #35)
+#102 := [rewrite]: #101
+#99 := (iff #81 #34)
+#100 := [rewrite]: #99
+#106 := [monotonicity #100 #102]: #105
+#103 := (iff #78 #33)
+#104 := [rewrite]: #103
+#108 := [monotonicity #104 #106]: #107
+#113 := [trans #108 #111]: #112
+#116 := [monotonicity #113]: #115
+#119 := [quant-intro #116]: #118
+#97 := (iff #39 #96)
+#94 := (iff #38 #93)
+#91 := (iff #37 #90)
+#88 := (iff #36 #87)
+#85 := (iff #35 #84)
+#86 := [rewrite]: #85
+#82 := (iff #34 #81)
+#83 := [rewrite]: #82
+#89 := [monotonicity #83 #86]: #88
+#79 := (iff #33 #78)
+#80 := [rewrite]: #79
+#92 := [monotonicity #80 #89]: #91
+#76 := (iff #32 #75)
+#77 := [rewrite]: #76
+#95 := [monotonicity #77 #92]: #94
+#98 := [quant-intro #95]: #97
+#121 := [trans #98 #119]: #120
+#74 := [asserted]: #39
+#122 := [mp #74 #121]: #117
+#166 := [mp~ #122 #165]: #117
+#247 := [mp #166 #246]: #242
+#401 := (not #242)
+#472 := (or #401 #288)
+#442 := (= 1::Int 3::Int)
+#449 := (= 1::Int 2::Int)
+#441 := (= 1::Int 1::Int)
+#450 := (or #441 #449 #442)
+#451 := (iff #288 #450)
+#473 := (or #401 #451)
+#475 := (iff #473 #472)
+#477 := (iff #472 #472)
+#478 := [rewrite]: #477
+#470 := (iff #451 #288)
+#1 := true
+#465 := (iff #288 true)
+#468 := (iff #465 #288)
+#469 := [rewrite]: #468
+#466 := (iff #451 #465)
+#463 := (iff #450 true)
+#458 := (or true false false)
+#461 := (iff #458 true)
+#462 := [rewrite]: #461
+#459 := (iff #450 #458)
+#456 := (iff #442 false)
+#457 := [rewrite]: #456
+#454 := (iff #449 false)
+#455 := [rewrite]: #454
+#452 := (iff #441 true)
+#453 := [rewrite]: #452
+#460 := [monotonicity #453 #455 #457]: #459
+#464 := [trans #460 #462]: #463
+#467 := [monotonicity #464]: #466
+#471 := [trans #467 #469]: #470
+#476 := [monotonicity #471]: #475
+#479 := [trans #476 #478]: #475
+#474 := [quant-inst #9]: #473
+#480 := [mp #474 #479]: #472
+#482 := [unit-resolution #480 #247 #481]: false
+#483 := [lemma #482]: #288
+#294 := (or #289 #293)
+#43 := (f4 #29)
+#255 := (pattern #43)
+#44 := (f8 #43)
+#131 := (= #29 #44)
+#138 := (not #75)
+#139 := (or #138 #131)
+#256 := (forall (vars (?v0 Int)) (:pat #241 #255) #139)
+#144 := (forall (vars (?v0 Int)) #139)
+#259 := (iff #144 #256)
+#257 := (iff #139 #139)
+#258 := [refl]: #257
+#260 := [quant-intro #258]: #259
+#174 := (~ #144 #144)
+#172 := (~ #139 #139)
+#173 := [refl]: #172
+#175 := [nnf-pos #173]: #174
+#45 := (= #44 #29)
+#46 := (implies #32 #45)
+#47 := (forall (vars (?v0 Int)) #46)
+#145 := (iff #47 #144)
+#142 := (iff #46 #139)
+#135 := (implies #75 #131)
+#140 := (iff #135 #139)
+#141 := [rewrite]: #140
+#136 := (iff #46 #135)
+#133 := (iff #45 #131)
+#134 := [rewrite]: #133
+#137 := [monotonicity #77 #134]: #136
+#143 := [trans #137 #141]: #142
+#146 := [quant-intro #143]: #145
+#130 := [asserted]: #47
+#149 := [mp #130 #146]: #144
+#176 := [mp~ #149 #175]: #144
+#261 := [mp #176 #260]: #256
+#297 := (not #256)
+#298 := (or #297 #289 #293)
+#286 := (= 1::Int #262)
+#290 := (or #289 #286)
+#299 := (or #297 #290)
+#306 := (iff #299 #298)
+#301 := (or #297 #294)
+#304 := (iff #301 #298)
+#305 := [rewrite]: #304
+#302 := (iff #299 #301)
+#295 := (iff #290 #294)
+#291 := (iff #286 #293)
+#292 := [rewrite]: #291
+#296 := [monotonicity #292]: #295
+#303 := [monotonicity #296]: #302
+#307 := [trans #303 #305]: #306
+#300 := [quant-inst #9]: #299
+#308 := [mp #300 #307]: #298
+#485 := [unit-resolution #308 #261]: #294
+#486 := [unit-resolution #485 #483]: #293
+#415 := (not #293)
+#487 := (or #415 #309)
+#488 := [th-lemma arith triangle-eq]: #487
+#489 := [unit-resolution #488 #486]: #309
+#310 := (>= #262 1::Int)
+#490 := (or #415 #310)
+#491 := [th-lemma arith triangle-eq]: #490
+#492 := [unit-resolution #491 #486]: #310
+#494 := [th-lemma arith eq-propagate -2 -2 #492 #489]: #493
+#496 := [symm #494]: #495
+#498 := [monotonicity #496]: #497
+#15 := (= f5 #14)
+#71 := [asserted]: #15
+#506 := [trans #71 #498]: #505
+#508 := [trans #506 #502]: #507
+#509 := [trans #508 #504]: #148
+#152 := (not #148)
+#49 := (= #48 f5)
+#50 := (not #49)
+#153 := (iff #50 #152)
+#150 := (iff #49 #148)
+#151 := [rewrite]: #150
+#154 := [monotonicity #151]: #153
+#147 := [asserted]: #50
+#157 := [mp #147 #154]: #152
+[unit-resolution #157 #509]: false
+unsat
+430c03c5c26128e8a75bc59c68cc6da929b262eb 435 0
+#2 := false
+decl f7 :: (-> S2 S2 S2)
+decl f5 :: S2
+#12 := f5
+decl f3 :: S2
+#8 := f3
+#48 := (f7 f3 f5)
+decl f6 :: S2
+#16 := f6
+#148 := (= f6 #48)
+decl f4 :: (-> Int S2)
+#13 := 2::Int
+#14 := (f4 2::Int)
+#9 := 1::Int
+#10 := (f4 1::Int)
+#266 := (f7 #10 #14)
+#584 := (= #266 #48)
+#618 := (= #48 #266)
+#15 := (= f5 #14)
+#71 := [asserted]: #15
+#11 := (= f3 #10)
+#70 := [asserted]: #11
+#619 := [monotonicity #70 #71]: #618
+#587 := [symm #619]: #584
+#590 := (= f6 #266)
+decl f8 :: (-> S2 Int)
+#263 := (f8 #10)
+#262 := (f8 #14)
+#268 := (+ #262 #263)
+#271 := (f4 #268)
+#585 := (= #271 #266)
+#274 := (= #266 #271)
+#21 := (:var 0 S2)
+#20 := (:var 1 S2)
+#22 := (f7 #20 #21)
+#234 := (pattern #22)
+#24 := (f8 #21)
+#23 := (f8 #20)
+#25 := (+ #23 #24)
+#26 := (f4 #25)
+#27 := (= #22 #26)
+#235 := (forall (vars (?v0 S2) (?v1 S2)) (:pat #234) #27)
+#28 := (forall (vars (?v0 S2) (?v1 S2)) #27)
+#238 := (iff #28 #235)
+#236 := (iff #27 #27)
+#237 := [refl]: #236
+#239 := [quant-intro #237]: #238
+#159 := (~ #28 #28)
+#156 := (~ #27 #27)
+#158 := [refl]: #156
+#160 := [nnf-pos #158]: #159
+#73 := [asserted]: #28
+#161 := [mp~ #73 #160]: #28
+#240 := [mp #161 #239]: #235
+#277 := (not #235)
+#278 := (or #277 #274)
+#264 := (+ #263 #262)
+#265 := (f4 #264)
+#267 := (= #266 #265)
+#279 := (or #277 #267)
+#281 := (iff #279 #278)
+#283 := (iff #278 #278)
+#284 := [rewrite]: #283
+#275 := (iff #267 #274)
+#272 := (= #265 #271)
+#269 := (= #264 #268)
+#270 := [rewrite]: #269
+#273 := [monotonicity #270]: #272
+#276 := [monotonicity #273]: #275
+#282 := [monotonicity #276]: #281
+#285 := [trans #282 #284]: #281
+#280 := [quant-inst #10 #14]: #279
+#286 := [mp #280 #285]: #278
+#599 := [unit-resolution #286 #240]: #274
+#586 := [symm #599]: #585
+#588 := (= f6 #271)
+#17 := 3::Int
+#18 := (f4 3::Int)
+#616 := (= #18 #271)
+#614 := (= 3::Int #268)
+#504 := (= #268 3::Int)
+#310 := (<= #263 1::Int)
+#294 := (= #263 1::Int)
+decl f9 :: (-> Int S3 S1)
+decl f10 :: S3
+#30 := f10
+#288 := (f9 1::Int f10)
+decl f1 :: S1
+#4 := f1
+#289 := (= f1 #288)
+#290 := (not #289)
+#533 := [hypothesis]: #290
+#29 := (:var 0 Int)
+#31 := (f9 #29 f10)
+#241 := (pattern #31)
+#35 := (= #29 3::Int)
+#34 := (= #29 2::Int)
+#33 := (= #29 1::Int)
+#109 := (or #33 #34 #35)
+#75 := (= f1 #31)
+#114 := (iff #75 #109)
+#242 := (forall (vars (?v0 Int)) (:pat #241) #114)
+#117 := (forall (vars (?v0 Int)) #114)
+#245 := (iff #117 #242)
+#243 := (iff #114 #114)
+#244 := [refl]: #243
+#246 := [quant-intro #244]: #245
+#164 := (~ #117 #117)
+#162 := (~ #114 #114)
+#163 := [refl]: #162
+#165 := [nnf-pos #163]: #164
+#36 := (or #34 #35)
+#37 := (or #33 #36)
+#32 := (= #31 f1)
+#38 := (iff #32 #37)
+#39 := (forall (vars (?v0 Int)) #38)
+#120 := (iff #39 #117)
+#84 := (= 3::Int #29)
+#81 := (= 2::Int #29)
+#87 := (or #81 #84)
+#78 := (= 1::Int #29)
+#90 := (or #78 #87)
+#93 := (iff #75 #90)
+#96 := (forall (vars (?v0 Int)) #93)
+#118 := (iff #96 #117)
+#115 := (iff #93 #114)
+#112 := (iff #90 #109)
+#110 := (iff #37 #109)
+#111 := [rewrite]: #110
+#107 := (iff #90 #37)
+#105 := (iff #87 #36)
+#101 := (iff #84 #35)
+#102 := [rewrite]: #101
+#99 := (iff #81 #34)
+#100 := [rewrite]: #99
+#106 := [monotonicity #100 #102]: #105
+#103 := (iff #78 #33)
+#104 := [rewrite]: #103
+#108 := [monotonicity #104 #106]: #107
+#113 := [trans #108 #111]: #112
+#116 := [monotonicity #113]: #115
+#119 := [quant-intro #116]: #118
+#97 := (iff #39 #96)
+#94 := (iff #38 #93)
+#91 := (iff #37 #90)
+#88 := (iff #36 #87)
+#85 := (iff #35 #84)
+#86 := [rewrite]: #85
+#82 := (iff #34 #81)
+#83 := [rewrite]: #82
+#89 := [monotonicity #83 #86]: #88
+#79 := (iff #33 #78)
+#80 := [rewrite]: #79
+#92 := [monotonicity #80 #89]: #91
+#76 := (iff #32 #75)
+#77 := [rewrite]: #76
+#95 := [monotonicity #77 #92]: #94
+#98 := [quant-intro #95]: #97
+#121 := [trans #98 #119]: #120
+#74 := [asserted]: #39
+#122 := [mp #74 #121]: #117
+#166 := [mp~ #122 #165]: #117
+#247 := [mp #166 #246]: #242
+#408 := (not #242)
+#524 := (or #408 #289)
+#536 := (= 1::Int 3::Int)
+#537 := (= 1::Int 2::Int)
+#535 := (= 1::Int 1::Int)
+#538 := (or #535 #537 #536)
+#539 := (iff #289 #538)
+#525 := (or #408 #539)
+#527 := (iff #525 #524)
+#529 := (iff #524 #524)
+#530 := [rewrite]: #529
+#520 := (iff #539 #289)
+#1 := true
+#553 := (iff #289 true)
+#521 := (iff #553 #289)
+#522 := [rewrite]: #521
+#554 := (iff #539 #553)
+#551 := (iff #538 true)
+#546 := (or true false false)
+#549 := (iff #546 true)
+#550 := [rewrite]: #549
+#547 := (iff #538 #546)
+#544 := (iff #536 false)
+#545 := [rewrite]: #544
+#542 := (iff #537 false)
+#543 := [rewrite]: #542
+#540 := (iff #535 true)
+#541 := [rewrite]: #540
+#548 := [monotonicity #541 #543 #545]: #547
+#552 := [trans #548 #550]: #551
+#555 := [monotonicity #552]: #554
+#523 := [trans #555 #522]: #520
+#528 := [monotonicity #523]: #527
+#531 := [trans #528 #530]: #527
+#526 := [quant-inst #9]: #525
+#532 := [mp #526 #531]: #524
+#534 := [unit-resolution #532 #247 #533]: false
+#583 := [lemma #534]: #289
+#295 := (or #290 #294)
+#43 := (f4 #29)
+#255 := (pattern #43)
+#44 := (f8 #43)
+#131 := (= #29 #44)
+#138 := (not #75)
+#139 := (or #138 #131)
+#256 := (forall (vars (?v0 Int)) (:pat #241 #255) #139)
+#144 := (forall (vars (?v0 Int)) #139)
+#259 := (iff #144 #256)
+#257 := (iff #139 #139)
+#258 := [refl]: #257
+#260 := [quant-intro #258]: #259
+#174 := (~ #144 #144)
+#172 := (~ #139 #139)
+#173 := [refl]: #172
+#175 := [nnf-pos #173]: #174
+#45 := (= #44 #29)
+#46 := (implies #32 #45)
+#47 := (forall (vars (?v0 Int)) #46)
+#145 := (iff #47 #144)
+#142 := (iff #46 #139)
+#135 := (implies #75 #131)
+#140 := (iff #135 #139)
+#141 := [rewrite]: #140
+#136 := (iff #46 #135)
+#133 := (iff #45 #131)
+#134 := [rewrite]: #133
+#137 := [monotonicity #77 #134]: #136
+#143 := [trans #137 #141]: #142
+#146 := [quant-intro #143]: #145
+#130 := [asserted]: #47
+#149 := [mp #130 #146]: #144
+#176 := [mp~ #149 #175]: #144
+#261 := [mp #176 #260]: #256
+#298 := (not #256)
+#299 := (or #298 #290 #294)
+#287 := (= 1::Int #263)
+#291 := (or #290 #287)
+#300 := (or #298 #291)
+#307 := (iff #300 #299)
+#302 := (or #298 #295)
+#305 := (iff #302 #299)
+#306 := [rewrite]: #305
+#303 := (iff #300 #302)
+#296 := (iff #291 #295)
+#292 := (iff #287 #294)
+#293 := [rewrite]: #292
+#297 := [monotonicity #293]: #296
+#304 := [monotonicity #297]: #303
+#308 := [trans #304 #306]: #307
+#301 := [quant-inst #9]: #300
+#309 := [mp #301 #308]: #299
+#600 := [unit-resolution #309 #261]: #295
+#601 := [unit-resolution #600 #583]: #294
+#422 := (not #294)
+#602 := (or #422 #310)
+#603 := [th-lemma arith triangle-eq]: #602
+#604 := [unit-resolution #603 #601]: #310
+#311 := (>= #263 1::Int)
+#556 := (not #311)
+#557 := [hypothesis]: #556
+#558 := (or #422 #311)
+#559 := [th-lemma arith triangle-eq]: #558
+#560 := [unit-resolution #559 #557]: #422
+#396 := (= #263 3::Int)
+#425 := (not #396)
+#419 := (>= #263 3::Int)
+#561 := (not #419)
+#562 := (or #561 #311)
+#563 := [th-lemma arith farkas 1 1]: #562
+#564 := [unit-resolution #563 #557]: #561
+#565 := (or #425 #419)
+#566 := [th-lemma arith triangle-eq]: #565
+#567 := [unit-resolution #566 #564]: #425
+#397 := (= #263 2::Int)
+#428 := (not #397)
+#421 := (>= #263 2::Int)
+#568 := (not #421)
+#569 := (or #568 #311)
+#570 := [th-lemma arith farkas 1 1]: #569
+#571 := [unit-resolution #570 #557]: #568
+#572 := (or #428 #421)
+#573 := [th-lemma arith triangle-eq]: #572
+#574 := [unit-resolution #573 #571]: #428
+#402 := (or #294 #396 #397)
+#389 := (f9 #263 f10)
+#390 := (= f1 #389)
+#405 := (iff #390 #402)
+#409 := (or #408 #405)
+#400 := (or #294 #397 #396)
+#401 := (iff #390 #400)
+#410 := (or #408 #401)
+#412 := (iff #410 #409)
+#414 := (iff #409 #409)
+#415 := [rewrite]: #414
+#406 := (iff #401 #405)
+#403 := (iff #400 #402)
+#404 := [rewrite]: #403
+#407 := [monotonicity #404]: #406
+#413 := [monotonicity #407]: #412
+#416 := [trans #413 #415]: #412
+#411 := [quant-inst #263]: #410
+#417 := [mp #411 #416]: #409
+#575 := [unit-resolution #417 #247]: #405
+#434 := (not #405)
+#577 := (or #434 #402)
+#248 := (pattern #24)
+#40 := (f9 #24 f10)
+#124 := (= f1 #40)
+#249 := (forall (vars (?v0 S2)) (:pat #248) #124)
+#127 := (forall (vars (?v0 S2)) #124)
+#252 := (iff #127 #249)
+#250 := (iff #124 #124)
+#251 := [refl]: #250
+#253 := [quant-intro #251]: #252
+#169 := (~ #127 #127)
+#167 := (~ #124 #124)
+#168 := [refl]: #167
+#170 := [nnf-pos #168]: #169
+#41 := (= #40 f1)
+#42 := (forall (vars (?v0 S2)) #41)
+#128 := (iff #42 #127)
+#125 := (iff #41 #124)
+#126 := [rewrite]: #125
+#129 := [quant-intro #126]: #128
+#123 := [asserted]: #42
+#132 := [mp #123 #129]: #127
+#171 := [mp~ #132 #170]: #127
+#254 := [mp #171 #253]: #249
+#393 := (not #249)
+#394 := (or #393 #390)
+#395 := [quant-inst #10]: #394
+#576 := [unit-resolution #395 #254]: #390
+#437 := (not #390)
+#438 := (or #434 #437 #402)
+#439 := [def-axiom]: #438
+#578 := [unit-resolution #439 #576]: #577
+#579 := [unit-resolution #578 #575]: #402
+#431 := (not #402)
+#432 := (or #431 #294 #396 #397)
+#433 := [def-axiom]: #432
+#580 := [unit-resolution #433 #579]: #402
+#581 := [unit-resolution #580 #574 #567 #560]: false
+#582 := [lemma #581]: #311
+#334 := (<= #262 2::Int)
+#319 := (= #262 2::Int)
+#313 := (f9 2::Int f10)
+#314 := (= f1 #313)
+#315 := (not #314)
+#654 := [hypothesis]: #315
+#645 := (or #408 #314)
+#621 := (= 2::Int 3::Int)
+#622 := (= 2::Int 2::Int)
+#620 := (= 2::Int 1::Int)
+#623 := (or #620 #622 #621)
+#624 := (iff #314 #623)
+#646 := (or #408 #624)
+#648 := (iff #646 #645)
+#650 := (iff #645 #645)
+#651 := [rewrite]: #650
+#643 := (iff #624 #314)
+#638 := (iff #314 true)
+#641 := (iff #638 #314)
+#642 := [rewrite]: #641
+#639 := (iff #624 #638)
+#636 := (iff #623 true)
+#631 := (or false true false)
+#634 := (iff #631 true)
+#635 := [rewrite]: #634
+#632 := (iff #623 #631)
+#629 := (iff #621 false)
+#630 := [rewrite]: #629
+#627 := (iff #622 true)
+#628 := [rewrite]: #627
+#625 := (iff #620 false)
+#626 := [rewrite]: #625
+#633 := [monotonicity #626 #628 #630]: #632
+#637 := [trans #633 #635]: #636
+#640 := [monotonicity #637]: #639
+#644 := [trans #640 #642]: #643
+#649 := [monotonicity #644]: #648
+#652 := [trans #649 #651]: #648
+#647 := [quant-inst #13]: #646
+#653 := [mp #647 #652]: #645
+#655 := [unit-resolution #653 #247 #654]: false
+#656 := [lemma #655]: #314
+#320 := (or #315 #319)
+#323 := (or #298 #315 #319)
+#312 := (= 2::Int #262)
+#316 := (or #315 #312)
+#324 := (or #298 #316)
+#331 := (iff #324 #323)
+#326 := (or #298 #320)
+#329 := (iff #326 #323)
+#330 := [rewrite]: #329
+#327 := (iff #324 #326)
+#321 := (iff #316 #320)
+#317 := (iff #312 #319)
+#318 := [rewrite]: #317
+#322 := [monotonicity #318]: #321
+#328 := [monotonicity #322]: #327
+#332 := [trans #328 #330]: #331
+#325 := [quant-inst #13]: #324
+#333 := [mp #325 #332]: #323
+#605 := [unit-resolution #333 #261]: #320
+#606 := [unit-resolution #605 #656]: #319
+#477 := (not #319)
+#607 := (or #477 #334)
+#608 := [th-lemma arith triangle-eq]: #607
+#609 := [unit-resolution #608 #606]: #334
+#335 := (>= #262 2::Int)
+#610 := (or #477 #335)
+#611 := [th-lemma arith triangle-eq]: #610
+#612 := [unit-resolution #611 #606]: #335
+#613 := [th-lemma arith eq-propagate -1 -1 -1 -1 #612 #609 #582 #604]: #504
+#615 := [symm #613]: #614
+#617 := [monotonicity #615]: #616
+#19 := (= f6 #18)
+#72 := [asserted]: #19
+#589 := [trans #72 #617]: #588
+#591 := [trans #589 #586]: #590
+#592 := [trans #591 #587]: #148
+#152 := (not #148)
+#49 := (= #48 f6)
+#50 := (not #49)
+#153 := (iff #50 #152)
+#150 := (iff #49 #148)
+#151 := [rewrite]: #150
+#154 := [monotonicity #151]: #153
+#147 := [asserted]: #50
+#157 := [mp #147 #154]: #152
+[unit-resolution #157 #592]: false
+unsat
+e90da59d7c0ef5b4100b7b5941ef59b730edfa8b 1 0
+unsat
+b8fa35f9ffb93b572016b3a7093d90ff2dc40803 1 0
+unsat
+67a18ee4a41e7117d729538d363dd01cbfa4400f 1 0
+unsat
+29980cc57d37b1e6a91568b59eb645177c64332b 1 0
+unsat
+dd72068dbc111520c8cda49beba061234668dba7 1 0
+unsat
+bb1b1bf771dfd4a69322f6b2c9c31e57298bea9e 1 0
+unsat
+f591b022c531a1890a327600010c782c78467eea 1 0
+unsat
+09e7a23356dd5244a2517b62d3c6c28d99ae59e0 1 0
+unsat
+7e5bac87b0ad340d97ecc55bcd3e3e6d37b536c9 1 0
+unsat
+353f7e426c920cff9e100b30ce094cb37c8e66ef 1 0
+unsat
+f963333a6744a2101618437d210242d060c0ac5f 1 0
+unsat
+d01b3542d6a35de6bfb4aabf081dc52de8396d03 1 0
+unsat
+e4b3e00cd29c16e895ffff3cac3d892b78dd9d59 1 0
+unsat
+92350fc2dc39b61c7b65a45e3abab78db9321ed5 1 0
+unsat
+d1a2878c51a9f44dc2f50ee9dd016f837f75dee3 1 0
+unsat
+4b51e5348b328fdbe195bfc6dbb2d5f6e8e086af 1 0
+unsat
+9960e2fa518de05dd4c22ebef61695106b67bab7 1 0
+unsat
+d76cad4f4fe52cdb217d0d7a4c83030e5fa9bc16 1 0
+unsat
+7701f25b2b2e492d6188369ec45f452bde984707 1 0
+unsat
+9a74b65514398a03fd5460e9b464fc4f5bb5b307 1 0
+unsat
+f80447a4f9b0f86fa11f2153b5158216a61f7a84 1 0
+unsat
+458218ced7c9e0f75f06741e621b45de73ff0cd1 1 0
+unsat
+14345cc17c0b30096f6adb793fe85b488a534926 1 0
+unsat
+aef4860d2ed0c8d87f72946dc202dcd55f3ca531 1 0
+unsat
+8257b3938dcc8cb19f272f67be8d362ad144f382 1 0
+unsat
+60a21c8506be79a307d9799d9dfff80c0c772737 1 0
+unsat
+83d73aee1e57b6bce6f0ec35dfd1ee35d30d33a1 1 0
+unsat
+553daa4feeb8e9fdfd2f7bcfa581d9f0c1549602 1 0
+unsat
+d403b2341400efa6e1957a6278e319822955eb05 1 0
+unsat
+33032b5811c88e9f094d892b2a819fd19687b4da 1 0
+unsat
+af7864ebe2c19275b1474fcca68f68b40df07ee6 1 0
+unsat
+f0be9c3035095639c56feef5476f5ff5d0ee0300 1 0
+unsat
+be181562b775b67e969c16b78a52a45719fecfc8 1 0
+unsat
+e4212f39c43f0c68b93f2fa581abc8dc5b04f3dc 1 0
+unsat
+45a80c71e5479b14c918c2ca636ce6a9093c7d91 1 0
+unsat
+5c358740eab4a6d03dfdc04d4f4ace62d00a397c 1 0
+unsat
+0cb2094ef75f1257300f2250bf51922ba0fc3eb4 1 0
+unsat
+ee7744e271c9a6a2fec104da7e0da7381f74a42b 1 0
+unsat
+509b9e96fe074cbcbee283f62b2e6df84f698cac 1 0
+unsat
+817280eb269b77adcbb4245ba3f6e9840888526e 1 0
+unsat
+9f0e8a08f3bda5c750992a9feaa96f513f7e38ad 1 0
+unsat
+93dac8884c5cd6ad5574a943f98c41bd92476bb2 1 0
+unsat
+46f948909b4f895c551d3cd1088294f8741c9b04 1 0
+unsat
+199918281288b75f2e2685c34a7c9417c1a0fe8f 1 0
+unsat
+182c59ee9cff8516467bee4139ec0b725d34bea4 1 0
+unsat
+82ca1ca20ab4808c4ae7a1caec7420902013622a 1 0
+unsat
+6e3dbdb2dcf0542a229dae87275558c052685051 1 0
+unsat
+a55f212df57bb2f04fc56139adb1e6560632f9d3 1 0
+unsat
+1a8fb5088e7f67909ddfef3f916ce9a46f24aa6e 1 0
+unsat
+0d6c154e2af0c7b5235b4452bd2ff759befe4467 1 0
+unsat
+782376c8bcd4bfd5ff0740cfd50cd7d65b48e694 1 0
+unsat
+2fa5afe46742045fc9ae2c785161c40cd3eca8b0 1 0
+unsat
+49462927b92e2fe852e19ddabb722de885a6169e 1 0
+unsat
+4f884cc648fe339fa52f195bb2ef09de0043846d 1 0
+unsat
+11d8c5d16e3dccca0ac06212a5289df04eac0cf0 1 0
+unsat
+030f4a4becd7bcd4096d97c72b2c9fcdad6c8545 1 0
+unsat
+67cb8659b90bbf301d02aab19df117412048c996 1 0
+unsat
 f647fab40fc301b72eb10ef98660c1294aab2896 91 0
 #2 := false
 decl f3 :: (-> S2 S3 S4 S3 S4)
--- a/src/HOL/SMT_Examples/SMT_Tests.thy	Mon Jan 03 16:22:08 2011 +0100
+++ b/src/HOL/SMT_Examples/SMT_Tests.thy	Mon Jan 03 16:49:28 2011 +0100
@@ -652,71 +652,71 @@
 subsubsection {* Records *}
 
 record point =
-  x :: int
-  y :: int
+  cx :: int
+  cy :: int
 
 record bw_point = point +
   black :: bool
 
 lemma
-  "p1 = p2 \<longrightarrow> x p1 = x p2"
-  "p1 = p2 \<longrightarrow> y p1 = y p2"
-  "x p1 \<noteq> x p2 \<longrightarrow> p1 \<noteq> p2"
-  "y p1 \<noteq> y p2 \<longrightarrow> p1 \<noteq> p2"
+  "p1 = p2 \<longrightarrow> cx p1 = cx p2"
+  "p1 = p2 \<longrightarrow> cy p1 = cy p2"
+  "cx p1 \<noteq> cx p2 \<longrightarrow> p1 \<noteq> p2"
+  "cy p1 \<noteq> cy p2 \<longrightarrow> p1 \<noteq> p2"
   using point.simps
   by smt+
 
 lemma
-  "x \<lparr> x = 3, y = 4 \<rparr> = 3"
-  "y \<lparr> x = 3, y = 4 \<rparr> = 4"
-  "x \<lparr> x = 3, y = 4 \<rparr> \<noteq> y \<lparr> x = 3, y = 4 \<rparr>"
-  "\<lparr> x = 3, y = 4 \<rparr> \<lparr> x := 5 \<rparr> = \<lparr> x = 5, y = 4 \<rparr>"
-  "\<lparr> x = 3, y = 4 \<rparr> \<lparr> y := 6 \<rparr> = \<lparr> x = 3, y = 6 \<rparr>"
-  "p = \<lparr> x = 3, y = 4 \<rparr> \<longrightarrow> p \<lparr> x := 3 \<rparr> \<lparr> y := 4 \<rparr> = p"
-  "p = \<lparr> x = 3, y = 4 \<rparr> \<longrightarrow> p \<lparr> y := 4 \<rparr> \<lparr> x := 3 \<rparr> = p"
+  "cx \<lparr> cx = 3, cy = 4 \<rparr> = 3"
+  "cy \<lparr> cx = 3, cy = 4 \<rparr> = 4"
+  "cx \<lparr> cx = 3, cy = 4 \<rparr> \<noteq> cy \<lparr> cx = 3, cy = 4 \<rparr>"
+  "\<lparr> cx = 3, cy = 4 \<rparr> \<lparr> cx := 5 \<rparr> = \<lparr> cx = 5, cy = 4 \<rparr>"
+  "\<lparr> cx = 3, cy = 4 \<rparr> \<lparr> cy := 6 \<rparr> = \<lparr> cx = 3, cy = 6 \<rparr>"
+  "p = \<lparr> cx = 3, cy = 4 \<rparr> \<longrightarrow> p \<lparr> cx := 3 \<rparr> \<lparr> cy := 4 \<rparr> = p"
+  "p = \<lparr> cx = 3, cy = 4 \<rparr> \<longrightarrow> p \<lparr> cy := 4 \<rparr> \<lparr> cx := 3 \<rparr> = p"
   using point.simps
   using [[z3_options="AUTO_CONFIG=false"]]
   by smt+
 
 lemma
-  "y (p \<lparr> x := a \<rparr>) = y p"
-  "x (p \<lparr> y := a \<rparr>) = x p"
-  "p \<lparr> x := 3 \<rparr> \<lparr> y := 4 \<rparr> = p \<lparr> y := 4 \<rparr> \<lparr> x := 3 \<rparr>"
+  "cy (p \<lparr> cx := a \<rparr>) = cy p"
+  "cx (p \<lparr> cy := a \<rparr>) = cx p"
+  "p \<lparr> cx := 3 \<rparr> \<lparr> cy := 4 \<rparr> = p \<lparr> cy := 4 \<rparr> \<lparr> cx := 3 \<rparr>"
   sorry
 
 lemma
-  "p1 = p2 \<longrightarrow> x p1 = x p2"
-  "p1 = p2 \<longrightarrow> y p1 = y p2"
+  "p1 = p2 \<longrightarrow> cx p1 = cx p2"
+  "p1 = p2 \<longrightarrow> cy p1 = cy p2"
   "p1 = p2 \<longrightarrow> black p1 = black p2"
-  "x p1 \<noteq> x p2 \<longrightarrow> p1 \<noteq> p2"
-  "y p1 \<noteq> y p2 \<longrightarrow> p1 \<noteq> p2"
+  "cx p1 \<noteq> cx p2 \<longrightarrow> p1 \<noteq> p2"
+  "cy p1 \<noteq> cy p2 \<longrightarrow> p1 \<noteq> p2"
   "black p1 \<noteq> black p2 \<longrightarrow> p1 \<noteq> p2"
   using point.simps bw_point.simps
   by smt+
 
 lemma
-  "x \<lparr> x = 3, y = 4, black = b \<rparr> = 3"
-  "y \<lparr> x = 3, y = 4, black = b \<rparr> = 4"
-  "black \<lparr> x = 3, y = 4, black = b \<rparr> = b"
-  "x \<lparr> x = 3, y = 4, black = b \<rparr> \<noteq> y \<lparr> x = 3, y = 4, black = b \<rparr>"
-  "\<lparr> x = 3, y = 4, black = b \<rparr> \<lparr> x := 5 \<rparr> = \<lparr> x = 5, y = 4, black = b \<rparr>"
-  "\<lparr> x = 3, y = 4, black = b \<rparr> \<lparr> y := 6 \<rparr> = \<lparr> x = 3, y = 6, black = b \<rparr>"
-  "\<lparr> x = 3, y = 4, black = b \<rparr> \<lparr> black := w \<rparr> = \<lparr> x = 3, y = 4, black = w \<rparr>"
-  "\<lparr> x = 3, y = 4, black = True \<rparr> \<lparr> black := False \<rparr> =
-     \<lparr> x = 3, y = 4, black = False \<rparr>"
-  "p = \<lparr> x = 3, y = 4, black = True \<rparr> \<longrightarrow>
-     p \<lparr> x := 3 \<rparr> \<lparr> y := 4 \<rparr> \<lparr> black := True \<rparr> = p"
-  "p = \<lparr> x = 3, y = 4, black = True \<rparr> \<longrightarrow>
-     p \<lparr> y := 4 \<rparr> \<lparr> black := True \<rparr> \<lparr> x := 3 \<rparr> = p"
-  "p = \<lparr> x = 3, y = 4, black = True \<rparr> \<longrightarrow>
-     p \<lparr> black := True \<rparr> \<lparr> x := 3 \<rparr> \<lparr> y := 4 \<rparr> = p"
+  "cx \<lparr> cx = 3, cy = 4, black = b \<rparr> = 3"
+  "cy \<lparr> cx = 3, cy = 4, black = b \<rparr> = 4"
+  "black \<lparr> cx = 3, cy = 4, black = b \<rparr> = b"
+  "cx \<lparr> cx = 3, cy = 4, black = b \<rparr> \<noteq> cy \<lparr> cx = 3, cy = 4, black = b \<rparr>"
+  "\<lparr> cx = 3, cy = 4, black = b \<rparr> \<lparr> cx := 5 \<rparr> = \<lparr> cx = 5, cy = 4, black = b \<rparr>"
+  "\<lparr> cx = 3, cy = 4, black = b \<rparr> \<lparr> cy := 6 \<rparr> = \<lparr> cx = 3, cy = 6, black = b \<rparr>"
+  "p = \<lparr> cx = 3, cy = 4, black = True \<rparr> \<longrightarrow>
+     p \<lparr> cx := 3 \<rparr> \<lparr> cy := 4 \<rparr> \<lparr> black := True \<rparr> = p"
+  "p = \<lparr> cx = 3, cy = 4, black = True \<rparr> \<longrightarrow>
+     p \<lparr> cy := 4 \<rparr> \<lparr> black := True \<rparr> \<lparr> cx := 3 \<rparr> = p"
+  "p = \<lparr> cx = 3, cy = 4, black = True \<rparr> \<longrightarrow>
+     p \<lparr> black := True \<rparr> \<lparr> cx := 3 \<rparr> \<lparr> cy := 4 \<rparr> = p"
   using point.simps bw_point.simps
   using [[z3_options="AUTO_CONFIG=false"]]
   by smt+
 
 lemma
-  "p \<lparr> x := 3 \<rparr> \<lparr> y := 4 \<rparr> \<lparr> black := True \<rparr> =
-     p \<lparr> black := True \<rparr> \<lparr> y := 4 \<rparr> \<lparr> x := 3 \<rparr>"
+  "\<lparr> cx = 3, cy = 4, black = b \<rparr> \<lparr> black := w \<rparr> = \<lparr> cx = 3, cy = 4, black = w \<rparr>"
+  "\<lparr> cx = 3, cy = 4, black = True \<rparr> \<lparr> black := False \<rparr> =
+     \<lparr> cx = 3, cy = 4, black = False \<rparr>"
+  "p \<lparr> cx := 3 \<rparr> \<lparr> cy := 4 \<rparr> \<lparr> black := True \<rparr> =
+     p \<lparr> black := True \<rparr> \<lparr> cy := 4 \<rparr> \<lparr> cx := 3 \<rparr>"
   sorry
 
 
@@ -729,7 +729,7 @@
 definition n3 where "n3 = Abs_three 3"
 definition nplus where "nplus n m = Abs_three (Rep_three n + Rep_three m)"
 
-lemma three_def': "(x \<in> three) = (x = 1 \<or> x = 2 \<or> x = 3)"
+lemma three_def': "(n \<in> three) = (n = 1 \<or> n = 2 \<or> n = 3)"
   by (auto simp add: three_def)
 
 lemma
@@ -790,72 +790,75 @@
 subsubsection {* Records *}
 
 lemma
-  "p1 = p2 \<longrightarrow> x p1 = x p2"
-  "p1 = p2 \<longrightarrow> y p1 = y p2"
-  "x p1 \<noteq> x p2 \<longrightarrow> p1 \<noteq> p2"
-  "y p1 \<noteq> y p2 \<longrightarrow> p1 \<noteq> p2"
+  "p1 = p2 \<longrightarrow> cx p1 = cx p2"
+  "p1 = p2 \<longrightarrow> cy p1 = cy p2"
+  "cx p1 \<noteq> cx p2 \<longrightarrow> p1 \<noteq> p2"
+  "cy p1 \<noteq> cy p2 \<longrightarrow> p1 \<noteq> p2"
   using point.simps
   using [[smt_datatypes, smt_oracle]]
   using [[z3_options="AUTO_CONFIG=false"]]
   by smt+
 
 lemma
-  "x \<lparr> x = 3, y = 4 \<rparr> = 3"
-  "y \<lparr> x = 3, y = 4 \<rparr> = 4"
-  "x \<lparr> x = 3, y = 4 \<rparr> \<noteq> y \<lparr> x = 3, y = 4 \<rparr>"
-  "\<lparr> x = 3, y = 4 \<rparr> \<lparr> x := 5 \<rparr> = \<lparr> x = 5, y = 4 \<rparr>"
-  "\<lparr> x = 3, y = 4 \<rparr> \<lparr> y := 6 \<rparr> = \<lparr> x = 3, y = 6 \<rparr>"
-  "p = \<lparr> x = 3, y = 4 \<rparr> \<longrightarrow> p \<lparr> x := 3 \<rparr> \<lparr> y := 4 \<rparr> = p"
-  "p = \<lparr> x = 3, y = 4 \<rparr> \<longrightarrow> p \<lparr> y := 4 \<rparr> \<lparr> x := 3 \<rparr> = p"
+  "cx \<lparr> cx = 3, cy = 4 \<rparr> = 3"
+  "cy \<lparr> cx = 3, cy = 4 \<rparr> = 4"
+  "cx \<lparr> cx = 3, cy = 4 \<rparr> \<noteq> cy \<lparr> cx = 3, cy = 4 \<rparr>"
+  "\<lparr> cx = 3, cy = 4 \<rparr> \<lparr> cx := 5 \<rparr> = \<lparr> cx = 5, cy = 4 \<rparr>"
+  "\<lparr> cx = 3, cy = 4 \<rparr> \<lparr> cy := 6 \<rparr> = \<lparr> cx = 3, cy = 6 \<rparr>"
+  "p = \<lparr> cx = 3, cy = 4 \<rparr> \<longrightarrow> p \<lparr> cx := 3 \<rparr> \<lparr> cy := 4 \<rparr> = p"
+  "p = \<lparr> cx = 3, cy = 4 \<rparr> \<longrightarrow> p \<lparr> cy := 4 \<rparr> \<lparr> cx := 3 \<rparr> = p"
   using point.simps
   using [[smt_datatypes, smt_oracle]]
   using [[z3_options="AUTO_CONFIG=false"]]
   by smt+
 
 lemma
-  "y (p \<lparr> x := a \<rparr>) = y p"
-  "x (p \<lparr> y := a \<rparr>) = x p"
-  "p \<lparr> x := 3 \<rparr> \<lparr> y := 4 \<rparr> = p \<lparr> y := 4 \<rparr> \<lparr> x := 3 \<rparr>"
+  "cy (p \<lparr> cx := a \<rparr>) = cy p"
+  "cx (p \<lparr> cy := a \<rparr>) = cx p"
+  "p \<lparr> cx := 3 \<rparr> \<lparr> cy := 4 \<rparr> = p \<lparr> cy := 4 \<rparr> \<lparr> cx := 3 \<rparr>"
   using point.simps
   using [[smt_datatypes, smt_oracle]]
   using [[z3_options="AUTO_CONFIG=false"]]
   by smt+
 
 lemma
-  "p1 = p2 \<longrightarrow> x p1 = x p2"
-  "p1 = p2 \<longrightarrow> y p1 = y p2"
+  "p1 = p2 \<longrightarrow> cx p1 = cx p2"
+  "p1 = p2 \<longrightarrow> cy p1 = cy p2"
   "p1 = p2 \<longrightarrow> black p1 = black p2"
-  "x p1 \<noteq> x p2 \<longrightarrow> p1 \<noteq> p2"
-  "y p1 \<noteq> y p2 \<longrightarrow> p1 \<noteq> p2"
+  "cx p1 \<noteq> cx p2 \<longrightarrow> p1 \<noteq> p2"
+  "cy p1 \<noteq> cy p2 \<longrightarrow> p1 \<noteq> p2"
   "black p1 \<noteq> black p2 \<longrightarrow> p1 \<noteq> p2"
   using point.simps bw_point.simps
   using [[smt_datatypes, smt_oracle]]
   by smt+
 
 lemma
-  "x \<lparr> x = 3, y = 4, black = b \<rparr> = 3"
-  "y \<lparr> x = 3, y = 4, black = b \<rparr> = 4"
-  "black \<lparr> x = 3, y = 4, black = b \<rparr> = b"
-  "x \<lparr> x = 3, y = 4, black = b \<rparr> \<noteq> y \<lparr> x = 3, y = 4, black = b \<rparr>"
-  "\<lparr> x = 3, y = 4, black = b \<rparr> \<lparr> x := 5 \<rparr> = \<lparr> x = 5, y = 4, black = b \<rparr>"
-  "\<lparr> x = 3, y = 4, black = b \<rparr> \<lparr> y := 6 \<rparr> = \<lparr> x = 3, y = 6, black = b \<rparr>"
-  "\<lparr> x = 3, y = 4, black = b \<rparr> \<lparr> black := w \<rparr> = \<lparr> x = 3, y = 4, black = w \<rparr>"
-  "\<lparr> x = 3, y = 4, black = True \<rparr> \<lparr> black := False \<rparr> =
-     \<lparr> x = 3, y = 4, black = False \<rparr>"
-  "p = \<lparr> x = 3, y = 4, black = True \<rparr> \<longrightarrow>
-     p \<lparr> x := 3 \<rparr> \<lparr> y := 4 \<rparr> \<lparr> black := True \<rparr> = p"
-  "p = \<lparr> x = 3, y = 4, black = True \<rparr> \<longrightarrow>
-     p \<lparr> y := 4 \<rparr> \<lparr> black := True \<rparr> \<lparr> x := 3 \<rparr> = p"
-  "p = \<lparr> x = 3, y = 4, black = True \<rparr> \<longrightarrow>
-     p \<lparr> black := True \<rparr> \<lparr> x := 3 \<rparr> \<lparr> y := 4 \<rparr> = p"
+  "cx \<lparr> cx = 3, cy = 4, black = b \<rparr> = 3"
+  "cy \<lparr> cx = 3, cy = 4, black = b \<rparr> = 4"
+  "black \<lparr> cx = 3, cy = 4, black = b \<rparr> = b"
+  "cx \<lparr> cx = 3, cy = 4, black = b \<rparr> \<noteq> cy \<lparr> cx = 3, cy = 4, black = b \<rparr>"
+  "\<lparr> cx = 3, cy = 4, black = b \<rparr> \<lparr> cx := 5 \<rparr> = \<lparr> cx = 5, cy = 4, black = b \<rparr>"
+  "\<lparr> cx = 3, cy = 4, black = b \<rparr> \<lparr> cy := 6 \<rparr> = \<lparr> cx = 3, cy = 6, black = b \<rparr>"
+  "p = \<lparr> cx = 3, cy = 4, black = True \<rparr> \<longrightarrow>
+     p \<lparr> cx := 3 \<rparr> \<lparr> cy := 4 \<rparr> \<lparr> black := True \<rparr> = p"
+  "p = \<lparr> cx = 3, cy = 4, black = True \<rparr> \<longrightarrow>
+     p \<lparr> cy := 4 \<rparr> \<lparr> black := True \<rparr> \<lparr> cx := 3 \<rparr> = p"
+  "p = \<lparr> cx = 3, cy = 4, black = True \<rparr> \<longrightarrow>
+     p \<lparr> black := True \<rparr> \<lparr> cx := 3 \<rparr> \<lparr> cy := 4 \<rparr> = p"
   using point.simps bw_point.simps
   using [[smt_datatypes, smt_oracle]]
   using [[z3_options="AUTO_CONFIG=false"]]
   by smt+
 
 lemma
-  "p \<lparr> x := 3 \<rparr> \<lparr> y := 4 \<rparr> \<lparr> black := True \<rparr> =
-     p \<lparr> black := True \<rparr> \<lparr> y := 4 \<rparr> \<lparr> x := 3 \<rparr>"
+  "\<lparr> cx = 3, cy = 4, black = b \<rparr> \<lparr> black := w \<rparr> = \<lparr> cx = 3, cy = 4, black = w \<rparr>"
+  "\<lparr> cx = 3, cy = 4, black = True \<rparr> \<lparr> black := False \<rparr> =
+     \<lparr> cx = 3, cy = 4, black = False \<rparr>"
+  sorry
+
+lemma
+  "p \<lparr> cx := 3 \<rparr> \<lparr> cy := 4 \<rparr> \<lparr> black := True \<rparr> =
+     p \<lparr> black := True \<rparr> \<lparr> cy := 4 \<rparr> \<lparr> cx := 3 \<rparr>"
   using point.simps bw_point.simps
   using [[smt_datatypes, smt_oracle]]
   using [[z3_options="AUTO_CONFIG=false"]]