Documentation

TauCeti.Algebra.Module.Submodule.Quotient

Submodule intervals and quotients #

This file records the generic order correspondence between a submodule interval and submodules of the associated quotient, and the identifications of subquotients ↥B ⧸ A that a linear map induces when it is injective or surjective.

Main declarations #

References #

The diagonal quotient construction follows Mathlib's Submodule.quotientEquivPiSpan and Submodule.quotientEquivPiZMod, with the bases and diagonal coefficients made explicit so an externally normalized Smith form can be retained.

noncomputable def Submodule.subquotientEquivOfEq {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (A B A' B' : Submodule R M) (hA : A = A') (hB : B = B') :
(↥B ⧸ comap B.subtype A) ≃ₗ[R] ↥B' ⧸ comap B'.subtype A'

Transport a subquotient across equalities of its ambient and denominator submodules.

Equations
Instances For
    @[simp]
    theorem Submodule.subquotientEquivOfEq_mk {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (A B A' B' : Submodule R M) (hA : A = A') (hB : B = B') (x : ↥B) :
    (A.subquotientEquivOfEq B A' B' hA hB) (Quotient.mk x) = Quotient.mk (have this := ⟨↑x, ⋯⟩; this)

    Forward transport preserves the ambient representative.

    @[simp]
    theorem Submodule.subquotientEquivOfEq_symm_mk {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (A B A' B' : Submodule R M) (hA : A = A') (hB : B = B') (x : ↥B') :
    (A.subquotientEquivOfEq B A' B' hA hB).symm (Quotient.mk x) = Quotient.mk (have this := ⟨↑x, ⋯⟩; this)

    The inverse transport takes quotient representatives to the same ambient vector.

    @[simp]
    theorem TauCeti.mapIic_symm_apply {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (p : Submodule R M) (N : ↑(Set.Iic p)) :

    The inverse of Submodule.mapIic takes the inverse image along the inclusion. This is the symm-side counterpart of Mathlib's Submodule.coe_mapIic_apply.

    def TauCeti.iccOrderIsoQuotientOfMapEq {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] {p q : Submodule R M} (r : Submodule R ↥q) (hr : Submodule.map q.subtype r = p) :
    ↑(Set.Icc p q) ≃o Submodule R (↥q ⧸ r)

    The interval correspondence for a specified copy r of the lower endpoint inside q.

    Equations
    Instances For
      @[simp]
      theorem TauCeti.mk_mem_iccOrderIsoQuotientOfMapEq_iff {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] {p q : Submodule R M} (r : Submodule R ↥q) (hr : Submodule.map q.subtype r = p) (N : ↑(Set.Icc p q)) (x : ↥q) :

      A representative belongs to the quotient submodule in the interval correspondence exactly when its underlying ambient element belongs to the corresponding interval submodule.

      @[simp]
      theorem TauCeti.mem_iccOrderIsoQuotientOfMapEq_symm_apply_iff {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] {p q : Submodule R M} (r : Submodule R ↥q) (hr : Submodule.map q.subtype r = p) (Q : Submodule R (↥q ⧸ r)) (x : ↥q) :

      An ambient representative belongs to the interval submodule corresponding to Q exactly when its quotient class belongs to Q.

      @[simp]

      An injective linear map carries the trace of A in B onto the trace of A.map f in B.map f, so it descends to the subquotients.

      noncomputable def TauCeti.mapSubquotientEquivOfInjective {R : Type u_1} {M : Type u_2} {N : Type u_3} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (f : M →ₗ[R] N) (hf : Function.Injective ⇑f) (A B : Submodule R M) :

      An injective linear map identifies subquotients. For arbitrary submodules A, B of M the subquotient cut out by the images A.map f, B.map f is the subquotient cut out by A and B themselves; for A ≤ B this reads B.map f ⧸ A.map f ≃ₗ[R] B ⧸ A.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]

        TauCeti.mapSubquotientEquivOfInjective read on representatives: its inverse is induced by the restriction Submodule.equivMapOfInjective of f to B.

        @[simp]

        TauCeti.mapSubquotientEquivOfInjective read on representatives, in the forward direction: it undoes the restriction Submodule.equivMapOfInjective of f to B.

        The kernel of x ↦ f x mod A, on the preimage of B, is the trace of the preimage of A.

        noncomputable def TauCeti.comapSubquotientEquivOfSurjective {R : Type u_1} {M : Type u_2} {N : Type u_3} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (f : M →ₗ[R] N) (hf : Function.Surjective ⇑f) (A B : Submodule R N) :

        A surjective linear map identifies subquotients. For arbitrary submodules A, B of N the subquotient cut out by the preimages A.comap f, B.comap f is the subquotient cut out by A and B themselves; for A ≤ B this reads B.comap f ⧸ A.comap f ≃ₗ[R] B ⧸ A.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]

          TauCeti.comapSubquotientEquivOfSurjective read on representatives: it is induced by the restriction LinearMap.submoduleComap of f to the preimage of B.

          @[simp]

          TauCeti.comapSubquotientEquivOfSurjective read on representatives, in the inverse direction: it undoes the restriction LinearMap.submoduleComap of f to the preimage of B.

          theorem LinearMap.ker_mkQ_comp_rangeRestrict {R : Type u_1} {M : Type u_2} {N : Type u_3} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (f : M →ₗ[R] N) (I : Submodule R M) (hker : f.ker ≤ I) :

          The kernel of the map from M to the quotient of the range of f by the image of I is exactly I, provided that I contains the kernel of f.

          noncomputable def LinearMap.quotientEquivRangeQuotientMap {R : Type u_1} {M : Type u_2} {N : Type u_3} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (f : M →ₗ[R] N) (I : Submodule R M) (hker : f.ker ≤ I) :

          A quotient above the kernel is the corresponding quotient of the range.

          If ker f ≤ I, the map x ↦ f x identifies M / I with the range of f modulo the image of I. This form of the first isomorphism theorem is useful when f is a representation with a controlled kernel.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem LinearMap.quotientEquivRangeQuotientMap_apply_mk {R : Type u_1} {M : Type u_2} {N : Type u_3} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (f : M →ₗ[R] N) (I : Submodule R M) (hker : f.ker ≤ I) (x : M) :

            LinearMap.quotientEquivRangeQuotientMap sends the class of x to the class of f x in the range quotient.

            @[simp]

            LinearMap.quotientEquivRangeQuotientMap read in the inverse direction: the class of f.rangeRestrict x in the range quotient comes from the class of x.

            noncomputable def Submodule.quotientEquivPiZModOfBasis {M : Type u_1} {ι : Type u_2} [AddCommGroup M] [Finite ι] (N : Submodule ℤ M) (b : Module.Basis ι ℤ M) (bN : Module.Basis ι ℤ ↥N) (a : ι → ℤ) (hdiag : ∀ (i : ι), ↑(bN i) = a i • b i) :
            M ⧸ N ≃+ ((i : ι) → ZMod (a i).natAbs)

            A quotient by a submodule with a specified diagonal basis is a product of cyclic groups.

            Unlike Submodule.quotientEquivPiZMod, this construction takes both bases and their diagonal coefficients as input. This lets a caller retain a normalized choice of Smith invariant factors rather than using the coefficients selected internally by Mathlib's basis-level Smith form.

            Equations
            Instances For
              @[simp]
              theorem Submodule.quotientEquivPiZModOfBasis_mk_apply {M : Type u_1} {ι : Type u_2} [AddCommGroup M] [Finite ι] (N : Submodule ℤ M) (b : Module.Basis ι ℤ M) (bN : Module.Basis ι ℤ ↥N) (a : ι → ℤ) (hdiag : ∀ (i : ι), ↑(bN i) = a i • b i) (x : M) (i : ι) :
              (N.quotientEquivPiZModOfBasis b bN a hdiag) (Quotient.mk x) i = ↑((b.repr x) i)

              The diagonal quotient equivalence sends a representative to its coordinates modulo the corresponding diagonal coefficients.