Documentation

Atlas.EllipticCurves.code.Theorem151

The Weierstrass curve E_L : y^2 = 4x^3 - g₂(L)·x - g₃(L) associated to a lattice L, presented in long Weierstrass form with coefficients (a₁, a₂, a₃, a₄, a₆) = (0, 0, 0, -g₂/4, -g₃/4).

Instances For

    The affine model of ellipticCurveEL L, used to talk about its affine Point type.

    Instances For
      @[reducible, inline]

      The type of points on the elliptic curve E_L associated to the lattice L.

      Instances For
        @[implicit_reducible]

        The additive group structure on E_L(ℂ) from the chord-tangent law on a Weierstrass curve.

        The discriminant of the affine elliptic curve E_L equals the lattice discriminant Δ(L) = g₂³ - 27 g₃² (up to the normalization built into discriminantLattice).

        The discriminant of E_L is nonzero, so E_L really is an elliptic curve (this is Lemma 14.33 applied to E_L).

        For any non-lattice point z, the pair (℘(z), ℘'(z)/2) satisfies the Weierstrass equation of E_L, i.e. lies on the affine curve. This is the key calculation behind the uniformization map of Theorem 15.1.

        For any non-lattice point z, the point (℘(z), ℘'(z)/2) is a nonsingular point of E_L, since E_L has nonzero discriminant.

        noncomputable def ComplexLattice.PhiAux (L : ComplexLattice) (z : ) (hz : z(PeriodPair.lattice L)) :

        The uniformization map on a non-lattice point: send z ∉ L to the affine point (℘(z), ℘'(z)/2) of E_L.

        Instances For
          @[reducible, inline]

          The complex torus ℂ / L for the lattice L.

          Instances For
            @[implicit_reducible]

            The complex torus inherits the additive group structure from the quotient of by L.

            noncomputable def ComplexLattice.PhiLift (L : ComplexLattice) (z : ) :

            The set-theoretic uniformization lift ℂ → E_L(ℂ) underlying Φ: lattice points are sent to the identity, and any other z to (℘(z), ℘'(z)/2).

            Instances For

              The lift PhiLift is L-periodic: shifting z by a lattice element does not change its image, which is what allows it to descend to ℂ / L.

              noncomputable def ComplexLattice.PhiFun (L : ComplexLattice) :

              The uniformization map Φ : ℂ/L → E_L(ℂ) as a function, obtained by descending PhiLift to the quotient using its L-periodicity.

              Instances For

                The uniformization map sends the identity of ℂ/L (the class of 0) to the identity (point at infinity) of E_L.

                theorem ComplexLattice.PhiFun_mk (L : ComplexLattice) (z : ) (hz : z(PeriodPair.lattice L)) :
                L.PhiFun z = L.PhiAux z hz

                Computational rule for PhiFun: on the class of a non-lattice point z, the map agrees with PhiAux z, i.e. evaluates to (℘(z), ℘'(z)/2).

                Additivity of the uniformization map: Φ(a + b) = Φ(a) + Φ(b) on the complex torus. This is the group-homomorphism content of Theorem 15.1, the classical addition law for the Weierstrass function.

                The uniformization map Φ : ℂ/L → E_L(ℂ) packaged as a group homomorphism, using PhiFun_zero and PhiFun_map_add.

                Instances For

                  Injectivity of Φ: relying on the parity/duplication properties of and ℘', two torus classes mapping to the same point of E_L must agree. This is the injectivity half of Theorem 15.1.

                  Surjectivity of Φ: every point of E_L(ℂ) is the image of some torus class. This is the surjectivity half of Theorem 15.1.

                  The uniformization map Φ : ℂ/L → E_L(ℂ) is bijective, combining injectivity and surjectivity.

                  Theorem 15.1: the map Φ : ℂ/L → E_L(ℂ) is a group isomorphism between the complex torus and the complex points of the elliptic curve E_L.

                  Instances For