src/HOL/SMT/Examples/cert/z3_hol_02.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
decl up_4 :: (-> T1 T2 bool)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     3
decl uf_3 :: T2
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     4
#5 := uf_3
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     5
decl uf_2 :: T1
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     6
#4 := uf_2
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     7
#7 := (up_4 uf_2 uf_3)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     8
#60 := (not #7)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     9
decl up_1 :: (-> T1 T2 bool)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    10
#6 := (up_1 uf_2 uf_3)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    11
#33 := (iff #6 #7)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    12
#49 := (or #6 #7 #33)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    13
#52 := (not #49)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    14
#1 := true
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    15
#11 := (iff #7 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    16
#10 := (iff #6 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    17
#12 := (or #10 #11)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    18
#8 := (and #7 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    19
#9 := (iff #6 #8)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    20
#13 := (or #9 #12)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    21
#14 := (not #13)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    22
#55 := (iff #14 #52)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    23
#40 := (or #6 #7)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    24
#43 := (or #33 #40)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    25
#46 := (not #43)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    26
#53 := (iff #46 #52)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    27
#50 := (iff #43 #49)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    28
#51 := [rewrite]: #50
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    29
#54 := [monotonicity #51]: #53
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    30
#47 := (iff #14 #46)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    31
#44 := (iff #13 #43)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    32
#41 := (iff #12 #40)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    33
#38 := (iff #11 #7)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    34
#39 := [rewrite]: #38
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    35
#36 := (iff #10 #6)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    36
#37 := [rewrite]: #36
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    37
#42 := [monotonicity #37 #39]: #41
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    38
#34 := (iff #9 #33)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    39
#31 := (iff #8 #7)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    40
#32 := [rewrite]: #31
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    41
#35 := [monotonicity #32]: #34
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    42
#45 := [monotonicity #35 #42]: #44
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    43
#48 := [monotonicity #45]: #47
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    44
#56 := [trans #48 #54]: #55
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    45
#30 := [asserted]: #14
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    46
#57 := [mp #30 #56]: #52
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    47
#61 := [not-or-elim #57]: #60
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    48
#58 := (not #6)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    49
#59 := [not-or-elim #57]: #58
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    50
#72 := (or #7 #6)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    51
#66 := (iff #7 #58)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    52
#62 := (not #33)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    53
#64 := (iff #62 #66)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    54
#67 := [rewrite]: #64
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    55
#63 := [not-or-elim #57]: #62
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    56
#68 := [mp #63 #67]: #66
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    57
#69 := (not #66)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    58
#70 := (or #7 #6 #69)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    59
#71 := [def-axiom]: #70
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    60
#73 := [unit-resolution #71 #68]: #72
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    61
[unit-resolution #73 #59 #61]: false
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    62
unsat