src/HOL/Analysis/Homeomorphism.thy
changeset 68072 493b818e8e10
parent 67399 eab6ce8368fa
child 68073 fad29d2a17a5
equal deleted inserted replaced
68001:0a2a1b6507c1 68072:493b818e8e10
   939   obtain T where "subspace T" and Tsub: "T \<subseteq> {x. i \<bullet> x = 0}"
   939   obtain T where "subspace T" and Tsub: "T \<subseteq> {x. i \<bullet> x = 0}"
   940              and dimT: "dim T = dim ((+) (- a) ` S)"
   940              and dimT: "dim T = dim ((+) (- a) ` S)"
   941     apply (rule choose_subspace_of_subspace [of "dim ((+) (- a) ` S)" "{x::'n. i \<bullet> x = 0}"])
   941     apply (rule choose_subspace_of_subspace [of "dim ((+) (- a) ` S)" "{x::'n. i \<bullet> x = 0}"])
   942      apply (simp add: dim_hyperplane [OF \<open>i \<noteq> 0\<close>])
   942      apply (simp add: dim_hyperplane [OF \<open>i \<noteq> 0\<close>])
   943      apply (metis DIM_positive Suc_pred dd not_le not_less_eq_eq)
   943      apply (metis DIM_positive Suc_pred dd not_le not_less_eq_eq)
   944     apply (metis span_eq subspace_hyperplane)
   944     apply (metis span_eq_iff subspace_hyperplane)
   945     done
   945     done
   946   have "subspace (span ((+) (- a) ` S))"
   946   have "subspace (span ((+) (- a) ` S))"
   947     using subspace_span by blast
   947     using subspace_span by blast
   948   then obtain h k where "linear h" "linear k"
   948   then obtain h k where "linear h" "linear k"
   949                and heq: "h ` span ((+) (- a) ` S) = T"
   949                and heq: "h ` span ((+) (- a) ` S) = T"
   954     apply (auto simp: dimT)
   954     apply (auto simp: dimT)
   955     done
   955     done
   956   have hcont: "continuous_on A h" and kcont: "continuous_on B k" for A B
   956   have hcont: "continuous_on A h" and kcont: "continuous_on B k" for A B
   957     using \<open>linear h\<close> \<open>linear k\<close> linear_continuous_on linear_conv_bounded_linear by blast+
   957     using \<open>linear h\<close> \<open>linear k\<close> linear_continuous_on linear_conv_bounded_linear by blast+
   958   have ihhhh[simp]: "\<And>x. x \<in> S \<Longrightarrow> i \<bullet> h (x - a) = 0"
   958   have ihhhh[simp]: "\<And>x. x \<in> S \<Longrightarrow> i \<bullet> h (x - a) = 0"
   959     using Tsub [THEN subsetD] heq span_inc by fastforce
   959     using Tsub [THEN subsetD] heq span_superset by fastforce
   960   have "sphere 0 1 - {i} homeomorphic {x. i \<bullet> x = 0}"
   960   have "sphere 0 1 - {i} homeomorphic {x. i \<bullet> x = 0}"
   961     apply (rule homeomorphic_punctured_sphere_affine)
   961     apply (rule homeomorphic_punctured_sphere_affine)
   962     using i
   962     using i
   963     apply (auto simp: affine_hyperplane)
   963     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)
   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)