src/HOL/Analysis/Abstract_Euclidean_Space.thy
changeset 70019 095dce9892e8
parent 69994 cf7150ab1075
child 70086 72c52a897de2
equal deleted inserted replaced
70018:571909ef3103 70019:095dce9892e8
    79 
    79 
    80 lemma continuous_map_Euclidean_space_add [continuous_intros]:
    80 lemma continuous_map_Euclidean_space_add [continuous_intros]:
    81    "\<lbrakk>continuous_map X (Euclidean_space n) f; continuous_map X (Euclidean_space n) g\<rbrakk>
    81    "\<lbrakk>continuous_map X (Euclidean_space n) f; continuous_map X (Euclidean_space n) g\<rbrakk>
    82     \<Longrightarrow> continuous_map X (Euclidean_space n) (\<lambda>x i. f x i + g x i)"
    82     \<Longrightarrow> continuous_map X (Euclidean_space n) (\<lambda>x i. f x i + g x i)"
    83   unfolding Euclidean_space_def continuous_map_in_subtopology
    83   unfolding Euclidean_space_def continuous_map_in_subtopology
    84   by (fastforce simp add: continuous_map_componentwise_UNIV continuous_map_real_add)
    84   by (fastforce simp add: continuous_map_componentwise_UNIV continuous_map_add)
    85 
    85 
    86 lemma continuous_map_Euclidean_space_diff [continuous_intros]:
    86 lemma continuous_map_Euclidean_space_diff [continuous_intros]:
    87    "\<lbrakk>continuous_map X (Euclidean_space n) f; continuous_map X (Euclidean_space n) g\<rbrakk>
    87    "\<lbrakk>continuous_map X (Euclidean_space n) f; continuous_map X (Euclidean_space n) g\<rbrakk>
    88     \<Longrightarrow> continuous_map X (Euclidean_space n) (\<lambda>x i. f x i - g x i)"
    88     \<Longrightarrow> continuous_map X (Euclidean_space n) (\<lambda>x i. f x i - g x i)"
    89   unfolding Euclidean_space_def continuous_map_in_subtopology
    89   unfolding Euclidean_space_def continuous_map_in_subtopology
    90   by (fastforce simp add: continuous_map_componentwise_UNIV continuous_map_real_diff)
    90   by (fastforce simp add: continuous_map_componentwise_UNIV continuous_map_diff)
    91 
    91 
    92 lemma homeomorphic_Euclidean_space_product_topology:
    92 lemma homeomorphic_Euclidean_space_product_topology:
    93   "Euclidean_space n homeomorphic_space product_topology (\<lambda>i. euclideanreal) {..<n}"
    93   "Euclidean_space n homeomorphic_space product_topology (\<lambda>i. euclideanreal) {..<n}"
    94 proof -
    94 proof -
    95   have cm: "continuous_map (product_topology (\<lambda>i. euclideanreal) {..<n})
    95   have cm: "continuous_map (product_topology (\<lambda>i. euclideanreal) {..<n})
   156 qed
   156 qed
   157 
   157 
   158 lemma continuous_map_nsphere_reflection:
   158 lemma continuous_map_nsphere_reflection:
   159   "continuous_map (nsphere n) (nsphere n) (\<lambda>x i. if i = k then -x i else x i)"
   159   "continuous_map (nsphere n) (nsphere n) (\<lambda>x i. if i = k then -x i else x i)"
   160 proof -
   160 proof -
   161   have cm: "continuous_map (powertop_real UNIV)
   161   have cm: "continuous_map (powertop_real UNIV) euclideanreal (\<lambda>x. if j = k then - x j else x j)" for j
   162            euclideanreal (\<lambda>x. if j = k then - x j else x j)" for j
       
   163   proof (cases "j=k")
   162   proof (cases "j=k")
   164     case True
   163     case True
   165     then show ?thesis
   164     then show ?thesis
   166       by simp (metis UNIV_I continuous_map_product_projection continuous_map_real_minus)
   165       by simp (metis UNIV_I continuous_map_product_projection)
   167   next
   166   next
   168     case False
   167     case False
   169     then show ?thesis
   168     then show ?thesis
   170       by (auto intro: continuous_map_product_projection)
   169       by (auto intro: continuous_map_product_projection)
   171   qed
   170   qed
   172   have eq: "(if i = k then x k * x k else x i * x i) = x i * x i" for i and x :: "nat \<Rightarrow> real"
   171   have eq: "(if i = k then x k * x k else x i * x i) = x i * x i" for i and x :: "nat \<Rightarrow> real"
   173     by simp
   172     by simp
   174   show ?thesis
   173   show ?thesis
   175     apply (simp add: nsphere continuous_map_in_subtopology continuous_map_componentwise_UNIV
   174     apply (simp add: nsphere continuous_map_in_subtopology continuous_map_componentwise_UNIV
   176         continuous_map_from_subtopology  cm topspace_subtopology)
   175                      continuous_map_from_subtopology cm)
   177     apply (intro conjI allI impI continuous_intros continuous_map_from_subtopology continuous_map_product_projection)
   176     apply (intro conjI allI impI continuous_intros continuous_map_from_subtopology continuous_map_product_projection)
   178       apply (auto simp: power2_eq_square if_distrib [where f = "\<lambda>x. x * _"] eq cong: if_cong)
   177       apply (auto simp: power2_eq_square if_distrib [where f = "\<lambda>x. x * _"] eq cong: if_cong)
   179     done
   178     done
   180 qed
   179 qed
   181 
   180