src/HOL/SMT/Examples/cert/z3_fol_02.proof
changeset 33010 39f73a59e855
equal deleted inserted replaced
33008:b0ff69f0a248 33010:39f73a59e855
       
     1 #2 := false
       
     2 decl up_1 :: (-> T1 T2 bool)
       
     3 #5 := (:var 0 T2)
       
     4 decl uf_3 :: T1
       
     5 #11 := uf_3
       
     6 #12 := (up_1 uf_3 #5)
       
     7 #560 := (pattern #12)
       
     8 #57 := (not #12)
       
     9 #561 := (forall (vars (?x3 T2)) (:pat #560) #57)
       
    10 decl uf_4 :: T2
       
    11 #14 := uf_4
       
    12 #15 := (up_1 uf_3 uf_4)
       
    13 decl uf_2 :: T1
       
    14 #7 := uf_2
       
    15 #136 := (= uf_2 uf_3)
       
    16 #543 := (iff #15 #136)
       
    17 #4 := (:var 1 T1)
       
    18 #6 := (up_1 #4 #5)
       
    19 #553 := (pattern #6)
       
    20 #8 := (= #4 uf_2)
       
    21 #9 := (iff #6 #8)
       
    22 #554 := (forall (vars (?x1 T1) (?x2 T2)) (:pat #553) #9)
       
    23 #10 := (forall (vars (?x1 T1) (?x2 T2)) #9)
       
    24 #557 := (iff #10 #554)
       
    25 #555 := (iff #9 #9)
       
    26 #556 := [refl]: #555
       
    27 #558 := [quant-intro #556]: #557
       
    28 #47 := (~ #10 #10)
       
    29 #45 := (~ #9 #9)
       
    30 #46 := [refl]: #45
       
    31 #48 := [nnf-pos #46]: #47
       
    32 #33 := [asserted]: #10
       
    33 #49 := [mp~ #33 #48]: #10
       
    34 #559 := [mp #49 #558]: #554
       
    35 #227 := (not #554)
       
    36 #185 := (or #227 #543)
       
    37 #135 := (= uf_3 uf_2)
       
    38 #205 := (iff #15 #135)
       
    39 #528 := (or #227 #205)
       
    40 #190 := (iff #528 #185)
       
    41 #192 := (iff #185 #185)
       
    42 #530 := [rewrite]: #192
       
    43 #201 := (iff #205 #543)
       
    44 #223 := (iff #135 #136)
       
    45 #137 := [rewrite]: #223
       
    46 #544 := [monotonicity #137]: #201
       
    47 #191 := [monotonicity #544]: #190
       
    48 #531 := [trans #191 #530]: #190
       
    49 #189 := [quant-inst]: #528
       
    50 #532 := [mp #189 #531]: #185
       
    51 #539 := [unit-resolution #532 #559]: #543
       
    52 decl ?x3!0 :: T2
       
    53 #50 := ?x3!0
       
    54 #51 := (up_1 uf_3 ?x3!0)
       
    55 #224 := (iff #51 #136)
       
    56 #155 := (or #227 #224)
       
    57 #222 := (iff #51 #135)
       
    58 #228 := (or #227 #222)
       
    59 #229 := (iff #228 #155)
       
    60 #545 := (iff #155 #155)
       
    61 #547 := [rewrite]: #545
       
    62 #215 := (iff #222 #224)
       
    63 #226 := [monotonicity #137]: #215
       
    64 #208 := [monotonicity #226]: #229
       
    65 #202 := [trans #208 #547]: #229
       
    66 #225 := [quant-inst]: #228
       
    67 #334 := [mp #225 #202]: #155
       
    68 #537 := [unit-resolution #334 #559]: #224
       
    69 #541 := (not #224)
       
    70 #527 := (or #541 #136)
       
    71 #63 := (not #15)
       
    72 #540 := [hypothesis]: #63
       
    73 #68 := (or #15 #51)
       
    74 #60 := (forall (vars (?x3 T2)) #57)
       
    75 #69 := (or #63 #60)
       
    76 #76 := (and #68 #69)
       
    77 #70 := (and #69 #68)
       
    78 #77 := (iff #70 #76)
       
    79 #78 := [rewrite]: #77
       
    80 #13 := (exists (vars (?x3 T2)) #12)
       
    81 #35 := (not #13)
       
    82 #36 := (iff #15 #35)
       
    83 #71 := (~ #36 #70)
       
    84 #61 := (~ #35 #60)
       
    85 #58 := (~ #57 #57)
       
    86 #59 := [refl]: #58
       
    87 #62 := [nnf-neg #59]: #61
       
    88 #54 := (not #35)
       
    89 #55 := (~ #54 #51)
       
    90 #42 := (~ #13 #51)
       
    91 #39 := [sk]: #42
       
    92 #56 := [nnf-neg #39]: #55
       
    93 #66 := (~ #15 #15)
       
    94 #67 := [refl]: #66
       
    95 #64 := (~ #63 #63)
       
    96 #65 := [refl]: #64
       
    97 #72 := [nnf-pos #65 #67 #56 #62]: #71
       
    98 #16 := (iff #13 #15)
       
    99 #17 := (not #16)
       
   100 #37 := (iff #17 #36)
       
   101 #38 := [rewrite]: #37
       
   102 #34 := [asserted]: #17
       
   103 #41 := [mp #34 #38]: #36
       
   104 #73 := [mp~ #41 #72]: #70
       
   105 #74 := [mp #73 #78]: #76
       
   106 #75 := [and-elim #74]: #68
       
   107 #526 := [unit-resolution #75 #540]: #51
       
   108 #549 := (not #51)
       
   109 #550 := (or #541 #549 #136)
       
   110 #551 := [def-axiom]: #550
       
   111 #233 := [unit-resolution #551 #526]: #527
       
   112 #249 := [unit-resolution #233 #537]: #136
       
   113 #213 := (not #136)
       
   114 #533 := (not #543)
       
   115 #250 := (or #533 #213)
       
   116 #534 := (or #533 #15 #213)
       
   117 #529 := [def-axiom]: #534
       
   118 #251 := [unit-resolution #529 #540]: #250
       
   119 #237 := [unit-resolution #251 #249 #539]: false
       
   120 #252 := [lemma #237]: #15
       
   121 #566 := (or #63 #561)
       
   122 #567 := (iff #69 #566)
       
   123 #564 := (iff #60 #561)
       
   124 #562 := (iff #57 #57)
       
   125 #563 := [refl]: #562
       
   126 #565 := [quant-intro #563]: #564
       
   127 #568 := [monotonicity #565]: #567
       
   128 #79 := [and-elim #74]: #69
       
   129 #569 := [mp #79 #568]: #566
       
   130 #535 := [unit-resolution #569 #252]: #561
       
   131 #536 := (not #561)
       
   132 #538 := (or #536 #63)
       
   133 #176 := [quant-inst]: #538
       
   134 [unit-resolution #176 #252 #535]: false
       
   135 unsat