src/HOL/SMT/Examples/cert/z3_arith_quant_16.proof
author wenzelm
Sun, 25 Oct 2009 00:00:53 +0200
changeset 33102 e3463e6db704
parent 33010 39f73a59e855
permissions -rw-r--r--
adapted Function_Lib (cf. b8cdd3d73022);
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
#4 := 0::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     3
decl ?x2!1 :: int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     4
#91 := ?x2!1
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     5
#98 := (<= ?x2!1 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     6
#99 := (not #98)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     7
#7 := 0::real
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     8
decl ?x3!0 :: real
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     9
#93 := ?x3!0
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    10
#96 := (<= ?x3!0 0::real)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    11
#97 := (not #96)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    12
#111 := (and #97 #99)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    13
#114 := (not #111)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    14
#33 := -1::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    15
#94 := (<= ?x2!1 -1::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    16
#95 := (not #94)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    17
#120 := (or #95 #114)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    18
#125 := (not #120)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    19
#100 := (and #99 #97)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    20
#101 := (not #100)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    21
#102 := (or #101 #95)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    22
#103 := (not #102)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    23
#126 := (iff #103 #125)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    24
#123 := (iff #102 #120)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    25
#117 := (or #114 #95)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    26
#121 := (iff #117 #120)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    27
#122 := [rewrite]: #121
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    28
#118 := (iff #102 #117)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    29
#115 := (iff #101 #114)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    30
#112 := (iff #100 #111)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    31
#113 := [rewrite]: #112
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    32
#116 := [monotonicity #113]: #115
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    33
#119 := [monotonicity #116]: #118
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    34
#124 := [trans #119 #122]: #123
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    35
#127 := [monotonicity #124]: #126
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    36
#5 := (:var 1 int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    37
#75 := (<= #5 -1::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    38
#76 := (not #75)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    39
#8 := (:var 0 real)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    40
#65 := (<= #8 0::real)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    41
#66 := (not #65)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    42
#61 := (<= #5 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    43
#62 := (not #61)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    44
#69 := (and #62 #66)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    45
#72 := (not #69)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    46
#79 := (or #72 #76)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    47
#82 := (forall (vars (?x2 int) (?x3 real)) #79)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    48
#85 := (not #82)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    49
#104 := (~ #85 #103)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    50
#105 := [sk]: #104
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    51
#11 := 1::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    52
#12 := (- 1::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    53
#13 := (< #12 #5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    54
#9 := (< 0::real #8)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    55
#6 := (< 0::int #5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    56
#10 := (and #6 #9)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    57
#14 := (implies #10 #13)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    58
#15 := (forall (vars (?x2 int) (?x3 real)) #14)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    59
#16 := (exists (vars (?x1 int)) #15)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    60
#17 := (not #16)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    61
#88 := (iff #17 #85)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    62
#36 := (< -1::int #5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    63
#42 := (not #10)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    64
#43 := (or #42 #36)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    65
#48 := (forall (vars (?x2 int) (?x3 real)) #43)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    66
#58 := (not #48)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    67
#86 := (iff #58 #85)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    68
#83 := (iff #48 #82)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    69
#80 := (iff #43 #79)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    70
#77 := (iff #36 #76)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    71
#78 := [rewrite]: #77
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    72
#73 := (iff #42 #72)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    73
#70 := (iff #10 #69)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    74
#67 := (iff #9 #66)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    75
#68 := [rewrite]: #67
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    76
#63 := (iff #6 #62)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    77
#64 := [rewrite]: #63
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    78
#71 := [monotonicity #64 #68]: #70
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    79
#74 := [monotonicity #71]: #73
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    80
#81 := [monotonicity #74 #78]: #80
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    81
#84 := [quant-intro #81]: #83
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    82
#87 := [monotonicity #84]: #86
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    83
#59 := (iff #17 #58)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    84
#56 := (iff #16 #48)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    85
#51 := (exists (vars (?x1 int)) #48)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    86
#54 := (iff #51 #48)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    87
#55 := [elim-unused]: #54
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    88
#52 := (iff #16 #51)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    89
#49 := (iff #15 #48)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    90
#46 := (iff #14 #43)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    91
#39 := (implies #10 #36)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    92
#44 := (iff #39 #43)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    93
#45 := [rewrite]: #44
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    94
#40 := (iff #14 #39)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    95
#37 := (iff #13 #36)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    96
#34 := (= #12 -1::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    97
#35 := [rewrite]: #34
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    98
#38 := [monotonicity #35]: #37
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    99
#41 := [monotonicity #38]: #40
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   100
#47 := [trans #41 #45]: #46
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   101
#50 := [quant-intro #47]: #49
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   102
#53 := [quant-intro #50]: #52
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   103
#57 := [trans #53 #55]: #56
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   104
#60 := [monotonicity #57]: #59
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   105
#89 := [trans #60 #87]: #88
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   106
#32 := [asserted]: #17
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   107
#90 := [mp #32 #89]: #85
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   108
#108 := [mp~ #90 #105]: #103
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   109
#109 := [mp #108 #127]: #125
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   110
#128 := [not-or-elim #109]: #111
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   111
#130 := [and-elim #128]: #99
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   112
#110 := [not-or-elim #109]: #94
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   113
#186 := (or #95 #98)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   114
#187 := [th-lemma]: #186
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   115
#188 := [unit-resolution #187 #110]: #98
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   116
[unit-resolution #188 #130]: false
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   117
unsat