# HG changeset patch # User haftmann # Date 1387983145 -3600 # Node ID 64ff7f16d5b7ca6845596c2f7502d0ee2801ba3f # Parent c1c3341985047b9bffd0a0ca8cb2ce6edb328326 prefer abstract simp rule diff -r c1c334198504 -r 64ff7f16d5b7 src/HOL/Bali/TypeSafe.thy --- a/src/HOL/Bali/TypeSafe.thy Wed Dec 25 10:09:43 2013 +0100 +++ b/src/HOL/Bali/TypeSafe.thy Wed Dec 25 15:52:25 2013 +0100 @@ -2946,7 +2946,7 @@ by simp from da_e1 s0_s1 True obtain E1' where "\prg=G,cls=accC,lcl=L\\ (dom (locals (store s1)))\In1l e1\ E1'" - by - (rule da_weakenE, auto iff del: Un_subset_iff le_sup_iff) + by - (rule da_weakenE, auto iff del: Un_subset_iff sup.bounded_iff) with conf_s1 wt_e1 obtain "s2\\(G, L)" @@ -2965,7 +2965,7 @@ by simp from da_e2 s0_s1 False obtain E2' where "\prg=G,cls=accC,lcl=L\\ (dom (locals (store s1)))\In1l e2\ E2'" - by - (rule da_weakenE, auto iff del: Un_subset_iff le_sup_iff) + by - (rule da_weakenE, auto iff del: Un_subset_iff sup.bounded_iff) with conf_s1 wt_e2 obtain "s2\\(G, L)" diff -r c1c334198504 -r 64ff7f16d5b7 src/HOL/Hoare_Parallel/RG_Hoare.thy --- a/src/HOL/Hoare_Parallel/RG_Hoare.thy Wed Dec 25 10:09:43 2013 +0100 +++ b/src/HOL/Hoare_Parallel/RG_Hoare.thy Wed Dec 25 15:52:25 2013 +0100 @@ -4,7 +4,7 @@ subsection {* Proof System for Component Programs *} -declare Un_subset_iff [simp del] le_sup_iff [simp del] +declare Un_subset_iff [simp del] sup.bounded_iff [simp del] definition stable :: "'a set \ ('a \ 'a) set \ bool" where "stable \ \f g. (\x y. x \ f \ (x, y) \ g \ y \ f)" diff -r c1c334198504 -r 64ff7f16d5b7 src/HOL/Lattices.thy --- a/src/HOL/Lattices.thy Wed Dec 25 10:09:43 2013 +0100 +++ b/src/HOL/Lattices.thy Wed Dec 25 15:52:25 2013 +0100 @@ -98,14 +98,14 @@ obtains "a \ b" and "a \ c" using assms by (blast intro: trans cobounded1 cobounded2) -lemma bounded_iff (* [simp] CANDIDATE *): +lemma bounded_iff [simp]: "a \ b * c \ a \ b \ a \ c" by (blast intro: boundedI elim: boundedE) lemma strict_boundedE: assumes "a \ b * c" obtains "a \ b" and "a \ c" - using assms by (auto simp add: commute strict_iff_order bounded_iff elim: orderE intro!: that)+ + using assms by (auto simp add: commute strict_iff_order elim: orderE intro!: that)+ lemma coboundedI1: "a \ c \ a * b \ c" @@ -128,10 +128,10 @@ by (blast intro: boundedI coboundedI1 coboundedI2) lemma absorb1: "a \ b \ a * b = a" - by (rule antisym) (auto simp add: bounded_iff refl) + by (rule antisym) (auto simp add: refl) lemma absorb2: "b \ a \ a * b = b" - by (rule antisym) (auto simp add: bounded_iff refl) + by (rule antisym) (auto simp add: refl) lemma absorb_iff1: "a \ b \ a * b = a" using order_iff by auto @@ -210,13 +210,13 @@ lemma le_infE: "x \ a \ b \ (x \ a \ x \ b \ P) \ P" by (blast intro: order_trans inf_le1 inf_le2) -lemma le_inf_iff [simp]: +lemma le_inf_iff: "x \ y \ z \ x \ y \ x \ z" by (blast intro: le_infI elim: le_infE) lemma le_iff_inf: "x \ y \ x \ y = x" - by (auto intro: le_infI1 antisym dest: eq_iff [THEN iffD1]) + by (auto intro: le_infI1 antisym dest: eq_iff [THEN iffD1] simp add: le_inf_iff) lemma inf_mono: "a \ c \ b \ d \ a \ b \ c \ d" by (fast intro: inf_greatest le_infI1 le_infI2) @@ -247,13 +247,13 @@ "a \ b \ x \ (a \ x \ b \ x \ P) \ P" by (blast intro: order_trans sup_ge1 sup_ge2) -lemma le_sup_iff [simp]: +lemma le_sup_iff: "x \ y \ z \ x \ z \ y \ z" by (blast intro: le_supI elim: le_supE) lemma le_iff_sup: "x \ y \ x \ y = y" - by (auto intro: le_supI2 antisym dest: eq_iff [THEN iffD1]) + by (auto intro: le_supI2 antisym dest: eq_iff [THEN iffD1] simp add: le_sup_iff) lemma sup_mono: "a \ c \ b \ d \ a \ b \ c \ d" by (fast intro: sup_least le_supI1 le_supI2) @@ -275,11 +275,11 @@ proof fix a b c show "(a \ b) \ c = a \ (b \ c)" - by (rule antisym) (auto intro: le_infI1 le_infI2) + by (rule antisym) (auto intro: le_infI1 le_infI2 simp add: le_inf_iff) show "a \ b = b \ a" - by (rule antisym) auto + by (rule antisym) (auto simp add: le_inf_iff) show "a \ a = a" - by (rule antisym) auto + by (rule antisym) (auto simp add: le_inf_iff) qed sublocale inf!: semilattice_order inf less_eq less @@ -320,11 +320,11 @@ proof fix a b c show "(a \ b) \ c = a \ (b \ c)" - by (rule antisym) (auto intro: le_supI1 le_supI2) + by (rule antisym) (auto intro: le_supI1 le_supI2 simp add: le_sup_iff) show "a \ b = b \ a" - by (rule antisym) auto + by (rule antisym) (auto simp add: le_sup_iff) show "a \ a = a" - by (rule antisym) auto + by (rule antisym) (auto simp add: le_sup_iff) qed sublocale sup!: semilattice_order sup greater_eq greater diff -r c1c334198504 -r 64ff7f16d5b7 src/HOL/UNITY/Follows.thy --- a/src/HOL/UNITY/Follows.thy Wed Dec 25 10:09:43 2013 +0100 +++ b/src/HOL/UNITY/Follows.thy Wed Dec 25 15:52:25 2013 +0100 @@ -158,7 +158,7 @@ lemma Follows_Un: "[| F \ f' Fols f; F \ g' Fols g |] ==> F \ (%s. (f' s) \ (g' s)) Fols (%s. (f s) \ (g s))" -apply (simp add: Follows_def Increasing_Un Always_Un del: Un_subset_iff le_sup_iff, auto) +apply (simp add: Follows_def Increasing_Un Always_Un del: Un_subset_iff sup.bounded_iff, auto) apply (rule LeadsTo_Trans) apply (blast intro: Follows_Un_lemma) (*Weakening is used to exchange Un's arguments*)