@@ -97,12 +97,32 @@ theorem AnalyticOn.order_eq_nat_iff
exact ⟨ h₁g z₀ z₀ . 2 , ⟨ h₂g , Filter . Eventually . of_forall h₃g ⟩ ⟩
theorem AnalyticOn . support_of_order₁
{ f : ℂ → ℂ }
{ U : Set ℂ }
( hf : AnalyticOn ℂ f U ) :
Function . support hf . order = U . restrict f ⁻¹ ' { 0 } : = by
ext u
simp [ AnalyticOn . order ]
rw [ not_iff_comm , ( hf u u . 2 ) . order_eq_zero_iff ]
theorem AnalyticOn . support_of_order₂
{ f : ℂ → ℂ }
{ U : Set ℂ }
( h₁U : IsPreconnected U )
( h₁f : AnalyticOn ℂ f U )
( h₂f : ∃ u ∈ U , f u ≠ 0 ) :
Function . support ( ENat . toNat ∘ h₁f . order ) = U . restrict f ⁻¹ ' { 0 } : = by
sorry
theorem AnalyticOn . eliminateZeros
{ f : ℂ → ℂ }
{ U : Set ℂ }
{ A : Finset U }
( hf : AnalyticOn ℂ f U )
( n : ℂ → ℕ ) :
( n : U → ℕ ) :
( ∀ a ∈ A , hf . order a = n a ) → ∃ ( g : ℂ → ℂ ) , AnalyticOn ℂ g U ∧ ( ∀ a ∈ A , g a ≠ 0 ) ∧ ∀ z , f z = ( ∏ a ∈ A , ( z - a ) ^ ( n a ) ) • g z : = by
apply Finset . induction ( α : = U ) ( p : = fun A ↦ ( ∀ a ∈ A , ( hf a . 1 a . 2 ) . order = n a ) → ∃ ( g : ℂ → ℂ ) , AnalyticOn ℂ g U ∧ ( ∀ a ∈ A , g a ≠ 0 ) ∧ ∀ z , f z = ( ∏ a ∈ A , ( z - a ) ^ ( n a ) ) • g z )
@@ -122,7 +142,7 @@ theorem AnalyticOn.eliminateZeros
rw [ ← hBinsert b₀ ( Finset . mem_insert_self b₀ B ) ]
let φ : = fun z ↦ ( ∏ a ∈ B , ( z - a . 1 ) ^ n a . 1 )
let φ : = fun z ↦ ( ∏ a ∈ B , ( z - a . 1 ) ^ n a )
have : f = fun z ↦ φ z * g₀ z : = by
funext z
@@ -307,24 +327,20 @@ theorem AnalyticOnCompact.eliminateZeros
( h₂U : IsCompact U )
( h₁f : AnalyticOn ℂ f U )
( h₂f : ∃ u ∈ U , f u ≠ 0 ) :
∃ ( g : ℂ → ℂ ) ( A : Finset U ) , AnalyticOn ℂ g U ∧ ( ∀ z ∈ U , g z ≠ 0 ) ∧ ∀ z , f z = ( ∏ a ∈ A , ( z - a ) ^ ( h₁f a a . 2 ) . order . toNat ) • g z : = by
∃ ( g : ℂ → ℂ ) ( A : Finset U ) , AnalyticOn ℂ g U ∧ ( ∀ z ∈ U , g z ≠ 0 ) ∧ ∀ z , f z = ( ∏ a ∈ A , ( z - a ) ^ ( h₁f . order a ) . toNat ) • g z : = by
let A : = ( finiteZeros h₁U h₂U h₁f h₂f ) . toFinset
let n : ℂ → ℕ : = by
intro z
by_cases hz : z ∈ U
· exact ( h₁f z hz ) . order . toNat
· exact 0
let n : U → ℕ : = fun z ↦ ( h₁f z z . 2 ) . order . toNat
have hn : ∀ a ∈ A , ( h₁f a a . 2 ) . order = n a : = by
intro a _
dsimp [ n ]
simp
dsimp [ n , AnalyticOn . order ]
rw [ eq_comm ]
apply XX h₁U
exact h₂f
obtain ⟨ g , h₁g , h₂g , h₃g ⟩ : = AnalyticOn . eliminateZeros ( A : = A ) h₁f n hn
use g
use A
@@ -332,11 +348,6 @@ theorem AnalyticOnCompact.eliminateZeros
have inter : ∀ ( z : ℂ ) , f z = ( ∏ a ∈ A , ( z - ↑ a ) ^ ( h₁f ( ↑ a ) a . property ) . order . toNat ) • g z : = by
intro z
rw [ h₃g z ]
congr
funext a
congr
dsimp [ n ]
simp [ a . 2 ]
constructor
· exact h₁g
@@ -354,3 +365,60 @@ theorem AnalyticOnCompact.eliminateZeros
rw [ inter z ] at this
exact right_ne_zero_of_smul this
· exact inter
theorem AnalyticOnCompact . eliminateZeros₁
{ f : ℂ → ℂ }
{ U : Set ℂ }
( h₁U : IsPreconnected U )
( h₂U : IsCompact U )
( h₁f : AnalyticOn ℂ f U )
( h₂f : ∃ u ∈ U , f u ≠ 0 ) :
∃ ( g : ℂ → ℂ ) , AnalyticOn ℂ g U ∧ ( ∀ z ∈ U , g z ≠ 0 ) ∧ ∀ z , f z = ( ∏ ᶠ a : U , ( z - a ) ^ ( h₁f . order a ) . toNat ) • g z : = by
let A : = ( finiteZeros h₁U h₂U h₁f h₂f ) . toFinset
let n : U → ℕ : = fun z ↦ ( h₁f z z . 2 ) . order . toNat
have hn : ∀ a ∈ A , ( h₁f a a . 2 ) . order = n a : = by
intro a _
dsimp [ n , AnalyticOn . order ]
rw [ eq_comm ]
apply XX h₁U
exact h₂f
obtain ⟨ g , h₁g , h₂g , h₃g ⟩ : = AnalyticOn . eliminateZeros ( A : = A ) h₁f n hn
use g
have inter : ∀ ( z : ℂ ) , f z = ( ∏ a ∈ A , ( z - ↑ a ) ^ ( h₁f ( ↑ a ) a . property ) . order . toNat ) • g z : = by
intro z
rw [ h₃g z ]
constructor
· exact h₁g
· constructor
· intro z h₁z
by_cases h₂z : ⟨ z , h₁z ⟩ ∈ ↑ A . toSet
· exact h₂g ⟨ z , h₁z ⟩ h₂z
· have : f z ≠ 0 : = by
by_contra C
have : ⟨ z , h₁z ⟩ ∈ ↑ A . toSet : = by
dsimp [ A ]
simp
exact C
tauto
rw [ inter z ] at this
exact right_ne_zero_of_smul this
· intro z
let φ : U → ℂ : = fun a ↦ ( z - ↑ a ) ^ ( h₁f . order a ) . toNat
have hφ : Function . mulSupport φ ⊆ A : = by
intro x hx
simp [ φ ] at hx
have : ( h₁f . order x ) . toNat ≠ 0 : = by
sorry
sorry
rw [ finprod_eq_prod_of_mulSupport_subset φ hφ ]
rw [ inter z ]
rfl