diff -r f2bb6541f532 -r ad093e4638e2 src/HOL/HOLCF/LowerPD.thy --- a/src/HOL/HOLCF/LowerPD.thy Thu Dec 23 12:20:09 2010 +0100 +++ b/src/HOL/HOLCF/LowerPD.thy Thu Dec 23 11:51:59 2010 -0800 @@ -132,14 +132,14 @@ abbreviation lower_add :: "'a lower_pd \ 'a lower_pd \ 'a lower_pd" - (infixl "+\" 65) where - "xs +\ ys == lower_plus\xs\ys" + (infixl "\\" 65) where + "xs \\ ys == lower_plus\xs\ys" syntax "_lower_pd" :: "args \ 'a lower_pd" ("{_}\") translations - "{x,xs}\" == "{x}\ +\ {xs}\" + "{x,xs}\" == "{x}\ \\ {xs}\" "{x}\" == "CONST lower_unit\x" lemma lower_unit_Rep_compact_basis [simp]: @@ -148,23 +148,23 @@ by (simp add: compact_basis.extension_principal PDUnit_lower_mono) lemma lower_plus_principal [simp]: - "lower_principal t +\ lower_principal u = lower_principal (PDPlus t u)" + "lower_principal t \\ lower_principal u = lower_principal (PDPlus t u)" unfolding lower_plus_def by (simp add: lower_pd.extension_principal lower_pd.extension_mono PDPlus_lower_mono) interpretation lower_add: semilattice lower_add proof fix xs ys zs :: "'a lower_pd" - show "(xs +\ ys) +\ zs = xs +\ (ys +\ zs)" + show "(xs \\ ys) \\ zs = xs \\ (ys \\ zs)" apply (induct xs ys arbitrary: zs rule: lower_pd.principal_induct2, simp, simp) apply (rule_tac x=zs in lower_pd.principal_induct, simp) apply (simp add: PDPlus_assoc) done - show "xs +\ ys = ys +\ xs" + show "xs \\ ys = ys \\ xs" apply (induct xs ys rule: lower_pd.principal_induct2, simp, simp) apply (simp add: PDPlus_commute) done - show "xs +\ xs = xs" + show "xs \\ xs = xs" apply (induct xs rule: lower_pd.principal_induct, simp) apply (simp add: PDPlus_absorb) done @@ -184,21 +184,21 @@ lemmas lower_plus_aci = lower_plus_ac lower_plus_absorb lower_plus_left_absorb -lemma lower_plus_below1: "xs \ xs +\ ys" +lemma lower_plus_below1: "xs \ xs \\ ys" apply (induct xs ys rule: lower_pd.principal_induct2, simp, simp) apply (simp add: PDPlus_lower_le) done -lemma lower_plus_below2: "ys \ xs +\ ys" +lemma lower_plus_below2: "ys \ xs \\ ys" by (subst lower_plus_commute, rule lower_plus_below1) -lemma lower_plus_least: "\xs \ zs; ys \ zs\ \ xs +\ ys \ zs" +lemma lower_plus_least: "\xs \ zs; ys \ zs\ \ xs \\ ys \ zs" apply (subst lower_plus_absorb [of zs, symmetric]) apply (erule (1) monofun_cfun [OF monofun_cfun_arg]) done lemma lower_plus_below_iff [simp]: - "xs +\ ys \ zs \ xs \ zs \ ys \ zs" + "xs \\ ys \ zs \ xs \ zs \ ys \ zs" apply safe apply (erule below_trans [OF lower_plus_below1]) apply (erule below_trans [OF lower_plus_below2]) @@ -206,7 +206,7 @@ done lemma lower_unit_below_plus_iff [simp]: - "{x}\ \ ys +\ zs \ {x}\ \ ys \ {x}\ \ zs" + "{x}\ \ ys \\ zs \ {x}\ \ ys \ {x}\ \ zs" apply (induct x rule: compact_basis.principal_induct, simp) apply (induct ys rule: lower_pd.principal_induct, simp) apply (induct zs rule: lower_pd.principal_induct, simp) @@ -235,19 +235,19 @@ unfolding lower_unit_strict [symmetric] by (rule lower_unit_eq_iff) lemma lower_plus_bottom_iff [simp]: - "xs +\ ys = \ \ xs = \ \ ys = \" + "xs \\ ys = \ \ xs = \ \ ys = \" apply safe apply (rule UU_I, erule subst, rule lower_plus_below1) apply (rule UU_I, erule subst, rule lower_plus_below2) apply (rule lower_plus_absorb) done -lemma lower_plus_strict1 [simp]: "\ +\ ys = ys" +lemma lower_plus_strict1 [simp]: "\ \\ ys = ys" apply (rule below_antisym [OF _ lower_plus_below2]) apply (simp add: lower_plus_least) done -lemma lower_plus_strict2 [simp]: "xs +\ \ = xs" +lemma lower_plus_strict2 [simp]: "xs \\ \ = xs" apply (rule below_antisym [OF _ lower_plus_below1]) apply (simp add: lower_plus_least) done @@ -262,7 +262,7 @@ done lemma compact_lower_plus [simp]: - "\compact xs; compact ys\ \ compact (xs +\ ys)" + "\compact xs; compact ys\ \ compact (xs \\ ys)" by (auto dest!: lower_pd.compact_imp_principal) @@ -272,7 +272,7 @@ assumes P: "adm P" assumes unit: "\x. P {x}\" assumes insert: - "\x ys. \P {x}\; P ys\ \ P ({x}\ +\ ys)" + "\x ys. \P {x}\; P ys\ \ P ({x}\ \\ ys)" shows "P (xs::'a lower_pd)" apply (induct xs rule: lower_pd.principal_induct, rule P) apply (induct_tac a rule: pd_basis_induct1) @@ -287,7 +287,7 @@ [case_names adm lower_unit lower_plus, induct type: lower_pd]: assumes P: "adm P" assumes unit: "\x. P {x}\" - assumes plus: "\xs ys. \P xs; P ys\ \ P (xs +\ ys)" + assumes plus: "\xs ys. \P xs; P ys\ \ P (xs \\ ys)" shows "P (xs::'a lower_pd)" apply (induct xs rule: lower_pd.principal_induct, rule P) apply (induct_tac a rule: pd_basis_induct) @@ -303,10 +303,10 @@ "'a pd_basis \ ('a \ 'b lower_pd) \ 'b lower_pd" where "lower_bind_basis = fold_pd (\a. \ f. f\(Rep_compact_basis a)) - (\x y. \ f. x\f +\ y\f)" + (\x y. \ f. x\f \\ y\f)" lemma ACI_lower_bind: - "class.ab_semigroup_idem_mult (\x y. \ f. x\f +\ y\f)" + "class.ab_semigroup_idem_mult (\x y. \ f. x\f \\ y\f)" apply unfold_locales apply (simp add: lower_plus_assoc) apply (simp add: lower_plus_commute) @@ -317,7 +317,7 @@ "lower_bind_basis (PDUnit a) = (\ f. f\(Rep_compact_basis a))" "lower_bind_basis (PDPlus t u) = - (\ f. lower_bind_basis t\f +\ lower_bind_basis u\f)" + (\ f. lower_bind_basis t\f \\ lower_bind_basis u\f)" unfolding lower_bind_basis_def apply - apply (rule fold_pd_PDUnit [OF ACI_lower_bind]) @@ -356,7 +356,7 @@ by (induct x rule: compact_basis.principal_induct, simp, simp) lemma lower_bind_plus [simp]: - "lower_bind\(xs +\ ys)\f = lower_bind\xs\f +\ lower_bind\ys\f" + "lower_bind\(xs \\ ys)\f = lower_bind\xs\f \\ lower_bind\ys\f" by (induct xs ys rule: lower_pd.principal_induct2, simp, simp, simp) lemma lower_bind_strict [simp]: "lower_bind\\\f = f\\" @@ -378,7 +378,7 @@ unfolding lower_map_def by simp lemma lower_map_plus [simp]: - "lower_map\f\(xs +\ ys) = lower_map\f\xs +\ lower_map\f\ys" + "lower_map\f\(xs \\ ys) = lower_map\f\xs \\ lower_map\f\ys" unfolding lower_map_def by simp lemma lower_map_bottom [simp]: "lower_map\f\\ = {f\\}\" @@ -484,7 +484,7 @@ unfolding lower_join_def by simp lemma lower_join_plus [simp]: - "lower_join\(xss +\ yss) = lower_join\xss +\ lower_join\yss" + "lower_join\(xss \\ yss) = lower_join\xss \\ lower_join\yss" unfolding lower_join_def by simp lemma lower_join_bottom [simp]: "lower_join\\ = \"