# HG changeset patch # User huffman # Date 1292469306 28800 # Node ID 717404c7d59aa9618f7f4ccbe076b9bcfae5e3b0 # Parent 9240be8c8c69e16d044a3cd9a585a02cff8d99c6 add notsqsubseteq syntax diff -r 9240be8c8c69 -r 717404c7d59a src/HOL/HOLCF/Adm.thy --- a/src/HOL/HOLCF/Adm.thy Wed Dec 15 20:52:20 2010 +0100 +++ b/src/HOL/HOLCF/Adm.thy Wed Dec 15 19:15:06 2010 -0800 @@ -121,19 +121,19 @@ lemma adm_subst: "\cont (\x. t x); adm P\ \ adm (\x. P (t x))" by (simp add: adm_def cont2contlubE ch2ch_cont) -lemma adm_not_below [simp]: "cont (\x. t x) \ adm (\x. \ t x \ u)" +lemma adm_not_below [simp]: "cont (\x. t x) \ adm (\x. t x \ u)" by (rule admI, simp add: cont2contlubE ch2ch_cont lub_below_iff) subsection {* Compactness *} definition compact :: "'a::cpo \ bool" where - "compact k = adm (\x. \ k \ x)" + "compact k = adm (\x. k \ x)" -lemma compactI: "adm (\x. \ k \ x) \ compact k" +lemma compactI: "adm (\x. k \ x) \ compact k" unfolding compact_def . -lemma compactD: "compact k \ adm (\x. \ k \ x)" +lemma compactD: "compact k \ adm (\x. k \ x)" unfolding compact_def . lemma compactI2: @@ -164,7 +164,7 @@ text {* admissibility and compactness *} lemma adm_compact_not_below [simp]: - "\compact k; cont (\x. t x)\ \ adm (\x. \ k \ t x)" + "\compact k; cont (\x. t x)\ \ adm (\x. k \ t x)" unfolding compact_def by (rule adm_subst) lemma adm_neq_compact [simp]: diff -r 9240be8c8c69 -r 717404c7d59a src/HOL/HOLCF/Completion.thy --- a/src/HOL/HOLCF/Completion.thy Wed Dec 15 20:52:20 2010 +0100 +++ b/src/HOL/HOLCF/Completion.thy Wed Dec 15 19:15:06 2010 -0800 @@ -371,6 +371,21 @@ apply (erule imageI) done +lemma cont_basis_fun: + assumes f_mono: "\a b x. a \ b \ f x a \ f x b" + assumes f_cont: "\a. cont (\x. f x a)" + shows "cont (\x. basis_fun (\a. f x a))" + apply (rule contI2) + apply (rule monofunI) + apply (rule basis_fun_mono, erule f_mono, erule f_mono) + apply (erule cont2monofunE [OF f_cont]) + apply (rule cfun_belowI) + apply (rule principal_induct, simp) + apply (simp only: contlub_cfun_fun) + apply (simp only: basis_fun_principal f_mono) + apply (simp add: cont2contlubE [OF f_cont]) +done + end lemma (in preorder) typedef_ideal_completion: diff -r 9240be8c8c69 -r 717404c7d59a src/HOL/HOLCF/Cpodef.thy --- a/src/HOL/HOLCF/Cpodef.thy Wed Dec 15 20:52:20 2010 +0100 +++ b/src/HOL/HOLCF/Cpodef.thy Wed Dec 15 19:15:06 2010 -0800 @@ -168,9 +168,9 @@ proof (unfold compact_def) have cont_Rep: "cont Rep" by (rule typedef_cont_Rep [OF type below adm cont_id]) - assume "adm (\x. \ Rep k \ x)" - with cont_Rep have "adm (\x. \ Rep k \ Rep x)" by (rule adm_subst) - thus "adm (\x. \ k \ x)" by (unfold below) + assume "adm (\x. Rep k \ x)" + with cont_Rep have "adm (\x. Rep k \ Rep x)" by (rule adm_subst) + thus "adm (\x. k \ x)" by (unfold below) qed subsection {* Proving a subtype is pointed *} diff -r 9240be8c8c69 -r 717404c7d59a src/HOL/HOLCF/Deflation.thy --- a/src/HOL/HOLCF/Deflation.thy Wed Dec 15 20:52:20 2010 +0100 +++ b/src/HOL/HOLCF/Deflation.thy Wed Dec 15 19:15:06 2010 -0800 @@ -206,18 +206,18 @@ lemma compact_e_rev: "compact (e\x) \ compact x" proof - assume "compact (e\x)" - hence "adm (\y. \ e\x \ y)" by (rule compactD) - hence "adm (\y. \ e\x \ e\y)" by (rule adm_subst [OF cont_Rep_cfun2]) - hence "adm (\y. \ x \ y)" by simp + hence "adm (\y. e\x \ y)" by (rule compactD) + hence "adm (\y. e\x \ e\y)" by (rule adm_subst [OF cont_Rep_cfun2]) + hence "adm (\y. x \ y)" by simp thus "compact x" by (rule compactI) qed lemma compact_e: "compact x \ compact (e\x)" proof - assume "compact x" - hence "adm (\y. \ x \ y)" by (rule compactD) - hence "adm (\y. \ x \ p\y)" by (rule adm_subst [OF cont_Rep_cfun2]) - hence "adm (\y. \ e\x \ y)" by (simp add: e_below_iff_below_p) + hence "adm (\y. x \ y)" by (rule compactD) + hence "adm (\y. x \ p\y)" by (rule adm_subst [OF cont_Rep_cfun2]) + hence "adm (\y. e\x \ y)" by (simp add: e_below_iff_below_p) thus "compact (e\x)" by (rule compactI) qed diff -r 9240be8c8c69 -r 717404c7d59a src/HOL/HOLCF/Domain_Aux.thy --- a/src/HOL/HOLCF/Domain_Aux.thy Wed Dec 15 20:52:20 2010 +0100 +++ b/src/HOL/HOLCF/Domain_Aux.thy Wed Dec 15 19:15:06 2010 -0800 @@ -86,10 +86,10 @@ lemma compact_abs_rev: "compact (abs\x) \ compact x" proof (unfold compact_def) - assume "adm (\y. \ abs\x \ y)" + assume "adm (\y. abs\x \ y)" with cont_Rep_cfun2 - have "adm (\y. \ abs\x \ abs\y)" by (rule adm_subst) - then show "adm (\y. \ x \ y)" using abs_below by simp + have "adm (\y. abs\x \ abs\y)" by (rule adm_subst) + then show "adm (\y. x \ y)" using abs_below by simp qed lemma compact_rep_rev: "compact (rep\x) \ compact x" diff -r 9240be8c8c69 -r 717404c7d59a src/HOL/HOLCF/One.thy --- a/src/HOL/HOLCF/One.thy Wed Dec 15 20:52:20 2010 +0100 +++ b/src/HOL/HOLCF/One.thy Wed Dec 15 19:15:06 2010 -0800 @@ -28,7 +28,7 @@ lemma one_induct [case_names bottom ONE]: "\P \; P ONE\ \ P x" by (cases x rule: oneE) simp_all -lemma dist_below_one [simp]: "\ ONE \ \" +lemma dist_below_one [simp]: "ONE \ \" unfolding ONE_def by simp lemma below_ONE [simp]: "x \ ONE" diff -r 9240be8c8c69 -r 717404c7d59a src/HOL/HOLCF/Porder.thy --- a/src/HOL/HOLCF/Porder.thy Wed Dec 15 20:52:20 2010 +0100 +++ b/src/HOL/HOLCF/Porder.thy Wed Dec 15 19:15:06 2010 -0800 @@ -20,6 +20,13 @@ notation (xsymbols) below (infix "\" 50) +abbreviation + not_below :: "'a \ 'a \ bool" (infix "~<<" 50) + where "not_below x y \ \ below x y" + +notation (xsymbols) + not_below (infix "\" 50) + lemma below_eq_trans: "\a \ b; b = c\ \ a \ c" by (rule subst) @@ -46,7 +53,7 @@ lemma rev_below_trans: "y \ z \ x \ y \ x \ z" by (rule below_trans) -lemma not_below2not_eq: "\ x \ y \ x \ y" +lemma not_below2not_eq: "x \ y \ x \ y" by auto end diff -r 9240be8c8c69 -r 717404c7d59a src/HOL/HOLCF/Tr.thy --- a/src/HOL/HOLCF/Tr.thy Wed Dec 15 20:52:20 2010 +0100 +++ b/src/HOL/HOLCF/Tr.thy Wed Dec 15 19:15:06 2010 -0800 @@ -40,7 +40,7 @@ text {* distinctness for type @{typ tr} *} lemma dist_below_tr [simp]: - "\ TT \ \" "\ FF \ \" "\ TT \ FF" "\ FF \ TT" + "TT \ \" "FF \ \" "TT \ FF" "FF \ TT" unfolding TT_def FF_def by simp_all lemma dist_eq_tr [simp]: @@ -53,10 +53,10 @@ lemma FF_below_iff [simp]: "FF \ x \ x = FF" by (induct x rule: tr_induct) simp_all -lemma not_below_TT_iff [simp]: "\ (x \ TT) \ x = FF" +lemma not_below_TT_iff [simp]: "x \ TT \ x = FF" by (induct x rule: tr_induct) simp_all -lemma not_below_FF_iff [simp]: "\ (x \ FF) \ x = TT" +lemma not_below_FF_iff [simp]: "x \ FF \ x = TT" by (induct x rule: tr_induct) simp_all diff -r 9240be8c8c69 -r 717404c7d59a src/HOL/HOLCF/Universal.thy --- a/src/HOL/HOLCF/Universal.thy Wed Dec 15 20:52:20 2010 +0100 +++ b/src/HOL/HOLCF/Universal.thy Wed Dec 15 19:15:06 2010 -0800 @@ -392,7 +392,7 @@ done lemma choose_pos_lessD: - "\choose_pos A x < choose_pos A y; finite A; x \ A; y \ A\ \ \ x \ y" + "\choose_pos A x < choose_pos A y; finite A; x \ A; y \ A\ \ x \ y" apply (induct A x arbitrary: y rule: choose_pos.induct) apply simp apply (case_tac "x = choose A") diff -r 9240be8c8c69 -r 717404c7d59a src/HOL/HOLCF/Up.thy --- a/src/HOL/HOLCF/Up.thy Wed Dec 15 20:52:20 2010 +0100 +++ b/src/HOL/HOLCF/Up.thy Wed Dec 15 19:15:06 2010 -0800 @@ -38,7 +38,7 @@ lemma minimal_up [iff]: "Ibottom \ z" by (simp add: below_up_def) -lemma not_Iup_below [iff]: "\ Iup x \ Ibottom" +lemma not_Iup_below [iff]: "Iup x \ Ibottom" by (simp add: below_up_def) lemma Iup_below [iff]: "(Iup x \ Iup y) = (x \ y)" @@ -200,7 +200,7 @@ lemma up_defined [simp]: "up\x \ \" by (simp add: up_def cont_Iup inst_up_pcpo) -lemma not_up_less_UU: "\ up\x \ \" +lemma not_up_less_UU: "up\x \ \" by simp (* FIXME: remove? *) lemma up_below [simp]: "up\x \ up\y \ x \ y" diff -r 9240be8c8c69 -r 717404c7d59a src/HOL/HOLCF/document/root.tex --- a/src/HOL/HOLCF/document/root.tex Wed Dec 15 20:52:20 2010 +0100 +++ b/src/HOL/HOLCF/document/root.tex Wed Dec 15 19:15:06 2010 -0800 @@ -12,6 +12,7 @@ \pagestyle{myheadings} \newcommand{\isasymas}{\textsf{as}} \newcommand{\isasymlazy}{\isamath{\sim}} +\newcommand{\isasymnotsqsubseteq}{\isamath{\not\sqsubseteq}} \begin{document}