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

Instances For
    @[implicit_reducible]
    instance ModN.instModuleZMod {G : Type u_1} [AddCommGroup G] {n : ā„•} :
    Module (ZMod n) (ModN G n)
    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 homomorphisms from G whose values are n-torsion.

    Instances For
      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 homomorphisms from G whose values are n-torsion.

      Instances For
        def ModN.mkQ {G : Type u_1} [AddCommGroup G] (n : ā„•) :

        The quotient map G → G / nG.

        Instances For
          noncomputable def ModN.basis {G : Type u_1} [AddCommGroup G] {n : ā„•} [NeZero n] {ι : Type u_4} (b : Module.Basis ι ℤ G) :
          Module.Basis ι (ZMod n) (ModN G n)

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

          Instances For
            theorem ModN.basis_apply_eq_mkQ {G : Type u_1} [AddCommGroup G] {n : ā„•} [NeZero n] {ι : Type u_4} (b : Module.Basis ι ℤ G) (i : ι) :
            (basis b) i = (mkQ n) (b i)
            instance ModN.instModuleFinite {G : Type u_1} [AddCommGroup G] {n : ā„•} [NeZero n] [Module.Free ℤ G] [Module.Finite ℤ G] :
            instance ModN.instFinite {G : Type u_1} [AddCommGroup G] {n : ā„•} [NeZero n] [Module.Free ℤ G] [Module.Finite ℤ G] :
            Finite (ModN G n)
            @[simp]
            theorem ModN.natCard_eq (G : Type u_1) [AddCommGroup G] (n : ā„•) [NeZero n] [Module.Free ℤ G] [Module.Finite ℤ G] :
            Nat.card (ModN G n) = n ^ Module.finrank ℤ G