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

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

                The quotient map G → G / nG.

                Equations
                  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ℤ.

                    Equations
                      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.instFinite {G : Type u_1} [AddCommGroup G] {n : } [NeZero n] [Module.Free G] [Module.Finite G] :
                        Finite (ModN G n)
                        @[simp]