src/HOL/SMT/Examples/cert/z3_linarith_07.proof
author boehmes
Tue, 20 Oct 2009 10:11:30 +0200
changeset 33010 39f73a59e855
child 34010 ac78f5cdc430
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)
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
decl uf_3 :: (-> T1 T2)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     3
decl uf_2 :: T1
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     4
#7 := uf_2
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     5
#16 := (uf_3 uf_2)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     6
decl uf_1 :: (-> int int T1)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     7
#13 := 3::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     8
#12 := 2::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
     9
#14 := (uf_1 2::int 3::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    10
#15 := (uf_3 #14)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    11
#17 := (= #15 #16)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    12
#516 := (= #16 #15)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    13
#194 := (= uf_2 #14)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    14
#5 := (:var 0 int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    15
#4 := (:var 1 int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    16
#6 := (uf_1 #4 #5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    17
#530 := (pattern #6)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    18
#39 := 0::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    19
#37 := -1::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    20
#41 := (* -1::int #5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    21
#42 := (+ #4 #41)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    22
#40 := (>= #42 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    23
#38 := (not #40)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    24
#8 := (= #6 uf_2)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    25
#45 := (iff #8 #38)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    26
#531 := (forall (vars (?x1 int) (?x2 int)) (:pat #530) #45)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    27
#48 := (forall (vars (?x1 int) (?x2 int)) #45)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    28
#534 := (iff #48 #531)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    29
#532 := (iff #45 #45)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    30
#533 := [refl]: #532
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    31
#535 := [quant-intro #533]: #534
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    32
#58 := (~ #48 #48)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    33
#56 := (~ #45 #45)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    34
#57 := [refl]: #56
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    35
#59 := [nnf-pos #57]: #58
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    36
#9 := (< #4 #5)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    37
#10 := (iff #8 #9)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    38
#11 := (forall (vars (?x1 int) (?x2 int)) #10)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    39
#49 := (iff #11 #48)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    40
#46 := (iff #10 #45)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    41
#43 := (iff #9 #38)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    42
#44 := [rewrite]: #43
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    43
#47 := [monotonicity #44]: #46
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    44
#50 := [quant-intro #47]: #49
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    45
#34 := [asserted]: #11
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    46
#51 := [mp #34 #50]: #48
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    47
#60 := [mp~ #51 #59]: #48
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    48
#536 := [mp #60 #535]: #531
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    49
#508 := (not #531)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    50
#509 := (or #508 #194)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    51
#201 := (* -1::int 3::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    52
#115 := (+ 2::int #201)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    53
#202 := (>= #115 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    54
#116 := (not #202)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    55
#114 := (= #14 uf_2)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    56
#203 := (iff #114 #116)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    57
#510 := (or #508 #203)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    58
#506 := (iff #510 #509)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    59
#150 := (iff #509 #509)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    60
#513 := [rewrite]: #150
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    61
#171 := (iff #203 #194)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    62
#1 := true
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    63
#164 := (iff #194 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    64
#169 := (iff #164 #194)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    65
#170 := [rewrite]: #169
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    66
#505 := (iff #203 #164)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    67
#180 := (iff #116 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    68
#529 := (not false)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    69
#184 := (iff #529 true)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    70
#520 := [rewrite]: #184
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    71
#519 := (iff #116 #529)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    72
#528 := (iff #202 false)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    73
#192 := (>= -1::int 0::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    74
#526 := (iff #192 false)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    75
#527 := [rewrite]: #526
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    76
#193 := (iff #202 #192)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    77
#311 := (= #115 -1::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    78
#134 := -3::int
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    79
#208 := (+ 2::int -3::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    80
#524 := (= #208 -1::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    81
#181 := [rewrite]: #524
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    82
#187 := (= #115 #208)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    83
#207 := (= #201 -3::int)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    84
#204 := [rewrite]: #207
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    85
#522 := [monotonicity #204]: #187
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    86
#518 := [trans #522 #181]: #311
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    87
#525 := [monotonicity #518]: #193
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    88
#523 := [trans #525 #527]: #528
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    89
#179 := [monotonicity #523]: #519
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    90
#521 := [trans #179 #520]: #180
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    91
#205 := (iff #114 #194)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    92
#206 := [rewrite]: #205
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    93
#168 := [monotonicity #206 #521]: #505
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    94
#507 := [trans #168 #170]: #171
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    95
#512 := [monotonicity #507]: #506
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    96
#515 := [trans #512 #513]: #506
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    97
#511 := [quant-inst]: #510
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    98
#155 := [mp #511 #515]: #509
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
    99
#156 := [unit-resolution #155 #536]: #194
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   100
#514 := [monotonicity #156]: #516
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   101
#517 := [symm #514]: #17
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   102
#18 := (not #17)
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   103
#35 := [asserted]: #18
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   104
[unit-resolution #35 #517]: false
39f73a59e855 added proof reconstructon for Z3,
boehmes
parents:
diff changeset
   105
unsat