src/HOL/SMT/Examples/cert/z3_arith_quant_11.proof
author boehmes
Tue, 20 Oct 2009 10:11:30 +0200
changeset 33006 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)
     1 #2 := false
     2 #4 := 0::int
     3 decl ?x1!0 :: int
     4 #78 := ?x1!0
     5 #83 := (<= ?x1!0 0::int)
     6 #146 := (not #83)
     7 #155 := [hypothesis]: #83
     8 #7 := 1::int
     9 #81 := (>= ?x1!0 1::int)
    10 #82 := (not #81)
    11 #156 := (or #82 #146)
    12 #157 := [th-lemma]: #156
    13 #158 := [unit-resolution #157 #155]: #82
    14 #159 := (or #146 #81)
    15 #49 := -1::int
    16 #79 := (<= ?x1!0 -1::int)
    17 #80 := (not #79)
    18 #84 := (ite #83 #82 #80)
    19 #85 := (not #84)
    20 #5 := (:var 0 int)
    21 #50 := (<= #5 -1::int)
    22 #51 := (not #50)
    23 #55 := (>= #5 1::int)
    24 #54 := (not #55)
    25 #45 := (<= #5 0::int)
    26 #61 := (ite #45 #54 #51)
    27 #66 := (forall (vars (?x1 int)) #61)
    28 #69 := (not #66)
    29 #86 := (~ #69 #85)
    30 #87 := [sk]: #86
    31 #10 := (< #5 1::int)
    32 #8 := (+ #5 1::int)
    33 #9 := (< 0::int #8)
    34 #6 := (< 0::int #5)
    35 #11 := (ite #6 #9 #10)
    36 #12 := (forall (vars (?x1 int)) #11)
    37 #13 := (not #12)
    38 #72 := (iff #13 #69)
    39 #30 := (+ 1::int #5)
    40 #33 := (< 0::int #30)
    41 #36 := (ite #6 #33 #10)
    42 #39 := (forall (vars (?x1 int)) #36)
    43 #42 := (not #39)
    44 #70 := (iff #42 #69)
    45 #67 := (iff #39 #66)
    46 #64 := (iff #36 #61)
    47 #46 := (not #45)
    48 #58 := (ite #46 #51 #54)
    49 #62 := (iff #58 #61)
    50 #63 := [rewrite]: #62
    51 #59 := (iff #36 #58)
    52 #56 := (iff #10 #54)
    53 #57 := [rewrite]: #56
    54 #52 := (iff #33 #51)
    55 #53 := [rewrite]: #52
    56 #47 := (iff #6 #46)
    57 #48 := [rewrite]: #47
    58 #60 := [monotonicity #48 #53 #57]: #59
    59 #65 := [trans #60 #63]: #64
    60 #68 := [quant-intro #65]: #67
    61 #71 := [monotonicity #68]: #70
    62 #43 := (iff #13 #42)
    63 #40 := (iff #12 #39)
    64 #37 := (iff #11 #36)
    65 #34 := (iff #9 #33)
    66 #31 := (= #8 #30)
    67 #32 := [rewrite]: #31
    68 #35 := [monotonicity #32]: #34
    69 #38 := [monotonicity #35]: #37
    70 #41 := [quant-intro #38]: #40
    71 #44 := [monotonicity #41]: #43
    72 #73 := [trans #44 #71]: #72
    73 #29 := [asserted]: #13
    74 #74 := [mp #29 #73]: #69
    75 #90 := [mp~ #74 #87]: #85
    76 #151 := (or #84 #146 #81)
    77 #152 := [def-axiom]: #151
    78 #160 := [unit-resolution #152 #90]: #159
    79 #161 := [unit-resolution #160 #158 #155]: false
    80 #162 := [lemma #161]: #146
    81 #163 := (or #80 #83)
    82 #164 := [th-lemma]: #163
    83 #165 := [unit-resolution #164 #162]: #80
    84 #166 := (or #83 #79)
    85 #153 := (or #84 #83 #79)
    86 #154 := [def-axiom]: #153
    87 #167 := [unit-resolution #154 #90]: #166
    88 [unit-resolution #167 #165 #162]: false
    89 unsat