Documentation

LeanPool.LeanModularForms.GeneralizedResidueTheory.Residue

Residue Theory #

Multi-point Cauchy principal values, simple pole residues, and the generalized residue theorem for piecewise C¹ immersions.

Main Definitions #

Main Results #

noncomputable def cauchyPrincipalValueIntegrandOn (S : Finset ) (f : ) (γ : ) (ε t : ) :

Multi-point PV integrand: zero near any s in S, else f(γ(t))·γ'(t).

Equations
Instances For
    noncomputable def cauchyPrincipalValueOn (S : Finset ) (f : ) (γ : ) (a b : ) :

    The multi-point Cauchy principal value.

    Equations
    Instances For
      def CauchyPrincipalValueExistsOn (S : Finset ) (f : ) (γ : ) (a b : ) :

      Existence of the multi-point PV.

      Equations
      Instances For
        noncomputable def residueSimplePole (f : ) (z₀ : ) :

        Residue of f at z₀ via the limit formula lim_{z → z₀} (z - z₀) · f(z).

        Equations
        Instances For
          def HasSimplePoleAt (f : ) (z₀ : ) :

          Simple pole decomposition: f(z) = c/(z-z₀) + g(z) near z₀ with g analytic.

          Equations
          Instances For
            theorem piecewiseC1Immersion_deriv_bounded (γ : PiecewiseC1Immersion) :
            ∃ (M : ), tSet.Icc γ.a γ.b, deriv γ.toFun t M

            The derivative of a piecewise C¹ immersion is bounded on [a,b].

            The derivative of a piecewise C¹ curve is interval integrable when bounded.

            theorem singular_term_intervalIntegrable (f : ) (s : ) (γ : PiecewiseC1Curve) (hγ_avoids_s : tSet.Icc γ.a γ.b, γ.toFun t s) (hγ'_bdd : ∃ (M : ), tSet.Icc γ.a γ.b, deriv γ.toFun t M) :

            A single singular term is interval integrable when γ avoids s.

            theorem singular_sum_intervalIntegrable (f : ) (S0 : Finset ) (γ : PiecewiseC1Curve) (hγ_avoids : sS0, tSet.Icc γ.a γ.b, γ.toFun t s) (hγ'_bdd : ∃ (M : ), tSet.Icc γ.a γ.b, deriv γ.toFun t M) :
            IntervalIntegrable (fun (t : ) => sS0, residueSimplePole f s / (γ.toFun t - s) * deriv γ.toFun t) MeasureTheory.volume γ.a γ.b

            The singular sum is interval integrable when curve avoids all poles.

            theorem residue_simple_pole_eq_laurent (f : ) (z₀ c : ) (g : ) (hg : AnalyticAt g z₀) (hf : ∀ᶠ (z : ) in nhdsWithin z₀ {z₀}, f z = c / (z - z₀) + g z) :

            For simple poles, the residue equals the Laurent coefficient.

            theorem integral_singular_term_eq_winding_times_coeff (γ : PiecewiseC1Curve) (s c : ) (h_avoids : tSet.Icc γ.a γ.b, γ.toFun t s) :
            (t : ) in γ.a..γ.b, c / (γ.toFun t - s) * deriv γ.toFun t = 2 * Real.pi * Complex.I * generalizedWindingNumber' γ.toFun γ.a γ.b s * c

            The integral of a singular term equals the winding number times the coefficient.

            theorem simple_poles_decomposition (U : Set ) (hU : IsOpen U) (S0 : Finset ) (_hS0_in_U : sS0, s U) (f : ) (hf : DifferentiableOn f (U \ S0)) (_hSimplePoles : sS0, HasSimplePoleAt f s) (hf_ext : sS0, ContinuousAt (fun (z : ) => f z - residueSimplePole f s / (z - s)) s) :
            have g := fun (z : ) => f z - sS0, residueSimplePole f s / (z - s); DifferentiableOn g U zU \ S0, f z = sS0, residueSimplePole f s / (z - s) + g z
            theorem integral_eq_sum_residues_of_avoids (U : Set ) (hU : IsOpen U) (hU_convex : Convex U) (S0 : Finset ) (hS0_in_U : sS0, s U) (f : ) (hf : DifferentiableOn f (U \ S0)) (γ : PiecewiseC1Curve) (hγ_closed : γ.IsClosed) (hγ_in_U : tSet.Icc γ.a γ.b, γ.toFun t U) (hγ_avoids : sS0, tSet.Icc γ.a γ.b, γ.toFun t s) (hSimplePoles : sS0, HasSimplePoleAt f s) (hf_ext : sS0, ContinuousAt (fun (z : ) => f z - residueSimplePole f s / (z - s)) s) (hγ'_bdd : ∃ (M : ), tSet.Icc γ.a γ.b, deriv γ.toFun t M) :
            (t : ) in γ.a..γ.b, f (γ.toFun t) * deriv γ.toFun t = 2 * Real.pi * Complex.I * sS0, generalizedWindingNumber' γ.toFun γ.a γ.b s * residueSimplePole f s

            Classical residue theorem: when γ avoids all poles, the contour integral equals 2πi · Σ winding · residue.

            theorem cauchyPrincipalValueIntegrandOn_eq_of_far (S0 : Finset ) (f : ) (γ : ) (ε t : ) (h_far : sS0, ε < γ t - s) :
            cauchyPrincipalValueIntegrandOn S0 f γ ε t = f (γ t) * deriv γ t
            theorem cauchyPrincipalValueIntegrandOn_empty (f : ) (γ : ) (ε t : ) :
            cauchyPrincipalValueIntegrandOn f γ ε t = f (γ t) * deriv γ t
            theorem cauchyPrincipalValueIntegrandOn_singleton (f : ) (γ : ) (z₀ : ) (ε t : ) :
            cauchyPrincipalValueIntegrandOn {z₀} f γ ε t = if γ t - z₀ > ε then f (γ t) * deriv γ t else 0
            theorem cauchyPrincipalValueOn_empty (f : ) (γ : ) (a b : ) :
            cauchyPrincipalValueOn f γ a b = (t : ) in a..b, f (γ t) * deriv γ t
            theorem cauchyPrincipalValueExistsOn_avoids (S0 : Finset ) (f : ) (γ : PiecewiseC1Curve) (h_avoids : sS0, tSet.Icc γ.a γ.b, γ.toFun t s) :

            PV exists when curve avoids all singularities.

            theorem cauchyPrincipalValueOn_avoids (S0 : Finset ) (f : ) (γ : PiecewiseC1Curve) (h_avoids : sS0, tSet.Icc γ.a γ.b, γ.toFun t s) :
            cauchyPrincipalValueOn S0 f γ.toFun γ.a γ.b = (t : ) in γ.a..γ.b, f (γ.toFun t) * deriv γ.toFun t

            PV value equals classical integral when avoiding.

            theorem pv_integral_inverse (γ : PiecewiseC1Curve) (z₀ : ) :
            cauchyPrincipalValue' (fun (x : ) => x⁻¹) (fun (t : ) => γ.toFun t - z₀) γ.a γ.b 0 = 2 * Real.pi * Complex.I * generalizedWindingNumber' γ.toFun γ.a γ.b z₀

            PV of 1/z equals 2πi times winding number.

            theorem pv_integral_simple_pole (γ : PiecewiseC1Curve) (z₀ c : ) (hPV : ∃ (L : ), Filter.Tendsto (fun (ε : ) => (t : ) in γ.a..γ.b, if (fun (s : ) => γ.toFun s - z₀) t - 0 > ε then (fun (x : ) => x⁻¹) ((fun (s : ) => γ.toFun s - z₀) t) * deriv (fun (s : ) => γ.toFun s - z₀) t else 0) (nhdsWithin 0 (Set.Ioi 0)) (nhds L)) :
            cauchyPrincipalValue' (fun (z : ) => c / (z - z₀)) γ.toFun γ.a γ.b z₀ = 2 * Real.pi * Complex.I * generalizedWindingNumber' γ.toFun γ.a γ.b z₀ * c

            Single-point PV formula for simple pole.