src/HOL/HOLCF/Representable.thy
changeset 63040 eb4ddd18d635
parent 62175 8ffc4d0e652d
child 66453 cc19f7ca2ed6
equal deleted inserted replaced
63039:1a20fd9cf281 63040:eb4ddd18d635
    95 proof -
    95 proof -
    96   interpret ep_pair e p by fact
    96   interpret ep_pair e p by fact
    97   obtain Y where Y: "\<forall>i. Y i \<sqsubseteq> Y (Suc i)"
    97   obtain Y where Y: "\<forall>i. Y i \<sqsubseteq> Y (Suc i)"
    98   and t: "t = (\<Squnion>i. defl_principal (Y i))"
    98   and t: "t = (\<Squnion>i. defl_principal (Y i))"
    99     by (rule defl.obtain_principal_chain)
    99     by (rule defl.obtain_principal_chain)
   100   def approx \<equiv> "\<lambda>i. (p oo cast\<cdot>(defl_principal (Y i)) oo e) :: 'a \<rightarrow> 'a"
   100   define approx where "approx i = (p oo cast\<cdot>(defl_principal (Y i)) oo e)" for i
   101   have "approx_chain approx"
   101   have "approx_chain approx"
   102   proof (rule approx_chain.intro)
   102   proof (rule approx_chain.intro)
   103     show "chain (\<lambda>i. approx i)"
   103     show "chain (\<lambda>i. approx i)"
   104       unfolding approx_def by (simp add: Y)
   104       unfolding approx_def by (simp add: Y)
   105     show "(\<Squnion>i. approx i) = ID"
   105     show "(\<Squnion>i. approx i) = ID"