Submodules of a module #
In this file we define
-
Submodule R M: a subset of aModuleMthat contains zero and is closed with respect to addition and scalar multiplication. -
Subspace k M: an abbreviation forSubmoduleassuming thatkis aField.
Tags #
submodule, subspace, linear map
A submodule of a module is one which is closed under vector operations. This is a sufficient condition for the subset of vectors in the submodule to themselves form a module.
Instances For
Reinterpret a Submodule as a SubMulAction.
Equations
- Submodule.toSubMulAction self = { carrier := self.carrier, smul_mem' := (_ : ∀ (c : R) {x : M}, x ∈ self.carrier → c • x ∈ self.carrier) }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- (_ : AddSubmonoidClass (Submodule R M) M) = (_ : AddSubmonoidClass (Submodule R M) M)
Equations
- (_ : SMulMemClass (Submodule R M) R M) = (_ : SMulMemClass (Submodule R M) R M)
Copy of a submodule with a new carrier equal to the old one. Useful to fix definitional
equalities.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A submodule of a Module is a Module.
Equations
- SMulMemClass.toModule S' = Function.Injective.module R (AddSubmonoidClass.subtype S') (_ : Function.Injective fun (a : ↥S') => ↑a) (_ : ∀ (r : R) (x : ↥S'), ↑(r • x) = r • ↑x)
This can't be an instance because Lean wouldn't know how to find R, but we can still use
this to manually derive Module on specific types.
Equations
- SMulMemClass.toModule' S R' R A s = SMulMemClass.toModule s
Instances For
Equations
- Submodule.add p = { add := fun (x y : ↥p) => { val := ↑x + ↑y, property := (_ : ↑x + ↑y ∈ p) } }
Equations
- Submodule.zero p = { zero := { val := 0, property := (_ : 0 ∈ p) } }
Equations
- Submodule.inhabited p = { default := 0 }
Equations
- Submodule.smul p = { smul := fun (c : S) (x : ↥p) => { val := c • ↑x, property := (_ : c • ↑x ∈ p) } }
Equations
- (_ : IsScalarTower S R ↥p) = (_ : IsScalarTower S R ↥(Submodule.toSubMulAction p))
Equations
- (_ : IsScalarTower S S' ↥p) = (_ : IsScalarTower S S' ↥(Submodule.toSubMulAction p))
Equations
- (_ : IsCentralScalar S ↥p) = (_ : IsCentralScalar S ↥(Submodule.toSubMulAction p))
Equations
- Submodule.addCommMonoid p = let src := AddSubmonoid.toAddCommMonoid p.toAddSubmonoid; AddCommMonoid.mk (_ : ∀ (a b : ↥p.toAddSubmonoid), a + b = b + a)
Equations
- One or more equations did not get rendered due to their size.
Equations
Equations
- (_ : NoZeroSMulDivisors R ↥p) = (_ : NoZeroSMulDivisors R ↥p)
Additive actions by Submodules #
These instances transfer the action by an element m : M of an R-module M written as m +ᵥ a
onto the action by an element s : S of a submodule S : Submodule R M such that
s +ᵥ a = (s : M) +ᵥ a.
These instances work particularly well in conjunction with AddGroup.toAddAction, enabling
s +ᵥ m as an alias for ↑s + m.
Equations
- Submodule.instVAddSubtypeMemSubmoduleInstMembershipSetLike p = AddSubmonoid.vadd p.toAddSubmonoid
Equations
- (_ : VAddCommClass (↥p) α β) = (_ : VAddCommClass (↥p) α β)
Equations
- (_ : FaithfulVAdd (↥p) α) = (_ : FaithfulVAdd (↥p) α)
Equations
- (_ : AddSubgroupClass (Submodule R M) M) = (_ : AddSubgroupClass (Submodule R M) M)
Reinterpret a submodule as an additive subgroup.
Equations
- Submodule.toAddSubgroup p = let src := p.toAddSubmonoid; { toAddSubmonoid := src, neg_mem' := (_ : ∀ {x : M}, x ∈ p → -x ∈ p) }
Instances For
Equations
- Submodule.addCommGroup p = let src := AddSubgroup.toAddCommGroup (Submodule.toAddSubgroup p); AddCommGroup.mk (_ : ∀ (a b : ↥(Submodule.toAddSubgroup p)), a + b = b + a)
A submodule of an OrderedAddCommMonoid is an OrderedAddCommMonoid.
Equations
- One or more equations did not get rendered due to their size.
A submodule of a LinearOrderedAddCommMonoid is a LinearOrderedAddCommMonoid.
Equations
- One or more equations did not get rendered due to their size.
A submodule of an OrderedCancelAddCommMonoid is an OrderedCancelAddCommMonoid.
Equations
- One or more equations did not get rendered due to their size.
A submodule of a LinearOrderedCancelAddCommMonoid is a
LinearOrderedCancelAddCommMonoid.
Equations
- One or more equations did not get rendered due to their size.
A submodule of an OrderedAddCommGroup is an OrderedAddCommGroup.
Equations
- One or more equations did not get rendered due to their size.
A submodule of a LinearOrderedAddCommGroup is a
LinearOrderedAddCommGroup.
Equations
- One or more equations did not get rendered due to their size.