16 so we can define continuous linear forms as bounded linear forms: |
16 so we can define continuous linear forms as bounded linear forms: |
17 *} |
17 *} |
18 |
18 |
19 constdefs |
19 constdefs |
20 is_continuous :: |
20 is_continuous :: |
21 "['a::{minus, plus} set, 'a => real, 'a => real] => bool" |
21 "['a::{plus, minus, zero} set, 'a => real, 'a => real] => bool" |
22 "is_continuous V norm f == |
22 "is_continuous V norm f == |
23 is_linearform V f & (EX c. ALL x:V. abs (f x) <= c * norm x)" |
23 is_linearform V f \<and> (\<exists>c. \<forall>x \<in> V. |f x| <= c * norm x)" |
24 |
24 |
25 lemma continuousI [intro]: |
25 lemma continuousI [intro]: |
26 "[| is_linearform V f; !! x. x:V ==> abs (f x) <= c * norm x |] |
26 "[| is_linearform V f; !! x. x \<in> V ==> |f x| <= c * norm x |] |
27 ==> is_continuous V norm f" |
27 ==> is_continuous V norm f" |
28 proof (unfold is_continuous_def, intro exI conjI ballI) |
28 proof (unfold is_continuous_def, intro exI conjI ballI) |
29 assume r: "!! x. x:V ==> abs (f x) <= c * norm x" |
29 assume r: "!! x. x \<in> V ==> |f x| <= c * norm x" |
30 fix x assume "x:V" show "abs (f x) <= c * norm x" by (rule r) |
30 fix x assume "x \<in> V" show "|f x| <= c * norm x" by (rule r) |
31 qed |
31 qed |
32 |
32 |
33 lemma continuous_linearform [intro??]: |
33 lemma continuous_linearform [intro??]: |
34 "is_continuous V norm f ==> is_linearform V f" |
34 "is_continuous V norm f ==> is_linearform V f" |
35 by (unfold is_continuous_def) force |
35 by (unfold is_continuous_def) force |
36 |
36 |
37 lemma continuous_bounded [intro??]: |
37 lemma continuous_bounded [intro??]: |
38 "is_continuous V norm f |
38 "is_continuous V norm f |
39 ==> EX c. ALL x:V. abs (f x) <= c * norm x" |
39 ==> \<exists>c. \<forall>x \<in> V. |f x| <= c * norm x" |
40 by (unfold is_continuous_def) force |
40 by (unfold is_continuous_def) force |
41 |
41 |
42 subsection{* The norm of a linear form *} |
42 subsection{* The norm of a linear form *} |
43 |
43 |
44 |
44 |
57 does not have to change the norm in all other cases, so it must be |
57 does not have to change the norm in all other cases, so it must be |
58 $0$, as all other elements of are ${} \ge 0$. |
58 $0$, as all other elements of are ${} \ge 0$. |
59 |
59 |
60 Thus we define the set $B$ the supremum is taken from as |
60 Thus we define the set $B$ the supremum is taken from as |
61 \[ |
61 \[ |
62 \{ 0 \} \Un \left\{ \frac{|f\ap x|}{\norm x} \dt x\neq \zero \And x\in F\right\} |
62 \{ 0 \} \Union \left\{ \frac{|f\ap x|}{\norm x} \dt x\neq \zero \And x\in F\right\} |
63 \] |
63 \] |
64 *} |
64 *} |
65 |
65 |
66 constdefs |
66 constdefs |
67 B :: "[ 'a set, 'a => real, 'a => real ] => real set" |
67 B :: "[ 'a set, 'a => real, 'a::{plus, minus, zero} => real ] => real set" |
68 "B V norm f == |
68 "B V norm f == |
69 {#0} Un {abs (f x) * rinv (norm x) | x. x ~= 00 & x:V}" |
69 {#0} \<union> {|f x| * rinv (norm x) | x. x \<noteq> 0 \<and> x \<in> V}" |
70 |
70 |
71 text{* $n$ is the function norm of $f$, iff |
71 text{* $n$ is the function norm of $f$, iff |
72 $n$ is the supremum of $B$. |
72 $n$ is the supremum of $B$. |
73 *} |
73 *} |
74 |
74 |
75 constdefs |
75 constdefs |
76 is_function_norm :: |
76 is_function_norm :: |
77 " ['a set, 'a => real, 'a => real] => real => bool" |
77 " ['a::{minus,plus,zero} => real, 'a set, 'a => real] => real => bool" |
78 "is_function_norm V norm f fn == is_Sup UNIV (B V norm f) fn" |
78 "is_function_norm f V norm fn == is_Sup UNIV (B V norm f) fn" |
79 |
79 |
80 text{* $\idt{function{\dsh}norm}$ is equal to the supremum of $B$, |
80 text{* $\idt{function{\dsh}norm}$ is equal to the supremum of $B$, |
81 if the supremum exists. Otherwise it is undefined. *} |
81 if the supremum exists. Otherwise it is undefined. *} |
82 |
82 |
83 constdefs |
83 constdefs |
84 function_norm :: " ['a set, 'a => real, 'a => real] => real" |
84 function_norm :: " ['a::{minus,plus,zero} => real, 'a set, 'a => real] => real" |
85 "function_norm V norm f == Sup UNIV (B V norm f)" |
85 "function_norm f V norm == Sup UNIV (B V norm f)" |
86 |
86 |
87 lemma B_not_empty: "#0 : B V norm f" |
87 syntax |
|
88 function_norm :: " ['a => real, 'a set, 'a => real] => real" ("\<parallel>_\<parallel>_,_") |
|
89 |
|
90 lemma B_not_empty: "#0 \<in> B V norm f" |
88 by (unfold B_def, force) |
91 by (unfold B_def, force) |
89 |
92 |
90 text {* The following lemma states that every continuous linear form |
93 text {* The following lemma states that every continuous linear form |
91 on a normed space $(V, \norm{\cdot})$ has a function norm. *} |
94 on a normed space $(V, \norm{\cdot})$ has a function norm. *} |
92 |
95 |
93 lemma ex_fnorm [intro??]: |
96 lemma ex_fnorm [intro??]: |
94 "[| is_normed_vectorspace V norm; is_continuous V norm f|] |
97 "[| is_normed_vectorspace V norm; is_continuous V norm f|] |
95 ==> is_function_norm V norm f (function_norm V norm f)" |
98 ==> is_function_norm f V norm \<parallel>f\<parallel>V,norm" |
96 proof (unfold function_norm_def is_function_norm_def |
99 proof (unfold function_norm_def is_function_norm_def |
97 is_continuous_def Sup_def, elim conjE, rule selectI2EX) |
100 is_continuous_def Sup_def, elim conjE, rule selectI2EX) |
98 assume "is_normed_vectorspace V norm" |
101 assume "is_normed_vectorspace V norm" |
99 assume "is_linearform V f" |
102 assume "is_linearform V f" |
100 and e: "EX c. ALL x:V. abs (f x) <= c * norm x" |
103 and e: "\<exists>c. \<forall>x \<in> V. |f x| <= c * norm x" |
101 |
104 |
102 txt {* The existence of the supremum is shown using the |
105 txt {* The existence of the supremum is shown using the |
103 completeness of the reals. Completeness means, that |
106 completeness of the reals. Completeness means, that |
104 every non-empty bounded set of reals has a |
107 every non-empty bounded set of reals has a |
105 supremum. *} |
108 supremum. *} |
106 show "EX a. is_Sup UNIV (B V norm f) a" |
109 show "\<exists>a. is_Sup UNIV (B V norm f) a" |
107 proof (unfold is_Sup_def, rule reals_complete) |
110 proof (unfold is_Sup_def, rule reals_complete) |
108 |
111 |
109 txt {* First we have to show that $B$ is non-empty: *} |
112 txt {* First we have to show that $B$ is non-empty: *} |
110 |
113 |
111 show "EX X. X : B V norm f" |
114 show "\<exists>X. X \<in> B V norm f" |
112 proof (intro exI) |
115 proof (intro exI) |
113 show "#0 : (B V norm f)" by (unfold B_def, force) |
116 show "#0 \<in> (B V norm f)" by (unfold B_def, force) |
114 qed |
117 qed |
115 |
118 |
116 txt {* Then we have to show that $B$ is bounded: *} |
119 txt {* Then we have to show that $B$ is bounded: *} |
117 |
120 |
118 from e show "EX Y. isUb UNIV (B V norm f) Y" |
121 from e show "\<exists>Y. isUb UNIV (B V norm f) Y" |
119 proof |
122 proof |
120 |
123 |
121 txt {* We know that $f$ is bounded by some value $c$. *} |
124 txt {* We know that $f$ is bounded by some value $c$. *} |
122 |
125 |
123 fix c assume a: "ALL x:V. abs (f x) <= c * norm x" |
126 fix c assume a: "\<forall>x \<in> V. |f x| <= c * norm x" |
124 def b == "max c #0" |
127 def b == "max c #0" |
125 |
128 |
126 show "?thesis" |
129 show "?thesis" |
127 proof (intro exI isUbI setleI ballI, unfold B_def, |
130 proof (intro exI isUbI setleI ballI, unfold B_def, |
128 elim UnE CollectE exE conjE singletonE) |
131 elim UnE CollectE exE conjE singletonE) |
139 $y = {|f\ap x|}/{\norm x}$ for some |
142 $y = {|f\ap x|}/{\norm x}$ for some |
140 $x\in V$ with $x \neq \zero$. *} |
143 $x\in V$ with $x \neq \zero$. *} |
141 |
144 |
142 next |
145 next |
143 fix x y |
146 fix x y |
144 assume "x:V" "x ~= 00" (*** |
147 assume "x \<in> V" "x \<noteq> 0" (*** |
145 |
148 |
146 have ge: "#0 <= rinv (norm x)"; |
149 have ge: "#0 <= rinv (norm x)"; |
147 by (rule real_less_imp_le, rule real_rinv_gt_zero, |
150 by (rule real_less_imp_le, rule real_rinv_gt_zero, |
148 rule normed_vs_norm_gt_zero); ( *** |
151 rule normed_vs_norm_gt_zero); ( *** |
149 proof (rule real_less_imp_le); |
152 proof (rule real_less_imp_le); |
150 show "#0 < rinv (norm x)"; |
153 show "#0 < rinv (norm x)"; |
151 proof (rule real_rinv_gt_zero); |
154 proof (rule real_rinv_gt_zero); |
152 show "#0 < norm x"; ..; |
155 show "#0 < norm x"; ..; |
153 qed; |
156 qed; |
154 qed; *** ) |
157 qed; *** ) |
155 have nz: "norm x ~= #0" |
158 have nz: "norm x \<noteq> #0" |
156 by (rule not_sym, rule lt_imp_not_eq, |
159 by (rule not_sym, rule lt_imp_not_eq, |
157 rule normed_vs_norm_gt_zero) (*** |
160 rule normed_vs_norm_gt_zero) (*** |
158 proof (rule not_sym); |
161 proof (rule not_sym); |
159 show "#0 ~= norm x"; |
162 show "#0 \<noteq> norm x"; |
160 proof (rule lt_imp_not_eq); |
163 proof (rule lt_imp_not_eq); |
161 show "#0 < norm x"; ..; |
164 show "#0 < norm x"; ..; |
162 qed; |
165 qed; |
163 qed; ***)***) |
166 qed; ***)***) |
164 |
167 |
165 txt {* The thesis follows by a short calculation using the |
168 txt {* The thesis follows by a short calculation using the |
166 fact that $f$ is bounded. *} |
169 fact that $f$ is bounded. *} |
167 |
170 |
168 assume "y = abs (f x) * rinv (norm x)" |
171 assume "y = |f x| * rinv (norm x)" |
169 also have "... <= c * norm x * rinv (norm x)" |
172 also have "... <= c * norm x * rinv (norm x)" |
170 proof (rule real_mult_le_le_mono2) |
173 proof (rule real_mult_le_le_mono2) |
171 show "#0 <= rinv (norm x)" |
174 show "#0 <= rinv (norm x)" |
172 by (rule real_less_imp_le, rule real_rinv_gt_zero1, |
175 by (rule real_less_imp_le, rule real_rinv_gt_zero1, |
173 rule normed_vs_norm_gt_zero) |
176 rule normed_vs_norm_gt_zero) |
174 from a show "abs (f x) <= c * norm x" .. |
177 from a show "|f x| <= c * norm x" .. |
175 qed |
178 qed |
176 also have "... = c * (norm x * rinv (norm x))" |
179 also have "... = c * (norm x * rinv (norm x))" |
177 by (rule real_mult_assoc) |
180 by (rule real_mult_assoc) |
178 also have "(norm x * rinv (norm x)) = (#1::real)" |
181 also have "(norm x * rinv (norm x)) = (#1::real)" |
179 proof (rule real_mult_inv_right1) |
182 proof (rule real_mult_inv_right1) |
180 show nz: "norm x ~= #0" |
183 show nz: "norm x \<noteq> #0" |
181 by (rule not_sym, rule lt_imp_not_eq, |
184 by (rule not_sym, rule lt_imp_not_eq, |
182 rule normed_vs_norm_gt_zero) |
185 rule normed_vs_norm_gt_zero) |
183 qed |
186 qed |
184 also have "c * ... <= b " by (simp! add: le_max1) |
187 also have "c * ... <= b " by (simp! add: le_max1) |
185 finally show "y <= b" . |
188 finally show "y <= b" . |
189 qed |
192 qed |
190 |
193 |
191 text {* The norm of a continuous function is always $\geq 0$. *} |
194 text {* The norm of a continuous function is always $\geq 0$. *} |
192 |
195 |
193 lemma fnorm_ge_zero [intro??]: |
196 lemma fnorm_ge_zero [intro??]: |
194 "[| is_continuous V norm f; is_normed_vectorspace V norm|] |
197 "[| is_continuous V norm f; is_normed_vectorspace V norm |] |
195 ==> #0 <= function_norm V norm f" |
198 ==> #0 <= \<parallel>f\<parallel>V,norm" |
196 proof - |
199 proof - |
197 assume c: "is_continuous V norm f" |
200 assume c: "is_continuous V norm f" |
198 and n: "is_normed_vectorspace V norm" |
201 and n: "is_normed_vectorspace V norm" |
199 |
202 |
200 txt {* The function norm is defined as the supremum of $B$. |
203 txt {* The function norm is defined as the supremum of $B$. |
201 So it is $\geq 0$ if all elements in $B$ are $\geq 0$, provided |
204 So it is $\geq 0$ if all elements in $B$ are $\geq 0$, provided |
202 the supremum exists and $B$ is not empty. *} |
205 the supremum exists and $B$ is not empty. *} |
203 |
206 |
204 show ?thesis |
207 show ?thesis |
205 proof (unfold function_norm_def, rule sup_ub1) |
208 proof (unfold function_norm_def, rule sup_ub1) |
206 show "ALL x:(B V norm f). #0 <= x" |
209 show "\<forall>x \<in> (B V norm f). #0 <= x" |
207 proof (intro ballI, unfold B_def, |
210 proof (intro ballI, unfold B_def, |
208 elim UnE singletonE CollectE exE conjE) |
211 elim UnE singletonE CollectE exE conjE) |
209 fix x r |
212 fix x r |
210 assume "x : V" "x ~= 00" |
213 assume "x \<in> V" "x \<noteq> 0" |
211 and r: "r = abs (f x) * rinv (norm x)" |
214 and r: "r = |f x| * rinv (norm x)" |
212 |
215 |
213 have ge: "#0 <= abs (f x)" by (simp! only: abs_ge_zero) |
216 have ge: "#0 <= |f x|" by (simp! only: abs_ge_zero) |
214 have "#0 <= rinv (norm x)" |
217 have "#0 <= rinv (norm x)" |
215 by (rule real_less_imp_le, rule real_rinv_gt_zero1, rule)(*** |
218 by (rule real_less_imp_le, rule real_rinv_gt_zero1, rule)(*** |
216 proof (rule real_less_imp_le); |
219 proof (rule real_less_imp_le); |
217 show "#0 < rinv (norm x)"; |
220 show "#0 < rinv (norm x)"; |
218 proof (rule real_rinv_gt_zero); |
221 proof (rule real_rinv_gt_zero); |
223 by (simp only: r, rule real_le_mult_order1a) |
226 by (simp only: r, rule real_le_mult_order1a) |
224 qed (simp!) |
227 qed (simp!) |
225 |
228 |
226 txt {* Since $f$ is continuous the function norm exists: *} |
229 txt {* Since $f$ is continuous the function norm exists: *} |
227 |
230 |
228 have "is_function_norm V norm f (function_norm V norm f)" .. |
231 have "is_function_norm f V norm \<parallel>f\<parallel>V,norm" .. |
229 thus "is_Sup UNIV (B V norm f) (Sup UNIV (B V norm f))" |
232 thus "is_Sup UNIV (B V norm f) (Sup UNIV (B V norm f))" |
230 by (unfold is_function_norm_def function_norm_def) |
233 by (unfold is_function_norm_def function_norm_def) |
231 |
234 |
232 txt {* $B$ is non-empty by construction: *} |
235 txt {* $B$ is non-empty by construction: *} |
233 |
236 |
234 show "#0 : B V norm f" by (rule B_not_empty) |
237 show "#0 \<in> B V norm f" by (rule B_not_empty) |
235 qed |
238 qed |
236 qed |
239 qed |
237 |
240 |
238 text{* \medskip The fundamental property of function norms is: |
241 text{* \medskip The fundamental property of function norms is: |
239 \begin{matharray}{l} |
242 \begin{matharray}{l} |
240 | f\ap x | \leq {\fnorm {f}} \cdot {\norm x} |
243 | f\ap x | \leq {\fnorm {f}} \cdot {\norm x} |
241 \end{matharray} |
244 \end{matharray} |
242 *} |
245 *} |
243 |
246 |
244 lemma norm_fx_le_norm_f_norm_x: |
247 lemma norm_fx_le_norm_f_norm_x: |
245 "[| is_normed_vectorspace V norm; x:V; is_continuous V norm f |] |
248 "[| is_continuous V norm f; is_normed_vectorspace V norm; x \<in> V |] |
246 ==> abs (f x) <= function_norm V norm f * norm x" |
249 ==> |f x| <= \<parallel>f\<parallel>V,norm * norm x" |
247 proof - |
250 proof - |
248 assume "is_normed_vectorspace V norm" "x:V" |
251 assume "is_normed_vectorspace V norm" "x \<in> V" |
249 and c: "is_continuous V norm f" |
252 and c: "is_continuous V norm f" |
250 have v: "is_vectorspace V" .. |
253 have v: "is_vectorspace V" .. |
251 assume "x:V" |
|
252 |
254 |
253 txt{* The proof is by case analysis on $x$. *} |
255 txt{* The proof is by case analysis on $x$. *} |
254 |
256 |
255 show ?thesis |
257 show ?thesis |
256 proof cases |
258 proof cases |
257 |
259 |
258 txt {* For the case $x = \zero$ the thesis follows |
260 txt {* For the case $x = \zero$ the thesis follows |
259 from the linearity of $f$: for every linear function |
261 from the linearity of $f$: for every linear function |
260 holds $f\ap \zero = 0$. *} |
262 holds $f\ap \zero = 0$. *} |
261 |
263 |
262 assume "x = 00" |
264 assume "x = 0" |
263 have "abs (f x) = abs (f 00)" by (simp!) |
265 have "|f x| = |f 0|" by (simp!) |
264 also from v continuous_linearform have "f 00 = #0" .. |
266 also from v continuous_linearform have "f 0 = #0" .. |
265 also note abs_zero |
267 also note abs_zero |
266 also have "#0 <= function_norm V norm f * norm x" |
268 also have "#0 <= \<parallel>f\<parallel>V,norm * norm x" |
267 proof (rule real_le_mult_order1a) |
269 proof (rule real_le_mult_order1a) |
268 show "#0 <= function_norm V norm f" .. |
270 show "#0 <= \<parallel>f\<parallel>V,norm" .. |
269 show "#0 <= norm x" .. |
271 show "#0 <= norm x" .. |
270 qed |
272 qed |
271 finally |
273 finally |
272 show "abs (f x) <= function_norm V norm f * norm x" . |
274 show "|f x| <= \<parallel>f\<parallel>V,norm * norm x" . |
273 |
275 |
274 next |
276 next |
275 assume "x ~= 00" |
277 assume "x \<noteq> 0" |
276 have n: "#0 <= norm x" .. |
278 have n: "#0 <= norm x" .. |
277 have nz: "norm x ~= #0" |
279 have nz: "norm x \<noteq> #0" |
278 proof (rule lt_imp_not_eq [RS not_sym]) |
280 proof (rule lt_imp_not_eq [RS not_sym]) |
279 show "#0 < norm x" .. |
281 show "#0 < norm x" .. |
280 qed |
282 qed |
281 |
283 |
282 txt {* For the case $x\neq \zero$ we derive the following |
284 txt {* For the case $x\neq \zero$ we derive the following |
283 fact from the definition of the function norm:*} |
285 fact from the definition of the function norm:*} |
284 |
286 |
285 have l: "abs (f x) * rinv (norm x) <= function_norm V norm f" |
287 have l: "|f x| * rinv (norm x) <= \<parallel>f\<parallel>V,norm" |
286 proof (unfold function_norm_def, rule sup_ub) |
288 proof (unfold function_norm_def, rule sup_ub) |
287 from ex_fnorm [OF _ c] |
289 from ex_fnorm [OF _ c] |
288 show "is_Sup UNIV (B V norm f) (Sup UNIV (B V norm f))" |
290 show "is_Sup UNIV (B V norm f) (Sup UNIV (B V norm f))" |
289 by (simp! add: is_function_norm_def function_norm_def) |
291 by (simp! add: is_function_norm_def function_norm_def) |
290 show "abs (f x) * rinv (norm x) : B V norm f" |
292 show "|f x| * rinv (norm x) \<in> B V norm f" |
291 by (unfold B_def, intro UnI2 CollectI exI [of _ x] |
293 by (unfold B_def, intro UnI2 CollectI exI [of _ x] |
292 conjI, simp) |
294 conjI, simp) |
293 qed |
295 qed |
294 |
296 |
295 txt {* The thesis now follows by a short calculation: *} |
297 txt {* The thesis now follows by a short calculation: *} |
296 |
298 |
297 have "abs (f x) = abs (f x) * (#1::real)" by (simp!) |
299 have "|f x| = |f x| * #1" by (simp!) |
298 also from nz have "(#1::real) = rinv (norm x) * norm x" |
300 also from nz have "#1 = rinv (norm x) * norm x" |
299 by (rule real_mult_inv_left1 [RS sym]) |
301 by (rule real_mult_inv_left1 [RS sym]) |
300 also |
302 also |
301 have "abs (f x) * ... = abs (f x) * rinv (norm x) * norm x" |
303 have "|f x| * ... = |f x| * rinv (norm x) * norm x" |
302 by (simp! add: real_mult_assoc [of "abs (f x)"]) |
304 by (simp! add: real_mult_assoc) |
303 also have "... <= function_norm V norm f * norm x" |
305 also have "... <= \<parallel>f\<parallel>V,norm * norm x" |
304 by (rule real_mult_le_le_mono2 [OF n l]) |
306 by (rule real_mult_le_le_mono2 [OF n l]) |
305 finally |
307 finally |
306 show "abs (f x) <= function_norm V norm f * norm x" . |
308 show "|f x| <= \<parallel>f\<parallel>V,norm * norm x" . |
307 qed |
309 qed |
308 qed |
310 qed |
309 |
311 |
310 text{* \medskip The function norm is the least positive real number for |
312 text{* \medskip The function norm is the least positive real number for |
311 which the following inequation holds: |
313 which the following inequation holds: |
313 | f\ap x | \leq c \cdot {\norm x} |
315 | f\ap x | \leq c \cdot {\norm x} |
314 \end{matharray} |
316 \end{matharray} |
315 *} |
317 *} |
316 |
318 |
317 lemma fnorm_le_ub: |
319 lemma fnorm_le_ub: |
318 "[| is_normed_vectorspace V norm; is_continuous V norm f; |
320 "[| is_continuous V norm f; is_normed_vectorspace V norm; |
319 ALL x:V. abs (f x) <= c * norm x; #0 <= c |] |
321 \<forall>x \<in> V. |f x| <= c * norm x; #0 <= c |] |
320 ==> function_norm V norm f <= c" |
322 ==> \<parallel>f\<parallel>V,norm <= c" |
321 proof (unfold function_norm_def) |
323 proof (unfold function_norm_def) |
322 assume "is_normed_vectorspace V norm" |
324 assume "is_normed_vectorspace V norm" |
323 assume c: "is_continuous V norm f" |
325 assume c: "is_continuous V norm f" |
324 assume fb: "ALL x:V. abs (f x) <= c * norm x" |
326 assume fb: "\<forall>x \<in> V. |f x| <= c * norm x" |
325 and "#0 <= c" |
327 and "#0 <= c" |
326 |
328 |
327 txt {* Suppose the inequation holds for some $c\geq 0$. |
329 txt {* Suppose the inequation holds for some $c\geq 0$. |
328 If $c$ is an upper bound of $B$, then $c$ is greater |
330 If $c$ is an upper bound of $B$, then $c$ is greater |
329 than the function norm since the function norm is the |
331 than the function norm since the function norm is the |
334 proof (rule sup_le_ub) |
336 proof (rule sup_le_ub) |
335 from ex_fnorm [OF _ c] |
337 from ex_fnorm [OF _ c] |
336 show "is_Sup UNIV (B V norm f) (Sup UNIV (B V norm f))" |
338 show "is_Sup UNIV (B V norm f) (Sup UNIV (B V norm f))" |
337 by (simp! add: is_function_norm_def function_norm_def) |
339 by (simp! add: is_function_norm_def function_norm_def) |
338 |
340 |
339 txt {* $c$ is an upper bound of $B$, i.~e.~every |
341 txt {* $c$ is an upper bound of $B$, i.e. every |
340 $y\in B$ is less than $c$. *} |
342 $y\in B$ is less than $c$. *} |
341 |
343 |
342 show "isUb UNIV (B V norm f) c" |
344 show "isUb UNIV (B V norm f) c" |
343 proof (intro isUbI setleI ballI) |
345 proof (intro isUbI setleI ballI) |
344 fix y assume "y: B V norm f" |
346 fix y assume "y \<in> B V norm f" |
345 thus le: "y <= c" |
347 thus le: "y <= c" |
346 proof (unfold B_def, elim UnE CollectE exE conjE singletonE) |
348 proof (unfold B_def, elim UnE CollectE exE conjE singletonE) |
347 |
349 |
348 txt {* The first case for $y\in B$ is $y=0$. *} |
350 txt {* The first case for $y\in B$ is $y=0$. *} |
349 |
351 |
354 $y = {|f\ap x|}/{\norm x}$ for some |
356 $y = {|f\ap x|}/{\norm x}$ for some |
355 $x\in V$ with $x \neq \zero$. *} |
357 $x\in V$ with $x \neq \zero$. *} |
356 |
358 |
357 next |
359 next |
358 fix x |
360 fix x |
359 assume "x : V" "x ~= 00" |
361 assume "x \<in> V" "x \<noteq> 0" |
360 |
362 |
361 have lz: "#0 < norm x" |
363 have lz: "#0 < norm x" |
362 by (simp! add: normed_vs_norm_gt_zero) |
364 by (simp! add: normed_vs_norm_gt_zero) |
363 |
365 |
364 have nz: "norm x ~= #0" |
366 have nz: "norm x \<noteq> #0" |
365 proof (rule not_sym) |
367 proof (rule not_sym) |
366 from lz show "#0 ~= norm x" |
368 from lz show "#0 \<noteq> norm x" |
367 by (simp! add: order_less_imp_not_eq) |
369 by (simp! add: order_less_imp_not_eq) |
368 qed |
370 qed |
369 |
371 |
370 from lz have "#0 < rinv (norm x)" |
372 from lz have "#0 < rinv (norm x)" |
371 by (simp! add: real_rinv_gt_zero1) |
373 by (simp! add: real_rinv_gt_zero1) |
372 hence rinv_gez: "#0 <= rinv (norm x)" |
374 hence rinv_gez: "#0 <= rinv (norm x)" |
373 by (rule real_less_imp_le) |
375 by (rule real_less_imp_le) |
374 |
376 |
375 assume "y = abs (f x) * rinv (norm x)" |
377 assume "y = |f x| * rinv (norm x)" |
376 also from rinv_gez have "... <= c * norm x * rinv (norm x)" |
378 also from rinv_gez have "... <= c * norm x * rinv (norm x)" |
377 proof (rule real_mult_le_le_mono2) |
379 proof (rule real_mult_le_le_mono2) |
378 show "abs (f x) <= c * norm x" by (rule bspec) |
380 show "|f x| <= c * norm x" by (rule bspec) |
379 qed |
381 qed |
380 also have "... <= c" by (simp add: nz real_mult_assoc) |
382 also have "... <= c" by (simp add: nz real_mult_assoc) |
381 finally show ?thesis . |
383 finally show ?thesis . |
382 qed |
384 qed |
383 qed force |
385 qed force |