Bases of submodules #
theorem
Module.Basis.eq_bot_of_rank_eq_zero
{ι : Type u_1}
{R : Type u_3}
{M : Type u_5}
[Ring R]
[AddCommGroup M]
[Module R M]
[IsDomain R]
(b : Basis ι R M)
(N : Submodule R M)
(rank_eq : ∀ {m : ℕ} (v : Fin m → ↥N), LinearIndependent R (Subtype.val ∘ v) → m = 0)
:
def
Submodule.inductionOnRankAux
{ι : Type u_1}
{R : Type u_3}
{M : Type u_5}
[Ring R]
[IsDomain R]
[AddCommGroup M]
[Module R M]
(b : Module.Basis ι R M)
(P : Submodule R M → Sort u_7)
(ih :
(N : Submodule R M) →
((N' : Submodule R M) → N' ≤ N → (x : M) → x ∈ N → (∀ (c : R), ∀ y ∈ N', c • x + y = 0 → c = 0) → P N') → P N)
(n : ℕ)
(N : Submodule R M)
(rank_le : ∀ {m : ℕ} (v : Fin m → ↥N), LinearIndependent R (Subtype.val ∘ v) → m ≤ n)
:
P N
If N is a submodule with finite rank, do induction on adjoining a linear independent
element to a submodule.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Module.Basis.mem_center_iff
{ι : Type u_1}
{R : Type u_3}
{A : Type u_7}
[Semiring R]
[NonUnitalNonAssocSemiring A]
[Module R A]
[SMulCommClass R A A]
[SMulCommClass R R A]
[IsScalarTower R A A]
(b : Basis ι R A)
{z : A}
:
An element of a non-unital-non-associative algebra is in the center exactly when it commutes with the basis elements.
noncomputable def
Module.Basis.restrictScalars
{ι : Type u_1}
(R : Type u_3)
{M : Type u_5}
{S : Type u_7}
[CommRing R]
[IsDomain R]
[Ring S]
[Nontrivial S]
[AddCommGroup M]
[Algebra R S]
[Module S M]
[Module R M]
[IsScalarTower R S M]
[IsTorsionFree R S]
(b : Basis ι S M)
:
Basis ι R ↥(Submodule.span R (Set.range ⇑b))
Let b be an S-basis of M. Let R be a CommRing such that Algebra R S has no zero smul
divisors, then the submodule of M spanned by b over R admits b as an R-basis.
Equations
Instances For
@[simp]
theorem
Module.Basis.restrictScalars_apply
{ι : Type u_1}
(R : Type u_3)
{M : Type u_5}
{S : Type u_7}
[CommRing R]
[IsDomain R]
[Ring S]
[Nontrivial S]
[AddCommGroup M]
[Algebra R S]
[Module S M]
[Module R M]
[IsScalarTower R S M]
[IsTorsionFree R S]
(b : Basis ι S M)
(i : ι)
:
@[simp]
theorem
Module.Basis.restrictScalars_repr_apply
{ι : Type u_1}
(R : Type u_3)
{M : Type u_5}
{S : Type u_7}
[CommRing R]
[IsDomain R]
[Ring S]
[Nontrivial S]
[AddCommGroup M]
[Algebra R S]
[Module S M]
[Module R M]
[IsScalarTower R S M]
[IsTorsionFree R S]
(b : Basis ι S M)
(m : ↥(Submodule.span R (Set.range ⇑b)))
(i : ι)
:
theorem
Module.Basis.mem_span_iff_repr_mem
{ι : Type u_1}
(R : Type u_3)
{M : Type u_5}
{S : Type u_7}
[CommRing R]
[IsDomain R]
[Ring S]
[Nontrivial S]
[AddCommGroup M]
[Algebra R S]
[Module S M]
[Module R M]
[IsScalarTower R S M]
[IsTorsionFree R S]
(b : Basis ι S M)
(m : M)
:
Let b be an S-basis of M. Then m : M lies in the R-module spanned by b iff all the
coordinates of m on the basis b are in R (see Basis.mem_span for the case R = S).
noncomputable def
Module.Basis.addSubgroupOfClosure
{M : Type u_7}
{R : Type u_8}
[Ring R]
[Nontrivial R]
[IsAddTorsionFree R]
[AddCommGroup M]
[Module R M]
(A : AddSubgroup M)
{ι : Type u_9}
(b : Basis ι R M)
(h : A = AddSubgroup.closure (Set.range ⇑b))
:
Basis ι ℤ ↥(AddSubgroup.toIntSubmodule A)
Let A be a subgroup of an additive commutative group M that is also an R-module.
Construct a basis of A as a ℤ-basis from an R-basis of E that generates A.
Equations
- Module.Basis.addSubgroupOfClosure A b h = (Module.Basis.restrictScalars ℤ b).map (LinearEquiv.ofEq (Submodule.span ℤ (Set.range ⇑b)) (AddSubgroup.toIntSubmodule A) ⋯)
Instances For
@[simp]
theorem
Module.Basis.addSubgroupOfClosure_apply
{M : Type u_7}
{R : Type u_8}
[Ring R]
[Nontrivial R]
[IsAddTorsionFree R]
[AddCommGroup M]
[Module R M]
(A : AddSubgroup M)
{ι : Type u_9}
(b : Basis ι R M)
(h : A = AddSubgroup.closure (Set.range ⇑b))
(i : ι)
:
@[simp]
theorem
Module.Basis.addSubgroupOfClosure_repr_apply
{M : Type u_7}
{R : Type u_8}
[Ring R]
[Nontrivial R]
[IsAddTorsionFree R]
[AddCommGroup M]
[Module R M]
(A : AddSubgroup M)
{ι : Type u_9}
(b : Basis ι R M)
(h : A = AddSubgroup.closure (Set.range ⇑b))
(x : ↥A)
(i : ι)
: