Skip to main content
AlexKontorovich/PrimeNumberTheoremAnd
Source indexedtheorem · leanprover/lean4:v4.32.0

Complex.Hadamard.differentiable_divisorComplementPartialProduct

PrimeNumberTheoremAnd.Mathlib.Analysis.Complex.DivisorComplement · PrimeNumberTheoremAnd/Mathlib/Analysis/Complex/DivisorComplement.lean:140 to 165

Mathematical statement

Exact Lean statement

theorem differentiable_divisorComplementPartialProduct
    (m : ℕ) (f : ℂ → ℂ) (z₀ : ℂ)
    (s : Finset (divisorZeroIndex₀ f (Set.univ : Set ℂ))) :
    Differentiable ℂ (divisorComplementPartialProduct m f z₀ s)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem differentiable_divisorComplementPartialProduct    (m : ) (f : ℂ  ℂ) (z₀ : ℂ)    (s : Finset (divisorZeroIndex₀ f (Set.univ : Set ℂ))) :    Differentiable ℂ (divisorComplementPartialProduct m f z₀ s) := by  let Φ : divisorZeroIndex₀ f (Set.univ : Set ℂ) :=    fun p z => divisorComplementFactor m f z₀ p z  have hΦ :  p  s, Differentiable ℂ (Φ p) := by    intro p _hp    by_cases hpF : p  divisorZeroIndex₀_fiberFinset (f := f) z₀    · have hΦp : Φ p = fun _ => (1 : ℂ) := by        ext z        simp only [Φ, divisorComplementFactor_eq_one_of_mem m f z₀ p z hpF]      rw [hΦp]      exact differentiable_const (1 : ℂ)    · have hΦp : Φ p = fun z => weierstrassFactor m (z / divisorZeroIndex₀_val p) := by        ext z        simp only [Φ, divisorComplementFactor_eq_weierstrassFactor_of_not_mem m f z₀ p z hpF]      rw [hΦp]      exact differentiable_weierstrassFactor_divisorZeroIndex₀ m p  have hEq : (fun z : ℂ => ∏ p  s, Φ p z) =      divisorComplementPartialProduct m f z₀ s := by    ext z    simp [Φ, divisorComplementPartialProduct]  have : Differentiable ℂ (fun z : ℂ => ∏ p  s, Φ p z) := by    simpa using (Differentiable.fun_finsetProd (𝕜 := ℂ) (f := Φ) (u := s) hΦ)  simpa [hEq] using this