Documentation

TauCeti.NumberTheory.Padics.TorsionDual

Ext¹(-, ℤ_p) of a presented module is the dual of its p-power torsion #

Let 0 → P₁ → P₀ → M → 0 be an exact sequence of ℤ_p-modules, with first map f. Applying Hom_{ℤ_p}(-, ℤ_p) gives Hom(P₀, ℤ_p) → Hom(P₁, ℤ_p), whose cokernel is Ext¹_{ℤ_p}(M, ℤ_p) when P₀ is projective. For M finitely generated this cokernel is the Pontryagin dual Hom_{ℤ_p}(M[p^∞], ℚ_p / ℤ_p) of the p-power torsion M[p^∞] of M. More generally, the comparison holds whenever M / M[p^∞] is projective over ℤ_p; finite generation guarantees this because the quotient is torsion-free.

The comparison is the connecting map of the long exact sequence for 0 → ℤ_p → ℚ_p → ℚ_p / ℤ_p → 0, written out by hand: a torsion element t lifts to x ∈ P₀ with p ^ n • x = f k for some k ∈ P₁, and a functional ψ on P₁ sends t to the class of ψ k / p ^ n. Its kernel consists of the functionals extending along f, because M[p^∞] is a direct summand of M over ℤ_p. Surjectivity needs only projectivity of P₀, since ℚ_p / ℤ_p is injective over ℤ_p and every character of the torsion extends to M.

The construction and surjectivity allow an action of a semiring A, compatible with that of ℤ_p, for which the maps are A-linear. The kernel and cokernel statements assume A is a ring. The connecting map is compatible with the contragredient actions of A: precomposing a functional on P₁ with the action of a ∈ A corresponds to precomposing a character of M[p^∞] with the action of a. Applied to the group algebra A = ℤ_p[G] of a finite group, this identifies E¹(M) = Ext¹_{ℤ_p[G]}(M, ℤ_p[G]) of a module of projective dimension one with the Pontryagin dual of its p-power torsion.

Main definitions #

Main results #

References #

noncomputable def TauCeti.torsionDualMap (p : ℕ) [Fact (Nat.Prime p)] {A : Type u_1} [Semiring A] [SMul ℤ_[p] A] {P₁ : Type u_2} {P₀ : Type u_3} {M : Type u_4} [AddCommGroup P₁] [Module A P₁] [Module ℤ_[p] P₁] [IsScalarTower ℤ_[p] A P₁] [AddCommGroup P₀] [Module A P₀] [Module ℤ_[p] P₀] [IsScalarTower ℤ_[p] A P₀] [AddCommGroup M] [Module A M] {f : P₁ →ₗ[A] P₀} {π : P₀ →ₗ[A] M} (hf : Function.Exact ⇑f ⇑π) (hfi : Function.Injective ⇑f) (hπ : Function.Surjective ⇑π) [Module ℤ_[p] M] [IsScalarTower ℤ_[p] A M] :

The connecting map Hom(P₁, ℤ_p) → Hom(M[p^∞], ℚ_p / ℤ_p) of a presentation 0 → P₁ → P₀ → M → 0: for t in the p-power torsion of M, choose x ∈ P₀ over t and p ^ n • x = f k; then ψ sends t to the class of ψ k / p ^ n. When M is finitely generated over ℤ_p, its kernel consists of the functionals extending along f (TauCeti.ker_torsionDualMap). It is surjective whenever P₀ is projective, without assuming finite generation (TauCeti.torsionDualMap_surjective). Together these identify Ext¹_{ℤ_p}(M, ℤ_p) with the Pontryagin dual of the p-power torsion of M (TauCeti.torsionDualEquiv).

Instances For
    theorem TauCeti.torsionDualMap_apply {p : ℕ} [Fact (Nat.Prime p)] {A : Type u_1} [Semiring A] [SMul ℤ_[p] A] {P₁ : Type u_2} {P₀ : Type u_3} {M : Type u_4} [AddCommGroup P₁] [Module A P₁] [Module ℤ_[p] P₁] [IsScalarTower ℤ_[p] A P₁] [AddCommGroup P₀] [Module A P₀] [Module ℤ_[p] P₀] [IsScalarTower ℤ_[p] A P₀] [AddCommGroup M] [Module A M] {f : P₁ →ₗ[A] P₀} {π : P₀ →ₗ[A] M} (hf : Function.Exact ⇑f ⇑π) (hfi : Function.Injective ⇑f) (hπ : Function.Surjective ⇑π) [Module ℤ_[p] M] [IsScalarTower ℤ_[p] A M] (ψ : Module.Dual ℤ_[p] P₁) (t : ↥(pPowerTorsion p A M)) {x : P₀} {n : ℕ} {k : P₁} (hx : π x = ↑t) (hk : p ^ n • x = f k) :
    ((torsionDualMap p hf hfi hπ) ψ) t = Submodule.Quotient.mk (↑(ψ k) / ↑p ^ n)

    The connecting map on a p-power torsion element t: if π x = t and p ^ n • x = f k, then ψ sends t to the class of ψ k / p ^ n.

    theorem TauCeti.torsionDualMap_apply_of_extension {p : ℕ} [Fact (Nat.Prime p)] {A : Type u_1} [Semiring A] [SMul ℤ_[p] A] {P₁ : Type u_2} {P₀ : Type u_3} {M : Type u_4} [AddCommGroup P₁] [Module A P₁] [Module ℤ_[p] P₁] [IsScalarTower ℤ_[p] A P₁] [AddCommGroup P₀] [Module A P₀] [Module ℤ_[p] P₀] [IsScalarTower ℤ_[p] A P₀] [AddCommGroup M] [Module A M] {f : P₁ →ₗ[A] P₀} {π : P₀ →ₗ[A] M} (hf : Function.Exact ⇑f ⇑π) (hfi : Function.Injective ⇑f) (hπ : Function.Surjective ⇑π) [Module ℤ_[p] M] [IsScalarTower ℤ_[p] A M] (ψ : Module.Dual ℤ_[p] P₁) (Φ : P₀ →ₗ[ℤ_[p]] ℚ_[p]) (hΦ : ∀ (k : P₁), ↑(ψ k) = Φ (f k)) (t : ↥(pPowerTorsion p A M)) {x : P₀} (hx : π x = ↑t) :
    ((torsionDualMap p hf hfi hπ) ψ) t = Submodule.Quotient.mk (Φ x)

    The connecting map at a functional ψ that extends along f to a ℚ_p-valued functional Φ on P₀: it sends π x to the class of Φ x.

    @[simp]
    theorem TauCeti.torsionDualMap_comp_toLinearMap_apply {p : ℕ} [Fact (Nat.Prime p)] {A : Type u_1} [Semiring A] [SMul ℤ_[p] A] {P₁ : Type u_2} {P₀ : Type u_3} {M : Type u_4} [AddCommGroup P₁] [Module A P₁] [Module ℤ_[p] P₁] [IsScalarTower ℤ_[p] A P₁] [AddCommGroup P₀] [Module A P₀] [Module ℤ_[p] P₀] [IsScalarTower ℤ_[p] A P₀] [AddCommGroup M] [Module A M] {f : P₁ →ₗ[A] P₀} {π : P₀ →ₗ[A] M} (hf : Function.Exact ⇑f ⇑π) (hfi : Function.Injective ⇑f) (hπ : Function.Surjective ⇑π) [Module ℤ_[p] M] [IsScalarTower ℤ_[p] A M] [SMulCommClass A ℤ_[p] P₁] (ψ : Module.Dual ℤ_[p] P₁) (a : A) (t : ↥(pPowerTorsion p A M)) :
    ((torsionDualMap p hf hfi hπ) (ψ ∘ₗ DistribSMul.toLinearMap ℤ_[p] P₁ a)) t = ((torsionDualMap p hf hfi hπ) ψ) (a • t)

    The connecting map is compatible with the contragredient actions of A: precomposing a functional with the action of a ∈ A on P₁ corresponds to evaluating its image at a • t.

    @[simp]
    theorem TauCeti.torsionDualMap_dualMap {p : ℕ} [Fact (Nat.Prime p)] {A : Type u_1} [Semiring A] [SMul ℤ_[p] A] {P₁ : Type u_2} {P₀ : Type u_3} {M : Type u_4} [AddCommGroup P₁] [Module A P₁] [Module ℤ_[p] P₁] [IsScalarTower ℤ_[p] A P₁] [AddCommGroup P₀] [Module A P₀] [Module ℤ_[p] P₀] [IsScalarTower ℤ_[p] A P₀] [AddCommGroup M] [Module A M] {f : P₁ →ₗ[A] P₀} {π : P₀ →ₗ[A] M} (hf : Function.Exact ⇑f ⇑π) (hfi : Function.Injective ⇑f) (hπ : Function.Surjective ⇑π) [Module ℤ_[p] M] [IsScalarTower ℤ_[p] A M] (φ : Module.Dual ℤ_[p] P₀) :
    (torsionDualMap p hf hfi hπ) ((↑ℤ_[p] f).dualMap φ) = 0

    The connecting map vanishes on the functionals that extend along f.

    theorem TauCeti.torsionDualMap_surjective {p : ℕ} [Fact (Nat.Prime p)] {A : Type u_1} [Semiring A] [SMul ℤ_[p] A] {P₁ : Type u_2} {P₀ : Type u_3} {M : Type u_4} [AddCommGroup P₁] [Module A P₁] [Module ℤ_[p] P₁] [IsScalarTower ℤ_[p] A P₁] [AddCommGroup P₀] [Module A P₀] [Module ℤ_[p] P₀] [IsScalarTower ℤ_[p] A P₀] [AddCommGroup M] [Module A M] {f : P₁ →ₗ[A] P₀} {π : P₀ →ₗ[A] M} (hf : Function.Exact ⇑f ⇑π) (hfi : Function.Injective ⇑f) (hπ : Function.Surjective ⇑π) [Module ℤ_[p] M] [IsScalarTower ℤ_[p] A M] [Module.Projective ℤ_[p] P₀] :

    The connecting map is surjective when P₀ is projective over ℤ_p: every character of the p-power torsion of M comes from a functional on P₁, without a finite-generation assumption on M.

    Kernel and cokernel of the connecting map #

    Throughout this section, the quotient M / M[p^∞] is assumed projective over ℤ_p. Under this hypothesis, the kernel consists of the functionals extending along f. When P₀ is also projective, the connecting map induces the cokernel equivalence. Finite generation of M implies the common quotient-projectivity hypothesis.

    theorem TauCeti.ker_torsionDualMap {p : ℕ} [Fact (Nat.Prime p)] {A : Type u_1} [Ring A] [SMul ℤ_[p] A] {P₁ : Type u_2} {P₀ : Type u_3} {M : Type u_4} [AddCommGroup P₁] [Module A P₁] [Module ℤ_[p] P₁] [IsScalarTower ℤ_[p] A P₁] [AddCommGroup P₀] [Module A P₀] [Module ℤ_[p] P₀] [IsScalarTower ℤ_[p] A P₀] [AddCommGroup M] [Module A M] [Module ℤ_[p] M] [IsScalarTower ℤ_[p] A M] {f : P₁ →ₗ[A] P₀} {π : P₀ →ₗ[A] M} [Module.Projective ℤ_[p] (M ⧸ pPowerTorsion p A M)] (hf : Function.Exact ⇑f ⇑π) (hfi : Function.Injective ⇑f) (hπ : Function.Surjective ⇑π) :
    (torsionDualMap p hf hfi hπ).ker = (↑ℤ_[p] f).dualMap.range

    If the quotient of M by its p-power torsion is projective over ℤ_p, the kernel of the connecting map consists exactly of the functionals that extend along f. In particular, this holds when M is finitely generated over ℤ_p.

    noncomputable def TauCeti.torsionDualEquiv (p : ℕ) [Fact (Nat.Prime p)] {A : Type u_1} [Ring A] [SMul ℤ_[p] A] {P₁ : Type u_2} {P₀ : Type u_3} {M : Type u_4} [AddCommGroup P₁] [Module A P₁] [Module ℤ_[p] P₁] [IsScalarTower ℤ_[p] A P₁] [AddCommGroup P₀] [Module A P₀] [Module ℤ_[p] P₀] [IsScalarTower ℤ_[p] A P₀] [AddCommGroup M] [Module A M] [Module ℤ_[p] M] [IsScalarTower ℤ_[p] A M] {f : P₁ →ₗ[A] P₀} {π : P₀ →ₗ[A] M} [Module.Projective ℤ_[p] (M ⧸ pPowerTorsion p A M)] (hf : Function.Exact ⇑f ⇑π) (hfi : Function.Injective ⇑f) (hπ : Function.Surjective ⇑π) [Module.Projective ℤ_[p] P₀] :

    Ext¹_{ℤ_p}(M, ℤ_p) is the Pontryagin dual of the p-power torsion of M. For an exact sequence 0 → P₁ → P₀ → M → 0 with P₀ and M / M[p^∞] projective over ℤ_p, the cokernel of Hom(P₀, ℤ_p) → Hom(P₁, ℤ_p) is isomorphic to Hom_{ℤ_p}(M[p^∞], ℚ_p / ℤ_p), through the connecting map TauCeti.torsionDualMap. The projectivity of M / M[p^∞] holds in particular when M is finitely generated over ℤ_p.

    Instances For
      @[simp]
      theorem TauCeti.torsionDualEquiv_mk {p : ℕ} [Fact (Nat.Prime p)] {A : Type u_1} [Ring A] [SMul ℤ_[p] A] {P₁ : Type u_2} {P₀ : Type u_3} {M : Type u_4} [AddCommGroup P₁] [Module A P₁] [Module ℤ_[p] P₁] [IsScalarTower ℤ_[p] A P₁] [AddCommGroup P₀] [Module A P₀] [Module ℤ_[p] P₀] [IsScalarTower ℤ_[p] A P₀] [AddCommGroup M] [Module A M] [Module ℤ_[p] M] [IsScalarTower ℤ_[p] A M] {f : P₁ →ₗ[A] P₀} {π : P₀ →ₗ[A] M} [Module.Projective ℤ_[p] (M ⧸ pPowerTorsion p A M)] (hf : Function.Exact ⇑f ⇑π) (hfi : Function.Injective ⇑f) (hπ : Function.Surjective ⇑π) [Module.Projective ℤ_[p] P₀] (ψ : Module.Dual ℤ_[p] P₁) :
      (torsionDualEquiv p hf hfi hπ) (Submodule.Quotient.mk ψ) = (torsionDualMap p hf hfi hπ) ψ

      TauCeti.torsionDualEquiv sends the class of a functional to its image under the connecting map.