src/HOLCF/Up.thy
changeset 26407 562a1d615336
parent 26046 1624b3304bb9
child 26962 c8b20f615d6c
equal deleted inserted replaced
26406:be5b78d95801 26407:562a1d615336
   309 lemma fup3 [simp]: "fup\<cdot>up\<cdot>x = x"
   309 lemma fup3 [simp]: "fup\<cdot>up\<cdot>x = x"
   310 by (cases x, simp_all)
   310 by (cases x, simp_all)
   311 
   311 
   312 subsection {* Lifted cpo is a bifinite domain *}
   312 subsection {* Lifted cpo is a bifinite domain *}
   313 
   313 
   314 instance u :: (bifinite_cpo) approx ..
   314 instance u :: (profinite) approx ..
   315 
   315 
   316 defs (overloaded)
   316 defs (overloaded)
   317   approx_up_def:
   317   approx_up_def:
   318     "approx \<equiv> \<lambda>n. fup\<cdot>(\<Lambda> x. up\<cdot>(approx n\<cdot>x))"
   318     "approx \<equiv> \<lambda>n. fup\<cdot>(\<Lambda> x. up\<cdot>(approx n\<cdot>x))"
   319 
   319 
   320 instance u :: (bifinite_cpo) bifinite
   320 instance u :: (profinite) bifinite
   321 proof
   321 proof
   322   fix i :: nat and x :: "'a u"
   322   fix i :: nat and x :: "'a u"
   323   show "chain (\<lambda>i. approx i\<cdot>x)"
   323   show "chain (\<lambda>i. approx i\<cdot>x)"
   324     unfolding approx_up_def by simp
   324     unfolding approx_up_def by simp
   325   show "(\<Squnion>i. approx i\<cdot>x) = x"
   325   show "(\<Squnion>i. approx i\<cdot>x) = x"