Documentation

Mathlib.LinearAlgebra.Finsupp.Pi

Properties of the module α →₀ M #

Tags #

function with finite support, module, linear algebra

noncomputable def Finsupp.LinearEquiv.finsuppUnique (R : Type u_1) (M : Type u_3) [AddCommMonoid M] [Semiring R] [Module R M] (α : Type u_4) [Unique α] :
(α →₀ M) ≃ₗ[R] M

If α has a unique term, then the type of finitely supported functions α →₀ M is R-linearly equivalent to M.

Equations
    Instances For
      @[simp]
      theorem Finsupp.LinearEquiv.finsuppUnique_apply {R : Type u_1} {M : Type u_3} [AddCommMonoid M] [Semiring R] [Module R M] (α : Type u_4) [Unique α] (f : α →₀ M) :
      (finsuppUnique R M α) f = f default
      @[simp]
      theorem Finsupp.LinearEquiv.finsuppUnique_symm_apply {R : Type u_1} {M : Type u_3} [AddCommMonoid M] [Semiring R] [Module R M] {α : Type u_4} [Unique α] (m : M) :
      def Finsupp.lcoeFun {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] :
      (α →₀ M) →ₗ[R] αM

      Forget that a function is finitely supported.

      This is the linear version of Finsupp.toFun.

      Equations
        Instances For
          @[simp]
          theorem Finsupp.lcoeFun_apply {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (f : α →₀ M) :
          lcoeFun f = f
          @[simp]
          theorem Finsupp.lcoeFun_comp_lsingle {α : Type u_1} {M : Type u_2} {R : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] [DecidableEq α] (x : α) :
          lcoeFun ∘ₗ lsingle x = LinearMap.single R (fun (x : α) => M) x
          def LinearMap.prodOfFinsuppNat {R : Type u_1} {M : Type u_2} {P : Type u_4} [Semiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid P] [Module R P] (f : P × M →ₗ[R] M) :

          A linear map from a product module P × M to M induces a linear map from P^(ℕ) to M, where the nth component is given by P —ι₁→ P × M composed with P × M —f→ M —ι₂→ P × M n times.

          Equations
            Instances For
              theorem LinearMap.fst_prodOfFinsuppNat {R : Type u_1} {M : Type u_2} {P : Type u_4} [Semiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid P] [Module R P] (f : P × M →ₗ[R] M) (x : →₀ P) :
              (f.prodOfFinsuppNat x).1 = x 0
              theorem LinearMap.exists_finsupp_nat_of_prod_injective {R : Type u_1} {M : Type u_2} {P : Type u_4} [Semiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid P] [Module R P] {f : P × M →ₗ[R] M} (inj : Function.Injective f) :
              ∃ (g : ( →₀ P) →ₗ[R] M), Function.Injective g
              theorem LinearMap.exists_finsupp_nat_of_fin_fun_injective {R : Type u_1} {P : Type u_4} [Semiring R] [AddCommMonoid P] [Module R P] {n : } {f : (Fin (n + 1)P) →ₗ[R] Fin nP} (inj : Function.Injective f) :
              ∃ (g : ( →₀ P) →ₗ[R] Fin nP), Function.Injective g
              def LinearMap.splittingOfFunOnFintypeSurjective {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {α : Type u_5} [Finite α] (f : M →ₗ[R] αR) (s : Function.Surjective f) :
              (αR) →ₗ[R] M

              A surjective linear map to functions on a finite type has a splitting.

              Equations
                Instances For
                  def Finsupp.submodule {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {α : Type u_5} (S : αSubmodule R M) :
                  Submodule R (α →₀ M)

                  Given a family Sᵢ of R-submodules of M indexed by a type α, this is the R-submodule of α →₀ M of functions f such that f i ∈ Sᵢ for all i : α.

                  Equations
                    Instances For
                      @[simp]
                      theorem Finsupp.mem_submodule_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {α : Type u_5} (S : αSubmodule R M) (x : α →₀ M) :
                      x submodule S ∀ (i : α), x i S i
                      theorem Finsupp.ker_mapRange {R : Type u_1} {M : Type u_2} {N : Type u_3} [Semiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] (f : M →ₗ[R] N) (I : Type u_6) :
                      (mapRange.linearMap f).ker = submodule fun (x : I) => f.ker
                      theorem Finsupp.range_mapRange_linearMap {R : Type u_1} {M : Type u_2} {N : Type u_3} [Semiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] (f : M →ₗ[R] N) (hf : f.ker = ) (I : Type u_6) :
                      noncomputable def FunOnFinite.map {M : Type u_5} [AddCommMonoid M] {X : Type u_6} {Y : Type u_7} [Finite X] [Finite Y] (f : XY) (s : XM) :
                      YM

                      The map (X → M) → (Y → M) induced by a map X → Y between finite types.

                      Equations
                        Instances For
                          theorem FunOnFinite.map_apply_apply {M : Type u_5} [AddCommMonoid M] {X : Type u_6} {Y : Type u_7} [Fintype X] [Finite Y] [DecidableEq Y] (f : XY) (s : XM) (y : Y) :
                          map f s y = x : X with f x = y, s x
                          @[simp]
                          theorem FunOnFinite.map_piSingle {M : Type u_5} [AddCommMonoid M] {X : Type u_6} {Y : Type u_7} [Finite X] [Finite Y] [DecidableEq X] [DecidableEq Y] (f : XY) (x : X) (m : M) :
                          map f (Pi.single x m) = Pi.single (f x) m
                          theorem FunOnFinite.map_comp {M : Type u_5} [AddCommMonoid M] {X : Type u_6} {Y : Type u_7} {Z : Type u_8} [Finite X] [Finite Y] [Finite Z] (g : YZ) (f : XY) :
                          map (g f) = map g map f
                          noncomputable def FunOnFinite.linearMap (R : Type u_5) (M : Type u_6) [Semiring R] [AddCommMonoid M] [Module R M] {X : Type u_7} {Y : Type u_8} [Finite X] [Finite Y] (f : XY) :
                          (XM) →ₗ[R] YM

                          The linear map (X → M) →ₗ[R] (Y → M) induced by a map X → Y between finite types.

                          Equations
                            Instances For
                              theorem FunOnFinite.linearMap_apply_apply (R : Type u_5) (M : Type u_6) [Semiring R] [AddCommMonoid M] [Module R M] {X : Type u_7} {Y : Type u_8} [Fintype X] [Finite Y] [DecidableEq Y] (f : XY) (s : XM) (y : Y) :
                              (linearMap R M f) s y = {x : X | f x = y}.sum s
                              @[simp]
                              theorem FunOnFinite.linearMap_piSingle (R : Type u_5) (M : Type u_6) [Semiring R] [AddCommMonoid M] [Module R M] {X : Type u_7} {Y : Type u_8} [Finite X] [Finite Y] [DecidableEq X] [DecidableEq Y] (f : XY) (x : X) (m : M) :
                              (linearMap R M f) (Pi.single x m) = Pi.single (f x) m
                              @[simp]
                              theorem FunOnFinite.linearMap_id (R : Type u_5) (M : Type u_6) [Semiring R] [AddCommMonoid M] [Module R M] (X : Type u_7) [Finite X] :
                              theorem FunOnFinite.linearMap_comp (R : Type u_5) (M : Type u_6) [Semiring R] [AddCommMonoid M] [Module R M] {X : Type u_7} {Y : Type u_8} {Z : Type u_9} [Finite X] [Finite Y] [Finite Z] (f : XY) (g : YZ) :
                              linearMap R M (g f) = linearMap R M g ∘ₗ linearMap R M f