Documentation

Atlas.EllipticCurves.code.Theorem161

@[reducible, inline]

The complex torus ℂ / L associated to a lattice L ⊆ ℂ.

Instances For

    The canonical quotient map ℂ → ℂ / L, as an additive group homomorphism.

    Instances For
      theorem ComplexLattice.proj_eq_iff (L : ComplexLattice) (z w : ) :
      L.proj z = L.proj w v(PeriodPair.lattice L).toAddSubgroup, z + v = w

      Two complex numbers project to the same point in ℂ / L iff they differ by a lattice element.

      A complex number projects to 0 in ℂ / L iff it lies in the lattice L.

      The set { α ∈ ℂ : α L₁ ⊆ L₂ } of scalars whose multiplication sends L₁ into L₂.

      Instances For

        The scalar 0 always sends L₁ into L₂, so it lies in latticeMulSet.

        @[simp]
        theorem ComplexLattice.mem_latticeMulSet_iff {L₁ L₂ : ComplexLattice} {α : } :
        α L₁.latticeMulSet L₂ z(PeriodPair.lattice L₁), α * z (PeriodPair.lattice L₂)

        Membership in latticeMulSet L₁ L₂ unfolds to the condition α z ∈ L₂ for every z ∈ L₁.

        Multiplication by a fixed α : ℂ packaged as an additive group homomorphism ℂ →+ ℂ.

        Instances For
          noncomputable def ComplexLattice.inducedMap (L₁ L₂ : ComplexLattice) (α : ) ( : α L₁.latticeMulSet L₂) :

          For α ∈ latticeMulSet L₁ L₂, the induced morphism ℂ / L₁ → ℂ / L₂ between complex tori obtained by passing multiplication-by-α to the quotient.

          Instances For
            @[simp]
            theorem ComplexLattice.inducedMap_proj (L₁ L₂ : ComplexLattice) (α : ) ( : α L₁.latticeMulSet L₂) (z : ) :
            (L₁.inducedMap L₂ α ) (L₁.proj z) = L₂.proj (α * z)

            The induced map applied to proj L₁ z equals proj L₂ (α * z).

            A holomorphic morphism between complex tori ℂ / L₁ → ℂ / L₂, packaged together with a holomorphic lift ℂ → ℂ making the projection diagram commute.

            Instances For
              theorem ComplexLattice.const_of_continuous_latticeValued (L : ComplexLattice) (g : ) (hg : Continuous g) (himg : ∀ (z : ), g z (PeriodPair.lattice L)) (x y : ) :
              g x = g y

              A continuous function from (connected) to a lattice (discrete) must be constant.

              theorem ComplexLattice.deriv_periodic_of_shift_const (f : ) (ω c : ) (hc : ∀ (z : ), f (z + ω) = f z + c) (z : ) :
              deriv f (z + ω) = deriv f z

              If f(z + ω) = f(z) + c for a constant c, then the derivative of f is ω-periodic.

              theorem ComplexLattice.affine_of_const_deriv (f : ) (hf : Differentiable f) (α : ) (hderiv_eq : ∀ (w : ), deriv f w = α) (z : ) :
              f z = α * z + f 0

              A differentiable function on with constant derivative α is affine: f(z) = α z + f(0).

              theorem ComplexLattice.periodic_of_generators (f : ) (L : ComplexLattice) (hp1 : Function.Periodic f L.ω₁) (hp2 : Function.Periodic f L.ω₂) (z w : ) :
              w PeriodPair.lattice Lf (z + w) = f z

              A function periodic with respect to the two generators ω₁, ω₂ of a lattice L is periodic with respect to every element of L.

              An entire function that is doubly periodic with respect to a lattice has bounded range (the key input for Liouville's theorem).

              theorem ComplexLattice.theorem_16_1_existence (L₁ L₂ : ComplexLattice) (φ : L₁.ComplexTorusHolMap L₂) (hφ0 : φ.toFun 0 = 0) :
              ∃ (α : ) ( : α L₁.latticeMulSet L₂), ∀ (z : ), φ.toFun (L₁.proj z) = (L₁.inducedMap L₂ α ) (L₁.proj z)

              Existence half of Theorem 16.1: every holomorphic morphism ℂ / L₁ → ℂ / L₂ sending 0 to 0 arises from multiplication by some α ∈ ℂ with α L₁ ⊆ L₂.

              theorem ComplexLattice.inducedMap_unique (L₁ L₂ : ComplexLattice) (α γ : ) ( : α L₁.latticeMulSet L₂) ( : γ L₁.latticeMulSet L₂) (heq : ∀ (z : ), (L₁.inducedMap L₂ α ) (L₁.proj z) = (L₁.inducedMap L₂ γ ) (L₁.proj z)) :
              α = γ

              The scalar α such that inducedMap α = inducedMap γ on all of ℂ / L₁ is uniquely determined.

              theorem ComplexLattice.theorem_16_1 (L₁ L₂ : ComplexLattice) (φ : L₁.ComplexTorusHolMap L₂) (hφ0 : φ.toFun 0 = 0) :
              ∃! α : , ∃ ( : α L₁.latticeMulSet L₂), ∀ (z : ), φ.toFun (L₁.proj z) = (L₁.inducedMap L₂ α ) (L₁.proj z)

              Theorem 16.1 (Sutherland): The map {α ∈ ℂ : α L₁ ⊆ L₂} → Hom(ℂ/L₁, ℂ/L₂) sending α ↦ φ_α is an isomorphism — i.e., every holomorphic torus morphism sending 0 to 0 is uniquely induced by some such scalar α.

              theorem ComplexLattice.add_mem_latticeMulSet (L₁ L₂ : ComplexLattice) (α β : ) ( : α L₁.latticeMulSet L₂) ( : β L₁.latticeMulSet L₂) :
              α + β L₁.latticeMulSet L₂

              The set latticeMulSet L₁ L₂ is closed under addition (it is an additive subgroup of ).

              theorem ComplexLattice.inducedMap_add_proj (L₁ L₂ : ComplexLattice) (α β : ) ( : α L₁.latticeMulSet L₂) ( : β L₁.latticeMulSet L₂) (z : ) :
              (L₁.inducedMap L₂ (α + β) ) (L₁.proj z) = (L₁.inducedMap L₂ α ) (L₁.proj z) + (L₁.inducedMap L₂ β ) (L₁.proj z)

              The induced map is additive in the scalar: inducedMap (α + β) = inducedMap α + inducedMap β on every projected point.

              theorem ComplexLattice.latticeMulSet_to_torusMorphism_addGroupIso (L₁ L₂ : ComplexLattice) :
              (∀ (α β : ) ( : α L₁.latticeMulSet L₂) ( : β L₁.latticeMulSet L₂) (z : ), (L₁.inducedMap L₂ (α + β) ) (L₁.proj z) = (L₁.inducedMap L₂ α ) (L₁.proj z) + (L₁.inducedMap L₂ β ) (L₁.proj z)) (∀ (z : ), (L₁.inducedMap L₂ 0 ) (L₁.proj z) = 0) (∀ (α γ : ) ( : α L₁.latticeMulSet L₂) ( : γ L₁.latticeMulSet L₂), (∀ (z : ), (L₁.inducedMap L₂ α ) (L₁.proj z) = (L₁.inducedMap L₂ γ ) (L₁.proj z))α = γ) ∀ (φ : L₁.ComplexTorusHolMap L₂), φ.toFun 0 = 0∃ (α : ) ( : α L₁.latticeMulSet L₂), ∀ (z : ), φ.toFun (L₁.proj z) = (L₁.inducedMap L₂ α ) (L₁.proj z)

              Conjunction packaging the four properties witnessing that α ↦ φ_α is an additive group isomorphism latticeMulSet L₁ L₂ ≃+ Hom(ℂ/L₁, ℂ/L₂): additivity, sending 0 ↦ 0, injectivity, and surjectivity (Theorem 16.1).

              theorem ComplexLattice.mul_mem_latticeMulSet (L : ComplexLattice) (α β : ) ( : α L.latticeMulSet L) ( : β L.latticeMulSet L) :
              α * β L.latticeMulSet L

              When L₁ = L₂ = L, the set latticeMulSet L L is closed under multiplication (it is a subring of , the endomorphism ring of ℂ / L).

              The scalar 1 lies in latticeMulSet L L, corresponding to the identity endomorphism.

              theorem ComplexLattice.inducedMap_comp (L : ComplexLattice) (α β : ) ( : α L.latticeMulSet L) ( : β L.latticeMulSet L) (z : ) :
              (L.inducedMap L (α * β) ) (L.proj z) = (L.inducedMap L α ) ((L.inducedMap L β ) (L.proj z))

              Composition of induced endomorphisms corresponds to multiplication of scalars: inducedMap (α β) = inducedMap α ∘ inducedMap β. This gives the ring-isomorphism structure when L₁ = L₂.