src/HOL/SMT/Examples/cert/z3_pair_02.proof
author haftmann
Mon, 07 Dec 2009 14:54:01 +0100
changeset 34020 2573c794034c
parent 33010 39f73a59e855
permissions -rw-r--r--
merged Crude_Executable_Set into Executable_Set
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_6 :: (-> T4 T2)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     3
decl uf_10 :: T4
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     4
#39 := uf_10
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     5
#44 := (uf_6 uf_10)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     6
decl uf_2 :: (-> T1 T2)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     7
decl uf_7 :: T1
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     8
#34 := uf_7
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     9
#43 := (uf_2 uf_7)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    10
#45 := (= #43 #44)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    11
decl uf_4 :: (-> T3 T2 T4)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    12
decl uf_8 :: T2
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    13
#35 := uf_8
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    14
decl uf_9 :: T3
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    15
#36 := uf_9
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    16
#40 := (uf_4 uf_9 uf_8)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    17
#204 := (uf_6 #40)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    18
#598 := (= #204 #44)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    19
#595 := (= #44 #204)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    20
#41 := (= uf_10 #40)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    21
decl uf_1 :: (-> T2 T3 T1)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    22
#37 := (uf_1 uf_8 uf_9)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    23
#38 := (= uf_7 #37)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    24
#42 := (and #38 #41)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    25
#109 := [asserted]: #42
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    26
#114 := [and-elim #109]: #41
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    27
#256 := [monotonicity #114]: #595
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    28
#599 := [symm #256]: #598
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    29
#596 := (= #43 #204)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    30
#269 := (= uf_8 #204)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    31
#23 := (:var 0 T2)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    32
#22 := (:var 1 T3)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    33
#24 := (uf_4 #22 #23)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    34
#643 := (pattern #24)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    35
#25 := (uf_6 #24)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    36
#86 := (= #23 #25)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    37
#644 := (forall (vars (?x5 T3) (?x6 T2)) (:pat #643) #86)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    38
#90 := (forall (vars (?x5 T3) (?x6 T2)) #86)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    39
#647 := (iff #90 #644)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    40
#645 := (iff #86 #86)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    41
#646 := [refl]: #645
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    42
#648 := [quant-intro #646]: #647
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    43
#119 := (~ #90 #90)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    44
#144 := (~ #86 #86)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    45
#145 := [refl]: #144
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    46
#120 := [nnf-pos #145]: #119
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    47
#26 := (= #25 #23)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    48
#27 := (forall (vars (?x5 T3) (?x6 T2)) #26)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    49
#91 := (iff #27 #90)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    50
#88 := (iff #26 #86)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    51
#89 := [rewrite]: #88
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    52
#92 := [quant-intro #89]: #91
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    53
#85 := [asserted]: #27
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    54
#95 := [mp #85 #92]: #90
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    55
#146 := [mp~ #95 #120]: #90
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    56
#649 := [mp #146 #648]: #644
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    57
#613 := (not #644)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    58
#619 := (or #613 #269)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    59
#609 := [quant-inst]: #619
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    60
#267 := [unit-resolution #609 #649]: #269
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    61
#600 := (= #43 uf_8)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    62
#289 := (uf_2 #37)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    63
#259 := (= #289 uf_8)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    64
#296 := (= uf_8 #289)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    65
#17 := (:var 0 T3)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    66
#16 := (:var 1 T2)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    67
#18 := (uf_1 #16 #17)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    68
#636 := (pattern #18)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    69
#28 := (uf_2 #18)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    70
#94 := (= #16 #28)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    71
#650 := (forall (vars (?x7 T2) (?x8 T3)) (:pat #636) #94)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    72
#98 := (forall (vars (?x7 T2) (?x8 T3)) #94)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    73
#653 := (iff #98 #650)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    74
#651 := (iff #94 #94)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    75
#652 := [refl]: #651
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    76
#654 := [quant-intro #652]: #653
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    77
#121 := (~ #98 #98)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    78
#147 := (~ #94 #94)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    79
#148 := [refl]: #147
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    80
#122 := [nnf-pos #148]: #121
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    81
#29 := (= #28 #16)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    82
#30 := (forall (vars (?x7 T2) (?x8 T3)) #29)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    83
#99 := (iff #30 #98)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    84
#96 := (iff #29 #94)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    85
#97 := [rewrite]: #96
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    86
#100 := [quant-intro #97]: #99
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    87
#93 := [asserted]: #30
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    88
#103 := [mp #93 #100]: #98
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    89
#149 := [mp~ #103 #122]: #98
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    90
#655 := [mp #149 #654]: #650
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    91
#615 := (not #650)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    92
#616 := (or #615 #296)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    93
#617 := [quant-inst]: #616
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    94
#618 := [unit-resolution #617 #655]: #296
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    95
#597 := [symm #618]: #259
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    96
#611 := (= #43 #289)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    97
#113 := [and-elim #109]: #38
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    98
#252 := [monotonicity #113]: #611
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    99
#601 := [trans #252 #597]: #600
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   100
#602 := [trans #601 #267]: #596
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   101
#238 := [trans #602 #599]: #45
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   102
#46 := (not #45)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   103
#110 := [asserted]: #46
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   104
[unit-resolution #110 #238]: false
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   105
unsat