src/HOL/SMT/Examples/cert/z3_arith_quant_10.proof
changeset 33010 39f73a59e855
equal deleted inserted replaced
33008:b0ff69f0a248 33010:39f73a59e855
       
     1 #2 := false
       
     2 #4 := 2::int
       
     3 decl ?x1!1 :: int
       
     4 #85 := ?x1!1
       
     5 decl ?x2!0 :: int
       
     6 #84 := ?x2!0
       
     7 #101 := (+ ?x2!0 ?x1!1)
       
     8 #107 := (>= #101 2::int)
       
     9 #113 := (<= #101 2::int)
       
    10 #116 := (not #113)
       
    11 #110 := (not #107)
       
    12 #104 := (= #101 2::int)
       
    13 #119 := (or #104 #110 #116)
       
    14 #122 := (not #119)
       
    15 #86 := (+ ?x1!1 ?x2!0)
       
    16 #87 := (<= #86 2::int)
       
    17 #88 := (not #87)
       
    18 #89 := (>= #86 2::int)
       
    19 #90 := (not #89)
       
    20 #91 := (= #86 2::int)
       
    21 #92 := (or #91 #90 #88)
       
    22 #93 := (not #92)
       
    23 #123 := (iff #93 #122)
       
    24 #120 := (iff #92 #119)
       
    25 #117 := (iff #88 #116)
       
    26 #114 := (iff #87 #113)
       
    27 #102 := (= #86 #101)
       
    28 #103 := [rewrite]: #102
       
    29 #115 := [monotonicity #103]: #114
       
    30 #118 := [monotonicity #115]: #117
       
    31 #111 := (iff #90 #110)
       
    32 #108 := (iff #89 #107)
       
    33 #109 := [monotonicity #103]: #108
       
    34 #112 := [monotonicity #109]: #111
       
    35 #105 := (iff #91 #104)
       
    36 #106 := [monotonicity #103]: #105
       
    37 #121 := [monotonicity #106 #112 #118]: #120
       
    38 #124 := [monotonicity #121]: #123
       
    39 #6 := (:var 0 int)
       
    40 #5 := (:var 1 int)
       
    41 #7 := (+ #5 #6)
       
    42 #56 := (<= #7 2::int)
       
    43 #58 := (not #56)
       
    44 #54 := (>= #7 2::int)
       
    45 #51 := (not #54)
       
    46 #9 := (= #7 2::int)
       
    47 #67 := (or #9 #51 #58)
       
    48 #72 := (forall (vars (?x1 int) (?x2 int)) #67)
       
    49 #75 := (not #72)
       
    50 #94 := (~ #75 #93)
       
    51 #95 := [sk]: #94
       
    52 #10 := (< #7 2::int)
       
    53 #11 := (or #9 #10)
       
    54 #8 := (< 2::int #7)
       
    55 #12 := (or #8 #11)
       
    56 #13 := (forall (vars (?x1 int) (?x2 int)) #12)
       
    57 #14 := (not #13)
       
    58 #78 := (iff #14 #75)
       
    59 #31 := (= 2::int #7)
       
    60 #37 := (or #10 #31)
       
    61 #42 := (or #8 #37)
       
    62 #45 := (forall (vars (?x1 int) (?x2 int)) #42)
       
    63 #48 := (not #45)
       
    64 #76 := (iff #48 #75)
       
    65 #73 := (iff #45 #72)
       
    66 #70 := (iff #42 #67)
       
    67 #61 := (or #51 #9)
       
    68 #64 := (or #58 #61)
       
    69 #68 := (iff #64 #67)
       
    70 #69 := [rewrite]: #68
       
    71 #65 := (iff #42 #64)
       
    72 #62 := (iff #37 #61)
       
    73 #55 := (iff #31 #9)
       
    74 #57 := [rewrite]: #55
       
    75 #53 := (iff #10 #51)
       
    76 #52 := [rewrite]: #53
       
    77 #63 := [monotonicity #52 #57]: #62
       
    78 #59 := (iff #8 #58)
       
    79 #60 := [rewrite]: #59
       
    80 #66 := [monotonicity #60 #63]: #65
       
    81 #71 := [trans #66 #69]: #70
       
    82 #74 := [quant-intro #71]: #73
       
    83 #77 := [monotonicity #74]: #76
       
    84 #49 := (iff #14 #48)
       
    85 #46 := (iff #13 #45)
       
    86 #43 := (iff #12 #42)
       
    87 #40 := (iff #11 #37)
       
    88 #34 := (or #31 #10)
       
    89 #38 := (iff #34 #37)
       
    90 #39 := [rewrite]: #38
       
    91 #35 := (iff #11 #34)
       
    92 #32 := (iff #9 #31)
       
    93 #33 := [rewrite]: #32
       
    94 #36 := [monotonicity #33]: #35
       
    95 #41 := [trans #36 #39]: #40
       
    96 #44 := [monotonicity #41]: #43
       
    97 #47 := [quant-intro #44]: #46
       
    98 #50 := [monotonicity #47]: #49
       
    99 #79 := [trans #50 #77]: #78
       
   100 #30 := [asserted]: #14
       
   101 #80 := [mp #30 #79]: #75
       
   102 #98 := [mp~ #80 #95]: #93
       
   103 #99 := [mp #98 #124]: #122
       
   104 #126 := [not-or-elim #99]: #107
       
   105 #100 := (not #104)
       
   106 #125 := [not-or-elim #99]: #100
       
   107 #127 := [not-or-elim #99]: #113
       
   108 #183 := (or #104 #116 #110)
       
   109 #184 := [th-lemma]: #183
       
   110 [unit-resolution #184 #127 #125 #126]: false
       
   111 unsat