| author | boehmes |
| Tue, 27 Mar 2012 17:11:02 +0200 | |
| changeset 47155 | ade3fc826af3 |
| parent 46787 | 3d3d8f8929a7 |
| permissions | -rw-r--r-- |
| 15647 | 1 |
(* AUTOMATICALLY GENERATED, DO NOT EDIT! *) |
2 |
||
| 17566 | 3 |
theory HOL4Real imports HOL4Base begin |
| 14516 | 4 |
|
|
46787
3d3d8f8929a7
file system structure separating HOL4 and HOL Light concerns
haftmann
parents:
46780
diff
changeset
|
5 |
setup_theory "~~/src/HOL/Import/HOL4/Generated" realax |
| 14516 | 6 |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7 |
lemma HREAL_RDISTRIB: "hreal_mul (hreal_add x y) z = hreal_add (hreal_mul x z) (hreal_mul y z)" |
| 14516 | 8 |
by (import realax HREAL_RDISTRIB) |
9 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
10 |
lemma HREAL_EQ_ADDL: "x ~= hreal_add x y" |
| 14516 | 11 |
by (import realax HREAL_EQ_ADDL) |
12 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
13 |
lemma HREAL_EQ_LADD: "(hreal_add x y = hreal_add x z) = (y = z)" |
| 14516 | 14 |
by (import realax HREAL_EQ_LADD) |
15 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
16 |
lemma HREAL_LT_REFL: "~ hreal_lt x x" |
| 14516 | 17 |
by (import realax HREAL_LT_REFL) |
18 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
19 |
lemma HREAL_LT_ADDL: "hreal_lt x (hreal_add x y)" |
| 14516 | 20 |
by (import realax HREAL_LT_ADDL) |
21 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
22 |
lemma HREAL_LT_NE: "hreal_lt x y ==> x ~= y" |
| 14516 | 23 |
by (import realax HREAL_LT_NE) |
24 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
25 |
lemma HREAL_LT_ADDR: "~ hreal_lt (hreal_add x y) x" |
| 14516 | 26 |
by (import realax HREAL_LT_ADDR) |
27 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
28 |
lemma HREAL_LT_GT: "hreal_lt x y ==> ~ hreal_lt y x" |
| 14516 | 29 |
by (import realax HREAL_LT_GT) |
30 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
31 |
lemma HREAL_LT_ADD2: "hreal_lt x1 y1 & hreal_lt x2 y2 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
32 |
==> hreal_lt (hreal_add x1 x2) (hreal_add y1 y2)" |
| 14516 | 33 |
by (import realax HREAL_LT_ADD2) |
34 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
35 |
lemma HREAL_LT_LADD: "hreal_lt (hreal_add x y) (hreal_add x z) = hreal_lt y z" |
| 14516 | 36 |
by (import realax HREAL_LT_LADD) |
37 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
38 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
39 |
treal_0 :: "hreal * hreal" where |
| 14516 | 40 |
"treal_0 == (hreal_1, hreal_1)" |
41 |
||
42 |
lemma treal_0: "treal_0 = (hreal_1, hreal_1)" |
|
43 |
by (import realax treal_0) |
|
44 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
45 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
46 |
treal_1 :: "hreal * hreal" where |
| 14516 | 47 |
"treal_1 == (hreal_add hreal_1 hreal_1, hreal_1)" |
48 |
||
49 |
lemma treal_1: "treal_1 = (hreal_add hreal_1 hreal_1, hreal_1)" |
|
50 |
by (import realax treal_1) |
|
51 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
52 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
53 |
treal_neg :: "hreal * hreal => hreal * hreal" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
54 |
"treal_neg == %(x, y). (y, x)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
55 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
56 |
lemma treal_neg: "treal_neg (x, y) = (y, x)" |
| 14516 | 57 |
by (import realax treal_neg) |
58 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
59 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
60 |
treal_add :: "hreal * hreal => hreal * hreal => hreal * hreal" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
61 |
"treal_add == %(x1, y1) (x2, y2). (hreal_add x1 x2, hreal_add y1 y2)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
62 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
63 |
lemma treal_add: "treal_add (x1, y1) (x2, y2) = (hreal_add x1 x2, hreal_add y1 y2)" |
| 14516 | 64 |
by (import realax treal_add) |
65 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
66 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
67 |
treal_mul :: "hreal * hreal => hreal * hreal => hreal * hreal" where |
| 14516 | 68 |
"treal_mul == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
69 |
%(x1, y1) (x2, y2). |
| 14516 | 70 |
(hreal_add (hreal_mul x1 x2) (hreal_mul y1 y2), |
71 |
hreal_add (hreal_mul x1 y2) (hreal_mul y1 x2))" |
|
72 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
73 |
lemma treal_mul: "treal_mul (x1, y1) (x2, y2) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
74 |
(hreal_add (hreal_mul x1 x2) (hreal_mul y1 y2), |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
75 |
hreal_add (hreal_mul x1 y2) (hreal_mul y1 x2))" |
| 14516 | 76 |
by (import realax treal_mul) |
77 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
78 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
79 |
treal_lt :: "hreal * hreal => hreal * hreal => bool" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
80 |
"treal_lt == %(x1, y1) (x2, y2). hreal_lt (hreal_add x1 y2) (hreal_add x2 y1)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
81 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
82 |
lemma treal_lt: "treal_lt (x1, y1) (x2, y2) = hreal_lt (hreal_add x1 y2) (hreal_add x2 y1)" |
| 14516 | 83 |
by (import realax treal_lt) |
84 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
85 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
86 |
treal_inv :: "hreal * hreal => hreal * hreal" where |
| 14516 | 87 |
"treal_inv == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
88 |
%(x, y). |
| 14516 | 89 |
if x = y then treal_0 |
90 |
else if hreal_lt y x |
|
91 |
then (hreal_add (hreal_inv (hreal_sub x y)) hreal_1, hreal_1) |
|
92 |
else (hreal_1, hreal_add (hreal_inv (hreal_sub y x)) hreal_1)" |
|
93 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
94 |
lemma treal_inv: "treal_inv (x, y) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
95 |
(if x = y then treal_0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
96 |
else if hreal_lt y x |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
97 |
then (hreal_add (hreal_inv (hreal_sub x y)) hreal_1, hreal_1) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
98 |
else (hreal_1, hreal_add (hreal_inv (hreal_sub y x)) hreal_1))" |
| 14516 | 99 |
by (import realax treal_inv) |
100 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
101 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
102 |
treal_eq :: "hreal * hreal => hreal * hreal => bool" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
103 |
"treal_eq == %(x1, y1) (x2, y2). hreal_add x1 y2 = hreal_add x2 y1" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
104 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
105 |
lemma treal_eq: "treal_eq (x1, y1) (x2, y2) = (hreal_add x1 y2 = hreal_add x2 y1)" |
| 14516 | 106 |
by (import realax treal_eq) |
107 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
108 |
lemma TREAL_EQ_REFL: "treal_eq x x" |
| 14516 | 109 |
by (import realax TREAL_EQ_REFL) |
110 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
111 |
lemma TREAL_EQ_SYM: "treal_eq x y = treal_eq y x" |
| 14516 | 112 |
by (import realax TREAL_EQ_SYM) |
113 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
114 |
lemma TREAL_EQ_TRANS: "treal_eq x y & treal_eq y z ==> treal_eq x z" |
| 14516 | 115 |
by (import realax TREAL_EQ_TRANS) |
116 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
117 |
lemma TREAL_EQ_EQUIV: "treal_eq p q = (treal_eq p = treal_eq q)" |
| 14516 | 118 |
by (import realax TREAL_EQ_EQUIV) |
119 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
120 |
lemma TREAL_EQ_AP: "p = q ==> treal_eq p q" |
| 14516 | 121 |
by (import realax TREAL_EQ_AP) |
122 |
||
123 |
lemma TREAL_10: "~ treal_eq treal_1 treal_0" |
|
124 |
by (import realax TREAL_10) |
|
125 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
126 |
lemma TREAL_ADD_SYM: "treal_add x y = treal_add y x" |
| 14516 | 127 |
by (import realax TREAL_ADD_SYM) |
128 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
129 |
lemma TREAL_MUL_SYM: "treal_mul x y = treal_mul y x" |
| 14516 | 130 |
by (import realax TREAL_MUL_SYM) |
131 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
132 |
lemma TREAL_ADD_ASSOC: "treal_add x (treal_add y z) = treal_add (treal_add x y) z" |
| 14516 | 133 |
by (import realax TREAL_ADD_ASSOC) |
134 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
135 |
lemma TREAL_MUL_ASSOC: "treal_mul x (treal_mul y z) = treal_mul (treal_mul x y) z" |
| 14516 | 136 |
by (import realax TREAL_MUL_ASSOC) |
137 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
138 |
lemma TREAL_LDISTRIB: "treal_mul x (treal_add y z) = treal_add (treal_mul x y) (treal_mul x z)" |
| 14516 | 139 |
by (import realax TREAL_LDISTRIB) |
140 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
141 |
lemma TREAL_ADD_LID: "treal_eq (treal_add treal_0 x) x" |
| 14516 | 142 |
by (import realax TREAL_ADD_LID) |
143 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
144 |
lemma TREAL_MUL_LID: "treal_eq (treal_mul treal_1 x) x" |
| 14516 | 145 |
by (import realax TREAL_MUL_LID) |
146 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
147 |
lemma TREAL_ADD_LINV: "treal_eq (treal_add (treal_neg x) x) treal_0" |
| 14516 | 148 |
by (import realax TREAL_ADD_LINV) |
149 |
||
150 |
lemma TREAL_INV_0: "treal_eq (treal_inv treal_0) treal_0" |
|
151 |
by (import realax TREAL_INV_0) |
|
152 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
153 |
lemma TREAL_MUL_LINV: "~ treal_eq x treal_0 ==> treal_eq (treal_mul (treal_inv x) x) treal_1" |
| 14516 | 154 |
by (import realax TREAL_MUL_LINV) |
155 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
156 |
lemma TREAL_LT_TOTAL: "treal_eq x y | treal_lt x y | treal_lt y x" |
| 14516 | 157 |
by (import realax TREAL_LT_TOTAL) |
158 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
159 |
lemma TREAL_LT_REFL: "~ treal_lt x x" |
| 14516 | 160 |
by (import realax TREAL_LT_REFL) |
161 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
162 |
lemma TREAL_LT_TRANS: "treal_lt x y & treal_lt y z ==> treal_lt x z" |
| 14516 | 163 |
by (import realax TREAL_LT_TRANS) |
164 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
165 |
lemma TREAL_LT_ADD: "treal_lt y z ==> treal_lt (treal_add x y) (treal_add x z)" |
| 14516 | 166 |
by (import realax TREAL_LT_ADD) |
167 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
168 |
lemma TREAL_LT_MUL: "treal_lt treal_0 x & treal_lt treal_0 y ==> treal_lt treal_0 (treal_mul x y)" |
| 14516 | 169 |
by (import realax TREAL_LT_MUL) |
170 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
171 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
172 |
treal_of_hreal :: "hreal => hreal * hreal" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
173 |
"treal_of_hreal == %x. (hreal_add x hreal_1, hreal_1)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
174 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
175 |
lemma treal_of_hreal: "treal_of_hreal x = (hreal_add x hreal_1, hreal_1)" |
| 14516 | 176 |
by (import realax treal_of_hreal) |
177 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
178 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
179 |
hreal_of_treal :: "hreal * hreal => hreal" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
180 |
"hreal_of_treal == %(x, y). SOME d. x = hreal_add y d" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
181 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
182 |
lemma hreal_of_treal: "hreal_of_treal (x, y) = (SOME d. x = hreal_add y d)" |
| 14516 | 183 |
by (import realax hreal_of_treal) |
184 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
185 |
lemma TREAL_BIJ: "(ALL h. hreal_of_treal (treal_of_hreal h) = h) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
186 |
(ALL r. treal_lt treal_0 r = treal_eq (treal_of_hreal (hreal_of_treal r)) r)" |
| 14516 | 187 |
by (import realax TREAL_BIJ) |
188 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
189 |
lemma TREAL_ISO: "hreal_lt h i ==> treal_lt (treal_of_hreal h) (treal_of_hreal i)" |
| 14516 | 190 |
by (import realax TREAL_ISO) |
191 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
192 |
lemma TREAL_BIJ_WELLDEF: "treal_eq h i ==> hreal_of_treal h = hreal_of_treal i" |
| 14516 | 193 |
by (import realax TREAL_BIJ_WELLDEF) |
194 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
195 |
lemma TREAL_NEG_WELLDEF: "treal_eq x1 x2 ==> treal_eq (treal_neg x1) (treal_neg x2)" |
| 14516 | 196 |
by (import realax TREAL_NEG_WELLDEF) |
197 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
198 |
lemma TREAL_ADD_WELLDEFR: "treal_eq x1 x2 ==> treal_eq (treal_add x1 y) (treal_add x2 y)" |
| 14516 | 199 |
by (import realax TREAL_ADD_WELLDEFR) |
200 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
201 |
lemma TREAL_ADD_WELLDEF: "treal_eq x1 x2 & treal_eq y1 y2 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
202 |
==> treal_eq (treal_add x1 y1) (treal_add x2 y2)" |
| 14516 | 203 |
by (import realax TREAL_ADD_WELLDEF) |
204 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
205 |
lemma TREAL_MUL_WELLDEFR: "treal_eq x1 x2 ==> treal_eq (treal_mul x1 y) (treal_mul x2 y)" |
| 14516 | 206 |
by (import realax TREAL_MUL_WELLDEFR) |
207 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
208 |
lemma TREAL_MUL_WELLDEF: "treal_eq x1 x2 & treal_eq y1 y2 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
209 |
==> treal_eq (treal_mul x1 y1) (treal_mul x2 y2)" |
| 14516 | 210 |
by (import realax TREAL_MUL_WELLDEF) |
211 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
212 |
lemma TREAL_LT_WELLDEFR: "treal_eq x1 x2 ==> treal_lt x1 y = treal_lt x2 y" |
| 14516 | 213 |
by (import realax TREAL_LT_WELLDEFR) |
214 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
215 |
lemma TREAL_LT_WELLDEFL: "treal_eq y1 y2 ==> treal_lt x y1 = treal_lt x y2" |
| 14516 | 216 |
by (import realax TREAL_LT_WELLDEFL) |
217 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
218 |
lemma TREAL_LT_WELLDEF: "treal_eq x1 x2 & treal_eq y1 y2 ==> treal_lt x1 y1 = treal_lt x2 y2" |
| 14516 | 219 |
by (import realax TREAL_LT_WELLDEF) |
220 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
221 |
lemma TREAL_INV_WELLDEF: "treal_eq x1 x2 ==> treal_eq (treal_inv x1) (treal_inv x2)" |
| 14516 | 222 |
by (import realax TREAL_INV_WELLDEF) |
223 |
||
224 |
;end_setup |
|
225 |
||
|
46787
3d3d8f8929a7
file system structure separating HOL4 and HOL Light concerns
haftmann
parents:
46780
diff
changeset
|
226 |
setup_theory "~~/src/HOL/Import/HOL4/Generated" real |
| 14516 | 227 |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
228 |
lemma REAL_0: "(0::real) = (0::real)" |
| 14516 | 229 |
by (import real REAL_0) |
230 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
231 |
lemma REAL_1: "(1::real) = (1::real)" |
| 14516 | 232 |
by (import real REAL_1) |
233 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
234 |
lemma REAL_ADD_LID_UNIQ: "((x::real) + (y::real) = y) = (x = (0::real))" |
| 14516 | 235 |
by (import real REAL_ADD_LID_UNIQ) |
236 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
237 |
lemma REAL_ADD_RID_UNIQ: "((x::real) + (y::real) = x) = (y = (0::real))" |
| 14516 | 238 |
by (import real REAL_ADD_RID_UNIQ) |
239 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
240 |
lemma REAL_LT_ANTISYM: "~ ((x::real) < (y::real) & y < x)" |
| 14516 | 241 |
by (import real REAL_LT_ANTISYM) |
242 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
243 |
lemma REAL_LTE_TOTAL: "(x::real) < (y::real) | y <= x" |
| 14516 | 244 |
by (import real REAL_LTE_TOTAL) |
245 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
246 |
lemma REAL_LET_ANTISYM: "~ ((x::real) < (y::real) & y <= x)" |
| 14516 | 247 |
by (import real REAL_LET_ANTISYM) |
248 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
249 |
lemma REAL_LTE_ANTSYM: "~ ((x::real) <= (y::real) & y < x)" |
| 14516 | 250 |
by (import real REAL_LTE_ANTSYM) |
251 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
252 |
lemma REAL_LT_NEGTOTAL: "(x::real) = (0::real) | (0::real) < x | (0::real) < - x" |
| 14516 | 253 |
by (import real REAL_LT_NEGTOTAL) |
254 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
255 |
lemma REAL_LE_NEGTOTAL: "(0::real) <= (x::real) | (0::real) <= - x" |
| 14516 | 256 |
by (import real REAL_LE_NEGTOTAL) |
257 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
258 |
lemma REAL_LT_ADDNEG: "((y::real) < (x::real) + - (z::real)) = (y + z < x)" |
| 14516 | 259 |
by (import real REAL_LT_ADDNEG) |
260 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
261 |
lemma REAL_LT_ADDNEG2: "((x::real) + - (y::real) < (z::real)) = (x < z + y)" |
| 14516 | 262 |
by (import real REAL_LT_ADDNEG2) |
263 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
264 |
lemma REAL_LT_ADD1: "(x::real) <= (y::real) ==> x < y + (1::real)" |
| 14516 | 265 |
by (import real REAL_LT_ADD1) |
266 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
267 |
lemma REAL_SUB_ADD2: "(y::real) + ((x::real) - y) = x" |
| 14796 | 268 |
by (import real REAL_SUB_ADD2) |
269 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
270 |
lemma REAL_SUB_LT: "((0::real) < (x::real) - (y::real)) = (y < x)" |
| 15647 | 271 |
by (import real REAL_SUB_LT) |
272 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
273 |
lemma REAL_SUB_LE: "((0::real) <= (x::real) - (y::real)) = (y <= x)" |
| 15647 | 274 |
by (import real REAL_SUB_LE) |
275 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
276 |
lemma REAL_ADD_SUB: "(x::real) + (y::real) - x = y" |
| 14796 | 277 |
by (import real REAL_ADD_SUB) |
| 14516 | 278 |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
279 |
lemma REAL_NEG_EQ: "(- (x::real) = (y::real)) = (x = - y)" |
| 14516 | 280 |
by (import real REAL_NEG_EQ) |
281 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
282 |
lemma REAL_LT_LMUL_0: "(0::real) < (x::real) ==> ((0::real) < x * (y::real)) = ((0::real) < y)" |
| 14516 | 283 |
by (import real REAL_LT_LMUL_0) |
284 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
285 |
lemma REAL_LT_RMUL_0: "(0::real) < (y::real) ==> ((0::real) < (x::real) * y) = ((0::real) < x)" |
| 14516 | 286 |
by (import real REAL_LT_RMUL_0) |
287 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
288 |
lemma REAL_LINV_UNIQ: "(x::real) * (y::real) = (1::real) ==> x = inverse y" |
| 14516 | 289 |
by (import real REAL_LINV_UNIQ) |
290 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
291 |
lemma REAL_LE_INV: "(0::real) <= (x::real) ==> (0::real) <= inverse x" |
| 14516 | 292 |
by (import real REAL_LE_INV) |
293 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
294 |
lemma REAL_LE_ADDR: "((x::real) <= x + (y::real)) = ((0::real) <= y)" |
| 14516 | 295 |
by (import real REAL_LE_ADDR) |
296 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
297 |
lemma REAL_LE_ADDL: "((y::real) <= (x::real) + y) = ((0::real) <= x)" |
| 14516 | 298 |
by (import real REAL_LE_ADDL) |
299 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
300 |
lemma REAL_LT_ADDR: "((x::real) < x + (y::real)) = ((0::real) < y)" |
| 14516 | 301 |
by (import real REAL_LT_ADDR) |
302 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
303 |
lemma REAL_LT_ADDL: "((y::real) < (x::real) + y) = ((0::real) < x)" |
| 14516 | 304 |
by (import real REAL_LT_ADDL) |
305 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
306 |
lemma REAL_LT_NZ: "(real (n::nat) ~= (0::real)) = ((0::real) < real n)" |
| 14516 | 307 |
by (import real REAL_LT_NZ) |
308 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
309 |
lemma REAL_NZ_IMP_LT: "(n::nat) ~= (0::nat) ==> (0::real) < real n" |
| 14516 | 310 |
by (import real REAL_NZ_IMP_LT) |
311 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
312 |
lemma REAL_LT_RDIV_0: "(0::real) < (z::real) ==> ((0::real) < (y::real) / z) = ((0::real) < y)" |
| 14516 | 313 |
by (import real REAL_LT_RDIV_0) |
314 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
315 |
lemma REAL_LT_RDIV: "(0::real) < (z::real) ==> ((x::real) / z < (y::real) / z) = (x < y)" |
| 14516 | 316 |
by (import real REAL_LT_RDIV) |
317 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
318 |
lemma REAL_LT_FRACTION_0: "(n::nat) ~= (0::nat) ==> ((0::real) < (d::real) / real n) = ((0::real) < d)" |
| 14516 | 319 |
by (import real REAL_LT_FRACTION_0) |
320 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
321 |
lemma REAL_LT_MULTIPLE: "(1::nat) < (x::nat) ==> ((xa::real) < real x * xa) = ((0::real) < xa)" |
| 14516 | 322 |
by (import real REAL_LT_MULTIPLE) |
323 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
324 |
lemma REAL_LT_FRACTION: "(1::nat) < (n::nat) ==> ((d::real) / real n < d) = ((0::real) < d)" |
| 14516 | 325 |
by (import real REAL_LT_FRACTION) |
326 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
327 |
lemma REAL_LT_HALF2: "((d::real) / (2::real) < d) = ((0::real) < d)" |
| 14516 | 328 |
by (import real REAL_LT_HALF2) |
329 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
330 |
lemma REAL_DIV_LMUL: "(y::real) ~= (0::real) ==> y * ((x::real) / y) = x" |
| 14516 | 331 |
by (import real REAL_DIV_LMUL) |
332 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
333 |
lemma REAL_DIV_RMUL: "(y::real) ~= (0::real) ==> (x::real) / y * y = x" |
| 14516 | 334 |
by (import real REAL_DIV_RMUL) |
335 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
336 |
lemma REAL_DOWN: "(0::real) < (x::real) ==> EX xa>0::real. xa < x" |
| 14516 | 337 |
by (import real REAL_DOWN) |
338 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
339 |
lemma REAL_SUB_SUB: "(x::real) - (y::real) - x = - y" |
| 14516 | 340 |
by (import real REAL_SUB_SUB) |
341 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
342 |
lemma REAL_SUB_LNEG: "- (x::real) - (y::real) = - (x + y)" |
| 14516 | 343 |
by (import real REAL_SUB_LNEG) |
344 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
345 |
lemma REAL_SUB_NEG2: "- (x::real) - - (y::real) = y - x" |
| 14516 | 346 |
by (import real REAL_SUB_NEG2) |
347 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
348 |
lemma REAL_SUB_TRIANGLE: "(a::real) - (b::real) + (b - (c::real)) = a - c" |
| 14516 | 349 |
by (import real REAL_SUB_TRIANGLE) |
350 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
351 |
lemma REAL_INV_MUL: "(x::real) ~= (0::real) & (y::real) ~= (0::real) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
352 |
==> inverse (x * y) = inverse x * inverse y" |
| 14516 | 353 |
by (import real REAL_INV_MUL) |
354 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
355 |
lemma REAL_SUB_INV2: "(x::real) ~= (0::real) & (y::real) ~= (0::real) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
356 |
==> inverse x - inverse y = (y - x) / (x * y)" |
| 14516 | 357 |
by (import real REAL_SUB_INV2) |
358 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
359 |
lemma REAL_SUB_SUB2: "(x::real) - (x - (y::real)) = y" |
| 14516 | 360 |
by (import real REAL_SUB_SUB2) |
361 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
362 |
lemma REAL_ADD_SUB2: "(x::real) - (x + (y::real)) = - y" |
| 14516 | 363 |
by (import real REAL_ADD_SUB2) |
364 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
365 |
lemma REAL_LE_DIV: "(0::real) <= (x::real) & (0::real) <= (xa::real) ==> (0::real) <= x / xa" |
| 14516 | 366 |
by (import real REAL_LE_DIV) |
367 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
368 |
lemma REAL_LT_1: "(0::real) <= (x::real) & x < (y::real) ==> x / y < (1::real)" |
| 14516 | 369 |
by (import real REAL_LT_1) |
370 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
371 |
lemma REAL_POS_NZ: "(0::real) < (x::real) ==> x ~= (0::real)" |
| 14516 | 372 |
by (import real REAL_POS_NZ) |
373 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
374 |
lemma REAL_EQ_RMUL_IMP: "(z::real) ~= (0::real) & (x::real) * z = (y::real) * z ==> x = y" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
375 |
by (import real REAL_EQ_RMUL_IMP) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
376 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
377 |
lemma REAL_EQ_LMUL_IMP: "(x::real) ~= (0::real) & x * (xa::real) = x * (xb::real) ==> xa = xb" |
| 14516 | 378 |
by (import real REAL_EQ_LMUL_IMP) |
379 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
380 |
lemma REAL_FACT_NZ: "real (FACT n) ~= 0" |
| 14516 | 381 |
by (import real REAL_FACT_NZ) |
382 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
383 |
lemma REAL_POASQ: "((0::real) < (x::real) * x) = (x ~= (0::real))" |
| 14516 | 384 |
by (import real REAL_POASQ) |
385 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
386 |
lemma REAL_DIV_MUL2: "(x::real) ~= (0::real) & (z::real) ~= (0::real) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
387 |
==> (y::real) / z = x * y / (x * z)" |
| 17188 | 388 |
by (import real REAL_DIV_MUL2) |
389 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
390 |
lemma REAL_MIDDLE1: "(a::real) <= (b::real) ==> a <= (a + b) / (2::real)" |
| 14516 | 391 |
by (import real REAL_MIDDLE1) |
392 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
393 |
lemma REAL_MIDDLE2: "(a::real) <= (b::real) ==> (a + b) / (2::real) <= b" |
| 14516 | 394 |
by (import real REAL_MIDDLE2) |
395 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
396 |
lemma ABS_LT_MUL2: "abs (w::real) < (y::real) & abs (x::real) < (z::real) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
397 |
==> abs (w * x) < y * z" |
| 14516 | 398 |
by (import real ABS_LT_MUL2) |
399 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
400 |
lemma ABS_REFL: "(abs (x::real) = x) = ((0::real) <= x)" |
| 14516 | 401 |
by (import real ABS_REFL) |
402 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
403 |
lemma ABS_BETWEEN: "((0::real) < (d::real) & (x::real) - d < (y::real) & y < x + d) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
404 |
(abs (y - x) < d)" |
| 14516 | 405 |
by (import real ABS_BETWEEN) |
406 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
407 |
lemma ABS_BOUND: "abs ((x::real) - (y::real)) < (d::real) ==> y < x + d" |
| 14516 | 408 |
by (import real ABS_BOUND) |
409 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
410 |
lemma ABS_STILLNZ: "abs ((x::real) - (y::real)) < abs y ==> x ~= (0::real)" |
| 14516 | 411 |
by (import real ABS_STILLNZ) |
412 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
413 |
lemma ABS_CASES: "(x::real) = (0::real) | (0::real) < abs x" |
| 14516 | 414 |
by (import real ABS_CASES) |
415 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
416 |
lemma ABS_BETWEEN1: "(x::real) < (z::real) & abs ((y::real) - x) < z - x ==> y < z" |
| 14516 | 417 |
by (import real ABS_BETWEEN1) |
418 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
419 |
lemma ABS_SIGN: "abs ((x::real) - (y::real)) < y ==> (0::real) < x" |
| 14516 | 420 |
by (import real ABS_SIGN) |
421 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
422 |
lemma ABS_SIGN2: "abs ((x::real) - (y::real)) < - y ==> x < (0::real)" |
| 14516 | 423 |
by (import real ABS_SIGN2) |
424 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
425 |
lemma ABS_CIRCLE: "abs (h::real) < abs (y::real) - abs (x::real) ==> abs (x + h) < abs y" |
| 14516 | 426 |
by (import real ABS_CIRCLE) |
427 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
428 |
lemma ABS_BETWEEN2: "(x0::real) < (y0::real) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
429 |
abs ((x::real) - x0) < (y0 - x0) / (2::real) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
430 |
abs ((y::real) - y0) < (y0 - x0) / (2::real) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
431 |
==> x < y" |
| 14516 | 432 |
by (import real ABS_BETWEEN2) |
433 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
434 |
lemma POW_PLUS1: "0 < e ==> 1 + real n * e <= (1 + e) ^ n" |
| 14516 | 435 |
by (import real POW_PLUS1) |
436 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
437 |
lemma POW_M1: "abs ((- (1::real)) ^ (n::nat)) = (1::real)" |
| 14516 | 438 |
by (import real POW_M1) |
439 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
440 |
lemma REAL_LE1_POW2: "(1::real) <= (x::real) ==> (1::real) <= x ^ (2::nat)" |
| 14516 | 441 |
by (import real REAL_LE1_POW2) |
442 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
443 |
lemma REAL_LT1_POW2: "(1::real) < (x::real) ==> (1::real) < x ^ (2::nat)" |
| 14516 | 444 |
by (import real REAL_LT1_POW2) |
445 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
446 |
lemma POW_POS_LT: "(0::real) < (x::real) ==> (0::real) < x ^ Suc (n::nat)" |
| 14516 | 447 |
by (import real POW_POS_LT) |
448 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
449 |
lemma POW_LT: "(0::real) <= (x::real) & x < (y::real) ==> x ^ Suc (n::nat) < y ^ Suc n" |
| 14516 | 450 |
by (import real POW_LT) |
451 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
452 |
lemma POW_ZERO: "(x::real) ^ (n::nat) = (0::real) ==> x = (0::real)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
453 |
by (import real POW_ZERO) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
454 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
455 |
lemma POW_ZERO_EQ: "((x::real) ^ Suc (n::nat) = (0::real)) = (x = (0::real))" |
| 14516 | 456 |
by (import real POW_ZERO_EQ) |
457 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
458 |
lemma REAL_POW_LT2: "(n::nat) ~= (0::nat) & (0::real) <= (x::real) & x < (y::real) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
459 |
==> x ^ n < y ^ n" |
| 14516 | 460 |
by (import real REAL_POW_LT2) |
461 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
462 |
lemma REAL_POW_MONO_LT: "(1::real) < (x::real) & (m::nat) < (n::nat) ==> x ^ m < x ^ n" |
| 17188 | 463 |
by (import real REAL_POW_MONO_LT) |
464 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
465 |
lemma REAL_SUP_SOMEPOS: "(EX x::real. (P::real => bool) x & (0::real) < x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
466 |
(EX z::real. ALL x::real. P x --> x < z) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
467 |
==> EX s::real. ALL y::real. (EX x::real. P x & y < x) = (y < s)" |
| 14516 | 468 |
by (import real REAL_SUP_SOMEPOS) |
469 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
470 |
lemma SUP_LEMMA1: "(!!y::real. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
471 |
(EX x::real. (P::real => bool) (x + (d::real)) & y < x) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
472 |
(y < (s::real))) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
473 |
==> (EX x::real. P x & (y::real) < x) = (y < s + d)" |
| 14516 | 474 |
by (import real SUP_LEMMA1) |
475 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
476 |
lemma SUP_LEMMA2: "Ex (P::real => bool) ==> EX (d::real) x::real. P (x + d) & (0::real) < x" |
| 14516 | 477 |
by (import real SUP_LEMMA2) |
478 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
479 |
lemma SUP_LEMMA3: "EX z::real. ALL x::real. (P::real => bool) x --> x < z |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
480 |
==> EX x::real. ALL xa::real. P (xa + (d::real)) --> xa < x" |
| 14516 | 481 |
by (import real SUP_LEMMA3) |
482 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
483 |
lemma REAL_SUP_EXISTS: "Ex (P::real => bool) & (EX z::real. ALL x::real. P x --> x < z) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
484 |
==> EX x::real. ALL y::real. (EX x::real. P x & y < x) = (y < x)" |
| 14516 | 485 |
by (import real REAL_SUP_EXISTS) |
486 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
487 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
488 |
sup :: "(real => bool) => real" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
489 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
490 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
491 |
sup_def: "real.sup == %P. SOME s. ALL y. (EX x. P x & y < x) = (y < s)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
492 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
493 |
lemma sup: "real.sup P = (SOME s. ALL y. (EX x. P x & y < x) = (y < s))" |
| 14516 | 494 |
by (import real sup) |
495 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
496 |
lemma REAL_SUP: "Ex P & (EX z. ALL x. P x --> x < z) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
497 |
==> (EX x. P x & y < x) = (y < real.sup P)" |
| 14516 | 498 |
by (import real REAL_SUP) |
499 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
500 |
lemma REAL_SUP_UBOUND: "[| Ex P & (EX z. ALL x. P x --> x < z); P y |] ==> y <= real.sup P" |
| 14516 | 501 |
by (import real REAL_SUP_UBOUND) |
502 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
503 |
lemma SETOK_LE_LT: "(Ex (P::real => bool) & (EX z::real. ALL x::real. P x --> x <= z)) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
504 |
(Ex P & (EX z::real. ALL x::real. P x --> x < z))" |
| 14516 | 505 |
by (import real SETOK_LE_LT) |
506 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
507 |
lemma REAL_SUP_LE: "Ex P & (EX z. ALL x. P x --> x <= z) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
508 |
==> (EX x. P x & y < x) = (y < real.sup P)" |
| 14516 | 509 |
by (import real REAL_SUP_LE) |
510 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
511 |
lemma REAL_SUP_UBOUND_LE: "[| Ex P & (EX z. ALL x. P x --> x <= z); P y |] ==> y <= real.sup P" |
| 14516 | 512 |
by (import real REAL_SUP_UBOUND_LE) |
513 |
||
514 |
consts |
|
515 |
sumc :: "nat => nat => (nat => real) => real" |
|
516 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
517 |
specification (sumc) sumc: "(ALL n f. sumc n 0 f = 0) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
518 |
(ALL n m f. sumc n (Suc m) f = sumc n m f + f (n + m))" |
| 14516 | 519 |
by (import real sumc) |
520 |
||
| 14694 | 521 |
consts |
| 14516 | 522 |
sum :: "nat * nat => (nat => real) => real" |
| 14694 | 523 |
|
524 |
defs |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
525 |
sum_def: "real.sum == %(x, y). sumc x y" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
526 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
527 |
lemma SUM_DEF: "real.sum (m, n) f = sumc m n f" |
| 14516 | 528 |
by (import real SUM_DEF) |
529 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
530 |
lemma sum: "real.sum (xa, 0) x = 0 & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
531 |
real.sum (xa, Suc xb) x = real.sum (xa, xb) x + x (xa + xb)" |
| 14516 | 532 |
by (import real sum) |
533 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
534 |
lemma SUM_TWO: "real.sum (0, n) f + real.sum (n, p) f = real.sum (0, n + p) f" |
| 14516 | 535 |
by (import real SUM_TWO) |
536 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
537 |
lemma SUM_DIFF: "real.sum (m, n) f = real.sum (0, m + n) f - real.sum (0, m) f" |
| 14516 | 538 |
by (import real SUM_DIFF) |
539 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
540 |
lemma ABS_SUM: "abs (real.sum (m, n) f) <= real.sum (m, n) (%n. abs (f n))" |
| 14516 | 541 |
by (import real ABS_SUM) |
542 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
543 |
lemma SUM_LE: "(!!r. m <= r & r < n + m ==> f r <= g r) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
544 |
==> real.sum (m, n) f <= real.sum (m, n) g" |
| 14516 | 545 |
by (import real SUM_LE) |
546 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
547 |
lemma SUM_EQ: "(!!r. m <= r & r < n + m ==> f r = g r) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
548 |
==> real.sum (m, n) f = real.sum (m, n) g" |
| 14516 | 549 |
by (import real SUM_EQ) |
550 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
551 |
lemma SUM_POS: "(!!n. 0 <= f n) ==> 0 <= real.sum (m, n) f" |
| 14516 | 552 |
by (import real SUM_POS) |
553 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
554 |
lemma SUM_POS_GEN: "(!!n. m <= n ==> 0 <= f n) ==> 0 <= real.sum (m, n) f" |
| 14516 | 555 |
by (import real SUM_POS_GEN) |
556 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
557 |
lemma SUM_ABS: "abs (real.sum (m, x) (%m. abs (f m))) = real.sum (m, x) (%m. abs (f m))" |
| 14516 | 558 |
by (import real SUM_ABS) |
559 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
560 |
lemma SUM_ABS_LE: "abs (real.sum (m, n) f) <= real.sum (m, n) (%n. abs (f n))" |
| 14516 | 561 |
by (import real SUM_ABS_LE) |
562 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
563 |
lemma SUM_ZERO: "[| !!n. N <= n ==> f n = 0; N <= m |] ==> real.sum (m, n) f = 0" |
| 14516 | 564 |
by (import real SUM_ZERO) |
565 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
566 |
lemma SUM_ADD: "real.sum (m, n) (%n. f n + g n) = real.sum (m, n) f + real.sum (m, n) g" |
| 14516 | 567 |
by (import real SUM_ADD) |
568 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
569 |
lemma SUM_CMUL: "real.sum (m, n) (%n. c * f n) = c * real.sum (m, n) f" |
| 14516 | 570 |
by (import real SUM_CMUL) |
571 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
572 |
lemma SUM_NEG: "real.sum (n, d) (%n. - f n) = - real.sum (n, d) f" |
| 14516 | 573 |
by (import real SUM_NEG) |
574 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
575 |
lemma SUM_SUB: "real.sum (m, n) (%x. f x - g x) = real.sum (m, n) f - real.sum (m, n) g" |
| 14516 | 576 |
by (import real SUM_SUB) |
577 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
578 |
lemma SUM_SUBST: "(!!p. m <= p & p < m + n ==> f p = g p) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
579 |
==> real.sum (m, n) f = real.sum (m, n) g" |
| 14516 | 580 |
by (import real SUM_SUBST) |
581 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
582 |
lemma SUM_NSUB: "real.sum (0, n) f - real n * c = real.sum (0, n) (%p. f p - c)" |
| 14516 | 583 |
by (import real SUM_NSUB) |
584 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
585 |
lemma SUM_BOUND: "(!!p. m <= p & p < m + n ==> f p <= k) ==> real.sum (m, n) f <= real n * k" |
| 14516 | 586 |
by (import real SUM_BOUND) |
587 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
588 |
lemma SUM_GROUP: "real.sum (0, n) (%m. real.sum (m * k, k) f) = real.sum (0, n * k) f" |
| 14516 | 589 |
by (import real SUM_GROUP) |
590 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
591 |
lemma SUM_1: "real.sum (n, 1) f = f n" |
| 14516 | 592 |
by (import real SUM_1) |
593 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
594 |
lemma SUM_2: "real.sum (n, 2) f = f n + f (n + 1)" |
| 14516 | 595 |
by (import real SUM_2) |
596 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
597 |
lemma SUM_OFFSET: "real.sum (0, n) (%m. f (m + k)) = real.sum (0, n + k) f - real.sum (0, k) f" |
| 14516 | 598 |
by (import real SUM_OFFSET) |
599 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
600 |
lemma SUM_REINDEX: "real.sum (m + k, n) f = real.sum (m, n) (%r. f (r + k))" |
| 14516 | 601 |
by (import real SUM_REINDEX) |
602 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
603 |
lemma SUM_0: "real.sum (m, n) (%r. 0) = 0" |
| 14516 | 604 |
by (import real SUM_0) |
605 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
606 |
lemma SUM_PERMUTE_0: "(!!y. y < n ==> EX! x. x < n & p x = y) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
607 |
==> real.sum (0, n) (%n. f (p n)) = real.sum (0, n) f" |
| 14516 | 608 |
by (import real SUM_PERMUTE_0) |
609 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
610 |
lemma SUM_CANCEL: "real.sum (n, d) (%n. f (Suc n) - f n) = f (n + d) - f n" |
| 14516 | 611 |
by (import real SUM_CANCEL) |
612 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
613 |
lemma REAL_LE_RNEG: "((x::real) <= - (y::real)) = (x + y <= (0::real))" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
614 |
by (import real REAL_LE_RNEG) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
615 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
616 |
lemma REAL_EQ_RDIV_EQ: "(0::real) < (xb::real) ==> ((x::real) = (xa::real) / xb) = (x * xb = xa)" |
| 14516 | 617 |
by (import real REAL_EQ_RDIV_EQ) |
618 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
619 |
lemma REAL_EQ_LDIV_EQ: "(0::real) < (xb::real) ==> ((x::real) / xb = (xa::real)) = (x = xa * xb)" |
| 14516 | 620 |
by (import real REAL_EQ_LDIV_EQ) |
621 |
||
622 |
;end_setup |
|
623 |
||
|
46787
3d3d8f8929a7
file system structure separating HOL4 and HOL Light concerns
haftmann
parents:
46780
diff
changeset
|
624 |
setup_theory "~~/src/HOL/Import/HOL4/Generated" topology |
| 14516 | 625 |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
626 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
627 |
re_Union :: "(('a => bool) => bool) => 'a => bool" where
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
628 |
"re_Union == %P x. EX s. P s & s x" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
629 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
630 |
lemma re_Union: "re_Union P = (%x. EX s. P s & s x)" |
| 14516 | 631 |
by (import topology re_Union) |
632 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
633 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
634 |
re_union :: "('a => bool) => ('a => bool) => 'a => bool" where
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
635 |
"re_union == %P Q x. P x | Q x" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
636 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
637 |
lemma re_union: "re_union P Q = (%x. P x | Q x)" |
| 14516 | 638 |
by (import topology re_union) |
639 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
640 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
641 |
re_intersect :: "('a => bool) => ('a => bool) => 'a => bool" where
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
642 |
"re_intersect == %P Q x. P x & Q x" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
643 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
644 |
lemma re_intersect: "re_intersect P Q = (%x. P x & Q x)" |
| 14516 | 645 |
by (import topology re_intersect) |
646 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
647 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
648 |
re_null :: "'a => bool" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
649 |
"re_null == %x. False" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
650 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
651 |
lemma re_null: "re_null = (%x. False)" |
| 14516 | 652 |
by (import topology re_null) |
653 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
654 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
655 |
re_universe :: "'a => bool" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
656 |
"re_universe == %x. True" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
657 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
658 |
lemma re_universe: "re_universe = (%x. True)" |
| 14516 | 659 |
by (import topology re_universe) |
660 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
661 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
662 |
re_subset :: "('a => bool) => ('a => bool) => bool" where
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
663 |
"re_subset == %P Q. ALL x. P x --> Q x" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
664 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
665 |
lemma re_subset: "re_subset P Q = (ALL x. P x --> Q x)" |
| 14516 | 666 |
by (import topology re_subset) |
667 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
668 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
669 |
re_compl :: "('a => bool) => 'a => bool" where
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
670 |
"re_compl == %P x. ~ P x" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
671 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
672 |
lemma re_compl: "re_compl P = (%x. ~ P x)" |
| 14516 | 673 |
by (import topology re_compl) |
674 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
675 |
lemma SUBSET_REFL: "re_subset P P" |
| 14516 | 676 |
by (import topology SUBSET_REFL) |
677 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
678 |
lemma COMPL_MEM: "P x = (~ re_compl P x)" |
| 14516 | 679 |
by (import topology COMPL_MEM) |
680 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
681 |
lemma SUBSET_ANTISYM: "(re_subset P Q & re_subset Q P) = (P = Q)" |
| 14516 | 682 |
by (import topology SUBSET_ANTISYM) |
683 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
684 |
lemma SUBSET_TRANS: "re_subset P Q & re_subset Q R ==> re_subset P R" |
| 14516 | 685 |
by (import topology SUBSET_TRANS) |
686 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
687 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
688 |
istopology :: "(('a => bool) => bool) => bool" where
|
| 14516 | 689 |
"istopology == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
690 |
%L. L re_null & |
| 14516 | 691 |
L re_universe & |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
692 |
(ALL a b. L a & L b --> L (re_intersect a b)) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
693 |
(ALL P. re_subset P L --> L (re_Union P))" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
694 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
695 |
lemma istopology: "istopology L = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
696 |
(L re_null & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
697 |
L re_universe & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
698 |
(ALL a b. L a & L b --> L (re_intersect a b)) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
699 |
(ALL P. re_subset P L --> L (re_Union P)))" |
| 14516 | 700 |
by (import topology istopology) |
701 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
702 |
typedef (open) ('a) topology = "Collect istopology::(('a::type => bool) => bool) set"
|
| 14516 | 703 |
by (rule typedef_helper,import topology topology_TY_DEF) |
704 |
||
705 |
lemmas topology_TY_DEF = typedef_hol2hol4 [OF type_definition_topology] |
|
706 |
||
707 |
consts |
|
| 17652 | 708 |
topology :: "(('a => bool) => bool) => 'a topology"
|
709 |
"open" :: "'a topology => ('a => bool) => bool"
|
|
| 17644 | 710 |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
711 |
specification ("open" topology) topology_tybij: "(ALL a::'a topology. topology (topology.open a) = a) &
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
712 |
(ALL r::('a => bool) => bool.
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
713 |
istopology r = (topology.open (topology r) = r))" |
| 14516 | 714 |
by (import topology topology_tybij) |
715 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
716 |
lemma TOPOLOGY: "topology.open L re_null & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
717 |
topology.open L re_universe & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
718 |
(ALL a b. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
719 |
topology.open L a & topology.open L b --> |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
720 |
topology.open L (re_intersect a b)) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
721 |
(ALL P. re_subset P (topology.open L) --> topology.open L (re_Union P))" |
| 14516 | 722 |
by (import topology TOPOLOGY) |
723 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
724 |
lemma TOPOLOGY_UNION: "re_subset xa (topology.open x) ==> topology.open x (re_Union xa)" |
| 14516 | 725 |
by (import topology TOPOLOGY_UNION) |
726 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
727 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
728 |
neigh :: "'a topology => ('a => bool) * 'a => bool" where
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
729 |
"neigh == %tp (N, x). EX P. topology.open tp P & re_subset P N & P x" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
730 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
731 |
lemma neigh: "neigh (tp::'a::type topology) (N::'a::type => bool, x::'a::type) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
732 |
(EX P::'a::type => bool. topology.open tp P & re_subset P N & P x)" |
| 14516 | 733 |
by (import topology neigh) |
734 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
735 |
lemma OPEN_OWN_NEIGH: "topology.open (tp::'a::type topology) (S'::'a::type => bool) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
736 |
S' (x::'a::type) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
737 |
==> neigh tp (S', x)" |
| 14516 | 738 |
by (import topology OPEN_OWN_NEIGH) |
739 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
740 |
lemma OPEN_UNOPEN: "topology.open (tp::'a::type topology) (S'::'a::type => bool) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
741 |
(re_Union (%P::'a::type => bool. topology.open tp P & re_subset P S') = S')" |
| 14516 | 742 |
by (import topology OPEN_UNOPEN) |
743 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
744 |
lemma OPEN_SUBOPEN: "topology.open (tp::'a::type topology) (S'::'a::type => bool) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
745 |
(ALL x::'a::type. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
746 |
S' x --> |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
747 |
(EX P::'a::type => bool. P x & topology.open tp P & re_subset P S'))" |
| 14516 | 748 |
by (import topology OPEN_SUBOPEN) |
749 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
750 |
lemma OPEN_NEIGH: "topology.open (tp::'a::type topology) (S'::'a::type => bool) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
751 |
(ALL x::'a::type. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
752 |
S' x --> (EX N::'a::type => bool. neigh tp (N, x) & re_subset N S'))" |
| 14516 | 753 |
by (import topology OPEN_NEIGH) |
754 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
755 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
756 |
closed :: "'a topology => ('a => bool) => bool"
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
757 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
758 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
759 |
closed_def: "topology.closed == %L S'. topology.open L (re_compl S')" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
760 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
761 |
lemma closed: "topology.closed L S' = topology.open L (re_compl S')" |
| 14516 | 762 |
by (import topology closed) |
763 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
764 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
765 |
limpt :: "'a topology => 'a => ('a => bool) => bool" where
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
766 |
"limpt == %tp x S'. ALL N. neigh tp (N, x) --> (EX y. x ~= y & S' y & N y)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
767 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
768 |
lemma limpt: "limpt (tp::'a::type topology) (x::'a::type) (S'::'a::type => bool) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
769 |
(ALL N::'a::type => bool. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
770 |
neigh tp (N, x) --> (EX y::'a::type. x ~= y & S' y & N y))" |
| 14516 | 771 |
by (import topology limpt) |
772 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
773 |
lemma CLOSED_LIMPT: "topology.closed (tp::'a::type topology) (S'::'a::type => bool) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
774 |
(ALL x::'a::type. limpt tp x S' --> S' x)" |
| 14516 | 775 |
by (import topology CLOSED_LIMPT) |
776 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
777 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
778 |
ismet :: "('a * 'a => real) => bool" where
|
| 14516 | 779 |
"ismet == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
780 |
%m. (ALL x y. (m (x, y) = 0) = (x = y)) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
781 |
(ALL x y z. m (y, z) <= m (x, y) + m (x, z))" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
782 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
783 |
lemma ismet: "ismet m = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
784 |
((ALL x y. (m (x, y) = 0) = (x = y)) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
785 |
(ALL x y z. m (y, z) <= m (x, y) + m (x, z)))" |
| 14516 | 786 |
by (import topology ismet) |
787 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
788 |
typedef (open) ('a) metric = "Collect ismet :: ('a::type * 'a::type => real) set"
|
| 14516 | 789 |
by (rule typedef_helper,import topology metric_TY_DEF) |
790 |
||
791 |
lemmas metric_TY_DEF = typedef_hol2hol4 [OF type_definition_metric] |
|
792 |
||
793 |
consts |
|
| 17652 | 794 |
metric :: "('a * 'a => real) => 'a metric"
|
795 |
dist :: "'a metric => 'a * 'a => real" |
|
| 17644 | 796 |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
797 |
specification (dist metric) metric_tybij: "(ALL a::'a metric. metric (topology.dist a) = a) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
798 |
(ALL r::'a * 'a => real. ismet r = (topology.dist (metric r) = r))" |
| 14516 | 799 |
by (import topology metric_tybij) |
800 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
801 |
lemma METRIC_ISMET: "ismet (topology.dist m)" |
| 14516 | 802 |
by (import topology METRIC_ISMET) |
803 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
804 |
lemma METRIC_ZERO: "(topology.dist m (x, y) = 0) = (x = y)" |
| 14516 | 805 |
by (import topology METRIC_ZERO) |
806 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
807 |
lemma METRIC_SAME: "topology.dist m (x, x) = 0" |
| 14516 | 808 |
by (import topology METRIC_SAME) |
809 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
810 |
lemma METRIC_POS: "0 <= topology.dist m (x, y)" |
| 14516 | 811 |
by (import topology METRIC_POS) |
812 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
813 |
lemma METRIC_SYM: "topology.dist m (x, y) = topology.dist m (y, x)" |
| 14516 | 814 |
by (import topology METRIC_SYM) |
815 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
816 |
lemma METRIC_TRIANGLE: "topology.dist m (x, z) <= topology.dist m (x, y) + topology.dist m (y, z)" |
| 14516 | 817 |
by (import topology METRIC_TRIANGLE) |
818 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
819 |
lemma METRIC_NZ: "x ~= y ==> 0 < topology.dist m (x, y)" |
| 14516 | 820 |
by (import topology METRIC_NZ) |
821 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
822 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
823 |
mtop :: "'a metric => 'a topology" where |
| 14516 | 824 |
"mtop == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
825 |
%m. topology |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
826 |
(%S'. ALL x. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
827 |
S' x --> (EX e>0. ALL y. topology.dist m (x, y) < e --> S' y))" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
828 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
829 |
lemma mtop: "mtop m = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
830 |
topology |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
831 |
(%S'. ALL x. S' x --> (EX e>0. ALL y. topology.dist m (x, y) < e --> S' y))" |
| 14516 | 832 |
by (import topology mtop) |
833 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
834 |
lemma mtop_istopology: "istopology |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
835 |
(%S'. ALL x. S' x --> (EX e>0. ALL y. topology.dist m (x, y) < e --> S' y))" |
| 14516 | 836 |
by (import topology mtop_istopology) |
837 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
838 |
lemma MTOP_OPEN: "topology.open (mtop x) S' = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
839 |
(ALL xa. S' xa --> (EX e>0. ALL y. topology.dist x (xa, y) < e --> S' y))" |
| 14516 | 840 |
by (import topology MTOP_OPEN) |
841 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
842 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
843 |
B :: "'a metric => 'a * real => 'a => bool" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
844 |
"B == %m (x, e) y. topology.dist m (x, y) < e" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
845 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
846 |
lemma ball: "B m (x, e) = (%y. topology.dist m (x, y) < e)" |
| 14516 | 847 |
by (import topology ball) |
848 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
849 |
lemma BALL_OPEN: "0 < e ==> topology.open (mtop m) (B m (x, e))" |
| 14516 | 850 |
by (import topology BALL_OPEN) |
851 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
852 |
lemma BALL_NEIGH: "0 < e ==> neigh (mtop m) (B m (x, e), x)" |
| 14516 | 853 |
by (import topology BALL_NEIGH) |
854 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
855 |
lemma MTOP_LIMPT: "limpt (mtop m) x S' = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
856 |
(ALL e>0. EX y. x ~= y & S' y & topology.dist m (x, y) < e)" |
| 14516 | 857 |
by (import topology MTOP_LIMPT) |
858 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
859 |
lemma ISMET_R1: "ismet (%(x, y). abs (y - x))" |
| 14516 | 860 |
by (import topology ISMET_R1) |
861 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
862 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
863 |
mr1 :: "real metric" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
864 |
"mr1 == metric (%(x, y). abs (y - x))" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
865 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
866 |
lemma mr1: "mr1 = metric (%(x, y). abs (y - x))" |
| 14516 | 867 |
by (import topology mr1) |
868 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
869 |
lemma MR1_DEF: "topology.dist mr1 (x, y) = abs (y - x)" |
| 14516 | 870 |
by (import topology MR1_DEF) |
871 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
872 |
lemma MR1_ADD: "topology.dist mr1 (x, x + d) = abs d" |
| 14516 | 873 |
by (import topology MR1_ADD) |
874 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
875 |
lemma MR1_SUB: "topology.dist mr1 (x, x - d) = abs d" |
| 14516 | 876 |
by (import topology MR1_SUB) |
877 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
878 |
lemma MR1_ADD_POS: "0 <= d ==> topology.dist mr1 (x, x + d) = d" |
| 14516 | 879 |
by (import topology MR1_ADD_POS) |
880 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
881 |
lemma MR1_SUB_LE: "0 <= d ==> topology.dist mr1 (x, x - d) = d" |
| 14516 | 882 |
by (import topology MR1_SUB_LE) |
883 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
884 |
lemma MR1_ADD_LT: "0 < d ==> topology.dist mr1 (x, x + d) = d" |
| 14516 | 885 |
by (import topology MR1_ADD_LT) |
886 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
887 |
lemma MR1_SUB_LT: "0 < d ==> topology.dist mr1 (x, x - d) = d" |
| 14516 | 888 |
by (import topology MR1_SUB_LT) |
889 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
890 |
lemma MR1_BETWEEN1: "x < z & topology.dist mr1 (x, y) < z - x ==> y < z" |
| 14516 | 891 |
by (import topology MR1_BETWEEN1) |
892 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
893 |
lemma MR1_LIMPT: "limpt (mtop mr1) x re_universe" |
| 14516 | 894 |
by (import topology MR1_LIMPT) |
895 |
||
896 |
;end_setup |
|
897 |
||
|
46787
3d3d8f8929a7
file system structure separating HOL4 and HOL Light concerns
haftmann
parents:
46780
diff
changeset
|
898 |
setup_theory "~~/src/HOL/Import/HOL4/Generated" nets |
| 14516 | 899 |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
900 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
901 |
dorder :: "('a => 'a => bool) => bool" where
|
| 14516 | 902 |
"dorder == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
903 |
%g. ALL x y. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
904 |
g x x & g y y --> (EX z. g z z & (ALL w. g w z --> g w x & g w y))" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
905 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
906 |
lemma dorder: "dorder g = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
907 |
(ALL x y. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
908 |
g x x & g y y --> (EX z. g z z & (ALL w. g w z --> g w x & g w y)))" |
| 14516 | 909 |
by (import nets dorder) |
910 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
911 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
912 |
tends :: "('b => 'a) => 'a => 'a topology * ('b => 'b => bool) => bool" where
|
| 14516 | 913 |
"tends == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
914 |
%(s::'b => 'a) (l::'a) (tp::'a topology, g::'b => 'b => bool). |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
915 |
ALL N::'a => bool. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
916 |
neigh tp (N, l) --> |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
917 |
(EX n::'b. g n n & (ALL m::'b. g m n --> N (s m)))" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
918 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
919 |
lemma tends: "tends (s::'b::type => 'a::type) (l::'a::type) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
920 |
(tp::'a::type topology, g::'b::type => 'b::type => bool) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
921 |
(ALL N::'a::type => bool. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
922 |
neigh tp (N, l) --> |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
923 |
(EX n::'b::type. g n n & (ALL m::'b::type. g m n --> N (s m))))" |
| 14516 | 924 |
by (import nets tends) |
925 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
926 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
927 |
bounded :: "'a metric * ('b => 'b => bool) => ('b => 'a) => bool" where
|
| 14516 | 928 |
"bounded == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
929 |
%(m, g) f. EX k x N. g N N & (ALL n. g n N --> topology.dist m (f n, x) < k)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
930 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
931 |
lemma bounded: "bounded (m, g) f = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
932 |
(EX k x N. g N N & (ALL n. g n N --> topology.dist m (f n, x) < k))" |
| 14516 | 933 |
by (import nets bounded) |
934 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
935 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
936 |
tendsto :: "'a metric * 'a => 'a => 'a => bool" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
937 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
938 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
939 |
tendsto_def: "nets.tendsto == |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
940 |
%(m, x) y z. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
941 |
0 < topology.dist m (x, y) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
942 |
topology.dist m (x, y) <= topology.dist m (x, z)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
943 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
944 |
lemma tendsto: "nets.tendsto (m, x) y z = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
945 |
(0 < topology.dist m (x, y) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
946 |
topology.dist m (x, y) <= topology.dist m (x, z))" |
| 14516 | 947 |
by (import nets tendsto) |
948 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
949 |
lemma DORDER_LEMMA: "[| dorder g; |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
950 |
(EX n. g n n & (ALL m. g m n --> P m)) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
951 |
(EX n. g n n & (ALL m. g m n --> Q m)) |] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
952 |
==> EX n. g n n & (ALL m. g m n --> P m & Q m)" |
| 14516 | 953 |
by (import nets DORDER_LEMMA) |
954 |
||
955 |
lemma DORDER_NGE: "dorder nat_ge" |
|
956 |
by (import nets DORDER_NGE) |
|
957 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
958 |
lemma DORDER_TENDSTO: "dorder (nets.tendsto (m, x))" |
| 14516 | 959 |
by (import nets DORDER_TENDSTO) |
960 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
961 |
lemma MTOP_TENDS: "tends (x::'b => 'a) (x0::'a) (mtop (d::'a metric), g::'b => 'b => bool) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
962 |
(ALL e>0::real. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
963 |
EX n::'b. g n n & (ALL m::'b. g m n --> topology.dist d (x m, x0) < e))" |
| 14516 | 964 |
by (import nets MTOP_TENDS) |
965 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
966 |
lemma MTOP_TENDS_UNIQ: "[| dorder (g::'b => 'b => bool); |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
967 |
tends (x::'b => 'a) (x0::'a) (mtop (d::'a metric), g) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
968 |
tends x (x1::'a) (mtop d, g) |] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
969 |
==> x0 = x1" |
| 14516 | 970 |
by (import nets MTOP_TENDS_UNIQ) |
971 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
972 |
lemma SEQ_TENDS: "tends x x0 (mtop d, nat_ge) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
973 |
(ALL xa>0. EX xb. ALL xc>=xb. topology.dist d (x xc, x0) < xa)" |
| 14516 | 974 |
by (import nets SEQ_TENDS) |
975 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
976 |
lemma LIM_TENDS: "limpt (mtop m1) x0 re_universe |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
977 |
==> tends f y0 (mtop m2, nets.tendsto (m1, x0)) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
978 |
(ALL e>0. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
979 |
EX d>0. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
980 |
ALL x. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
981 |
0 < topology.dist m1 (x, x0) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
982 |
topology.dist m1 (x, x0) <= d --> |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
983 |
topology.dist m2 (f x, y0) < e)" |
| 14516 | 984 |
by (import nets LIM_TENDS) |
985 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
986 |
lemma LIM_TENDS2: "limpt (mtop m1) x0 re_universe |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
987 |
==> tends f y0 (mtop m2, nets.tendsto (m1, x0)) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
988 |
(ALL e>0. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
989 |
EX d>0. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
990 |
ALL x. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
991 |
0 < topology.dist m1 (x, x0) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
992 |
topology.dist m1 (x, x0) < d --> |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
993 |
topology.dist m2 (f x, y0) < e)" |
| 14516 | 994 |
by (import nets LIM_TENDS2) |
995 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
996 |
lemma MR1_BOUNDED: "bounded (mr1, g) f = (EX k N. g N N & (ALL n. g n N --> abs (f n) < k))" |
| 14516 | 997 |
by (import nets MR1_BOUNDED) |
998 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
999 |
lemma NET_NULL: "tends x x0 (mtop mr1, g) = tends (%n. x n - x0) 0 (mtop mr1, g)" |
| 14516 | 1000 |
by (import nets NET_NULL) |
1001 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1002 |
lemma NET_CONV_BOUNDED: "tends x x0 (mtop mr1, g) ==> bounded (mr1, g) x" |
| 14516 | 1003 |
by (import nets NET_CONV_BOUNDED) |
1004 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1005 |
lemma NET_CONV_NZ: "tends x x0 (mtop mr1, g) & x0 ~= 0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1006 |
==> EX N. g N N & (ALL n. g n N --> x n ~= 0)" |
| 14516 | 1007 |
by (import nets NET_CONV_NZ) |
1008 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1009 |
lemma NET_CONV_IBOUNDED: "tends x x0 (mtop mr1, g) & x0 ~= 0 ==> bounded (mr1, g) (%n. inverse (x n))" |
| 14516 | 1010 |
by (import nets NET_CONV_IBOUNDED) |
1011 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1012 |
lemma NET_NULL_ADD: "[| dorder g; tends x 0 (mtop mr1, g) & tends y 0 (mtop mr1, g) |] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1013 |
==> tends (%n. x n + y n) 0 (mtop mr1, g)" |
| 14516 | 1014 |
by (import nets NET_NULL_ADD) |
1015 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1016 |
lemma NET_NULL_MUL: "[| dorder g; bounded (mr1, g) x & tends y 0 (mtop mr1, g) |] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1017 |
==> tends (%n. x n * y n) 0 (mtop mr1, g)" |
| 14516 | 1018 |
by (import nets NET_NULL_MUL) |
1019 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1020 |
lemma NET_NULL_CMUL: "tends x 0 (mtop mr1, g) ==> tends (%n. k * x n) 0 (mtop mr1, g)" |
| 14516 | 1021 |
by (import nets NET_NULL_CMUL) |
1022 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1023 |
lemma NET_ADD: "[| dorder g; tends x x0 (mtop mr1, g) & tends y y0 (mtop mr1, g) |] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1024 |
==> tends (%n. x n + y n) (x0 + y0) (mtop mr1, g)" |
| 14516 | 1025 |
by (import nets NET_ADD) |
1026 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1027 |
lemma NET_NEG: "dorder g |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1028 |
==> tends x x0 (mtop mr1, g) = tends (%n. - x n) (- x0) (mtop mr1, g)" |
| 14516 | 1029 |
by (import nets NET_NEG) |
1030 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1031 |
lemma NET_SUB: "[| dorder g; tends x x0 (mtop mr1, g) & tends y y0 (mtop mr1, g) |] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1032 |
==> tends (%xa. x xa - y xa) (x0 - y0) (mtop mr1, g)" |
| 14516 | 1033 |
by (import nets NET_SUB) |
1034 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1035 |
lemma NET_MUL: "[| dorder g; tends x x0 (mtop mr1, g) & tends y y0 (mtop mr1, g) |] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1036 |
==> tends (%n. x n * y n) (x0 * y0) (mtop mr1, g)" |
| 14516 | 1037 |
by (import nets NET_MUL) |
1038 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1039 |
lemma NET_INV: "[| dorder g; tends x x0 (mtop mr1, g) & x0 ~= 0 |] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1040 |
==> tends (%n. inverse (x n)) (inverse x0) (mtop mr1, g)" |
| 14516 | 1041 |
by (import nets NET_INV) |
1042 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1043 |
lemma NET_DIV: "[| dorder g; |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1044 |
tends x x0 (mtop mr1, g) & tends y y0 (mtop mr1, g) & y0 ~= 0 |] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1045 |
==> tends (%xa. x xa / y xa) (x0 / y0) (mtop mr1, g)" |
| 14516 | 1046 |
by (import nets NET_DIV) |
1047 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1048 |
lemma NET_ABS: "tends x x0 (mtop mr1, g) ==> tends (%n. abs (x n)) (abs x0) (mtop mr1, g)" |
| 14516 | 1049 |
by (import nets NET_ABS) |
1050 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1051 |
lemma NET_LE: "[| dorder g; |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1052 |
tends x x0 (mtop mr1, g) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1053 |
tends y y0 (mtop mr1, g) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1054 |
(EX N. g N N & (ALL n. g n N --> x n <= y n)) |] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1055 |
==> x0 <= y0" |
| 14516 | 1056 |
by (import nets NET_LE) |
1057 |
||
1058 |
;end_setup |
|
1059 |
||
|
46787
3d3d8f8929a7
file system structure separating HOL4 and HOL Light concerns
haftmann
parents:
46780
diff
changeset
|
1060 |
setup_theory "~~/src/HOL/Import/HOL4/Generated" seq |
| 14516 | 1061 |
|
| 14694 | 1062 |
consts |
| 17694 | 1063 |
"hol4-->" :: "(nat => real) => real => bool" ("hol4-->")
|
| 14694 | 1064 |
|
1065 |
defs |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1066 |
"hol4-->_def": "hol4--> == %x x0. tends x x0 (mtop mr1, nat_ge)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1067 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1068 |
lemma tends_num_real: "hol4--> x x0 = tends x x0 (mtop mr1, nat_ge)" |
| 14516 | 1069 |
by (import seq tends_num_real) |
1070 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1071 |
lemma SEQ: "hol4--> x x0 = (ALL e>0. EX N. ALL n>=N. abs (x n - x0) < e)" |
| 14516 | 1072 |
by (import seq SEQ) |
1073 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1074 |
lemma SEQ_CONST: "hol4--> (%x. k) k" |
| 14516 | 1075 |
by (import seq SEQ_CONST) |
1076 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1077 |
lemma SEQ_ADD: "hol4--> x x0 & hol4--> y y0 ==> hol4--> (%n. x n + y n) (x0 + y0)" |
| 14516 | 1078 |
by (import seq SEQ_ADD) |
1079 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1080 |
lemma SEQ_MUL: "hol4--> x x0 & hol4--> y y0 ==> hol4--> (%n. x n * y n) (x0 * y0)" |
| 14516 | 1081 |
by (import seq SEQ_MUL) |
1082 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1083 |
lemma SEQ_NEG: "hol4--> x x0 = hol4--> (%n. - x n) (- x0)" |
| 14516 | 1084 |
by (import seq SEQ_NEG) |
1085 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1086 |
lemma SEQ_INV: "hol4--> x x0 & x0 ~= 0 ==> hol4--> (%n. inverse (x n)) (inverse x0)" |
| 14516 | 1087 |
by (import seq SEQ_INV) |
1088 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1089 |
lemma SEQ_SUB: "hol4--> x x0 & hol4--> y y0 ==> hol4--> (%n. x n - y n) (x0 - y0)" |
| 14516 | 1090 |
by (import seq SEQ_SUB) |
1091 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1092 |
lemma SEQ_DIV: "hol4--> x x0 & hol4--> y y0 & y0 ~= 0 ==> hol4--> (%n. x n / y n) (x0 / y0)" |
| 14516 | 1093 |
by (import seq SEQ_DIV) |
1094 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1095 |
lemma SEQ_UNIQ: "hol4--> x x1 & hol4--> x x2 ==> x1 = x2" |
| 14516 | 1096 |
by (import seq SEQ_UNIQ) |
1097 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1098 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1099 |
convergent :: "(nat => real) => bool" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1100 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1101 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1102 |
convergent_def: "seq.convergent == %f. Ex (hol4--> f)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1103 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1104 |
lemma convergent: "seq.convergent f = Ex (hol4--> f)" |
| 14516 | 1105 |
by (import seq convergent) |
1106 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1107 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1108 |
cauchy :: "(nat => real) => bool" where |
| 17694 | 1109 |
"cauchy == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1110 |
%f. ALL e>0. EX N. ALL m n. N <= m & N <= n --> abs (f m - f n) < e" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1111 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1112 |
lemma cauchy: "cauchy f = (ALL e>0. EX N. ALL m n. N <= m & N <= n --> abs (f m - f n) < e)" |
| 14516 | 1113 |
by (import seq cauchy) |
1114 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1115 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1116 |
lim :: "(nat => real) => real" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1117 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1118 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1119 |
lim_def: "seq.lim == %f. Eps (hol4--> f)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1120 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1121 |
lemma lim: "seq.lim f = Eps (hol4--> f)" |
| 14516 | 1122 |
by (import seq lim) |
1123 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1124 |
lemma SEQ_LIM: "seq.convergent f = hol4--> f (seq.lim f)" |
| 14516 | 1125 |
by (import seq SEQ_LIM) |
1126 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1127 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1128 |
subseq :: "(nat => nat) => bool" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1129 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1130 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1131 |
subseq_def: "seq.subseq == %f. ALL m n. m < n --> f m < f n" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1132 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1133 |
lemma subseq: "seq.subseq f = (ALL m n. m < n --> f m < f n)" |
| 14516 | 1134 |
by (import seq subseq) |
1135 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1136 |
lemma SUBSEQ_SUC: "seq.subseq f = (ALL n. f n < f (Suc n))" |
| 14516 | 1137 |
by (import seq SUBSEQ_SUC) |
1138 |
||
| 14694 | 1139 |
consts |
| 14516 | 1140 |
mono :: "(nat => real) => bool" |
| 14694 | 1141 |
|
1142 |
defs |
|
| 17694 | 1143 |
mono_def: "seq.mono == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1144 |
%f. (ALL m n. m <= n --> f m <= f n) | (ALL m n. m <= n --> f n <= f m)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1145 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1146 |
lemma mono: "seq.mono f = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1147 |
((ALL m n. m <= n --> f m <= f n) | (ALL m n. m <= n --> f n <= f m))" |
| 14516 | 1148 |
by (import seq mono) |
1149 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1150 |
lemma MONO_SUC: "seq.mono f = ((ALL x. f x <= f (Suc x)) | (ALL n. f (Suc n) <= f n))" |
| 14516 | 1151 |
by (import seq MONO_SUC) |
1152 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1153 |
lemma MAX_LEMMA: "EX k::real. ALL n<N::nat. abs ((s::nat => real) n) < k" |
| 14516 | 1154 |
by (import seq MAX_LEMMA) |
1155 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1156 |
lemma SEQ_BOUNDED: "bounded (mr1, nat_ge) s = (EX k. ALL n. abs (s n) < k)" |
| 14516 | 1157 |
by (import seq SEQ_BOUNDED) |
1158 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1159 |
lemma SEQ_BOUNDED_2: "(!!n. k <= f n & f n <= k') ==> bounded (mr1, nat_ge) f" |
| 14516 | 1160 |
by (import seq SEQ_BOUNDED_2) |
1161 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1162 |
lemma SEQ_CBOUNDED: "cauchy f ==> bounded (mr1, nat_ge) f" |
| 14516 | 1163 |
by (import seq SEQ_CBOUNDED) |
1164 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1165 |
lemma SEQ_ICONV: "bounded (mr1, nat_ge) f & (ALL m n. n <= m --> f n <= f m) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1166 |
==> seq.convergent f" |
| 14516 | 1167 |
by (import seq SEQ_ICONV) |
1168 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1169 |
lemma SEQ_NEG_CONV: "seq.convergent f = seq.convergent (%n. - f n)" |
| 14516 | 1170 |
by (import seq SEQ_NEG_CONV) |
1171 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1172 |
lemma SEQ_NEG_BOUNDED: "bounded (mr1, nat_ge) (%n. - f n) = bounded (mr1, nat_ge) f" |
| 14516 | 1173 |
by (import seq SEQ_NEG_BOUNDED) |
1174 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1175 |
lemma SEQ_BCONV: "bounded (mr1, nat_ge) f & seq.mono f ==> seq.convergent f" |
| 14516 | 1176 |
by (import seq SEQ_BCONV) |
1177 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1178 |
lemma SEQ_MONOSUB: "EX f. seq.subseq f & seq.mono (%n. s (f n))" |
| 14516 | 1179 |
by (import seq SEQ_MONOSUB) |
1180 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1181 |
lemma SEQ_SBOUNDED: "bounded (mr1, nat_ge) s ==> bounded (mr1, nat_ge) (%n. s (f n))" |
| 14516 | 1182 |
by (import seq SEQ_SBOUNDED) |
1183 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1184 |
lemma SEQ_SUBLE: "seq.subseq f ==> n <= f n" |
| 14516 | 1185 |
by (import seq SEQ_SUBLE) |
1186 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1187 |
lemma SEQ_DIRECT: "seq.subseq f ==> EX x>=N1. N2 <= f x" |
| 14516 | 1188 |
by (import seq SEQ_DIRECT) |
1189 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1190 |
lemma SEQ_CAUCHY: "cauchy f = seq.convergent f" |
| 14516 | 1191 |
by (import seq SEQ_CAUCHY) |
1192 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1193 |
lemma SEQ_LE: "hol4--> f l & hol4--> g m & (EX x. ALL xa>=x. f xa <= g xa) ==> l <= m" |
| 14516 | 1194 |
by (import seq SEQ_LE) |
1195 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1196 |
lemma SEQ_SUC: "hol4--> f l = hol4--> (%n. f (Suc n)) l" |
| 14516 | 1197 |
by (import seq SEQ_SUC) |
1198 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1199 |
lemma SEQ_ABS: "hol4--> (%n. abs (f n)) 0 = hol4--> f 0" |
| 14516 | 1200 |
by (import seq SEQ_ABS) |
1201 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1202 |
lemma SEQ_ABS_IMP: "hol4--> f l ==> hol4--> (%n. abs (f n)) (abs l)" |
| 14516 | 1203 |
by (import seq SEQ_ABS_IMP) |
1204 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1205 |
lemma SEQ_INV0: "(!!y. EX N. ALL n>=N. y < f n) ==> hol4--> (%n. inverse (f n)) 0" |
| 14516 | 1206 |
by (import seq SEQ_INV0) |
1207 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1208 |
lemma SEQ_POWER_ABS: "abs c < 1 ==> hol4--> (op ^ (abs c)) 0" |
| 14516 | 1209 |
by (import seq SEQ_POWER_ABS) |
1210 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1211 |
lemma SEQ_POWER: "abs c < 1 ==> hol4--> (op ^ c) 0" |
| 14516 | 1212 |
by (import seq SEQ_POWER) |
1213 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1214 |
lemma NEST_LEMMA: "(ALL n. f n <= f (Suc n)) & (ALL n. g (Suc n) <= g n) & (ALL n. f n <= g n) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1215 |
==> EX l m. |
| 17694 | 1216 |
l <= m & |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1217 |
((ALL n. f n <= l) & hol4--> f l) & (ALL n. m <= g n) & hol4--> g m" |
| 14516 | 1218 |
by (import seq NEST_LEMMA) |
1219 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1220 |
lemma NEST_LEMMA_UNIQ: "(ALL n. f n <= f (Suc n)) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1221 |
(ALL n. g (Suc n) <= g n) & (ALL n. f n <= g n) & hol4--> (%n. f n - g n) 0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1222 |
==> EX x. ((ALL n. f n <= x) & hol4--> f x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1223 |
(ALL n. x <= g n) & hol4--> g x" |
| 14516 | 1224 |
by (import seq NEST_LEMMA_UNIQ) |
1225 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1226 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1227 |
sums :: "(nat => real) => real => bool" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1228 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1229 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1230 |
sums_def: "seq.sums == %f. hol4--> (%n. real.sum (0, n) f)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1231 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1232 |
lemma sums: "seq.sums f s = hol4--> (%n. real.sum (0, n) f) s" |
| 14516 | 1233 |
by (import seq sums) |
1234 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1235 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1236 |
summable :: "(nat => real) => bool" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1237 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1238 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1239 |
summable_def: "seq.summable == %f. Ex (seq.sums f)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1240 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1241 |
lemma summable: "seq.summable f = Ex (seq.sums f)" |
| 14516 | 1242 |
by (import seq summable) |
1243 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1244 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1245 |
suminf :: "(nat => real) => real" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1246 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1247 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1248 |
suminf_def: "seq.suminf == %f. Eps (seq.sums f)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1249 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1250 |
lemma suminf: "seq.suminf f = Eps (seq.sums f)" |
| 14516 | 1251 |
by (import seq suminf) |
1252 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1253 |
lemma SUM_SUMMABLE: "seq.sums f l ==> seq.summable f" |
| 14516 | 1254 |
by (import seq SUM_SUMMABLE) |
1255 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1256 |
lemma SUMMABLE_SUM: "seq.summable f ==> seq.sums f (seq.suminf f)" |
| 14516 | 1257 |
by (import seq SUMMABLE_SUM) |
1258 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1259 |
lemma SUM_UNIQ: "seq.sums f x ==> x = seq.suminf f" |
| 14516 | 1260 |
by (import seq SUM_UNIQ) |
1261 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1262 |
lemma SER_0: "(!!m. n <= m ==> f m = 0) ==> seq.sums f (real.sum (0, n) f)" |
| 14516 | 1263 |
by (import seq SER_0) |
1264 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1265 |
lemma SER_POS_LE: "seq.summable f & (ALL m>=n. 0 <= f m) ==> real.sum (0, n) f <= seq.suminf f" |
| 14516 | 1266 |
by (import seq SER_POS_LE) |
1267 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1268 |
lemma SER_POS_LT: "seq.summable f & (ALL m>=n. 0 < f m) ==> real.sum (0, n) f < seq.suminf f" |
| 14516 | 1269 |
by (import seq SER_POS_LT) |
1270 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1271 |
lemma SER_GROUP: "seq.summable f & 0 < k |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1272 |
==> seq.sums (%n. real.sum (n * k, k) f) (seq.suminf f)" |
| 14516 | 1273 |
by (import seq SER_GROUP) |
1274 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1275 |
lemma SER_PAIR: "seq.summable f ==> seq.sums (%n. real.sum (2 * n, 2) f) (seq.suminf f)" |
| 14516 | 1276 |
by (import seq SER_PAIR) |
1277 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1278 |
lemma SER_OFFSET: "seq.summable f |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1279 |
==> seq.sums (%n. f (n + k)) (seq.suminf f - real.sum (0, k) f)" |
| 14516 | 1280 |
by (import seq SER_OFFSET) |
1281 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1282 |
lemma SER_POS_LT_PAIR: "seq.summable f & (ALL d. 0 < f (n + 2 * d) + f (n + (2 * d + 1))) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1283 |
==> real.sum (0, n) f < seq.suminf f" |
| 14516 | 1284 |
by (import seq SER_POS_LT_PAIR) |
1285 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1286 |
lemma SER_ADD: "seq.sums x x0 & seq.sums y y0 ==> seq.sums (%n. x n + y n) (x0 + y0)" |
| 14516 | 1287 |
by (import seq SER_ADD) |
1288 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1289 |
lemma SER_CMUL: "seq.sums x x0 ==> seq.sums (%n. c * x n) (c * x0)" |
| 14516 | 1290 |
by (import seq SER_CMUL) |
1291 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1292 |
lemma SER_NEG: "seq.sums x x0 ==> seq.sums (%xa. - x xa) (- x0)" |
| 14516 | 1293 |
by (import seq SER_NEG) |
1294 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1295 |
lemma SER_SUB: "seq.sums x x0 & seq.sums y y0 ==> seq.sums (%xa. x xa - y xa) (x0 - y0)" |
| 14516 | 1296 |
by (import seq SER_SUB) |
1297 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1298 |
lemma SER_CDIV: "seq.sums x x0 ==> seq.sums (%xa. x xa / c) (x0 / c)" |
| 14516 | 1299 |
by (import seq SER_CDIV) |
1300 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1301 |
lemma SER_CAUCHY: "seq.summable f = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1302 |
(ALL e>0. EX N. ALL m n. N <= m --> abs (real.sum (m, n) f) < e)" |
| 14516 | 1303 |
by (import seq SER_CAUCHY) |
1304 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1305 |
lemma SER_ZERO: "seq.summable f ==> hol4--> f 0" |
| 14516 | 1306 |
by (import seq SER_ZERO) |
1307 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1308 |
lemma SER_COMPAR: "(EX x. ALL xa>=x. abs (f xa) <= g xa) & seq.summable g ==> seq.summable f" |
| 14516 | 1309 |
by (import seq SER_COMPAR) |
1310 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1311 |
lemma SER_COMPARA: "(EX x. ALL xa>=x. abs (f xa) <= g xa) & seq.summable g |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1312 |
==> seq.summable (%k. abs (f k))" |
| 14516 | 1313 |
by (import seq SER_COMPARA) |
1314 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1315 |
lemma SER_LE: "(ALL n. f n <= g n) & seq.summable f & seq.summable g |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1316 |
==> seq.suminf f <= seq.suminf g" |
| 14516 | 1317 |
by (import seq SER_LE) |
1318 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1319 |
lemma SER_LE2: "(ALL n. abs (f n) <= g n) & seq.summable g |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1320 |
==> seq.summable f & seq.suminf f <= seq.suminf g" |
| 14516 | 1321 |
by (import seq SER_LE2) |
1322 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1323 |
lemma SER_ACONV: "seq.summable (%n. abs (f n)) ==> seq.summable f" |
| 14516 | 1324 |
by (import seq SER_ACONV) |
1325 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1326 |
lemma SER_ABS: "seq.summable (%n. abs (f n)) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1327 |
==> abs (seq.suminf f) <= seq.suminf (%n. abs (f n))" |
| 14516 | 1328 |
by (import seq SER_ABS) |
1329 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1330 |
lemma GP_FINITE: "x ~= 1 ==> real.sum (0, n) (op ^ x) = (x ^ n - 1) / (x - 1)" |
| 14516 | 1331 |
by (import seq GP_FINITE) |
1332 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1333 |
lemma GP: "abs x < 1 ==> seq.sums (op ^ x) (inverse (1 - x))" |
| 14516 | 1334 |
by (import seq GP) |
1335 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1336 |
lemma SER_RATIO: "c < 1 & (ALL n>=N. abs (f (Suc n)) <= c * abs (f n)) ==> seq.summable f" |
| 14516 | 1337 |
by (import seq SER_RATIO) |
1338 |
||
1339 |
;end_setup |
|
1340 |
||
|
46787
3d3d8f8929a7
file system structure separating HOL4 and HOL Light concerns
haftmann
parents:
46780
diff
changeset
|
1341 |
setup_theory "~~/src/HOL/Import/HOL4/Generated" lim |
| 14516 | 1342 |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1343 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1344 |
tends_real_real :: "(real => real) => real => real => bool" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1345 |
"tends_real_real == %f l x0. tends f l (mtop mr1, nets.tendsto (mr1, x0))" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1346 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1347 |
lemma tends_real_real: "tends_real_real f l x0 = tends f l (mtop mr1, nets.tendsto (mr1, x0))" |
| 14516 | 1348 |
by (import lim tends_real_real) |
1349 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1350 |
lemma LIM: "tends_real_real f y0 x0 = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1351 |
(ALL e>0. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1352 |
EX d>0. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1353 |
ALL x. 0 < abs (x - x0) & abs (x - x0) < d --> abs (f x - y0) < e)" |
| 14516 | 1354 |
by (import lim LIM) |
1355 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1356 |
lemma LIM_CONST: "tends_real_real (%x. k) k x" |
| 14516 | 1357 |
by (import lim LIM_CONST) |
1358 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1359 |
lemma LIM_ADD: "tends_real_real f l x & tends_real_real g m x |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1360 |
==> tends_real_real (%x. f x + g x) (l + m) x" |
| 14516 | 1361 |
by (import lim LIM_ADD) |
1362 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1363 |
lemma LIM_MUL: "tends_real_real f l x & tends_real_real g m x |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1364 |
==> tends_real_real (%x. f x * g x) (l * m) x" |
| 14516 | 1365 |
by (import lim LIM_MUL) |
1366 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1367 |
lemma LIM_NEG: "tends_real_real f l x = tends_real_real (%x. - f x) (- l) x" |
| 14516 | 1368 |
by (import lim LIM_NEG) |
1369 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1370 |
lemma LIM_INV: "tends_real_real f l x & l ~= 0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1371 |
==> tends_real_real (%x. inverse (f x)) (inverse l) x" |
| 14516 | 1372 |
by (import lim LIM_INV) |
1373 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1374 |
lemma LIM_SUB: "tends_real_real f l x & tends_real_real g m x |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1375 |
==> tends_real_real (%x. f x - g x) (l - m) x" |
| 14516 | 1376 |
by (import lim LIM_SUB) |
1377 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1378 |
lemma LIM_DIV: "tends_real_real f l x & tends_real_real g m x & m ~= 0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1379 |
==> tends_real_real (%x. f x / g x) (l / m) x" |
| 14516 | 1380 |
by (import lim LIM_DIV) |
1381 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1382 |
lemma LIM_NULL: "tends_real_real f l x = tends_real_real (%x. f x - l) 0 x" |
| 14516 | 1383 |
by (import lim LIM_NULL) |
1384 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1385 |
lemma LIM_X: "tends_real_real (%x. x) x0 x0" |
| 14516 | 1386 |
by (import lim LIM_X) |
1387 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1388 |
lemma LIM_UNIQ: "tends_real_real f l x & tends_real_real f m x ==> l = m" |
| 14516 | 1389 |
by (import lim LIM_UNIQ) |
1390 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1391 |
lemma LIM_EQUAL: "(!!x. x ~= x0 ==> f x = g x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1392 |
==> tends_real_real f l x0 = tends_real_real g l x0" |
| 14516 | 1393 |
by (import lim LIM_EQUAL) |
1394 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1395 |
lemma LIM_TRANSFORM: "tends_real_real (%x. f x - g x) 0 x0 & tends_real_real g l x0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1396 |
==> tends_real_real f l x0" |
| 14516 | 1397 |
by (import lim LIM_TRANSFORM) |
1398 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1399 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1400 |
diffl :: "(real => real) => real => real => bool" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1401 |
"diffl == %f l x. tends_real_real (%h. (f (x + h) - f x) / h) l 0" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1402 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1403 |
lemma diffl: "diffl f l x = tends_real_real (%h. (f (x + h) - f x) / h) l 0" |
| 14516 | 1404 |
by (import lim diffl) |
1405 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1406 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1407 |
contl :: "(real => real) => real => bool" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1408 |
"contl == %f x. tends_real_real (%h. f (x + h)) (f x) 0" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1409 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1410 |
lemma contl: "contl f x = tends_real_real (%h. f (x + h)) (f x) 0" |
| 14516 | 1411 |
by (import lim contl) |
1412 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1413 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1414 |
differentiable :: "(real => real) => real => bool" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1415 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1416 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1417 |
differentiable_def: "lim.differentiable == %f x. EX l. diffl f l x" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1418 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1419 |
lemma differentiable: "lim.differentiable f x = (EX l. diffl f l x)" |
| 14516 | 1420 |
by (import lim differentiable) |
1421 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1422 |
lemma DIFF_UNIQ: "diffl f l x & diffl f m x ==> l = m" |
| 14516 | 1423 |
by (import lim DIFF_UNIQ) |
1424 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1425 |
lemma DIFF_CONT: "diffl f l x ==> contl f x" |
| 14516 | 1426 |
by (import lim DIFF_CONT) |
1427 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1428 |
lemma CONTL_LIM: "contl f x = tends_real_real f (f x) x" |
| 14516 | 1429 |
by (import lim CONTL_LIM) |
1430 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1431 |
lemma DIFF_CARAT: "diffl f l x = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1432 |
(EX g. (ALL z. f z - f x = g z * (z - x)) & contl g x & g x = l)" |
| 14516 | 1433 |
by (import lim DIFF_CARAT) |
1434 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1435 |
lemma CONT_CONST: "contl (%x. k) x" |
| 14516 | 1436 |
by (import lim CONT_CONST) |
1437 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1438 |
lemma CONT_ADD: "contl f x & contl g x ==> contl (%x. f x + g x) x" |
| 14516 | 1439 |
by (import lim CONT_ADD) |
1440 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1441 |
lemma CONT_MUL: "contl f x & contl g x ==> contl (%x. f x * g x) x" |
| 14516 | 1442 |
by (import lim CONT_MUL) |
1443 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1444 |
lemma CONT_NEG: "contl f x ==> contl (%x. - f x) x" |
| 14516 | 1445 |
by (import lim CONT_NEG) |
1446 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1447 |
lemma CONT_INV: "contl f x & f x ~= 0 ==> contl (%x. inverse (f x)) x" |
| 14516 | 1448 |
by (import lim CONT_INV) |
1449 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1450 |
lemma CONT_SUB: "contl f x & contl g x ==> contl (%x. f x - g x) x" |
| 14516 | 1451 |
by (import lim CONT_SUB) |
1452 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1453 |
lemma CONT_DIV: "contl f x & contl g x & g x ~= 0 ==> contl (%x. f x / g x) x" |
| 14516 | 1454 |
by (import lim CONT_DIV) |
1455 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1456 |
lemma CONT_COMPOSE: "contl f x & contl g (f x) ==> contl (%x. g (f x)) x" |
| 14516 | 1457 |
by (import lim CONT_COMPOSE) |
1458 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1459 |
lemma IVT: "a <= b & (f a <= y & y <= f b) & (ALL x. a <= x & x <= b --> contl f x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1460 |
==> EX x>=a. x <= b & f x = y" |
| 14516 | 1461 |
by (import lim IVT) |
1462 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1463 |
lemma IVT2: "a <= b & (f b <= y & y <= f a) & (ALL x. a <= x & x <= b --> contl f x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1464 |
==> EX x>=a. x <= b & f x = y" |
| 14516 | 1465 |
by (import lim IVT2) |
1466 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1467 |
lemma DIFF_CONST: "diffl (%x. k) 0 x" |
| 14516 | 1468 |
by (import lim DIFF_CONST) |
1469 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1470 |
lemma DIFF_ADD: "diffl f l x & diffl g m x ==> diffl (%x. f x + g x) (l + m) x" |
| 14516 | 1471 |
by (import lim DIFF_ADD) |
1472 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1473 |
lemma DIFF_MUL: "diffl f l x & diffl g m x ==> diffl (%x. f x * g x) (l * g x + m * f x) x" |
| 14516 | 1474 |
by (import lim DIFF_MUL) |
1475 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1476 |
lemma DIFF_CMUL: "diffl f l x ==> diffl (%x. c * f x) (c * l) x" |
| 14516 | 1477 |
by (import lim DIFF_CMUL) |
1478 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1479 |
lemma DIFF_NEG: "diffl f l x ==> diffl (%x. - f x) (- l) x" |
| 14516 | 1480 |
by (import lim DIFF_NEG) |
1481 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1482 |
lemma DIFF_SUB: "diffl f l x & diffl g m x ==> diffl (%x. f x - g x) (l - m) x" |
| 14516 | 1483 |
by (import lim DIFF_SUB) |
1484 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1485 |
lemma DIFF_CHAIN: "diffl f l (g x) & diffl g m x ==> diffl (%x. f (g x)) (l * m) x" |
| 14516 | 1486 |
by (import lim DIFF_CHAIN) |
1487 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1488 |
lemma DIFF_X: "diffl (%x. x) 1 x" |
| 14516 | 1489 |
by (import lim DIFF_X) |
1490 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1491 |
lemma DIFF_POW: "diffl (%x. x ^ n) (real n * x ^ (n - 1)) x" |
| 14516 | 1492 |
by (import lim DIFF_POW) |
1493 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1494 |
lemma DIFF_XM1: "x ~= 0 ==> diffl inverse (- (inverse x ^ 2)) x" |
| 14516 | 1495 |
by (import lim DIFF_XM1) |
1496 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1497 |
lemma DIFF_INV: "diffl f l x & f x ~= 0 ==> diffl (%x. inverse (f x)) (- (l / f x ^ 2)) x" |
| 14516 | 1498 |
by (import lim DIFF_INV) |
1499 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1500 |
lemma DIFF_DIV: "diffl f l x & diffl g m x & g x ~= 0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1501 |
==> diffl (%x. f x / g x) ((l * g x - m * f x) / g x ^ 2) x" |
| 14516 | 1502 |
by (import lim DIFF_DIV) |
1503 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1504 |
lemma DIFF_SUM: "(!!r. m <= r & r < m + n ==> diffl (f r) (f' r x) x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1505 |
==> diffl (%x. real.sum (m, n) (%n. f n x)) (real.sum (m, n) (%r. f' r x)) x" |
| 14516 | 1506 |
by (import lim DIFF_SUM) |
1507 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1508 |
lemma CONT_BOUNDED: "a <= b & (ALL x. a <= x & x <= b --> contl f x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1509 |
==> EX M. ALL x. a <= x & x <= b --> f x <= M" |
| 14516 | 1510 |
by (import lim CONT_BOUNDED) |
1511 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1512 |
lemma CONT_HASSUP: "a <= b & (ALL x. a <= x & x <= b --> contl f x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1513 |
==> EX M. (ALL x. a <= x & x <= b --> f x <= M) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1514 |
(ALL N<M. EX x>=a. x <= b & N < f x)" |
| 14516 | 1515 |
by (import lim CONT_HASSUP) |
1516 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1517 |
lemma CONT_ATTAINS: "a <= b & (ALL x. a <= x & x <= b --> contl f x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1518 |
==> EX x. (ALL xa. a <= xa & xa <= b --> f xa <= x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1519 |
(EX xa>=a. xa <= b & f xa = x)" |
| 14516 | 1520 |
by (import lim CONT_ATTAINS) |
1521 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1522 |
lemma CONT_ATTAINS2: "a <= b & (ALL x. a <= x & x <= b --> contl f x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1523 |
==> EX x. (ALL xa. a <= xa & xa <= b --> x <= f xa) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1524 |
(EX xa>=a. xa <= b & f xa = x)" |
| 14516 | 1525 |
by (import lim CONT_ATTAINS2) |
1526 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1527 |
lemma CONT_ATTAINS_ALL: "a <= b & (ALL x. a <= x & x <= b --> contl f x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1528 |
==> EX x M. |
| 17694 | 1529 |
x <= M & |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1530 |
(ALL y. x <= y & y <= M --> (EX x>=a. x <= b & f x = y)) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1531 |
(ALL xa. a <= xa & xa <= b --> x <= f xa & f xa <= M)" |
| 14516 | 1532 |
by (import lim CONT_ATTAINS_ALL) |
1533 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1534 |
lemma DIFF_LINC: "diffl f l x & 0 < l ==> EX d>0. ALL h. 0 < h & h < d --> f x < f (x + h)" |
| 14516 | 1535 |
by (import lim DIFF_LINC) |
1536 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1537 |
lemma DIFF_LDEC: "diffl f l x & l < 0 ==> EX d>0. ALL h. 0 < h & h < d --> f x < f (x - h)" |
| 14516 | 1538 |
by (import lim DIFF_LDEC) |
1539 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1540 |
lemma DIFF_LMAX: "diffl f l x & (EX d>0. ALL y. abs (x - y) < d --> f y <= f x) ==> l = 0" |
| 14516 | 1541 |
by (import lim DIFF_LMAX) |
1542 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1543 |
lemma DIFF_LMIN: "diffl f l x & (EX d>0. ALL y. abs (x - y) < d --> f x <= f y) ==> l = 0" |
| 14516 | 1544 |
by (import lim DIFF_LMIN) |
1545 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1546 |
lemma DIFF_LCONST: "diffl f l x & (EX d>0. ALL y. abs (x - y) < d --> f y = f x) ==> l = 0" |
| 14516 | 1547 |
by (import lim DIFF_LCONST) |
1548 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1549 |
lemma ROLLE: "a < b & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1550 |
f a = f b & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1551 |
(ALL x. a <= x & x <= b --> contl f x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1552 |
(ALL x. a < x & x < b --> lim.differentiable f x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1553 |
==> EX z>a. z < b & diffl f 0 z" |
| 14516 | 1554 |
by (import lim ROLLE) |
1555 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1556 |
lemma MVT: "a < b & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1557 |
(ALL x. a <= x & x <= b --> contl f x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1558 |
(ALL x. a < x & x < b --> lim.differentiable f x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1559 |
==> EX l z. a < z & z < b & diffl f l z & f b - f a = (b - a) * l" |
| 14516 | 1560 |
by (import lim MVT) |
1561 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1562 |
lemma DIFF_ISCONST_END: "a < b & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1563 |
(ALL x. a <= x & x <= b --> contl f x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1564 |
(ALL x. a < x & x < b --> diffl f 0 x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1565 |
==> f b = f a" |
| 14516 | 1566 |
by (import lim DIFF_ISCONST_END) |
1567 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1568 |
lemma DIFF_ISCONST: "[| a < b & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1569 |
(ALL x. a <= x & x <= b --> contl f x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1570 |
(ALL x. a < x & x < b --> diffl f 0 x); |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1571 |
a <= x & x <= b |] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1572 |
==> f x = f a" |
| 14516 | 1573 |
by (import lim DIFF_ISCONST) |
1574 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1575 |
lemma DIFF_ISCONST_ALL: "(!!x. diffl f 0 x) ==> f x = f y" |
| 14516 | 1576 |
by (import lim DIFF_ISCONST_ALL) |
1577 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1578 |
lemma INTERVAL_ABS: "((x::real) - (d::real) <= (z::real) & z <= x + d) = (abs (z - x) <= d)" |
| 14516 | 1579 |
by (import lim INTERVAL_ABS) |
1580 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1581 |
lemma CONT_INJ_LEMMA: "0 < d & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1582 |
(ALL z. abs (z - x) <= d --> g (f z) = z) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1583 |
(ALL z. abs (z - x) <= d --> contl f z) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1584 |
==> ~ (ALL z. abs (z - x) <= d --> f z <= f x)" |
| 14516 | 1585 |
by (import lim CONT_INJ_LEMMA) |
1586 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1587 |
lemma CONT_INJ_LEMMA2: "0 < d & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1588 |
(ALL z. abs (z - x) <= d --> g (f z) = z) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1589 |
(ALL z. abs (z - x) <= d --> contl f z) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1590 |
==> ~ (ALL z. abs (z - x) <= d --> f x <= f z)" |
| 14516 | 1591 |
by (import lim CONT_INJ_LEMMA2) |
1592 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1593 |
lemma CONT_INJ_RANGE: "0 < d & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1594 |
(ALL z. abs (z - x) <= d --> g (f z) = z) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1595 |
(ALL z. abs (z - x) <= d --> contl f z) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1596 |
==> EX e>0. ALL y. abs (y - f x) <= e --> (EX z. abs (z - x) <= d & f z = y)" |
| 14516 | 1597 |
by (import lim CONT_INJ_RANGE) |
1598 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1599 |
lemma CONT_INVERSE: "0 < d & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1600 |
(ALL z. abs (z - x) <= d --> g (f z) = z) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1601 |
(ALL z. abs (z - x) <= d --> contl f z) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1602 |
==> contl g (f x)" |
| 14516 | 1603 |
by (import lim CONT_INVERSE) |
1604 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1605 |
lemma DIFF_INVERSE: "0 < d & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1606 |
(ALL z. abs (z - x) <= d --> g (f z) = z) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1607 |
(ALL z. abs (z - x) <= d --> contl f z) & diffl f l x & l ~= 0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1608 |
==> diffl g (inverse l) (f x)" |
| 14516 | 1609 |
by (import lim DIFF_INVERSE) |
1610 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1611 |
lemma DIFF_INVERSE_LT: "0 < d & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1612 |
(ALL z. abs (z - x) < d --> g (f z) = z) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1613 |
(ALL z. abs (z - x) < d --> contl f z) & diffl f l x & l ~= 0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1614 |
==> diffl g (inverse l) (f x)" |
| 14516 | 1615 |
by (import lim DIFF_INVERSE_LT) |
1616 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1617 |
lemma INTERVAL_CLEMMA: "(a::real) < (x::real) & x < (b::real) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1618 |
==> EX d>0::real. ALL y::real. abs (y - x) <= d --> a < y & y < b" |
| 14516 | 1619 |
by (import lim INTERVAL_CLEMMA) |
1620 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1621 |
lemma DIFF_INVERSE_OPEN: "a < x & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1622 |
x < b & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1623 |
(ALL z. a < z & z < b --> g (f z) = z & contl f z) & diffl f l x & l ~= 0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1624 |
==> diffl g (inverse l) (f x)" |
| 14516 | 1625 |
by (import lim DIFF_INVERSE_OPEN) |
1626 |
||
1627 |
;end_setup |
|
1628 |
||
|
46787
3d3d8f8929a7
file system structure separating HOL4 and HOL Light concerns
haftmann
parents:
46780
diff
changeset
|
1629 |
setup_theory "~~/src/HOL/Import/HOL4/Generated" powser |
| 14516 | 1630 |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1631 |
lemma POWDIFF_LEMMA: "real.sum (0, Suc n) (%p. x ^ p * y ^ (Suc n - p)) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1632 |
y * real.sum (0, Suc n) (%p. x ^ p * y ^ (n - p))" |
| 14516 | 1633 |
by (import powser POWDIFF_LEMMA) |
1634 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1635 |
lemma POWDIFF: "x ^ Suc n - y ^ Suc n = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1636 |
(x - y) * real.sum (0, Suc n) (%p. x ^ p * y ^ (n - p))" |
| 14516 | 1637 |
by (import powser POWDIFF) |
1638 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1639 |
lemma POWREV: "real.sum (0, Suc n) (%xa. x ^ xa * y ^ (n - xa)) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1640 |
real.sum (0, Suc n) (%xa. x ^ (n - xa) * y ^ xa)" |
| 14516 | 1641 |
by (import powser POWREV) |
1642 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1643 |
lemma POWSER_INSIDEA: "seq.summable (%n. f n * x ^ n) & abs z < abs x |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1644 |
==> seq.summable (%n. abs (f n) * z ^ n)" |
| 14516 | 1645 |
by (import powser POWSER_INSIDEA) |
1646 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1647 |
lemma POWSER_INSIDE: "seq.summable (%n. f n * x ^ n) & abs z < abs x |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1648 |
==> seq.summable (%n. f n * z ^ n)" |
| 14516 | 1649 |
by (import powser POWSER_INSIDE) |
1650 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1651 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1652 |
diffs :: "(nat => real) => nat => real" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1653 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1654 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1655 |
diffs_def: "powser.diffs == %c n. real (Suc n) * c (Suc n)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1656 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1657 |
lemma diffs: "powser.diffs c = (%n. real (Suc n) * c (Suc n))" |
| 14516 | 1658 |
by (import powser diffs) |
1659 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1660 |
lemma DIFFS_NEG: "powser.diffs (%n. - c n) = (%x. - powser.diffs c x)" |
| 14516 | 1661 |
by (import powser DIFFS_NEG) |
1662 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1663 |
lemma DIFFS_LEMMA: "real.sum (0, n) (%n. powser.diffs c n * x ^ n) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1664 |
real.sum (0, n) (%n. real n * (c n * x ^ (n - 1))) + |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1665 |
real n * (c n * x ^ (n - 1))" |
| 14516 | 1666 |
by (import powser DIFFS_LEMMA) |
1667 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1668 |
lemma DIFFS_LEMMA2: "real.sum (0, n) (%n. real n * (c n * x ^ (n - 1))) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1669 |
real.sum (0, n) (%n. powser.diffs c n * x ^ n) - |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1670 |
real n * (c n * x ^ (n - 1))" |
| 14516 | 1671 |
by (import powser DIFFS_LEMMA2) |
1672 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1673 |
lemma DIFFS_EQUIV: "seq.summable (%n. powser.diffs c n * x ^ n) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1674 |
==> seq.sums (%n. real n * (c n * x ^ (n - 1))) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1675 |
(seq.suminf (%n. powser.diffs c n * x ^ n))" |
| 14516 | 1676 |
by (import powser DIFFS_EQUIV) |
1677 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1678 |
lemma TERMDIFF_LEMMA1: "real.sum (0, m) (%p. (z + h) ^ (m - p) * z ^ p - z ^ m) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1679 |
real.sum (0, m) (%p. z ^ p * ((z + h) ^ (m - p) - z ^ (m - p)))" |
| 14516 | 1680 |
by (import powser TERMDIFF_LEMMA1) |
1681 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1682 |
lemma TERMDIFF_LEMMA2: "h ~= 0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1683 |
==> ((z + h) ^ n - z ^ n) / h - real n * z ^ (n - 1) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1684 |
h * |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1685 |
real.sum (0, n - 1) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1686 |
(%p. z ^ p * |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1687 |
real.sum (0, n - 1 - p) (%q. (z + h) ^ q * z ^ (n - 2 - p - q)))" |
| 14516 | 1688 |
by (import powser TERMDIFF_LEMMA2) |
1689 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1690 |
lemma TERMDIFF_LEMMA3: "h ~= 0 & abs z <= k' & abs (z + h) <= k' |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1691 |
==> abs (((z + h) ^ n - z ^ n) / h - real n * z ^ (n - 1)) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1692 |
<= real n * (real (n - 1) * (k' ^ (n - 2) * abs h))" |
| 14516 | 1693 |
by (import powser TERMDIFF_LEMMA3) |
1694 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1695 |
lemma TERMDIFF_LEMMA4: "0 < k & (ALL h. 0 < abs h & abs h < k --> abs (f h) <= k' * abs h) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1696 |
==> tends_real_real f 0 0" |
| 14516 | 1697 |
by (import powser TERMDIFF_LEMMA4) |
1698 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1699 |
lemma TERMDIFF_LEMMA5: "0 < k & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1700 |
seq.summable f & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1701 |
(ALL h. 0 < abs h & abs h < k --> (ALL n. abs (g h n) <= f n * abs h)) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1702 |
==> tends_real_real (%h. seq.suminf (g h)) 0 0" |
| 14516 | 1703 |
by (import powser TERMDIFF_LEMMA5) |
1704 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1705 |
lemma TERMDIFF: "seq.summable (%n. c n * k' ^ n) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1706 |
seq.summable (%n. powser.diffs c n * k' ^ n) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1707 |
seq.summable (%n. powser.diffs (powser.diffs c) n * k' ^ n) & abs x < abs k' |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1708 |
==> diffl (%x. seq.suminf (%n. c n * x ^ n)) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1709 |
(seq.suminf (%n. powser.diffs c n * x ^ n)) x" |
| 14516 | 1710 |
by (import powser TERMDIFF) |
1711 |
||
1712 |
;end_setup |
|
1713 |
||
|
46787
3d3d8f8929a7
file system structure separating HOL4 and HOL Light concerns
haftmann
parents:
46780
diff
changeset
|
1714 |
setup_theory "~~/src/HOL/Import/HOL4/Generated" transc |
| 14516 | 1715 |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1716 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1717 |
exp :: "real => real" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1718 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1719 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1720 |
exp_def: "transc.exp == %x. seq.suminf (%n. inverse (real (FACT n)) * x ^ n)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1721 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1722 |
lemma exp: "transc.exp x = seq.suminf (%n. inverse (real (FACT n)) * x ^ n)" |
| 14516 | 1723 |
by (import transc exp) |
1724 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1725 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1726 |
cos :: "real => real" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1727 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1728 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1729 |
cos_def: "transc.cos == |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1730 |
%x. seq.suminf |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1731 |
(%n. (if EVEN n then (- 1) ^ (n div 2) / real (FACT n) else 0) * x ^ n)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1732 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1733 |
lemma cos: "transc.cos x = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1734 |
seq.suminf |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1735 |
(%n. (if EVEN n then (- 1) ^ (n div 2) / real (FACT n) else 0) * x ^ n)" |
| 14516 | 1736 |
by (import transc cos) |
1737 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1738 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1739 |
sin :: "real => real" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1740 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1741 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1742 |
sin_def: "transc.sin == |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1743 |
%x. seq.suminf |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1744 |
(%n. (if EVEN n then 0 else (- 1) ^ ((n - 1) div 2) / real (FACT n)) * |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1745 |
x ^ n)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1746 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1747 |
lemma sin: "transc.sin x = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1748 |
seq.suminf |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1749 |
(%n. (if EVEN n then 0 else (- 1) ^ ((n - 1) div 2) / real (FACT n)) * |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1750 |
x ^ n)" |
| 14516 | 1751 |
by (import transc sin) |
1752 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1753 |
lemma EXP_CONVERGES: "seq.sums (%n. inverse (real (FACT n)) * x ^ n) (transc.exp x)" |
| 14516 | 1754 |
by (import transc EXP_CONVERGES) |
1755 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1756 |
lemma SIN_CONVERGES: "seq.sums |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1757 |
(%n. (if EVEN n then 0 else (- 1) ^ ((n - 1) div 2) / real (FACT n)) * |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1758 |
x ^ n) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1759 |
(transc.sin x)" |
| 14516 | 1760 |
by (import transc SIN_CONVERGES) |
1761 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1762 |
lemma COS_CONVERGES: "seq.sums |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1763 |
(%n. (if EVEN n then (- 1) ^ (n div 2) / real (FACT n) else 0) * x ^ n) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1764 |
(transc.cos x)" |
| 14516 | 1765 |
by (import transc COS_CONVERGES) |
1766 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1767 |
lemma EXP_FDIFF: "powser.diffs (%n. inverse (real (FACT n))) = (%n. inverse (real (FACT n)))" |
| 14516 | 1768 |
by (import transc EXP_FDIFF) |
1769 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1770 |
lemma SIN_FDIFF: "powser.diffs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1771 |
(%n. if EVEN n then 0 else (- 1) ^ ((n - 1) div 2) / real (FACT n)) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1772 |
(%n. if EVEN n then (- 1) ^ (n div 2) / real (FACT n) else 0)" |
| 14516 | 1773 |
by (import transc SIN_FDIFF) |
1774 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1775 |
lemma COS_FDIFF: "powser.diffs (%n. if EVEN n then (- 1) ^ (n div 2) / real (FACT n) else 0) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1776 |
(%n. - (if EVEN n then 0 else (- 1) ^ ((n - 1) div 2) / real (FACT n)))" |
| 14516 | 1777 |
by (import transc COS_FDIFF) |
1778 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1779 |
lemma SIN_NEGLEMMA: "- transc.sin x = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1780 |
seq.suminf |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1781 |
(%n. - ((if EVEN n then 0 else (- 1) ^ ((n - 1) div 2) / real (FACT n)) * |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1782 |
x ^ n))" |
| 14516 | 1783 |
by (import transc SIN_NEGLEMMA) |
1784 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1785 |
lemma DIFF_EXP: "diffl transc.exp (transc.exp x) x" |
| 14516 | 1786 |
by (import transc DIFF_EXP) |
1787 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1788 |
lemma DIFF_SIN: "diffl transc.sin (transc.cos x) x" |
| 14516 | 1789 |
by (import transc DIFF_SIN) |
1790 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1791 |
lemma DIFF_COS: "diffl transc.cos (- transc.sin x) x" |
| 14516 | 1792 |
by (import transc DIFF_COS) |
1793 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1794 |
lemma DIFF_COMPOSITE: "(diffl f l x & f x ~= 0 --> diffl (%x. inverse (f x)) (- (l / f x ^ 2)) x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1795 |
(diffl f l x & diffl g m x & g x ~= 0 --> |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1796 |
diffl (%x. f x / g x) ((l * g x - m * f x) / g x ^ 2) x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1797 |
(diffl f l x & diffl g m x --> diffl (%x. f x + g x) (l + m) x) & |
| 17694 | 1798 |
(diffl f l x & diffl g m x --> |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1799 |
diffl (%x. f x * g x) (l * g x + m * f x) x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1800 |
(diffl f l x & diffl g m x --> diffl (%x. f x - g x) (l - m) x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1801 |
(diffl f l x --> diffl (%x. - f x) (- l) x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1802 |
(diffl g m x --> diffl (%x. g x ^ n) (real n * g x ^ (n - 1) * m) x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1803 |
(diffl g m x --> diffl (%x. transc.exp (g x)) (transc.exp (g x) * m) x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1804 |
(diffl g m x --> diffl (%x. transc.sin (g x)) (transc.cos (g x) * m) x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1805 |
(diffl g m x --> diffl (%x. transc.cos (g x)) (- transc.sin (g x) * m) x)" |
| 14516 | 1806 |
by (import transc DIFF_COMPOSITE) |
1807 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1808 |
lemma EXP_0: "transc.exp 0 = 1" |
| 14516 | 1809 |
by (import transc EXP_0) |
1810 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1811 |
lemma EXP_LE_X: "0 <= x ==> 1 + x <= transc.exp x" |
| 14516 | 1812 |
by (import transc EXP_LE_X) |
1813 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1814 |
lemma EXP_LT_1: "0 < x ==> 1 < transc.exp x" |
| 14516 | 1815 |
by (import transc EXP_LT_1) |
1816 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1817 |
lemma EXP_ADD_MUL: "transc.exp (x + y) * transc.exp (- x) = transc.exp y" |
| 14516 | 1818 |
by (import transc EXP_ADD_MUL) |
1819 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1820 |
lemma EXP_NEG_MUL: "transc.exp x * transc.exp (- x) = 1" |
| 14516 | 1821 |
by (import transc EXP_NEG_MUL) |
1822 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1823 |
lemma EXP_NEG_MUL2: "transc.exp (- x) * transc.exp x = 1" |
| 14516 | 1824 |
by (import transc EXP_NEG_MUL2) |
1825 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1826 |
lemma EXP_NEG: "transc.exp (- x) = inverse (transc.exp x)" |
| 14516 | 1827 |
by (import transc EXP_NEG) |
1828 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1829 |
lemma EXP_ADD: "transc.exp (x + y) = transc.exp x * transc.exp y" |
| 14516 | 1830 |
by (import transc EXP_ADD) |
1831 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1832 |
lemma EXP_POS_LE: "0 <= transc.exp x" |
| 14516 | 1833 |
by (import transc EXP_POS_LE) |
1834 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1835 |
lemma EXP_NZ: "transc.exp x ~= 0" |
| 14516 | 1836 |
by (import transc EXP_NZ) |
1837 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1838 |
lemma EXP_POS_LT: "0 < transc.exp x" |
| 14516 | 1839 |
by (import transc EXP_POS_LT) |
1840 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1841 |
lemma EXP_N: "transc.exp (real n * x) = transc.exp x ^ n" |
| 14516 | 1842 |
by (import transc EXP_N) |
1843 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1844 |
lemma EXP_SUB: "transc.exp (x - y) = transc.exp x / transc.exp y" |
| 14516 | 1845 |
by (import transc EXP_SUB) |
1846 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1847 |
lemma EXP_MONO_IMP: "x < y ==> transc.exp x < transc.exp y" |
| 14516 | 1848 |
by (import transc EXP_MONO_IMP) |
1849 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1850 |
lemma EXP_MONO_LT: "(transc.exp x < transc.exp y) = (x < y)" |
| 14516 | 1851 |
by (import transc EXP_MONO_LT) |
1852 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1853 |
lemma EXP_MONO_LE: "(transc.exp x <= transc.exp y) = (x <= y)" |
| 14516 | 1854 |
by (import transc EXP_MONO_LE) |
1855 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1856 |
lemma EXP_INJ: "(transc.exp x = transc.exp y) = (x = y)" |
| 14516 | 1857 |
by (import transc EXP_INJ) |
1858 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1859 |
lemma EXP_TOTAL_LEMMA: "1 <= y ==> EX x>=0. x <= y - 1 & transc.exp x = y" |
| 14516 | 1860 |
by (import transc EXP_TOTAL_LEMMA) |
1861 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1862 |
lemma EXP_TOTAL: "0 < y ==> EX x. transc.exp x = y" |
| 14516 | 1863 |
by (import transc EXP_TOTAL) |
1864 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1865 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1866 |
ln :: "real => real" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1867 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1868 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1869 |
ln_def: "transc.ln == %x. SOME u. transc.exp u = x" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1870 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1871 |
lemma ln: "transc.ln x = (SOME u. transc.exp u = x)" |
| 14516 | 1872 |
by (import transc ln) |
1873 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1874 |
lemma LN_EXP: "transc.ln (transc.exp x) = x" |
| 14516 | 1875 |
by (import transc LN_EXP) |
1876 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1877 |
lemma EXP_LN: "(transc.exp (transc.ln x) = x) = (0 < x)" |
| 14516 | 1878 |
by (import transc EXP_LN) |
1879 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1880 |
lemma LN_MUL: "0 < x & 0 < y ==> transc.ln (x * y) = transc.ln x + transc.ln y" |
| 14516 | 1881 |
by (import transc LN_MUL) |
1882 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1883 |
lemma LN_INJ: "0 < x & 0 < y ==> (transc.ln x = transc.ln y) = (x = y)" |
| 14516 | 1884 |
by (import transc LN_INJ) |
1885 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1886 |
lemma LN_1: "transc.ln 1 = 0" |
| 14516 | 1887 |
by (import transc LN_1) |
1888 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1889 |
lemma LN_INV: "0 < x ==> transc.ln (inverse x) = - transc.ln x" |
| 14516 | 1890 |
by (import transc LN_INV) |
1891 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1892 |
lemma LN_DIV: "0 < x & 0 < y ==> transc.ln (x / y) = transc.ln x - transc.ln y" |
| 14516 | 1893 |
by (import transc LN_DIV) |
1894 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1895 |
lemma LN_MONO_LT: "0 < x & 0 < y ==> (transc.ln x < transc.ln y) = (x < y)" |
| 14516 | 1896 |
by (import transc LN_MONO_LT) |
1897 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1898 |
lemma LN_MONO_LE: "0 < x & 0 < y ==> (transc.ln x <= transc.ln y) = (x <= y)" |
| 14516 | 1899 |
by (import transc LN_MONO_LE) |
1900 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1901 |
lemma LN_POW: "0 < x ==> transc.ln (x ^ n) = real n * transc.ln x" |
| 14516 | 1902 |
by (import transc LN_POW) |
1903 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1904 |
lemma LN_LE: "0 <= x ==> transc.ln (1 + x) <= x" |
| 14516 | 1905 |
by (import transc LN_LE) |
1906 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1907 |
lemma LN_LT_X: "0 < x ==> transc.ln x < x" |
| 14516 | 1908 |
by (import transc LN_LT_X) |
1909 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1910 |
lemma LN_POS: "1 <= x ==> 0 <= transc.ln x" |
| 14516 | 1911 |
by (import transc LN_POS) |
1912 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1913 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1914 |
root :: "nat => real => real" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1915 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1916 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1917 |
root_def: "transc.root == %n x. SOME u. (0 < x --> 0 < u) & u ^ n = x" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1918 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1919 |
lemma root: "transc.root n x = (SOME u. (0 < x --> 0 < u) & u ^ n = x)" |
| 14516 | 1920 |
by (import transc root) |
1921 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1922 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1923 |
sqrt :: "real => real" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1924 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1925 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1926 |
sqrt_def: "transc.sqrt == transc.root 2" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1927 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1928 |
lemma sqrt: "transc.sqrt x = transc.root 2 x" |
| 14516 | 1929 |
by (import transc sqrt) |
1930 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1931 |
lemma ROOT_LT_LEMMA: "0 < x ==> transc.exp (transc.ln x / real (Suc n)) ^ Suc n = x" |
| 14516 | 1932 |
by (import transc ROOT_LT_LEMMA) |
1933 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1934 |
lemma ROOT_LN: "0 < x ==> transc.root (Suc n) x = transc.exp (transc.ln x / real (Suc n))" |
| 14516 | 1935 |
by (import transc ROOT_LN) |
1936 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1937 |
lemma ROOT_0: "transc.root (Suc n) 0 = 0" |
| 14516 | 1938 |
by (import transc ROOT_0) |
1939 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1940 |
lemma ROOT_1: "transc.root (Suc n) 1 = 1" |
| 14516 | 1941 |
by (import transc ROOT_1) |
1942 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1943 |
lemma ROOT_POS_LT: "0 < x ==> 0 < transc.root (Suc n) x" |
| 14516 | 1944 |
by (import transc ROOT_POS_LT) |
1945 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1946 |
lemma ROOT_POW_POS: "0 <= x ==> transc.root (Suc n) x ^ Suc n = x" |
| 14516 | 1947 |
by (import transc ROOT_POW_POS) |
1948 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1949 |
lemma POW_ROOT_POS: "0 <= x ==> transc.root (Suc n) (x ^ Suc n) = x" |
| 14516 | 1950 |
by (import transc POW_ROOT_POS) |
1951 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1952 |
lemma ROOT_POS: "0 <= x ==> 0 <= transc.root (Suc n) x" |
| 14516 | 1953 |
by (import transc ROOT_POS) |
1954 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1955 |
lemma ROOT_POS_UNIQ: "0 <= x & 0 <= y & y ^ Suc n = x ==> transc.root (Suc n) x = y" |
| 14516 | 1956 |
by (import transc ROOT_POS_UNIQ) |
1957 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1958 |
lemma ROOT_MUL: "0 <= x & 0 <= y |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1959 |
==> transc.root (Suc n) (x * y) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1960 |
transc.root (Suc n) x * transc.root (Suc n) y" |
| 14516 | 1961 |
by (import transc ROOT_MUL) |
1962 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1963 |
lemma ROOT_INV: "0 <= x ==> transc.root (Suc n) (inverse x) = inverse (transc.root (Suc n) x)" |
| 14516 | 1964 |
by (import transc ROOT_INV) |
1965 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1966 |
lemma ROOT_DIV: "0 <= xa & 0 <= xb |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1967 |
==> transc.root (Suc x) (xa / xb) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1968 |
transc.root (Suc x) xa / transc.root (Suc x) xb" |
| 14516 | 1969 |
by (import transc ROOT_DIV) |
1970 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1971 |
lemma ROOT_MONO_LE: "0 <= x & x <= y ==> transc.root (Suc n) x <= transc.root (Suc n) y" |
| 14516 | 1972 |
by (import transc ROOT_MONO_LE) |
1973 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1974 |
lemma SQRT_0: "transc.sqrt 0 = 0" |
| 14516 | 1975 |
by (import transc SQRT_0) |
1976 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1977 |
lemma SQRT_1: "transc.sqrt 1 = 1" |
| 14516 | 1978 |
by (import transc SQRT_1) |
1979 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1980 |
lemma SQRT_POS_LT: "0 < x ==> 0 < transc.sqrt x" |
| 14516 | 1981 |
by (import transc SQRT_POS_LT) |
1982 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1983 |
lemma SQRT_POS_LE: "0 <= x ==> 0 <= transc.sqrt x" |
| 14516 | 1984 |
by (import transc SQRT_POS_LE) |
1985 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1986 |
lemma SQRT_POW2: "(transc.sqrt x ^ 2 = x) = (0 <= x)" |
| 14516 | 1987 |
by (import transc SQRT_POW2) |
1988 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1989 |
lemma SQRT_POW_2: "0 <= x ==> transc.sqrt x ^ 2 = x" |
| 14516 | 1990 |
by (import transc SQRT_POW_2) |
1991 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1992 |
lemma POW_2_SQRT: "0 <= x ==> transc.sqrt (x ^ 2) = x" |
| 14516 | 1993 |
by (import transc POW_2_SQRT) |
1994 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1995 |
lemma SQRT_POS_UNIQ: "0 <= x & 0 <= xa & xa ^ 2 = x ==> transc.sqrt x = xa" |
| 14516 | 1996 |
by (import transc SQRT_POS_UNIQ) |
1997 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1998 |
lemma SQRT_MUL: "0 <= x & 0 <= xa ==> transc.sqrt (x * xa) = transc.sqrt x * transc.sqrt xa" |
| 14516 | 1999 |
by (import transc SQRT_MUL) |
2000 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2001 |
lemma SQRT_INV: "0 <= x ==> transc.sqrt (inverse x) = inverse (transc.sqrt x)" |
| 14516 | 2002 |
by (import transc SQRT_INV) |
2003 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2004 |
lemma SQRT_DIV: "0 <= x & 0 <= xa ==> transc.sqrt (x / xa) = transc.sqrt x / transc.sqrt xa" |
| 14516 | 2005 |
by (import transc SQRT_DIV) |
2006 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2007 |
lemma SQRT_MONO_LE: "0 <= x & x <= xa ==> transc.sqrt x <= transc.sqrt xa" |
| 14516 | 2008 |
by (import transc SQRT_MONO_LE) |
2009 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2010 |
lemma SQRT_EVEN_POW2: "EVEN n ==> transc.sqrt (2 ^ n) = 2 ^ (n div 2)" |
| 14516 | 2011 |
by (import transc SQRT_EVEN_POW2) |
2012 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2013 |
lemma REAL_DIV_SQRT: "0 <= x ==> x / transc.sqrt x = transc.sqrt x" |
| 14516 | 2014 |
by (import transc REAL_DIV_SQRT) |
2015 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2016 |
lemma SQRT_EQ: "x ^ 2 = y & 0 <= x ==> x = transc.sqrt y" |
| 14516 | 2017 |
by (import transc SQRT_EQ) |
2018 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2019 |
lemma SIN_0: "transc.sin 0 = 0" |
| 14516 | 2020 |
by (import transc SIN_0) |
2021 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2022 |
lemma COS_0: "transc.cos 0 = 1" |
| 14516 | 2023 |
by (import transc COS_0) |
2024 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2025 |
lemma SIN_CIRCLE: "transc.sin x ^ 2 + transc.cos x ^ 2 = 1" |
| 14516 | 2026 |
by (import transc SIN_CIRCLE) |
2027 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2028 |
lemma SIN_BOUND: "abs (transc.sin x) <= 1" |
| 14516 | 2029 |
by (import transc SIN_BOUND) |
2030 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2031 |
lemma SIN_BOUNDS: "- 1 <= transc.sin x & transc.sin x <= 1" |
| 14516 | 2032 |
by (import transc SIN_BOUNDS) |
2033 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2034 |
lemma COS_BOUND: "abs (transc.cos x) <= 1" |
| 14516 | 2035 |
by (import transc COS_BOUND) |
2036 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2037 |
lemma COS_BOUNDS: "- 1 <= transc.cos x & transc.cos x <= 1" |
| 14516 | 2038 |
by (import transc COS_BOUNDS) |
2039 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2040 |
lemma SIN_COS_ADD: "(transc.sin (x + y) - |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2041 |
(transc.sin x * transc.cos y + transc.cos x * transc.sin y)) ^ |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2042 |
2 + |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2043 |
(transc.cos (x + y) - |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2044 |
(transc.cos x * transc.cos y - transc.sin x * transc.sin y)) ^ |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2045 |
2 = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2046 |
0" |
| 14516 | 2047 |
by (import transc SIN_COS_ADD) |
2048 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2049 |
lemma SIN_COS_NEG: "(transc.sin (- x) + transc.sin x) ^ 2 + |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2050 |
(transc.cos (- x) - transc.cos x) ^ 2 = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2051 |
0" |
| 14516 | 2052 |
by (import transc SIN_COS_NEG) |
2053 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2054 |
lemma SIN_ADD: "transc.sin (x + y) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2055 |
transc.sin x * transc.cos y + transc.cos x * transc.sin y" |
| 14516 | 2056 |
by (import transc SIN_ADD) |
2057 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2058 |
lemma COS_ADD: "transc.cos (x + y) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2059 |
transc.cos x * transc.cos y - transc.sin x * transc.sin y" |
| 14516 | 2060 |
by (import transc COS_ADD) |
2061 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2062 |
lemma SIN_NEG: "transc.sin (- x) = - transc.sin x" |
| 14516 | 2063 |
by (import transc SIN_NEG) |
2064 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2065 |
lemma COS_NEG: "transc.cos (- x) = transc.cos x" |
| 14516 | 2066 |
by (import transc COS_NEG) |
2067 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2068 |
lemma SIN_DOUBLE: "transc.sin (2 * x) = 2 * (transc.sin x * transc.cos x)" |
| 14516 | 2069 |
by (import transc SIN_DOUBLE) |
2070 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2071 |
lemma COS_DOUBLE: "transc.cos (2 * x) = transc.cos x ^ 2 - transc.sin x ^ 2" |
| 14516 | 2072 |
by (import transc COS_DOUBLE) |
2073 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2074 |
lemma SIN_PAIRED: "seq.sums (%n. (- 1) ^ n / real (FACT (2 * n + 1)) * x ^ (2 * n + 1)) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2075 |
(transc.sin x)" |
| 14516 | 2076 |
by (import transc SIN_PAIRED) |
2077 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2078 |
lemma SIN_POS: "0 < x & x < 2 ==> 0 < transc.sin x" |
| 14516 | 2079 |
by (import transc SIN_POS) |
2080 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2081 |
lemma COS_PAIRED: "seq.sums (%n. (- 1) ^ n / real (FACT (2 * n)) * x ^ (2 * n)) (transc.cos x)" |
| 14516 | 2082 |
by (import transc COS_PAIRED) |
2083 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2084 |
lemma COS_2: "transc.cos 2 < 0" |
| 14516 | 2085 |
by (import transc COS_2) |
2086 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2087 |
lemma COS_ISZERO: "EX! x. 0 <= x & x <= 2 & transc.cos x = 0" |
| 14516 | 2088 |
by (import transc COS_ISZERO) |
2089 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2090 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2091 |
pi :: "real" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2092 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2093 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2094 |
pi_def: "transc.pi == 2 * (SOME x. 0 <= x & x <= 2 & transc.cos x = 0)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2095 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2096 |
lemma pi: "transc.pi = 2 * (SOME x. 0 <= x & x <= 2 & transc.cos x = 0)" |
| 14516 | 2097 |
by (import transc pi) |
2098 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2099 |
lemma PI2: "transc.pi / 2 = (SOME x. 0 <= x & x <= 2 & transc.cos x = 0)" |
| 14516 | 2100 |
by (import transc PI2) |
2101 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2102 |
lemma COS_PI2: "transc.cos (transc.pi / 2) = 0" |
| 14516 | 2103 |
by (import transc COS_PI2) |
2104 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2105 |
lemma PI2_BOUNDS: "0 < transc.pi / 2 & transc.pi / 2 < 2" |
| 14516 | 2106 |
by (import transc PI2_BOUNDS) |
2107 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2108 |
lemma PI_POS: "0 < transc.pi" |
| 14516 | 2109 |
by (import transc PI_POS) |
2110 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2111 |
lemma SIN_PI2: "transc.sin (transc.pi / 2) = 1" |
| 14516 | 2112 |
by (import transc SIN_PI2) |
2113 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2114 |
lemma COS_PI: "transc.cos transc.pi = - 1" |
| 14516 | 2115 |
by (import transc COS_PI) |
2116 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2117 |
lemma SIN_PI: "transc.sin transc.pi = 0" |
| 14516 | 2118 |
by (import transc SIN_PI) |
2119 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2120 |
lemma SIN_COS: "transc.sin x = transc.cos (transc.pi / 2 - x)" |
| 14516 | 2121 |
by (import transc SIN_COS) |
2122 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2123 |
lemma COS_SIN: "transc.cos x = transc.sin (transc.pi / 2 - x)" |
| 14516 | 2124 |
by (import transc COS_SIN) |
2125 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2126 |
lemma SIN_PERIODIC_PI: "transc.sin (x + transc.pi) = - transc.sin x" |
| 14516 | 2127 |
by (import transc SIN_PERIODIC_PI) |
2128 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2129 |
lemma COS_PERIODIC_PI: "transc.cos (x + transc.pi) = - transc.cos x" |
| 14516 | 2130 |
by (import transc COS_PERIODIC_PI) |
2131 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2132 |
lemma SIN_PERIODIC: "transc.sin (x + 2 * transc.pi) = transc.sin x" |
| 14516 | 2133 |
by (import transc SIN_PERIODIC) |
2134 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2135 |
lemma COS_PERIODIC: "transc.cos (x + 2 * transc.pi) = transc.cos x" |
| 14516 | 2136 |
by (import transc COS_PERIODIC) |
2137 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2138 |
lemma COS_NPI: "transc.cos (real n * transc.pi) = (- 1) ^ n" |
| 14516 | 2139 |
by (import transc COS_NPI) |
2140 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2141 |
lemma SIN_NPI: "transc.sin (real (n::nat) * transc.pi) = (0::real)" |
| 14516 | 2142 |
by (import transc SIN_NPI) |
2143 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2144 |
lemma SIN_POS_PI2: "0 < x & x < transc.pi / 2 ==> 0 < transc.sin x" |
| 14516 | 2145 |
by (import transc SIN_POS_PI2) |
2146 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2147 |
lemma COS_POS_PI2: "0 < x & x < transc.pi / 2 ==> 0 < transc.cos x" |
| 14516 | 2148 |
by (import transc COS_POS_PI2) |
2149 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2150 |
lemma COS_POS_PI: "- (transc.pi / 2) < x & x < transc.pi / 2 ==> 0 < transc.cos x" |
| 14516 | 2151 |
by (import transc COS_POS_PI) |
2152 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2153 |
lemma SIN_POS_PI: "0 < x & x < transc.pi ==> 0 < transc.sin x" |
| 14516 | 2154 |
by (import transc SIN_POS_PI) |
2155 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2156 |
lemma COS_POS_PI2_LE: "0 <= x & x <= transc.pi / 2 ==> 0 <= transc.cos x" |
| 14516 | 2157 |
by (import transc COS_POS_PI2_LE) |
2158 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2159 |
lemma COS_POS_PI_LE: "- (transc.pi / 2) <= x & x <= transc.pi / 2 ==> 0 <= transc.cos x" |
| 14516 | 2160 |
by (import transc COS_POS_PI_LE) |
2161 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2162 |
lemma SIN_POS_PI2_LE: "0 <= x & x <= transc.pi / 2 ==> 0 <= transc.sin x" |
| 14516 | 2163 |
by (import transc SIN_POS_PI2_LE) |
2164 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2165 |
lemma SIN_POS_PI_LE: "0 <= x & x <= transc.pi ==> 0 <= transc.sin x" |
| 14516 | 2166 |
by (import transc SIN_POS_PI_LE) |
2167 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2168 |
lemma COS_TOTAL: "- 1 <= y & y <= 1 ==> EX! x. 0 <= x & x <= transc.pi & transc.cos x = y" |
| 14516 | 2169 |
by (import transc COS_TOTAL) |
2170 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2171 |
lemma SIN_TOTAL: "- 1 <= y & y <= 1 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2172 |
==> EX! x. - (transc.pi / 2) <= x & x <= transc.pi / 2 & transc.sin x = y" |
| 14516 | 2173 |
by (import transc SIN_TOTAL) |
2174 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2175 |
lemma COS_ZERO_LEMMA: "0 <= x & transc.cos x = 0 ==> EX n. ~ EVEN n & x = real n * (transc.pi / 2)" |
| 14516 | 2176 |
by (import transc COS_ZERO_LEMMA) |
2177 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2178 |
lemma SIN_ZERO_LEMMA: "0 <= x & transc.sin x = 0 ==> EX n. EVEN n & x = real n * (transc.pi / 2)" |
| 14516 | 2179 |
by (import transc SIN_ZERO_LEMMA) |
2180 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2181 |
lemma COS_ZERO: "(transc.cos x = 0) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2182 |
((EX n. ~ EVEN n & x = real n * (transc.pi / 2)) | |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2183 |
(EX n. ~ EVEN n & x = - (real n * (transc.pi / 2))))" |
| 14516 | 2184 |
by (import transc COS_ZERO) |
2185 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2186 |
lemma SIN_ZERO: "(transc.sin x = 0) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2187 |
((EX n. EVEN n & x = real n * (transc.pi / 2)) | |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2188 |
(EX n. EVEN n & x = - (real n * (transc.pi / 2))))" |
| 14516 | 2189 |
by (import transc SIN_ZERO) |
2190 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2191 |
consts |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2192 |
tan :: "real => real" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2193 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2194 |
defs |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2195 |
tan_def: "transc.tan == %x. transc.sin x / transc.cos x" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2196 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2197 |
lemma tan: "transc.tan x = transc.sin x / transc.cos x" |
| 14516 | 2198 |
by (import transc tan) |
2199 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2200 |
lemma TAN_0: "transc.tan 0 = 0" |
| 14516 | 2201 |
by (import transc TAN_0) |
2202 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2203 |
lemma TAN_PI: "transc.tan transc.pi = 0" |
| 14516 | 2204 |
by (import transc TAN_PI) |
2205 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2206 |
lemma TAN_NPI: "transc.tan (real (n::nat) * transc.pi) = (0::real)" |
| 14516 | 2207 |
by (import transc TAN_NPI) |
2208 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2209 |
lemma TAN_NEG: "transc.tan (- x) = - transc.tan x" |
| 14516 | 2210 |
by (import transc TAN_NEG) |
2211 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2212 |
lemma TAN_PERIODIC: "transc.tan (x + 2 * transc.pi) = transc.tan x" |
| 14516 | 2213 |
by (import transc TAN_PERIODIC) |
2214 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2215 |
lemma TAN_ADD: "transc.cos x ~= 0 & transc.cos y ~= 0 & transc.cos (x + y) ~= 0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2216 |
==> transc.tan (x + y) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2217 |
(transc.tan x + transc.tan y) / (1 - transc.tan x * transc.tan y)" |
| 14516 | 2218 |
by (import transc TAN_ADD) |
2219 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2220 |
lemma TAN_DOUBLE: "transc.cos x ~= 0 & transc.cos (2 * x) ~= 0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2221 |
==> transc.tan (2 * x) = 2 * transc.tan x / (1 - transc.tan x ^ 2)" |
| 14516 | 2222 |
by (import transc TAN_DOUBLE) |
2223 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2224 |
lemma TAN_POS_PI2: "0 < x & x < transc.pi / 2 ==> 0 < transc.tan x" |
| 14516 | 2225 |
by (import transc TAN_POS_PI2) |
2226 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2227 |
lemma DIFF_TAN: "transc.cos x ~= 0 ==> diffl transc.tan (inverse (transc.cos x ^ 2)) x" |
| 14516 | 2228 |
by (import transc DIFF_TAN) |
2229 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2230 |
lemma TAN_TOTAL_LEMMA: "0 < y ==> EX x>0. x < transc.pi / 2 & y < transc.tan x" |
| 14516 | 2231 |
by (import transc TAN_TOTAL_LEMMA) |
2232 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2233 |
lemma TAN_TOTAL_POS: "0 <= y ==> EX x>=0. x < transc.pi / 2 & transc.tan x = y" |
| 14516 | 2234 |
by (import transc TAN_TOTAL_POS) |
2235 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2236 |
lemma TAN_TOTAL: "EX! x. - (transc.pi / 2) < x & x < transc.pi / 2 & transc.tan x = y" |
| 14516 | 2237 |
by (import transc TAN_TOTAL) |
2238 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2239 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2240 |
asn :: "real => real" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2241 |
"asn == |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2242 |
%y. SOME x. - (transc.pi / 2) <= x & x <= transc.pi / 2 & transc.sin x = y" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2243 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2244 |
lemma asn: "asn y = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2245 |
(SOME x. - (transc.pi / 2) <= x & x <= transc.pi / 2 & transc.sin x = y)" |
| 14516 | 2246 |
by (import transc asn) |
2247 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2248 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2249 |
acs :: "real => real" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2250 |
"acs == %y. SOME x. 0 <= x & x <= transc.pi & transc.cos x = y" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2251 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2252 |
lemma acs: "acs y = (SOME x. 0 <= x & x <= transc.pi & transc.cos x = y)" |
| 14516 | 2253 |
by (import transc acs) |
2254 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2255 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2256 |
atn :: "real => real" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2257 |
"atn == |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2258 |
%y. SOME x. - (transc.pi / 2) < x & x < transc.pi / 2 & transc.tan x = y" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2259 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2260 |
lemma atn: "atn y = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2261 |
(SOME x. - (transc.pi / 2) < x & x < transc.pi / 2 & transc.tan x = y)" |
| 14516 | 2262 |
by (import transc atn) |
2263 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2264 |
lemma ASN: "- 1 <= y & y <= 1 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2265 |
==> - (transc.pi / 2) <= asn y & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2266 |
asn y <= transc.pi / 2 & transc.sin (asn y) = y" |
| 14516 | 2267 |
by (import transc ASN) |
2268 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2269 |
lemma ASN_SIN: "- 1 <= y & y <= 1 ==> transc.sin (asn y) = y" |
| 14516 | 2270 |
by (import transc ASN_SIN) |
2271 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2272 |
lemma ASN_BOUNDS: "- 1 <= y & y <= 1 ==> - (transc.pi / 2) <= asn y & asn y <= transc.pi / 2" |
| 14516 | 2273 |
by (import transc ASN_BOUNDS) |
2274 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2275 |
lemma ASN_BOUNDS_LT: "- 1 < y & y < 1 ==> - (transc.pi / 2) < asn y & asn y < transc.pi / 2" |
| 14516 | 2276 |
by (import transc ASN_BOUNDS_LT) |
2277 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2278 |
lemma SIN_ASN: "- (transc.pi / 2) <= x & x <= transc.pi / 2 ==> asn (transc.sin x) = x" |
| 14516 | 2279 |
by (import transc SIN_ASN) |
2280 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2281 |
lemma ACS: "- 1 <= y & y <= 1 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2282 |
==> 0 <= acs y & acs y <= transc.pi & transc.cos (acs y) = y" |
| 14516 | 2283 |
by (import transc ACS) |
2284 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2285 |
lemma ACS_COS: "- 1 <= y & y <= 1 ==> transc.cos (acs y) = y" |
| 14516 | 2286 |
by (import transc ACS_COS) |
2287 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2288 |
lemma ACS_BOUNDS: "- 1 <= y & y <= 1 ==> 0 <= acs y & acs y <= transc.pi" |
| 14516 | 2289 |
by (import transc ACS_BOUNDS) |
2290 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2291 |
lemma ACS_BOUNDS_LT: "- 1 < y & y < 1 ==> 0 < acs y & acs y < transc.pi" |
| 14516 | 2292 |
by (import transc ACS_BOUNDS_LT) |
2293 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2294 |
lemma COS_ACS: "0 <= x & x <= transc.pi ==> acs (transc.cos x) = x" |
| 14516 | 2295 |
by (import transc COS_ACS) |
2296 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2297 |
lemma ATN: "- (transc.pi / 2) < atn y & atn y < transc.pi / 2 & transc.tan (atn y) = y" |
| 14516 | 2298 |
by (import transc ATN) |
2299 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2300 |
lemma ATN_TAN: "transc.tan (atn x) = x" |
| 14516 | 2301 |
by (import transc ATN_TAN) |
2302 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2303 |
lemma ATN_BOUNDS: "- (transc.pi / 2) < atn x & atn x < transc.pi / 2" |
| 14516 | 2304 |
by (import transc ATN_BOUNDS) |
2305 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2306 |
lemma TAN_ATN: "- (transc.pi / 2) < x & x < transc.pi / 2 ==> atn (transc.tan x) = x" |
| 14516 | 2307 |
by (import transc TAN_ATN) |
2308 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2309 |
lemma TAN_SEC: "transc.cos x ~= 0 ==> 1 + transc.tan x ^ 2 = inverse (transc.cos x) ^ 2" |
| 14516 | 2310 |
by (import transc TAN_SEC) |
2311 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2312 |
lemma SIN_COS_SQ: "0 <= x & x <= transc.pi |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2313 |
==> transc.sin x = transc.sqrt (1 - transc.cos x ^ 2)" |
| 14516 | 2314 |
by (import transc SIN_COS_SQ) |
2315 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2316 |
lemma COS_SIN_SQ: "- (transc.pi / 2) <= x & x <= transc.pi / 2 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2317 |
==> transc.cos x = transc.sqrt (1 - transc.sin x ^ 2)" |
| 14516 | 2318 |
by (import transc COS_SIN_SQ) |
2319 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2320 |
lemma COS_ATN_NZ: "transc.cos (atn x) ~= 0" |
| 14516 | 2321 |
by (import transc COS_ATN_NZ) |
2322 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2323 |
lemma COS_ASN_NZ: "- 1 < x & x < 1 ==> transc.cos (asn x) ~= 0" |
| 14516 | 2324 |
by (import transc COS_ASN_NZ) |
2325 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2326 |
lemma SIN_ACS_NZ: "- 1 < x & x < 1 ==> transc.sin (acs x) ~= 0" |
| 14516 | 2327 |
by (import transc SIN_ACS_NZ) |
2328 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2329 |
lemma COS_SIN_SQRT: "0 <= transc.cos x ==> transc.cos x = transc.sqrt (1 - transc.sin x ^ 2)" |
| 14516 | 2330 |
by (import transc COS_SIN_SQRT) |
2331 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2332 |
lemma SIN_COS_SQRT: "0 <= transc.sin x ==> transc.sin x = transc.sqrt (1 - transc.cos x ^ 2)" |
| 14516 | 2333 |
by (import transc SIN_COS_SQRT) |
2334 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2335 |
lemma DIFF_LN: "0 < x ==> diffl transc.ln (inverse x) x" |
| 14516 | 2336 |
by (import transc DIFF_LN) |
2337 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2338 |
lemma DIFF_ASN_LEMMA: "- 1 < x & x < 1 ==> diffl asn (inverse (transc.cos (asn x))) x" |
| 14516 | 2339 |
by (import transc DIFF_ASN_LEMMA) |
2340 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2341 |
lemma DIFF_ASN: "- 1 < x & x < 1 ==> diffl asn (inverse (transc.sqrt (1 - x ^ 2))) x" |
| 14516 | 2342 |
by (import transc DIFF_ASN) |
2343 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2344 |
lemma DIFF_ACS_LEMMA: "- 1 < x & x < 1 ==> diffl acs (inverse (- transc.sin (acs x))) x" |
| 14516 | 2345 |
by (import transc DIFF_ACS_LEMMA) |
2346 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2347 |
lemma DIFF_ACS: "- 1 < x & x < 1 ==> diffl acs (- inverse (transc.sqrt (1 - x ^ 2))) x" |
| 14516 | 2348 |
by (import transc DIFF_ACS) |
2349 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2350 |
lemma DIFF_ATN: "diffl atn (inverse (1 + x ^ 2)) x" |
| 14516 | 2351 |
by (import transc DIFF_ATN) |
2352 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2353 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2354 |
division :: "real * real => (nat => real) => bool" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2355 |
"division == |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2356 |
%(a, b) D. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2357 |
D 0 = a & (EX N. (ALL n<N. D n < D (Suc n)) & (ALL n>=N. D n = b))" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2358 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2359 |
lemma division: "division (a, b) D = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2360 |
(D 0 = a & (EX N. (ALL n<N. D n < D (Suc n)) & (ALL n>=N. D n = b)))" |
| 14516 | 2361 |
by (import transc division) |
2362 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2363 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2364 |
dsize :: "(nat => real) => nat" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2365 |
"dsize == %D. SOME N. (ALL n<N. D n < D (Suc n)) & (ALL n>=N. D n = D N)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2366 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2367 |
lemma dsize: "dsize D = (SOME N. (ALL n<N. D n < D (Suc n)) & (ALL n>=N. D n = D N))" |
| 14516 | 2368 |
by (import transc dsize) |
2369 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2370 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2371 |
tdiv :: "real * real => (nat => real) * (nat => real) => bool" where |
| 14516 | 2372 |
"tdiv == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2373 |
%(a, b) (D, p). division (a, b) D & (ALL n. D n <= p n & p n <= D (Suc n))" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2374 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2375 |
lemma tdiv: "tdiv (a, b) (D, p) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2376 |
(division (a, b) D & (ALL n. D n <= p n & p n <= D (Suc n)))" |
| 14516 | 2377 |
by (import transc tdiv) |
2378 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2379 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2380 |
gauge :: "(real => bool) => (real => real) => bool" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2381 |
"gauge == %E g. ALL x. E x --> 0 < g x" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2382 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2383 |
lemma gauge: "gauge E g = (ALL x. E x --> 0 < g x)" |
| 14516 | 2384 |
by (import transc gauge) |
2385 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2386 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2387 |
fine :: "(real => real) => (nat => real) * (nat => real) => bool" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2388 |
"fine == %g (D, p). ALL n<dsize D. D (Suc n) - D n < g (p n)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2389 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2390 |
lemma fine: "fine g (D, p) = (ALL n<dsize D. D (Suc n) - D n < g (p n))" |
| 14516 | 2391 |
by (import transc fine) |
2392 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2393 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2394 |
rsum :: "(nat => real) * (nat => real) => (real => real) => real" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2395 |
"rsum == %(D, p) f. real.sum (0, dsize D) (%n. f (p n) * (D (Suc n) - D n))" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2396 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2397 |
lemma rsum: "rsum (D, p) f = real.sum (0, dsize D) (%n. f (p n) * (D (Suc n) - D n))" |
| 14516 | 2398 |
by (import transc rsum) |
2399 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2400 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2401 |
Dint :: "real * real => (real => real) => real => bool" where |
| 17694 | 2402 |
"Dint == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2403 |
%(a, b) f k. |
| 17694 | 2404 |
ALL e>0. |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2405 |
EX g. gauge (%x. a <= x & x <= b) g & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2406 |
(ALL D p. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2407 |
tdiv (a, b) (D, p) & fine g (D, p) --> |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2408 |
abs (rsum (D, p) f - k) < e)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2409 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2410 |
lemma Dint: "Dint (a, b) f k = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2411 |
(ALL e>0. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2412 |
EX g. gauge (%x. a <= x & x <= b) g & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2413 |
(ALL D p. |
| 17694 | 2414 |
tdiv (a, b) (D, p) & fine g (D, p) --> |
2415 |
abs (rsum (D, p) f - k) < e))" |
|
| 14516 | 2416 |
by (import transc Dint) |
2417 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2418 |
lemma DIVISION_0: "a = b ==> dsize (%n. if n = 0 then a else b) = 0" |
| 14516 | 2419 |
by (import transc DIVISION_0) |
2420 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2421 |
lemma DIVISION_1: "a < b ==> dsize (%n. if n = 0 then a else b) = 1" |
| 14516 | 2422 |
by (import transc DIVISION_1) |
2423 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2424 |
lemma DIVISION_SINGLE: "a <= b ==> division (a, b) (%n. if n = 0 then a else b)" |
| 14516 | 2425 |
by (import transc DIVISION_SINGLE) |
2426 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2427 |
lemma DIVISION_LHS: "division (a, b) D ==> D 0 = a" |
| 14516 | 2428 |
by (import transc DIVISION_LHS) |
2429 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2430 |
lemma DIVISION_THM: "division (a, b) D = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2431 |
(D 0 = a & (ALL n<dsize D. D n < D (Suc n)) & (ALL n>=dsize D. D n = b))" |
| 14516 | 2432 |
by (import transc DIVISION_THM) |
2433 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2434 |
lemma DIVISION_RHS: "division (a, b) D ==> D (dsize D) = b" |
| 14516 | 2435 |
by (import transc DIVISION_RHS) |
2436 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2437 |
lemma DIVISION_LT_GEN: "division (a, b) D & m < n & n <= dsize D ==> D m < D n" |
| 14516 | 2438 |
by (import transc DIVISION_LT_GEN) |
2439 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2440 |
lemma DIVISION_LT: "[| division (a, b) D; n < dsize D |] ==> D 0 < D (Suc n)" |
| 14516 | 2441 |
by (import transc DIVISION_LT) |
2442 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2443 |
lemma DIVISION_LE: "division (a, b) D ==> a <= b" |
| 14516 | 2444 |
by (import transc DIVISION_LE) |
2445 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2446 |
lemma DIVISION_GT: "[| division (a, b) D; n < dsize D |] ==> D n < D (dsize D)" |
| 14516 | 2447 |
by (import transc DIVISION_GT) |
2448 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2449 |
lemma DIVISION_EQ: "division (a, b) D ==> (a = b) = (dsize D = 0)" |
| 14516 | 2450 |
by (import transc DIVISION_EQ) |
2451 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2452 |
lemma DIVISION_LBOUND: "division (a, b) D ==> a <= D r" |
| 14516 | 2453 |
by (import transc DIVISION_LBOUND) |
2454 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2455 |
lemma DIVISION_LBOUND_LT: "division (a, b) D & dsize D ~= 0 ==> a < D (Suc n)" |
| 14516 | 2456 |
by (import transc DIVISION_LBOUND_LT) |
2457 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2458 |
lemma DIVISION_UBOUND: "division (a, b) D ==> D r <= b" |
| 14516 | 2459 |
by (import transc DIVISION_UBOUND) |
2460 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2461 |
lemma DIVISION_UBOUND_LT: "division (a, b) D & n < dsize D ==> D n < b" |
| 14516 | 2462 |
by (import transc DIVISION_UBOUND_LT) |
2463 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2464 |
lemma DIVISION_APPEND: "(EX D1 p1. tdiv (a, b) (D1, p1) & fine g (D1, p1)) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2465 |
(EX D2 p2. tdiv (b, c) (D2, p2) & fine g (D2, p2)) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2466 |
==> EX x p. tdiv (a, c) (x, p) & fine g (x, p)" |
| 14516 | 2467 |
by (import transc DIVISION_APPEND) |
2468 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2469 |
lemma DIVISION_EXISTS: "a <= b & gauge (%x. a <= x & x <= b) g |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2470 |
==> EX D p. tdiv (a, b) (D, p) & fine g (D, p)" |
| 14516 | 2471 |
by (import transc DIVISION_EXISTS) |
2472 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2473 |
lemma GAUGE_MIN: "gauge E g1 & gauge E g2 ==> gauge E (%x. if g1 x < g2 x then g1 x else g2 x)" |
| 14516 | 2474 |
by (import transc GAUGE_MIN) |
2475 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2476 |
lemma FINE_MIN: "fine (%x. if g1 x < g2 x then g1 x else g2 x) (D, p) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2477 |
==> fine g1 (D, p) & fine g2 (D, p)" |
| 14516 | 2478 |
by (import transc FINE_MIN) |
2479 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2480 |
lemma DINT_UNIQ: "a <= b & Dint (a, b) f k1 & Dint (a, b) f k2 ==> k1 = k2" |
| 14516 | 2481 |
by (import transc DINT_UNIQ) |
2482 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2483 |
lemma INTEGRAL_NULL: "Dint (a, a) f 0" |
| 14516 | 2484 |
by (import transc INTEGRAL_NULL) |
2485 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2486 |
lemma FTC1: "a <= b & (ALL x. a <= x & x <= b --> diffl f (f' x) x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2487 |
==> Dint (a, b) f' (f b - f a)" |
| 14516 | 2488 |
by (import transc FTC1) |
2489 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2490 |
lemma MCLAURIN: "0 < h & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2491 |
0 < n & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2492 |
diff 0 = f & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2493 |
(ALL m t. m < n & 0 <= t & t <= h --> diffl (diff m) (diff (Suc m) t) t) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2494 |
==> EX t>0. |
| 17694 | 2495 |
t < h & |
2496 |
f h = |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2497 |
real.sum (0, n) (%m. diff m 0 / real (FACT m) * h ^ m) + |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2498 |
diff n t / real (FACT n) * h ^ n" |
| 14516 | 2499 |
by (import transc MCLAURIN) |
2500 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2501 |
lemma MCLAURIN_NEG: "h < 0 & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2502 |
0 < n & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2503 |
diff 0 = f & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2504 |
(ALL m t. m < n & h <= t & t <= 0 --> diffl (diff m) (diff (Suc m) t) t) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2505 |
==> EX t>h. |
| 17694 | 2506 |
t < 0 & |
2507 |
f h = |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2508 |
real.sum (0, n) (%m. diff m 0 / real (FACT m) * h ^ m) + |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2509 |
diff n t / real (FACT n) * h ^ n" |
| 14516 | 2510 |
by (import transc MCLAURIN_NEG) |
2511 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2512 |
lemma MCLAURIN_ALL_LT: "[| diff 0 = f & (ALL m x. diffl (diff m) (diff (Suc m) x) x); |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2513 |
x ~= 0 & 0 < n |] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2514 |
==> EX t. 0 < abs t & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2515 |
abs t < abs x & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2516 |
f x = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2517 |
real.sum (0, n) (%m. diff m 0 / real (FACT m) * x ^ m) + |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2518 |
diff n t / real (FACT n) * x ^ n" |
| 14516 | 2519 |
by (import transc MCLAURIN_ALL_LT) |
2520 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2521 |
lemma MCLAURIN_ZERO: "(x::real) = (0::real) & (0::nat) < (n::nat) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2522 |
==> real.sum (0::nat, n) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2523 |
(%m::nat. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2524 |
(diff::nat => real => real) m (0::real) / real (FACT m) * x ^ m) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2525 |
diff (0::nat) (0::real)" |
| 14516 | 2526 |
by (import transc MCLAURIN_ZERO) |
2527 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2528 |
lemma MCLAURIN_ALL_LE: "diff 0 = f & (ALL m x. diffl (diff m) (diff (Suc m) x) x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2529 |
==> EX t. abs t <= abs x & |
| 17694 | 2530 |
f x = |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2531 |
real.sum (0, n) (%m. diff m 0 / real (FACT m) * x ^ m) + |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2532 |
diff n t / real (FACT n) * x ^ n" |
| 14516 | 2533 |
by (import transc MCLAURIN_ALL_LE) |
2534 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2535 |
lemma MCLAURIN_EXP_LT: "x ~= 0 & 0 < n |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2536 |
==> EX xa. |
| 17694 | 2537 |
0 < abs xa & |
2538 |
abs xa < abs x & |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2539 |
transc.exp x = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2540 |
real.sum (0, n) (%m. x ^ m / real (FACT m)) + |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2541 |
transc.exp xa / real (FACT n) * x ^ n" |
| 14516 | 2542 |
by (import transc MCLAURIN_EXP_LT) |
2543 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2544 |
lemma MCLAURIN_EXP_LE: "EX xa. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2545 |
abs xa <= abs x & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2546 |
transc.exp x = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2547 |
real.sum (0, n) (%m. x ^ m / real (FACT m)) + |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2548 |
transc.exp xa / real (FACT n) * x ^ n" |
| 14516 | 2549 |
by (import transc MCLAURIN_EXP_LE) |
2550 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2551 |
lemma DIFF_LN_COMPOSITE: "diffl g m x & 0 < g x ==> diffl (%x. transc.ln (g x)) (inverse (g x) * m) x" |
| 14516 | 2552 |
by (import transc DIFF_LN_COMPOSITE) |
2553 |
||
2554 |
;end_setup |
|
2555 |
||
|
46787
3d3d8f8929a7
file system structure separating HOL4 and HOL Light concerns
haftmann
parents:
46780
diff
changeset
|
2556 |
setup_theory "~~/src/HOL/Import/HOL4/Generated" poly |
| 14516 | 2557 |
|
2558 |
consts |
|
2559 |
poly :: "real list => real => real" |
|
2560 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2561 |
specification (poly_primdef: poly) poly_def: "(ALL x. poly [] x = 0) & (ALL h t x. poly (h # t) x = h + x * poly t x)" |
| 14516 | 2562 |
by (import poly poly_def) |
2563 |
||
2564 |
consts |
|
2565 |
poly_add :: "real list => real list => real list" |
|
2566 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2567 |
specification (poly_add_primdef: poly_add) poly_add_def: "(ALL l2. poly_add [] l2 = l2) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2568 |
(ALL h t l2. |
| 14516 | 2569 |
poly_add (h # t) l2 = |
2570 |
(if l2 = [] then h # t else (h + hd l2) # poly_add t (tl l2)))" |
|
2571 |
by (import poly poly_add_def) |
|
2572 |
||
2573 |
consts |
|
2574 |
"##" :: "real => real list => real list" ("##")
|
|
2575 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2576 |
specification ("##") poly_cmul_def: "(ALL c. ## c [] = []) & (ALL c h t. ## c (h # t) = c * h # ## c t)"
|
| 14516 | 2577 |
by (import poly poly_cmul_def) |
2578 |
||
2579 |
consts |
|
2580 |
poly_neg :: "real list => real list" |
|
2581 |
||
2582 |
defs |
|
| 17652 | 2583 |
poly_neg_primdef: "poly_neg == ## (- 1)" |
2584 |
||
2585 |
lemma poly_neg_def: "poly_neg = ## (- 1)" |
|
| 14516 | 2586 |
by (import poly poly_neg_def) |
2587 |
||
2588 |
consts |
|
2589 |
poly_mul :: "real list => real list => real list" |
|
2590 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2591 |
specification (poly_mul_primdef: poly_mul) poly_mul_def: "(ALL l2. poly_mul [] l2 = []) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2592 |
(ALL h t l2. |
| 14516 | 2593 |
poly_mul (h # t) l2 = |
| 17652 | 2594 |
(if t = [] then ## h l2 else poly_add (## h l2) (0 # poly_mul t l2)))" |
| 14516 | 2595 |
by (import poly poly_mul_def) |
2596 |
||
2597 |
consts |
|
2598 |
poly_exp :: "real list => nat => real list" |
|
2599 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2600 |
specification (poly_exp_primdef: poly_exp) poly_exp_def: "(ALL p. poly_exp p 0 = [1]) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2601 |
(ALL p n. poly_exp p (Suc n) = poly_mul p (poly_exp p n))" |
| 14516 | 2602 |
by (import poly poly_exp_def) |
2603 |
||
2604 |
consts |
|
2605 |
poly_diff_aux :: "nat => real list => real list" |
|
2606 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2607 |
specification (poly_diff_aux_primdef: poly_diff_aux) poly_diff_aux_def: "(ALL n. poly_diff_aux n [] = []) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2608 |
(ALL n h t. poly_diff_aux n (h # t) = real n * h # poly_diff_aux (Suc n) t)" |
| 14516 | 2609 |
by (import poly poly_diff_aux_def) |
2610 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2611 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2612 |
diff :: "real list => real list" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2613 |
"diff == %l. if l = [] then [] else poly_diff_aux 1 (tl l)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2614 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2615 |
lemma poly_diff_def: "diff l = (if l = [] then [] else poly_diff_aux 1 (tl l))" |
| 14516 | 2616 |
by (import poly poly_diff_def) |
2617 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2618 |
lemma POLY_ADD_CLAUSES: "poly_add [] p2 = p2 & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2619 |
poly_add p1 [] = p1 & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2620 |
poly_add (h1 # t1) (h2 # t2) = (h1 + h2) # poly_add t1 t2" |
| 14516 | 2621 |
by (import poly POLY_ADD_CLAUSES) |
2622 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2623 |
lemma POLY_CMUL_CLAUSES: "## c [] = [] & ## c (h # t) = c * h # ## c t" |
| 14516 | 2624 |
by (import poly POLY_CMUL_CLAUSES) |
2625 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2626 |
lemma POLY_NEG_CLAUSES: "poly_neg [] = [] & poly_neg (h # t) = - h # poly_neg t" |
| 14516 | 2627 |
by (import poly POLY_NEG_CLAUSES) |
2628 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2629 |
lemma POLY_MUL_CLAUSES: "poly_mul [] p2 = [] & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2630 |
poly_mul [h1] p2 = ## h1 p2 & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2631 |
poly_mul (h1 # k1 # t1) p2 = poly_add (## h1 p2) (0 # poly_mul (k1 # t1) p2)" |
| 14516 | 2632 |
by (import poly POLY_MUL_CLAUSES) |
2633 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2634 |
lemma POLY_DIFF_CLAUSES: "diff [] = [] & diff [c] = [] & diff (h # t) = poly_diff_aux 1 t" |
| 14516 | 2635 |
by (import poly POLY_DIFF_CLAUSES) |
2636 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2637 |
lemma POLY_ADD: "poly (poly_add t p2) x = poly t x + poly p2 x" |
| 14516 | 2638 |
by (import poly POLY_ADD) |
2639 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2640 |
lemma POLY_CMUL: "poly (## c t) x = c * poly t x" |
| 14516 | 2641 |
by (import poly POLY_CMUL) |
2642 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2643 |
lemma POLY_NEG: "poly (poly_neg x) xa = - poly x xa" |
| 14516 | 2644 |
by (import poly POLY_NEG) |
2645 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2646 |
lemma POLY_MUL: "poly (poly_mul t p2) x = poly t x * poly p2 x" |
| 14516 | 2647 |
by (import poly POLY_MUL) |
2648 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2649 |
lemma POLY_EXP: "poly (poly_exp p n) x = poly p x ^ n" |
| 14516 | 2650 |
by (import poly POLY_EXP) |
2651 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2652 |
lemma POLY_DIFF_LEMMA: "diffl (%x. x ^ Suc n * poly t x) (x ^ n * poly (poly_diff_aux (Suc n) t) x) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2653 |
x" |
| 14516 | 2654 |
by (import poly POLY_DIFF_LEMMA) |
2655 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2656 |
lemma POLY_DIFF: "diffl (poly t) (poly (diff t) x) x" |
| 14516 | 2657 |
by (import poly POLY_DIFF) |
2658 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2659 |
lemma POLY_DIFFERENTIABLE: "lim.differentiable (poly l) x" |
| 14516 | 2660 |
by (import poly POLY_DIFFERENTIABLE) |
2661 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2662 |
lemma POLY_CONT: "contl (poly l) x" |
| 14516 | 2663 |
by (import poly POLY_CONT) |
2664 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2665 |
lemma POLY_IVT_POS: "xa < xb & poly x xa < 0 & 0 < poly x xb |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2666 |
==> EX xc>xa. xc < xb & poly x xc = 0" |
| 14516 | 2667 |
by (import poly POLY_IVT_POS) |
2668 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2669 |
lemma POLY_IVT_NEG: "a < b & 0 < poly p a & poly p b < 0 ==> EX x>a. x < b & poly p x = 0" |
| 14516 | 2670 |
by (import poly POLY_IVT_NEG) |
2671 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2672 |
lemma POLY_MVT: "a < b ==> EX x>a. x < b & poly p b - poly p a = (b - a) * poly (diff p) x" |
| 14516 | 2673 |
by (import poly POLY_MVT) |
2674 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2675 |
lemma POLY_ADD_RZERO: "poly (poly_add x []) = poly x" |
| 14516 | 2676 |
by (import poly POLY_ADD_RZERO) |
2677 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2678 |
lemma POLY_MUL_ASSOC: "poly (poly_mul x (poly_mul xa xb)) = poly (poly_mul (poly_mul x xa) xb)" |
| 14516 | 2679 |
by (import poly POLY_MUL_ASSOC) |
2680 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2681 |
lemma POLY_EXP_ADD: "poly (poly_exp xb (xa + x)) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2682 |
poly (poly_mul (poly_exp xb xa) (poly_exp xb x))" |
| 14516 | 2683 |
by (import poly POLY_EXP_ADD) |
2684 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2685 |
lemma POLY_DIFF_AUX_ADD: "poly (poly_diff_aux n (poly_add t p2)) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2686 |
poly (poly_add (poly_diff_aux n t) (poly_diff_aux n p2))" |
| 14516 | 2687 |
by (import poly POLY_DIFF_AUX_ADD) |
2688 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2689 |
lemma POLY_DIFF_AUX_CMUL: "poly (poly_diff_aux n (## c t)) = poly (## c (poly_diff_aux n t))" |
| 14516 | 2690 |
by (import poly POLY_DIFF_AUX_CMUL) |
2691 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2692 |
lemma POLY_DIFF_AUX_NEG: "poly (poly_diff_aux xa (poly_neg x)) = poly (poly_neg (poly_diff_aux xa x))" |
| 14516 | 2693 |
by (import poly POLY_DIFF_AUX_NEG) |
2694 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2695 |
lemma POLY_DIFF_AUX_MUL_LEMMA: "poly (poly_diff_aux (Suc n) t) = poly (poly_add (poly_diff_aux n t) t)" |
| 14516 | 2696 |
by (import poly POLY_DIFF_AUX_MUL_LEMMA) |
2697 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2698 |
lemma POLY_DIFF_ADD: "poly (diff (poly_add t p2)) = poly (poly_add (diff t) (diff p2))" |
| 14516 | 2699 |
by (import poly POLY_DIFF_ADD) |
2700 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2701 |
lemma POLY_DIFF_CMUL: "poly (diff (## c t)) = poly (## c (diff t))" |
| 14516 | 2702 |
by (import poly POLY_DIFF_CMUL) |
2703 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2704 |
lemma POLY_DIFF_NEG: "poly (diff (poly_neg x)) = poly (poly_neg (diff x))" |
| 14516 | 2705 |
by (import poly POLY_DIFF_NEG) |
2706 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2707 |
lemma POLY_DIFF_MUL_LEMMA: "poly (diff (xa # x)) = poly (poly_add (0 # diff x) x)" |
| 14516 | 2708 |
by (import poly POLY_DIFF_MUL_LEMMA) |
2709 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2710 |
lemma POLY_DIFF_MUL: "poly (diff (poly_mul t p2)) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2711 |
poly (poly_add (poly_mul t (diff p2)) (poly_mul (diff t) p2))" |
| 14516 | 2712 |
by (import poly POLY_DIFF_MUL) |
2713 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2714 |
lemma POLY_DIFF_EXP: "poly (diff (poly_exp p (Suc n))) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2715 |
poly (poly_mul (## (real (Suc n)) (poly_exp p n)) (diff p))" |
| 14516 | 2716 |
by (import poly POLY_DIFF_EXP) |
2717 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2718 |
lemma POLY_DIFF_EXP_PRIME: "poly (diff (poly_exp [- a, 1] (Suc n))) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2719 |
poly (## (real (Suc n)) (poly_exp [- a, 1] n))" |
| 14516 | 2720 |
by (import poly POLY_DIFF_EXP_PRIME) |
2721 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2722 |
lemma POLY_LINEAR_REM: "EX q r. h # t = poly_add [r] (poly_mul [- a, 1] q)" |
| 14516 | 2723 |
by (import poly POLY_LINEAR_REM) |
2724 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2725 |
lemma POLY_LINEAR_DIVIDES: "(poly t a = 0) = (t = [] | (EX q. t = poly_mul [- a, 1] q))" |
| 14516 | 2726 |
by (import poly POLY_LINEAR_DIVIDES) |
2727 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2728 |
lemma POLY_LENGTH_MUL: "length (poly_mul [- a, 1] x) = Suc (length x)" |
| 14516 | 2729 |
by (import poly POLY_LENGTH_MUL) |
2730 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2731 |
lemma POLY_ROOTS_INDEX_LEMMA: "poly p ~= poly [] & length p = n |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2732 |
==> EX i. ALL x. poly p x = 0 --> (EX m<=n. x = i m)" |
| 14516 | 2733 |
by (import poly POLY_ROOTS_INDEX_LEMMA) |
2734 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2735 |
lemma POLY_ROOTS_INDEX_LENGTH: "poly p ~= poly [] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2736 |
==> EX i. ALL x. poly p x = 0 --> (EX n<=length p. x = i n)" |
| 14516 | 2737 |
by (import poly POLY_ROOTS_INDEX_LENGTH) |
2738 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2739 |
lemma POLY_ROOTS_FINITE_LEMMA: "poly (p::real list) ~= poly [] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2740 |
==> EX (N::nat) i::nat => real. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2741 |
ALL x::real. poly p x = (0::real) --> (EX n<N. x = i n)" |
| 14516 | 2742 |
by (import poly POLY_ROOTS_FINITE_LEMMA) |
2743 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2744 |
lemma FINITE_LEMMA: "(!!xb::real. (xa::real => bool) xb ==> EX n<x::nat. xb = (i::nat => real) n) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2745 |
==> EX a::real. ALL x::real. xa x --> x < a" |
| 14516 | 2746 |
by (import poly FINITE_LEMMA) |
2747 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2748 |
lemma POLY_ROOTS_FINITE: "(poly (p::real list) ~= poly []) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2749 |
(EX (N::nat) i::nat => real. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2750 |
ALL x::real. poly p x = (0::real) --> (EX n<N. x = i n))" |
| 14516 | 2751 |
by (import poly POLY_ROOTS_FINITE) |
2752 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2753 |
lemma POLY_ENTIRE_LEMMA: "poly p ~= poly [] & poly q ~= poly [] ==> poly (poly_mul p q) ~= poly []" |
| 14516 | 2754 |
by (import poly POLY_ENTIRE_LEMMA) |
2755 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2756 |
lemma POLY_ENTIRE: "(poly (poly_mul p q) = poly []) = (poly p = poly [] | poly q = poly [])" |
| 14516 | 2757 |
by (import poly POLY_ENTIRE) |
2758 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2759 |
lemma POLY_MUL_LCANCEL: "(poly (poly_mul x xa) = poly (poly_mul x xb)) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2760 |
(poly x = poly [] | poly xa = poly xb)" |
| 14516 | 2761 |
by (import poly POLY_MUL_LCANCEL) |
2762 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2763 |
lemma POLY_EXP_EQ_0: "(poly (poly_exp p n) = poly []) = (poly p = poly [] & n ~= 0)" |
| 14516 | 2764 |
by (import poly POLY_EXP_EQ_0) |
2765 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2766 |
lemma POLY_PRIME_EQ_0: "poly [a, 1] ~= poly []" |
| 14516 | 2767 |
by (import poly POLY_PRIME_EQ_0) |
2768 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2769 |
lemma POLY_EXP_PRIME_EQ_0: "poly (poly_exp [a, 1] n) ~= poly []" |
| 14516 | 2770 |
by (import poly POLY_EXP_PRIME_EQ_0) |
2771 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2772 |
lemma POLY_ZERO_LEMMA: "poly (h # t) = poly [] ==> h = 0 & poly t = poly []" |
| 14516 | 2773 |
by (import poly POLY_ZERO_LEMMA) |
2774 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2775 |
lemma POLY_ZERO: "(poly t = poly []) = list_all (%c. c = 0) t" |
| 14516 | 2776 |
by (import poly POLY_ZERO) |
2777 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2778 |
lemma POLY_DIFF_AUX_ISZERO: "list_all (%c. c = 0) (poly_diff_aux (Suc n) t) = list_all (%c. c = 0) t" |
| 14516 | 2779 |
by (import poly POLY_DIFF_AUX_ISZERO) |
2780 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2781 |
lemma POLY_DIFF_ISZERO: "poly (diff x) = poly [] ==> EX h. poly x = poly [h]" |
| 14516 | 2782 |
by (import poly POLY_DIFF_ISZERO) |
2783 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2784 |
lemma POLY_DIFF_ZERO: "poly x = poly [] ==> poly (diff x) = poly []" |
| 14516 | 2785 |
by (import poly POLY_DIFF_ZERO) |
2786 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2787 |
lemma POLY_DIFF_WELLDEF: "poly p = poly q ==> poly (diff p) = poly (diff q)" |
| 14516 | 2788 |
by (import poly POLY_DIFF_WELLDEF) |
2789 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2790 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2791 |
poly_divides :: "real list => real list => bool" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2792 |
"poly_divides == %p1 p2. EX q. poly p2 = poly (poly_mul p1 q)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2793 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2794 |
lemma poly_divides: "poly_divides p1 p2 = (EX q. poly p2 = poly (poly_mul p1 q))" |
| 14516 | 2795 |
by (import poly poly_divides) |
2796 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2797 |
lemma POLY_PRIMES: "poly_divides [a, 1] (poly_mul p q) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2798 |
(poly_divides [a, 1] p | poly_divides [a, 1] q)" |
| 14516 | 2799 |
by (import poly POLY_PRIMES) |
2800 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2801 |
lemma POLY_DIVIDES_REFL: "poly_divides p p" |
| 14516 | 2802 |
by (import poly POLY_DIVIDES_REFL) |
2803 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2804 |
lemma POLY_DIVIDES_TRANS: "poly_divides p q & poly_divides q r ==> poly_divides p r" |
| 14516 | 2805 |
by (import poly POLY_DIVIDES_TRANS) |
2806 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2807 |
lemma POLY_DIVIDES_EXP: "m <= n ==> poly_divides (poly_exp p m) (poly_exp p n)" |
| 14516 | 2808 |
by (import poly POLY_DIVIDES_EXP) |
2809 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2810 |
lemma POLY_EXP_DIVIDES: "poly_divides (poly_exp p n) q & m <= n ==> poly_divides (poly_exp p m) q" |
| 14516 | 2811 |
by (import poly POLY_EXP_DIVIDES) |
2812 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2813 |
lemma POLY_DIVIDES_ADD: "poly_divides p q & poly_divides p r ==> poly_divides p (poly_add q r)" |
| 14516 | 2814 |
by (import poly POLY_DIVIDES_ADD) |
2815 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2816 |
lemma POLY_DIVIDES_SUB: "poly_divides p q & poly_divides p (poly_add q r) ==> poly_divides p r" |
| 14516 | 2817 |
by (import poly POLY_DIVIDES_SUB) |
2818 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2819 |
lemma POLY_DIVIDES_SUB2: "poly_divides p r & poly_divides p (poly_add q r) ==> poly_divides p q" |
| 14516 | 2820 |
by (import poly POLY_DIVIDES_SUB2) |
2821 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2822 |
lemma POLY_DIVIDES_ZERO: "poly p = poly [] ==> poly_divides q p" |
| 14516 | 2823 |
by (import poly POLY_DIVIDES_ZERO) |
2824 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2825 |
lemma POLY_ORDER_EXISTS: "length p = d & poly p ~= poly [] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2826 |
==> EX x. poly_divides (poly_exp [- a, 1] x) p & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2827 |
~ poly_divides (poly_exp [- a, 1] (Suc x)) p" |
| 14516 | 2828 |
by (import poly POLY_ORDER_EXISTS) |
2829 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2830 |
lemma POLY_ORDER: "poly p ~= poly [] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2831 |
==> EX! n. |
| 17694 | 2832 |
poly_divides (poly_exp [- a, 1] n) p & |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2833 |
~ poly_divides (poly_exp [- a, 1] (Suc n)) p" |
| 14516 | 2834 |
by (import poly POLY_ORDER) |
2835 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2836 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2837 |
poly_order :: "real => real list => nat" where |
| 14516 | 2838 |
"poly_order == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2839 |
%a p. SOME n. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2840 |
poly_divides (poly_exp [- a, 1] n) p & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2841 |
~ poly_divides (poly_exp [- a, 1] (Suc n)) p" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2842 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2843 |
lemma poly_order: "poly_order a p = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2844 |
(SOME n. |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2845 |
poly_divides (poly_exp [- a, 1] n) p & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2846 |
~ poly_divides (poly_exp [- a, 1] (Suc n)) p)" |
| 14516 | 2847 |
by (import poly poly_order) |
2848 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2849 |
lemma ORDER: "(poly_divides (poly_exp [- a, 1] n) p & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2850 |
~ poly_divides (poly_exp [- a, 1] (Suc n)) p) = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2851 |
(n = poly_order a p & poly p ~= poly [])" |
| 14516 | 2852 |
by (import poly ORDER) |
2853 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2854 |
lemma ORDER_THM: "poly p ~= poly [] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2855 |
==> poly_divides (poly_exp [- a, 1] (poly_order a p)) p & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2856 |
~ poly_divides (poly_exp [- a, 1] (Suc (poly_order a p))) p" |
| 14516 | 2857 |
by (import poly ORDER_THM) |
2858 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2859 |
lemma ORDER_UNIQUE: "poly p ~= poly [] & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2860 |
poly_divides (poly_exp [- a, 1] n) p & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2861 |
~ poly_divides (poly_exp [- a, 1] (Suc n)) p |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2862 |
==> n = poly_order a p" |
| 14516 | 2863 |
by (import poly ORDER_UNIQUE) |
2864 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2865 |
lemma ORDER_POLY: "poly p = poly q ==> poly_order a p = poly_order a q" |
| 14516 | 2866 |
by (import poly ORDER_POLY) |
2867 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2868 |
lemma ORDER_ROOT: "(poly p a = 0) = (poly p = poly [] | poly_order a p ~= 0)" |
| 14516 | 2869 |
by (import poly ORDER_ROOT) |
2870 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2871 |
lemma ORDER_DIVIDES: "poly_divides (poly_exp [- a, 1] n) p = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2872 |
(poly p = poly [] | n <= poly_order a p)" |
| 14516 | 2873 |
by (import poly ORDER_DIVIDES) |
2874 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2875 |
lemma ORDER_DECOMP: "poly p ~= poly [] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2876 |
==> EX x. poly p = poly (poly_mul (poly_exp [- a, 1] (poly_order a p)) x) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2877 |
~ poly_divides [- a, 1] x" |
| 14516 | 2878 |
by (import poly ORDER_DECOMP) |
2879 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2880 |
lemma ORDER_MUL: "poly (poly_mul p q) ~= poly [] |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2881 |
==> poly_order a (poly_mul p q) = poly_order a p + poly_order a q" |
| 14516 | 2882 |
by (import poly ORDER_MUL) |
2883 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2884 |
lemma ORDER_DIFF: "poly (diff p) ~= poly [] & poly_order a p ~= 0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2885 |
==> poly_order a p = Suc (poly_order a (diff p))" |
| 14516 | 2886 |
by (import poly ORDER_DIFF) |
2887 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2888 |
lemma POLY_SQUAREFREE_DECOMP_ORDER: "poly (diff p) ~= poly [] & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2889 |
poly p = poly (poly_mul q d) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2890 |
poly (diff p) = poly (poly_mul e d) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2891 |
poly d = poly (poly_add (poly_mul r p) (poly_mul s (diff p))) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2892 |
==> poly_order a q = (if poly_order a p = 0 then 0 else 1)" |
| 14516 | 2893 |
by (import poly POLY_SQUAREFREE_DECOMP_ORDER) |
2894 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2895 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2896 |
rsquarefree :: "real list => bool" where |
| 14516 | 2897 |
"rsquarefree == |
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2898 |
%p. poly p ~= poly [] & (ALL a. poly_order a p = 0 | poly_order a p = 1)" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2899 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2900 |
lemma rsquarefree: "rsquarefree p = |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2901 |
(poly p ~= poly [] & (ALL a. poly_order a p = 0 | poly_order a p = 1))" |
| 14516 | 2902 |
by (import poly rsquarefree) |
2903 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2904 |
lemma RSQUAREFREE_ROOTS: "rsquarefree p = (ALL a. ~ (poly p a = 0 & poly (diff p) a = 0))" |
| 14516 | 2905 |
by (import poly RSQUAREFREE_ROOTS) |
2906 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2907 |
lemma RSQUAREFREE_DECOMP: "rsquarefree p & poly p a = 0 |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2908 |
==> EX q. poly p = poly (poly_mul [- a, 1] q) & poly q a ~= 0" |
| 14516 | 2909 |
by (import poly RSQUAREFREE_DECOMP) |
2910 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2911 |
lemma POLY_SQUAREFREE_DECOMP: "poly (diff p) ~= poly [] & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2912 |
poly p = poly (poly_mul q d) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2913 |
poly (diff p) = poly (poly_mul e d) & |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2914 |
poly d = poly (poly_add (poly_mul r p) (poly_mul s (diff p))) |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2915 |
==> rsquarefree q & (ALL x. (poly q x = 0) = (poly p x = 0))" |
| 14516 | 2916 |
by (import poly POLY_SQUAREFREE_DECOMP) |
2917 |
||
2918 |
consts |
|
2919 |
normalize :: "real list => real list" |
|
2920 |
||
2921 |
specification (normalize) normalize: "normalize [] = [] & |
|
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2922 |
(ALL h t. |
| 14516 | 2923 |
normalize (h # t) = |
| 17652 | 2924 |
(if normalize t = [] then if h = 0 then [] else [h] |
| 14516 | 2925 |
else h # normalize t))" |
2926 |
by (import poly normalize) |
|
2927 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2928 |
lemma POLY_NORMALIZE: "poly (normalize t) = poly t" |
| 14516 | 2929 |
by (import poly POLY_NORMALIZE) |
2930 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2931 |
definition |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2932 |
degree :: "real list => nat" where |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2933 |
"degree == %p. PRE (length (normalize p))" |
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2934 |
|
|
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2935 |
lemma degree: "degree p = PRE (length (normalize p))" |
| 14516 | 2936 |
by (import poly degree) |
2937 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2938 |
lemma DEGREE_ZERO: "poly p = poly [] ==> degree p = 0" |
| 14516 | 2939 |
by (import poly DEGREE_ZERO) |
2940 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2941 |
lemma POLY_ROOTS_FINITE_SET: "poly p ~= poly [] ==> FINITE (GSPEC (%x. (x, poly p x = 0)))" |
| 14516 | 2942 |
by (import poly POLY_ROOTS_FINITE_SET) |
2943 |
||
|
44763
b50d5d694838
HOL/Import: Update HOL4 generated files to current Isabelle.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2944 |
lemma POLY_MONO: "abs x <= k ==> abs (poly xa x) <= poly (map abs xa) k" |
| 14516 | 2945 |
by (import poly POLY_MONO) |
2946 |
||
2947 |
;end_setup |
|
2948 |
||
2949 |
end |
|
2950 |