5 |
5 |
6 header {* Extending non-maximal functions *} |
6 header {* Extending non-maximal functions *} |
7 |
7 |
8 theory HahnBanachExtLemmas = FunctionNorm: |
8 theory HahnBanachExtLemmas = FunctionNorm: |
9 |
9 |
10 text{* In this section the following context is presumed. |
10 text {* |
11 Let $E$ be a real vector space with a |
11 In this section the following context is presumed. Let @{text E} be |
12 seminorm $q$ on $E$. $F$ is a subspace of $E$ and $f$ a linear |
12 a real vector space with a seminorm @{text q} on @{text E}. @{text |
13 function on $F$. We consider a subspace $H$ of $E$ that is a |
13 F} is a subspace of @{text E} and @{text f} a linear function on |
14 superspace of $F$ and a linear form $h$ on $H$. $H$ is a not equal |
14 @{text F}. We consider a subspace @{text H} of @{text E} that is a |
15 to $E$ and $x_0$ is an element in $E \backslash H$. |
15 superspace of @{text F} and a linear form @{text h} on @{text |
16 $H$ is extended to the direct sum $H' = H + \idt{lin}\ap x_0$, so for |
16 H}. @{text H} is a not equal to @{text E} and @{text "x\<^sub>0"} is |
17 any $x\in H'$ the decomposition of $x = y + a \mult x$ |
17 an element in @{text "E - H"}. @{text H} is extended to the direct |
18 with $y\in H$ is unique. $h'$ is defined on $H'$ by |
18 sum @{text "H' = H + lin x\<^sub>0"}, so for any @{text "x \<in> H'"} |
19 $h'\ap x = h\ap y + a \cdot \xi$ for a certain $\xi$. |
19 the decomposition of @{text "x = y + a \<cdot> x"} with @{text "y \<in> H"} is |
20 |
20 unique. @{text h'} is defined on @{text H'} by |
21 Subsequently we show some properties of this extension $h'$ of $h$. |
21 @{text "h' x = h y + a \<cdot> \<xi>"} for a certain @{text \<xi>}. |
22 *} |
22 |
23 |
23 Subsequently we show some properties of this extension @{text h'} of |
24 |
24 @{text h}. |
25 text {* This lemma will be used to show the existence of a linear |
25 *} |
26 extension of $f$ (see page \pageref{ex-xi-use}). |
26 |
27 It is a consequence |
27 text {* |
28 of the completeness of $\bbbR$. To show |
28 This lemma will be used to show the existence of a linear extension |
29 \begin{matharray}{l} |
29 of @{text f} (see page \pageref{ex-xi-use}). It is a consequence of |
30 \Ex{\xi}{\All {y\in F}{a\ap y \leq \xi \land \xi \leq b\ap y}} |
30 the completeness of @{text \<real>}. To show |
31 \end{matharray} |
31 \begin{center} |
32 it suffices to show that |
32 \begin{tabular}{l} |
33 \begin{matharray}{l} \All |
33 @{text "\<exists>\<xi>. \<forall>y \<in> F. a y \<le> \<xi> \<and> \<xi> \<le> b y"} |
34 {u\in F}{\All {v\in F}{a\ap u \leq b \ap v}} |
34 \end{tabular} |
35 \end{matharray} *} |
35 \end{center} |
36 |
36 \noindent it suffices to show that |
37 lemma ex_xi: |
37 \begin{center} |
38 "[| is_vectorspace F; !! u v. [| u \<in> F; v \<in> F |] ==> a u <= b v |] |
38 \begin{tabular}{l} |
39 ==> \<exists>xi::real. \<forall>y \<in> F. a y <= xi \<and> xi <= b y" |
39 @{text "\<forall>u \<in> F. \<forall>v \<in> F. a u \<le> b v"} |
|
40 \end{tabular} |
|
41 \end{center} |
|
42 *} |
|
43 |
|
44 lemma ex_xi: |
|
45 "is_vectorspace F \<Longrightarrow> (\<And>u v. u \<in> F \<Longrightarrow> v \<in> F \<Longrightarrow> a u \<le> b v) |
|
46 \<Longrightarrow> \<exists>xi::real. \<forall>y \<in> F. a y \<le> xi \<and> xi \<le> b y" |
40 proof - |
47 proof - |
41 assume vs: "is_vectorspace F" |
48 assume vs: "is_vectorspace F" |
42 assume r: "(!! u v. [| u \<in> F; v \<in> F |] ==> a u <= (b v::real))" |
49 assume r: "(\<And>u v. u \<in> F \<Longrightarrow> v \<in> F \<Longrightarrow> a u \<le> (b v::real))" |
43 |
50 |
44 txt {* From the completeness of the reals follows: |
51 txt {* From the completeness of the reals follows: |
45 The set $S = \{a\: u\dt\: u\in F\}$ has a supremum, if |
52 The set @{text "S = {a u. u \<in> F}"} has a supremum, if |
46 it is non-empty and has an upper bound. *} |
53 it is non-empty and has an upper bound. *} |
47 |
54 |
48 let ?S = "{a u :: real | u. u \<in> F}" |
55 let ?S = "{a u :: real | u. u \<in> F}" |
49 |
56 |
50 have "\<exists>xi. isLub UNIV ?S xi" |
57 have "\<exists>xi. isLub UNIV ?S xi" |
51 proof (rule reals_complete) |
58 proof (rule reals_complete) |
52 |
59 |
53 txt {* The set $S$ is non-empty, since $a\ap\zero \in S$: *} |
60 txt {* The set @{text S} is non-empty, since @{text "a 0 \<in> S"}: *} |
54 |
61 |
55 from vs have "a 0 \<in> ?S" by force |
62 from vs have "a 0 \<in> ?S" by blast |
56 thus "\<exists>X. X \<in> ?S" .. |
63 thus "\<exists>X. X \<in> ?S" .. |
57 |
64 |
58 txt {* $b\ap \zero$ is an upper bound of $S$: *} |
65 txt {* @{text "b 0"} is an upper bound of @{text S}: *} |
59 |
66 |
60 show "\<exists>Y. isUb UNIV ?S Y" |
67 show "\<exists>Y. isUb UNIV ?S Y" |
61 proof |
68 proof |
62 show "isUb UNIV ?S (b 0)" |
69 show "isUb UNIV ?S (b 0)" |
63 proof (intro isUbI setleI ballI) |
70 proof (intro isUbI setleI ballI) |
64 show "b 0 \<in> UNIV" .. |
71 show "b 0 \<in> UNIV" .. |
65 next |
72 next |
66 |
73 |
67 txt {* Every element $y\in S$ is less than $b\ap \zero$: *} |
74 txt {* Every element @{text "y \<in> S"} is less than @{text "b 0"}: *} |
68 |
75 |
69 fix y assume y: "y \<in> ?S" |
76 fix y assume y: "y \<in> ?S" |
70 from y have "\<exists>u \<in> F. y = a u" by fast |
77 from y have "\<exists>u \<in> F. y = a u" by fast |
71 thus "y <= b 0" |
78 thus "y \<le> b 0" |
72 proof |
79 proof |
73 fix u assume "u \<in> F" |
80 fix u assume "u \<in> F" |
74 assume "y = a u" |
81 assume "y = a u" |
75 also have "a u <= b 0" by (rule r) (simp!)+ |
82 also have "a u \<le> b 0" by (rule r) (simp!)+ |
76 finally show ?thesis . |
83 finally show ?thesis . |
77 qed |
84 qed |
78 qed |
85 qed |
79 qed |
86 qed |
80 qed |
87 qed |
81 |
88 |
82 thus "\<exists>xi. \<forall>y \<in> F. a y <= xi \<and> xi <= b y" |
89 thus "\<exists>xi. \<forall>y \<in> F. a y \<le> xi \<and> xi \<le> b y" |
83 proof (elim exE) |
90 proof (elim exE) |
84 fix xi assume "isLub UNIV ?S xi" |
91 fix xi assume "isLub UNIV ?S xi" |
85 show ?thesis |
92 show ?thesis |
86 proof (intro exI conjI ballI) |
93 proof (intro exI conjI ballI) |
87 |
94 |
88 txt {* For all $y\in F$ holds $a\ap y \leq \xi$: *} |
95 txt {* For all @{text "y \<in> F"} holds @{text "a y \<le> \<xi>"}: *} |
89 |
96 |
90 fix y assume y: "y \<in> F" |
97 fix y assume y: "y \<in> F" |
91 show "a y <= xi" |
98 show "a y \<le> xi" |
92 proof (rule isUbD) |
99 proof (rule isUbD) |
93 show "isUb UNIV ?S xi" .. |
100 show "isUb UNIV ?S xi" .. |
94 qed (force!) |
101 qed (blast!) |
95 next |
102 next |
96 |
103 |
97 txt {* For all $y\in F$ holds $\xi\leq b\ap y$: *} |
104 txt {* For all @{text "y \<in> F"} holds @{text "\<xi> \<le> b y"}: *} |
98 |
105 |
99 fix y assume "y \<in> F" |
106 fix y assume "y \<in> F" |
100 show "xi <= b y" |
107 show "xi \<le> b y" |
101 proof (intro isLub_le_isUb isUbI setleI) |
108 proof (intro isLub_le_isUb isUbI setleI) |
102 show "b y \<in> UNIV" .. |
109 show "b y \<in> UNIV" .. |
103 show "\<forall>ya \<in> ?S. ya <= b y" |
110 show "\<forall>ya \<in> ?S. ya \<le> b y" |
104 proof |
111 proof |
105 fix au assume au: "au \<in> ?S " |
112 fix au assume au: "au \<in> ?S " |
106 hence "\<exists>u \<in> F. au = a u" by fast |
113 hence "\<exists>u \<in> F. au = a u" by fast |
107 thus "au <= b y" |
114 thus "au \<le> b y" |
108 proof |
115 proof |
109 fix u assume "u \<in> F" assume "au = a u" |
116 fix u assume "u \<in> F" assume "au = a u" |
110 also have "... <= b y" by (rule r) |
117 also have "... \<le> b y" by (rule r) |
111 finally show ?thesis . |
118 finally show ?thesis . |
112 qed |
119 qed |
113 qed |
120 qed |
114 qed |
121 qed |
115 qed |
122 qed |
116 qed |
123 qed |
117 qed |
124 qed |
118 |
125 |
119 text{* \medskip The function $h'$ is defined as a |
126 text {* |
120 $h'\ap x = h\ap y + a\cdot \xi$ where $x = y + a\mult \xi$ |
127 \medskip The function @{text h'} is defined as a |
121 is a linear extension of $h$ to $H'$. *} |
128 @{text "h' x = h y + a \<cdot> \<xi>"} where @{text "x = y + a \<cdot> \<xi>"} is a |
122 |
129 linear extension of @{text h} to @{text H'}. *} |
123 lemma h'_lf: |
130 |
124 "[| h' == (\<lambda>x. let (y, a) = SOME (y, a). x = y + a \<cdot> x0 \<and> y \<in> H |
131 lemma h'_lf: |
125 in h y + a * xi); |
132 "h' \<equiv> \<lambda>x. let (y, a) = SOME (y, a). x = y + a \<cdot> x0 \<and> y \<in> H in h y + a * xi |
126 H' == H + lin x0; is_subspace H E; is_linearform H h; x0 \<notin> H; |
133 \<Longrightarrow> H' \<equiv> H + lin x0 \<Longrightarrow> is_subspace H E \<Longrightarrow> is_linearform H h \<Longrightarrow> x0 \<notin> H |
127 x0 \<in> E; x0 \<noteq> 0; is_vectorspace E |] |
134 \<Longrightarrow> x0 \<in> E \<Longrightarrow> x0 \<noteq> 0 \<Longrightarrow> is_vectorspace E |
128 ==> is_linearform H' h'" |
135 \<Longrightarrow> is_linearform H' h'" |
129 proof - |
136 proof - |
130 assume h'_def: |
137 assume h'_def: |
131 "h' == (\<lambda>x. let (y, a) = SOME (y, a). x = y + a \<cdot> x0 \<and> y \<in> H |
138 "h' \<equiv> (\<lambda>x. let (y, a) = SOME (y, a). x = y + a \<cdot> x0 \<and> y \<in> H |
132 in h y + a * xi)" |
139 in h y + a * xi)" |
133 and H'_def: "H' == H + lin x0" |
140 and H'_def: "H' \<equiv> H + lin x0" |
134 and vs: "is_subspace H E" "is_linearform H h" "x0 \<notin> H" |
141 and vs: "is_subspace H E" "is_linearform H h" "x0 \<notin> H" |
135 "x0 \<noteq> 0" "x0 \<in> E" "is_vectorspace E" |
142 "x0 \<noteq> 0" "x0 \<in> E" "is_vectorspace E" |
136 |
143 |
137 have h': "is_vectorspace H'" |
144 have h': "is_vectorspace H'" |
138 proof (unfold H'_def, rule vs_sum_vs) |
145 proof (unfold H'_def, rule vs_sum_vs) |
139 show "is_subspace (lin x0) E" .. |
146 show "is_subspace (lin x0) E" .. |
140 qed |
147 qed |
141 |
148 |
142 show ?thesis |
149 show ?thesis |
143 proof |
150 proof |
144 fix x1 x2 assume x1: "x1 \<in> H'" and x2: "x2 \<in> H'" |
151 fix x1 x2 assume x1: "x1 \<in> H'" and x2: "x2 \<in> H'" |
145 |
152 |
146 txt{* We now have to show that $h'$ is additive, i.~e.\ |
153 txt {* We now have to show that @{text h'} is additive, i.~e.\ |
147 $h' \ap (x_1\plus x_2) = h'\ap x_1 + h'\ap x_2$ |
154 @{text "h' (x\<^sub>1 + x\<^sub>2) = h' x\<^sub>1 + h' x\<^sub>2"} for |
148 for $x_1, x_2\in H$. *} |
155 @{text "x\<^sub>1, x\<^sub>2 \<in> H"}. *} |
149 |
156 |
150 have x1x2: "x1 + x2 \<in> H'" |
157 have x1x2: "x1 + x2 \<in> H'" |
151 by (rule vs_add_closed, rule h') |
158 by (rule vs_add_closed, rule h') |
152 from x1 |
159 from x1 |
153 have ex_x1: "\<exists>y1 a1. x1 = y1 + a1 \<cdot> x0 \<and> y1 \<in> H" |
160 have ex_x1: "\<exists>y1 a1. x1 = y1 + a1 \<cdot> x0 \<and> y1 \<in> H" |
154 by (unfold H'_def vs_sum_def lin_def) fast |
161 by (unfold H'_def vs_sum_def lin_def) fast |
155 from x2 |
162 from x2 |
156 have ex_x2: "\<exists>y2 a2. x2 = y2 + a2 \<cdot> x0 \<and> y2 \<in> H" |
163 have ex_x2: "\<exists>y2 a2. x2 = y2 + a2 \<cdot> x0 \<and> y2 \<in> H" |
157 by (unfold H'_def vs_sum_def lin_def) fast |
164 by (unfold H'_def vs_sum_def lin_def) fast |
158 from x1x2 |
165 from x1x2 |
159 have ex_x1x2: "\<exists>y a. x1 + x2 = y + a \<cdot> x0 \<and> y \<in> H" |
166 have ex_x1x2: "\<exists>y a. x1 + x2 = y + a \<cdot> x0 \<and> y \<in> H" |
160 by (unfold H'_def vs_sum_def lin_def) fast |
167 by (unfold H'_def vs_sum_def lin_def) fast |
161 |
168 |
162 from ex_x1 ex_x2 ex_x1x2 |
169 from ex_x1 ex_x2 ex_x1x2 |
163 show "h' (x1 + x2) = h' x1 + h' x2" |
170 show "h' (x1 + x2) = h' x1 + h' x2" |
164 proof (elim exE conjE) |
171 proof (elim exE conjE) |
165 fix y1 y2 y a1 a2 a |
172 fix y1 y2 y a1 a2 a |
166 assume y1: "x1 = y1 + a1 \<cdot> x0" and y1': "y1 \<in> H" |
173 assume y1: "x1 = y1 + a1 \<cdot> x0" and y1': "y1 \<in> H" |
167 and y2: "x2 = y2 + a2 \<cdot> x0" and y2': "y2 \<in> H" |
174 and y2: "x2 = y2 + a2 \<cdot> x0" and y2': "y2 \<in> H" |
168 and y: "x1 + x2 = y + a \<cdot> x0" and y': "y \<in> H" |
175 and y: "x1 + x2 = y + a \<cdot> x0" and y': "y \<in> H" |
169 txt {* \label{decomp-H-use}*} |
176 txt {* \label{decomp-H-use}*} |
170 have ya: "y1 + y2 = y \<and> a1 + a2 = a" |
177 have ya: "y1 + y2 = y \<and> a1 + a2 = a" |
171 proof (rule decomp_H') |
178 proof (rule decomp_H') |
172 show "y1 + y2 + (a1 + a2) \<cdot> x0 = y + a \<cdot> x0" |
179 show "y1 + y2 + (a1 + a2) \<cdot> x0 = y + a \<cdot> x0" |
173 by (simp! add: vs_add_mult_distrib2 [of E]) |
180 by (simp! add: vs_add_mult_distrib2 [of E]) |
174 show "y1 + y2 \<in> H" .. |
181 show "y1 + y2 \<in> H" .. |
175 qed |
182 qed |
176 |
183 |
177 have "h' (x1 + x2) = h y + a * xi" |
184 have "h' (x1 + x2) = h y + a * xi" |
178 by (rule h'_definite) |
185 by (rule h'_definite) |
179 also have "... = h (y1 + y2) + (a1 + a2) * xi" |
186 also have "... = h (y1 + y2) + (a1 + a2) * xi" |
180 by (simp add: ya) |
187 by (simp add: ya) |
181 also from vs y1' y2' |
188 also from vs y1' y2' |
182 have "... = h y1 + h y2 + a1 * xi + a2 * xi" |
189 have "... = h y1 + h y2 + a1 * xi + a2 * xi" |
183 by (simp add: linearform_add [of H] |
190 by (simp add: linearform_add [of H] |
184 real_add_mult_distrib) |
191 real_add_mult_distrib) |
185 also have "... = (h y1 + a1 * xi) + (h y2 + a2 * xi)" |
192 also have "... = (h y1 + a1 * xi) + (h y2 + a2 * xi)" |
186 by simp |
193 by simp |
187 also have "h y1 + a1 * xi = h' x1" |
194 also have "h y1 + a1 * xi = h' x1" |
188 by (rule h'_definite [symmetric]) |
195 by (rule h'_definite [symmetric]) |
189 also have "h y2 + a2 * xi = h' x2" |
196 also have "h y2 + a2 * xi = h' x2" |
190 by (rule h'_definite [symmetric]) |
197 by (rule h'_definite [symmetric]) |
191 finally show ?thesis . |
198 finally show ?thesis . |
192 qed |
199 qed |
193 |
200 |
194 txt{* We further have to show that $h'$ is multiplicative, |
201 txt {* We further have to show that @{text h'} is multiplicative, |
195 i.~e.\ $h'\ap (c \mult x_1) = c \cdot h'\ap x_1$ |
202 i.~e.\ @{text "h' (c \<cdot> x\<^sub>1) = c \<cdot> h' x\<^sub>1"} for @{text "x \<in> H"} |
196 for $x\in H$ and $c\in \bbbR$. |
203 and @{text "c \<in> \<real>"}. *} |
197 *} |
204 |
198 |
205 next |
199 next |
206 fix c x1 assume x1: "x1 \<in> H'" |
200 fix c x1 assume x1: "x1 \<in> H'" |
|
201 have ax1: "c \<cdot> x1 \<in> H'" |
207 have ax1: "c \<cdot> x1 \<in> H'" |
202 by (rule vs_mult_closed, rule h') |
208 by (rule vs_mult_closed, rule h') |
203 from x1 |
209 from x1 |
204 have ex_x: "!! x. x\<in> H' ==> \<exists>y a. x = y + a \<cdot> x0 \<and> y \<in> H" |
210 have ex_x: "\<And>x. x\<in> H' \<Longrightarrow> \<exists>y a. x = y + a \<cdot> x0 \<and> y \<in> H" |
205 by (unfold H'_def vs_sum_def lin_def) fast |
211 by (unfold H'_def vs_sum_def lin_def) fast |
206 |
212 |
207 from x1 have ex_x1: "\<exists>y1 a1. x1 = y1 + a1 \<cdot> x0 \<and> y1 \<in> H" |
213 from x1 have ex_x1: "\<exists>y1 a1. x1 = y1 + a1 \<cdot> x0 \<and> y1 \<in> H" |
208 by (unfold H'_def vs_sum_def lin_def) fast |
214 by (unfold H'_def vs_sum_def lin_def) fast |
209 with ex_x [of "c \<cdot> x1", OF ax1] |
215 with ex_x [of "c \<cdot> x1", OF ax1] |
210 show "h' (c \<cdot> x1) = c * (h' x1)" |
216 show "h' (c \<cdot> x1) = c * (h' x1)" |
211 proof (elim exE conjE) |
217 proof (elim exE conjE) |
212 fix y1 y a1 a |
218 fix y1 y a1 a |
213 assume y1: "x1 = y1 + a1 \<cdot> x0" and y1': "y1 \<in> H" |
219 assume y1: "x1 = y1 + a1 \<cdot> x0" and y1': "y1 \<in> H" |
214 and y: "c \<cdot> x1 = y + a \<cdot> x0" and y': "y \<in> H" |
220 and y: "c \<cdot> x1 = y + a \<cdot> x0" and y': "y \<in> H" |
215 |
221 |
216 have ya: "c \<cdot> y1 = y \<and> c * a1 = a" |
222 have ya: "c \<cdot> y1 = y \<and> c * a1 = a" |
217 proof (rule decomp_H') |
223 proof (rule decomp_H') |
218 show "c \<cdot> y1 + (c * a1) \<cdot> x0 = y + a \<cdot> x0" |
224 show "c \<cdot> y1 + (c * a1) \<cdot> x0 = y + a \<cdot> x0" |
219 by (simp! add: vs_add_mult_distrib1) |
225 by (simp! add: vs_add_mult_distrib1) |
220 show "c \<cdot> y1 \<in> H" .. |
226 show "c \<cdot> y1 \<in> H" .. |
221 qed |
227 qed |
222 |
228 |
223 have "h' (c \<cdot> x1) = h y + a * xi" |
229 have "h' (c \<cdot> x1) = h y + a * xi" |
224 by (rule h'_definite) |
230 by (rule h'_definite) |
225 also have "... = h (c \<cdot> y1) + (c * a1) * xi" |
231 also have "... = h (c \<cdot> y1) + (c * a1) * xi" |
226 by (simp add: ya) |
232 by (simp add: ya) |
227 also from vs y1' have "... = c * h y1 + c * a1 * xi" |
233 also from vs y1' have "... = c * h y1 + c * a1 * xi" |
228 by (simp add: linearform_mult [of H]) |
234 by (simp add: linearform_mult [of H]) |
229 also from vs y1' have "... = c * (h y1 + a1 * xi)" |
235 also from vs y1' have "... = c * (h y1 + a1 * xi)" |
230 by (simp add: real_add_mult_distrib2 real_mult_assoc) |
236 by (simp add: real_add_mult_distrib2 real_mult_assoc) |
231 also have "h y1 + a1 * xi = h' x1" |
237 also have "h y1 + a1 * xi = h' x1" |
232 by (rule h'_definite [symmetric]) |
238 by (rule h'_definite [symmetric]) |
233 finally show ?thesis . |
239 finally show ?thesis . |
234 qed |
240 qed |
235 qed |
241 qed |
236 qed |
242 qed |
237 |
243 |
238 text{* \medskip The linear extension $h'$ of $h$ |
244 text {* \medskip The linear extension @{text h'} of @{text h} |
239 is bounded by the seminorm $p$. *} |
245 is bounded by the seminorm @{text p}. *} |
240 |
246 |
241 lemma h'_norm_pres: |
247 lemma h'_norm_pres: |
242 "[| h' == (\<lambda>x. let (y, a) = SOME (y, a). x = y + a \<cdot> x0 \<and> y \<in> H |
248 "h' \<equiv> \<lambda>x. let (y, a) = SOME (y, a). x = y + a \<cdot> x0 \<and> y \<in> H in h y + a * xi |
243 in h y + a * xi); |
249 \<Longrightarrow> H' \<equiv> H + lin x0 \<Longrightarrow> x0 \<notin> H \<Longrightarrow> x0 \<in> E \<Longrightarrow> x0 \<noteq> 0 \<Longrightarrow> is_vectorspace E |
244 H' == H + lin x0; x0 \<notin> H; x0 \<in> E; x0 \<noteq> 0; is_vectorspace E; |
250 \<Longrightarrow> is_subspace H E \<Longrightarrow> is_seminorm E p \<Longrightarrow> is_linearform H h |
245 is_subspace H E; is_seminorm E p; is_linearform H h; |
251 \<Longrightarrow> \<forall>y \<in> H. h y \<le> p y |
246 \<forall>y \<in> H. h y <= p y; |
252 \<Longrightarrow> \<forall>y \<in> H. - p (y + x0) - h y \<le> xi \<and> xi \<le> p (y + x0) - h y |
247 \<forall>y \<in> H. - p (y + x0) - h y <= xi \<and> xi <= p (y + x0) - h y |] |
253 \<Longrightarrow> \<forall>x \<in> H'. h' x \<le> p x" |
248 ==> \<forall>x \<in> H'. h' x <= p x" |
254 proof |
249 proof |
255 assume h'_def: |
250 assume h'_def: |
256 "h' \<equiv> (\<lambda>x. let (y, a) = SOME (y, a). x = y + a \<cdot> x0 \<and> y \<in> H |
251 "h' == (\<lambda>x. let (y, a) = SOME (y, a). x = y + a \<cdot> x0 \<and> y \<in> H |
|
252 in (h y) + a * xi)" |
257 in (h y) + a * xi)" |
253 and H'_def: "H' == H + lin x0" |
258 and H'_def: "H' \<equiv> H + lin x0" |
254 and vs: "x0 \<notin> H" "x0 \<in> E" "x0 \<noteq> 0" "is_vectorspace E" |
259 and vs: "x0 \<notin> H" "x0 \<in> E" "x0 \<noteq> 0" "is_vectorspace E" |
255 "is_subspace H E" "is_seminorm E p" "is_linearform H h" |
260 "is_subspace H E" "is_seminorm E p" "is_linearform H h" |
256 and a: "\<forall>y \<in> H. h y <= p y" |
261 and a: "\<forall>y \<in> H. h y \<le> p y" |
257 presume a1: "\<forall>ya \<in> H. - p (ya + x0) - h ya <= xi" |
262 presume a1: "\<forall>ya \<in> H. - p (ya + x0) - h ya \<le> xi" |
258 presume a2: "\<forall>ya \<in> H. xi <= p (ya + x0) - h ya" |
263 presume a2: "\<forall>ya \<in> H. xi \<le> p (ya + x0) - h ya" |
259 fix x assume "x \<in> H'" |
264 fix x assume "x \<in> H'" |
260 have ex_x: |
265 have ex_x: |
261 "!! x. x \<in> H' ==> \<exists>y a. x = y + a \<cdot> x0 \<and> y \<in> H" |
266 "\<And>x. x \<in> H' \<Longrightarrow> \<exists>y a. x = y + a \<cdot> x0 \<and> y \<in> H" |
262 by (unfold H'_def vs_sum_def lin_def) fast |
267 by (unfold H'_def vs_sum_def lin_def) fast |
263 have "\<exists>y a. x = y + a \<cdot> x0 \<and> y \<in> H" |
268 have "\<exists>y a. x = y + a \<cdot> x0 \<and> y \<in> H" |
264 by (rule ex_x) |
269 by (rule ex_x) |
265 thus "h' x <= p x" |
270 thus "h' x \<le> p x" |
266 proof (elim exE conjE) |
271 proof (elim exE conjE) |
267 fix y a assume x: "x = y + a \<cdot> x0" and y: "y \<in> H" |
272 fix y a assume x: "x = y + a \<cdot> x0" and y: "y \<in> H" |
268 have "h' x = h y + a * xi" |
273 have "h' x = h y + a * xi" |
269 by (rule h'_definite) |
274 by (rule h'_definite) |
270 |
275 |
271 txt{* Now we show |
276 txt {* Now we show @{text "h y + a \<cdot> \<xi> \<le> p (y + a \<cdot> x\<^sub>0)"} |
272 $h\ap y + a \cdot \xi\leq p\ap (y\plus a \mult x_0)$ |
277 by case analysis on @{text a}. *} |
273 by case analysis on $a$. *} |
278 |
274 |
279 also have "... \<le> p (y + a \<cdot> x0)" |
275 also have "... <= p (y + a \<cdot> x0)" |
|
276 proof (rule linorder_cases) |
280 proof (rule linorder_cases) |
277 |
281 |
278 assume z: "a = #0" |
282 assume z: "a = #0" |
279 with vs y a show ?thesis by simp |
283 with vs y a show ?thesis by simp |
280 |
284 |
281 txt {* In the case $a < 0$, we use $a_1$ with $\idt{ya}$ |
285 txt {* In the case @{text "a < 0"}, we use @{text "a\<^sub>1"} |
282 taken as $y/a$: *} |
286 with @{text ya} taken as @{text "y / a"}: *} |
283 |
287 |
284 next |
288 next |
285 assume lz: "a < #0" hence nz: "a \<noteq> #0" by simp |
289 assume lz: "a < #0" hence nz: "a \<noteq> #0" by simp |
286 from a1 |
290 from a1 |
287 have "- p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y) <= xi" |
291 have "- p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y) \<le> xi" |
288 by (rule bspec) (simp!) |
292 by (rule bspec) (simp!) |
289 |
293 |
290 txt {* The thesis for this case now follows by a short |
294 txt {* The thesis for this case now follows by a short |
291 calculation. *} |
295 calculation. *} |
292 hence "a * xi <= a * (- p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y))" |
296 hence "a * xi \<le> a * (- p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y))" |
293 by (rule real_mult_less_le_anti [OF lz]) |
297 by (rule real_mult_less_le_anti [OF lz]) |
294 also |
298 also |
295 have "... = - a * (p (inverse a \<cdot> y + x0)) - a * (h (inverse a \<cdot> y))" |
299 have "... = - a * (p (inverse a \<cdot> y + x0)) - a * (h (inverse a \<cdot> y))" |
296 by (rule real_mult_diff_distrib) |
300 by (rule real_mult_diff_distrib) |
297 also from lz vs y |
301 also from lz vs y |
298 have "- a * (p (inverse a \<cdot> y + x0)) = p (a \<cdot> (inverse a \<cdot> y + x0))" |
302 have "- a * (p (inverse a \<cdot> y + x0)) = p (a \<cdot> (inverse a \<cdot> y + x0))" |
299 by (simp add: seminorm_abs_homogenous abs_minus_eqI2) |
303 by (simp add: seminorm_abs_homogenous abs_minus_eqI2) |
300 also from nz vs y have "... = p (y + a \<cdot> x0)" |
304 also from nz vs y have "... = p (y + a \<cdot> x0)" |
301 by (simp add: vs_add_mult_distrib1) |
305 by (simp add: vs_add_mult_distrib1) |
302 also from nz vs y have "a * (h (inverse a \<cdot> y)) = h y" |
306 also from nz vs y have "a * (h (inverse a \<cdot> y)) = h y" |
303 by (simp add: linearform_mult [symmetric]) |
307 by (simp add: linearform_mult [symmetric]) |
304 finally have "a * xi <= p (y + a \<cdot> x0) - h y" . |
308 finally have "a * xi \<le> p (y + a \<cdot> x0) - h y" . |
305 |
309 |
306 hence "h y + a * xi <= h y + p (y + a \<cdot> x0) - h y" |
310 hence "h y + a * xi \<le> h y + p (y + a \<cdot> x0) - h y" |
307 by (simp add: real_add_left_cancel_le) |
311 by (simp add: real_add_left_cancel_le) |
308 thus ?thesis by simp |
312 thus ?thesis by simp |
309 |
313 |
310 txt {* In the case $a > 0$, we use $a_2$ with $\idt{ya}$ |
314 txt {* In the case @{text "a > 0"}, we use @{text "a\<^sub>2"} |
311 taken as $y/a$: *} |
315 with @{text ya} taken as @{text "y / a"}: *} |
312 |
316 |
313 next |
317 next |
314 assume gz: "#0 < a" hence nz: "a \<noteq> #0" by simp |
318 assume gz: "#0 < a" hence nz: "a \<noteq> #0" by simp |
315 from a2 have "xi <= p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y)" |
319 from a2 have "xi \<le> p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y)" |
316 by (rule bspec) (simp!) |
320 by (rule bspec) (simp!) |
317 |
321 |
318 txt {* The thesis for this case follows by a short |
322 txt {* The thesis for this case follows by a short |
319 calculation: *} |
323 calculation: *} |
320 |
324 |
321 with gz |
325 with gz |
322 have "a * xi <= a * (p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y))" |
326 have "a * xi \<le> a * (p (inverse a \<cdot> y + x0) - h (inverse a \<cdot> y))" |
323 by (rule real_mult_less_le_mono) |
327 by (rule real_mult_less_le_mono) |
324 also have "... = a * p (inverse a \<cdot> y + x0) - a * h (inverse a \<cdot> y)" |
328 also have "... = a * p (inverse a \<cdot> y + x0) - a * h (inverse a \<cdot> y)" |
325 by (rule real_mult_diff_distrib2) |
329 by (rule real_mult_diff_distrib2) |
326 also from gz vs y |
330 also from gz vs y |
327 have "a * p (inverse a \<cdot> y + x0) = p (a \<cdot> (inverse a \<cdot> y + x0))" |
331 have "a * p (inverse a \<cdot> y + x0) = p (a \<cdot> (inverse a \<cdot> y + x0))" |
328 by (simp add: seminorm_abs_homogenous abs_eqI2) |
332 by (simp add: seminorm_abs_homogenous abs_eqI2) |
329 also from nz vs y have "... = p (y + a \<cdot> x0)" |
333 also from nz vs y have "... = p (y + a \<cdot> x0)" |
330 by (simp add: vs_add_mult_distrib1) |
334 by (simp add: vs_add_mult_distrib1) |
331 also from nz vs y have "a * h (inverse a \<cdot> y) = h y" |
335 also from nz vs y have "a * h (inverse a \<cdot> y) = h y" |
332 by (simp add: linearform_mult [symmetric]) |
336 by (simp add: linearform_mult [symmetric]) |
333 finally have "a * xi <= p (y + a \<cdot> x0) - h y" . |
337 finally have "a * xi \<le> p (y + a \<cdot> x0) - h y" . |
334 |
338 |
335 hence "h y + a * xi <= h y + (p (y + a \<cdot> x0) - h y)" |
339 hence "h y + a * xi \<le> h y + (p (y + a \<cdot> x0) - h y)" |
336 by (simp add: real_add_left_cancel_le) |
340 by (simp add: real_add_left_cancel_le) |
337 thus ?thesis by simp |
341 thus ?thesis by simp |
338 qed |
342 qed |
339 also from x have "... = p x" by simp |
343 also from x have "... = p x" by simp |
340 finally show ?thesis . |
344 finally show ?thesis . |
341 qed |
345 qed |
342 qed blast+ |
346 qed blast+ |
343 |
347 |
344 end |
348 end |