src/HOL/SMT/Examples/cert/z3_linarith_14.proof
author boehmes
Fri, 11 Dec 2009 15:36:05 +0100
changeset 34069 c1fd26512f6d
parent 33010 39f73a59e855
permissions -rw-r--r--
updated dependencies
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 :: int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     3
#5 := uf_1
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     4
#7 := 2::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     5
#29 := (* 2::int uf_1)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     6
#4 := 0::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     7
#54 := (= 0::int #29)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     8
#55 := (not #54)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     9
#61 := (= #29 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    10
#104 := (not #61)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    11
#110 := (iff #104 #55)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    12
#108 := (iff #61 #54)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    13
#109 := [commutativity]: #108
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    14
#111 := [monotonicity #109]: #110
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    15
#62 := (<= #29 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    16
#100 := (not #62)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    17
#30 := (<= uf_1 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    18
#31 := (not #30)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    19
#6 := (< 0::int uf_1)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    20
#32 := (iff #6 #31)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    21
#33 := [rewrite]: #32
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    22
#27 := [asserted]: #6
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    23
#34 := [mp #27 #33]: #31
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    24
#101 := (or #100 #30)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    25
#102 := [th-lemma]: #101
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    26
#103 := [unit-resolution #102 #34]: #100
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    27
#105 := (or #104 #62)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    28
#106 := [th-lemma]: #105
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    29
#107 := [unit-resolution #106 #103]: #104
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    30
#112 := [mp #107 #111]: #55
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    31
#56 := (= uf_1 #29)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    32
#57 := (not #56)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    33
#53 := (= 0::int uf_1)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    34
#50 := (not #53)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    35
#58 := (and #50 #55 #57)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    36
#69 := (not #58)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    37
#42 := (distinct 0::int uf_1 #29)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    38
#47 := (not #42)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    39
#9 := (- uf_1 uf_1)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    40
#8 := (* uf_1 2::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    41
#10 := (distinct uf_1 #8 #9)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    42
#11 := (not #10)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    43
#48 := (iff #11 #47)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    44
#45 := (iff #10 #42)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    45
#39 := (distinct uf_1 #29 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    46
#43 := (iff #39 #42)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    47
#44 := [rewrite]: #43
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    48
#40 := (iff #10 #39)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    49
#37 := (= #9 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    50
#38 := [rewrite]: #37
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    51
#35 := (= #8 #29)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    52
#36 := [rewrite]: #35
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    53
#41 := [monotonicity #36 #38]: #40
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    54
#46 := [trans #41 #44]: #45
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    55
#49 := [monotonicity #46]: #48
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    56
#28 := [asserted]: #11
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    57
#52 := [mp #28 #49]: #47
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    58
#80 := (or #42 #69)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    59
#81 := [def-axiom]: #80
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    60
#82 := [unit-resolution #81 #52]: #69
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    61
#59 := (= uf_1 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    62
#83 := (not #59)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    63
#89 := (iff #83 #50)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    64
#87 := (iff #59 #53)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    65
#88 := [commutativity]: #87
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    66
#90 := [monotonicity #88]: #89
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    67
#84 := (or #83 #30)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    68
#85 := [th-lemma]: #84
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    69
#86 := [unit-resolution #85 #34]: #83
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    70
#91 := [mp #86 #90]: #50
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    71
#64 := -1::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    72
#65 := (* -1::int #29)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    73
#66 := (+ uf_1 #65)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    74
#68 := (>= #66 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    75
#92 := (not #68)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    76
#93 := (or #92 #30)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    77
#94 := [th-lemma]: #93
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    78
#95 := [unit-resolution #94 #34]: #92
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    79
#96 := (or #57 #68)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    80
#97 := [th-lemma]: #96
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    81
#98 := [unit-resolution #97 #95]: #57
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    82
#76 := (or #58 #53 #54 #56)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    83
#77 := [def-axiom]: #76
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    84
#99 := [unit-resolution #77 #98 #91 #82]: #54
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    85
[unit-resolution #99 #112]: false
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    86
unsat