Documentation

TauCeti.Algebra.Module.Torsion.TateModule

Tate modules of abelian groups #

For an abelian group A and a prime p, its p-adic Tate module is the inverse limit

TateModule p A = lim_n A[p^n]

along the transition maps A[p^(n+1)] → A[p^n], x ↦ p • x. This file gives the inverse limit a concrete carrier, its universal property, the inverse-limit topology, and its canonical ℤ_p-module structure. The action at level n is through reduction ℤ_p → ZMod (p ^ n).

The construction applies in particular to the point group of an elliptic curve. Finite-level torsion calculations can therefore be assembled into the ℓ-adic representation without introducing an elliptic-curve-specific copy of the inverse-limit machinery.

Main definitions #

Main results #

References #

@[reducible, inline]
abbrev TauCeti.TateModuleLevel (p : ℕ) (A : Type u_1) [AddCommGroup A] (n : ℕ) :
Type u_1

The n-th level A[p^n] of the p-power torsion tower.

Equations
Instances For

    The transition map A[p^(n+1)] → A[p^n], given by multiplication by p.

    Equations
    Instances For
      @[simp]
      theorem TauCeti.tateModuleTransition_apply (p : ℕ) (A : Type u_1) [AddCommGroup A] (n : ℕ) (x : TateModuleLevel p A (n + 1)) :
      ↑((tateModuleTransition p A n) x) = p • ↑x

      The transition map is multiplication by p on the underlying group.

      The subgroup of the product of the groups A[p^n] consisting of families compatible under multiplication by p. Its carrier is TateModule p A.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem TauCeti.mem_tateModuleSubgroup_iff {p : ℕ} {A : Type u_1} [AddCommGroup A] {x : (n : ℕ) → TateModuleLevel p A n} :
        x ∈ tateModuleSubgroup p A ↔ ∀ (n : ℕ), (tateModuleTransition p A n) (x (n + 1)) = x n

        A family of p-power torsion points lies in the Tate module exactly when consecutive components are compatible under multiplication by p.

        def TauCeti.TateModule (p : ℕ) (A : Type u_1) [AddCommGroup A] :
        Type u_1

        The p-adic Tate module of an abelian group: compatible families of p^n-torsion points.

        Equations
        Instances For
          @[instance_reducible]
          noncomputable instance TauCeti.TateModule.instAddCommGroup (p : ℕ) (A : Type u_1) [AddCommGroup A] :
          Equations
          • One or more equations did not get rendered due to their size.
          noncomputable def TauCeti.TateModule.proj {p : ℕ} {A : Type u_1} [AddCommGroup A] (n : ℕ) :

          Projection of the Tate module to its p^n-torsion level.

          Equations
          Instances For
            @[simp]
            theorem TauCeti.TateModule.proj_succ {p : ℕ} {A : Type u_1} [AddCommGroup A] (x : TateModule p A) (n : ℕ) :
            (tateModuleTransition p A n) ((proj (n + 1)) x) = (proj n) x

            Consecutive components of a Tate-module point are compatible under multiplication by p.

            theorem TauCeti.TateModule.ext {p : ℕ} {A : Type u_1} [AddCommGroup A] {x y : TateModule p A} (h : ∀ (n : ℕ), (proj n) x = (proj n) y) :
            x = y

            A Tate-module point is determined by all of its finite-level components.

            theorem TauCeti.TateModule.ext_iff {p : ℕ} {A : Type u_1} [AddCommGroup A] {x y : TateModule p A} :
            x = y ↔ ∀ (n : ℕ), (proj n) x = (proj n) y
            noncomputable def TauCeti.TateModule.mk {p : ℕ} {A : Type u_1} [AddCommGroup A] (x : (n : ℕ) → TateModuleLevel p A n) (hx : ∀ (n : ℕ), (tateModuleTransition p A n) (x (n + 1)) = x n) :

            The Tate-module point with prescribed compatible components.

            Equations
            Instances For
              @[simp]
              theorem TauCeti.TateModule.proj_mk {p : ℕ} {A : Type u_1} [AddCommGroup A] (x : (n : ℕ) → TateModuleLevel p A n) (hx : ∀ (n : ℕ), (tateModuleTransition p A n) (x (n + 1)) = x n) (n : ℕ) :
              (proj n) (mk x hx) = x n

              The projection of a point constructed by mk is its prescribed component.

              theorem TauCeti.TateModule.range_proj {p : ℕ} {A : Type u_1} [AddCommGroup A] :
              (Set.range fun (x : TateModule p A) (n : ℕ) => (proj n) x) = ↑(tateModuleSubgroup p A)

              The family of projections identifies the Tate module with the subgroup of compatible families in the product of the torsion levels.

              noncomputable def TauCeti.TateModule.lift {p : ℕ} {A : Type u_1} [AddCommGroup A] {B : Type u_2} [AddZeroClass B] (f : (n : ℕ) → B →+ TateModuleLevel p A n) (hf : ∀ (n : ℕ), (tateModuleTransition p A n).comp (f (n + 1)) = f n) :

              The additive homomorphism into a Tate module determined by compatible finite-level maps.

              Equations
              Instances For
                @[simp]
                theorem TauCeti.TateModule.proj_lift {p : ℕ} {A : Type u_1} [AddCommGroup A] {B : Type u_2} [AddZeroClass B] (f : (n : ℕ) → B →+ TateModuleLevel p A n) (hf : ∀ (n : ℕ), (tateModuleTransition p A n).comp (f (n + 1)) = f n) (n : ℕ) :
                (proj n).comp (lift f hf) = f n

                Projection after lift recovers the corresponding finite-level homomorphism.

                theorem TauCeti.TateModule.lift_unique {p : ℕ} {A : Type u_1} [AddCommGroup A] {B : Type u_2} [AddZeroClass B] (f : (n : ℕ) → B →+ TateModuleLevel p A n) (hf : ∀ (n : ℕ), (tateModuleTransition p A n).comp (f (n + 1)) = f n) (g : B →+ TateModule p A) (hg : ∀ (n : ℕ), (proj n).comp g = f n) :
                g = lift f hf

                The lift of a compatible family of finite-level maps is unique.

                def TauCeti.TateModule.levelMap {p : ℕ} {A : Type u_1} [AddCommGroup A] {B : Type u_2} [AddCommGroup B] (f : A →+ B) (n : ℕ) :

                The map on the p^n-torsion levels induced by an additive homomorphism.

                Equations
                Instances For
                  @[simp]
                  theorem TauCeti.TateModule.levelMap_apply {p : ℕ} {A : Type u_1} [AddCommGroup A] {B : Type u_2} [AddCommGroup B] (f : A →+ B) (n : ℕ) (x : TateModuleLevel p A n) :
                  ↑((levelMap f n) x) = f ↑x

                  The map induced on a torsion level agrees with the original homomorphism on underlying elements.

                  noncomputable def TauCeti.TateModule.map {p : ℕ} {A : Type u_1} [AddCommGroup A] {B : Type u_2} [AddCommGroup B] (f : A →+ B) :

                  An additive homomorphism induces an additive homomorphism of Tate modules, componentwise.

                  Equations
                  Instances For
                    @[simp]
                    theorem TauCeti.TateModule.proj_map {p : ℕ} {A : Type u_1} [AddCommGroup A] {B : Type u_2} [AddCommGroup B] (f : A →+ B) (x : TateModule p A) (n : ℕ) :
                    (proj n) ((map f) x) = (levelMap f n) ((proj n) x)

                    The map induced on Tate modules is computed componentwise.

                    @[simp]

                    Tate modules send identity homomorphisms to identity homomorphisms.

                    @[simp]
                    theorem TauCeti.TateModule.map_comp {p : ℕ} {A : Type u_1} [AddCommGroup A] {B : Type u_2} [AddCommGroup B] {C : Type u_3} [AddCommGroup C] (g : B →+ C) (f : A →+ B) :
                    map (g.comp f) = (map g).comp (map f)

                    Tate modules send compositions to compositions.

                    @[instance_reducible]
                    instance TauCeti.TateModule.levelZModModule {p : ℕ} {A : Type u_1} [AddCommGroup A] (n : ℕ) :
                    Module (ZMod (p ^ n)) (TateModuleLevel p A n)

                    The canonical module structure on the p^n-torsion level over ZMod (p^n).

                    Equations
                    @[instance_reducible]
                    noncomputable instance TauCeti.TateModule.instSMulPadicInt {p : ℕ} {A : Type u_1} [AddCommGroup A] [Fact (Nat.Prime p)] :

                    Scalar multiplication by ℤ_p, obtained by reducing a scalar modulo p^n on the n-th torsion level.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    @[simp]
                    theorem TauCeti.TateModule.proj_smul {p : ℕ} {A : Type u_1} [AddCommGroup A] [Fact (Nat.Prime p)] (a : ℤ_[p]) (x : TateModule p A) (n : ℕ) :
                    (proj n) (a • x) = (PadicInt.toZModPow n) a • (proj n) x

                    Scalar multiplication on the n-th projection is reduction modulo p^n.

                    @[instance_reducible]
                    noncomputable instance TauCeti.TateModule.instModulePadicInt {p : ℕ} {A : Type u_1} [AddCommGroup A] [Fact (Nat.Prime p)] :

                    The Tate module is canonically a module over the p-adic integers.

                    Equations
                    noncomputable def TauCeti.TateModule.mapLinearMap {p : ℕ} {A : Type u_1} [AddCommGroup A] [Fact (Nat.Prime p)] {B : Type u_2} [AddCommGroup B] (f : A →+ B) :

                    An additive homomorphism induces a ℤ_p-linear map on Tate modules.

                    Equations
                    Instances For
                      @[simp]
                      theorem TauCeti.TateModule.mapLinearMap_apply {p : ℕ} {A : Type u_1} [AddCommGroup A] [Fact (Nat.Prime p)] {B : Type u_2} [AddCommGroup B] (f : A →+ B) (x : TateModule p A) :
                      (mapLinearMap f) x = (map f) x

                      The linear map induced on Tate modules has the same underlying additive map as map.

                      The inverse-limit topology #

                      @[instance_reducible]

                      The inverse-limit topology, induced from the product of the discrete torsion levels.

                      Equations
                      theorem TauCeti.TateModule.continuous_iff {p : ℕ} {A : Type u_1} [AddCommGroup A] {X : Type u_2} [TopologicalSpace X] {f : X → TateModule p A} :
                      Continuous f ↔ ∀ (n : ℕ), IsLocallyConstant fun (x : X) => (proj n) (f x)

                      A map into a Tate module is continuous exactly when all its finite-level components are locally constant.

                      Every finite-level projection is locally constant.

                      The canonical action of the p-adic integers on the Tate module is jointly continuous.

                      If all p-power torsion levels are finite, then the Tate module is compact.

                      theorem TauCeti.TateModule.continuous_map {p : ℕ} {A : Type u_1} [AddCommGroup A] {B : Type u_2} [AddCommGroup B] (f : A →+ B) :

                      The homomorphism on Tate modules induced by an additive homomorphism is continuous.

                      theorem TauCeti.TateModule.continuous_map_apply {p : ℕ} {A : Type u_1} [AddCommGroup A] {G : Type u_2} [TopologicalSpace G] {B : Type u_3} [AddCommGroup B] {f : G → A →+ B} (hf : ∀ (n : ℕ) (x : TateModuleLevel p A n), IsLocallyConstant fun (g : G) => (f g) ↑x) :
                      Continuous fun (q : G × TateModule p A) => (map (f q.1)) q.2

                      Homomorphisms moving torsion locally constantly act continuously on Tate modules. If f : G → (A →+ B) is a family of homomorphisms parametrised by a topological space G, and g ↦ f g x is locally constant for every p-power torsion point x, then (g, y) ↦ map (f g) y is jointly continuous. This is how a profinite Galois group acting on the torsion points of A acts continuously on T_p A.

                      Freeness #

                      theorem TauCeti.TateModule.coe_proj_eq_pow_nsmul {p : ℕ} {A : Type u_1} [AddCommGroup A] (x : TateModule p A) (m k : ℕ) :
                      ↑((proj m) x) = p ^ k • ↑((proj (m + k)) x)

                      The components of a Tate-module point satisfy x_m = p ^ k • x_(m + k).

                      theorem TauCeti.TateModule.coe_proj_eq_pow_sub_nsmul {p : ℕ} {A : Type u_1} [AddCommGroup A] (x : TateModule p A) {m n : ℕ} (h : m ≤ n) :
                      ↑((proj m) x) = p ^ (n - m) • ↑((proj n) x)

                      The components of a Tate-module point satisfy x_m = p ^ (n - m) • x_n for m ≤ n.

                      theorem TauCeti.TateModule.surjective_of_forall_surjective_proj {p : ℕ} {A : Type u_1} [AddCommGroup A] {X : Type u_2} [TopologicalSpace X] [CompactSpace X] {f : X → TateModule p A} (hf : Continuous f) (h : ∀ (n : ℕ), Function.Surjective fun (x : X) => (proj n) (f x)) :

                      Surjectivity from the finite levels. A continuous map from a compact space into a Tate module is surjective as soon as each of its components is surjective.

                      If every transition map is surjective, then every point of every torsion level is a component of a Tate-module point.

                      theorem TauCeti.TateModule.tateModuleTransition_surjective_of_natCard {p : ℕ} {A : Type u_1} [AddCommGroup A] {r : ℕ} (hp : p ≠ 0) (hcard : ∀ (n : ℕ), Nat.card (TateModuleLevel p A n) = (p ^ n) ^ r) (n : ℕ) :

                      If the p ^ n-torsion has (p ^ n) ^ r elements for every n, then multiplication by p maps A[p ^ (n + 1)] onto A[p ^ n].

                      theorem TauCeti.TateModule.coe_zmod_smul {p : ℕ} {A : Type u_1} [AddCommGroup A] [NeZero p] {n : ℕ} (z : ZMod (p ^ n)) (y : TateModuleLevel p A n) :
                      ↑(z • y) = z.val • ↑y

                      The ZMod (p ^ n)-action on the n-th torsion level is multiplication by a representative.

                      theorem TauCeti.TateModule.nonempty_linearEquiv_of_natCard {p : ℕ} {A : Type u_1} [AddCommGroup A] [hp : Fact (Nat.Prime p)] {r : ℕ} (hcard : ∀ (n : ℕ), Nat.card (TateModuleLevel p A n) = (p ^ n) ^ r) :

                      A Tate module whose p ^ n-torsion levels have (p ^ n) ^ r elements is free of rank r: it is isomorphic to ℤ_p ^ r. The isomorphism is noncanonical, so the result asserts its existence.

                      theorem TauCeti.TateModule.free_of_natCard {p : ℕ} {A : Type u_1} [AddCommGroup A] [hp : Fact (Nat.Prime p)] {r : ℕ} (hcard : ∀ (n : ℕ), Nat.card (TateModuleLevel p A n) = (p ^ n) ^ r) :

                      A Tate module whose p ^ n-torsion levels have (p ^ n) ^ r elements is free over ℤ_p.

                      theorem TauCeti.TateModule.finite_of_natCard {p : ℕ} {A : Type u_1} [AddCommGroup A] [hp : Fact (Nat.Prime p)] {r : ℕ} (hcard : ∀ (n : ℕ), Nat.card (TateModuleLevel p A n) = (p ^ n) ^ r) :

                      A Tate module whose p ^ n-torsion levels have (p ^ n) ^ r elements is finitely generated over ℤ_p.

                      theorem TauCeti.TateModule.finrank_eq_of_natCard {p : ℕ} {A : Type u_1} [AddCommGroup A] [hp : Fact (Nat.Prime p)] {r : ℕ} (hcard : ∀ (n : ℕ), Nat.card (TateModuleLevel p A n) = (p ^ n) ^ r) :

                      A Tate module whose p ^ n-torsion levels have (p ^ n) ^ r elements has rank r over ℤ_p.