# HG changeset patch # User wenzelm # Date 1734003359 -3600 # Node ID c3190d0b068c08f54e9ff2c7a0570c7f4c799141 # Parent 8a360893360759efbe462e422c86226d7b29746b clarified specification context; diff -r 8a3608933607 -r c3190d0b068c src/HOL/HOLCF/Cpo.thy --- a/src/HOL/HOLCF/Cpo.thy Wed Dec 11 12:04:27 2024 +0100 +++ b/src/HOL/HOLCF/Cpo.thy Thu Dec 12 12:35:59 2024 +0100 @@ -808,7 +808,10 @@ subsection \Definitions\ -definition adm :: "('a::cpo \ bool) \ bool" +context cpo +begin + +definition adm :: "('a \ bool) \ bool" where "adm P \ (\Y. chain Y \ (\i. P (Y i)) \ P (\i. Y i))" lemma admI: "(\Y. \chain Y; \i. P (Y i)\ \ P (\i. Y i)) \ adm P" @@ -823,6 +826,8 @@ lemma triv_admI: "\x. P x \ adm P" by (rule admI) (erule spec) +end + subsection \Admissibility on chain-finite types\ @@ -835,6 +840,9 @@ subsection \Admissibility of special formulae and propagation\ +context cpo +begin + lemma adm_const [simp]: "adm (\x. t)" by (rule admI, simp) @@ -897,6 +905,8 @@ lemma adm_iff [simp]: "adm (\x. P x \ Q x) \ adm (\x. Q x \ P x) \ adm (\x. P x \ Q x)" by (subst iff_conv_conj_imp) (rule adm_conj) +end + text \admissibility and continuity\ lemma adm_below [simp]: "cont (\x. u x) \ cont (\x. v x) \ adm (\x. u x \ v x)" @@ -914,7 +924,10 @@ subsection \Compactness\ -definition compact :: "'a::cpo \ bool" +context cpo +begin + +definition compact :: "'a \ bool" where "compact k = adm (\x. k \ x)" lemma compactI: "adm (\x. k \ x) \ compact k" @@ -932,6 +945,8 @@ lemma compact_below_lub_iff: "compact x \ chain Y \ x \ (\i. Y i) \ (\i. x \ Y i)" by (fast intro: compactD2 elim: below_lub) +end + lemma compact_chfin [simp]: "compact x" for x :: "'a::chfin" by (rule compactI [OF adm_chfin])