src/HOL/SMT/Examples/cert/z3_arith_quant_17.proof
author boehmes
Tue, 20 Oct 2009 10:11:30 +0200
changeset 33010 39f73a59e855
permissions -rw-r--r--
added proof reconstructon for Z3, added certificates for simpler re-checking of proofs (no need to invoke external solvers), added examples and certificates for all examples, removed Unsynchronized.ref (in smt_normalize.ML)
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
#144 := (not false)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     3
#7 := 0::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     4
#5 := (:var 0 int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     5
#52 := (<= #5 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     6
#53 := (not #52)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     7
#147 := (or #53 #144)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     8
#150 := (not #147)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     9
#153 := (forall (vars (?x1 int)) #150)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    10
#180 := (iff #153 false)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    11
#175 := (forall (vars (?x1 int)) false)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    12
#178 := (iff #175 false)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    13
#179 := [elim-unused]: #178
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    14
#176 := (iff #153 #175)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    15
#173 := (iff #150 false)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    16
#1 := true
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    17
#168 := (not true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    18
#171 := (iff #168 false)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    19
#172 := [rewrite]: #171
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    20
#169 := (iff #150 #168)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    21
#166 := (iff #147 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    22
#161 := (or #53 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    23
#164 := (iff #161 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    24
#165 := [rewrite]: #164
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    25
#162 := (iff #147 #161)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    26
#159 := (iff #144 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    27
#160 := [rewrite]: #159
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    28
#163 := [monotonicity #160]: #162
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    29
#167 := [trans #163 #165]: #166
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    30
#170 := [monotonicity #167]: #169
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    31
#174 := [trans #170 #172]: #173
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    32
#177 := [quant-intro #174]: #176
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    33
#181 := [trans #177 #179]: #180
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    34
#56 := -1::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    35
#57 := (* -1::int #5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    36
#4 := (:var 1 int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    37
#58 := (+ #4 #57)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    38
#59 := (<= #58 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    39
#62 := (not #59)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    40
#68 := (or #53 #62)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    41
#73 := (forall (vars (?x2 int)) #68)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    42
#76 := (not #73)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    43
#79 := (or #53 #76)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    44
#105 := (not #79)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    45
#123 := (forall (vars (?x1 int)) #105)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    46
#156 := (iff #123 #153)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    47
#127 := (forall (vars (?x2 int)) #53)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    48
#130 := (not #127)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    49
#133 := (or #53 #130)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    50
#136 := (not #133)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    51
#139 := (forall (vars (?x1 int)) #136)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    52
#154 := (iff #139 #153)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    53
#155 := [rewrite]: #154
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    54
#140 := (iff #123 #139)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    55
#141 := [rewrite]: #140
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    56
#157 := [trans #141 #155]: #156
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    57
#116 := (and #52 #73)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    58
#119 := (forall (vars (?x1 int)) #116)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    59
#124 := (iff #119 #123)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    60
#113 := (iff #116 #105)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    61
#122 := [rewrite]: #113
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    62
#125 := [quant-intro #122]: #124
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    63
#94 := (not #53)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    64
#104 := (and #94 #73)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    65
#108 := (forall (vars (?x1 int)) #104)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    66
#120 := (iff #108 #119)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    67
#117 := (iff #104 #116)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    68
#114 := (iff #94 #52)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    69
#115 := [rewrite]: #114
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    70
#118 := [monotonicity #115]: #117
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    71
#121 := [quant-intro #118]: #120
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    72
#82 := (exists (vars (?x1 int)) #79)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    73
#85 := (not #82)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    74
#109 := (~ #85 #108)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    75
#106 := (~ #105 #104)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    76
#101 := (not #76)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    77
#102 := (~ #101 #73)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    78
#99 := (~ #73 #73)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    79
#97 := (~ #68 #68)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    80
#98 := [refl]: #97
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    81
#100 := [nnf-pos #98]: #99
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    82
#103 := [nnf-neg #100]: #102
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    83
#95 := (~ #94 #94)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    84
#96 := [refl]: #95
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    85
#107 := [nnf-neg #96 #103]: #106
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    86
#110 := [nnf-neg #107]: #109
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    87
#8 := (< 0::int #5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    88
#6 := (<= #4 #5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    89
#9 := (implies #6 #8)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    90
#10 := (forall (vars (?x2 int)) #9)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    91
#11 := (implies #10 #8)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    92
#12 := (exists (vars (?x1 int)) #11)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    93
#13 := (not #12)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    94
#88 := (iff #13 #85)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    95
#30 := (not #6)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    96
#31 := (or #30 #8)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    97
#34 := (forall (vars (?x2 int)) #31)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    98
#40 := (not #34)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    99
#41 := (or #8 #40)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   100
#46 := (exists (vars (?x1 int)) #41)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   101
#49 := (not #46)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   102
#86 := (iff #49 #85)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   103
#83 := (iff #46 #82)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   104
#80 := (iff #41 #79)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   105
#77 := (iff #40 #76)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   106
#74 := (iff #34 #73)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   107
#71 := (iff #31 #68)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   108
#65 := (or #62 #53)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   109
#69 := (iff #65 #68)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   110
#70 := [rewrite]: #69
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   111
#66 := (iff #31 #65)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   112
#54 := (iff #8 #53)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   113
#55 := [rewrite]: #54
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   114
#63 := (iff #30 #62)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   115
#60 := (iff #6 #59)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   116
#61 := [rewrite]: #60
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   117
#64 := [monotonicity #61]: #63
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   118
#67 := [monotonicity #64 #55]: #66
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   119
#72 := [trans #67 #70]: #71
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   120
#75 := [quant-intro #72]: #74
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   121
#78 := [monotonicity #75]: #77
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   122
#81 := [monotonicity #55 #78]: #80
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   123
#84 := [quant-intro #81]: #83
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   124
#87 := [monotonicity #84]: #86
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   125
#50 := (iff #13 #49)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   126
#47 := (iff #12 #46)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   127
#44 := (iff #11 #41)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   128
#37 := (implies #34 #8)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   129
#42 := (iff #37 #41)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   130
#43 := [rewrite]: #42
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   131
#38 := (iff #11 #37)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   132
#35 := (iff #10 #34)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   133
#32 := (iff #9 #31)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   134
#33 := [rewrite]: #32
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   135
#36 := [quant-intro #33]: #35
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   136
#39 := [monotonicity #36]: #38
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   137
#45 := [trans #39 #43]: #44
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   138
#48 := [quant-intro #45]: #47
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   139
#51 := [monotonicity #48]: #50
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   140
#89 := [trans #51 #87]: #88
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   141
#29 := [asserted]: #13
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   142
#90 := [mp #29 #89]: #85
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   143
#111 := [mp~ #90 #110]: #108
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   144
#112 := [mp #111 #121]: #119
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   145
#126 := [mp #112 #125]: #123
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   146
#158 := [mp #126 #157]: #153
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   147
[mp #158 #181]: false
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   148
unsat