Quotients by submodules #
- If
pis a submodule ofM,M ⧸ pis the quotient ofMwith respect top: that is, elements ofMare identified if their difference is inp. This is itself a module.
The equivalence relation associated to a submodule p, defined by x ≈ y iff -x + y ∈ p.
Note this is equivalent to y - x ∈ p, but defined this way to be defeq to the AddSubgroup
version, where commutativity can't be assumed.
Equations
- p.quotientRel = QuotientAddGroup.leftRel p.toAddSubgroup
Instances For
The quotient of a module M by a submodule p ⊆ M.
Map associating to an element of M the corresponding element of M/p,
when p is a submodule of M.
Equations
- Submodule.Quotient.mk = Quotient.mk''
Instances For
Equations
- Submodule.Quotient.instZeroQuotient p = { zero := Quotient.mk'' 0 }
Equations
- Submodule.Quotient.instInhabitedQuotient p = { default := 0 }
Equations
- Submodule.Quotient.addCommGroup p = QuotientAddGroup.Quotient.addCommGroup p.toAddSubgroup
Equations
- Submodule.Quotient.instSMul' P = { smul := fun (a : S) => Quotient.map' (fun (x : M) => a • x) ⋯ }
Shortcut to help the elaborator in the common case.
Equations
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- Submodule.Quotient.mulAction' P = let __src := Function.Surjective.mulAction Submodule.Quotient.mk ⋯ ⋯; MulAction.mk ⋯ ⋯
Equations
Equations
- Submodule.Quotient.smulZeroClass' P = { toFun := Submodule.Quotient.mk, map_zero' := ⋯ }.smulZeroClass ⋯
Equations
- Submodule.Quotient.distribSMul' P = let __src := Function.Surjective.distribSMul { toFun := Submodule.Quotient.mk, map_zero' := ⋯, map_add' := ⋯ } ⋯ ⋯; DistribSMul.mk ⋯
Equations
- Submodule.Quotient.distribMulAction' P = let __src := Function.Surjective.distribMulAction { toFun := Submodule.Quotient.mk, map_zero' := ⋯, map_add' := ⋯ } ⋯ ⋯; DistribMulAction.mk ⋯ ⋯
Equations
- Submodule.Quotient.module' P = let __src := Function.Surjective.module S { toFun := Submodule.Quotient.mk, map_zero' := ⋯, map_add' := ⋯ } ⋯ ⋯; Module.mk ⋯ ⋯
Equations
The quotient of P as an S-submodule is the same as the quotient of P as an R-submodule,
where P : Submodule R M.
Equations
- Submodule.Quotient.restrictScalarsEquiv S P = let __src := Quotient.congrRight ⋯; { toFun := __src.toFun, map_add' := ⋯, map_smul' := ⋯, invFun := __src.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
Equations
- Submodule.QuotientTop.fintype = Fintype.ofSubsingleton 0
Equations
- Submodule.Quotient.fintype S = Quotient.fintype S.quotientRel
The map from a module M to the quotient of M by a submodule p as a linear map.
Equations
- p.mkQ = { toFun := Submodule.Quotient.mk, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Two LinearMaps from a quotient module are equal if their compositions with
submodule.mkQ are equal.
See note [partially-applied ext lemmas].
The map from the quotient of M by a submodule p to M₂ induced by a linear map f : M → M₂
vanishing on p, as a linear map.
Equations
- p.liftQ f h = let __src := QuotientAddGroup.lift p.toAddSubgroup f.toAddMonoidHom h; { toFun := (↑__src).toFun, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Special case of submodule.liftQ when p is the span of x. In this case, the condition on
f simply becomes vanishing at x.
Equations
- Submodule.liftQSpanSingleton x f h = (Submodule.span R {x}).liftQ f ⋯
Instances For
The map from the quotient of M by submodule p to the quotient of M₂ by submodule q along
f : M → M₂ is linear.
Equations
- p.mapQ q f h = p.liftQ (q.mkQ.comp f) ⋯
Instances For
Given submodules p ⊆ M, p₂ ⊆ M₂, p₃ ⊆ M₃ and maps f : M → M₂, g : M₂ → M₃ inducing
mapQ f : M ⧸ p → M₂ ⧸ p₂ and mapQ g : M₂ ⧸ p₂ → M₃ ⧸ p₃ then
mapQ (g ∘ f) = (mapQ g) ∘ (mapQ f).
The correspondence theorem for modules: there is an order isomorphism between submodules of the
quotient of M by p, and submodules of M larger than p.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The ordering on submodules of the quotient of M by p embeds into the ordering on submodules
of M.
Equations
- p.comapMkQOrderEmbedding = (RelIso.toRelEmbedding p.comapMkQRelIso).trans (Subtype.relEmbedding (fun (x x_1 : Submodule R M) => x ≤ x_1) fun (p' : Submodule R M) => p ≤ p')
Instances For
If P is a submodule of M and Q a submodule of N,
and f : M ≃ₗ N maps P to Q, then M ⧸ P is equivalent to N ⧸ Q.
Equations
- Submodule.Quotient.equiv P Q f hf = let __src := P.mapQ Q ↑f ⋯; { toFun := ⇑(P.mapQ Q ↑f ⋯), map_add' := ⋯, map_smul' := ⋯, invFun := ⇑(Q.mapQ P ↑f.symm ⋯), left_inv := ⋯, right_inv := ⋯ }
Instances For
An epimorphism is surjective.
If p = ⊥, then M / p ≃ₗ[R] M.
Equations
- p.quotEquivOfEqBot hp = LinearEquiv.ofLinear (p.liftQ LinearMap.id ⋯) p.mkQ ⋯ ⋯
Instances For
Quotienting by equal submodules gives linearly equivalent quotients.
Equations
- p.quotEquivOfEq p' h = let __src := Quotient.congr (Equiv.refl M) ⋯; { toFun := __src.toFun, map_add' := ⋯, map_smul' := ⋯, invFun := __src.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
Given modules M, M₂ over a commutative ring, together with submodules p ⊆ M, q ⊆ M₂,
the natural map $\{f ∈ Hom(M, M₂) | f(p) ⊆ q \} \to Hom(M/p, M₂/q)$ is linear.
Equations
- p.mapQLinear q = { toFun := fun (f : ↥(p.compatibleMaps q)) => p.mapQ q ↑f ⋯, map_add' := ⋯, map_smul' := ⋯ }