Documentation

Atlas.EllipticCurves.code.Lattice

@[reducible, inline]

A complex lattice is identified with a PeriodPair: a pair (ω₁, ω₂) of complex numbers that are linearly independent over ℝ, generating a rank-2 ℤ-lattice in ℂ.

Instances For
    def ComplexLattice.mk' (ω₁ ω₂ : ℂ) (h : LinearIndependent ℝ ![ω₁, ω₂]) :

    Construct a complex lattice from two periods ω₁, ω₂ : ℂ together with a proof that they are linearly independent over ℝ.

    Instances For

      The two periods ω₁, ω₂ of a complex lattice are linearly independent over ℝ.

      theorem ComplexLattice.mem_lattice_iff (L : ComplexLattice) {x : ℂ} :
      x ∈ PeriodPair.lattice L ↔ ∃ (n₁ : ℤ) (n₂ : ℤ), ↑n₁ * L.ω₁ + ↑n₂ * L.ω₂ = x

      A complex number x lies in the lattice L iff it has an integer expression n₁ ω₁ + n₂ ω₂ in terms of the lattice's periods.

      The first period ω₁ belongs to the lattice L.

      The second period ω₂ belongs to the lattice L.

      The subgroup underlying a complex lattice carries the discrete topology induced from ℂ.

      A complex lattice is a ℤ-lattice in ℂ (viewed as an ℝ-vector space).

      The complex lattice has ℤ-rank equal to 2.

      A ℤ-basis of the lattice of size 2, given by the two periods of L.

      Instances For

        The ℤ-linear equivalence between the lattice L and ℤ × ℤ provided by the basis of periods.

        Instances For

          A complex lattice is a closed subset of ℂ.

          The complex lattice viewed as an additive subgroup of ℂ.

          Instances For
            theorem ComplexLattice.linearIndependent_int (L : ComplexLattice) (a b : ℤ) :
            a • L.ω₁ + b • L.ω₂ = 0 → a = 0 ∧ b = 0

            The periods ω₁, ω₂ of a complex lattice are linearly independent over ℤ: the only integer combination summing to 0 is the trivial one.

            The lattice as a set: all complex numbers of the form a • ω₁ + b • ω₂ with a, b ∈ ℤ.

            Instances For

              A complex lattice L is normalized if ω₂ / ω₁ lies in the upper half plane, i.e. its imaginary part is positive.

              Instances For

                Two complex lattices L and L' are homothetic if there is a nonzero complex scalar c such that L' (as a set in ℂ) equals c • L.

                Instances For

                  Homothety is reflexive: any lattice is homothetic to itself via the scalar 1.

                  Homothety is symmetric: if L and L' are homothetic via c, they are homothetic via c⁻¹ the other way.

                  theorem ComplexLattice.IsHomothetic.trans {L₁ L₂ L₃ : ComplexLattice} (h₁₂ : L₁.IsHomothetic L₂) (h₂₃ : L₂.IsHomothetic L₃) :
                  L₁.IsHomothetic L₃

                  Homothety is transitive: composing two homotheties yields a homothety.

                  Homothety of complex lattices is an equivalence relation.

                  The discriminant g₂³ - 27·g₃² of the Weierstrass cubic associated to the lattice.

                  Instances For
                    @[simp]

                    Definitional equation for the discriminant of a complex lattice.

                    The j-invariant of a complex lattice, given by 1728 g₂³ / Δ where Δ is the discriminant.

                    Instances For
                      @[simp]

                      Definitional equation for the j-invariant of a complex lattice.

                      The fundamental parallelogram translated by α: the image of the fundamental domain of L under translation by α.

                      Instances For
                        @[simp]

                        When the translation is 0, the fundamental parallelogram coincides with the standard fundamental domain of the lattice.

                        theorem ComplexLattice.basis_repr_omega (L : ComplexLattice) (t₁ t₂ : ℝ) (i : Fin 2) :
                        ((PeriodPair.basis L).repr (t₁ • L.ω₁ + t₂ • L.ω₂)) i = ![t₁, t₂] i

                        The coordinates of t₁ ω₁ + t₂ ω₂ with respect to the basis (ω₁, ω₂) are exactly t₁ and t₂.

                        theorem ComplexLattice.mem_fundamentalParallelogram_iff (L : ComplexLattice) {α z : ℂ} :
                        z ∈ L.fundamentalParallelogram α ↔ ∃ (t₁ : ℝ) (t₂ : ℝ), 0 ≤ t₁ ∧ t₁ < 1 ∧ 0 ≤ t₂ ∧ t₂ < 1 ∧ z = α + t₁ • L.ω₁ + t₂ • L.ω₂

                        A point z lies in the fundamental parallelogram based at α iff it can be written as α + t₁ ω₁ + t₂ ω₂ with 0 ≤ t₁, t₂ < 1.

                        The quotient ℂ / L is in bijection with the fundamental domain of the lattice: every coset has a unique representative in the fundamental parallelogram.

                        Instances For