# HG changeset patch # User paulson # Date 1608910647 0 # Node ID 83b114a6545f8960e693a6b54510ec79b8a2ae83 # Parent cf14976d4fdb7a00784bfb7e2bb8cdaf382f2897 A few more simprules for iff-reasoning diff -r cf14976d4fdb -r 83b114a6545f src/HOL/Analysis/Gamma_Function.thy --- a/src/HOL/Analysis/Gamma_Function.thy Fri Dec 25 11:44:18 2020 +0000 +++ b/src/HOL/Analysis/Gamma_Function.thy Fri Dec 25 15:37:27 2020 +0000 @@ -643,7 +643,8 @@ assumes "summable (\n. f (n + k) :: 'a :: real_normed_vector)" shows "summable f" proof - - from assms have "convergent (\m. \nm. \nm. (\nnm. (\nnm. \n 'a :: {topological_semigroup_mult,t2_space,idom}" assumes "convergent_prod f" - shows convergent_prod_imp_convergent: "convergent (\n. \i\n. f i)" - and convergent_prod_to_zero_iff: "(\n. \i\n. f i) \ 0 \ (\i. f i = 0)" + shows convergent_prod_imp_convergent: "convergent (\n. \i\n. f i)" + and convergent_prod_to_zero_iff [simp]: "(\n. \i\n. f i) \ 0 \ (\i. f i = 0)" proof - from assms obtain M L where M: "\n. n \ M \ f n \ 0" and "(\n. \i\n. f (i + M)) \ L" and "L \ 0" @@ -960,7 +960,7 @@ shows "prodinf f \ x" by (metis lessThan_Suc_atMost assms convergent_prod_LIMSEQ LIMSEQ_le_const2) -lemma prodinf_eq_one_iff: +lemma prodinf_eq_one_iff [simp]: fixes f :: "nat \ real" assumes f: "convergent_prod f" and ge1: "\n. 1 \ f n" shows "prodinf f = 1 \ (\n. f n = 1)" @@ -1227,7 +1227,7 @@ by (auto simp: has_prod_def raw_has_prod_Suc_iff assms) qed -lemma convergent_prod_Suc_iff: +lemma convergent_prod_Suc_iff [simp]: shows "convergent_prod (\n. f (Suc n)) = convergent_prod f" proof assume "convergent_prod f" @@ -1374,10 +1374,10 @@ fixes f :: "nat \ 'a::real_normed_field" begin -lemma convergent_prod_inverse_iff: "convergent_prod (\n. inverse (f n)) \ convergent_prod f" +lemma convergent_prod_inverse_iff [simp]: "convergent_prod (\n. inverse (f n)) \ convergent_prod f" by (auto dest: convergent_prod_inverse) -lemma convergent_prod_const_iff: +lemma convergent_prod_const_iff [simp]: fixes c :: "'a :: {real_normed_field}" shows "convergent_prod (\_. c) \ c = 1" proof @@ -1793,7 +1793,7 @@ obtains r where "q = of_real r" using tendsto_eq_of_real_lim assms by blast -lemma has_prod_of_real_iff: +lemma has_prod_of_real_iff [simp]: "(\n. of_real (f n) :: 'a::{complete_space,real_normed_field}) has_prod of_real c \ f has_prod c" (is "?lhs = ?rhs") proof diff -r cf14976d4fdb -r 83b114a6545f src/HOL/Analysis/Lindelof_Spaces.thy --- a/src/HOL/Analysis/Lindelof_Spaces.thy Fri Dec 25 11:44:18 2020 +0000 +++ b/src/HOL/Analysis/Lindelof_Spaces.thy Fri Dec 25 15:37:27 2020 +0000 @@ -200,7 +200,7 @@ have UU_eq: "\\ = topspace X" by (meson UU fin locally_finite_in_def subset_antisym) obtain T where T: "\x. x \ topspace X \ openin X (T x) \ x \ T x \ finite {U \ \. U \ T x \ {}}" - using fin unfolding locally_finite_in_def by meson + using fin unfolding locally_finite_in_def by metis then obtain I where "countable I" "I \ topspace X" and I: "topspace X \ \(T ` I)" using X unfolding Lindelof_space_alt by (drule_tac x="image T (topspace X)" in spec) (auto simp: ex_countable_subset_image) diff -r cf14976d4fdb -r 83b114a6545f src/HOL/Series.thy --- a/src/HOL/Series.thy Fri Dec 25 11:44:18 2020 +0000 +++ b/src/HOL/Series.thy Fri Dec 25 15:37:27 2020 +0000 @@ -432,7 +432,7 @@ shows "(\i. f (i+n)) sums s \ (\i. f i) sums s" by (simp add: assms sums_iff_shift) -lemma summable_iff_shift: "summable (\n. f (n + k)) \ summable f" +lemma summable_iff_shift [simp]: "summable (\n. f (n + k)) \ summable f" by (metis diff_add_cancel summable_def sums_iff_shift [abs_def]) lemma sums_split_initial_segment: "f sums s \ (\i. f (i + n)) sums (s - (\i