src/HOL/Multivariate_Analysis/Topology_Euclidean_Space.thy
changeset 63128 24708cf4ba61
parent 63114 27afe7af7379
child 63151 82df5181d699
equal deleted inserted replaced
63127:360d9997fac9 63128:24708cf4ba61
  1851   using open_subset_interior[of S "- T"]
  1851   using open_subset_interior[of S "- T"]
  1852   using interior_subset[of "- T"]
  1852   using interior_subset[of "- T"]
  1853   unfolding closure_interior
  1853   unfolding closure_interior
  1854   by auto
  1854   by auto
  1855 
  1855 
  1856 lemma open_inter_closure_subset:
  1856 lemma open_Int_closure_subset:
  1857   "open S \<Longrightarrow> (S \<inter> (closure T)) \<subseteq> closure(S \<inter> T)"
  1857   "open S \<Longrightarrow> (S \<inter> (closure T)) \<subseteq> closure(S \<inter> T)"
  1858 proof
  1858 proof
  1859   fix x
  1859   fix x
  1860   assume as: "open S" "x \<in> S \<inter> closure T"
  1860   assume as: "open S" "x \<in> S \<inter> closure T"
  1861   {
  1861   {
  2639     apply (rule Lim_null_comparison [OF _ *])
  2639     apply (rule Lim_null_comparison [OF _ *])
  2640     apply (simp add: eventually_mono [OF g] mult_right_mono)
  2640     apply (simp add: eventually_mono [OF g] mult_right_mono)
  2641     done
  2641     done
  2642   then show ?thesis
  2642   then show ?thesis
  2643     by (subst tendsto_norm_zero_iff [symmetric]) (simp add: norm_mult)
  2643     by (subst tendsto_norm_zero_iff [symmetric]) (simp add: norm_mult)
       
  2644 qed
       
  2645 
       
  2646 lemma lim_null_scaleR_bounded:
       
  2647   assumes f: "(f \<longlongrightarrow> 0) net" and gB: "eventually (\<lambda>a. f a = 0 \<or> norm(g a) \<le> B) net"
       
  2648     shows "((\<lambda>n. f n *\<^sub>R g n) \<longlongrightarrow> 0) net"
       
  2649 proof
       
  2650   fix \<epsilon>::real
       
  2651   assume "0 < \<epsilon>"
       
  2652   then have B: "0 < \<epsilon> / (abs B + 1)" by simp
       
  2653   have *: "\<bar>f x\<bar> * norm (g x) < \<epsilon>" if f: "\<bar>f x\<bar> * (\<bar>B\<bar> + 1) < \<epsilon>" and g: "norm (g x) \<le> B" for x
       
  2654   proof -
       
  2655     have "\<bar>f x\<bar> * norm (g x) \<le> \<bar>f x\<bar> * B"
       
  2656       by (simp add: mult_left_mono g)
       
  2657     also have "... \<le> \<bar>f x\<bar> * (\<bar>B\<bar> + 1)"
       
  2658       by (simp add: mult_left_mono)
       
  2659     also have "... < \<epsilon>"
       
  2660       by (rule f)
       
  2661     finally show ?thesis .
       
  2662   qed
       
  2663   show "\<forall>\<^sub>F x in net. dist (f x *\<^sub>R g x) 0 < \<epsilon>"
       
  2664     apply (rule eventually_mono [OF eventually_conj [OF tendstoD [OF f B] gB] ])
       
  2665     apply (auto simp: \<open>0 < \<epsilon>\<close> divide_simps * split: if_split_asm)
       
  2666     done
  2644 qed
  2667 qed
  2645 
  2668 
  2646 text\<open>Deducing things about the limit from the elements.\<close>
  2669 text\<open>Deducing things about the limit from the elements.\<close>
  2647 
  2670 
  2648 lemma Lim_in_closed_set:
  2671 lemma Lim_in_closed_set:
  3984   then have "x \<notin> closure (-S)"
  4007   then have "x \<notin> closure (-S)"
  3985     by (auto simp: closure_complement subset_eq[symmetric] intro: interiorI)
  4008     by (auto simp: closure_complement subset_eq[symmetric] intro: interiorI)
  3986   with x have "x \<in> closure X - closure (-S)"
  4009   with x have "x \<in> closure X - closure (-S)"
  3987     by auto
  4010     by auto
  3988   also have "\<dots> \<subseteq> closure (X \<inter> S)"
  4011   also have "\<dots> \<subseteq> closure (X \<inter> S)"
  3989     using \<open>open S\<close> open_inter_closure_subset[of S X] by (simp add: closed_Compl ac_simps)
  4012     using \<open>open S\<close> open_Int_closure_subset[of S X] by (simp add: closed_Compl ac_simps)
  3990   finally have "X \<inter> S \<noteq> {}" by auto
  4013   finally have "X \<inter> S \<noteq> {}" by auto
  3991   then show False using \<open>X \<inter> A = {}\<close> \<open>S \<subseteq> A\<close> by auto
  4014   then show False using \<open>X \<inter> A = {}\<close> \<open>S \<subseteq> A\<close> by auto
  3992 next
  4015 next
  3993   assume "\<forall>A S. S \<subseteq> A \<longrightarrow> open S \<longrightarrow> x \<in> S \<longrightarrow> X \<inter> A \<noteq> {}"
  4016   assume "\<forall>A S. S \<subseteq> A \<longrightarrow> open S \<longrightarrow> x \<in> S \<longrightarrow> X \<inter> A \<noteq> {}"
  3994   from this[THEN spec, of "- X", THEN spec, of "- closure X"]
  4017   from this[THEN spec, of "- X", THEN spec, of "- closure X"]