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
- self.toSubMulAction = { carrier := self.carrier, smul_mem' := ⋯ }
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Copy of a submodule with a new carrier equal to the old one. Useful to fix definitional
equalities.
Equations
- p.copy s hs = { carrier := s, add_mem' := ⋯, zero_mem' := ⋯, smul_mem' := ⋯ }
Instances For
A submodule of a Module is a Module.
Equations
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
- p.zero = { zero := ⟨0, ⋯⟩ }
Equations
- p.inhabited = { default := 0 }
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- p.addCommMonoid = let __src := p.toAddCommMonoid; AddCommMonoid.mk ⋯
Equations
- p.module = p.module'
Equations
- ⋯ = ⋯
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
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Reinterpret a submodule as an additive subgroup.
Equations
- p.toAddSubgroup = let __src := p.toAddSubmonoid; { toAddSubmonoid := __src, neg_mem' := ⋯ }
Instances For
Equations
- p.addCommGroup = let __src := p.toAddSubgroup.toAddCommGroup; AddCommGroup.mk ⋯
Equations
- SubmoduleClass.module' t = Module.mk ⋯ ⋯