src/HOL/Topological_Spaces.thy
changeset 66827 c94531b5007d
parent 66447 a1f5c5c26fa6
child 67149 e61557884799
equal deleted inserted replaced
66826:0d60d2118544 66827:c94531b5007d
  1213     by (auto simp: choice_iff)
  1213     by (auto simp: choice_iff)
  1214   then show ?thesis
  1214   then show ?thesis
  1215     by (auto intro!: exI[of _ "\<lambda>n. r (((Suc \<circ> r) ^^ Suc n) 0)"]
  1215     by (auto intro!: exI[of _ "\<lambda>n. r (((Suc \<circ> r) ^^ Suc n) 0)"]
  1216              simp: less_eq_Suc_le strict_mono_Suc_iff)
  1216              simp: less_eq_Suc_le strict_mono_Suc_iff)
  1217 qed
  1217 qed
       
  1218 
       
  1219 lemma sequentially_offset: 
       
  1220   assumes "eventually (\<lambda>i. P i) sequentially"
       
  1221   shows "eventually (\<lambda>i. P (i + k)) sequentially"
       
  1222   using assms by (rule eventually_sequentially_seg [THEN iffD2])
       
  1223 
       
  1224 lemma seq_offset_neg: 
       
  1225   "(f \<longlongrightarrow> l) sequentially \<Longrightarrow> ((\<lambda>i. f(i - k)) \<longlongrightarrow> l) sequentially"
       
  1226   apply (erule filterlim_compose)
       
  1227   apply (simp add: filterlim_def le_sequentially eventually_filtermap eventually_sequentially, arith)
       
  1228   done
  1218 
  1229 
  1219 lemma filterlim_subseq: "strict_mono f \<Longrightarrow> filterlim f sequentially sequentially"
  1230 lemma filterlim_subseq: "strict_mono f \<Longrightarrow> filterlim f sequentially sequentially"
  1220   unfolding filterlim_iff by (metis eventually_subseq)
  1231   unfolding filterlim_iff by (metis eventually_subseq)
  1221 
  1232 
  1222 lemma strict_mono_o: "strict_mono r \<Longrightarrow> strict_mono s \<Longrightarrow> strict_mono (r \<circ> s)"
  1233 lemma strict_mono_o: "strict_mono r \<Longrightarrow> strict_mono s \<Longrightarrow> strict_mono (r \<circ> s)"
  2015   by (auto intro: continuous_at_imp_continuous_at_within simp: continuous_on_eq_continuous_within)
  2026   by (auto intro: continuous_at_imp_continuous_at_within simp: continuous_on_eq_continuous_within)
  2016 
  2027 
  2017 lemma isCont_o2: "isCont f a \<Longrightarrow> isCont g (f a) \<Longrightarrow> isCont (\<lambda>x. g (f x)) a"
  2028 lemma isCont_o2: "isCont f a \<Longrightarrow> isCont g (f a) \<Longrightarrow> isCont (\<lambda>x. g (f x)) a"
  2018   unfolding isCont_def by (rule tendsto_compose)
  2029   unfolding isCont_def by (rule tendsto_compose)
  2019 
  2030 
  2020 lemma isCont_o[continuous_intros]: "isCont f a \<Longrightarrow> isCont g (f a) \<Longrightarrow> isCont (g \<circ> f) a"
  2031 lemma continuous_at_compose[continuous_intros]: "isCont f a \<Longrightarrow> isCont g (f a) \<Longrightarrow> isCont (g \<circ> f) a"
  2021   unfolding o_def by (rule isCont_o2)
  2032   unfolding o_def by (rule isCont_o2)
  2022 
  2033 
  2023 lemma isCont_tendsto_compose: "isCont g l \<Longrightarrow> (f \<longlongrightarrow> l) F \<Longrightarrow> ((\<lambda>x. g (f x)) \<longlongrightarrow> g l) F"
  2034 lemma isCont_tendsto_compose: "isCont g l \<Longrightarrow> (f \<longlongrightarrow> l) F \<Longrightarrow> ((\<lambda>x. g (f x)) \<longlongrightarrow> g l) F"
  2024   unfolding isCont_def by (rule tendsto_compose)
  2035   unfolding isCont_def by (rule tendsto_compose)
  2025 
  2036