Quotients by products of submodules #
The quotient by a product submodule is the product of the two quotients:
(M × N) ⧸ p.prod q ≃ₗ (M ⧸ p) × (N ⧸ q).
Mathlib has the additive-group form of this statement,
QuotientAddGroup.prodAddEquiv; quotientProdEquiv below records the analogous scalar-compatible
equivalence, which is the form module-theoretic consumers need. There is no submodule form upstream.
Main declarations #
Submodule.quotientProdEquiv:(M × N) ⧸ p.prod q ≃ₗ (M ⧸ p) × (N ⧸ q).Submodule.finrank_quotient_prod: the ranks of the quotients add.
Implementation notes #
quotientProdEquiv is assembled from Submodule.liftQ and LinearMap.coprod, so its computation
rules are stated in the Submodule.Quotient.mk API rather than through AddEquiv wrappers.
The quotient by a product of submodules is the product of the quotients.
This is the module analogue of QuotientAddGroup.prodAddEquiv. Its action and inverse action on
quotient representatives are recorded by quotientProdEquiv_apply_mk and
quotientProdEquiv_symm_apply_mk.
Equations
- p.quotientProdEquiv q = LinearEquiv.ofLinearMap (Submodule.quotientProdMap✝ p q) (Submodule.quotientProdInvMap✝ p q) ⋯ ⋯
Instances For
The quotient by a product of submodules has rank the sum of the two quotients' ranks.