src/HOL/HOLCF/Pcpo.thy
changeset 61169 4de9ff3ea29a
parent 58880 0baae4311a9f
child 61998 b66d2ca1f907
equal deleted inserted replaced
61168:dcdfb6355a05 61169:4de9ff3ea29a
   196 class chfin = po +
   196 class chfin = po +
   197   assumes chfin: "chain Y \<Longrightarrow> \<exists>n. max_in_chain n Y"
   197   assumes chfin: "chain Y \<Longrightarrow> \<exists>n. max_in_chain n Y"
   198 begin
   198 begin
   199 
   199 
   200 subclass cpo
   200 subclass cpo
   201 apply default
   201 apply standard
   202 apply (frule chfin)
   202 apply (frule chfin)
   203 apply (blast intro: lub_finch1)
   203 apply (blast intro: lub_finch1)
   204 done
   204 done
   205 
   205 
   206 lemma chfin2finch: "chain Y \<Longrightarrow> finite_chain Y"
   206 lemma chfin2finch: "chain Y \<Longrightarrow> finite_chain Y"
   211 class flat = pcpo +
   211 class flat = pcpo +
   212   assumes ax_flat: "x \<sqsubseteq> y \<Longrightarrow> x = \<bottom> \<or> x = y"
   212   assumes ax_flat: "x \<sqsubseteq> y \<Longrightarrow> x = \<bottom> \<or> x = y"
   213 begin
   213 begin
   214 
   214 
   215 subclass chfin
   215 subclass chfin
   216 apply default
   216 apply standard
   217 apply (unfold max_in_chain_def)
   217 apply (unfold max_in_chain_def)
   218 apply (case_tac "\<forall>i. Y i = \<bottom>")
   218 apply (case_tac "\<forall>i. Y i = \<bottom>")
   219 apply simp
   219 apply simp
   220 apply simp
   220 apply simp
   221 apply (erule exE)
   221 apply (erule exE)