Documentation

Mathlib.Algebra.Module.LinearMap.Basic

Further results on (semi)linear maps #

def LinearMap.ltoFun (R : Type u_6) (M : Type u_7) (N : Type u_8) (A : Type u_9) [Semiring R] [Semiring A] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] [Module A N] [SMulCommClass R A N] :

A-linearly coerce an R-linear map from M to N to a function, when N has commuting R-module and A-module structures.

Instances For
    @[simp]
    theorem LinearMap.ltoFun_apply {R : Type u_6} {M : Type u_7} {N : Type u_8} {A : Type u_9} [Semiring R] [Semiring A] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] [Module A N] [SMulCommClass R A N] {f : M โ†’โ‚—[R] N} :
    (ltoFun R M N A) f = โ‡‘f
    @[implicit_reducible]
    instance LinearMap.instSMulDomMulAct {R : Type u_1} {R' : Type u_2} {M : Type u_4} {M' : Type u_5} [Semiring R] [Semiring R'] [AddCommMonoid M] [AddCommMonoid M'] [Module R M] [Module R' M'] {ฯƒโ‚โ‚‚ : R โ†’+* R'} {S' : Type u_6} [Monoid S'] [DistribMulAction S' M] [SMulCommClass R S' M] :
    SMul S'แตˆแตแตƒ (M โ†’โ‚›โ‚—[ฯƒโ‚โ‚‚] M')
    theorem DomMulAct.smul_linearMap_apply {R : Type u_1} {R' : Type u_2} {M : Type u_4} {M' : Type u_5} [Semiring R] [Semiring R'] [AddCommMonoid M] [AddCommMonoid M'] [Module R M] [Module R' M'] {ฯƒโ‚โ‚‚ : R โ†’+* R'} {S' : Type u_6} [Monoid S'] [DistribMulAction S' M] [SMulCommClass R S' M] (a : S'แตˆแตแตƒ) (f : M โ†’โ‚›โ‚—[ฯƒโ‚โ‚‚] M') (x : M) :
    (a โ€ข f) x = f (mk.symm a โ€ข x)
    @[simp]
    theorem DomMulAct.mk_smul_linearMap_apply {R : Type u_1} {R' : Type u_2} {M : Type u_4} {M' : Type u_5} [Semiring R] [Semiring R'] [AddCommMonoid M] [AddCommMonoid M'] [Module R M] [Module R' M'] {ฯƒโ‚โ‚‚ : R โ†’+* R'} {S' : Type u_6} [Monoid S'] [DistribMulAction S' M] [SMulCommClass R S' M] (a : S') (f : M โ†’โ‚›โ‚—[ฯƒโ‚โ‚‚] M') (x : M) :
    (mk a โ€ข f) x = f (a โ€ข x)
    theorem DomMulAct.coe_smul_linearMap {R : Type u_1} {R' : Type u_2} {M : Type u_4} {M' : Type u_5} [Semiring R] [Semiring R'] [AddCommMonoid M] [AddCommMonoid M'] [Module R M] [Module R' M'] {ฯƒโ‚โ‚‚ : R โ†’+* R'} {S' : Type u_6} [Monoid S'] [DistribMulAction S' M] [SMulCommClass R S' M] (a : S'แตˆแตแตƒ) (f : M โ†’โ‚›โ‚—[ฯƒโ‚โ‚‚] M') :
    โ‡‘(a โ€ข f) = a โ€ข โ‡‘f
    instance LinearMap.instSMulCommClassDomMulAct {R : Type u_1} {R' : Type u_2} {M : Type u_4} {M' : Type u_5} [Semiring R] [Semiring R'] [AddCommMonoid M] [AddCommMonoid M'] [Module R M] [Module R' M'] {ฯƒโ‚โ‚‚ : R โ†’+* R'} {S' : Type u_6} {T' : Type u_7} [Monoid S'] [DistribMulAction S' M] [SMulCommClass R S' M] [Monoid T'] [DistribMulAction T' M] [SMulCommClass R T' M] [SMulCommClass S' T' M] :
    @[implicit_reducible]
    instance LinearMap.instDistribMulActionDomMulActOfSMulCommClass {R : Type u_1} {R' : Type u_2} {M : Type u_4} {M' : Type u_5} [Semiring R] [Semiring R'] [AddCommMonoid M] [AddCommMonoid M'] [Module R M] [Module R' M'] {ฯƒโ‚โ‚‚ : R โ†’+* R'} {S' : Type u_6} [Monoid S'] [DistribMulAction S' M] [SMulCommClass R S' M] :
    instance LinearMap.instIsTorsionFree {R : Type u_1} {R' : Type u_2} {S : Type u_3} {M : Type u_4} {M' : Type u_5} [Semiring R] [Semiring R'] [AddCommMonoid M] [AddCommMonoid M'] [Module R M] [Module R' M'] {ฯƒโ‚โ‚‚ : R โ†’+* R'} [Semiring S] [Module S M'] [SMulCommClass R' S M'] [Module.IsTorsionFree S M'] :
    Module.IsTorsionFree S (M โ†’โ‚›โ‚—[ฯƒโ‚โ‚‚] M')
    @[implicit_reducible]
    instance LinearMap.instModuleDomMulActOfSMulCommClass {R : Type u_1} {R' : Type u_2} {S : Type u_3} {M : Type u_4} {M' : Type u_5} [Semiring R] [Semiring R'] [AddCommMonoid M] [AddCommMonoid M'] [Module R M] [Module R' M'] {ฯƒโ‚โ‚‚ : R โ†’+* R'} [Semiring S] [Module S M] [SMulCommClass R S M] :
    @[simp]
    theorem LinearMap.mulLeft_mul (R : Type u_6) (A : Type u_7) [Semiring R] [NonUnitalSemiring A] [Module R A] [SMulCommClass R A A] (a b : A) :
    @[simp]
    theorem LinearMap.mulRight_mul (R : Type u_6) (A : Type u_7) [Semiring R] [NonUnitalSemiring A] [Module R A] [IsScalarTower R A A] (a b : A) :
    @[simp]
    theorem LinearMap.mulLeft_inj {R : Type u_6} {A : Type u_7} [Semiring R] [NonAssocSemiring A] [Module R A] [SMulCommClass R A A] {a b : A} :
    mulLeft R a = mulLeft R b โ†” a = b
    @[simp]
    theorem LinearMap.mulRight_inj {R : Type u_6} {A : Type u_7} [Semiring R] [NonAssocSemiring A] [Module R A] [IsScalarTower R A A] {a b : A} :
    mulRight R a = mulRight R b โ†” a = b
    @[simp]
    theorem LinearMap.mulLeft_one (R : Type u_6) (A : Type u_7) [Semiring R] [NonAssocSemiring A] [Module R A] [SMulCommClass R A A] :
    mulLeft R 1 = id
    @[simp]
    theorem LinearMap.mulLeft_eq_zero_iff (R : Type u_6) (A : Type u_7) [Semiring R] [NonAssocSemiring A] [Module R A] [SMulCommClass R A A] (a : A) :
    mulLeft R a = 0 โ†” a = 0
    @[simp]
    theorem LinearMap.mulRight_one (R : Type u_6) (A : Type u_7) [Semiring R] [NonAssocSemiring A] [Module R A] [IsScalarTower R A A] :
    mulRight R 1 = id
    @[simp]
    theorem LinearMap.mulRight_eq_zero_iff (R : Type u_6) (A : Type u_7) [Semiring R] [NonAssocSemiring A] [Module R A] [IsScalarTower R A A] (a : A) :
    mulRight R a = 0 โ†” a = 0
    def Sum.elimZeroLeft {ฮน : Type u_6} {ฮบ : Type u_7} {R : Type u_8} [Semiring R] :
    (ฮน โ†’ R) โ†’โ‚—[R] ฮบ โŠ• ฮน โ†’ R

    The map Sum.elim specialised with zero in the first argument, as a linear map.

    Instances For
      @[simp]
      theorem Sum.elimZeroLeft_apply {ฮน : Type u_6} {ฮบ : Type u_7} {R : Type u_8} [Semiring R] (g : ฮน โ†’ R) (aโœ : ฮบ โŠ• ฮน) :
      elimZeroLeft g aโœ = Sum.elim 0 g aโœ
      def Sum.elimZeroRight {ฮน : Type u_6} {ฮบ : Type u_7} {R : Type u_8} [Semiring R] :
      (ฮน โ†’ R) โ†’โ‚—[R] ฮน โŠ• ฮบ โ†’ R

      The map Sum.elim specialised with zero in the second argument, as a linear map.

      Instances For
        @[simp]
        theorem Sum.elimZeroRight_apply {ฮน : Type u_6} {ฮบ : Type u_7} {R : Type u_8} [Semiring R] (f : ฮน โ†’ R) (aโœ : ฮน โŠ• ฮบ) :
        elimZeroRight f aโœ = Sum.elim f 0 aโœ