Documentation

Mathlib.Analysis.SpecialFunctions.Elliptic.Weierstrass

Weierstrass functions #

Main definitions and results #

tags #

Weierstrass p-functions, Weierstrass p functions

structure PeriodPair :

A pair of -linearly independent complex numbers. They span the period lattice in lattice, and are the periods of the elliptic functions we shall construct.

Instances For

    The -basis of determined by a pair of periods.

    Equations
      Instances For

        The lattice spanned by a pair of periods.

        Equations
          Instances For
            theorem PeriodPair.mem_lattice {L : PeriodPair} {x : } :
            x L.lattice ∃ (m : ) (n : ), m * L.ω₁ + n * L.ω₂ = x

            The -basis of the lattice determined by a pair of periods.

            Equations
              Instances For

                The equivalence from the lattice generated by a pair of periods to ℤ × ℤ.

                Equations
                  Instances For
                    theorem PeriodPair.hasSumLocallyUniformly_aux (L : PeriodPair) (f : L.lattice) (u : L.lattice) (hu : r > 0, Summable (u r)) (hf : r > 0, ∀ᶠ (R : ) in Filter.atTop, ∀ (x : ), x < r∀ (l : L.lattice), l = Rf l x u r l) :
                    HasSumLocallyUniformly f fun (x : ) => ∑' (j : L.lattice), f j x
                    theorem PeriodPair.weierstrassP_bound (r : ) (hr : 0 < r) (s : ) (hs : s < r) (l : ) (h : 2 * r l) :
                    1 / (s - l) ^ 2 - 1 / l ^ 2 10 * r * l ^ (-3)

                    The Weierstrass function with the l₀-term missing. This is mainly a tool for calculations where one would want to omit a diverging term. This has the notation ℘[L - l₀] in the namespace PeriodPairs.

                    Equations
                      Instances For

                        The Weierstrass function with the l₀-term missing. This is mainly a tool for calculations where one would want to omit a diverging term. This has the notation ℘[L - l₀] in the namespace PeriodPairs.

                        Equations
                          Instances For
                            theorem PeriodPair.hasSumLocallyUniformly_weierstrassPExcept (L : PeriodPair) (l₀ : ) :
                            HasSumLocallyUniformly (fun (l : L.lattice) (z : ) => if l = l₀ then 0 else 1 / (z - l) ^ 2 - 1 / l ^ 2) (L.weierstrassPExcept l₀)
                            theorem PeriodPair.hasSum_weierstrassPExcept (L : PeriodPair) (l₀ z : ) :
                            HasSum (fun (l : L.lattice) => if l = l₀ then 0 else 1 / (z - l) ^ 2 - 1 / l ^ 2) (L.weierstrassPExcept l₀ z)

                            The Weierstrass function. This has the notation ℘[L] in the namespace PeriodPairs.

                            Equations
                              Instances For

                                The Weierstrass function. This has the notation ℘[L] in the namespace PeriodPairs.

                                Equations
                                  Instances For
                                    theorem PeriodPair.weierstrassPExcept_add (L : PeriodPair) (l₀ : L.lattice) (z : ) :
                                    L.weierstrassPExcept (↑l₀) z + (1 / (z - l₀) ^ 2 - 1 / l₀ ^ 2) = L.weierstrassP z
                                    theorem PeriodPair.weierstrassPExcept_def (L : PeriodPair) (l₀ : L.lattice) (z : ) :
                                    L.weierstrassPExcept (↑l₀) z = L.weierstrassP z + (1 / l₀ ^ 2 - 1 / (z - l₀) ^ 2)
                                    theorem PeriodPair.hasSum_weierstrassP (L : PeriodPair) (z : ) :
                                    HasSum (fun (l : L.lattice) => 1 / (z - l) ^ 2 - 1 / l ^ 2) (L.weierstrassP z)

                                    The derivative of Weierstrass function with the l₀-term missing. This is mainly a tool for calculations where one would want to omit a diverging term. This has the notation ℘'[L - l₀] in the namespace PeriodPairs.

                                    Equations
                                      Instances For

                                        The derivative of Weierstrass function with the l₀-term missing. This is mainly a tool for calculations where one would want to omit a diverging term. This has the notation ℘'[L - l₀] in the namespace PeriodPairs.

                                        Equations
                                          Instances For
                                            theorem PeriodPair.hasSum_derivWeierstrassPExcept (L : PeriodPair) (l₀ z : ) :
                                            HasSum (fun (l : L.lattice) => if l = l₀ then 0 else -2 / (z - l) ^ 3) (L.derivWeierstrassPExcept l₀ z)
                                            @[simp]
                                            theorem PeriodPair.weierstrassP_add_coe (L : PeriodPair) (z : ) (l : L.lattice) :
                                            L.weierstrassP (z + l) = L.weierstrassP z
                                            @[simp]
                                            theorem PeriodPair.weierstrassP_sub_coe (L : PeriodPair) (z : ) (l : L.lattice) :
                                            L.weierstrassP (z - l) = L.weierstrassP z

                                            The derivative of Weierstrass function. This has the notation ℘'[L] in the namespace PeriodPairs.

                                            Equations
                                              Instances For

                                                The Weierstrass function. This has the notation ℘[L] in the namespace PeriodPairs.

                                                Equations
                                                  Instances For
                                                    theorem PeriodPair.hasSum_derivWeierstrassP (L : PeriodPair) (z : ) :
                                                    HasSum (fun (l : L.lattice) => -2 / (z - l) ^ 3) (L.derivWeierstrassP z)
                                                    @[simp]

                                                    deriv ℘ = ℘'. This is true globally because of junk values.

                                                    def PeriodPair.sumInvPow (L : PeriodPair) (x : ) (r : ) :

                                                    The sum ∑ (l - x)⁻ʳ over l ∈ L. This converges when 2 < r, see hasSum_sumInvPow.

                                                    Equations
                                                      Instances For
                                                        theorem PeriodPair.hasSum_sumInvPow (L : PeriodPair) (x : ) {r : } (hr : 2 < r) :
                                                        HasSum (fun (l : L.lattice) => ((l - x) ^ r)⁻¹) (L.sumInvPow x r)
                                                        def PeriodPair.weierstrassPExceptSummand (L : PeriodPair) (l₀ x : ) (i : ) (l : L.lattice) :

                                                        In the power series expansion of ℘(z) = ∑ aᵢ (z - x)ⁱ at some x ∉ L, each aᵢ can be written as an infinite sum over l ∈ L. This is the summand of this infinite sum with the l₀-th term omitted. See PeriodPair.coeff_weierstrassPExceptSeries.

                                                        Equations
                                                          Instances For

                                                            The power series expansion of ℘[L - l₀] at x. See PeriodPair.hasFPowerSeriesOnBall_weierstrassPExcept.

                                                            Equations
                                                              Instances For
                                                                theorem PeriodPair.summable_weierstrassPExceptSummand (L : PeriodPair) (l₀ z x : ) (hx : ∀ (l : L.lattice), l l₀z - x < l - x) :
                                                                Summable (Function.uncurry fun (b : ) (c : L.lattice) => L.weierstrassPExceptSummand l₀ x b c * (z - x) ^ b)

                                                                In the power series expansion of ℘(z) = ∑ᵢ aᵢ (z - x)ⁱ at some x ∉ L, each aᵢ can be writen as a sum over l ∈ L, i.e. aᵢ = ∑ₗ, (i + 1) * (l - x)⁻ⁱ⁻² for i ≠ 0 and a₀ = ∑ₗ, (l - x)⁻² - l⁻².

                                                                We show that the double sum converges if z falls in a ball centered at x that doesn't touch L.

                                                                theorem PeriodPair.weierstrassPExcept_eq_tsum (L : PeriodPair) (l₀ z x : ) (hx : ∀ (l : L.lattice), l l₀z - x < l - x) :
                                                                L.weierstrassPExcept l₀ z = ∑' (i : ), (L.weierstrassPExceptSeries l₀ x).coeff i * (z - x) ^ i
                                                                theorem PeriodPair.weierstrassPExceptSeries_hasSum (L : PeriodPair) (l₀ z x : ) (hx : ∀ (l : L.lattice), l l₀z - x < l - x) :
                                                                HasSum (fun (i : ) => (L.weierstrassPExceptSeries l₀ x).coeff i * (z - x) ^ i) (L.weierstrassPExcept l₀ z)

                                                                The power series expansion of ℘'[L - l₀] at x. See PeriodPair.hasFPowerSeriesOnBall_derivWeierstrassPExcept.

                                                                Equations
                                                                  Instances For
                                                                    def PeriodPair.weierstrassPSummand (L : PeriodPair) (x : ) (i : ) (l : L.lattice) :

                                                                    In the power series expansion of ℘(z) = ∑ aᵢzⁱ at some x ∉ L, each aᵢ can be written as an infinite sum over l ∈ L. This is the summand of this infinite sum. See PeriodPair.coeff_weierstrassPSeries.

                                                                    Equations
                                                                      Instances For

                                                                        The power series expansion of at x. See PeriodPair.hasFPowerSeriesOnBall_weierstrassP.

                                                                        Equations
                                                                          Instances For
                                                                            theorem PeriodPair.summable_weierstrassPSummand (L : PeriodPair) (z x : ) (hx : ∀ (l : L.lattice), z - x < l - x) :
                                                                            Summable (Function.uncurry fun (b : ) (c : L.lattice) => L.weierstrassPSummand x b c * (z - x) ^ b)
                                                                            theorem PeriodPair.weierstrassPSeries_hasSum (L : PeriodPair) (z x : ) (hx : ∀ (l : L.lattice), z - x < l - x) :
                                                                            HasSum (fun (i : ) => (L.weierstrassPSeries x).coeff i * (z - x) ^ i) (L.weierstrassP z)
                                                                            theorem PeriodPair.ite_eq_one_sub_sq_mul_weierstrassP (L : PeriodPair) (l₀ : ) (hl₀ : l₀ L.lattice) (z : ) :
                                                                            (if z = l₀ then 1 else (z - l₀) ^ 2 * L.weierstrassP z) = (z - l₀) ^ 2 * L.weierstrassPExcept l₀ z + 1 - (z - l₀) ^ 2 / l₀ ^ 2
                                                                            def PeriodPair.G (L : PeriodPair) (n : ) :

                                                                            The Eisenstein series as a function on lattices. It takes L to the sum ∑ l⁻ʳ over l ∈ L. TODO: Establish connections with the ModularForm library.

                                                                            Equations
                                                                              Instances For
                                                                                theorem PeriodPair.G_eq_zero_of_odd (L : PeriodPair) (n : ) (hn : Odd n) :
                                                                                L.G n = 0

                                                                                The lattice invariant g₂ := 60 G₄.

                                                                                Equations
                                                                                  Instances For

                                                                                    The lattice invariant g₃ := 140 G₆.

                                                                                    Equations
                                                                                      Instances For
                                                                                        theorem PeriodPair.derivWeierstrassP_sq (L : PeriodPair) (z : ) (hz : zL.lattice) :

                                                                                        ℘'(z)² = 4 ℘(z)³ - g₂ ℘(z) - g₃