working
This commit is contained in:
parent
b91e3677c0
commit
1e8c5bad0f
|
@ -1,5 +1,6 @@
|
||||||
import Mathlib.Analysis.Analytic.IsolatedZeros
|
import Mathlib.Analysis.Analytic.IsolatedZeros
|
||||||
import Mathlib.Analysis.Complex.Basic
|
import Mathlib.Analysis.Complex.Basic
|
||||||
|
import Mathlib.Analysis.Analytic.Linear
|
||||||
|
|
||||||
|
|
||||||
theorem AnalyticAt.order_mul
|
theorem AnalyticAt.order_mul
|
||||||
|
@ -85,3 +86,97 @@ theorem AnalyticAt.supp_order_toNat
|
||||||
contrapose
|
contrapose
|
||||||
intro h₁f
|
intro h₁f
|
||||||
simp [hf.order_eq_zero_iff.2 h₁f]
|
simp [hf.order_eq_zero_iff.2 h₁f]
|
||||||
|
|
||||||
|
|
||||||
|
theorem ContinuousLinearEquiv.analyticAt
|
||||||
|
(ℓ : ℂ ≃L[ℂ] ℂ) (z₀ : ℂ) : AnalyticAt ℂ (⇑ℓ) z₀ := ℓ.toContinuousLinearMap.analyticAt z₀
|
||||||
|
|
||||||
|
|
||||||
|
theorem eventually_nhds_comp_composition
|
||||||
|
{f₁ f₂ ℓ : ℂ → ℂ}
|
||||||
|
{z₀ : ℂ}
|
||||||
|
(hf : ∀ᶠ (z : ℂ) in nhds (ℓ z₀), f₁ z = f₂ z)
|
||||||
|
(hℓ : Continuous ℓ) :
|
||||||
|
∀ᶠ (z : ℂ) in nhds z₀, (f₁ ∘ ℓ) z = (f₂ ∘ ℓ) z := by
|
||||||
|
obtain ⟨t, h₁t, h₂t, h₃t⟩ := eventually_nhds_iff.1 hf
|
||||||
|
apply eventually_nhds_iff.2
|
||||||
|
use ℓ⁻¹' t
|
||||||
|
constructor
|
||||||
|
· intro y hy
|
||||||
|
exact h₁t (ℓ y) hy
|
||||||
|
· constructor
|
||||||
|
· apply IsOpen.preimage
|
||||||
|
exact ContinuousLinearEquiv.continuous ℓ
|
||||||
|
exact h₂t
|
||||||
|
· exact h₃t
|
||||||
|
|
||||||
|
|
||||||
|
theorem AnalyticAt.order_congr
|
||||||
|
{f₁ f₂ : ℂ → ℂ}
|
||||||
|
{z₀ : ℂ}
|
||||||
|
(hf₁ : AnalyticAt ℂ f₁ z₀)
|
||||||
|
(hf₂ : AnalyticAt ℂ f₂ z₀)
|
||||||
|
(hf : ∀ᶠ (z : ℂ) in nhds z₀, f₁ z = f₂ z) :
|
||||||
|
hf₁.order = hf₂.order := by
|
||||||
|
|
||||||
|
sorry
|
||||||
|
|
||||||
|
|
||||||
|
theorem AnalyticAt.order_comp_CLE
|
||||||
|
(ℓ : ℂ ≃L[ℂ] ℂ)
|
||||||
|
{f : ℂ → ℂ}
|
||||||
|
{z₀ : ℂ}
|
||||||
|
(hf : AnalyticAt ℂ f (ℓ z₀)) :
|
||||||
|
hf.order = (hf.comp (ℓ.analyticAt z₀)).order := by
|
||||||
|
|
||||||
|
by_cases h₁f : hf.order = ⊤
|
||||||
|
· rw [h₁f]
|
||||||
|
rw [AnalyticAt.order_eq_top_iff] at h₁f
|
||||||
|
let A := eventually_nhds_comp_composition h₁f ℓ.continuous
|
||||||
|
simp at A
|
||||||
|
have : AnalyticAt ℂ (0 : ℂ → ℂ) z₀ := by apply analyticAt_const
|
||||||
|
rw [AnalyticAt.order_congr (hf.comp (ℓ.analyticAt z₀)) this A]
|
||||||
|
|
||||||
|
have : this.order = ⊤ := by
|
||||||
|
rw [AnalyticAt.order_eq_top_iff]
|
||||||
|
simp
|
||||||
|
rw [this]
|
||||||
|
· let n := hf.order.toNat
|
||||||
|
have hn : hf.order = n := Eq.symm (ENat.coe_toNat h₁f)
|
||||||
|
rw [hn]
|
||||||
|
rw [AnalyticAt.order_eq_nat_iff] at hn
|
||||||
|
obtain ⟨g, h₁g, h₂g, h₃g⟩ := hn
|
||||||
|
have A := eventually_nhds_comp_composition h₃g ℓ.continuous
|
||||||
|
simp only [Function.comp_apply] at A
|
||||||
|
have : AnalyticAt ℂ (fun z ↦ (ℓ z - ℓ z₀) ^ n • g (ℓ z) : ℂ → ℂ) z₀ := by apply analyticAt_const
|
||||||
|
rw [AnalyticAt.order_congr (hf.comp (ℓ.analyticAt z₀)) this A]
|
||||||
|
simp
|
||||||
|
rw [AnalyticAt.order_mul]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--rw [hn, AnalyticAt.order_eq_nat_iff]
|
||||||
|
rw [AnalyticAt.order_eq_nat_iff] at hn
|
||||||
|
obtain ⟨g, h₁g, h₂g, h₃g⟩ := hn
|
||||||
|
use g ∘ ℓ
|
||||||
|
constructor
|
||||||
|
· exact h₁g.comp (ℓ.analyticAt z₀)
|
||||||
|
· constructor
|
||||||
|
· exact h₂g
|
||||||
|
· rw [eventually_nhds_iff]
|
||||||
|
rw [eventually_nhds_iff] at h₃g
|
||||||
|
obtain ⟨t, h₁t, h₂t, h₃t⟩ := h₃g
|
||||||
|
use ℓ⁻¹' t
|
||||||
|
constructor
|
||||||
|
· intro y hy
|
||||||
|
simp
|
||||||
|
rw [h₁t (ℓ y) hy]
|
||||||
|
|
||||||
|
|
||||||
|
sorry
|
||||||
|
· constructor
|
||||||
|
· apply IsOpen.preimage
|
||||||
|
exact ContinuousLinearEquiv.continuous ℓ
|
||||||
|
exact h₂t
|
||||||
|
· exact h₃t
|
||||||
|
|
|
@ -11,7 +11,7 @@ open Real
|
||||||
|
|
||||||
theorem jensen_case_R_eq_one
|
theorem jensen_case_R_eq_one
|
||||||
(f : ℂ → ℂ)
|
(f : ℂ → ℂ)
|
||||||
(h₁f : AnalyticOn ℂ f (Metric.closedBall (0 : ℂ) 1))
|
(h₁f : AnalyticOn ℂ f (Metric.closedBall 0 1))
|
||||||
(h₂f : f 0 ≠ 0) :
|
(h₂f : f 0 ≠ 0) :
|
||||||
log ‖f 0‖ = -∑ᶠ s, (h₁f.order s).toNat * log (‖s.1‖⁻¹) + (2 * π)⁻¹ * ∫ (x : ℝ) in (0)..(2 * π), log ‖f (circleMap 0 1 x)‖ := by
|
log ‖f 0‖ = -∑ᶠ s, (h₁f.order s).toNat * log (‖s.1‖⁻¹) + (2 * π)⁻¹ * ∫ (x : ℝ) in (0)..(2 * π), log ‖f (circleMap 0 1 x)‖ := by
|
||||||
|
|
||||||
|
@ -284,3 +284,103 @@ theorem jensen_case_R_eq_one
|
||||||
simp
|
simp
|
||||||
apply h₂F
|
apply h₂F
|
||||||
simp
|
simp
|
||||||
|
|
||||||
|
|
||||||
|
lemma const_mul_circleMap_zero
|
||||||
|
{R θ : ℝ} :
|
||||||
|
circleMap 0 R θ = R * circleMap 0 1 θ := by
|
||||||
|
rw [circleMap_zero, circleMap_zero]
|
||||||
|
simp
|
||||||
|
|
||||||
|
|
||||||
|
theorem jensen
|
||||||
|
{R : ℝ}
|
||||||
|
(hR : 0 < R)
|
||||||
|
(f : ℂ → ℂ)
|
||||||
|
(h₁f : AnalyticOn ℂ f (Metric.closedBall 0 R))
|
||||||
|
(h₂f : f 0 ≠ 0) :
|
||||||
|
log ‖f 0‖ = -∑ᶠ s, (h₁f.order s).toNat * log (R * ‖s.1‖⁻¹) + (2 * π)⁻¹ * ∫ (x : ℝ) in (0)..(2 * π), log ‖f (circleMap 0 R x)‖ := by
|
||||||
|
|
||||||
|
let F := fun z ↦ f (R • z)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
have h₁F : AnalyticOn ℂ F (Metric.closedBall 0 1) := by
|
||||||
|
apply AnalyticOn.comp (t := Metric.closedBall 0 R)
|
||||||
|
exact h₁f
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sorry
|
||||||
|
have h₂F : F 0 ≠ 0 := by sorry
|
||||||
|
|
||||||
|
let A := jensen_case_R_eq_one F h₁F h₂F
|
||||||
|
dsimp [F] at A
|
||||||
|
simp
|
||||||
|
rw [mul_zero] at A
|
||||||
|
rw [A]
|
||||||
|
simp
|
||||||
|
|
||||||
|
simp_rw [← const_mul_circleMap_zero]
|
||||||
|
simp
|
||||||
|
|
||||||
|
let e : (Metric.closedBall (0 : ℂ) 1) → (Metric.closedBall (0 : ℂ) R) := by
|
||||||
|
intro ⟨x, hx⟩
|
||||||
|
have hy : R • x ∈ Metric.closedBall (0 : ℂ) R := by
|
||||||
|
simp
|
||||||
|
simp at hx
|
||||||
|
have : R = |R| := by exact Eq.symm (abs_of_pos hR)
|
||||||
|
rw [← this]
|
||||||
|
norm_num
|
||||||
|
calc R * Complex.abs x
|
||||||
|
_ ≤ R * 1 := by exact (mul_le_mul_iff_of_pos_left hR).mpr hx
|
||||||
|
_ = R := by simp
|
||||||
|
exact ⟨R • x, hy⟩
|
||||||
|
|
||||||
|
let e' : (Metric.closedBall (0 : ℂ) R) → (Metric.closedBall (0 : ℂ) 1) := by
|
||||||
|
intro ⟨x, hx⟩
|
||||||
|
have hy : R⁻¹ • x ∈ Metric.closedBall (0 : ℂ) 1 := by
|
||||||
|
simp
|
||||||
|
simp at hx
|
||||||
|
have : R = |R| := by exact Eq.symm (abs_of_pos hR)
|
||||||
|
rw [← this]
|
||||||
|
norm_num
|
||||||
|
calc R⁻¹ * Complex.abs x
|
||||||
|
_ ≤ R⁻¹ * R := by
|
||||||
|
apply mul_le_mul_of_nonneg_left hx
|
||||||
|
apply inv_nonneg.mpr
|
||||||
|
exact abs_eq_self.mp (id (Eq.symm this))
|
||||||
|
_ = 1 := by
|
||||||
|
apply inv_mul_cancel₀
|
||||||
|
exact Ne.symm (ne_of_lt hR)
|
||||||
|
exact ⟨R⁻¹ • x, hy⟩
|
||||||
|
|
||||||
|
apply finsum_eq_of_bijective e
|
||||||
|
|
||||||
|
apply Function.bijective_iff_has_inverse.mpr
|
||||||
|
use e'
|
||||||
|
constructor
|
||||||
|
· apply Function.leftInverse_iff_comp.mpr
|
||||||
|
funext x
|
||||||
|
dsimp only [e, e', id_eq, eq_mp_eq_cast, Function.comp_apply]
|
||||||
|
conv =>
|
||||||
|
left
|
||||||
|
arg 1
|
||||||
|
rw [← smul_assoc, smul_eq_mul]
|
||||||
|
rw [inv_mul_cancel₀ (Ne.symm (ne_of_lt hR))]
|
||||||
|
rw [one_smul]
|
||||||
|
· apply Function.rightInverse_iff_comp.mpr
|
||||||
|
funext x
|
||||||
|
dsimp only [e, e', id_eq, eq_mp_eq_cast, Function.comp_apply]
|
||||||
|
conv =>
|
||||||
|
left
|
||||||
|
arg 1
|
||||||
|
rw [← smul_assoc, smul_eq_mul]
|
||||||
|
rw [mul_inv_cancel₀ (Ne.symm (ne_of_lt hR))]
|
||||||
|
rw [one_smul]
|
||||||
|
|
||||||
|
intro x
|
||||||
|
simp
|
||||||
|
|
||||||
|
|
||||||
|
sorry
|
||||||
|
|
Loading…
Reference in New Issue