Documentation

Mathlib.Analysis.Analytic.IsolatedZeros

Principle of isolated zeros #

This file proves the fact that the zeros of a non-constant analytic function of one variable are isolated. It also introduces a little bit of API in the HasFPowerSeriesAt namespace that is useful in this setup.

Main results #

theorem HasSum.hasSum_at_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] (a : β„• β†’ E) :
HasSum (fun (n : β„•) => 0 ^ n β€’ a n) (a 0)
theorem HasSum.exists_hasSum_smul_of_apply_eq_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {s : E} {n : β„•} {z : π•œ} {a : β„• β†’ E} (hs : HasSum (fun (m : β„•) => z ^ m β€’ a m) s) (ha : βˆ€ k < n, a k = 0) :
βˆƒ (t : E), z ^ n β€’ t = s ∧ HasSum (fun (m : β„•) => z ^ m β€’ a (m + n)) t
theorem HasFPowerSeriesAt.has_fpower_series_dslope_fslope {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {p : FormalMultilinearSeries π•œ π•œ E} {f : π•œ β†’ E} {zβ‚€ : π•œ} (hp : HasFPowerSeriesAt f p zβ‚€) :
HasFPowerSeriesAt (dslope f zβ‚€) p.fslope zβ‚€
theorem HasFPowerSeriesAt.has_fpower_series_iterate_dslope_fslope {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {p : FormalMultilinearSeries π•œ π•œ E} {f : π•œ β†’ E} {zβ‚€ : π•œ} (n : β„•) (hp : HasFPowerSeriesAt f p zβ‚€) :
theorem HasFPowerSeriesAt.iterate_dslope_fslope_ne_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {p : FormalMultilinearSeries π•œ π•œ E} {f : π•œ β†’ E} {zβ‚€ : π•œ} (hp : HasFPowerSeriesAt f p zβ‚€) (h : p β‰  0) :
(Function.swap dslope zβ‚€)^[p.order] f zβ‚€ β‰  0
theorem HasFPowerSeriesAt.eq_pow_order_mul_iterate_dslope {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {p : FormalMultilinearSeries π•œ π•œ E} {f : π•œ β†’ E} {zβ‚€ : π•œ} (hp : HasFPowerSeriesAt f p zβ‚€) :
βˆ€αΆ  (z : π•œ) in nhds zβ‚€, f z = (z - zβ‚€) ^ p.order β€’ (Function.swap dslope zβ‚€)^[p.order] f z
theorem HasFPowerSeriesAt.locally_ne_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {p : FormalMultilinearSeries π•œ π•œ E} {f : π•œ β†’ E} {zβ‚€ : π•œ} (hp : HasFPowerSeriesAt f p zβ‚€) (h : p β‰  0) :
βˆ€αΆ  (z : π•œ) in nhdsWithin zβ‚€ {zβ‚€}ᢜ, f z β‰  0
theorem HasFPowerSeriesAt.locally_zero_iff {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {p : FormalMultilinearSeries π•œ π•œ E} {f : π•œ β†’ E} {zβ‚€ : π•œ} (hp : HasFPowerSeriesAt f p zβ‚€) :
(βˆ€αΆ  (z : π•œ) in nhds zβ‚€, f z = 0) ↔ p = 0
theorem AnalyticAt.eventually_eq_zero_or_eventually_ne_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {zβ‚€ : π•œ} (hf : AnalyticAt π•œ f zβ‚€) :
(βˆ€αΆ  (z : π•œ) in nhds zβ‚€, f z = 0) ∨ βˆ€αΆ  (z : π•œ) in nhdsWithin zβ‚€ {zβ‚€}ᢜ, f z β‰  0

The principle of isolated zeros for an analytic function, local version: if a function is analytic at zβ‚€, then either it is identically zero in a neighborhood of zβ‚€, or it does not vanish in a punctured neighborhood of zβ‚€.

theorem AnalyticAt.eventually_eq_or_eventually_ne {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f g : π•œ β†’ E} {zβ‚€ : π•œ} (hf : AnalyticAt π•œ f zβ‚€) (hg : AnalyticAt π•œ g zβ‚€) :
(βˆ€αΆ  (z : π•œ) in nhds zβ‚€, f z = g z) ∨ βˆ€αΆ  (z : π•œ) in nhdsWithin zβ‚€ {zβ‚€}ᢜ, f z β‰  g z
theorem AnalyticAt.frequently_zero_iff_eventually_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {w : π•œ} (hf : AnalyticAt π•œ f w) :
(βˆƒαΆ  (z : π•œ) in nhdsWithin w {w}ᢜ, f z = 0) ↔ βˆ€αΆ  (z : π•œ) in nhds w, f z = 0
theorem AnalyticAt.frequently_eq_iff_eventually_eq {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f g : π•œ β†’ E} {zβ‚€ : π•œ} (hf : AnalyticAt π•œ f zβ‚€) (hg : AnalyticAt π•œ g zβ‚€) :
(βˆƒαΆ  (z : π•œ) in nhdsWithin zβ‚€ {zβ‚€}ᢜ, f z = g z) ↔ βˆ€αΆ  (z : π•œ) in nhds zβ‚€, f z = g z
theorem AnalyticAt.unique_eventuallyEq_zpow_smul_nonzero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {zβ‚€ : π•œ} {m n : β„€} (hm : βˆƒ (g : π•œ β†’ E), AnalyticAt π•œ g zβ‚€ ∧ g zβ‚€ β‰  0 ∧ βˆ€αΆ  (z : π•œ) in nhdsWithin zβ‚€ {zβ‚€}ᢜ, f z = (z - zβ‚€) ^ m β€’ g z) (hn : βˆƒ (g : π•œ β†’ E), AnalyticAt π•œ g zβ‚€ ∧ g zβ‚€ β‰  0 ∧ βˆ€αΆ  (z : π•œ) in nhdsWithin zβ‚€ {zβ‚€}ᢜ, f z = (z - zβ‚€) ^ n β€’ g z) :
m = n

For a function f on π•œ, and zβ‚€ ∈ π•œ, there exists at most one n such that on a punctured neighbourhood of zβ‚€ we have f z = (z - zβ‚€) ^ n β€’ g z, with g analytic and nonvanishing at zβ‚€. We formulate this with n : β„€, and deduce the case n : β„• later, for applications to meromorphic functions.

theorem AnalyticAt.unique_eventuallyEq_pow_smul_nonzero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {zβ‚€ : π•œ} {m n : β„•} (hm : βˆƒ (g : π•œ β†’ E), AnalyticAt π•œ g zβ‚€ ∧ g zβ‚€ β‰  0 ∧ βˆ€αΆ  (z : π•œ) in nhds zβ‚€, f z = (z - zβ‚€) ^ m β€’ g z) (hn : βˆƒ (g : π•œ β†’ E), AnalyticAt π•œ g zβ‚€ ∧ g zβ‚€ β‰  0 ∧ βˆ€αΆ  (z : π•œ) in nhds zβ‚€, f z = (z - zβ‚€) ^ n β€’ g z) :
m = n

For a function f on π•œ, and zβ‚€ ∈ π•œ, there exists at most one n such that on a neighbourhood of zβ‚€ we have f z = (z - zβ‚€) ^ n β€’ g z, with g analytic and nonvanishing at zβ‚€.

theorem AnalyticAt.exists_eventuallyEq_pow_smul_nonzero_iff {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {zβ‚€ : π•œ} (hf : AnalyticAt π•œ f zβ‚€) :
(βˆƒ (n : β„•) (g : π•œ β†’ E), AnalyticAt π•œ g zβ‚€ ∧ g zβ‚€ β‰  0 ∧ βˆ€αΆ  (z : π•œ) in nhds zβ‚€, f z = (z - zβ‚€) ^ n β€’ g z) ↔ Β¬βˆ€αΆ  (z : π•œ) in nhds zβ‚€, f z = 0

If f is analytic at zβ‚€, then exactly one of the following two possibilities occurs: either f vanishes identically near zβ‚€, or locally around zβ‚€ it has the form z ↦ (z - zβ‚€) ^ n β€’ g z for some n and some g which is analytic and non-vanishing at zβ‚€.

theorem AnalyticOnNhd.eqOn_zero_of_preconnected_of_frequently_eq_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {zβ‚€ : π•œ} {U : Set π•œ} (hf : AnalyticOnNhd π•œ f U) (hU : IsPreconnected U) (hβ‚€ : zβ‚€ ∈ U) (hfw : βˆƒαΆ  (z : π•œ) in nhdsWithin zβ‚€ {zβ‚€}ᢜ, f z = 0) :
Set.EqOn f 0 U

The principle of isolated zeros for an analytic function, global version: if a function is analytic on a connected set U and vanishes in arbitrary neighborhoods of a point zβ‚€ ∈ U, then it is identically zero in U. For higher-dimensional versions requiring that the function vanishes in a neighborhood of zβ‚€, see AnalyticOnNhd.eqOn_zero_of_preconnected_of_eventuallyEq_zero.

theorem AnalyticOnNhd.eqOn_zero_or_eventually_ne_zero_of_preconnected {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {U : Set π•œ} (hf : AnalyticOnNhd π•œ f U) (hU : IsPreconnected U) :
theorem AnalyticOnNhd.eqOn_zero_of_preconnected_of_mem_closure {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f : π•œ β†’ E} {zβ‚€ : π•œ} {U : Set π•œ} (hf : AnalyticOnNhd π•œ f U) (hU : IsPreconnected U) (hβ‚€ : zβ‚€ ∈ U) (hfzβ‚€ : zβ‚€ ∈ closure ({z : π•œ | f z = 0} \ {zβ‚€})) :
Set.EqOn f 0 U
theorem AnalyticOnNhd.eqOn_of_preconnected_of_frequently_eq {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f g : π•œ β†’ E} {zβ‚€ : π•œ} {U : Set π•œ} (hf : AnalyticOnNhd π•œ f U) (hg : AnalyticOnNhd π•œ g U) (hU : IsPreconnected U) (hβ‚€ : zβ‚€ ∈ U) (hfg : βˆƒαΆ  (z : π•œ) in nhdsWithin zβ‚€ {zβ‚€}ᢜ, f z = g z) :
Set.EqOn f g U

The identity principle for analytic functions, global version: if two functions are analytic on a connected set U and coincide at points which accumulate to a point zβ‚€ ∈ U, then they coincide globally in U. For higher-dimensional versions requiring that the functions coincide in a neighborhood of zβ‚€, see AnalyticOnNhd.eqOn_of_preconnected_of_eventuallyEq.

theorem AnalyticOnNhd.eqOn_or_eventually_ne_of_preconnected {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f g : π•œ β†’ E} {U : Set π•œ} (hf : AnalyticOnNhd π•œ f U) (hg : AnalyticOnNhd π•œ g U) (hU : IsPreconnected U) :
theorem AnalyticOnNhd.eqOn_of_preconnected_of_mem_closure {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f g : π•œ β†’ E} {zβ‚€ : π•œ} {U : Set π•œ} (hf : AnalyticOnNhd π•œ f U) (hg : AnalyticOnNhd π•œ g U) (hU : IsPreconnected U) (hβ‚€ : zβ‚€ ∈ U) (hfg : zβ‚€ ∈ closure ({z : π•œ | f z = g z} \ {zβ‚€})) :
Set.EqOn f g U
theorem AnalyticOnNhd.eq_of_frequently_eq {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f g : π•œ β†’ E} {zβ‚€ : π•œ} [ConnectedSpace π•œ] (hf : AnalyticOnNhd π•œ f Set.univ) (hg : AnalyticOnNhd π•œ g Set.univ) (hfg : βˆƒαΆ  (z : π•œ) in nhdsWithin zβ‚€ {zβ‚€}ᢜ, f z = g z) :
f = g

The identity principle for analytic functions, global version: if two functions on a normed field π•œ are analytic everywhere and coincide at points which accumulate to a point zβ‚€, then they coincide globally. For higher-dimensional versions requiring that the functions coincide in a neighborhood of zβ‚€, see AnalyticOnNhd.eq_of_eventuallyEq.

@[deprecated AnalyticOnNhd.eq_of_frequently_eq (since := "2024-09-26")]
theorem AnalyticOn.eq_of_frequently_eq {π•œ : Type u_1} [NontriviallyNormedField π•œ] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace π•œ E] {f g : π•œ β†’ E} {zβ‚€ : π•œ} [ConnectedSpace π•œ] (hf : AnalyticOnNhd π•œ f Set.univ) (hg : AnalyticOnNhd π•œ g Set.univ) (hfg : βˆƒαΆ  (z : π•œ) in nhdsWithin zβ‚€ {zβ‚€}ᢜ, f z = g z) :
f = g

Alias of AnalyticOnNhd.eq_of_frequently_eq.


The identity principle for analytic functions, global version: if two functions on a normed field π•œ are analytic everywhere and coincide at points which accumulate to a point zβ‚€, then they coincide globally. For higher-dimensional versions requiring that the functions coincide in a neighborhood of zβ‚€, see AnalyticOnNhd.eq_of_eventuallyEq.

###Β Vanishing of products of analytic functions

theorem AnalyticOnNhd.eq_zero_or_eq_zero_of_smul_eq_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {U : Set π•œ} {A : Type u_3} [NormedRing A] [NormedAlgebra π•œ A] {B : Type u_4} [NormedAddCommGroup B] [NormedSpace π•œ B] [Module A B] [NoZeroSMulDivisors A B] {f : π•œ β†’ A} {g : π•œ β†’ B} (hf : AnalyticOnNhd π•œ f U) (hg : AnalyticOnNhd π•œ g U) (hfg : βˆ€ z ∈ U, f z β€’ g z = 0) (hU : IsPreconnected U) :
(βˆ€ z ∈ U, f z = 0) ∨ βˆ€ z ∈ U, g z = 0

If f, g are analytic on a neighbourhood of the preconnected open set U, and f β€’ g = 0 on U, then either f = 0 on U or g = 0 on U.

theorem AnalyticOnNhd.eq_zero_or_eq_zero_of_mul_eq_zero {π•œ : Type u_1} [NontriviallyNormedField π•œ] {U : Set π•œ} {A : Type u_3} [NormedRing A] [NormedAlgebra π•œ A] [NoZeroDivisors A] {f g : π•œ β†’ A} (hf : AnalyticOnNhd π•œ f U) (hg : AnalyticOnNhd π•œ g U) (hfg : βˆ€ z ∈ U, f z * g z = 0) (hU : IsPreconnected U) :
(βˆ€ z ∈ U, f z = 0) ∨ βˆ€ z ∈ U, g z = 0

If f, g are analytic on a neighbourhood of the preconnected open set U, and f * g = 0 on U, then either f = 0 on U or g = 0 on U.