Documentation

LeanPool.LeanModularForms.ValenceFormula.PVChain.ResidueSideInfra

Residue-Side Infrastructure for the PV Chain #

Infrastructure lemmas needed to apply generalizedResidueTheorem' to logDeriv (modularFormCompOfComplex f) on fdBoundaryH H.

Main Results #

fdBox properties #

theorem fdBox_isOpen (M : ) :

allZerosInFdBox #

noncomputable def allZerosInFdBox {k : } (f : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ) (CongruenceSubgroup.Gamma 1)) k) (hf : f 0) {M : } (hM : 1 / 2 < M) :

The finite set of zeros of the modular form inside the fundamental-domain box.

Equations
Instances For

    HasSimplePoleAt for logDeriv at zeros #

    theorem hasSimplePoleAt_logDeriv_of_zero_full {k : } (f : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ) (CongruenceSubgroup.Gamma 1)) k) (hf : f 0) (s : UpperHalfPlane) (hs : f s = 0) :
    ∃ (n : ) (g : ), n > 0 AnalyticAt g s g s 0 n = (analyticOrderNatAt (modularFormCompOfComplex f) s) ∀ᶠ (z : ) in nhds s, z slogDeriv (modularFormCompOfComplex f) z = n / (z - s) + logDeriv g z

    logDeriv of a modular form has a simple pole at each zero, with the factorization logDeriv F(z) = n/(z-s) + logDeriv g(z) where n is the vanishing order and g is analytic with g(s) ≠ 0.

    HasSimplePoleAt of logDeriv at a non-zero point (trivial: c = 0, g = logDeriv f).

    ContinuousAt of the regular part (for hf_ext) #

    orderOfVanishingAt' = analyticOrderNatAt #

    residueSimplePole lemmas #

    At a zero s of f, residueSimplePole(logDeriv f, s) = orderOfVanishingAt'(f, s).

    At a non-zero point, residueSimplePole(logDeriv f, z) = 0.

    fdBoundaryH ∈ fdBox #

    theorem fdBoundary_H_mem_fdBox' {H M : } (hH : 1 H) (hM : H < M) (t : ) (ht : t Set.Icc 0 5) :

    For H ≥ 1 and M > H, fdBoundaryH H t ∈ fdBox M for t ∈ [0, 5].

    Discrete set separation #

    theorem finset_discrete (S0 : Finset ) (s : ) :
    s S0ε > 0, s'S0, s' sε s' - s

    CPV existence at off-curve singular points #

    theorem cpvExists_of_off_curve (γ : ) (hγ_cont : Continuous γ) (a b : ) (s c : ) (hab : a b) (h_off : tSet.Icc a b, γ t s) :
    CauchyPrincipalValueExists' (fun (z : ) => c / (z - s)) γ a b s

    CPV of c/(z - s) exists when the curve avoids s (limit is just the regular integral).

    theorem cpvExists_scale (γ : ) (a b : ) (s c : ) (h : CauchyPrincipalValueExists' (fun (z : ) => (z - s)⁻¹) γ a b s) :
    CauchyPrincipalValueExists' (fun (z : ) => c / (z - s)) γ a b s

    CPV of c · (z - s)⁻¹ from CPV of (z - s)⁻¹ by scaling.

    logDeriv_patched — patched logDeriv for ContinuousAt at zeros #

    At zeros of f, Lean's div_zero convention makes logDeriv f(z) = 0/0 = 0, but the limit from the punctured neighborhood is g(z) ≠ 0. This breaks the ContinuousAt hypothesis of generalizedResidueTheorem'.

    The fix: define logDerivPatched F S0 which equals F away from S0 and equals the regular part g(z) at each z ∈ S0 (from the HasSimplePoleAt decomposition). This makes the ContinuousAt hypothesis hold.

    noncomputable def logDerivPatched (F : ) (S0 : Finset ) (hsp : sS0, HasSimplePoleAt F s) :

    The logarithmic derivative of F, patched to a fixed value at the points of S0.

    Equations
    Instances For
      theorem logDerivPatched_eq_raw_off (F : ) (S0 : Finset ) (hsp : sS0, HasSimplePoleAt F s) {z : } (hz : zS0) :
      logDerivPatched F S0 hsp z = F z
      theorem hasSimplePoleAt_logDerivPatched (F : ) (S0 : Finset ) (hsp : sS0, HasSimplePoleAt F s) (s : ) (hs : s S0) :
      theorem residue_logDerivPatched_eq_raw (F : ) (S0 : Finset ) (hsp : sS0, HasSimplePoleAt F s) (s : ) (hs : s S0) :
      theorem logDerivPatched_hf_ext (F : ) (S0 : Finset ) (hsp : sS0, HasSimplePoleAt F s) (s : ) :
      s S0ContinuousAt (fun (z : ) => logDerivPatched F S0 hsp z - residueSimplePole (logDerivPatched F S0 hsp) s / (z - s)) s

      The patched logDeriv satisfies ContinuousAt for generalizedResidueTheorem'.

      Norm bounds for fdBoundaryH #

      theorem fdBoundary_H_norm_ge_one {H : } (hH : 1 H) (t : ) (ht : t Set.Icc 0 5) :

      ‖fdBoundaryH H t‖ ≥ 1 for t ∈ [0, 5] when H ≥ 1.

      theorem off_curve_of_not_in_fd_H {H : } (hH : 1 H) (z₀ : ) (hz₀_not_fd : ¬(|z₀.re| 1 / 2 z₀ 1)) (t : ) :
      t Set.Icc 0 5fdBoundaryH H t z₀

      The boundary fdBoundaryH H avoids every point NOT in the closed FD.

      theorem ftc_integral_zero_of_closed_slit {γ : } {z₀ ω : } ( : ω 0) (hγ_cont : Continuous γ) (hγ_closed : γ 0 = γ 5) (h_off : tSet.Icc 0 5, γ t z₀) (h_slit : tSet.Icc 0 5, ω * (γ t - z₀) Complex.slitPlane) (hγ_diff : tfdBoundaryFullPartition, DifferentiableAt γ t) (hγ_deriv_cont : tSet.Ioo 0 5, tfdBoundaryFullPartitionContinuousAt (deriv γ) t) (hγ_deriv_bdd : ∃ ( : ), tSet.Icc 0 5, deriv γ t ) :
      (t : ) in 0..5, (γ t - z₀)⁻¹ * deriv γ t = 0

      FTC: integral = 0 for a closed curve with slit-plane avoidance.

      theorem winding_zero_for_non_fd_point_H_geo {k : } (f : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ) (CongruenceSubgroup.Gamma 1)) k) (hf : f 0) (S : Finset UpperHalfPlane) (hS_complete : pModularGroup.fd, orderOfVanishingAt' (⇑f) p 0p S) {H : } (hH : 1 H) (z₀ : ) (hz₀_zero : z₀ allZerosInFdBox f hf ) (hz₀_not_S : sS, s z₀) :

      Winding number = 0 for points in fdBox but NOT in the fundamental domain.