Documentation

Mathlib.LinearAlgebra.FreeModule.ModN

Quotienting out a free -module #

If G is a rank d free -module, then G/nG is a finite group of cardinality n ^ d.

@[reducible, inline]
abbrev ModN (G : Type u_1) [AddCommGroup G] (n : ) :
Type u_1

ModN G n denotes the quotient of G by multiples of n

Equations
def ModN.liftEquiv {G : Type u_1} {M : Type u_3} [AddCommGroup G] {n : } [AddMonoid M] :
(ModN G n →+ M) { φ : G →+ M // ∀ (g : G), n φ g = 0 }

The universal property of ModN G n in terms of monoids: Monoid homomorphisms from ModN G n are the same as monoid homormorphisms from G whose values are n-torsion.

Equations
  • One or more equations did not get rendered due to their size.
def ModN.liftEquiv' {G : Type u_1} {H : Type u_2} [AddCommGroup G] {n : } [AddCommGroup H] [Module (ZMod n) H] :
(ModN G n →ₗ[ZMod n] H) { φ : G →+ H // ∀ (g : G), n φ g = 0 }

The universal property of ModN G n in terms of ZMod n-modules: ZMod n-linear maps from ModN G n are the same as monoid homormorphisms from G whose values are n-torsion.

Equations
def ModN.mkQ {G : Type u_1} [AddCommGroup G] (n : ) :
G →+ ModN G n

The quotient map G → G / nG.

Equations
noncomputable def ModN.basis {G : Type u_1} [AddCommGroup G] {n : } [NeZero n] {ι : Type u_4} (b : Basis ι G) :
Basis ι (ZMod n) (ModN G n)

Given a free module G over , construct the corresponding basis of G / ⟨n⟩ over ℤ / nℤ.

Equations
  • One or more equations did not get rendered due to their size.
theorem ModN.basis_apply_eq_mkQ {G : Type u_1} [AddCommGroup G] {n : } [NeZero n] {ι : Type u_4} (b : Basis ι G) (i : ι) :
(basis b) i = (mkQ n) (b i)
instance ModN.instFinite {G : Type u_1} [AddCommGroup G] {n : } [NeZero n] [Module.Free G] [Module.Finite G] :
Finite (ModN G n)
@[simp]