src/HOL/SMT/Examples/cert/z3_linarith_18.proof
author haftmann
Tue, 08 Dec 2009 13:40:57 +0100
changeset 34030 829eb528b226
parent 33446 153a27370a42
permissions -rw-r--r--
resorted code equations from "old" number theory version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33446
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
     1
#2 := false
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
     2
#55 := 0::int
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
     3
#7 := 2::int
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
     4
decl uf_1 :: int
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
     5
#4 := uf_1
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
     6
#8 := (mod uf_1 2::int)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
     7
#9 := (* 2::int #8)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
     8
#56 := (>= #9 0::int)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
     9
#51 := (not #56)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    10
#5 := 1::int
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    11
#10 := (+ #9 1::int)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    12
#11 := (+ uf_1 #10)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    13
#6 := (+ uf_1 1::int)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    14
#12 := (<= #6 #11)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    15
#13 := (not #12)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    16
#58 := (iff #13 #51)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    17
#39 := (+ uf_1 #9)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    18
#40 := (+ 1::int #39)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    19
#30 := (+ 1::int uf_1)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    20
#45 := (<= #30 #40)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    21
#48 := (not #45)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    22
#52 := (iff #48 #51)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    23
#53 := (iff #45 #56)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    24
#54 := [rewrite]: #53
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    25
#57 := [monotonicity #54]: #52
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    26
#49 := (iff #13 #48)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    27
#46 := (iff #12 #45)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    28
#43 := (= #11 #40)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    29
#33 := (+ 1::int #9)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    30
#36 := (+ uf_1 #33)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    31
#41 := (= #36 #40)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    32
#42 := [rewrite]: #41
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    33
#37 := (= #11 #36)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    34
#34 := (= #10 #33)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    35
#35 := [rewrite]: #34
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    36
#38 := [monotonicity #35]: #37
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    37
#44 := [trans #38 #42]: #43
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    38
#31 := (= #6 #30)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    39
#32 := [rewrite]: #31
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    40
#47 := [monotonicity #32 #44]: #46
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    41
#50 := [monotonicity #47]: #49
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    42
#59 := [trans #50 #57]: #58
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    43
#29 := [asserted]: #13
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    44
#60 := [mp #29 #59]: #51
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    45
#107 := (>= #8 0::int)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    46
#1 := true
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    47
#28 := [true-axiom]: true
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    48
#135 := (or false #107)
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    49
#136 := [th-lemma]: #135
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    50
#137 := [unit-resolution #136 #28]: #107
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    51
[th-lemma #137 #60]: false
153a27370a42 handle let expressions inside terms by unfolding (instead of raising an exception),
boehmes
parents:
diff changeset
    52
unsat