equal
deleted
inserted
replaced
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" |