# HG changeset patch # User Manuel Eberl # Date 1589456684 -7200 # Node ID 8ed78bb0b915f6e934a37edbe7ccc1e120dbd39d # Parent 0bbe0866b7e6f0e94bf0fdacf44e3d123a2dcb50 Tuned some proofs in HOL-Analysis diff -r 0bbe0866b7e6 -r 8ed78bb0b915 src/HOL/Analysis/Abstract_Topology.thy --- a/src/HOL/Analysis/Abstract_Topology.thy Thu May 14 10:26:33 2020 +0100 +++ b/src/HOL/Analysis/Abstract_Topology.thy Thu May 14 13:44:44 2020 +0200 @@ -524,8 +524,7 @@ \(\E1 E2. openin (top_of_set S) E1 \ openin (top_of_set S) E2 \ S \ E1 \ E2 \ E1 \ E2 = {} \ E1 \ {} \ E2 \ {})" - apply (simp add: connected_def openin_open disjoint_iff_not_equal, safe) - by (simp_all, blast+) (* SLOW *) + unfolding connected_def openin_open disjoint_iff_not_equal by blast lemma connected_openin_eq: "connected S \ @@ -2260,7 +2259,8 @@ lemma separatedin_closed_sets: "\closedin X S; closedin X T\ \ separatedin X S T \ disjnt S T" - by (metis closedin_def closure_of_eq disjnt_def inf_commute separatedin_def) + unfolding closure_of_eq disjnt_def separatedin_def + by (metis closedin_def closure_of_eq inf_commute) lemma separatedin_subtopology: "separatedin (subtopology X U) S T \ S \ U \ T \ U \ separatedin X S T" @@ -4153,10 +4153,16 @@ qed lemma topology_base_unique: - "\\S. P S \ openin X S; - \U x. \openin X U; x \ U\ \ \B. P B \ x \ B \ B \ U\ - \ topology(arbitrary union_of P) = X" - by (metis openin_topology_base_unique openin_inverse [of X]) + assumes "\S. P S \ openin X S" + "\U x. \openin X U; x \ U\ \ \B. P B \ x \ B \ B \ U" + shows "topology (arbitrary union_of P) = X" +proof - + have "X = topology (openin X)" + by (simp add: openin_inverse) + also from assms have "openin X = arbitrary union_of P" + by (subst openin_topology_base_unique) auto + finally show ?thesis .. +qed lemma topology_bases_eq_aux: "\(arbitrary union_of P) S; diff -r 0bbe0866b7e6 -r 8ed78bb0b915 src/HOL/Analysis/Affine.thy --- a/src/HOL/Analysis/Affine.thy Thu May 14 10:26:33 2020 +0100 +++ b/src/HOL/Analysis/Affine.thy Thu May 14 13:44:44 2020 +0200 @@ -391,7 +391,7 @@ qed (use \F \ insert a S\ in auto) qed then show ?thesis - unfolding affine_hull_explicit span_explicit by blast + unfolding affine_hull_explicit span_explicit by fast qed lemma affine_hull_insert_span: diff -r 0bbe0866b7e6 -r 8ed78bb0b915 src/HOL/Analysis/Bochner_Integration.thy --- a/src/HOL/Analysis/Bochner_Integration.thy Thu May 14 10:26:33 2020 +0100 +++ b/src/HOL/Analysis/Bochner_Integration.thy Thu May 14 13:44:44 2020 +0200 @@ -219,9 +219,17 @@ by (simp add: indicator_def[abs_def]) next case (insert x F) - then show ?case - by (auto intro!: add mult set sum_nonneg split: split_indicator split_indicator_asm - simp del: sum_mult_indicator simp: sum_nonneg_eq_0_iff) + from insert.prems have nonneg: "x \ 0" "\y. y \ F \ y \ 0" + by simp_all + hence *: "P (\xa. x * indicat_real {x' \ space M. U' i x' = x} xa)" + by (intro mult set) auto + have "P (\z. x * indicat_real {x' \ space M. U' i x' = x} z + + (\y\F. y * indicat_real {x \ space M. U' i x = y} z))" + using insert(1-3) + by (intro add * sum_nonneg mult_nonneg_nonneg) + (auto simp: nonneg indicator_def sum_nonneg_eq_0_iff) + thus ?case + using insert.hyps by (subst sum.insert) auto qed with U' show "P (U' i)" by simp qed diff -r 0bbe0866b7e6 -r 8ed78bb0b915 src/HOL/Analysis/Finite_Cartesian_Product.thy --- a/src/HOL/Analysis/Finite_Cartesian_Product.thy Thu May 14 10:26:33 2020 +0100 +++ b/src/HOL/Analysis/Finite_Cartesian_Product.thy Thu May 14 13:44:44 2020 +0200 @@ -957,7 +957,7 @@ by (metis eq_iff_diff_eq_0 vector_mul_eq_0 vector_ssub_ldistrib) lemma vector_mul_rcancel[simp]: "a *s x = b *s x \ (a::'a::field) = b \ x = 0" - by (metis eq_iff_diff_eq_0 vector_mul_eq_0 vector_sub_rdistrib) + by (subst eq_iff_diff_eq_0, subst vector_sub_rdistrib [symmetric]) simp lemma scalar_mult_eq_scaleR [abs_def]: "c *s x = c *\<^sub>R x" unfolding scaleR_vec_def vector_scalar_mult_def by simp diff -r 0bbe0866b7e6 -r 8ed78bb0b915 src/HOL/Analysis/Further_Topology.thy --- a/src/HOL/Analysis/Further_Topology.thy Thu May 14 10:26:33 2020 +0100 +++ b/src/HOL/Analysis/Further_Topology.thy Thu May 14 13:44:44 2020 +0200 @@ -1255,7 +1255,7 @@ using \C \ U - S\ \S \ U\ \a \ C\ by force show "continuous_on (j ` (S \ (C - {a}))) k" apply (rule continuous_on_subset [OF homeomorphism_cont2 [OF homhk]]) - using jim \C \ U - S\ \S \ U\ \ball a d \ U \ C\ j_def by fastforce + using jim \C \ U - S\ \S \ U\ \ball a d \ U \ C\ j_def by blast show "continuous_on (k ` j ` (S \ (C - {a}))) f" proof (clarify intro!: continuous_on_subset [OF contf]) fix y assume "y \ S \ (C - {a})" diff -r 0bbe0866b7e6 -r 8ed78bb0b915 src/HOL/Analysis/Measure_Space.thy --- a/src/HOL/Analysis/Measure_Space.thy Thu May 14 10:26:33 2020 +0100 +++ b/src/HOL/Analysis/Measure_Space.thy Thu May 14 13:44:44 2020 +0200 @@ -1897,8 +1897,10 @@ "finite I \ (\i. i \ I \ F i \ sets M) \ measure M (\i\I. F i) \ (\i\I. measure M (F i))" proof (induction I rule: finite_induct) case (insert i I) - then have "measure M (\i\insert i I. F i) \ measure M (F i) + measure M (\i\I. F i)" - by (auto intro!: measure_Un_le) + then have "measure M (\i\insert i I. F i) = measure M (F i \ \ (F ` I))" + by simp + also from insert have "measure M (F i \ \ (F ` I)) \ measure M (F i) + measure M (\ (F ` I))" + by (intro measure_Un_le sets.finite_Union) auto also have "measure M (\i\I. F i) \ (\i\I. measure M (F i))" using insert by auto finally show ?case diff -r 0bbe0866b7e6 -r 8ed78bb0b915 src/HOL/Analysis/Polytope.thy --- a/src/HOL/Analysis/Polytope.thy Thu May 14 10:26:33 2020 +0100 +++ b/src/HOL/Analysis/Polytope.thy Thu May 14 13:44:44 2020 +0200 @@ -2577,7 +2577,7 @@ have hface: "h face_of S" and "\a b. a \ 0 \ S \ {x. a \ x \ b} \ h = S \ {x. a \ x = b}" if "h \ F" for h - using exposed_face_of F_def that by simp_all auto + using exposed_face_of F_def that by blast+ then obtain a b where ab: "\h. h \ F \ a h \ 0 \ S \ {x. a h \ x \ b h} \ h = S \ {x. a h \ x = b h}" by metis @@ -3026,7 +3026,7 @@ show "norm (x - y) \ e / 2" if "x \ X" "y \ X" for x y proof - have "norm x < B" "norm y < B" - using B \X \ \'\ eq that by fastforce+ + using B \X \ \'\ eq that by blast+ have "norm (x - y) \ (\b\Basis. \(x-y) \ b\)" by (rule norm_le_l1) also have "... \ of_nat (DIM('a)) * (e / 2 / DIM('a))" @@ -3034,8 +3034,7 @@ fix i::'a assume "i \ Basis" then have I': "\z b. \z \ C; b = z * e / (2 * real DIM('a))\ \ i \ x \ b \ i \ y \ b \ i \ x \ b \ i \ y \ b" - using I \X \ \'\ that - by (fastforce simp: I_def) + using I[of X x y] \X \ \'\ that unfolding I_def by auto show "\(x - y) \ i\ \ e / 2 / real DIM('a)" proof (rule ccontr) assume "\ \(x - y) \ i\ \ e / 2 / real DIM('a)" diff -r 0bbe0866b7e6 -r 8ed78bb0b915 src/HOL/Library/Infinite_Set.thy --- a/src/HOL/Library/Infinite_Set.thy Thu May 14 10:26:33 2020 +0100 +++ b/src/HOL/Library/Infinite_Set.thy Thu May 14 13:44:44 2020 +0200 @@ -371,8 +371,9 @@ then show ?case by simp next case (insert a A) - with R show ?case - by (metis empty_iff insert_iff) (* somewhat slow *) + have False + using R(1)[of a] R(2)[of _ a] insert(3,4) by blast + thus ?case .. qed corollary Union_maximal_sets: