# HG changeset patch # User noschinl # Date 1315923708 -7200 # Node ID 6a80fbc4e72c83bf0292809a5fd0016ef69b984c # Parent 8df4c332cb1cc16cd17eb38bc1f3e73a5ad644a4 tune simpset for Complete_Lattices diff -r 8df4c332cb1c -r 6a80fbc4e72c src/HOL/Big_Operators.thy --- a/src/HOL/Big_Operators.thy Tue Sep 13 13:17:52 2011 +0200 +++ b/src/HOL/Big_Operators.thy Tue Sep 13 16:21:48 2011 +0200 @@ -1433,11 +1433,10 @@ proof - interpret ab_semigroup_idem_mult inf by (rule ab_semigroup_idem_mult_inf) - from `A \ {}` obtain b B where "A = insert b B" by auto + from `A \ {}` obtain b B where "A = {b} \ B" by auto moreover with `finite A` have "finite B" by simp - ultimately show ?thesis - by (simp add: Inf_fin_def fold1_eq_fold_idem inf_Inf_fold_inf [symmetric]) - (simp add: Inf_fold_inf) + ultimately show ?thesis + by (simp add: Inf_fin_def fold1_eq_fold_idem inf_Inf_fold_inf [symmetric]) qed lemma Sup_fin_Sup: @@ -1446,11 +1445,10 @@ proof - interpret ab_semigroup_idem_mult sup by (rule ab_semigroup_idem_mult_sup) - from `A \ {}` obtain b B where "A = insert b B" by auto + from `A \ {}` obtain b B where "A = {b} \ B" by auto moreover with `finite A` have "finite B" by simp ultimately show ?thesis by (simp add: Sup_fin_def fold1_eq_fold_idem sup_Sup_fold_sup [symmetric]) - (simp add: Sup_fold_sup) qed end diff -r 8df4c332cb1c -r 6a80fbc4e72c src/HOL/Complete_Lattices.thy --- a/src/HOL/Complete_Lattices.thy Tue Sep 13 13:17:52 2011 +0200 +++ b/src/HOL/Complete_Lattices.thy Tue Sep 13 16:21:48 2011 +0200 @@ -126,16 +126,16 @@ lemma SUP_upper2: "i \ A \ u \ f i \ u \ (\i\A. f i)" using SUP_upper [of i A f] by auto -lemma le_Inf_iff (*[simp]*): "b \ \A \ (\a\A. b \ a)" +lemma le_Inf_iff: "b \ \A \ (\a\A. b \ a)" by (auto intro: Inf_greatest dest: Inf_lower) -lemma le_INF_iff (*[simp]*): "u \ (\i\A. f i) \ (\i\A. u \ f i)" +lemma le_INF_iff: "u \ (\i\A. f i) \ (\i\A. u \ f i)" by (auto simp add: INF_def le_Inf_iff) -lemma Sup_le_iff (*[simp]*): "\A \ b \ (\a\A. a \ b)" +lemma Sup_le_iff: "\A \ b \ (\a\A. a \ b)" by (auto intro: Sup_least dest: Sup_upper) -lemma SUP_le_iff (*[simp]*): "(\i\A. f i) \ u \ (\i\A. f i \ u)" +lemma SUP_le_iff: "(\i\A. f i) \ u \ (\i\A. f i \ u)" by (auto simp add: SUP_def Sup_le_iff) lemma Inf_empty [simp]: @@ -160,22 +160,22 @@ "\UNIV = \" by (auto intro!: antisym Sup_upper) -lemma Inf_insert (*[simp]*): "\insert a A = a \ \A" +lemma Inf_insert [simp]: "\insert a A = a \ \A" by (auto intro: le_infI le_infI1 le_infI2 antisym Inf_greatest Inf_lower) lemma INF_insert: "(\x\insert a A. f x) = f a \ INFI A f" by (simp add: INF_def Inf_insert) -lemma Sup_insert (*[simp]*): "\insert a A = a \ \A" +lemma Sup_insert [simp]: "\insert a A = a \ \A" by (auto intro: le_supI le_supI1 le_supI2 antisym Sup_least Sup_upper) lemma SUP_insert: "(\x\insert a A. f x) = f a \ SUPR A f" by (simp add: SUP_def Sup_insert) -lemma INF_image (*[simp]*): "(\x\f`A. g x) = (\x\A. g (f x))" +lemma INF_image [simp]: "(\x\f`A. g x) = (\x\A. g (f x))" by (simp add: INF_def image_image) -lemma SUP_image (*[simp]*): "(\x\f`A. g x) = (\x\A. g (f x))" +lemma SUP_image [simp]: "(\x\f`A. g x) = (\x\A. g (f x))" by (simp add: SUP_def image_image) lemma Inf_Sup: "\A = \{b. \a \ A. b \ a}" @@ -210,7 +210,7 @@ lemma INF_mono: "(\m. m \ B \ \n\A. f n \ g m) \ (\n\A. f n) \ (\n\B. g n)" - by (force intro!: Inf_mono simp: INF_def) + unfolding INF_def by (rule Inf_mono) fast lemma Sup_mono: assumes "\a. a \ A \ \b\B. a \ b" @@ -224,7 +224,7 @@ lemma SUP_mono: "(\n. n \ A \ \m\B. f n \ g m) \ (\n\A. f n) \ (\n\B. g n)" - by (force intro!: Sup_mono simp: SUP_def) + unfolding SUP_def by (rule Sup_mono) fast lemma INF_superset_mono: "B \ A \ (\x. x \ B \ f x \ g x) \ (\x\A. f x) \ (\x\B. g x)" @@ -278,11 +278,14 @@ lemma INF_inf_distrib: "(\a\A. f a) \ (\a\A. g a) = (\a\A. f a \ g a)" by (rule antisym) (rule INF_greatest, auto intro: le_infI1 le_infI2 INF_lower INF_mono) -lemma SUP_sup_distrib: "(\a\A. f a) \ (\a\A. g a) = (\a\A. f a \ g a)" - by (rule antisym) (auto intro: le_supI1 le_supI2 SUP_upper SUP_mono, - rule SUP_least, auto intro: le_supI1 le_supI2 SUP_upper SUP_mono) +lemma SUP_sup_distrib: "(\a\A. f a) \ (\a\A. g a) = (\a\A. f a \ g a)" (is "?L = ?R") +proof (rule antisym) + show "?L \ ?R" by (auto intro: le_supI1 le_supI2 SUP_upper SUP_mono) +next + show "?R \ ?L" by (rule SUP_least) (auto intro: le_supI1 le_supI2 SUP_upper) +qed -lemma Inf_top_conv (*[simp]*) [no_atp]: +lemma Inf_top_conv [simp, no_atp]: "\A = \ \ (\x\A. x = \)" "\ = \A \ (\x\A. x = \)" proof - @@ -304,12 +307,12 @@ then show "\ = \A \ (\x\A. x = \)" by auto qed -lemma INF_top_conv (*[simp]*): +lemma INF_top_conv [simp]: "(\x\A. B x) = \ \ (\x\A. B x = \)" "\ = (\x\A. B x) \ (\x\A. B x = \)" by (auto simp add: INF_def Inf_top_conv) -lemma Sup_bot_conv (*[simp]*) [no_atp]: +lemma Sup_bot_conv [simp, no_atp]: "\A = \ \ (\x\A. x = \)" (is ?P) "\ = \A \ (\x\A. x = \)" (is ?Q) proof - @@ -318,7 +321,7 @@ from dual.Inf_top_conv show ?P and ?Q by simp_all qed -lemma SUP_bot_conv (*[simp]*): +lemma SUP_bot_conv [simp]: "(\x\A. B x) = \ \ (\x\A. B x = \)" "\ = (\x\A. B x) \ (\x\A. B x = \)" by (auto simp add: SUP_def Sup_bot_conv) @@ -329,10 +332,10 @@ lemma SUP_const [simp]: "A \ {} \ (\i\A. f) = f" by (auto intro: antisym SUP_upper SUP_least) -lemma INF_top (*[simp]*): "(\x\A. \) = \" +lemma INF_top [simp]: "(\x\A. \) = \" by (cases "A = {}") (simp_all add: INF_empty) -lemma SUP_bot (*[simp]*): "(\x\A. \) = \" +lemma SUP_bot [simp]: "(\x\A. \) = \" by (cases "A = {}") (simp_all add: SUP_empty) lemma INF_commute: "(\i\A. \j\B. f i j) = (\j\B. \i\A. f i j)" @@ -492,23 +495,23 @@ "class.complete_linorder Sup Inf sup (op \) (op >) inf \ \" by (rule class.complete_linorder.intro, rule dual_complete_lattice, rule dual_linorder) -lemma Inf_less_iff (*[simp]*): +lemma Inf_less_iff: "\S \ a \ (\x\S. x \ a)" unfolding not_le [symmetric] le_Inf_iff by auto -lemma INF_less_iff (*[simp]*): +lemma INF_less_iff: "(\i\A. f i) \ a \ (\x\A. f x \ a)" unfolding INF_def Inf_less_iff by auto -lemma less_Sup_iff (*[simp]*): +lemma less_Sup_iff: "a \ \S \ (\x\S. a \ x)" unfolding not_le [symmetric] Sup_le_iff by auto -lemma less_SUP_iff (*[simp]*): +lemma less_SUP_iff: "a \ (\i\A. f i) \ (\x\A. a \ f x)" unfolding SUP_def less_Sup_iff by auto -lemma Sup_eq_top_iff (*[simp]*): +lemma Sup_eq_top_iff [simp]: "\A = \ \ (\x<\. \i\A. x < i)" proof assume *: "\A = \" @@ -530,11 +533,11 @@ qed qed -lemma SUP_eq_top_iff (*[simp]*): +lemma SUP_eq_top_iff [simp]: "(\i\A. f i) = \ \ (\x<\. \i\A. x < f i)" unfolding SUP_def Sup_eq_top_iff by auto -lemma Inf_eq_bot_iff (*[simp]*): +lemma Inf_eq_bot_iff [simp]: "\A = \ \ (\x>\. \i\A. i < x)" proof - interpret dual: complete_linorder Sup Inf sup "op \" "op >" inf \ \ @@ -542,7 +545,7 @@ from dual.Sup_eq_top_iff show ?thesis . qed -lemma INF_eq_bot_iff (*[simp]*): +lemma INF_eq_bot_iff [simp]: "(\i\A. f i) = \ \ (\x>\. \i\A. f i < x)" unfolding INF_def Inf_eq_bot_iff by auto diff -r 8df4c332cb1c -r 6a80fbc4e72c src/HOL/Induct/Sexp.thy --- a/src/HOL/Induct/Sexp.thy Tue Sep 13 13:17:52 2011 +0200 +++ b/src/HOL/Induct/Sexp.thy Tue Sep 13 16:21:48 2011 +0200 @@ -73,7 +73,7 @@ (** Introduction rules for 'pred_sexp' **) lemma pred_sexp_subset_Sigma: "pred_sexp <= sexp <*> sexp" -by (simp add: pred_sexp_def, blast) + by (simp add: pred_sexp_def) blast (* (a,b) \ pred_sexp^+ ==> a \ sexp *) lemmas trancl_pred_sexpD1 = diff -r 8df4c332cb1c -r 6a80fbc4e72c src/HOL/Lattices.thy --- a/src/HOL/Lattices.thy Tue Sep 13 13:17:52 2011 +0200 +++ b/src/HOL/Lattices.thy Tue Sep 13 16:21:48 2011 +0200 @@ -180,10 +180,10 @@ lemma inf_left_commute: "x \ (y \ z) = y \ (x \ z)" by (fact inf.left_commute) -lemma inf_idem (*[simp]*): "x \ x = x" +lemma inf_idem [simp]: "x \ x = x" by (fact inf.idem) -lemma inf_left_idem (*[simp]*): "x \ (x \ y) = x \ y" +lemma inf_left_idem [simp]: "x \ (x \ y) = x \ y" by (fact inf.left_idem) lemma inf_absorb1: "x \ y \ x \ y = x" @@ -219,10 +219,10 @@ lemma sup_left_commute: "x \ (y \ z) = y \ (x \ z)" by (fact sup.left_commute) -lemma sup_idem (*[simp]*): "x \ x = x" +lemma sup_idem [simp]: "x \ x = x" by (fact sup.idem) -lemma sup_left_idem (*[simp]*): "x \ (x \ y) = x \ y" +lemma sup_left_idem [simp]: "x \ (x \ y) = x \ y" by (fact sup.left_idem) lemma sup_absorb1: "y \ x \ x \ y = x" @@ -243,10 +243,10 @@ by (rule class.lattice.intro, rule dual_semilattice, rule class.semilattice_sup.intro, rule dual_order) (unfold_locales, auto) -lemma inf_sup_absorb (*[simp]*): "x \ (x \ y) = x" +lemma inf_sup_absorb [simp]: "x \ (x \ y) = x" by (blast intro: antisym inf_le1 inf_greatest sup_ge1) -lemma sup_inf_absorb (*[simp]*): "x \ (x \ y) = x" +lemma sup_inf_absorb [simp]: "x \ (x \ y) = x" by (blast intro: antisym sup_ge1 sup_least inf_le1) lemmas inf_sup_aci = inf_aci sup_aci @@ -267,8 +267,9 @@ assumes D: "!!x y z. x \ (y \ z) = (x \ y) \ (x \ z)" shows "x \ (y \ z) = (x \ y) \ (x \ z)" proof- - have "x \ (y \ z) = (x \ (x \ z)) \ (y \ z)" by(simp add:sup_inf_absorb) - also have "\ = x \ (z \ (x \ y))" by(simp add:D inf_commute sup_assoc) + have "x \ (y \ z) = (x \ (x \ z)) \ (y \ z)" by simp + also have "\ = x \ (z \ (x \ y))" + by (simp add: D inf_commute sup_assoc del: sup_inf_absorb) also have "\ = ((x \ y) \ x) \ ((x \ y) \ z)" by(simp add:inf_sup_absorb inf_commute) also have "\ = (x \ y) \ (x \ z)" by(simp add:D) @@ -279,8 +280,9 @@ assumes D: "!!x y z. x \ (y \ z) = (x \ y) \ (x \ z)" shows "x \ (y \ z) = (x \ y) \ (x \ z)" proof- - have "x \ (y \ z) = (x \ (x \ z)) \ (y \ z)" by(simp add:inf_sup_absorb) - also have "\ = x \ (z \ (x \ y))" by(simp add:D sup_commute inf_assoc) + have "x \ (y \ z) = (x \ (x \ z)) \ (y \ z)" by simp + also have "\ = x \ (z \ (x \ y))" + by (simp add: D sup_commute inf_assoc del: inf_sup_absorb) also have "\ = ((x \ y) \ x) \ ((x \ y) \ z)" by(simp add:sup_inf_absorb sup_commute) also have "\ = (x \ y) \ (x \ z)" by(simp add:D) @@ -439,11 +441,11 @@ by (rule class.boolean_algebra.intro, rule dual_bounded_lattice, rule dual_distrib_lattice) (unfold_locales, auto simp add: inf_compl_bot sup_compl_top diff_eq) -lemma compl_inf_bot (*[simp]*): +lemma compl_inf_bot [simp]: "- x \ x = \" by (simp add: inf_commute inf_compl_bot) -lemma compl_sup_top (*[simp]*): +lemma compl_sup_top [simp]: "- x \ x = \" by (simp add: sup_commute sup_compl_top) @@ -525,7 +527,7 @@ then show "- y \ - x" by (simp only: le_iff_inf) qed -lemma compl_le_compl_iff (*[simp]*): +lemma compl_le_compl_iff [simp]: "- x \ - y \ y \ x" by (auto dest: compl_mono) diff -r 8df4c332cb1c -r 6a80fbc4e72c src/HOL/Library/Extended_Real.thy --- a/src/HOL/Library/Extended_Real.thy Tue Sep 13 13:17:52 2011 +0200 +++ b/src/HOL/Library/Extended_Real.thy Tue Sep 13 16:21:48 2011 +0200 @@ -1506,7 +1506,8 @@ proof cases assume "\i. f i = 0" moreover then have "range f = {0}" by auto - ultimately show "c * SUPR UNIV f \ y" using * by (auto simp: SUPR_def) + ultimately show "c * SUPR UNIV f \ y" using * + by (auto simp: SUPR_def min_max.sup_absorb1) next assume "\ (\i. f i = 0)" then obtain i where "f i \ 0" by auto @@ -1568,7 +1569,8 @@ hence "0 < r" using `0 < e` by auto then obtain n ::nat where *: "1 / real n < r" "0 < n" using ex_inverse_of_nat_less by (auto simp: real_eq_of_nat inverse_eq_divide) - have "Sup A \ f n + 1 / ereal (real n)" using f[THEN spec, of n] by auto + have "Sup A \ f n + 1 / ereal (real n)" using f[THEN spec, of n] + by auto also have "1 / ereal (real n) \ e" using real * by (auto simp: one_ereal_def ) with bound have "f n + 1 / ereal (real n) \ y + e" by (rule add_mono) simp finally show "Sup A \ y + e" . @@ -1625,7 +1627,7 @@ then show "Sup ((\x. a + x) ` A) \ a + Sup A" . show "a + Sup A \ Sup ((\x. a + x) ` A)" proof (cases a) - case PInf with `A \ {}` show ?thesis by (auto simp: image_constant) + case PInf with `A \ {}` show ?thesis by (auto simp: image_constant min_max.sup_absorb1) next case (real r) then have **: "op + (- a) ` op + a ` A = A" diff -r 8df4c332cb1c -r 6a80fbc4e72c src/HOL/Library/Kleene_Algebra.thy --- a/src/HOL/Library/Kleene_Algebra.thy Tue Sep 13 13:17:52 2011 +0200 +++ b/src/HOL/Library/Kleene_Algebra.thy Tue Sep 13 16:21:48 2011 +0200 @@ -377,19 +377,18 @@ have [simp]: "1 \ star a" unfolding star_cont[of 1 a 1, simplified] by (subst power_0[symmetric]) (rule le_SUPI [OF UNIV_I]) - - show "1 + a * star a \ star a" - apply (rule plus_leI, simp) - apply (simp add:star_cont[of a a 1, simplified]) - apply (simp add:star_cont[of 1 a 1, simplified]) - apply (subst power_Suc[symmetric]) - by (intro SUP_leI le_SUPI UNIV_I) + + have "a * star a \ star a" + using star_cont[of a a 1] star_cont[of 1 a 1] + by (auto simp add: power_Suc[symmetric] simp del: power_Suc + intro: SUP_leI le_SUPI) - show "1 + star a * a \ star a" - apply (rule plus_leI, simp) - apply (simp add:star_cont[of 1 a a, simplified]) - apply (simp add:star_cont[of 1 a 1, simplified]) - by (auto intro: SUP_leI le_SUPI simp add: power_Suc[symmetric] power_commutes simp del: power_Suc) + then show "1 + a * star a \ star a" + by simp + + then show "1 + star a * a \ star a" + using star_cont[of a a 1] star_cont[of 1 a a] + by (simp add: power_commutes) show "a * x \ x \ star a * x \ x" proof - diff -r 8df4c332cb1c -r 6a80fbc4e72c src/HOL/Main.thy --- a/src/HOL/Main.thy Tue Sep 13 13:17:52 2011 +0200 +++ b/src/HOL/Main.thy Tue Sep 13 16:21:48 2011 +0200 @@ -11,17 +11,4 @@ text {* See further \cite{Nipkow-et-al:2002:tutorial} *} -text {* Compatibility layer -- to be dropped *} - -lemma Inf_bool_def: - "Inf A \ (\x\A. x)" - by (auto intro: bool_induct) - -lemma Sup_bool_def: - "Sup A \ (\x\A. x)" - by auto - -declare Complete_Lattices.Inf_bool_def [simp del] -declare Complete_Lattices.Sup_bool_def [simp del] - end diff -r 8df4c332cb1c -r 6a80fbc4e72c src/HOL/Multivariate_Analysis/Extended_Real_Limits.thy --- a/src/HOL/Multivariate_Analysis/Extended_Real_Limits.thy Tue Sep 13 13:17:52 2011 +0200 +++ b/src/HOL/Multivariate_Analysis/Extended_Real_Limits.thy Tue Sep 13 16:21:48 2011 +0200 @@ -101,7 +101,7 @@ then show False using MInf by auto next case PInf then have "S={\}" by (metis Inf_eq_PInfty assms(2)) - then show False using `Inf S ~: S` by simp + then show False using `Inf S ~: S` by (simp add: top_ereal_def) next case (real r) then have fin: "\Inf S\ \ \" by simp from ereal_open_cont_interval[OF a this] guess e . note e = this @@ -143,7 +143,8 @@ from ereal_open_cont_interval[OF assms(1) * fin] guess e . note e = this then obtain b where b_def: "Inf S-ex. a * X x \ S) net" by (rule eventually_mono[OF _ *]) auto qed -qed (auto intro: tendsto_const) +qed auto lemma ereal_lim_uminus: fixes X :: "'a \ ereal" shows "((\i. - X i) ---> -L) net \ (X ---> L) net" @@ -306,7 +307,7 @@ assume S: "S = {Inf S<..}" then have "Inf S < l" using `l \ S` by auto then have "eventually (\x. Inf S < f x) net" using ev by auto - then show "eventually (\x. f x \ S) net" by (subst S) auto + then show "eventually (\x. f x \ S) net" by (subst S) auto qed auto next fix l y assume S: "\S. open S \ mono_set S \ l \ S \ eventually (\x. f x \ S) net" "y < l" diff -r 8df4c332cb1c -r 6a80fbc4e72c src/HOL/Probability/Caratheodory.thy --- a/src/HOL/Probability/Caratheodory.thy Tue Sep 13 13:17:52 2011 +0200 +++ b/src/HOL/Probability/Caratheodory.thy Tue Sep 13 16:21:48 2011 +0200 @@ -613,7 +613,7 @@ assumes posf: "positive M f" shows "increasing \ space = space M, sets = Pow (space M) \ (\x. Inf (measure_set M f x))" -apply (auto simp add: increasing_def) +apply (clarsimp simp add: increasing_def) apply (rule complete_lattice_class.Inf_greatest) apply (rule complete_lattice_class.Inf_lower) apply (clarsimp simp add: measure_set_def, rule_tac x=A in exI, blast) diff -r 8df4c332cb1c -r 6a80fbc4e72c src/HOL/Probability/Radon_Nikodym.thy --- a/src/HOL/Probability/Radon_Nikodym.thy Tue Sep 13 13:17:52 2011 +0200 +++ b/src/HOL/Probability/Radon_Nikodym.thy Tue Sep 13 16:21:48 2011 +0200 @@ -411,7 +411,9 @@ also have "\ = ?y" proof (rule antisym) show "(SUP i. integral\<^isup>P M (?g i)) \ ?y" - using g_in_G by (auto intro!: exI Sup_mono simp: SUPR_def) + using g_in_G + using [[simp_trace]] + by (auto intro!: exI Sup_mono simp: SUPR_def) show "?y \ (SUP i. integral\<^isup>P M (?g i))" unfolding y_eq by (auto intro!: SUP_mono positive_integral_mono Max_ge) qed diff -r 8df4c332cb1c -r 6a80fbc4e72c src/HOL/UNITY/ProgressSets.thy --- a/src/HOL/UNITY/ProgressSets.thy Tue Sep 13 13:17:52 2011 +0200 +++ b/src/HOL/UNITY/ProgressSets.thy Tue Sep 13 16:21:48 2011 +0200 @@ -77,7 +77,7 @@ by (simp add: cl_def, blast) lemma subset_cl: "r \ cl L r" -by (simp add: cl_def, blast) +by (simp add: cl_def le_Inf_iff) text{*A reformulation of @{thm subset_cl}*} lemma clI: "x \ r ==> x \ cl L r"