src/HOL/Analysis/Abstract_Limits.thy
changeset 82520 1b17f0a41aa3
parent 78750 f229090cb8a3
--- a/src/HOL/Analysis/Abstract_Limits.thy	Tue Apr 15 15:30:21 2025 +0100
+++ b/src/HOL/Analysis/Abstract_Limits.thy	Wed Apr 16 21:13:27 2025 +0100
@@ -70,7 +70,7 @@
     then have "eventually (\<lambda>_. False) (atin X a)"
       by simp
     then show False
-      by (smt (verit, best) a eventually_atin in_derived_set_of insertE insert_Diff)
+      by (metis a eventually_atin in_derived_set_of insertE insert_Diff)
   qed
 qed
 
@@ -152,10 +152,10 @@
     with True
     have "\<forall>\<^sub>F b in F. f b \<in> topspace X \<inter> S"
       by (metis (no_types) limitin_def openin_topspace topspace_subtopology)
-    with L show ?rhs
-      apply (clarsimp simp add: limitin_def eventually_mono openin_subtopology_alt)
-      apply (drule_tac x="S \<inter> U" in spec, force simp: elim: eventually_mono)
-      done
+    moreover have "\<And>U. \<lbrakk>openin X U; l \<in> U\<rbrakk> \<Longrightarrow> \<forall>\<^sub>F x in F. f x \<in> S \<inter> U"
+      using limitinD [OF L] True openin_subtopology_Int2 by force
+    ultimately show ?rhs
+      using True by (auto simp: limitin_def eventually_conj_iff)
   next
     assume ?rhs
     then show ?lhs
@@ -189,7 +189,7 @@
     obtain N where "\<And>n. n\<ge>N \<Longrightarrow> f (n + k) \<in> U"
       using assms U unfolding limitin_sequentially by blast
     then have "\<forall>n\<ge>N+k. f n \<in> U"
-      by (metis add_leD2 le_add_diff_inverse ordered_cancel_comm_monoid_diff_class.le_diff_conv2 add.commute)
+      by (metis add_leD2 add_le_imp_le_diff le_add_diff_inverse2)
     then show ?thesis ..
   qed
   with assms show ?thesis
@@ -264,8 +264,8 @@
 next
   assume R: ?rhs
   then show ?lhs
-    apply (auto simp: continuous_map_def topcontinuous_at_def)
-    by (smt (verit, del_insts) mem_Collect_eq openin_subopen openin_subset subset_eq)
+    unfolding continuous_map_def topcontinuous_at_def Pi_iff
+    by (smt (verit, ccfv_threshold)  mem_Collect_eq openin_subopen openin_subset subset_eq)
 qed
 
 lemma continuous_map_atin:
@@ -305,10 +305,11 @@
    "continuous_map X euclideanreal (\<lambda>x. c * f x) \<longleftrightarrow> c = 0 \<or> continuous_map X euclideanreal f"
 proof (cases "c = 0")
   case False
-  have "continuous_map X euclideanreal (\<lambda>x. c * f x) \<Longrightarrow> continuous_map X euclideanreal f"
-    apply (frule continuous_map_real_mult_left [where c="inverse c"])
-    apply (simp add: field_simps False)
-    done
+  { assume "continuous_map X euclideanreal (\<lambda>x. c * f x)"
+    then have "continuous_map X euclideanreal (\<lambda>x. inverse c * (c * f x))"
+      by (simp add: continuous_map_real_mult)
+    then have "continuous_map X euclideanreal f"
+      by (simp add: field_simps False) }
   with False show ?thesis
     using continuous_map_real_mult_left by blast
 qed simp