src/HOL/SMT/Examples/cert/z3_arith_quant_16.proof
author boehmes
Tue, 03 Nov 2009 14:51:55 +0100
changeset 33418 1312e8337ce5
parent 33010 39f73a59e855
permissions -rw-r--r--
added a specific SMT exception captured by smt_tac (prevents the SMT method from failing with an exception), replaced unspecific 'error' invocations with raising of specific SMT exceptions, added annotations to traced SMT problem and solver output
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