equal
deleted
inserted
replaced
879 then have bne: "ball z 1 \<inter> U \<noteq> {}" by force |
879 then have bne: "ball z 1 \<inter> U \<noteq> {}" by force |
880 then have [simp]: "aff_dim(ball z 1 \<inter> U) = aff_dim U" |
880 then have [simp]: "aff_dim(ball z 1 \<inter> U) = aff_dim U" |
881 using aff_dim_convex_Int_open [OF \<open>convex U\<close> open_ball] |
881 using aff_dim_convex_Int_open [OF \<open>convex U\<close> open_ball] |
882 by (fastforce simp add: Int_commute) |
882 by (fastforce simp add: Int_commute) |
883 have "rel_frontier S homeomorphic rel_frontier (ball z 1 \<inter> U)" |
883 have "rel_frontier S homeomorphic rel_frontier (ball z 1 \<inter> U)" |
884 apply (rule homeomorphic_rel_frontiers_convex_bounded_sets) |
884 by (rule homeomorphic_rel_frontiers_convex_bounded_sets) |
885 apply (auto simp: \<open>affine U\<close> affine_imp_convex convex_Int affdS assms) |
885 (auto simp: \<open>affine U\<close> affine_imp_convex convex_Int affdS assms) |
886 done |
|
887 also have "... = sphere z 1 \<inter> U" |
886 also have "... = sphere z 1 \<inter> U" |
888 using convex_affine_rel_frontier_Int [of "ball z 1" U] |
887 using convex_affine_rel_frontier_Int [of "ball z 1" U] |
889 by (simp add: \<open>affine U\<close> bne) |
888 by (simp add: \<open>affine U\<close> bne) |
890 finally have "rel_frontier S homeomorphic sphere z 1 \<inter> U" . |
889 finally have "rel_frontier S homeomorphic sphere z 1 \<inter> U" . |
891 then obtain h k where him: "h ` rel_frontier S = sphere z 1 \<inter> U" |
890 then obtain h k where him: "h ` rel_frontier S = sphere z 1 \<inter> U" |
901 using him a kh by auto metis |
900 using him a kh by auto metis |
902 show "k ` (sphere z 1 \<inter> U - {h a}) = rel_frontier S - {a}" |
901 show "k ` (sphere z 1 \<inter> U - {h a}) = rel_frontier S - {a}" |
903 by (force simp: h [symmetric] image_comp o_def kh) |
902 by (force simp: h [symmetric] image_comp o_def kh) |
904 qed (auto intro: continuous_on_subset hcon kcon simp: kh hk) |
903 qed (auto intro: continuous_on_subset hcon kcon simp: kh hk) |
905 also have "... homeomorphic T" |
904 also have "... homeomorphic T" |
906 apply (rule homeomorphic_punctured_affine_sphere_affine) |
905 by (rule homeomorphic_punctured_affine_sphere_affine) |
907 using a him |
906 (use a him in \<open>auto simp: affS affdS \<open>affine T\<close> \<open>affine U\<close> \<open>z \<in> U\<close>\<close>) |
908 by (auto simp: affS affdS \<open>affine T\<close> \<open>affine U\<close> \<open>z \<in> U\<close>) |
|
909 finally show ?thesis . |
907 finally show ?thesis . |
910 qed |
908 qed |
911 |
909 |
912 |
910 |
913 text\<open> When dealing with AR, ANR and ANR later, it's useful to know that every set |
911 text\<open> When dealing with AR, ANR and ANR later, it's useful to know that every set |
963 apply (auto simp: affine_hyperplane) |
961 apply (auto simp: affine_hyperplane) |
964 by (metis DIM_positive Suc_eq_plus1 add.left_neutral diff_add_cancel not_le not_less_eq_eq of_nat_1 of_nat_diff) |
962 by (metis DIM_positive Suc_eq_plus1 add.left_neutral diff_add_cancel not_le not_less_eq_eq of_nat_1 of_nat_diff) |
965 then obtain f g where fg: "homeomorphism (sphere 0 1 - {i}) {x. i \<bullet> x = 0} f g" |
963 then obtain f g where fg: "homeomorphism (sphere 0 1 - {i}) {x. i \<bullet> x = 0} f g" |
966 by (force simp: homeomorphic_def) |
964 by (force simp: homeomorphic_def) |
967 have "h ` (+) (- a) ` S \<subseteq> T" |
965 have "h ` (+) (- a) ` S \<subseteq> T" |
968 using heq span_clauses(1) span_linear_image by blast |
966 using heq span_superset span_linear_image by blast |
969 then have "g ` h ` (+) (- a) ` S \<subseteq> g ` {x. i \<bullet> x = 0}" |
967 then have "g ` h ` (+) (- a) ` S \<subseteq> g ` {x. i \<bullet> x = 0}" |
970 using Tsub by (simp add: image_mono) |
968 using Tsub by (simp add: image_mono) |
971 also have "... \<subseteq> sphere 0 1 - {i}" |
969 also have "... \<subseteq> sphere 0 1 - {i}" |
972 by (simp add: fg [unfolded homeomorphism_def]) |
970 by (simp add: fg [unfolded homeomorphism_def]) |
973 finally have gh_sub_sph: "(g \<circ> h) ` (+) (- a) ` S \<subseteq> sphere 0 1 - {i}" |
971 finally have gh_sub_sph: "(g \<circ> h) ` (+) (- a) ` S \<subseteq> sphere 0 1 - {i}" |
987 by (simp add: homeomorphic_translation) |
985 by (simp add: homeomorphic_translation) |
988 also have Shom: "\<dots> homeomorphic (g \<circ> h) ` (+) (- a) ` S" |
986 also have Shom: "\<dots> homeomorphic (g \<circ> h) ` (+) (- a) ` S" |
989 apply (simp add: homeomorphic_def homeomorphism_def) |
987 apply (simp add: homeomorphic_def homeomorphism_def) |
990 apply (rule_tac x="g \<circ> h" in exI) |
988 apply (rule_tac x="g \<circ> h" in exI) |
991 apply (rule_tac x="k \<circ> f" in exI) |
989 apply (rule_tac x="k \<circ> f" in exI) |
992 apply (auto simp: ghcont kfcont span_clauses(1) homeomorphism_apply2 [OF fg] image_comp) |
990 apply (auto simp: ghcont kfcont span_superset homeomorphism_apply2 [OF fg] image_comp) |
993 apply (force simp: o_def homeomorphism_apply2 [OF fg] span_clauses(1)) |
991 apply (force simp: o_def homeomorphism_apply2 [OF fg] span_superset) |
994 done |
992 done |
995 finally have Shom: "S homeomorphic (g \<circ> h) ` (+) (- a) ` S" . |
993 finally have Shom: "S homeomorphic (g \<circ> h) ` (+) (- a) ` S" . |
996 show ?thesis |
994 show ?thesis |
997 apply (rule_tac U = "ball 0 1 \<union> image (g o h) ((+) (- a) ` S)" |
995 apply (rule_tac U = "ball 0 1 \<union> image (g o h) ((+) (- a) ` S)" |
998 and T = "image (g o h) ((+) (- a) ` S)" |
996 and T = "image (g o h) ((+) (- a) ` S)" |