AlexKontorovich/PrimeNumberTheoremAnd
Source indexedlemma · leanprover/lean4:v4.32.0
BlaschkeNonzero
PrimeNumberTheoremAnd.StrongPNT · PrimeNumberTheoremAnd/StrongPNT.lean:714 to 804
Mathematical statement
Exact Lean statement
@[blueprint "BlaschkeNonZero"
(title := "BlaschkeNonZero")
(statement := /--
Let $0 < r < R<1$ and $f:\overline{\mathbb{D}_1}\to\mathbb{C}$ be analytic on
neighborhoods of points in $\overline{\mathbb{D}_1}$ with $f(0)\neq 0$. Then $B_f(z)\neq 0$
for all $z\in\overline{\mathbb{D}_r}$.
-/)
(proof := /--
Suppose that $z\in\mathcal{K}_f(r)$. Then we have that
$$C_f(z)=\frac{h_z(z)}{\displaystyle\prod_{\rho\in\mathcal{K}_f(r)\setminus\{z\}}
(z-\rho)^{m_f(\rho)}}.$$
where $h_z(z)\neq 0$ according to Lemma \ref{ZeroFactorization}. Thus, substituting
this into Definition \ref{BlaschkeB},
\begin{equation}\label{pickupPoint2}
|B_f(z)|=|h_z(z)|\cdot\left|R-\frac{|z|^2}{R}\right|^{m_f(z)}
\prod_{\rho\in\mathcal{K}_f(r)\setminus\{z\}}
\left|\frac{R-z\overline{\rho}/R}{z-\rho}\right|^{m_f(\rho)}.
\end{equation}
Trivially, $|h_z(z)|\neq 0$. Now note that
$$\left|R-\frac{|z|^2}{R}\right|=0\implies|z|=R.$$
However, this is a contradiction because $z\in\overline{\mathbb{D}_r}$ tells us that
$|z|\leq r < R$. Similarly, note that
$$\left|\frac{R-z\overline{\rho}/R}{z-\rho}\right|=0\implies|z|=\frac{R^2}{|\overline{\rho}|}.$$
However, this is also a contradiction because $\rho\in\mathcal{K}_f(r)$ tells us that
$R < R^2/|\overline{\rho}|=|z|$, but $z\in\overline{\mathbb{D}_r}$ tells us that
$|z|\leq r < R$. So, we know that
$$\left|R-\frac{|z|^2}{R}\right|\neq 0\qquad\text{and}\qquad
\left|\frac{R-z\overline{\rho}/R}{z-\rho}\right|\neq 0
\quad\text{for all}\quad\rho\in\mathcal{K}_f(r)\setminus\{z\}.$$
Applying this to Equation (\ref{pickupPoint2}) we have that $|B_f(z)|\neq 0$.
So, $B_f(z)\neq 0$.
Now suppose that $z\not\in\mathcal{K}_f(r)$. Then we have that
$$C_f(z)=\frac{f(z)}{\displaystyle\prod_{\rho\in\mathcal{K}_f(r)}(z-\rho)^{m_f(\rho)}}.$$
Thus, substituting this into Definition \ref{BlaschkeB},
\begin{equation}\label{pickupPoint3}
|B_f(z)|=|f(z)|\prod_{\rho\in\mathcal{K}_f(r)}
\left|\frac{R-z\overline{\rho}/R}{z-\rho}\right|^{m_f(\rho)}.
\end{equation}
We know that $|f(z)|\neq 0$ since $z\not\in\mathcal{K}_f(r)$. Now note that
$$\left|\frac{R-z\overline{\rho}/R}{z-\rho}\right|=0\implies|z|=\frac{R^2}{|\overline{\rho}|}.$$
However, this is a contradiction because $\rho\in\mathcal{K}_f(r)$ tells us that
$R < R^2/|\overline{\rho}|=|z|$, but $z\in\overline{\mathbb{D}_r}$ tells us that
$|z|\leq r < R$. So, we know that
$$\left|\frac{R-z\overline{\rho}/R}{z-\rho}\right|\neq 0
\quad\text{for all}\quad\rho\in\mathcal{K}_f(r).$$
Applying this to Equation (\ref{pickupPoint3}) we have that $|B_f(z)|\neq 0$.
So, $B_f(z)\neq 0$.
We have shown that $B_f(z)\neq 0$ for both $z\in\mathcal{K}_f(r)$ and
$z\not\in\mathcal{K}_f(r)$, so the result follows.
-/)
(latexEnv := "lemma")]
lemma BlaschkeNonzero {r R : ℝ} {f : ℂ → ℂ}
(r_pos : 0 < r) (r_lt_R : r < R) (R_lt_one : R < 1)
(finiteZeros : (SetOfZeros 1 f).Finite)
(hfAnalytic : AnalyticOnNhd ℂ f (Metric.closedBall (0 : ℂ) 1))
(hf_neq_zero_at_zero : f 0 ≠ 0) :
∀ z ∈ Metric.closedBall (0 : ℂ) r, BlaschkeB r R f z ≠ 0Complete declaration
Lean source
Full Lean sourceLean 4
@[blueprint "BlaschkeNonZero" (title := "BlaschkeNonZero") (statement := /-- Let $0 < r < R<1$ and $f:\overline{\mathbb{D}_1}\to\mathbb{C}$ be analytic on neighborhoods of points in $\overline{\mathbb{D}_1}$ with $f(0)\neq 0$. Then $B_f(z)\neq 0$ for all $z\in\overline{\mathbb{D}_r}$. -/) (proof := /-- Suppose that $z\in\mathcal{K}_f(r)$. Then we have that $$C_f(z)=\frac{h_z(z)}{\displaystyle\prod_{\rho\in\mathcal{K}_f(r)\setminus\{z\}} (z-\rho)^{m_f(\rho)}}.$$ where $h_z(z)\neq 0$ according to Lemma \ref{ZeroFactorization}. Thus, substituting this into Definition \ref{BlaschkeB}, \begin{equation}\label{pickupPoint2} |B_f(z)|=|h_z(z)|\cdot\left|R-\frac{|z|^2}{R}\right|^{m_f(z)} \prod_{\rho\in\mathcal{K}_f(r)\setminus\{z\}} \left|\frac{R-z\overline{\rho}/R}{z-\rho}\right|^{m_f(\rho)}. \end{equation} Trivially, $|h_z(z)|\neq 0$. Now note that $$\left|R-\frac{|z|^2}{R}\right|=0\implies|z|=R.$$ However, this is a contradiction because $z\in\overline{\mathbb{D}_r}$ tells us that $|z|\leq r < R$. Similarly, note that $$\left|\frac{R-z\overline{\rho}/R}{z-\rho}\right|=0\implies|z|=\frac{R^2}{|\overline{\rho}|}.$$ However, this is also a contradiction because $\rho\in\mathcal{K}_f(r)$ tells us that $R < R^2/|\overline{\rho}|=|z|$, but $z\in\overline{\mathbb{D}_r}$ tells us that $|z|\leq r < R$. So, we know that $$\left|R-\frac{|z|^2}{R}\right|\neq 0\qquad\text{and}\qquad \left|\frac{R-z\overline{\rho}/R}{z-\rho}\right|\neq 0 \quad\text{for all}\quad\rho\in\mathcal{K}_f(r)\setminus\{z\}.$$ Applying this to Equation (\ref{pickupPoint2}) we have that $|B_f(z)|\neq 0$. So, $B_f(z)\neq 0$. Now suppose that $z\not\in\mathcal{K}_f(r)$. Then we have that $$C_f(z)=\frac{f(z)}{\displaystyle\prod_{\rho\in\mathcal{K}_f(r)}(z-\rho)^{m_f(\rho)}}.$$ Thus, substituting this into Definition \ref{BlaschkeB}, \begin{equation}\label{pickupPoint3} |B_f(z)|=|f(z)|\prod_{\rho\in\mathcal{K}_f(r)} \left|\frac{R-z\overline{\rho}/R}{z-\rho}\right|^{m_f(\rho)}. \end{equation} We know that $|f(z)|\neq 0$ since $z\not\in\mathcal{K}_f(r)$. Now note that $$\left|\frac{R-z\overline{\rho}/R}{z-\rho}\right|=0\implies|z|=\frac{R^2}{|\overline{\rho}|}.$$ However, this is a contradiction because $\rho\in\mathcal{K}_f(r)$ tells us that $R < R^2/|\overline{\rho}|=|z|$, but $z\in\overline{\mathbb{D}_r}$ tells us that $|z|\leq r < R$. So, we know that $$\left|\frac{R-z\overline{\rho}/R}{z-\rho}\right|\neq 0 \quad\text{for all}\quad\rho\in\mathcal{K}_f(r).$$ Applying this to Equation (\ref{pickupPoint3}) we have that $|B_f(z)|\neq 0$. So, $B_f(z)\neq 0$. We have shown that $B_f(z)\neq 0$ for both $z\in\mathcal{K}_f(r)$ and $z\not\in\mathcal{K}_f(r)$, so the result follows. -/) (latexEnv := "lemma")]lemma BlaschkeNonzero {r R : ℝ} {f : ℂ → ℂ} (r_pos : 0 < r) (r_lt_R : r < R) (R_lt_one : R < 1) (finiteZeros : (SetOfZeros 1 f).Finite) (hfAnalytic : AnalyticOnNhd ℂ f (Metric.closedBall (0 : ℂ) 1)) (hf_neq_zero_at_zero : f 0 ≠ 0) : ∀ z ∈ Metric.closedBall (0 : ℂ) r, BlaschkeB r R f z ≠ 0 := by have r_lt_one : r < 1 := lt_trans r_lt_R R_lt_one have R_pos : 0 < R := lt_trans r_pos r_lt_R intro z hz have hz_norm_le_r : ‖z‖ ≤ r := by rwa [mem_closedBall_iff_norm, sub_zero] at hz have hz_norm_lt_R : ‖z‖ < R := by linarith let hFin := finiteSetOfZeros_mono r_lt_one finiteZeros have hBProd : ∏ ρ ∈ hFin.toFinset, (↑R - z * (starRingEnd ℂ) ρ / ↑R) ^ analyticOrderNatAt f ρ ≠ 0 := by apply Finset.prod_ne_zero_iff.mpr intro ρ hρ apply pow_ne_zero norm_num [ sub_eq_zero, Complex.ext_iff ]; simp only [SetOfZeros, Finite.mem_toFinset, mem_setOf_eq] at hρ rw [ eq_div_iff ] <;> norm_num [ Complex.normSq, Complex.norm_def ] at *; · rw [Real.sqrt_lt' (by linarith)] at hz_norm_lt_R rw [ Real.sqrt_le_iff ] at hρ exact fun h => absurd h ( by nlinarith [ sq_nonneg ( z.re - ρ.re ), sq_nonneg ( z.im - ρ.im ), mul_lt_mul_of_pos_left r_lt_R R_pos ] ) · linarith unfold BlaschkeB Cf by_cases z_in_zeros : z ∈ SetOfZeros r f · simp only [hFin, z_in_zeros, ↓reduceDIte] obtain ⟨_, _, hne, heq⟩ := ZeroFactorization (by linarith) (hfAnalytic.mono (Metric.closedBall_subset_closedBall (by linarith))) hf_neq_zero_at_zero z_in_zeros rw [heq.1] refine mul_ne_zero (div_ne_zero hne (Finset.prod_ne_zero_iff.mpr fun ρ hρ => pow_ne_zero _ (sub_ne_zero.mpr fun h => (Finset.mem_sdiff.mp hρ).2 (Finset.mem_singleton.mpr h.symm)))) hBProd · simp only [hFin, z_in_zeros, ↓reduceDIte] refine mul_ne_zero (div_ne_zero (fun hfz => z_in_zeros ⟨hz_norm_le_r, hfz⟩) (Finset.prod_ne_zero_iff.mpr fun ρ hρ => pow_ne_zero _ (sub_ne_zero.mpr fun h => z_in_zeros (h ▸ hFin.mem_toFinset.mp hρ)))) hBProd