Left submodules over rings
Content created by Šimon Brandner.
Created on 2025-09-01.
Last modified on 2025-09-12.
module linear-algebra.left-submodules-rings where
Imports
open import foundation.action-on-identifications-functions open import foundation.dependent-pair-types open import foundation.identity-types open import foundation.intersections-subtypes open import foundation.propositions open import foundation.sets open import foundation.subtypes open import foundation.universe-levels open import foundation-core.embeddings open import foundation-core.equivalences open import foundation-core.injective-maps open import foundation-core.transport-along-identifications open import group-theory.abelian-groups open import group-theory.endomorphism-rings-abelian-groups open import group-theory.groups open import group-theory.homomorphisms-abelian-groups open import group-theory.homomorphisms-semigroups open import group-theory.monoids open import group-theory.semigroups open import linear-algebra.left-modules-rings open import linear-algebra.subsets-left-modules-rings open import ring-theory.homomorphisms-rings open import ring-theory.rings
Idea
A
left submodule¶
of a left module M
over a
ring R
is a
subset of M
that is closed
under addition and multiplication by a scalar from R
.
Definitions
Submodules over rings
module _ {l1 l2 l3 : Level} (R : Ring l1) (M : left-module-Ring l2 R) (S : subset-left-module-Ring l3 R M) where is-left-submodule-prop-Ring : Prop (l1 ⊔ l2 ⊔ l3) is-left-submodule-prop-Ring = product-Prop ( contains-zero-prop-subset-left-module-Ring R M S) ( product-Prop ( is-closed-under-addition-prop-subset-left-module-Ring R M S) ( is-closed-under-multiplication-by-scalar-prop-subset-left-module-Ring R M S)) is-left-submodule-Ring : UU (l1 ⊔ l2 ⊔ l3) is-left-submodule-Ring = type-Prop is-left-submodule-prop-Ring
The type of submodules of a left module
left-submodule-Ring : {l1 l2 : Level} (l : Level) (R : Ring l1) (M : left-module-Ring l2 R) → UU (lsuc l ⊔ l1 ⊔ l2) left-submodule-Ring l R M = type-subtype (is-left-submodule-prop-Ring {l3 = l} R M) module _ {l1 l2 l3 : Level} (R : Ring l1) (M : left-module-Ring l2 R) (N : left-submodule-Ring l3 R M) where subset-left-submodule-Ring : subset-left-module-Ring l3 R M subset-left-submodule-Ring = inclusion-subtype (is-left-submodule-prop-Ring R M) N type-left-submodule-Ring : UU (l2 ⊔ l3) type-left-submodule-Ring = type-subtype subset-left-submodule-Ring inclusion-left-submodule-Ring : type-left-submodule-Ring → type-left-module-Ring R M inclusion-left-submodule-Ring = inclusion-subtype subset-left-submodule-Ring is-emb-inclusion-left-submodule-Ring : is-emb inclusion-left-submodule-Ring is-emb-inclusion-left-submodule-Ring = is-emb-inclusion-subtype subset-left-submodule-Ring eq-left-submodule-Ring-eq-left-module-Ring : is-injective (inclusion-left-submodule-Ring) eq-left-submodule-Ring-eq-left-module-Ring {x} {y} = map-inv-is-equiv (is-emb-inclusion-left-submodule-Ring x y) is-closed-under-addition-left-submodule-Ring : is-closed-under-addition-subset-left-module-Ring R M subset-left-submodule-Ring is-closed-under-addition-left-submodule-Ring = pr1 (pr2 (pr2 N)) is-closed-under-multiplication-by-scalar-left-submodule-Ring : is-closed-under-multiplication-by-scalar-subset-left-module-Ring R M subset-left-submodule-Ring is-closed-under-multiplication-by-scalar-left-submodule-Ring = pr2 (pr2 (pr2 N)) contains-zero-left-submodule-Ring : contains-zero-subset-left-module-Ring R M subset-left-submodule-Ring contains-zero-left-submodule-Ring = pr1 (pr2 N) unit-left-submodule-Ring : type-left-submodule-Ring pr1 unit-left-submodule-Ring = zero-left-module-Ring R M pr2 unit-left-submodule-Ring = contains-zero-left-submodule-Ring
Properties
The submodule is closed under negation
is-closed-under-negation-left-submodule-Ring : {l1 l2 l3 : Level} (R : Ring l1) (M : left-module-Ring l2 R) (N : left-submodule-Ring l3 R M) → is-closed-under-negation-subset-left-module-Ring R M ( subset-left-submodule-Ring R M N) is-closed-under-negation-left-submodule-Ring R M N x x-in-subset = tr ( λ x' → type-Prop (subset-left-submodule-Ring R M N x')) ( mul-neg-one-left-module-Ring R M x) ( is-closed-under-multiplication-by-scalar-left-submodule-Ring R M N ( neg-one-Ring R) ( x) ( x-in-subset))
The intersection of a family of submodules is a submodule
module _ {l1 l2 l3 : Level} {I : UU l2} (R : Ring l1) (M : left-module-Ring l2 R) (F : I → left-submodule-Ring l3 R M) where subset-intersection-family-of-submodules : subset-left-module-Ring (l2 ⊔ l3) R M subset-intersection-family-of-submodules = intersection-family-of-subtypes ( λ i → subset-left-submodule-Ring R M (F i)) is-left-submodule-intersection-submodule-Ring : is-left-submodule-Ring R M subset-intersection-family-of-submodules pr1 is-left-submodule-intersection-submodule-Ring i = contains-zero-left-submodule-Ring R M (F i) pr1 (pr2 is-left-submodule-intersection-submodule-Ring) x y x-in-subset y-in-subset i = is-closed-under-addition-left-submodule-Ring R M (F i) x y ( x-in-subset i) ( y-in-subset i) pr2 (pr2 is-left-submodule-intersection-submodule-Ring) r x x-in-subset i = is-closed-under-multiplication-by-scalar-left-submodule-Ring R M (F i) r x ( x-in-subset i)
A submodule has the structure of a module
module _ {l1 l2 l3 : Level} (R : Ring l1) (M : left-module-Ring l2 R) (N : left-submodule-Ring l3 R M) where neg-left-submodule-Ring : type-left-submodule-Ring R M N → type-left-submodule-Ring R M N pr1 (neg-left-submodule-Ring x) = neg-left-module-Ring R M (inclusion-left-submodule-Ring R M N x) pr2 (neg-left-submodule-Ring x) = is-closed-under-negation-left-submodule-Ring R M N ( inclusion-left-submodule-Ring R M N x) ( pr2 x) add-left-submodule-Ring : (x y : type-left-submodule-Ring R M N) → type-left-submodule-Ring R M N pr1 (add-left-submodule-Ring x y) = add-left-module-Ring R M ( inclusion-left-submodule-Ring R M N x) ( inclusion-left-submodule-Ring R M N y) pr2 (add-left-submodule-Ring x y) = is-closed-under-addition-left-submodule-Ring R M N ( inclusion-left-submodule-Ring R M N x) ( inclusion-left-submodule-Ring R M N y) ( pr2 x) ( pr2 y) mul-left-submodule-Ring : (r : type-Ring R) (x : type-left-submodule-Ring R M N) → type-left-submodule-Ring R M N pr1 (mul-left-submodule-Ring r x) = mul-left-module-Ring R M r (inclusion-left-submodule-Ring R M N x) pr2 (mul-left-submodule-Ring r x) = is-closed-under-multiplication-by-scalar-left-submodule-Ring R M N r ( inclusion-left-submodule-Ring R M N x) ( pr2 x) associative-add-left-submodule-Ring : (x y z : type-left-submodule-Ring R M N) → add-left-submodule-Ring (add-left-submodule-Ring x y) z = add-left-submodule-Ring x (add-left-submodule-Ring y z) associative-add-left-submodule-Ring x y z = eq-left-submodule-Ring-eq-left-module-Ring R M N ( associative-add-left-module-Ring R M ( inclusion-left-submodule-Ring R M N x) ( inclusion-left-submodule-Ring R M N y) ( inclusion-left-submodule-Ring R M N z)) left-unit-law-add-left-submodule-Ring : (x : type-left-submodule-Ring R M N) → add-left-submodule-Ring (unit-left-submodule-Ring R M N) x = x left-unit-law-add-left-submodule-Ring x = eq-left-submodule-Ring-eq-left-module-Ring R M N ( left-unit-law-add-left-module-Ring R M ( inclusion-left-submodule-Ring R M N x)) right-unit-law-add-left-submodule-Ring : (x : type-left-submodule-Ring R M N) → add-left-submodule-Ring x (unit-left-submodule-Ring R M N) = x right-unit-law-add-left-submodule-Ring x = eq-left-submodule-Ring-eq-left-module-Ring R M N ( right-unit-law-add-left-module-Ring R M ( inclusion-left-submodule-Ring R M N x)) left-inverse-law-add-left-submodule-Ring : (x : type-left-submodule-Ring R M N) → add-left-submodule-Ring (neg-left-submodule-Ring x) x = unit-left-submodule-Ring R M N left-inverse-law-add-left-submodule-Ring x = eq-left-submodule-Ring-eq-left-module-Ring R M N ( left-inverse-law-add-left-module-Ring R M ( inclusion-left-submodule-Ring R M N x)) right-inverse-law-add-left-submodule-Ring : (x : type-left-submodule-Ring R M N) → add-left-submodule-Ring x (neg-left-submodule-Ring x) = unit-left-submodule-Ring R M N right-inverse-law-add-left-submodule-Ring x = eq-left-submodule-Ring-eq-left-module-Ring R M N ( right-inverse-law-add-left-module-Ring R M ( inclusion-left-submodule-Ring R M N x)) commutative-add-left-submodule-Ring : (x y : type-left-submodule-Ring R M N) → add-left-submodule-Ring x y = add-left-submodule-Ring y x commutative-add-left-submodule-Ring x y = eq-left-submodule-Ring-eq-left-module-Ring R M N ( commutative-add-left-module-Ring R M ( inclusion-left-submodule-Ring R M N x) ( inclusion-left-submodule-Ring R M N y)) left-distributive-mul-add-left-submodule-Ring : (r : type-Ring R) (x y : type-left-submodule-Ring R M N) → mul-left-submodule-Ring r (add-left-submodule-Ring x y) = add-left-submodule-Ring ( mul-left-submodule-Ring r x) ( mul-left-submodule-Ring r y) left-distributive-mul-add-left-submodule-Ring r x y = eq-left-submodule-Ring-eq-left-module-Ring R M N ( left-distributive-mul-add-left-module-Ring R M r ( inclusion-left-submodule-Ring R M N x) ( inclusion-left-submodule-Ring R M N y)) right-distributive-mul-add-left-submodule-Ring : (r s : type-Ring R) (x : type-left-submodule-Ring R M N) → mul-left-submodule-Ring (add-Ring R r s) x = add-left-submodule-Ring ( mul-left-submodule-Ring r x) ( mul-left-submodule-Ring s x) right-distributive-mul-add-left-submodule-Ring r s x = eq-left-submodule-Ring-eq-left-module-Ring R M N ( right-distributive-mul-add-left-module-Ring R M r s ( inclusion-left-submodule-Ring R M N x)) associative-mul-left-submodule-Ring : (r s : type-Ring R) (x : type-left-submodule-Ring R M N) → mul-left-submodule-Ring (mul-Ring R r s) x = mul-left-submodule-Ring r (mul-left-submodule-Ring s x) associative-mul-left-submodule-Ring r s x = eq-left-submodule-Ring-eq-left-module-Ring R M N ( associative-mul-left-module-Ring R M r s ( inclusion-left-submodule-Ring R M N x)) left-unit-law-mul-left-submodule-Ring : (x : type-left-submodule-Ring R M N) → mul-left-submodule-Ring (one-Ring R) x = x left-unit-law-mul-left-submodule-Ring x = eq-left-submodule-Ring-eq-left-module-Ring R M N ( left-unit-law-mul-left-module-Ring R M ( inclusion-left-submodule-Ring R M N x)) set-left-submodule-Ring : Set (l2 ⊔ l3) pr1 set-left-submodule-Ring = type-left-submodule-Ring R M N pr2 set-left-submodule-Ring = is-set-type-subtype ( subset-left-submodule-Ring R M N) ( is-set-type-left-module-Ring R M) semigroup-left-submodule-Ring : Semigroup (l2 ⊔ l3) pr1 semigroup-left-submodule-Ring = set-left-submodule-Ring pr1 (pr2 semigroup-left-submodule-Ring) = add-left-submodule-Ring pr2 (pr2 semigroup-left-submodule-Ring) = associative-add-left-submodule-Ring group-left-submodule-Ring : Group (l2 ⊔ l3) pr1 group-left-submodule-Ring = semigroup-left-submodule-Ring pr1 (pr1 (pr2 group-left-submodule-Ring)) = unit-left-submodule-Ring R M N pr1 (pr2 (pr1 (pr2 group-left-submodule-Ring))) = left-unit-law-add-left-submodule-Ring pr2 (pr2 (pr1 (pr2 group-left-submodule-Ring))) = right-unit-law-add-left-submodule-Ring pr1 (pr2 (pr2 group-left-submodule-Ring)) = neg-left-submodule-Ring pr1 (pr2 (pr2 (pr2 group-left-submodule-Ring))) = left-inverse-law-add-left-submodule-Ring pr2 (pr2 (pr2 (pr2 group-left-submodule-Ring))) = right-inverse-law-add-left-submodule-Ring ab-left-submodule-Ring : Ab (l2 ⊔ l3) pr1 ab-left-submodule-Ring = group-left-submodule-Ring pr2 ab-left-submodule-Ring = commutative-add-left-submodule-Ring endomorphism-ring-left-submodule-Ring : Ring (l2 ⊔ l3) endomorphism-ring-left-submodule-Ring = endomorphism-ring-Ab ab-left-submodule-Ring map-hom-left-submodule-Ring : (r : type-Ring R) → hom-Ab ab-left-submodule-Ring ab-left-submodule-Ring pr1 (map-hom-left-submodule-Ring r) = mul-left-submodule-Ring r pr2 (map-hom-left-submodule-Ring r) {x} {y} = left-distributive-mul-add-left-submodule-Ring r x y mul-hom-left-submodule-Ring : hom-Ring R endomorphism-ring-left-submodule-Ring pr1 (pr1 mul-hom-left-submodule-Ring) = map-hom-left-submodule-Ring pr2 (pr1 mul-hom-left-submodule-Ring) {r} {s} = eq-htpy-hom-Ab ab-left-submodule-Ring ab-left-submodule-Ring ( right-distributive-mul-add-left-submodule-Ring r s) pr1 (pr2 mul-hom-left-submodule-Ring) {r} {s} = eq-htpy-hom-Ab ab-left-submodule-Ring ab-left-submodule-Ring ( associative-mul-left-submodule-Ring r s) pr2 (pr2 mul-hom-left-submodule-Ring) = eq-htpy-hom-Ab ab-left-submodule-Ring ab-left-submodule-Ring left-unit-law-mul-left-submodule-Ring left-module-left-submodule-Ring : left-module-Ring (l2 ⊔ l3) R pr1 left-module-left-submodule-Ring = ab-left-submodule-Ring pr2 left-module-left-submodule-Ring = mul-hom-left-submodule-Ring
Recent changes
- 2025-09-12. Šimon Brandner. Improve code quality in the linear algebra namespace (#1544).
- 2025-09-01. Šimon Brandner. Add submodules of left modules over rings (#1511).