src/HOL/Library/Order_Continuity.thy
changeset 69313 b021008c5397
parent 63979 95c3ae4baba8
child 69661 a03a63b81f44
equal deleted inserted replaced
69312:e0f68a507683 69313:b021008c5397
    74 proof safe
    74 proof safe
    75   fix M :: "nat \<Rightarrow> 'c"
    75   fix M :: "nat \<Rightarrow> 'c"
    76   assume M: "mono M"
    76   assume M: "mono M"
    77   then have "mono (\<lambda>i. g (M i))"
    77   then have "mono (\<lambda>i. g (M i))"
    78     using sup_continuous_mono[OF g] by (auto simp: mono_def)
    78     using sup_continuous_mono[OF g] by (auto simp: mono_def)
    79   with M show "f (g (SUPREMUM UNIV M)) = (SUP i. f (g (M i)))"
    79   with M show "f (g (Sup (M ` UNIV))) = (SUP i. f (g (M i)))"
    80     by (auto simp: sup_continuous_def g[THEN sup_continuousD] f[THEN sup_continuousD])
    80     by (auto simp: sup_continuous_def g[THEN sup_continuousD] f[THEN sup_continuousD])
    81 qed
    81 qed
    82 
    82 
    83 lemma sup_continuous_sup[order_continuous_intros]:
    83 lemma sup_continuous_sup[order_continuous_intros]:
    84   "sup_continuous f \<Longrightarrow> sup_continuous g \<Longrightarrow> sup_continuous (\<lambda>x. sup (f x) (g x))"
    84   "sup_continuous f \<Longrightarrow> sup_continuous g \<Longrightarrow> sup_continuous (\<lambda>x. sup (f x) (g x))"
   272 proof safe
   272 proof safe
   273   fix M :: "nat \<Rightarrow> 'c"
   273   fix M :: "nat \<Rightarrow> 'c"
   274   assume M: "antimono M"
   274   assume M: "antimono M"
   275   then have "antimono (\<lambda>i. g (M i))"
   275   then have "antimono (\<lambda>i. g (M i))"
   276     using inf_continuous_mono[OF g] by (auto simp: mono_def antimono_def)
   276     using inf_continuous_mono[OF g] by (auto simp: mono_def antimono_def)
   277   with M show "f (g (INFIMUM UNIV M)) = (INF i. f (g (M i)))"
   277   with M show "f (g (Inf (M ` UNIV))) = (INF i. f (g (M i)))"
   278     by (auto simp: inf_continuous_def g[THEN inf_continuousD] f[THEN inf_continuousD])
   278     by (auto simp: inf_continuous_def g[THEN inf_continuousD] f[THEN inf_continuousD])
   279 qed
   279 qed
   280 
   280 
   281 lemma inf_continuous_gfp:
   281 lemma inf_continuous_gfp:
   282   assumes "inf_continuous F" shows "gfp F = (INF i. (F ^^ i) top)" (is "gfp F = ?U")
   282   assumes "inf_continuous F" shows "gfp F = (INF i. (F ^^ i) top)" (is "gfp F = ?U")