src/HOL/SMT/Examples/cert/z3_nat_arith_03.proof
author bulwahn
Thu, 12 Nov 2009 21:14:42 +0100
changeset 33652 d7836058f52b
parent 33010 39f73a59e855
permissions -rw-r--r--
merged
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33010
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     1
#2 := false
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     2
#9 := 0::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     3
decl uf_2 :: (-> T1 int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     4
decl uf_3 :: T1
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     5
#22 := uf_3
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     6
#23 := (uf_2 uf_3)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     7
#469 := (= #23 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     8
decl uf_1 :: (-> int T1)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     9
#251 := (uf_1 #23)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    10
#557 := (uf_2 #251)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    11
#558 := (= #557 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    12
#556 := (>= #23 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    13
#477 := (not #556)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    14
#144 := -1::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    15
#348 := (>= #23 -1::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    16
#628 := (not #348)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    17
#21 := 1::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    18
#24 := (+ 1::int #23)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    19
#25 := (uf_1 #24)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    20
#26 := (uf_2 #25)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    21
#632 := (* -1::int #26)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    22
#636 := (+ #23 #632)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    23
#633 := (= #636 -1::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    24
#471 := (not #633)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    25
#613 := (<= #636 -1::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    26
#527 := (not #613)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    27
#145 := (* -1::int #23)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    28
#146 := (+ #145 #26)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    29
#149 := (uf_1 #146)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    30
#152 := (uf_2 #149)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    31
#504 := (+ #632 #152)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    32
#505 := (+ #23 #504)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    33
#573 := (>= #505 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    34
#502 := (= #505 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    35
#599 := (<= #636 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    36
#526 := [hypothesis]: #613
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    37
#491 := (or #527 #599)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    38
#515 := [th-lemma]: #491
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    39
#516 := [unit-resolution #515 #526]: #599
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    40
#587 := (not #599)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    41
#578 := (or #502 #587)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    42
#10 := (:var 0 int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    43
#12 := (uf_1 #10)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    44
#673 := (pattern #12)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    45
#76 := (>= #10 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    46
#77 := (not #76)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    47
#13 := (uf_2 #12)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    48
#58 := (= #10 #13)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    49
#83 := (or #58 #77)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    50
#674 := (forall (vars (?x2 int)) (:pat #673) #83)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    51
#88 := (forall (vars (?x2 int)) #83)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    52
#677 := (iff #88 #674)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    53
#675 := (iff #83 #83)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    54
#676 := [refl]: #675
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    55
#678 := [quant-intro #676]: #677
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    56
#179 := (~ #88 #88)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    57
#191 := (~ #83 #83)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    58
#192 := [refl]: #191
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    59
#177 := [nnf-pos #192]: #179
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    60
#14 := (= #13 #10)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    61
#11 := (<= 0::int #10)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    62
#15 := (implies #11 #14)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    63
#16 := (forall (vars (?x2 int)) #15)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    64
#91 := (iff #16 #88)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    65
#65 := (not #11)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    66
#66 := (or #65 #58)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    67
#71 := (forall (vars (?x2 int)) #66)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    68
#89 := (iff #71 #88)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    69
#86 := (iff #66 #83)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    70
#80 := (or #77 #58)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    71
#84 := (iff #80 #83)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    72
#85 := [rewrite]: #84
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    73
#81 := (iff #66 #80)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    74
#78 := (iff #65 #77)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    75
#74 := (iff #11 #76)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    76
#75 := [rewrite]: #74
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    77
#79 := [monotonicity #75]: #78
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    78
#82 := [monotonicity #79]: #81
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    79
#87 := [trans #82 #85]: #86
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    80
#90 := [quant-intro #87]: #89
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    81
#72 := (iff #16 #71)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    82
#69 := (iff #15 #66)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    83
#62 := (implies #11 #58)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    84
#67 := (iff #62 #66)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    85
#68 := [rewrite]: #67
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    86
#63 := (iff #15 #62)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    87
#60 := (iff #14 #58)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    88
#61 := [rewrite]: #60
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    89
#64 := [monotonicity #61]: #63
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    90
#70 := [trans #64 #68]: #69
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    91
#73 := [quant-intro #70]: #72
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    92
#92 := [trans #73 #90]: #91
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    93
#57 := [asserted]: #16
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    94
#93 := [mp #57 #92]: #88
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    95
#193 := [mp~ #93 #177]: #88
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    96
#679 := [mp #193 #678]: #674
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    97
#644 := (not #674)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    98
#591 := (or #644 #502 #587)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    99
#498 := (>= #146 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   100
#500 := (not #498)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   101
#501 := (= #146 #152)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   102
#494 := (or #501 #500)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   103
#592 := (or #644 #494)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   104
#579 := (iff #592 #591)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   105
#593 := (or #644 #578)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   106
#584 := (iff #593 #591)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   107
#585 := [rewrite]: #584
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   108
#582 := (iff #592 #593)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   109
#580 := (iff #494 #578)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   110
#589 := (iff #500 #587)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   111
#596 := (iff #498 #599)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   112
#600 := [rewrite]: #596
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   113
#581 := [monotonicity #600]: #589
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   114
#503 := (iff #501 #502)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   115
#506 := [rewrite]: #503
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   116
#590 := [monotonicity #506 #581]: #580
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   117
#583 := [monotonicity #590]: #582
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   118
#586 := [trans #583 #585]: #579
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   119
#588 := [quant-inst]: #592
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   120
#570 := [mp #588 #586]: #591
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   121
#511 := [unit-resolution #570 #679]: #578
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   122
#517 := [unit-resolution #511 #516]: #502
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   123
#485 := (not #502)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   124
#492 := (or #485 #573)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   125
#451 := [th-lemma]: #492
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   126
#482 := [unit-resolution #451 #517]: #573
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   127
#554 := (<= #152 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   128
#163 := (* -1::int #152)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   129
#138 := (uf_1 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   130
#141 := (uf_2 #138)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   131
#164 := (+ #141 #163)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   132
#162 := (>= #164 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   133
#30 := (- #26 #23)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   134
#31 := (uf_1 #30)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   135
#32 := (uf_2 #31)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   136
#27 := (* 0::int #26)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   137
#28 := (uf_1 #27)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   138
#29 := (uf_2 #28)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   139
#33 := (< #29 #32)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   140
#34 := (not #33)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   141
#174 := (iff #34 #162)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   142
#155 := (< #141 #152)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   143
#158 := (not #155)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   144
#172 := (iff #158 #162)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   145
#161 := (not #162)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   146
#167 := (not #161)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   147
#170 := (iff #167 #162)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   148
#171 := [rewrite]: #170
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   149
#168 := (iff #158 #167)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   150
#165 := (iff #155 #161)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   151
#166 := [rewrite]: #165
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   152
#169 := [monotonicity #166]: #168
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   153
#173 := [trans #169 #171]: #172
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   154
#159 := (iff #34 #158)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   155
#156 := (iff #33 #155)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   156
#153 := (= #32 #152)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   157
#150 := (= #31 #149)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   158
#147 := (= #30 #146)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   159
#148 := [rewrite]: #147
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   160
#151 := [monotonicity #148]: #150
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   161
#154 := [monotonicity #151]: #153
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   162
#142 := (= #29 #141)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   163
#139 := (= #28 #138)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   164
#136 := (= #27 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   165
#137 := [rewrite]: #136
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   166
#140 := [monotonicity #137]: #139
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   167
#143 := [monotonicity #140]: #142
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   168
#157 := [monotonicity #143 #154]: #156
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   169
#160 := [monotonicity #157]: #159
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   170
#175 := [trans #160 #173]: #174
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   171
#135 := [asserted]: #34
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   172
#176 := [mp #135 #175]: #162
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   173
#651 := (<= #141 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   174
#662 := (= #141 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   175
#645 := (or #644 #662)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   176
#316 := (>= 0::int 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   177
#446 := (not #316)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   178
#328 := (= 0::int #141)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   179
#660 := (or #328 #446)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   180
#646 := (or #644 #660)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   181
#647 := (iff #646 #645)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   182
#648 := (iff #645 #645)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   183
#650 := [rewrite]: #648
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   184
#642 := (iff #660 #662)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   185
#640 := (or #662 false)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   186
#305 := (iff #640 #662)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   187
#306 := [rewrite]: #305
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   188
#303 := (iff #660 #640)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   189
#656 := (iff #446 false)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   190
#1 := true
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   191
#654 := (not true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   192
#655 := (iff #654 false)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   193
#315 := [rewrite]: #655
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   194
#314 := (iff #446 #654)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   195
#658 := (iff #316 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   196
#664 := [rewrite]: #658
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   197
#319 := [monotonicity #664]: #314
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   198
#299 := [trans #319 #315]: #656
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   199
#661 := (iff #328 #662)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   200
#663 := [rewrite]: #661
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   201
#304 := [monotonicity #663 #299]: #303
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   202
#643 := [trans #304 #306]: #642
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   203
#285 := [monotonicity #643]: #647
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   204
#290 := [trans #285 #650]: #647
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   205
#641 := [quant-inst]: #646
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   206
#291 := [mp #641 #290]: #645
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   207
#484 := [unit-resolution #291 #679]: #662
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   208
#486 := (not #662)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   209
#493 := (or #486 #651)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   210
#495 := [th-lemma]: #493
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   211
#496 := [unit-resolution #495 #484]: #651
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   212
#497 := (not #651)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   213
#507 := (or #554 #497 #161)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   214
#487 := [th-lemma]: #507
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   215
#508 := [unit-resolution #487 #496 #176]: #554
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   216
#463 := [th-lemma #508 #526 #482]: false
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   217
#464 := [lemma #463]: #527
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   218
#472 := (or #471 #613)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   219
#473 := [th-lemma]: #472
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   220
#474 := [unit-resolution #473 #464]: #471
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   221
#631 := (or #628 #633)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   222
#618 := (or #644 #628 #633)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   223
#634 := (>= #24 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   224
#635 := (not #634)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   225
#357 := (= #24 #26)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   226
#358 := (or #357 #635)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   227
#623 := (or #644 #358)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   228
#610 := (iff #623 #618)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   229
#619 := (or #644 #631)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   230
#467 := (iff #619 #618)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   231
#468 := [rewrite]: #467
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   232
#625 := (iff #623 #619)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   233
#622 := (iff #358 #631)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   234
#626 := (or #633 #628)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   235
#620 := (iff #626 #631)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   236
#621 := [rewrite]: #620
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   237
#630 := (iff #358 #626)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   238
#629 := (iff #635 #628)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   239
#349 := (iff #634 #348)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   240
#350 := [rewrite]: #349
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   241
#344 := [monotonicity #350]: #629
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   242
#637 := (iff #357 #633)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   243
#347 := [rewrite]: #637
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   244
#627 := [monotonicity #347 #344]: #630
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   245
#617 := [trans #627 #621]: #622
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   246
#466 := [monotonicity #617]: #625
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   247
#611 := [trans #466 #468]: #610
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   248
#624 := [quant-inst]: #623
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   249
#612 := [mp #624 #611]: #618
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   250
#475 := [unit-resolution #612 #679]: #631
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   251
#476 := [unit-resolution #475 #474]: #628
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   252
#478 := (or #477 #348)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   253
#479 := [th-lemma]: #478
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   254
#480 := [unit-resolution #479 #476]: #477
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   255
#560 := (or #556 #558)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   256
#18 := (= #13 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   257
#124 := (or #18 #76)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   258
#680 := (forall (vars (?x3 int)) (:pat #673) #124)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   259
#129 := (forall (vars (?x3 int)) #124)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   260
#683 := (iff #129 #680)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   261
#681 := (iff #124 #124)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   262
#682 := [refl]: #681
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   263
#684 := [quant-intro #682]: #683
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   264
#180 := (~ #129 #129)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   265
#194 := (~ #124 #124)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   266
#195 := [refl]: #194
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   267
#181 := [nnf-pos #195]: #180
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   268
#17 := (< #10 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   269
#19 := (implies #17 #18)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   270
#20 := (forall (vars (?x3 int)) #19)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   271
#132 := (iff #20 #129)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   272
#95 := (= 0::int #13)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   273
#101 := (not #17)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   274
#102 := (or #101 #95)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   275
#107 := (forall (vars (?x3 int)) #102)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   276
#130 := (iff #107 #129)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   277
#127 := (iff #102 #124)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   278
#121 := (or #76 #18)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   279
#125 := (iff #121 #124)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   280
#126 := [rewrite]: #125
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   281
#122 := (iff #102 #121)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   282
#119 := (iff #95 #18)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   283
#120 := [rewrite]: #119
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   284
#117 := (iff #101 #76)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   285
#112 := (not #77)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   286
#115 := (iff #112 #76)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   287
#116 := [rewrite]: #115
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   288
#113 := (iff #101 #112)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   289
#110 := (iff #17 #77)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   290
#111 := [rewrite]: #110
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   291
#114 := [monotonicity #111]: #113
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   292
#118 := [trans #114 #116]: #117
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   293
#123 := [monotonicity #118 #120]: #122
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   294
#128 := [trans #123 #126]: #127
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   295
#131 := [quant-intro #128]: #130
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   296
#108 := (iff #20 #107)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   297
#105 := (iff #19 #102)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   298
#98 := (implies #17 #95)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   299
#103 := (iff #98 #102)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   300
#104 := [rewrite]: #103
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   301
#99 := (iff #19 #98)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   302
#96 := (iff #18 #95)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   303
#97 := [rewrite]: #96
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   304
#100 := [monotonicity #97]: #99
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   305
#106 := [trans #100 #104]: #105
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   306
#109 := [quant-intro #106]: #108
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   307
#133 := [trans #109 #131]: #132
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   308
#94 := [asserted]: #20
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   309
#134 := [mp #94 #133]: #129
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   310
#196 := [mp~ #134 #181]: #129
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   311
#685 := [mp #196 #684]: #680
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   312
#604 := (not #680)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   313
#562 := (or #604 #556 #558)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   314
#559 := (or #558 #556)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   315
#540 := (or #604 #559)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   316
#542 := (iff #540 #562)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   317
#543 := (or #604 #560)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   318
#546 := (iff #543 #562)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   319
#547 := [rewrite]: #546
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   320
#544 := (iff #540 #543)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   321
#561 := (iff #559 #560)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   322
#551 := [rewrite]: #561
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   323
#545 := [monotonicity #551]: #544
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   324
#548 := [trans #545 #547]: #542
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   325
#541 := [quant-inst]: #540
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   326
#534 := [mp #541 #548]: #562
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   327
#465 := [unit-resolution #534 #685]: #560
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   328
#481 := [unit-resolution #465 #480]: #558
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   329
#443 := (= #23 #557)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   330
#337 := (= uf_3 #251)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   331
#4 := (:var 0 T1)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   332
#5 := (uf_2 #4)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   333
#665 := (pattern #5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   334
#6 := (uf_1 #5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   335
#51 := (= #4 #6)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   336
#666 := (forall (vars (?x1 T1)) (:pat #665) #51)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   337
#54 := (forall (vars (?x1 T1)) #51)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   338
#667 := (iff #54 #666)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   339
#669 := (iff #666 #666)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   340
#670 := [rewrite]: #669
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   341
#668 := [rewrite]: #667
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   342
#671 := [trans #668 #670]: #667
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   343
#188 := (~ #54 #54)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   344
#186 := (~ #51 #51)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   345
#187 := [refl]: #186
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   346
#189 := [nnf-pos #187]: #188
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   347
#7 := (= #6 #4)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   348
#8 := (forall (vars (?x1 T1)) #7)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   349
#55 := (iff #8 #54)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   350
#52 := (iff #7 #51)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   351
#53 := [rewrite]: #52
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   352
#56 := [quant-intro #53]: #55
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   353
#50 := [asserted]: #8
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   354
#59 := [mp #50 #56]: #54
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   355
#190 := [mp~ #59 #189]: #54
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   356
#672 := [mp #190 #671]: #666
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   357
#252 := (not #666)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   358
#342 := (or #252 #337)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   359
#339 := [quant-inst]: #342
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   360
#442 := [unit-resolution #339 #672]: #337
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   361
#450 := [monotonicity #442]: #443
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   362
#452 := [trans #450 #481]: #469
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   363
#453 := (not #469)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   364
#454 := (or #453 #556)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   365
#456 := [th-lemma]: #454
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   366
[unit-resolution #456 #480 #452]: false
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   367
unsat