Update analyticAt.lean

This commit is contained in:
Stefan Kebekus 2024-09-11 16:57:16 +02:00
parent 1e8c5bad0f
commit dbeb631178
1 changed files with 43 additions and 26 deletions

View File

@ -3,12 +3,13 @@ import Mathlib.Analysis.Complex.Basic
import Mathlib.Analysis.Analytic.Linear import Mathlib.Analysis.Analytic.Linear
theorem AnalyticAt.order_mul theorem AnalyticAt.order_mul
{f₁ f₂ : } {f₁ f₂ : }
{z₀ : } {z₀ : }
(hf₁ : AnalyticAt f₁ z₀) (hf₁ : AnalyticAt f₁ z₀)
(hf₂ : AnalyticAt f₂ z₀) : (hf₂ : AnalyticAt f₂ z₀) :
(AnalyticAt.mul hf₁ hf₂).order = hf₁.order + hf₂.order := by (hf₁.mul hf₂).order = hf₁.order + hf₂.order := by
by_cases h₂f₁ : hf₁.order = by_cases h₂f₁ : hf₁.order =
· simp [h₂f₁] · simp [h₂f₁]
rw [AnalyticAt.order_eq_top_iff, eventually_nhds_iff] rw [AnalyticAt.order_eq_top_iff, eventually_nhds_iff]
@ -77,6 +78,22 @@ theorem AnalyticAt.order_eq_zero_iff
· simp · simp
theorem AnalyticAt.order_pow
{f : }
{z₀ : }
{n : }
(hf : AnalyticAt f z₀) :
(hf.pow n).order = n * hf.order := by
induction' n with n hn
· simp; rw [AnalyticAt.order_eq_zero_iff]; simp
· simp
simp_rw [add_mul, pow_add]
simp
rw [AnalyticAt.order_mul (hf.pow n) hf]
rw [hn]
theorem AnalyticAt.supp_order_toNat theorem AnalyticAt.supp_order_toNat
{f : } {f : }
{z₀ : } {z₀ : }
@ -147,36 +164,36 @@ theorem AnalyticAt.order_comp_CLE
rw [AnalyticAt.order_eq_nat_iff] at hn rw [AnalyticAt.order_eq_nat_iff] at hn
obtain ⟨g, h₁g, h₂g, h₃g⟩ := hn obtain ⟨g, h₁g, h₂g, h₃g⟩ := hn
have A := eventually_nhds_comp_composition h₃g .continuous 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 have : AnalyticAt (fun z ↦ ( z - z₀) ^ n • g ( z) : ) z₀ := by
sorry
rw [AnalyticAt.order_congr (hf.comp (.analyticAt z₀)) this A] rw [AnalyticAt.order_congr (hf.comp (.analyticAt z₀)) this A]
simp simp
rw [AnalyticAt.order_mul] have t₀ : AnalyticAt (fun z => ( z - z₀) ^ n) z₀ := by
sorry
rw [AnalyticAt.order_mul t₀ ((h₁g.comp (.analyticAt z₀)))]
have t₁ : AnalyticAt (fun z => z - z₀) z₀ := by
sorry
have : t₁.order = (1 : ) := by
rw [AnalyticAt.order_eq_nat_iff]
use (fun z ↦ 1)
simp
constructor
· exact analyticAt_const
· apply Filter.Eventually.of_forall
intro x
sorry
have : t₀.order = n := by
rw [AnalyticAt.order_pow t₁, this]
simp
--rw [hn, AnalyticAt.order_eq_nat_iff] rw [this]
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]
have : (comp h₁g (ContinuousLinearEquiv.analyticAt z₀)).order = 0 := by
rwa [AnalyticAt.order_eq_zero_iff]
rw [this]
sorry simp
· constructor
· apply IsOpen.preimage
exact ContinuousLinearEquiv.continuous
exact h₂t
· exact h₃t