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
      @[simp]
      @[simp]

      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
        theorem PeriodPair.mul_ω₁_add_mul_ω₂_mem_lattice {L : PeriodPair} {α β : } :
        α * L.ω₁ + β * L.ω₂ L.lattice α.den = 1 β.den = 1

        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
              • One or more equations did not get rendered due to their size.
              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
                  • One or more equations did not get rendered due to their size.
                  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.hasSumLocallyUniformly_weierstrassP (L : PeriodPair) :
                    HasSumLocallyUniformly (fun (l : L.lattice) (z : ) => 1 / (z - l) ^ 2 - 1 / l ^ 2) L.weierstrassP
                    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
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        theorem PeriodPair.hasSumLocallyUniformly_derivWeierstrassPExcept (L : PeriodPair) (l₀ : ) :
                        HasSumLocallyUniformly (fun (l : L.lattice) (z : ) => if l = l₀ then 0 else -2 / (z - l) ^ 3) (L.derivWeierstrassPExcept l₀)
                        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_coe (L : PeriodPair) (l : L.lattice) :
                        L.weierstrassP l = 0
                        @[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
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            theorem PeriodPair.derivWeierstrassPExcept_sub (L : PeriodPair) (l₀ : L.lattice) (z : ) :
                            L.derivWeierstrassPExcept (↑l₀) z - 2 / (z - l₀) ^ 3 = L.derivWeierstrassP z
                            theorem PeriodPair.derivWeierstrassPExcept_def (L : PeriodPair) (l₀ : L.lattice) (z : ) :
                            L.derivWeierstrassPExcept (↑l₀) z = L.derivWeierstrassP z + 2 / (z - l₀) ^ 3
                            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
                                • One or more equations did not get rendered due to their size.
                                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₃