equal
deleted
inserted
replaced
3789 lemma continuous_on_vec1_range: |
3789 lemma continuous_on_vec1_range: |
3790 " continuous_on s (vec1 o f) \<longleftrightarrow> (\<forall>x \<in> s. \<forall>e>0. \<exists>d>0. (\<forall>x' \<in> s. norm(x' - x) < d --> abs(f x' - f x) < e))" |
3790 " continuous_on s (vec1 o f) \<longleftrightarrow> (\<forall>x \<in> s. \<forall>e>0. \<exists>d>0. (\<forall>x' \<in> s. norm(x' - x) < d --> abs(f x' - f x) < e))" |
3791 unfolding continuous_on_def apply (simp del: dist_sym) unfolding dist_vec1 unfolding dist_def .. |
3791 unfolding continuous_on_def apply (simp del: dist_sym) unfolding dist_vec1 unfolding dist_def .. |
3792 |
3792 |
3793 lemma continuous_at_vec1_norm: |
3793 lemma continuous_at_vec1_norm: |
3794 "\<forall>x. continuous (at x) (vec1 o norm)" |
3794 "continuous (at x) (vec1 o norm)" |
3795 unfolding continuous_at_vec1_range using real_abs_sub_norm order_le_less_trans by blast |
3795 unfolding continuous_at_vec1_range using real_abs_sub_norm order_le_less_trans by blast |
3796 |
3796 |
3797 lemma continuous_on_vec1_norm: |
3797 lemma continuous_on_vec1_norm: |
3798 "\<forall>s. continuous_on s (vec1 o norm)" |
3798 "continuous_on s (vec1 o norm)" |
3799 unfolding continuous_on_vec1_range norm_vec1[THEN sym] by (metis norm_vec1 order_le_less_trans real_abs_sub_norm) |
3799 unfolding continuous_on_vec1_range norm_vec1[THEN sym] by (metis norm_vec1 order_le_less_trans real_abs_sub_norm) |
3800 |
3800 |
3801 lemma continuous_at_vec1_component: |
3801 lemma continuous_at_vec1_component: |
3802 shows "continuous (at (a::real^'a::finite)) (\<lambda> x. vec1(x$i))" |
3802 shows "continuous (at (a::real^'a::finite)) (\<lambda> x. vec1(x$i))" |
3803 proof- |
3803 proof- |
3858 using compact_attains_sup[of "f ` s"] |
3858 using compact_attains_sup[of "f ` s"] |
3859 using compact_continuous_image[of s "vec1 \<circ> f"] unfolding image_compose by auto |
3859 using compact_continuous_image[of s "vec1 \<circ> f"] unfolding image_compose by auto |
3860 |
3860 |
3861 lemma continuous_attains_inf: |
3861 lemma continuous_attains_inf: |
3862 "compact s \<Longrightarrow> s \<noteq> {} \<Longrightarrow> continuous_on s (vec1 o f) |
3862 "compact s \<Longrightarrow> s \<noteq> {} \<Longrightarrow> continuous_on s (vec1 o f) |
3863 ==> (\<exists>x \<in> s. \<forall>y \<in> s. f x \<le> f y)" |
3863 \<Longrightarrow> (\<exists>x \<in> s. \<forall>y \<in> s. f x \<le> f y)" |
3864 using compact_attains_inf[of "f ` s"] |
3864 using compact_attains_inf[of "f ` s"] |
3865 using compact_continuous_image[of s "vec1 \<circ> f"] unfolding image_compose by auto |
3865 using compact_continuous_image[of s "vec1 \<circ> f"] unfolding image_compose by auto |
3866 |
3866 |
3867 lemma distance_attains_sup: |
3867 lemma distance_attains_sup: |
3868 assumes "compact s" "s \<noteq> {}" |
3868 assumes "compact s" "s \<noteq> {}" |
4297 by (auto simp add: expand_set_eq vector_less_def vector_less_eq_def) |
4297 by (auto simp add: expand_set_eq vector_less_def vector_less_eq_def) |
4298 |
4298 |
4299 lemma mem_interval: fixes a :: "'a::ord^'n::finite" shows |
4299 lemma mem_interval: fixes a :: "'a::ord^'n::finite" shows |
4300 "x \<in> {a<..<b} \<longleftrightarrow> (\<forall>i. a$i < x$i \<and> x$i < b$i)" |
4300 "x \<in> {a<..<b} \<longleftrightarrow> (\<forall>i. a$i < x$i \<and> x$i < b$i)" |
4301 "x \<in> {a .. b} \<longleftrightarrow> (\<forall>i. a$i \<le> x$i \<and> x$i \<le> b$i)" |
4301 "x \<in> {a .. b} \<longleftrightarrow> (\<forall>i. a$i \<le> x$i \<and> x$i \<le> b$i)" |
4302 using interval[of a b] |
4302 using interval[of a b] by(auto simp add: expand_set_eq vector_less_def vector_less_eq_def) |
4303 by(auto simp add: expand_set_eq vector_less_def vector_less_eq_def) |
4303 |
|
4304 lemma mem_interval_1: fixes x :: "real^1" shows |
|
4305 "(x \<in> {a .. b} \<longleftrightarrow> dest_vec1 a \<le> dest_vec1 x \<and> dest_vec1 x \<le> dest_vec1 b)" |
|
4306 "(x \<in> {a<..<b} \<longleftrightarrow> dest_vec1 a < dest_vec1 x \<and> dest_vec1 x < dest_vec1 b)" |
|
4307 by(simp_all add: Cart_eq vector_less_def vector_less_eq_def dest_vec1_def forall_1) |
4304 |
4308 |
4305 lemma interval_eq_empty: fixes a :: "real^'n::finite" shows |
4309 lemma interval_eq_empty: fixes a :: "real^'n::finite" shows |
4306 "({a <..< b} = {} \<longleftrightarrow> (\<exists>i. b$i \<le> a$i))" (is ?th1) and |
4310 "({a <..< b} = {} \<longleftrightarrow> (\<exists>i. b$i \<le> a$i))" (is ?th1) and |
4307 "({a .. b} = {} \<longleftrightarrow> (\<exists>i. b$i < a$i))" (is ?th2) |
4311 "({a .. b} = {} \<longleftrightarrow> (\<exists>i. b$i < a$i))" (is ?th2) |
4308 proof- |
4312 proof- |
4354 "{a .. a} = {a} \<and> {a<..<a} = {}" |
4358 "{a .. a} = {a} \<and> {a<..<a} = {}" |
4355 apply(auto simp add: expand_set_eq vector_less_def vector_less_eq_def Cart_eq) |
4359 apply(auto simp add: expand_set_eq vector_less_def vector_less_eq_def Cart_eq) |
4356 apply (simp add: order_eq_iff) |
4360 apply (simp add: order_eq_iff) |
4357 apply (auto simp add: not_less less_imp_le) |
4361 apply (auto simp add: not_less less_imp_le) |
4358 done |
4362 done |
4359 |
|
4360 |
4363 |
4361 lemma interval_open_subset_closed: fixes a :: "'a::preorder^'n::finite" shows |
4364 lemma interval_open_subset_closed: fixes a :: "'a::preorder^'n::finite" shows |
4362 "{a<..<b} \<subseteq> {a .. b}" |
4365 "{a<..<b} \<subseteq> {a .. b}" |
4363 proof(simp add: subset_eq, rule) |
4366 proof(simp add: subset_eq, rule) |
4364 fix x |
4367 fix x |
5425 by(auto simp add: neg_le_divide_eq neg_divide_le_eq real_mult_commute diff_le_iff) |
5428 by(auto simp add: neg_le_divide_eq neg_divide_le_eq real_mult_commute diff_le_iff) |
5426 } |
5429 } |
5427 ultimately show ?thesis using False by auto |
5430 ultimately show ?thesis using False by auto |
5428 qed |
5431 qed |
5429 |
5432 |
5430 subsection{* Banach fixed point theorem (not really topological...) *} |
5433 lemma image_smult_interval:"(\<lambda>x. m *s (x::real^'n::finite)) ` {a..b} = |
|
5434 (if {a..b} = {} then {} else if 0 \<le> m then {m *s a..m *s b} else {m *s b..m *s a})" |
|
5435 using image_affinity_interval[of m 0 a b] by auto |
|
5436 |
|
5437 subsection{* Banach fixed point theorem (not really topological...) *} |
5431 |
5438 |
5432 lemma banach_fix: |
5439 lemma banach_fix: |
5433 assumes s:"complete s" "s \<noteq> {}" and c:"0 \<le> c" "c < 1" and f:"(f ` s) \<subseteq> s" and |
5440 assumes s:"complete s" "s \<noteq> {}" and c:"0 \<le> c" "c < 1" and f:"(f ` s) \<subseteq> s" and |
5434 lipschitz:"\<forall>x\<in>s. \<forall>y\<in>s. dist (f x) (f y) \<le> c * dist x y" |
5441 lipschitz:"\<forall>x\<in>s. \<forall>y\<in>s. dist (f x) (f y) \<le> c * dist x y" |
5435 shows "\<exists>! x\<in>s. (f x = x)" |
5442 shows "\<exists>! x\<in>s. (f x = x)" |