Linear structures on function with finite support ι →₀ M
#
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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.
theorem
finsupp.linear_independent_single
{R : Type u_1}
{M : Type u_2}
{ι : Type u_3}
[ring R]
[add_comm_group M]
[module R M]
{φ : ι → Type u_4}
{f : Π (ι : ι), φ ι → M}
(hf : ∀ (i : ι), linear_independent R (f i)) :
linear_independent R (λ (ix : Σ (i : ι), φ i), finsupp.single ix.fst (f ix.fst ix.snd))
@[protected]
noncomputable
def
finsupp.basis
{R : Type u_1}
{M : Type u_2}
{ι : Type u_3}
[semiring R]
[add_comm_monoid M]
[module R M]
{φ : ι → Type u_4}
(b : Π (i : ι), basis (φ i) R M) :
The basis on ι →₀ M
with basis vectors λ ⟨i, x⟩, single i (b i x)
.
Equations
- finsupp.basis b = {repr := {to_fun := λ (g : ι →₀ M), {support := g.support.sigma (λ (i : ι), (⇑((b i).repr) (⇑g i)).support), to_fun := λ (ix : Σ (i : ι), φ i), ⇑(⇑((b ix.fst).repr) (⇑g ix.fst)) ix.snd, mem_support_to_fun := _}, map_add' := _, map_smul' := _, inv_fun := λ (g : (Σ (i : ι), φ i) →₀ R), {support := finset.image sigma.fst g.support, to_fun := λ (i : ι), ⇑((b i).repr.symm) (finsupp.comap_domain (sigma.mk i) g _), mem_support_to_fun := _}, left_inv := _, right_inv := _}}
@[protected]
The basis on ι →₀ M
with basis vectors λ i, single i 1
.
Equations
- finsupp.basis_single_one = {repr := linear_equiv.refl R (ι →₀ R) (finsupp.module ι R)}
@[simp]
theorem
finsupp.basis_single_one_repr
{R : Type u_1}
{ι : Type u_3}
[semiring R] :
finsupp.basis_single_one.repr = linear_equiv.refl R (ι →₀ R)
@[simp]
theorem
finsupp.coe_basis_single_one
{R : Type u_1}
{ι : Type u_3}
[semiring R] :
⇑finsupp.basis_single_one = λ (i : ι), finsupp.single i 1
TODO: move this section to an earlier file.
theorem
finset.sum_single_ite
{R : Type u_1}
{n : Type u_3}
[decidable_eq n]
[fintype n]
[semiring R]
(a : R)
(i : n) :
finset.univ.sum (λ (x : n), finsupp.single x (ite (i = x) a 0)) = finsupp.single i a
@[simp]
theorem
basis.equiv_fun_symm_std_basis
{R : Type u_1}
{M : Type u_2}
{n : Type u_3}
[decidable_eq n]
[fintype n]
[semiring R]
[add_comm_monoid M]
[module R M]
(b : basis n R M)
(i : n) :