equal
deleted
inserted
replaced
143 have "H <= E"; ..; |
143 have "H <= E"; ..; |
144 thus "H < E"; ..; |
144 thus "H < E"; ..; |
145 qed; |
145 qed; |
146 thus ?thesis; by blast; |
146 thus ?thesis; by blast; |
147 qed; |
147 qed; |
148 have x0: "x0 ~= <0>"; |
148 have x0: "x0 ~= 00"; |
149 proof (rule classical); |
149 proof (rule classical); |
150 presume "x0 = <0>"; |
150 presume "x0 = 00"; |
151 with h; have "x0:H"; by simp; |
151 with h; have "x0:H"; by simp; |
152 thus ?thesis; by contradiction; |
152 thus ?thesis; by contradiction; |
153 qed blast; |
153 qed blast; |
154 |
154 |
155 txt {* Define $H_0$ as the direct sum of $H$ and the linear closure of $x_0$. *}; |
155 txt {* Define $H_0$ as the direct sum of $H$ and the linear closure of $x_0$. *}; |
188 thus ?thesis; by rule rule; |
188 thus ?thesis; by rule rule; |
189 qed; |
189 qed; |
190 |
190 |
191 txt {* Define the extension $h_0$ of $h$ to $H_0$ using $\xi$. *}; |
191 txt {* Define the extension $h_0$ of $h$ to $H_0$ using $\xi$. *}; |
192 |
192 |
193 def h0 == "\\<lambda>x. let (y,a) = SOME (y, a). x = y + a <*> x0 |
193 def h0 == "\\<lambda>x. let (y,a) = SOME (y, a). x = y + a (*) x0 |
194 & y:H |
194 & y:H |
195 in (h y) + a * xi"; |
195 in (h y) + a * xi"; |
196 show ?thesis; |
196 show ?thesis; |
197 proof; |
197 proof; |
198 |
198 |
203 show "g <= graph H0 h0"; |
203 show "g <= graph H0 h0"; |
204 proof -; |
204 proof -; |
205 have "graph H h <= graph H0 h0"; |
205 have "graph H h <= graph H0 h0"; |
206 proof (rule graph_extI); |
206 proof (rule graph_extI); |
207 fix t; assume "t:H"; |
207 fix t; assume "t:H"; |
208 have "(SOME (y, a). t = y + a <*> x0 & y : H) |
208 have "(SOME (y, a). t = y + a (*) x0 & y : H) |
209 = (t,0r)"; |
209 = (t,0r)"; |
210 by (rule decomp_H0_H [OF _ _ _ _ _ x0]); |
210 by (rule decomp_H0_H [OF _ _ _ _ _ x0]); |
211 thus "h t = h0 t"; by (simp! add: Let_def); |
211 thus "h t = h0 t"; by (simp! add: Let_def); |
212 next; |
212 next; |
213 show "H <= H0"; |
213 show "H <= H0"; |
226 have "graph H h ~= graph H0 h0"; |
226 have "graph H h ~= graph H0 h0"; |
227 proof; |
227 proof; |
228 assume e: "graph H h = graph H0 h0"; |
228 assume e: "graph H h = graph H0 h0"; |
229 have "x0 : H0"; |
229 have "x0 : H0"; |
230 proof (unfold H0_def, rule vs_sumI); |
230 proof (unfold H0_def, rule vs_sumI); |
231 show "x0 = <0> + x0"; by (simp!); |
231 show "x0 = 00 + x0"; by (simp!); |
232 from h; show "<0> : H"; ..; |
232 from h; show "00 : H"; ..; |
233 show "x0 : lin x0"; by (rule x_lin_x); |
233 show "x0 : lin x0"; by (rule x_lin_x); |
234 qed; |
234 qed; |
235 hence "(x0, h0 x0) : graph H0 h0"; ..; |
235 hence "(x0, h0 x0) : graph H0 h0"; ..; |
236 with e; have "(x0, h0 x0) : graph H h"; by simp; |
236 with e; have "(x0, h0 x0) : graph H h"; by simp; |
237 hence "x0 : H"; ..; |
237 hence "x0 : H"; ..; |
263 have "f x = h x"; ..; |
263 have "f x = h x"; ..; |
264 also; have " ... = h x + 0r * xi"; by simp; |
264 also; have " ... = h x + 0r * xi"; by simp; |
265 also; have "... = (let (y,a) = (x, 0r) in h y + a * xi)"; |
265 also; have "... = (let (y,a) = (x, 0r) in h y + a * xi)"; |
266 by (simp add: Let_def); |
266 by (simp add: Let_def); |
267 also; have |
267 also; have |
268 "(x, 0r) = (SOME (y, a). x = y + a <*> x0 & y : H)"; |
268 "(x, 0r) = (SOME (y, a). x = y + a (*) x0 & y : H)"; |
269 by (rule decomp_H0_H [RS sym, OF _ _ _ _ _ x0]) (simp!)+; |
269 by (rule decomp_H0_H [RS sym, OF _ _ _ _ _ x0]) (simp!)+; |
270 also; have |
270 also; have |
271 "(let (y,a) = (SOME (y,a). x = y + a <*> x0 & y : H) |
271 "(let (y,a) = (SOME (y,a). x = y + a (*) x0 & y : H) |
272 in h y + a * xi) |
272 in h y + a * xi) |
273 = h0 x"; by (simp!); |
273 = h0 x"; by (simp!); |
274 finally; show "f x = h0 x"; .; |
274 finally; show "f x = h0 x"; .; |
275 next; |
275 next; |
276 from f_h0; show "F <= H0"; ..; |
276 from f_h0; show "F <= H0"; ..; |
425 hence "EX H0 h0. g <= graph H0 h0 & g ~= graph H0 h0 |
425 hence "EX H0 h0. g <= graph H0 h0 & g ~= graph H0 h0 |
426 & graph H0 h0 : M"; |
426 & graph H0 h0 : M"; |
427 proof; |
427 proof; |
428 fix x0; assume "x0:E" "x0~:H"; |
428 fix x0; assume "x0:E" "x0~:H"; |
429 |
429 |
430 have x0: "x0 ~= <0>"; |
430 have x0: "x0 ~= 00"; |
431 proof (rule classical); |
431 proof (rule classical); |
432 presume "x0 = <0>"; |
432 presume "x0 = 00"; |
433 with h; have "x0:H"; by simp; |
433 with h; have "x0:H"; by simp; |
434 thus ?thesis; by contradiction; |
434 thus ?thesis; by contradiction; |
435 qed blast; |
435 qed blast; |
436 |
436 |
437 txt {* Define $H_0$ as the (direct) sum of H and the |
437 txt {* Define $H_0$ as the (direct) sum of H and the |
469 |
469 |
470 txt {* Define $h_0$ as the canonical linear extension |
470 txt {* Define $h_0$ as the canonical linear extension |
471 of $h$ on $H_0$:*}; |
471 of $h$ on $H_0$:*}; |
472 |
472 |
473 def h0 == |
473 def h0 == |
474 "\\<lambda>x. let (y,a) = SOME (y, a). x = y + a <*> x0 & y:H |
474 "\\<lambda>x. let (y,a) = SOME (y, a). x = y + a ( * ) x0 & y:H |
475 in (h y) + a * xi"; |
475 in (h y) + a * xi"; |
476 |
476 |
477 txt {* We get that the graph of $h_0$ extends that of |
477 txt {* We get that the graph of $h_0$ extends that of |
478 $h$. *}; |
478 $h$. *}; |
479 |
479 |
480 have "graph H h <= graph H0 h0"; |
480 have "graph H h <= graph H0 h0"; |
481 proof (rule graph_extI); |
481 proof (rule graph_extI); |
482 fix t; assume "t:H"; |
482 fix t; assume "t:H"; |
483 have "(SOME (y, a). t = y + a <*> x0 & y : H) = (t,0r)"; |
483 have "(SOME (y, a). t = y + a ( * ) x0 & y : H) = (t,0r)"; |
484 by (rule decomp_H0_H, rule x0); |
484 by (rule decomp_H0_H, rule x0); |
485 thus "h t = h0 t"; by (simp! add: Let_def); |
485 thus "h t = h0 t"; by (simp! add: Let_def); |
486 next; |
486 next; |
487 show "H <= H0"; |
487 show "H <= H0"; |
488 proof (rule subspace_subset); |
488 proof (rule subspace_subset); |
500 have "graph H h ~= graph H0 h0"; |
500 have "graph H h ~= graph H0 h0"; |
501 proof; |
501 proof; |
502 assume e: "graph H h = graph H0 h0"; |
502 assume e: "graph H h = graph H0 h0"; |
503 have "x0 : H0"; |
503 have "x0 : H0"; |
504 proof (unfold H0_def, rule vs_sumI); |
504 proof (unfold H0_def, rule vs_sumI); |
505 show "x0 = <0> + x0"; by (simp!); |
505 show "x0 = 00 + x0"; by (simp!); |
506 from h; show "<0> : H"; ..; |
506 from h; show "00 : H"; ..; |
507 show "x0 : lin x0"; by (rule x_lin_x); |
507 show "x0 : lin x0"; by (rule x_lin_x); |
508 qed; |
508 qed; |
509 hence "(x0, h0 x0) : graph H0 h0"; ..; |
509 hence "(x0, h0 x0) : graph H0 h0"; ..; |
510 with e; have "(x0, h0 x0) : graph H h"; by simp; |
510 with e; have "(x0, h0 x0) : graph H h"; by simp; |
511 hence "x0 : H"; ..; |
511 hence "x0 : H"; ..; |
543 have "f x = h x"; ..; |
543 have "f x = h x"; ..; |
544 also; have " ... = h x + 0r * xi"; by simp; |
544 also; have " ... = h x + 0r * xi"; by simp; |
545 also; have "... = (let (y,a) = (x, 0r) in h y + a * xi)"; |
545 also; have "... = (let (y,a) = (x, 0r) in h y + a * xi)"; |
546 by (simp add: Let_def); |
546 by (simp add: Let_def); |
547 also; have |
547 also; have |
548 "(x, 0r) = (SOME (y, a). x = y + a <*> x0 & y : H)"; |
548 "(x, 0r) = (SOME (y, a). x = y + a ( * ) x0 & y : H)"; |
549 by (rule decomp_H0_H [RS sym], rule x0) (simp!)+; |
549 by (rule decomp_H0_H [RS sym], rule x0) (simp!)+; |
550 also; have |
550 also; have |
551 "(let (y,a) = (SOME (y,a). x = y + a <*> x0 & y : H) |
551 "(let (y,a) = (SOME (y,a). x = y + a ( * ) x0 & y : H) |
552 in h y + a * xi) |
552 in h y + a * xi) |
553 = h0 x"; by (simp!); |
553 = h0 x"; by (simp!); |
554 finally; show "f x = h0 x"; .; |
554 finally; show "f x = h0 x"; .; |
555 next; |
555 next; |
556 from f_h0; show "F <= H0"; ..; |
556 from f_h0; show "F <= H0"; ..; |
670 show "0r <= norm x"; ..; |
670 show "0r <= norm x"; ..; |
671 qed; |
671 qed; |
672 |
672 |
673 txt{* $p$ is absolutely homogenous: *}; |
673 txt{* $p$ is absolutely homogenous: *}; |
674 |
674 |
675 show "p (a <*> x) = rabs a * p x"; |
675 show "p (a (*) x) = rabs a * p x"; |
676 proof -; |
676 proof -; |
677 have "p (a <*> x) = function_norm F norm f * norm (a <*> x)"; |
677 have "p (a (*) x) = function_norm F norm f * norm (a (*) x)"; |
678 by (simp!); |
678 by (simp!); |
679 also; have "norm (a <*> x) = rabs a * norm x"; |
679 also; have "norm (a (*) x) = rabs a * norm x"; |
680 by (rule normed_vs_norm_rabs_homogenous); |
680 by (rule normed_vs_norm_rabs_homogenous); |
681 also; have "function_norm F norm f * (rabs a * norm x) |
681 also; have "function_norm F norm f * (rabs a * norm x) |
682 = rabs a * (function_norm F norm f * norm x)"; |
682 = rabs a * (function_norm F norm f * norm x)"; |
683 by (simp! only: real_mult_left_commute); |
683 by (simp! only: real_mult_left_commute); |
684 also; have "... = rabs a * p x"; by (simp!); |
684 also; have "... = rabs a * p x"; by (simp!); |