src/HOL/SMT/Examples/cert/z3_hol_03.proof
author wenzelm
Tue, 27 Oct 2009 23:12:10 +0100
changeset 33263 03c08ce703bf
parent 33010 39f73a59e855
child 34010 ac78f5cdc430
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
decl uf_1 :: (-> T1 T1)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     3
decl uf_4 :: T1
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     4
#15 := uf_4
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     5
#16 := (uf_1 uf_4)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     6
#48 := (= uf_4 #16)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     7
#83 := (not #48)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     8
decl uf_2 :: (-> T2 T2)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     9
decl uf_3 :: T2
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    10
#10 := uf_3
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    11
#18 := (uf_2 uf_3)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    12
#51 := (= uf_3 #18)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    13
#84 := (not #51)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    14
#556 := [hypothesis]: #84
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    15
#8 := (:var 0 T2)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    16
#9 := (uf_2 #8)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    17
#575 := (pattern #9)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    18
#12 := (= #8 uf_3)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    19
#11 := (= #9 uf_3)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    20
#13 := (iff #11 #12)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    21
#576 := (forall (vars (?x2 T2)) (:pat #575) #13)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    22
#14 := (forall (vars (?x2 T2)) #13)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    23
#579 := (iff #14 #576)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    24
#577 := (iff #13 #13)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    25
#578 := [refl]: #577
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    26
#580 := [quant-intro #578]: #579
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    27
#70 := (~ #14 #14)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    28
#80 := (~ #13 #13)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    29
#81 := [refl]: #80
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    30
#67 := [nnf-pos #81]: #70
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    31
#45 := [asserted]: #14
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    32
#82 := [mp~ #45 #67]: #14
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    33
#581 := [mp #82 #580]: #576
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    34
#242 := (not #576)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    35
#170 := (or #242 #51)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    36
#150 := (= uf_3 uf_3)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    37
#19 := (= #18 uf_3)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    38
#237 := (iff #19 #150)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    39
#243 := (or #242 #237)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    40
#244 := (iff #243 #170)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    41
#560 := (iff #170 #170)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    42
#562 := [rewrite]: #560
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    43
#230 := (iff #237 #51)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    44
#1 := true
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    45
#54 := (iff #51 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    46
#57 := (iff #54 #51)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    47
#58 := [rewrite]: #57
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    48
#152 := (iff #237 #54)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    49
#151 := (iff #150 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    50
#238 := [rewrite]: #151
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    51
#52 := (iff #19 #51)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    52
#53 := [rewrite]: #52
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    53
#239 := [monotonicity #53 #238]: #152
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    54
#241 := [trans #239 #58]: #230
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    55
#223 := [monotonicity #241]: #244
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    56
#217 := [trans #223 #562]: #244
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    57
#240 := [quant-inst]: #243
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    58
#349 := [mp #240 #217]: #170
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    59
#228 := [unit-resolution #349 #581 #556]: false
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    60
#229 := [lemma #228]: #51
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    61
#71 := (or #83 #84)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    62
#61 := (and #48 #51)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    63
#64 := (not #61)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    64
#90 := (iff #64 #71)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    65
#72 := (not #71)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    66
#85 := (not #72)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    67
#88 := (iff #85 #71)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    68
#89 := [rewrite]: #88
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    69
#86 := (iff #64 #85)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    70
#73 := (iff #61 #72)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    71
#74 := [rewrite]: #73
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    72
#87 := [monotonicity #74]: #86
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    73
#91 := [trans #87 #89]: #90
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    74
#20 := (iff #19 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    75
#17 := (= #16 uf_4)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    76
#21 := (and #17 #20)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    77
#22 := (not #21)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    78
#65 := (iff #22 #64)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    79
#62 := (iff #21 #61)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    80
#59 := (iff #20 #51)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    81
#55 := (iff #20 #54)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    82
#56 := [monotonicity #53]: #55
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    83
#60 := [trans #56 #58]: #59
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    84
#49 := (iff #17 #48)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    85
#50 := [rewrite]: #49
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    86
#63 := [monotonicity #50 #60]: #62
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    87
#66 := [monotonicity #63]: #65
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    88
#46 := [asserted]: #22
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    89
#69 := [mp #46 #66]: #64
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    90
#92 := [mp #69 #91]: #71
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    91
#563 := [unit-resolution #92 #229]: #83
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    92
#4 := (:var 0 T1)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    93
#5 := (uf_1 #4)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    94
#568 := (pattern #5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    95
#39 := (= #4 #5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    96
#569 := (forall (vars (?x1 T1)) (:pat #568) #39)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    97
#42 := (forall (vars (?x1 T1)) #39)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    98
#572 := (iff #42 #569)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    99
#570 := (iff #39 #39)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   100
#571 := [refl]: #570
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   101
#573 := [quant-intro #571]: #572
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   102
#77 := (~ #42 #42)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   103
#75 := (~ #39 #39)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   104
#76 := [refl]: #75
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   105
#78 := [nnf-pos #76]: #77
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   106
#6 := (= #5 #4)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   107
#7 := (forall (vars (?x1 T1)) #6)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   108
#43 := (iff #7 #42)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   109
#40 := (iff #6 #39)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   110
#41 := [rewrite]: #40
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   111
#44 := [quant-intro #41]: #43
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   112
#38 := [asserted]: #7
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   113
#47 := [mp #38 #44]: #42
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   114
#79 := [mp~ #47 #78]: #42
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   115
#574 := [mp #79 #573]: #569
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   116
#565 := (not #569)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   117
#566 := (or #565 #48)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   118
#561 := [quant-inst]: #566
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   119
[unit-resolution #561 #574 #563]: false
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   120
unsat