mathlib documentation

linear_algebra.finsupp_vector_space

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.

Furthermore, it contains some facts about isomorphisms of vector spaces from equality of dimension.

TODO #

Move the second half of this file to more appropriate other files.

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) :
basis (Σ (i : ι), φ i) R →₀ M)

The basis on ι →₀ M with basis vectors λ ⟨i, x⟩, single i (b i x).

Equations
@[simp]
theorem finsupp.basis_repr {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) (g : ι →₀ M) (ix : Σ (i : ι), φ i) :
(((finsupp.basis b).repr) g) ix = (((b ix.fst).repr) (g ix.fst)) ix.snd
@[simp]
theorem finsupp.coe_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) :
(finsupp.basis b) = λ (ix : Σ (i : ι), φ i), finsupp.single ix.fst ((b ix.fst) ix.snd)
@[protected]
noncomputable def finsupp.basis_single_one {R : Type u_1} {ι : Type u_3} [semiring R] :
basis ι R →₀ R)

The basis on ι →₀ M with basis vectors λ i, single i 1.

Equations
@[simp]
theorem finsupp.coe_basis_single_one {R : Type u_1} {ι : Type u_3} [semiring R] :
theorem finsupp.dim_eq {K : Type u} {V ι : Type v} [field K] [add_comm_group V] [module K V] :
theorem equiv_of_dim_eq_lift_dim {K : Type u} {V : Type v} {V' : Type w} [field K] [add_comm_group V] [module K V] [add_comm_group V'] [module K V'] (h : (module.rank K V).lift = (module.rank K V').lift) :
noncomputable def equiv_of_dim_eq_dim {K : Type u} {V₁ V₂ : Type v} [field K] [add_comm_group V₁] [module K V₁] [add_comm_group V₂] [module K V₂] (h : module.rank K V₁ = module.rank K V₂) :
V₁ ≃ₗ[K] V₂

Two K-vector spaces are equivalent if their dimension is the same.

Equations
noncomputable def fin_dim_vectorspace_equiv {K : Type u} {V : Type v} [field K] [add_comm_group V] [module K V] (n : ) (hn : module.rank K V = n) :

An n-dimensional K-vector space is equivalent to fin n → K.

Equations
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) :
(b.equiv_fun.symm) ((linear_map.std_basis R (λ (_x : n), R) i) 1) = b i