src/HOL/Library/Liminf_Limsup.thy
changeset 61969 e01015e49041
parent 61880 ff4d33058566
child 61973 0c7e865fa7cb
equal deleted inserted replaced
61968:e13e70f32407 61969:e01015e49041
   363   shows "convergent X \<Longrightarrow> liminf X = lim X"
   363   shows "convergent X \<Longrightarrow> liminf X = lim X"
   364   by (auto simp: convergent_def limI lim_imp_Liminf)
   364   by (auto simp: convergent_def limI lim_imp_Liminf)
   365 
   365 
   366 lemma lim_increasing_cl:
   366 lemma lim_increasing_cl:
   367   assumes "\<And>n m. n \<ge> m \<Longrightarrow> f n \<ge> f m"
   367   assumes "\<And>n m. n \<ge> m \<Longrightarrow> f n \<ge> f m"
   368   obtains l where "f ----> (l::'a::{complete_linorder,linorder_topology})"
   368   obtains l where "f \<longlonglongrightarrow> (l::'a::{complete_linorder,linorder_topology})"
   369 proof
   369 proof
   370   show "f ----> (SUP n. f n)"
   370   show "f \<longlonglongrightarrow> (SUP n. f n)"
   371     using assms
   371     using assms
   372     by (intro increasing_tendsto)
   372     by (intro increasing_tendsto)
   373        (auto simp: SUP_upper eventually_sequentially less_SUP_iff intro: less_le_trans)
   373        (auto simp: SUP_upper eventually_sequentially less_SUP_iff intro: less_le_trans)
   374 qed
   374 qed
   375 
   375 
   376 lemma lim_decreasing_cl:
   376 lemma lim_decreasing_cl:
   377   assumes "\<And>n m. n \<ge> m \<Longrightarrow> f n \<le> f m"
   377   assumes "\<And>n m. n \<ge> m \<Longrightarrow> f n \<le> f m"
   378   obtains l where "f ----> (l::'a::{complete_linorder,linorder_topology})"
   378   obtains l where "f \<longlonglongrightarrow> (l::'a::{complete_linorder,linorder_topology})"
   379 proof
   379 proof
   380   show "f ----> (INF n. f n)"
   380   show "f \<longlonglongrightarrow> (INF n. f n)"
   381     using assms
   381     using assms
   382     by (intro decreasing_tendsto)
   382     by (intro decreasing_tendsto)
   383        (auto simp: INF_lower eventually_sequentially INF_less_iff intro: le_less_trans)
   383        (auto simp: INF_lower eventually_sequentially INF_less_iff intro: le_less_trans)
   384 qed
   384 qed
   385 
   385 
   386 lemma compact_complete_linorder:
   386 lemma compact_complete_linorder:
   387   fixes X :: "nat \<Rightarrow> 'a::{complete_linorder,linorder_topology}"
   387   fixes X :: "nat \<Rightarrow> 'a::{complete_linorder,linorder_topology}"
   388   shows "\<exists>l r. subseq r \<and> (X \<circ> r) ----> l"
   388   shows "\<exists>l r. subseq r \<and> (X \<circ> r) \<longlonglongrightarrow> l"
   389 proof -
   389 proof -
   390   obtain r where "subseq r" and mono: "monoseq (X \<circ> r)"
   390   obtain r where "subseq r" and mono: "monoseq (X \<circ> r)"
   391     using seq_monosub[of X]
   391     using seq_monosub[of X]
   392     unfolding comp_def
   392     unfolding comp_def
   393     by auto
   393     by auto
   394   then have "(\<forall>n m. m \<le> n \<longrightarrow> (X \<circ> r) m \<le> (X \<circ> r) n) \<or> (\<forall>n m. m \<le> n \<longrightarrow> (X \<circ> r) n \<le> (X \<circ> r) m)"
   394   then have "(\<forall>n m. m \<le> n \<longrightarrow> (X \<circ> r) m \<le> (X \<circ> r) n) \<or> (\<forall>n m. m \<le> n \<longrightarrow> (X \<circ> r) n \<le> (X \<circ> r) m)"
   395     by (auto simp add: monoseq_def)
   395     by (auto simp add: monoseq_def)
   396   then obtain l where "(X \<circ> r) ----> l"
   396   then obtain l where "(X \<circ> r) \<longlonglongrightarrow> l"
   397      using lim_increasing_cl[of "X \<circ> r"] lim_decreasing_cl[of "X \<circ> r"]
   397      using lim_increasing_cl[of "X \<circ> r"] lim_decreasing_cl[of "X \<circ> r"]
   398      by auto
   398      by auto
   399   then show ?thesis
   399   then show ?thesis
   400     using \<open>subseq r\<close> by auto
   400     using \<open>subseq r\<close> by auto
   401 qed
   401 qed