equal
deleted
inserted
replaced
53 shows "continuous_on A ((+) a \<circ> g) = continuous_on A g" |
53 shows "continuous_on A ((+) a \<circ> g) = continuous_on A g" |
54 proof - |
54 proof - |
55 have g: "g = (\<lambda>x. -a + x) \<circ> ((\<lambda>x. a + x) \<circ> g)" |
55 have g: "g = (\<lambda>x. -a + x) \<circ> ((\<lambda>x. a + x) \<circ> g)" |
56 by (rule ext) simp |
56 by (rule ext) simp |
57 show ?thesis |
57 show ?thesis |
58 by (metis (no_types, hide_lams) g continuous_on_compose homeomorphism_def homeomorphism_translation) |
58 by (metis (no_types, opaque_lifting) g continuous_on_compose homeomorphism_def homeomorphism_translation) |
59 qed |
59 qed |
60 |
60 |
61 lemma path_translation_eq: |
61 lemma path_translation_eq: |
62 fixes g :: "real \<Rightarrow> 'a :: real_normed_vector" |
62 fixes g :: "real \<Rightarrow> 'a :: real_normed_vector" |
63 shows "path((\<lambda>x. a + x) \<circ> g) = path g" |
63 shows "path((\<lambda>x. a + x) \<circ> g) = path g" |
2718 then have "norm ((x \<bullet> b) *\<^sub>R b) = norm x" |
2718 then have "norm ((x \<bullet> b) *\<^sub>R b) = norm x" |
2719 by simp |
2719 by simp |
2720 with b have "\<bar>x \<bullet> b\<bar> = norm x" |
2720 with b have "\<bar>x \<bullet> b\<bar> = norm x" |
2721 using norm_Basis by (simp add: b) |
2721 using norm_Basis by (simp add: b) |
2722 with xb show ?thesis |
2722 with xb show ?thesis |
2723 by (metis (mono_tags, hide_lams) abs_eq_iff abs_norm_cancel) |
2723 by (metis (mono_tags, opaque_lifting) abs_eq_iff abs_norm_cancel) |
2724 qed |
2724 qed |
2725 with \<open>r > 0\<close> b show "sphere 0 r = {r *\<^sub>R b, - r *\<^sub>R b}" |
2725 with \<open>r > 0\<close> b show "sphere 0 r = {r *\<^sub>R b, - r *\<^sub>R b}" |
2726 by (force simp: sphere_def dist_norm) |
2726 by (force simp: sphere_def dist_norm) |
2727 have "dist (r *\<^sub>R b) (- r *\<^sub>R b) = norm (r *\<^sub>R b + r *\<^sub>R b)" |
2727 have "dist (r *\<^sub>R b) (- r *\<^sub>R b) = norm (r *\<^sub>R b + r *\<^sub>R b)" |
2728 by (simp add: dist_norm) |
2728 by (simp add: dist_norm) |
3600 using inside_inside union_with_outside by fastforce |
3600 using inside_inside union_with_outside by fastforce |
3601 |
3601 |
3602 lemma inside_outside_intersect_connected: |
3602 lemma inside_outside_intersect_connected: |
3603 "\<lbrakk>connected T; inside S \<inter> T \<noteq> {}; outside S \<inter> T \<noteq> {}\<rbrakk> \<Longrightarrow> S \<inter> T \<noteq> {}" |
3603 "\<lbrakk>connected T; inside S \<inter> T \<noteq> {}; outside S \<inter> T \<noteq> {}\<rbrakk> \<Longrightarrow> S \<inter> T \<noteq> {}" |
3604 apply (simp add: inside_def outside_def ex_in_conv [symmetric] disjoint_eq_subset_Compl, clarify) |
3604 apply (simp add: inside_def outside_def ex_in_conv [symmetric] disjoint_eq_subset_Compl, clarify) |
3605 by (metis (no_types, hide_lams) Compl_anti_mono connected_component_eq connected_component_maximal contra_subsetD double_compl) |
3605 by (metis (no_types, opaque_lifting) Compl_anti_mono connected_component_eq connected_component_maximal contra_subsetD double_compl) |
3606 |
3606 |
3607 lemma outside_bounded_nonempty: |
3607 lemma outside_bounded_nonempty: |
3608 fixes S :: "'a :: {real_normed_vector, perfect_space} set" |
3608 fixes S :: "'a :: {real_normed_vector, perfect_space} set" |
3609 assumes "bounded S" shows "outside S \<noteq> {}" |
3609 assumes "bounded S" shows "outside S \<noteq> {}" |
3610 by (metis (no_types, lifting) Collect_empty_eq Collect_mem_eq Compl_eq_Diff_UNIV Diff_cancel |
3610 by (metis (no_types, lifting) Collect_empty_eq Collect_mem_eq Compl_eq_Diff_UNIV Diff_cancel |