equal
deleted
inserted
replaced
5 Henstock_Kurzweil_Integration |
5 Henstock_Kurzweil_Integration |
6 begin |
6 begin |
7 |
7 |
8 subsection \<open>Definition\<close> |
8 subsection \<open>Definition\<close> |
9 |
9 |
10 definition%important "bcontfun = {f. continuous_on UNIV f \<and> bounded (range f)}" |
10 definition\<^marker>\<open>tag important\<close> "bcontfun = {f. continuous_on UNIV f \<and> bounded (range f)}" |
11 |
11 |
12 typedef (overloaded) ('a, 'b) bcontfun ("(_ \<Rightarrow>\<^sub>C /_)" [22, 21] 21) = |
12 typedef (overloaded) ('a, 'b) bcontfun ("(_ \<Rightarrow>\<^sub>C /_)" [22, 21] 21) = |
13 "bcontfun::('a::topological_space \<Rightarrow> 'b::metric_space) set" |
13 "bcontfun::('a::topological_space \<Rightarrow> 'b::metric_space) set" |
14 morphisms apply_bcontfun Bcontfun |
14 morphisms apply_bcontfun Bcontfun |
15 by (auto intro: continuous_intros simp: bounded_def bcontfun_def) |
15 by (auto intro: continuous_intros simp: bounded_def bcontfun_def) |
39 |
39 |
40 (* TODO: Generalize to uniform spaces? *) |
40 (* TODO: Generalize to uniform spaces? *) |
41 instantiation bcontfun :: (topological_space, metric_space) metric_space |
41 instantiation bcontfun :: (topological_space, metric_space) metric_space |
42 begin |
42 begin |
43 |
43 |
44 lift_definition%important dist_bcontfun :: "'a \<Rightarrow>\<^sub>C 'b \<Rightarrow> 'a \<Rightarrow>\<^sub>C 'b \<Rightarrow> real" |
44 lift_definition\<^marker>\<open>tag important\<close> dist_bcontfun :: "'a \<Rightarrow>\<^sub>C 'b \<Rightarrow> 'a \<Rightarrow>\<^sub>C 'b \<Rightarrow> real" |
45 is "\<lambda>f g. (SUP x. dist (f x) (g x))" . |
45 is "\<lambda>f g. (SUP x. dist (f x) (g x))" . |
46 |
46 |
47 definition uniformity_bcontfun :: "('a \<Rightarrow>\<^sub>C 'b \<times> 'a \<Rightarrow>\<^sub>C 'b) filter" |
47 definition uniformity_bcontfun :: "('a \<Rightarrow>\<^sub>C 'b \<times> 'a \<Rightarrow>\<^sub>C 'b) filter" |
48 where "uniformity_bcontfun = (INF e\<in>{0 <..}. principal {(x, y). dist x y < e})" |
48 where "uniformity_bcontfun = (INF e\<in>{0 <..}. principal {(x, y). dist x y < e})" |
49 |
49 |
173 qed |
173 qed |
174 |
174 |
175 |
175 |
176 subsection \<open>Complete Space\<close> |
176 subsection \<open>Complete Space\<close> |
177 |
177 |
178 instance%important bcontfun :: (metric_space, complete_space) complete_space |
178 instance\<^marker>\<open>tag important\<close> bcontfun :: (metric_space, complete_space) complete_space |
179 proof%unimportant |
179 proof |
180 fix f :: "nat \<Rightarrow> ('a, 'b) bcontfun" |
180 fix f :: "nat \<Rightarrow> ('a, 'b) bcontfun" |
181 assume "Cauchy f" \<comment> \<open>Cauchy equals uniform convergence\<close> |
181 assume "Cauchy f" \<comment> \<open>Cauchy equals uniform convergence\<close> |
182 then obtain g where "uniform_limit UNIV f g sequentially" |
182 then obtain g where "uniform_limit UNIV f g sequentially" |
183 using uniformly_convergent_eq_cauchy[of "\<lambda>_. True" f] |
183 using uniformly_convergent_eq_cauchy[of "\<lambda>_. True" f] |
184 unfolding Cauchy_def uniform_limit_sequentially_iff |
184 unfolding Cauchy_def uniform_limit_sequentially_iff |
189 then show "convergent f" |
189 then show "convergent f" |
190 by (intro convergentI) |
190 by (intro convergentI) |
191 qed |
191 qed |
192 |
192 |
193 |
193 |
194 subsection%unimportant \<open>Supremum norm for a normed vector space\<close> |
194 subsection\<^marker>\<open>tag unimportant\<close> \<open>Supremum norm for a normed vector space\<close> |
195 |
195 |
196 instantiation%unimportant bcontfun :: (topological_space, real_normed_vector) real_vector |
196 instantiation\<^marker>\<open>tag unimportant\<close> bcontfun :: (topological_space, real_normed_vector) real_vector |
197 begin |
197 begin |
198 |
198 |
199 lemma uminus_cont: "f \<in> bcontfun \<Longrightarrow> (\<lambda>x. - f x) \<in> bcontfun" for f::"'a \<Rightarrow> 'b" |
199 lemma uminus_cont: "f \<in> bcontfun \<Longrightarrow> (\<lambda>x. - f x) \<in> bcontfun" for f::"'a \<Rightarrow> 'b" |
200 by (auto simp: bcontfun_def intro!: continuous_intros) |
200 by (auto simp: bcontfun_def intro!: continuous_intros) |
201 |
201 |
245 |
245 |
246 lemma bounded_norm_le_SUP_norm: |
246 lemma bounded_norm_le_SUP_norm: |
247 "bounded (range f) \<Longrightarrow> norm (f x) \<le> (SUP x. norm (f x))" |
247 "bounded (range f) \<Longrightarrow> norm (f x) \<le> (SUP x. norm (f x))" |
248 by (auto intro!: cSUP_upper bounded_imp_bdd_above simp: bounded_norm_comp) |
248 by (auto intro!: cSUP_upper bounded_imp_bdd_above simp: bounded_norm_comp) |
249 |
249 |
250 instantiation%unimportant bcontfun :: (topological_space, real_normed_vector) real_normed_vector |
250 instantiation\<^marker>\<open>tag unimportant\<close> bcontfun :: (topological_space, real_normed_vector) real_normed_vector |
251 begin |
251 begin |
252 |
252 |
253 definition norm_bcontfun :: "('a, 'b) bcontfun \<Rightarrow> real" |
253 definition norm_bcontfun :: "('a, 'b) bcontfun \<Rightarrow> real" |
254 where "norm_bcontfun f = dist f 0" |
254 where "norm_bcontfun f = dist f 0" |
255 |
255 |
288 assumes "\<And>x. norm (apply_bcontfun f x) \<le> b" |
288 assumes "\<And>x. norm (apply_bcontfun f x) \<le> b" |
289 shows "norm f \<le> b" |
289 shows "norm f \<le> b" |
290 using dist_bound[of f 0 b] assms |
290 using dist_bound[of f 0 b] assms |
291 by (simp add: dist_norm) |
291 by (simp add: dist_norm) |
292 |
292 |
293 subsection%unimportant \<open>(bounded) continuous extenstion\<close> |
293 subsection\<^marker>\<open>tag unimportant\<close> \<open>(bounded) continuous extenstion\<close> |
294 |
294 |
295 lemma integral_clamp: |
295 lemma integral_clamp: |
296 "integral {t0::real..clamp t0 t1 x} f = |
296 "integral {t0::real..clamp t0 t1 x} f = |
297 (if x < t0 then 0 else if x \<le> t1 then integral {t0..x} f else integral {t0..t1} f)" |
297 (if x < t0 then 0 else if x \<le> t1 then integral {t0..x} f else integral {t0..t1} f)" |
298 by (auto simp: clamp_def) |
298 by (auto simp: clamp_def) |