Linear structures on function with finite support ι →₀ M
#
This file contains results on the R
-module structure on functions of finite support from a type
ι
to an R
-module M
, in particular in the case that R
is a field.
noncomputable def
DFinsupp.basis
{ι : Type u_1}
{R : Type u_2}
{M : ι → Type u_3}
[Semiring R]
[(i : ι) → AddCommMonoid (M i)]
[(i : ι) → Module R (M i)]
{η : ι → Type u_4}
(b : (i : ι) → Basis (η i) R (M i))
:
The direct sum of free modules is free.
Note that while this is stated for DFinsupp
not DirectSum
, the types are defeq.
Equations
Instances For
theorem
DFinsupp.linearIndependent_single
{ι : Type u_1}
{R : Type u_2}
{M : ι → Type u_3}
[Semiring R]
[(i : ι) → AddCommMonoid (M i)]
[(i : ι) → Module R (M i)]
[DecidableEq ι]
{φ : ι → Type u_4}
(f : (i : ι) → φ i → M i)
(hf : ∀ (i : ι), LinearIndependent R (f i))
:
LinearIndependent R fun (ix : (i : ι) × φ i) => single ix.fst (f ix.fst ix.snd)
theorem
DFinsupp.linearIndependent_single_iff
{ι : Type u_1}
{R : Type u_2}
{M : ι → Type u_3}
[Semiring R]
[(i : ι) → AddCommMonoid (M i)]
[(i : ι) → Module R (M i)]
[DecidableEq ι]
{φ : ι → Type u_4}
(f : (i : ι) → φ i → M i)
:
(LinearIndependent R fun (ix : (i : ι) × φ i) => single ix.fst (f ix.fst ix.snd)) ↔ ∀ (i : ι), LinearIndependent R (f i)
theorem
Finsupp.linearIndependent_single
{R : Type u_1}
{M : Type u_2}
{ι : Type u_3}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{φ : ι → Type u_4}
(f : (i : ι) → φ i → M)
(hf : ∀ (i : ι), LinearIndependent R (f i))
:
LinearIndependent R fun (ix : (i : ι) × φ i) => single ix.fst (f ix.fst ix.snd)
theorem
Finsupp.linearIndependent_single_iff
{R : Type u_1}
{M : Type u_2}
{ι : Type u_3}
[Semiring R]
[AddCommMonoid M]
[Module R M]
{φ : ι → Type u_4}
{f : (i : ι) → φ i → M}
:
(LinearIndependent R fun (ix : (i : ι) × φ i) => single ix.fst (f ix.fst ix.snd)) ↔ ∀ (i : ι), LinearIndependent R (f i)
@[simp]
@[simp]
theorem
Finsupp.linearIndependent_single_one
(R : Type u_1)
(ι : Type u_3)
[Semiring R]
:
LinearIndependent R fun (i : ι) => single i 1
theorem
Finsupp.linearIndependent_single_of_ne_zero
{R : Type u_1}
{M : Type u_2}
{ι : Type u_3}
[Ring R]
[AddCommGroup M]
[Module R M]
[NoZeroSMulDivisors R M]
{v : ι → M}
(hv : ∀ (i : ι), v i ≠ 0)
:
LinearIndependent R fun (i : ι) => single i (v i)
theorem
Module.Free.trans
{R : Type u_1}
{S : Type u_2}
{M : Type u_3}
[CommSemiring R]
[Semiring S]
[Algebra R S]
[AddCommMonoid M]
[Module R M]
[Module S M]
[IsScalarTower R S M]
[Free S M]
[Free R S]
:
Free R M
TODO: move this section to an earlier file.
theorem
Finset.sum_single_ite
{R : Type u_1}
{n : Type u_3}
[DecidableEq n]
[Semiring R]
[Fintype n]
(a : R)
(i : n)
:
@[simp]
theorem
Basis.equivFun_symm_single
{R : Type u_1}
{M : Type u_2}
{n : Type u_3}
[DecidableEq n]
[Semiring R]
[AddCommMonoid M]
[Module R M]
[Finite n]
(b : Basis n R M)
(i : n)
: