src/HOL/Complex_Analysis/Weierstrass_Factorization.thy
changeset 82517 111b1b2a2d13
parent 79933 3f415c76a511
--- a/src/HOL/Complex_Analysis/Weierstrass_Factorization.thy	Tue Apr 15 23:04:44 2025 +0200
+++ b/src/HOL/Complex_Analysis/Weierstrass_Factorization.thy	Tue Apr 15 15:17:25 2025 +0200
@@ -339,8 +339,16 @@
 lemma isolated_zero:
   assumes "z \<in> range a"
   shows   "isolated_zero f z"
-  using not_islimpt_range_a[of z] assms
-    by (auto simp: isolated_zero_altdef zero)
+proof -
+  have "eventually (\<lambda>z. f z \<noteq> 0) (at z)"
+    using not_islimpt_range_a[of z] by (auto simp: islimpt_iff_eventually zero)
+  moreover have "f \<midarrow>z\<rightarrow> f z"
+    by (intro isContD analytic_at_imp_isCont analytic)
+  hence "f \<midarrow>z\<rightarrow> 0"
+    using assms zero[of z] by auto
+  ultimately show ?thesis
+    by (auto simp: isolated_zero_def)
+qed
 
 lemma zorder: "zorder f z = card (a -` {z})"
 proof -
@@ -414,7 +422,7 @@
     have "zorder (\<lambda>w. weierstrass_factor (p n) (1 / a n * w)) z =
           zorder (weierstrass_factor (p n)) (1 / a n * z)"
       using a_nonzero[of n] eventually_neq_at_within[of 1 "z / a n" UNIV]
-      by (intro zorder_scale analytic_intros) auto
+      by (intro zorder_scale analytic_intros analytic_on_imp_meromorphic_on) auto
     hence "zorder (\<lambda>w. g w n) z = zorder (weierstrass_factor (p n)) 1"
       using n a_nonzero[of n] by (auto simp: g_def)
     thus "zorder (\<lambda>w. g w n) z = 1"