Submodule quotients and direct sums #
This file contains some results on the quotient of a module by a direct sum of submodules, and the direct sum of quotients of modules by submodules.
Main definitions #
Submodule.piQuotientLift: create a map out of the direct sum of quotientsSubmodule.quotientPiLift: create a map out of the quotient of a direct sumSubmodule.quotientPi: the quotient of a direct sum is the direct sum of quotients.
def Submodule.piQuotientLift {ι : Type u_1} {R : Type u_2} [CommRing R] {Ms : ι → Type u_3} [(i : ι) → AddCommGroup (Ms i)] [(i : ι) → Module R (Ms i)] {N : Type u_4} [AddCommGroup N] [Module R N] [Fintype ι] [DecidableEq ι] (p : (i : ι) → Submodule R (Ms i)) (q : Submodule R N) (f : (i : ι) → Ms i →ₗ[R] N) (hf : ∀ (i : ι), p i ≤ comap (f i) q) :
Lift a family of maps to the direct sum of quotients.
Equations
- Submodule.piQuotientLift p q f hf = (LinearMap.lsum R (fun (i : ι) => Ms i ⧸ p i) R) fun (i : ι) => (p i).mapQ q (f i) ⋯
Instances For
@[simp]
theorem Submodule.piQuotientLift_mk {ι : Type u_1} {R : Type u_2} [CommRing R] {Ms : ι → Type u_3} [(i : ι) → AddCommGroup (Ms i)] [(i : ι) → Module R (Ms i)] {N : Type u_4} [AddCommGroup N] [Module R N] [Fintype ι] [DecidableEq ι] (p : (i : ι) → Submodule R (Ms i)) (q : Submodule R N) (f : (i : ι) → Ms i →ₗ[R] N) (hf : ∀ (i : ι), p i ≤ comap (f i) q) (x : (i : ι) → Ms i) :
((piQuotientLift p q f hf) fun (i : ι) => Quotient.mk (x i)) = Quotient.mk (((LinearMap.lsum R Ms R) f) x)
@[simp]
theorem Submodule.piQuotientLift_single {ι : Type u_1} {R : Type u_2} [CommRing R] {Ms : ι → Type u_3} [(i : ι) → AddCommGroup (Ms i)] [(i : ι) → Module R (Ms i)] {N : Type u_4} [AddCommGroup N] [Module R N] [Fintype ι] [DecidableEq ι] (p : (i : ι) → Submodule R (Ms i)) (q : Submodule R N) (f : (i : ι) → Ms i →ₗ[R] N) (hf : ∀ (i : ι), p i ≤ comap (f i) q) (i : ι) (x : Ms i ⧸ p i) :
def Submodule.quotientPiLift {ι : Type u_1} {R : Type u_2} [CommRing R] {Ms : ι → Type u_3} [(i : ι) → AddCommGroup (Ms i)] [(i : ι) → Module R (Ms i)] {Ns : ι → Type u_5} [(i : ι) → AddCommGroup (Ns i)] [(i : ι) → Module R (Ns i)] (p : (i : ι) → Submodule R (Ms i)) (f : (i : ι) → Ms i →ₗ[R] Ns i) (hf : ∀ (i : ι), p i ≤ (f i).ker) :
Lift a family of maps to a quotient of direct sums.
Equations
- Submodule.quotientPiLift p f hf = (Submodule.pi Set.univ p).liftQ (LinearMap.pi fun (i : ι) => f i ∘ₗ LinearMap.proj i) ⋯
Instances For
@[simp]
theorem Submodule.quotientPiLift_mk {ι : Type u_1} {R : Type u_2} [CommRing R] {Ms : ι → Type u_3} [(i : ι) → AddCommGroup (Ms i)] [(i : ι) → Module R (Ms i)] {Ns : ι → Type u_5} [(i : ι) → AddCommGroup (Ns i)] [(i : ι) → Module R (Ns i)] (p : (i : ι) → Submodule R (Ms i)) (f : (i : ι) → Ms i →ₗ[R] Ns i) (hf : ∀ (i : ι), p i ≤ (f i).ker) (x : (i : ι) → Ms i) :
def Submodule.quotientPi_aux.toFun {ι : Type u_1} {R : Type u_2} [CommRing R] {Ms : ι → Type u_3} [(i : ι) → AddCommGroup (Ms i)] [(i : ι) → Module R (Ms i)] (p : (i : ι) → Submodule R (Ms i)) :
Equations
- Submodule.quotientPi_aux.toFun p = ⇑(Submodule.quotientPiLift p (fun (i : ι) => (p i).mkQ) ⋯)
Instances For
def Submodule.quotientPi_aux.invFun {ι : Type u_1} {R : Type u_2} [CommRing R] {Ms : ι → Type u_3} [(i : ι) → AddCommGroup (Ms i)] [(i : ι) → Module R (Ms i)] (p : (i : ι) → Submodule R (Ms i)) [Fintype ι] [DecidableEq ι] :
Equations
- Submodule.quotientPi_aux.invFun p = ⇑(Submodule.piQuotientLift p (Submodule.pi Set.univ p) (LinearMap.single R Ms) ⋯)
Instances For
theorem Submodule.quotientPi_aux.left_inv {ι : Type u_1} {R : Type u_2} [CommRing R] {Ms : ι → Type u_3} [(i : ι) → AddCommGroup (Ms i)] [(i : ι) → Module R (Ms i)] (p : (i : ι) → Submodule R (Ms i)) [Fintype ι] [DecidableEq ι] :
Function.LeftInverse (invFun p) (toFun p)
theorem Submodule.quotientPi_aux.right_inv {ι : Type u_1} {R : Type u_2} [CommRing R] {Ms : ι → Type u_3} [(i : ι) → AddCommGroup (Ms i)] [(i : ι) → Module R (Ms i)] (p : (i : ι) → Submodule R (Ms i)) [Fintype ι] [DecidableEq ι] :
Function.RightInverse (invFun p) (toFun p)
def Submodule.quotientPi {ι : Type u_1} {R : Type u_2} [CommRing R] {Ms : ι → Type u_3} [(i : ι) → AddCommGroup (Ms i)] [(i : ι) → Module R (Ms i)] [Fintype ι] [DecidableEq ι] (p : (i : ι) → Submodule R (Ms i)) :
The quotient of a direct sum is the direct sum of quotients.
Equations
- Submodule.quotientPi p = { toFun := Submodule.quotientPi_aux.toFun p, map_add' := ⋯, map_smul' := ⋯, invFun := Submodule.quotientPi_aux.invFun p, left_inv := ⋯, right_inv := ⋯ }
Instances For
@[simp]
theorem Submodule.quotientPi_apply {ι : Type u_1} {R : Type u_2} [CommRing R] {Ms : ι → Type u_3} [(i : ι) → AddCommGroup (Ms i)] [(i : ι) → Module R (Ms i)] [Fintype ι] [DecidableEq ι] (p : (i : ι) → Submodule R (Ms i)) (a✝ : ((i : ι) → Ms i) ⧸ pi Set.univ p) (i : ι) :
@[simp]
theorem Submodule.quotientPi_symm_apply {ι : Type u_1} {R : Type u_2} [CommRing R] {Ms : ι → Type u_3} [(i : ι) → AddCommGroup (Ms i)] [(i : ι) → Module R (Ms i)] [Fintype ι] [DecidableEq ι] (p : (i : ι) → Submodule R (Ms i)) (a✝ : (i : ι) → Ms i ⧸ p i) :