Documentation

Mathlib.LinearAlgebra.Finsupp.VectorSpace

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)) :
Basis ((i : ι) × η i) R (Π₀ (i : ι), 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
      instance Module.Free.dfinsupp {ι : Type u_1} (R : Type u_2) (M : ιType u_3) [Semiring R] [(i : ι) → AddCommMonoid (M i)] [(i : ι) → Module R (M i)] [∀ (i : ι), Free R (M i)] :
      Free R (Π₀ (i : ι), M i)
      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 : ι) → φ iM 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 : ι) → φ iM 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 : ι) → φ iM) (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 : ι) → φ iM} :
      (LinearIndependent R fun (ix : (i : ι) × φ i) => single ix.fst (f ix.fst ix.snd)) ∀ (i : ι), LinearIndependent R (f i)
      def Finsupp.basis {R : Type u_1} {M : Type u_2} {ι : Type u_3} [Semiring R] [AddCommMonoid 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 fun ⟨i, x⟩ ↦ single i (b i x).

      Equations
        Instances For
          @[simp]
          theorem Finsupp.basis_repr {R : Type u_1} {M : Type u_2} {ι : Type u_3} [Semiring R] [AddCommMonoid 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] [AddCommMonoid M] [Module R M] {φ : ιType u_4} (b : (i : ι) → Basis (φ i) R M) :
          (Finsupp.basis b) = fun (ix : (i : ι) × φ i) => single ix.fst ((b ix.fst) ix.snd)
          instance Module.Free.finsupp (R : Type u_1) (M : Type u_2) (ι : Type u_3) [Semiring R] [AddCommMonoid M] [Module R M] [Free R M] :
          Free R (ι →₀ M)
          def Finsupp.basisSingleOne {R : Type u_1} {ι : Type u_3} [Semiring R] :
          Basis ι R (ι →₀ R)

          The basis on ι →₀ R with basis vectors fun i ↦ single i 1.

          Equations
            Instances For
              @[simp]
              theorem Finsupp.coe_basisSingleOne {R : Type u_1} {ι : Type u_3} [Semiring R] :
              Finsupp.basisSingleOne = fun (i : ι) => single i 1
              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) :
              x : n, Finsupp.single x (if i = x then a else 0) = Finsupp.single i a
              @[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) :
              b.equivFun.symm (Pi.single i 1) = b i
              theorem Basis.repr_smul' {R : Type u_1} {S : Type u_2} [CommRing R] [Ring S] [Algebra R S] {ι : Type u_3} (B : Basis ι R S) (i : ι) (r : R) (s : S) :
              (B.repr ((algebraMap R S) r * s)) i = r * (B.repr s) i

              For any r : R, s : S, we have B.repr ((algebra_map R S r) * s) i = r * (B.repr s i) .