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