src/HOLCF/Adm.thy
changeset 25923 5fe4b543512e
parent 25922 cb04d05e95fb
child 25925 3dc4acca4388
equal deleted inserted replaced
25922:cb04d05e95fb 25923:5fe4b543512e
    75 lemma adm_disj_lemma3: 
    75 lemma adm_disj_lemma3: 
    76   "\<lbrakk>chain (Y::nat \<Rightarrow> 'a::cpo); \<forall>i. \<exists>j\<ge>i. P (Y j)\<rbrakk> \<Longrightarrow> 
    76   "\<lbrakk>chain (Y::nat \<Rightarrow> 'a::cpo); \<forall>i. \<exists>j\<ge>i. P (Y j)\<rbrakk> \<Longrightarrow> 
    77     (\<Squnion>i. Y i) = (\<Squnion>i. Y (LEAST j. i \<le> j \<and> P (Y j)))"
    77     (\<Squnion>i. Y i) = (\<Squnion>i. Y (LEAST j. i \<le> j \<and> P (Y j)))"
    78  apply (frule (1) adm_disj_lemma1)
    78  apply (frule (1) adm_disj_lemma1)
    79  apply (rule antisym_less)
    79  apply (rule antisym_less)
    80   apply (rule lub_mono [rule_format], assumption+)
    80   apply (rule lub_mono, assumption+)
    81   apply (erule chain_mono)
    81   apply (erule chain_mono)
    82   apply (simp add: adm_disj_lemma2)
    82   apply (simp add: adm_disj_lemma2)
    83  apply (rule lub_range_mono, fast, assumption+)
    83  apply (rule lub_range_mono, fast, assumption+)
    84 done
    84 done
    85 
    85 
   126 apply (rule admI)
   126 apply (rule admI)
   127 apply (simp add: cont2contlubE)
   127 apply (simp add: cont2contlubE)
   128 apply (rule lub_mono)
   128 apply (rule lub_mono)
   129 apply (erule (1) ch2ch_cont)
   129 apply (erule (1) ch2ch_cont)
   130 apply (erule (1) ch2ch_cont)
   130 apply (erule (1) ch2ch_cont)
   131 apply assumption
   131 apply (erule spec)
   132 done
   132 done
   133 
   133 
   134 lemma adm_eq: "\<lbrakk>cont u; cont v\<rbrakk> \<Longrightarrow> adm (\<lambda>x. u x = v x)"
   134 lemma adm_eq: "\<lbrakk>cont u; cont v\<rbrakk> \<Longrightarrow> adm (\<lambda>x. u x = v x)"
   135 by (simp add: po_eq_conv adm_conj adm_less)
   135 by (simp add: po_eq_conv adm_conj adm_less)
   136 
   136