Documentation

Mathlib.Algebra.Module.Equiv.Basic

Further results on (semi)linear equivalences. #

def LinearEquiv.restrictScalars (R : Type u_1) {S : Type u_4} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring S] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module R Mโ‚‚] [Module S M] [Module S Mโ‚‚] [LinearMap.CompatibleSMul M Mโ‚‚ R S] (f : M โ‰ƒโ‚—[S] Mโ‚‚) :
M โ‰ƒโ‚—[R] Mโ‚‚

If M and Mโ‚‚ are both R-semimodules and S-semimodules and R-semimodule structures are defined by an action of R on S (formally, we have two scalar towers), then any S-linear equivalence from M to Mโ‚‚ is also an R-linear equivalence.

See also LinearMap.restrictScalars.

Equations
    Instances For
      @[simp]
      theorem LinearEquiv.restrictScalars_apply (R : Type u_1) {S : Type u_4} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring S] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module R Mโ‚‚] [Module S M] [Module S Mโ‚‚] [LinearMap.CompatibleSMul M Mโ‚‚ R S] (f : M โ‰ƒโ‚—[S] Mโ‚‚) (a : M) :
      (restrictScalars R f) a = f a
      @[simp]
      theorem LinearEquiv.restrictScalars_symm_apply (R : Type u_1) {S : Type u_4} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring S] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module R Mโ‚‚] [Module S M] [Module S Mโ‚‚] [LinearMap.CompatibleSMul M Mโ‚‚ R S] (f : M โ‰ƒโ‚—[S] Mโ‚‚) (a : Mโ‚‚) :
      theorem LinearEquiv.restrictScalars_injective (R : Type u_1) {S : Type u_4} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring S] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module R Mโ‚‚] [Module S M] [Module S Mโ‚‚] [LinearMap.CompatibleSMul M Mโ‚‚ R S] :
      @[simp]
      theorem LinearEquiv.restrictScalars_inj (R : Type u_1) {S : Type u_4} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring S] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module R Mโ‚‚] [Module S M] [Module S Mโ‚‚] [LinearMap.CompatibleSMul M Mโ‚‚ R S] (f g : M โ‰ƒโ‚—[S] Mโ‚‚) :
      theorem LinearEquiv.one_eq_refl {R : Type u_1} {M : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] :
      1 = refl R M
      @[simp]
      theorem LinearEquiv.coe_one {R : Type u_1} {M : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] :
      โ‡‘1 = id
      @[simp]
      theorem LinearEquiv.coe_inv {R : Type u_1} {M : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (f : M โ‰ƒโ‚—[R] M) :
      โ‡‘fโปยน = โ‡‘f.symm
      @[simp]
      theorem LinearEquiv.coe_toLinearMap_one {R : Type u_1} {M : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] :
      โ†‘1 = LinearMap.id
      @[simp]
      theorem LinearEquiv.coe_toLinearMap_mul {R : Type u_1} {M : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] {eโ‚ eโ‚‚ : M โ‰ƒโ‚—[R] M} :
      โ†‘(eโ‚ * eโ‚‚) = โ†‘eโ‚ * โ†‘eโ‚‚
      theorem LinearEquiv.coe_pow {R : Type u_1} {M : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (e : M โ‰ƒโ‚—[R] M) (n : โ„•) :
      โ‡‘(e ^ n) = (โ‡‘e)^[n]
      theorem LinearEquiv.pow_apply {R : Type u_1} {M : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (e : M โ‰ƒโ‚—[R] M) (n : โ„•) (m : M) :
      (e ^ n) m = (โ‡‘e)^[n] m
      @[simp]
      theorem LinearEquiv.mul_apply {R : Type u_1} {M : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (f g : M โ‰ƒโ‚—[R] M) (x : M) :
      (f * g) x = f (g x)

      Restriction from R-linear automorphisms of M to R-linear endomorphisms of M, promoted to a monoid hom.

      Equations
        Instances For

          The tautological action by M โ‰ƒโ‚—[R] M on M.

          This generalizes Function.End.applyMulAction.

          Equations
            @[simp]
            theorem LinearEquiv.smul_def {R : Type u_1} {M : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] (f : M โ‰ƒโ‚—[R] M) (a : M) :
            f โ€ข a = f a
            instance LinearEquiv.apply_smulCommClass {R : Type u_1} {S : Type u_4} {M : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] [SMul S R] [SMul S M] [IsScalarTower S R M] :
            instance LinearEquiv.apply_smulCommClass' {R : Type u_1} {S : Type u_4} {M : Type u_5} [Semiring R] [AddCommMonoid M] [Module R M] [SMul S R] [SMul S M] [IsScalarTower S R M] :
            def LinearEquiv.ofSubsingleton {R : Type u_1} (M : Type u_5) (Mโ‚‚ : Type u_7) [Semiring R] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module R Mโ‚‚] [Subsingleton M] [Subsingleton Mโ‚‚] :
            M โ‰ƒโ‚—[R] Mโ‚‚

            Any two modules that are subsingletons are isomorphic.

            Equations
              Instances For
                @[simp]
                theorem LinearEquiv.ofSubsingleton_symm_apply {R : Type u_1} (M : Type u_5) (Mโ‚‚ : Type u_7) [Semiring R] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module R Mโ‚‚] [Subsingleton M] [Subsingleton Mโ‚‚] (xโœ : Mโ‚‚) :
                (ofSubsingleton M Mโ‚‚).symm xโœ = 0
                @[simp]
                theorem LinearEquiv.ofSubsingleton_apply {R : Type u_1} (M : Type u_5) (Mโ‚‚ : Type u_7) [Semiring R] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module R Mโ‚‚] [Subsingleton M] [Subsingleton Mโ‚‚] (xโœ : M) :
                (ofSubsingleton M Mโ‚‚) xโœ = 0
                def Module.compHom.toLinearEquiv {R : Type u_9} {S : Type u_10} [Semiring R] [Semiring S] (g : R โ‰ƒ+* S) :

                g : R โ‰ƒ+* S is R-linear when the module structure on S is Module.compHom S g .

                Equations
                  Instances For
                    @[simp]
                    theorem Module.compHom.toLinearEquiv_symm_apply {R : Type u_9} {S : Type u_10} [Semiring R] [Semiring S] (g : R โ‰ƒ+* S) (a : S) :
                    @[simp]
                    theorem Module.compHom.toLinearEquiv_apply {R : Type u_9} {S : Type u_10} [Semiring R] [Semiring S] (g : R โ‰ƒ+* S) (a : R) :
                    (toLinearEquiv g) a = g a
                    def DistribMulAction.toLinearEquiv (R : Type u_1) {S : Type u_4} (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] [Group S] [DistribMulAction S M] [SMulCommClass S R M] (s : S) :

                    Each element of the group defines a linear equivalence.

                    This is a stronger version of DistribMulAction.toAddEquiv.

                    Equations
                      Instances For
                        @[simp]
                        theorem DistribMulAction.toLinearEquiv_apply (R : Type u_1) {S : Type u_4} (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] [Group S] [DistribMulAction S M] [SMulCommClass S R M] (s : S) (aโœ : M) :
                        (toLinearEquiv R M s) aโœ = s โ€ข aโœ
                        @[simp]
                        theorem DistribMulAction.toLinearEquiv_symm_apply (R : Type u_1) {S : Type u_4} (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] [Group S] [DistribMulAction S M] [SMulCommClass S R M] (s : S) (aโœ : M) :
                        (toLinearEquiv R M s).symm aโœ = sโปยน โ€ข aโœ
                        def DistribMulAction.toModuleAut (R : Type u_1) {S : Type u_4} (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] [Group S] [DistribMulAction S M] [SMulCommClass S R M] :

                        Each element of the group defines a module automorphism.

                        This is a stronger version of DistribMulAction.toAddAut.

                        Equations
                          Instances For
                            @[simp]
                            theorem DistribMulAction.toModuleAut_apply (R : Type u_1) {S : Type u_4} (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] [Group S] [DistribMulAction S M] [SMulCommClass S R M] (s : S) :
                            theorem LinearEquiv.smul_refl {R : Type u_1} {S : Type u_4} {M : Type u_5} [Semiring R] [Semiring S] [AddCommMonoid M] [Module R M] [Module S M] [SMulCommClass R S M] [SMul S R] [IsScalarTower S R M] (ฮฑ : Sหฃ) :
                            def AddEquiv.toLinearEquiv {R : Type u_1} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module R Mโ‚‚] (e : M โ‰ƒ+ Mโ‚‚) (h : โˆ€ (c : R) (x : M), e (c โ€ข x) = c โ€ข e x) :
                            M โ‰ƒโ‚—[R] Mโ‚‚

                            An additive equivalence whose underlying function preserves smul is a linear equivalence.

                            Equations
                              Instances For
                                @[simp]
                                theorem AddEquiv.coe_toLinearEquiv {R : Type u_1} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module R Mโ‚‚] (e : M โ‰ƒ+ Mโ‚‚) (h : โˆ€ (c : R) (x : M), e (c โ€ข x) = c โ€ข e x) :
                                โ‡‘(e.toLinearEquiv h) = โ‡‘e
                                @[simp]
                                theorem AddEquiv.coe_toLinearEquiv_symm {R : Type u_1} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module R Mโ‚‚] (e : M โ‰ƒ+ Mโ‚‚) (h : โˆ€ (c : R) (x : M), e (c โ€ข x) = c โ€ข e x) :
                                โ‡‘(e.toLinearEquiv h).symm = โ‡‘e.symm
                                def AddEquiv.toNatLinearEquiv {M : Type u_5} {Mโ‚‚ : Type u_7} [AddCommMonoid M] [AddCommMonoid Mโ‚‚] (e : M โ‰ƒ+ Mโ‚‚) :

                                An additive equivalence between commutative additive monoids is a linear equivalence between โ„•-modules

                                Equations
                                  Instances For
                                    @[simp]
                                    theorem AddEquiv.coe_toNatLinearEquiv {M : Type u_5} {Mโ‚‚ : Type u_7} [AddCommMonoid M] [AddCommMonoid Mโ‚‚] (e : M โ‰ƒ+ Mโ‚‚) :
                                    โ‡‘e.toNatLinearEquiv = โ‡‘e
                                    @[simp]
                                    theorem AddEquiv.coe_symm_toNatLinearEquiv {M : Type u_5} {Mโ‚‚ : Type u_7} [AddCommMonoid M] [AddCommMonoid Mโ‚‚] (e : M โ‰ƒ+ Mโ‚‚) :
                                    โ‡‘e.toNatLinearEquiv.symm = โ‡‘e.symm
                                    @[simp]
                                    theorem AddEquiv.toNatLinearEquiv_toAddEquiv {M : Type u_5} {Mโ‚‚ : Type u_7} [AddCommMonoid M] [AddCommMonoid Mโ‚‚] (e : M โ‰ƒ+ Mโ‚‚) :
                                    โ†‘e.toNatLinearEquiv = e
                                    @[simp]
                                    theorem LinearEquiv.toAddEquiv_toNatLinearEquiv {M : Type u_5} {Mโ‚‚ : Type u_7} [AddCommMonoid M] [AddCommMonoid Mโ‚‚] (e : M โ‰ƒโ‚—[โ„•] Mโ‚‚) :
                                    (โ†‘e).toNatLinearEquiv = e
                                    @[simp]
                                    theorem AddEquiv.toNatLinearEquiv_symm {M : Type u_5} {Mโ‚‚ : Type u_7} [AddCommMonoid M] [AddCommMonoid Mโ‚‚] (e : M โ‰ƒ+ Mโ‚‚) :
                                    @[simp]
                                    theorem AddEquiv.toNatLinearEquiv_trans {M : Type u_5} {Mโ‚‚ : Type u_7} {Mโ‚ƒ : Type u_8} [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [AddCommMonoid Mโ‚ƒ] (e : M โ‰ƒ+ Mโ‚‚) (eโ‚‚ : Mโ‚‚ โ‰ƒ+ Mโ‚ƒ) :
                                    def AddEquiv.toIntLinearEquiv {M : Type u_5} {Mโ‚‚ : Type u_7} [AddCommGroup M] [AddCommGroup Mโ‚‚] {modM : Module โ„ค M} {modMโ‚‚ : Module โ„ค Mโ‚‚} (e : M โ‰ƒ+ Mโ‚‚) :

                                    An additive equivalence between commutative additive groups is a linear equivalence between โ„ค-modules

                                    Equations
                                      Instances For
                                        @[simp]
                                        theorem AddEquiv.coe_toIntLinearEquiv {M : Type u_5} {Mโ‚‚ : Type u_7} [AddCommGroup M] [AddCommGroup Mโ‚‚] {modM : Module โ„ค M} {modMโ‚‚ : Module โ„ค Mโ‚‚} (e : M โ‰ƒ+ Mโ‚‚) :
                                        โ‡‘e.toIntLinearEquiv = โ‡‘e
                                        @[simp]
                                        theorem AddEquiv.coe_symm_toIntLinearEquiv {M : Type u_5} {Mโ‚‚ : Type u_7} [AddCommGroup M] [AddCommGroup Mโ‚‚] {modM : Module โ„ค M} {modMโ‚‚ : Module โ„ค Mโ‚‚} (e : M โ‰ƒ+ Mโ‚‚) :
                                        โ‡‘e.toIntLinearEquiv.symm = โ‡‘e.symm
                                        @[simp]
                                        theorem AddEquiv.toIntLinearEquiv_toAddEquiv {M : Type u_5} {Mโ‚‚ : Type u_7} [AddCommGroup M] [AddCommGroup Mโ‚‚] {modM : Module โ„ค M} {modMโ‚‚ : Module โ„ค Mโ‚‚} (e : M โ‰ƒ+ Mโ‚‚) :
                                        โ†‘e.toIntLinearEquiv = e
                                        @[simp]
                                        theorem LinearEquiv.toAddEquiv_toIntLinearEquiv {M : Type u_5} {Mโ‚‚ : Type u_7} [AddCommGroup M] [AddCommGroup Mโ‚‚] {modM : Module โ„ค M} {modMโ‚‚ : Module โ„ค Mโ‚‚} (e : M โ‰ƒโ‚—[โ„ค] Mโ‚‚) :
                                        (โ†‘e).toIntLinearEquiv = e
                                        @[simp]
                                        theorem AddEquiv.toIntLinearEquiv_symm {M : Type u_5} {Mโ‚‚ : Type u_7} [AddCommGroup M] [AddCommGroup Mโ‚‚] {modM : Module โ„ค M} {modMโ‚‚ : Module โ„ค Mโ‚‚} (e : M โ‰ƒ+ Mโ‚‚) :
                                        @[simp]
                                        theorem AddEquiv.toIntLinearEquiv_trans {M : Type u_5} {Mโ‚‚ : Type u_7} {Mโ‚ƒ : Type u_8} [AddCommGroup M] [AddCommGroup Mโ‚‚] [AddCommGroup Mโ‚ƒ] {modM : Module โ„ค M} {modMโ‚‚ : Module โ„ค Mโ‚‚} {modMโ‚ƒ : Module โ„ค Mโ‚ƒ} (e : M โ‰ƒ+ Mโ‚‚) (eโ‚‚ : Mโ‚‚ โ‰ƒ+ Mโ‚ƒ) :
                                        def LinearMap.ringLmapEquivSelf (R : Type u_1) (S : Type u_4) (M : Type u_5) [Semiring R] [Semiring S] [AddCommMonoid M] [Module R M] [Module S M] [SMulCommClass R S M] :

                                        The equivalence between R-linear maps from R to M, and points of M itself. This says that the forgetful functor from R-modules to types is representable, by R.

                                        This is an S-linear equivalence, under the assumption that S acts on M commuting with R. When R is commutative, we can take this to be the usual action with S = R. Otherwise, S = โ„• shows that the equivalence is additive. See note [bundled maps over different rings].

                                        Equations
                                          Instances For
                                            @[simp]
                                            theorem LinearMap.ringLmapEquivSelf_apply (R : Type u_1) (S : Type u_4) (M : Type u_5) [Semiring R] [Semiring S] [AddCommMonoid M] [Module R M] [Module S M] [SMulCommClass R S M] (f : R โ†’โ‚—[R] M) :
                                            (ringLmapEquivSelf R S M) f = f 1
                                            @[simp]
                                            theorem LinearMap.ringLmapEquivSelf_symm_apply (R : Type u_1) (S : Type u_4) (M : Type u_5) [Semiring R] [Semiring S] [AddCommMonoid M] [Module R M] [Module S M] [SMulCommClass R S M] (x : M) :

                                            The R-linear equivalence between additive morphisms A โ†’+ B and โ„•-linear morphisms A โ†’โ‚—[โ„•] B.

                                            Equations
                                              Instances For
                                                @[simp]
                                                theorem addMonoidHomLequivNat_apply {A : Type u_9} {B : Type u_10} (R : Type u_11) [Semiring R] [AddCommMonoid A] [AddCommMonoid B] [Module R B] (f : A โ†’+ B) :

                                                The R-linear equivalence between additive morphisms A โ†’+ B and โ„ค-linear morphisms A โ†’โ‚—[โ„ค] B.

                                                Equations
                                                  Instances For
                                                    @[simp]
                                                    theorem addMonoidHomLequivInt_apply {A : Type u_9} {B : Type u_10} (R : Type u_11) [Semiring R] [AddCommGroup A] [AddCommGroup B] [Module R B] (f : A โ†’+ B) :

                                                    Ring equivalence between additive group endomorphisms of an AddCommGroup A and โ„ค-module endomorphisms of A.

                                                    Equations
                                                      Instances For
                                                        instance LinearEquiv.instZero {R : Type u_1} {Rโ‚‚ : Type u_2} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring Rโ‚‚] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module Rโ‚‚ Mโ‚‚] {ฯƒโ‚โ‚‚ : R โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* R} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [Subsingleton M] [Subsingleton Mโ‚‚] :
                                                        Zero (M โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚)

                                                        Between two zero modules, the zero map is an equivalence.

                                                        Equations
                                                          @[simp]
                                                          theorem LinearEquiv.zero_symm {R : Type u_1} {Rโ‚‚ : Type u_2} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring Rโ‚‚] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module Rโ‚‚ Mโ‚‚] {ฯƒโ‚โ‚‚ : R โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* R} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [Subsingleton M] [Subsingleton Mโ‚‚] :
                                                          symm 0 = 0
                                                          @[simp]
                                                          theorem LinearEquiv.coe_zero {R : Type u_1} {Rโ‚‚ : Type u_2} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring Rโ‚‚] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module Rโ‚‚ Mโ‚‚] {ฯƒโ‚โ‚‚ : R โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* R} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [Subsingleton M] [Subsingleton Mโ‚‚] :
                                                          โ‡‘0 = 0
                                                          theorem LinearEquiv.zero_apply {R : Type u_1} {Rโ‚‚ : Type u_2} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring Rโ‚‚] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module Rโ‚‚ Mโ‚‚] {ฯƒโ‚โ‚‚ : R โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* R} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [Subsingleton M] [Subsingleton Mโ‚‚] (x : M) :
                                                          0 x = 0
                                                          instance LinearEquiv.instUnique {R : Type u_1} {Rโ‚‚ : Type u_2} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring Rโ‚‚] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module Rโ‚‚ Mโ‚‚] {ฯƒโ‚โ‚‚ : R โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* R} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [Subsingleton M] [Subsingleton Mโ‚‚] :
                                                          Unique (M โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚)

                                                          Between two zero modules, the zero map is the only equivalence.

                                                          Equations
                                                            instance LinearEquiv.uniqueOfSubsingleton {R : Type u_1} {Rโ‚‚ : Type u_2} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring Rโ‚‚] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [Module R M] [Module Rโ‚‚ Mโ‚‚] {ฯƒโ‚โ‚‚ : R โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* R} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [Subsingleton R] [Subsingleton Rโ‚‚] :
                                                            Unique (M โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚)
                                                            Equations
                                                              def LinearEquiv.curry (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] (V : Type u_9) (Vโ‚‚ : Type u_10) :
                                                              (V ร— Vโ‚‚ โ†’ M) โ‰ƒโ‚—[R] V โ†’ Vโ‚‚ โ†’ M

                                                              Linear equivalence between a curried and uncurried function. Differs from TensorProduct.curry.

                                                              Equations
                                                                Instances For
                                                                  @[simp]
                                                                  theorem LinearEquiv.coe_curry (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] (V : Type u_9) (Vโ‚‚ : Type u_10) :
                                                                  โ‡‘(LinearEquiv.curry R M V Vโ‚‚) = Function.curry
                                                                  @[simp]
                                                                  theorem LinearEquiv.coe_curry_symm (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] (V : Type u_9) (Vโ‚‚ : Type u_10) :
                                                                  โ‡‘(LinearEquiv.curry R M V Vโ‚‚).symm = Function.uncurry
                                                                  def LinearEquiv.ofLinear {R : Type u_1} {Rโ‚‚ : Type u_2} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring Rโ‚‚] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] {module_M : Module R M} {module_Mโ‚‚ : Module Rโ‚‚ Mโ‚‚} {ฯƒโ‚โ‚‚ : R โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* R} {reโ‚โ‚‚ : RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚} {reโ‚‚โ‚ : RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚} (f : M โ†’โ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (g : Mโ‚‚ โ†’โ‚›โ‚—[ฯƒโ‚‚โ‚] M) (hโ‚ : f โˆ˜โ‚›โ‚— g = LinearMap.id) (hโ‚‚ : g โˆ˜โ‚›โ‚— f = LinearMap.id) :
                                                                  M โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚

                                                                  If a linear map has an inverse, it is a linear equivalence.

                                                                  Equations
                                                                    Instances For
                                                                      @[simp]
                                                                      theorem LinearEquiv.ofLinear_apply {R : Type u_1} {Rโ‚‚ : Type u_2} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring Rโ‚‚] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] {module_M : Module R M} {module_Mโ‚‚ : Module Rโ‚‚ Mโ‚‚} {ฯƒโ‚โ‚‚ : R โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* R} {reโ‚โ‚‚ : RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚} {reโ‚‚โ‚ : RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚} (f : M โ†’โ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (g : Mโ‚‚ โ†’โ‚›โ‚—[ฯƒโ‚‚โ‚] M) {hโ‚ : f โˆ˜โ‚›โ‚— g = LinearMap.id} {hโ‚‚ : g โˆ˜โ‚›โ‚— f = LinearMap.id} (x : M) :
                                                                      (ofLinear f g hโ‚ hโ‚‚) x = f x
                                                                      @[simp]
                                                                      theorem LinearEquiv.ofLinear_symm_apply {R : Type u_1} {Rโ‚‚ : Type u_2} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring Rโ‚‚] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] {module_M : Module R M} {module_Mโ‚‚ : Module Rโ‚‚ Mโ‚‚} {ฯƒโ‚โ‚‚ : R โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* R} {reโ‚โ‚‚ : RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚} {reโ‚‚โ‚ : RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚} (f : M โ†’โ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (g : Mโ‚‚ โ†’โ‚›โ‚—[ฯƒโ‚‚โ‚] M) {hโ‚ : f โˆ˜โ‚›โ‚— g = LinearMap.id} {hโ‚‚ : g โˆ˜โ‚›โ‚— f = LinearMap.id} (x : Mโ‚‚) :
                                                                      (ofLinear f g hโ‚ hโ‚‚).symm x = g x
                                                                      @[simp]
                                                                      theorem LinearEquiv.ofLinear_toLinearMap {R : Type u_1} {Rโ‚‚ : Type u_2} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring Rโ‚‚] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] {module_M : Module R M} {module_Mโ‚‚ : Module Rโ‚‚ Mโ‚‚} {ฯƒโ‚โ‚‚ : R โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* R} {reโ‚โ‚‚ : RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚} {reโ‚‚โ‚ : RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚} (f : M โ†’โ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (g : Mโ‚‚ โ†’โ‚›โ‚—[ฯƒโ‚‚โ‚] M) {hโ‚ : f โˆ˜โ‚›โ‚— g = LinearMap.id} {hโ‚‚ : g โˆ˜โ‚›โ‚— f = LinearMap.id} :
                                                                      โ†‘(ofLinear f g hโ‚ hโ‚‚) = f
                                                                      @[simp]
                                                                      theorem LinearEquiv.ofLinear_symm_toLinearMap {R : Type u_1} {Rโ‚‚ : Type u_2} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [Semiring Rโ‚‚] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] {module_M : Module R M} {module_Mโ‚‚ : Module Rโ‚‚ Mโ‚‚} {ฯƒโ‚โ‚‚ : R โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* R} {reโ‚โ‚‚ : RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚} {reโ‚‚โ‚ : RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚} (f : M โ†’โ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (g : Mโ‚‚ โ†’โ‚›โ‚—[ฯƒโ‚‚โ‚] M) {hโ‚ : f โˆ˜โ‚›โ‚— g = LinearMap.id} {hโ‚‚ : g โˆ˜โ‚›โ‚— f = LinearMap.id} :
                                                                      โ†‘(ofLinear f g hโ‚ hโ‚‚).symm = g
                                                                      def LinearEquiv.neg (R : Type u_1) {M : Type u_5} [Semiring R] [AddCommGroup M] [Module R M] :

                                                                      x โ†ฆ -x as a LinearEquiv

                                                                      Equations
                                                                        Instances For
                                                                          @[simp]
                                                                          theorem LinearEquiv.coe_neg {R : Type u_1} {M : Type u_5} [Semiring R] [AddCommGroup M] [Module R M] :
                                                                          โ‡‘(neg R) = -id
                                                                          theorem LinearEquiv.neg_apply {R : Type u_1} {M : Type u_5} [Semiring R] [AddCommGroup M] [Module R M] (x : M) :
                                                                          (neg R) x = -x
                                                                          @[simp]
                                                                          theorem LinearEquiv.symm_neg {R : Type u_1} {M : Type u_5} [Semiring R] [AddCommGroup M] [Module R M] :
                                                                          (neg R).symm = neg R
                                                                          def LinearEquiv.arrowCongrAddEquiv {Rโ‚ : Type u_9} {Rโ‚‚ : Type u_10} {Rโ‚' : Type u_11} {Rโ‚‚' : Type u_12} {Mโ‚ : Type u_13} {Mโ‚‚ : Type u_14} {Mโ‚' : Type u_15} {Mโ‚‚' : Type u_16} [Semiring Rโ‚] [Semiring Rโ‚‚] [Semiring Rโ‚'] [Semiring Rโ‚‚'] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚ Mโ‚] [Module Rโ‚‚ Mโ‚‚] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚โ‚‚ : Rโ‚ โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* Rโ‚} {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} {ฯƒโ‚โ‚' : Rโ‚ โ†’+* Rโ‚'} {ฯƒโ‚‚โ‚‚' : Rโ‚‚ โ†’+* Rโ‚‚'} {ฯƒโ‚‚โ‚' : Rโ‚‚ โ†’+* Rโ‚'} {ฯƒโ‚โ‚‚' : Rโ‚ โ†’+* Rโ‚‚'} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] [RingHomCompTriple ฯƒโ‚โ‚' ฯƒโ‚'โ‚‚' ฯƒโ‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚' ฯƒโ‚‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚‚' ฯƒโ‚‚'โ‚' ฯƒโ‚‚โ‚'] [RingHomCompTriple ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚' ฯƒโ‚โ‚'] (eโ‚ : Mโ‚ โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (eโ‚‚ : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') :
                                                                          (Mโ‚ โ†’โ‚›โ‚—[ฯƒโ‚โ‚'] Mโ‚') โ‰ƒ+ (Mโ‚‚ โ†’โ‚›โ‚—[ฯƒโ‚‚โ‚‚'] Mโ‚‚')

                                                                          A linear isomorphism between the domains and codomains of two spaces of linear maps gives an additive isomorphism between the two function spaces.

                                                                          See also LinearEquiv.arrowCongr for the linear version of this isomorphism.

                                                                          Equations
                                                                            Instances For
                                                                              @[simp]
                                                                              theorem LinearEquiv.arrowCongrAddEquiv_symm_apply {Rโ‚ : Type u_9} {Rโ‚‚ : Type u_10} {Rโ‚' : Type u_11} {Rโ‚‚' : Type u_12} {Mโ‚ : Type u_13} {Mโ‚‚ : Type u_14} {Mโ‚' : Type u_15} {Mโ‚‚' : Type u_16} [Semiring Rโ‚] [Semiring Rโ‚‚] [Semiring Rโ‚'] [Semiring Rโ‚‚'] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚ Mโ‚] [Module Rโ‚‚ Mโ‚‚] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚โ‚‚ : Rโ‚ โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* Rโ‚} {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} {ฯƒโ‚โ‚' : Rโ‚ โ†’+* Rโ‚'} {ฯƒโ‚‚โ‚‚' : Rโ‚‚ โ†’+* Rโ‚‚'} {ฯƒโ‚‚โ‚' : Rโ‚‚ โ†’+* Rโ‚'} {ฯƒโ‚โ‚‚' : Rโ‚ โ†’+* Rโ‚‚'} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] [RingHomCompTriple ฯƒโ‚โ‚' ฯƒโ‚'โ‚‚' ฯƒโ‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚' ฯƒโ‚‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚‚' ฯƒโ‚‚'โ‚' ฯƒโ‚‚โ‚'] [RingHomCompTriple ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚' ฯƒโ‚โ‚'] (eโ‚ : Mโ‚ โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (eโ‚‚ : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (f : Mโ‚‚ โ†’โ‚›โ‚—[ฯƒโ‚‚โ‚‚'] Mโ‚‚') :
                                                                              (eโ‚.arrowCongrAddEquiv eโ‚‚).symm f = (โ†‘eโ‚‚.symm โˆ˜โ‚›โ‚— f) โˆ˜โ‚›โ‚— โ†‘eโ‚
                                                                              @[simp]
                                                                              theorem LinearEquiv.arrowCongrAddEquiv_apply {Rโ‚ : Type u_9} {Rโ‚‚ : Type u_10} {Rโ‚' : Type u_11} {Rโ‚‚' : Type u_12} {Mโ‚ : Type u_13} {Mโ‚‚ : Type u_14} {Mโ‚' : Type u_15} {Mโ‚‚' : Type u_16} [Semiring Rโ‚] [Semiring Rโ‚‚] [Semiring Rโ‚'] [Semiring Rโ‚‚'] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚ Mโ‚] [Module Rโ‚‚ Mโ‚‚] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚โ‚‚ : Rโ‚ โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* Rโ‚} {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} {ฯƒโ‚โ‚' : Rโ‚ โ†’+* Rโ‚'} {ฯƒโ‚‚โ‚‚' : Rโ‚‚ โ†’+* Rโ‚‚'} {ฯƒโ‚‚โ‚' : Rโ‚‚ โ†’+* Rโ‚'} {ฯƒโ‚โ‚‚' : Rโ‚ โ†’+* Rโ‚‚'} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] [RingHomCompTriple ฯƒโ‚โ‚' ฯƒโ‚'โ‚‚' ฯƒโ‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚' ฯƒโ‚‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚‚' ฯƒโ‚‚'โ‚' ฯƒโ‚‚โ‚'] [RingHomCompTriple ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚' ฯƒโ‚โ‚'] (eโ‚ : Mโ‚ โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (eโ‚‚ : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (f : Mโ‚ โ†’โ‚›โ‚—[ฯƒโ‚โ‚'] Mโ‚') :
                                                                              (eโ‚.arrowCongrAddEquiv eโ‚‚) f = (โ†‘eโ‚‚ โˆ˜โ‚›โ‚— f) โˆ˜โ‚›โ‚— โ†‘eโ‚.symm
                                                                              def LinearEquiv.conjRingEquiv {Rโ‚ : Type u_9} {Rโ‚‚ : Type u_10} {Mโ‚ : Type u_13} {Mโ‚‚ : Type u_14} [Semiring Rโ‚] [Semiring Rโ‚‚] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [Module Rโ‚ Mโ‚] [Module Rโ‚‚ Mโ‚‚] {ฯƒโ‚โ‚‚ : Rโ‚ โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* Rโ‚} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] (e : Mโ‚ โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) :
                                                                              Module.End Rโ‚ Mโ‚ โ‰ƒ+* Module.End Rโ‚‚ Mโ‚‚

                                                                              If M and Mโ‚‚ are linearly isomorphic then the endomorphism rings of M and Mโ‚‚ are isomorphic.

                                                                              See LinearEquiv.conj for the linear version of this isomorphism.

                                                                              Equations
                                                                                Instances For
                                                                                  @[simp]
                                                                                  theorem LinearEquiv.conjRingEquiv_apply_apply {Rโ‚ : Type u_9} {Rโ‚‚ : Type u_10} {Mโ‚ : Type u_13} {Mโ‚‚ : Type u_14} [Semiring Rโ‚] [Semiring Rโ‚‚] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [Module Rโ‚ Mโ‚] [Module Rโ‚‚ Mโ‚‚] {ฯƒโ‚โ‚‚ : Rโ‚ โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* Rโ‚} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] (e : Mโ‚ โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (f : Mโ‚ โ†’โ‚—[Rโ‚] Mโ‚) (aโœ : Mโ‚‚) :
                                                                                  (e.conjRingEquiv f) aโœ = e (f (e.symm aโœ))
                                                                                  @[simp]
                                                                                  theorem LinearEquiv.conjRingEquiv_symm_apply_apply {Rโ‚ : Type u_9} {Rโ‚‚ : Type u_10} {Mโ‚ : Type u_13} {Mโ‚‚ : Type u_14} [Semiring Rโ‚] [Semiring Rโ‚‚] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [Module Rโ‚ Mโ‚] [Module Rโ‚‚ Mโ‚‚] {ฯƒโ‚โ‚‚ : Rโ‚ โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* Rโ‚} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] (e : Mโ‚ โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (f : Mโ‚‚ โ†’โ‚—[Rโ‚‚] Mโ‚‚) (aโœ : Mโ‚) :
                                                                                  (e.conjRingEquiv.symm f) aโœ = e.symm (f (e aโœ))
                                                                                  def LinearEquiv.domMulActCongrRight {S : Type u_4} {Rโ‚ : Type u_9} {Rโ‚' : Type u_11} {Rโ‚‚' : Type u_12} {Mโ‚ : Type u_13} {Mโ‚' : Type u_15} {Mโ‚‚' : Type u_16} [Semiring Rโ‚] [Semiring Rโ‚'] [Semiring Rโ‚‚'] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚ Mโ‚] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} {ฯƒโ‚โ‚' : Rโ‚ โ†’+* Rโ‚'} {ฯƒโ‚โ‚‚' : Rโ‚ โ†’+* Rโ‚‚'} [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] [RingHomCompTriple ฯƒโ‚โ‚' ฯƒโ‚'โ‚‚' ฯƒโ‚โ‚‚'] [Semiring S] [Module S Mโ‚] [SMulCommClass Rโ‚ S Mโ‚] [RingHomCompTriple ฯƒโ‚โ‚‚' ฯƒโ‚‚'โ‚' ฯƒโ‚โ‚'] (eโ‚‚ : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') :
                                                                                  (Mโ‚ โ†’โ‚›โ‚—[ฯƒโ‚โ‚'] Mโ‚') โ‰ƒโ‚—[Sแตˆแตแตƒ] Mโ‚ โ†’โ‚›โ‚—[ฯƒโ‚โ‚‚'] Mโ‚‚'

                                                                                  A linear isomorphism between the domains and codomains of two spaces of linear maps gives a linear isomorphism with respect to an action on the domains.

                                                                                  Equations
                                                                                    Instances For
                                                                                      @[simp]
                                                                                      theorem LinearEquiv.domMulActCongrRight_symm_apply {S : Type u_4} {Rโ‚ : Type u_9} {Rโ‚' : Type u_11} {Rโ‚‚' : Type u_12} {Mโ‚ : Type u_13} {Mโ‚' : Type u_15} {Mโ‚‚' : Type u_16} [Semiring Rโ‚] [Semiring Rโ‚'] [Semiring Rโ‚‚'] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚ Mโ‚] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} {ฯƒโ‚โ‚' : Rโ‚ โ†’+* Rโ‚'} {ฯƒโ‚โ‚‚' : Rโ‚ โ†’+* Rโ‚‚'} [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] [RingHomCompTriple ฯƒโ‚โ‚' ฯƒโ‚'โ‚‚' ฯƒโ‚โ‚‚'] [Semiring S] [Module S Mโ‚] [SMulCommClass Rโ‚ S Mโ‚] [RingHomCompTriple ฯƒโ‚โ‚‚' ฯƒโ‚‚'โ‚' ฯƒโ‚โ‚'] (eโ‚‚ : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (aโœ : Mโ‚ โ†’โ‚›โ‚—[ฯƒโ‚โ‚‚'] Mโ‚‚') :
                                                                                      eโ‚‚.domMulActCongrRight.symm aโœ = ((refl Rโ‚ Mโ‚).arrowCongrAddEquiv eโ‚‚).invFun aโœ
                                                                                      @[simp]
                                                                                      theorem LinearEquiv.domMulActCongrRight_apply {S : Type u_4} {Rโ‚ : Type u_9} {Rโ‚' : Type u_11} {Rโ‚‚' : Type u_12} {Mโ‚ : Type u_13} {Mโ‚' : Type u_15} {Mโ‚‚' : Type u_16} [Semiring Rโ‚] [Semiring Rโ‚'] [Semiring Rโ‚‚'] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚ Mโ‚] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} {ฯƒโ‚โ‚' : Rโ‚ โ†’+* Rโ‚'} {ฯƒโ‚โ‚‚' : Rโ‚ โ†’+* Rโ‚‚'} [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] [RingHomCompTriple ฯƒโ‚โ‚' ฯƒโ‚'โ‚‚' ฯƒโ‚โ‚‚'] [Semiring S] [Module S Mโ‚] [SMulCommClass Rโ‚ S Mโ‚] [RingHomCompTriple ฯƒโ‚โ‚‚' ฯƒโ‚‚'โ‚' ฯƒโ‚โ‚'] (eโ‚‚ : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (aโœ : Mโ‚ โ†’โ‚›โ‚—[ฯƒโ‚โ‚'] Mโ‚') :
                                                                                      eโ‚‚.domMulActCongrRight aโœ = ((refl Rโ‚ Mโ‚).arrowCongrAddEquiv eโ‚‚).toFun aโœ
                                                                                      def LinearEquiv.smulOfUnit {R : Type u_1} {M : Type u_5} [CommSemiring R] [AddCommMonoid M] [Module R M] (a : Rหฃ) :

                                                                                      Multiplying by a unit a of the ring R is a linear equivalence.

                                                                                      Equations
                                                                                        Instances For

                                                                                          The modules for arrowCongr and its lemmas below are related via the semilinearities

                                                                                          Mโ‚  โ†โŽฏโŽฏโŽฏฯƒโ‚โ‚‚โŽฏโŽฏโŽฏโ†’ Mโ‚‚  โ†โŽฏโŽฏโŽฏฯƒโ‚‚โ‚ƒโŽฏโŽฏโŽฏโ†’ Mโ‚ƒ
                                                                                          โ               โ               โ
                                                                                          ฯƒโ‚โ‚'            ฯƒโ‚‚โ‚‚'            ฯƒโ‚ƒโ‚ƒ'
                                                                                          โ†“               โ†“               โ†“
                                                                                          Mโ‚' โ†โŽฏโŽฏฯƒโ‚'โ‚‚'โŽฏโŽฏโ†’ Mโ‚‚' โ†โŽฏโŽฏฯƒโ‚‚'โ‚ƒ'โŽฏโŽฏโ†’ Mโ‚ƒ
                                                                                          โ               โ
                                                                                          ฯƒโ‚'โ‚''          ฯƒโ‚‚'โ‚‚''
                                                                                          โ†“               โ†“
                                                                                          Mโ‚''โ†โŽฏฯƒโ‚''โ‚‚''โŽฏโ†’ Mโ‚‚''
                                                                                          

                                                                                          where the horizontal direction corresponds to the โ‰ƒโ‚›โ‚—s, and is needed for arrowCongr_trans, while the vertical direction corresponds to the โ†’โ‚›โ‚—s, and is needed arrowCongr_comp.

                                                                                          Rแตข is not necessarily commutative, but Rแตข' and Rแตข'' are.

                                                                                          def LinearEquiv.arrowCongr {Rโ‚ : Type u_9} {Rโ‚‚ : Type u_10} {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Mโ‚ : Type u_17} {Mโ‚‚ : Type u_18} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} [Semiring Rโ‚] [Semiring Rโ‚‚] [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚ Mโ‚] [Module Rโ‚‚ Mโ‚‚] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚โ‚‚ : Rโ‚ โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* Rโ‚} {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} {ฯƒโ‚โ‚' : Rโ‚ โ†’+* Rโ‚'} {ฯƒโ‚‚โ‚‚' : Rโ‚‚ โ†’+* Rโ‚‚'} {ฯƒโ‚‚โ‚' : Rโ‚‚ โ†’+* Rโ‚'} {ฯƒโ‚โ‚‚' : Rโ‚ โ†’+* Rโ‚‚'} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] [RingHomCompTriple ฯƒโ‚โ‚' ฯƒโ‚'โ‚‚' ฯƒโ‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚' ฯƒโ‚‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚‚' ฯƒโ‚‚'โ‚' ฯƒโ‚‚โ‚'] [RingHomCompTriple ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚' ฯƒโ‚โ‚'] (eโ‚ : Mโ‚ โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (eโ‚‚ : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') :
                                                                                          (Mโ‚ โ†’โ‚›โ‚—[ฯƒโ‚โ‚'] Mโ‚') โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚ โ†’โ‚›โ‚—[ฯƒโ‚‚โ‚‚'] Mโ‚‚'

                                                                                          A linear isomorphism between the domains and codomains of two spaces of linear maps gives a linear isomorphism between the two function spaces.

                                                                                          See LinearEquiv.arrowCongrAddEquiv for the additive version of this isomorphism that works over a not necessarily commutative semiring.

                                                                                          Equations
                                                                                            Instances For
                                                                                              @[simp]
                                                                                              theorem LinearEquiv.arrowCongr_apply {Rโ‚ : Type u_9} {Rโ‚‚ : Type u_10} {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Mโ‚ : Type u_17} {Mโ‚‚ : Type u_18} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} [Semiring Rโ‚] [Semiring Rโ‚‚] [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚ Mโ‚] [Module Rโ‚‚ Mโ‚‚] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚โ‚‚ : Rโ‚ โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* Rโ‚} {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} {ฯƒโ‚โ‚' : Rโ‚ โ†’+* Rโ‚'} {ฯƒโ‚‚โ‚‚' : Rโ‚‚ โ†’+* Rโ‚‚'} {ฯƒโ‚‚โ‚' : Rโ‚‚ โ†’+* Rโ‚'} {ฯƒโ‚โ‚‚' : Rโ‚ โ†’+* Rโ‚‚'} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] [RingHomCompTriple ฯƒโ‚โ‚' ฯƒโ‚'โ‚‚' ฯƒโ‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚' ฯƒโ‚‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚‚' ฯƒโ‚‚'โ‚' ฯƒโ‚‚โ‚'] [RingHomCompTriple ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚' ฯƒโ‚โ‚'] (eโ‚ : Mโ‚ โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (eโ‚‚ : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (f : Mโ‚ โ†’โ‚›โ‚—[ฯƒโ‚โ‚'] Mโ‚') (x : Mโ‚‚) :
                                                                                              ((eโ‚.arrowCongr eโ‚‚) f) x = eโ‚‚ (f (eโ‚.symm x))
                                                                                              @[simp]
                                                                                              theorem LinearEquiv.arrowCongr_symm_apply {Rโ‚ : Type u_9} {Rโ‚‚ : Type u_10} {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Mโ‚ : Type u_17} {Mโ‚‚ : Type u_18} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} [Semiring Rโ‚] [Semiring Rโ‚‚] [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚ Mโ‚] [Module Rโ‚‚ Mโ‚‚] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚โ‚‚ : Rโ‚ โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* Rโ‚} {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} {ฯƒโ‚โ‚' : Rโ‚ โ†’+* Rโ‚'} {ฯƒโ‚‚โ‚‚' : Rโ‚‚ โ†’+* Rโ‚‚'} {ฯƒโ‚‚โ‚' : Rโ‚‚ โ†’+* Rโ‚'} {ฯƒโ‚โ‚‚' : Rโ‚ โ†’+* Rโ‚‚'} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] [RingHomCompTriple ฯƒโ‚โ‚' ฯƒโ‚'โ‚‚' ฯƒโ‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚' ฯƒโ‚‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚‚' ฯƒโ‚‚'โ‚' ฯƒโ‚‚โ‚'] [RingHomCompTriple ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚' ฯƒโ‚โ‚'] (eโ‚ : Mโ‚ โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (eโ‚‚ : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (f : Mโ‚‚ โ†’โ‚›โ‚—[ฯƒโ‚‚โ‚‚'] Mโ‚‚') (x : Mโ‚) :
                                                                                              ((eโ‚.arrowCongr eโ‚‚).symm f) x = eโ‚‚.symm (f (eโ‚ x))
                                                                                              theorem LinearEquiv.arrowCongr_comp {Rโ‚ : Type u_9} {Rโ‚‚ : Type u_10} {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Rโ‚'' : Type u_15} {Rโ‚‚'' : Type u_16} {Mโ‚ : Type u_17} {Mโ‚‚ : Type u_18} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} {Mโ‚'' : Type u_23} {Mโ‚‚'' : Type u_24} [Semiring Rโ‚] [Semiring Rโ‚‚] [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [CommSemiring Rโ‚''] [CommSemiring Rโ‚‚''] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [AddCommMonoid Mโ‚''] [AddCommMonoid Mโ‚‚''] [Module Rโ‚ Mโ‚] [Module Rโ‚‚ Mโ‚‚] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] [Module Rโ‚'' Mโ‚''] [Module Rโ‚‚'' Mโ‚‚''] {ฯƒโ‚โ‚‚ : Rโ‚ โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* Rโ‚} {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} {ฯƒโ‚''โ‚‚'' : Rโ‚'' โ†’+* Rโ‚‚''} {ฯƒโ‚‚''โ‚'' : Rโ‚‚'' โ†’+* Rโ‚''} {ฯƒโ‚โ‚' : Rโ‚ โ†’+* Rโ‚'} {ฯƒโ‚‚โ‚‚' : Rโ‚‚ โ†’+* Rโ‚‚'} {ฯƒโ‚'โ‚'' : Rโ‚' โ†’+* Rโ‚''} {ฯƒโ‚‚'โ‚‚'' : Rโ‚‚' โ†’+* Rโ‚‚''} {ฯƒโ‚โ‚'' : Rโ‚ โ†’+* Rโ‚''} {ฯƒโ‚‚โ‚‚'' : Rโ‚‚ โ†’+* Rโ‚‚''} {ฯƒโ‚‚โ‚' : Rโ‚‚ โ†’+* Rโ‚'} {ฯƒโ‚โ‚‚' : Rโ‚ โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚'' : Rโ‚‚' โ†’+* Rโ‚''} {ฯƒโ‚'โ‚‚'' : Rโ‚' โ†’+* Rโ‚‚''} {ฯƒโ‚‚โ‚'' : Rโ‚‚ โ†’+* Rโ‚''} {ฯƒโ‚โ‚‚'' : Rโ‚ โ†’+* Rโ‚‚''} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] [RingHomInvPair ฯƒโ‚''โ‚‚'' ฯƒโ‚‚''โ‚''] [RingHomInvPair ฯƒโ‚‚''โ‚'' ฯƒโ‚''โ‚‚''] [RingHomCompTriple ฯƒโ‚โ‚' ฯƒโ‚'โ‚'' ฯƒโ‚โ‚''] [RingHomCompTriple ฯƒโ‚‚โ‚‚' ฯƒโ‚‚'โ‚‚'' ฯƒโ‚‚โ‚‚''] [RingHomCompTriple ฯƒโ‚โ‚' ฯƒโ‚'โ‚‚' ฯƒโ‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚' ฯƒโ‚‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚‚' ฯƒโ‚‚'โ‚' ฯƒโ‚‚โ‚'] [RingHomCompTriple ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚' ฯƒโ‚โ‚'] [RingHomCompTriple ฯƒโ‚โ‚'' ฯƒโ‚''โ‚‚'' ฯƒโ‚โ‚‚''] [RingHomCompTriple ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚'' ฯƒโ‚‚โ‚‚''] [RingHomCompTriple ฯƒโ‚‚โ‚‚'' ฯƒโ‚‚''โ‚'' ฯƒโ‚‚โ‚''] [RingHomCompTriple ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚'' ฯƒโ‚โ‚''] [RingHomCompTriple ฯƒโ‚'โ‚'' ฯƒโ‚''โ‚‚'' ฯƒโ‚'โ‚‚''] [RingHomCompTriple ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'' ฯƒโ‚‚'โ‚‚''] [RingHomCompTriple ฯƒโ‚‚'โ‚‚'' ฯƒโ‚‚''โ‚'' ฯƒโ‚‚'โ‚''] [RingHomCompTriple ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'' ฯƒโ‚'โ‚''] (eโ‚ : Mโ‚ โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (eโ‚‚ : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (eโ‚ƒ : Mโ‚'' โ‰ƒโ‚›โ‚—[ฯƒโ‚''โ‚‚''] Mโ‚‚'') (f : Mโ‚ โ†’โ‚›โ‚—[ฯƒโ‚โ‚'] Mโ‚') (g : Mโ‚' โ†’โ‚›โ‚—[ฯƒโ‚'โ‚''] Mโ‚'') :
                                                                                              (eโ‚.arrowCongr eโ‚ƒ) (g โˆ˜โ‚›โ‚— f) = (eโ‚‚.arrowCongr eโ‚ƒ) g โˆ˜โ‚›โ‚— (eโ‚.arrowCongr eโ‚‚) f
                                                                                              theorem LinearEquiv.arrowCongr_trans {Rโ‚ : Type u_9} {Rโ‚‚ : Type u_10} {Rโ‚ƒ : Type u_11} {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Rโ‚ƒ' : Type u_14} {Mโ‚ : Type u_17} {Mโ‚‚ : Type u_18} {Mโ‚ƒ : Type u_19} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} {Mโ‚ƒ' : Type u_22} [Semiring Rโ‚] [Semiring Rโ‚‚] [Semiring Rโ‚ƒ] [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [CommSemiring Rโ‚ƒ'] [AddCommMonoid Mโ‚] [AddCommMonoid Mโ‚‚] [AddCommMonoid Mโ‚ƒ] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [AddCommMonoid Mโ‚ƒ'] [Module Rโ‚ Mโ‚] [Module Rโ‚‚ Mโ‚‚] [Module Rโ‚ƒ Mโ‚ƒ] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] [Module Rโ‚ƒ' Mโ‚ƒ'] {ฯƒโ‚โ‚‚ : Rโ‚ โ†’+* Rโ‚‚} {ฯƒโ‚‚โ‚ : Rโ‚‚ โ†’+* Rโ‚} {ฯƒโ‚‚โ‚ƒ : Rโ‚‚ โ†’+* Rโ‚ƒ} {ฯƒโ‚ƒโ‚‚ : Rโ‚ƒ โ†’+* Rโ‚‚} {ฯƒโ‚โ‚ƒ : Rโ‚ โ†’+* Rโ‚ƒ} {ฯƒโ‚ƒโ‚ : Rโ‚ƒ โ†’+* Rโ‚} {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} {ฯƒโ‚‚'โ‚ƒ' : Rโ‚‚' โ†’+* Rโ‚ƒ'} {ฯƒโ‚ƒ'โ‚‚' : Rโ‚ƒ' โ†’+* Rโ‚‚'} {ฯƒโ‚'โ‚ƒ' : Rโ‚' โ†’+* Rโ‚ƒ'} {ฯƒโ‚ƒ'โ‚' : Rโ‚ƒ' โ†’+* Rโ‚'} {ฯƒโ‚โ‚' : Rโ‚ โ†’+* Rโ‚'} {ฯƒโ‚‚โ‚‚' : Rโ‚‚ โ†’+* Rโ‚‚'} {ฯƒโ‚ƒโ‚ƒ' : Rโ‚ƒ โ†’+* Rโ‚ƒ'} {ฯƒโ‚‚โ‚' : Rโ‚‚ โ†’+* Rโ‚'} {ฯƒโ‚โ‚‚' : Rโ‚ โ†’+* Rโ‚‚'} {ฯƒโ‚ƒโ‚‚' : Rโ‚ƒ โ†’+* Rโ‚‚'} {ฯƒโ‚‚โ‚ƒ' : Rโ‚‚ โ†’+* Rโ‚ƒ'} {ฯƒโ‚ƒโ‚' : Rโ‚ƒ โ†’+* Rโ‚'} {ฯƒโ‚โ‚ƒ' : Rโ‚ โ†’+* Rโ‚ƒ'} [RingHomInvPair ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚] [RingHomInvPair ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚] [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] [RingHomInvPair ฯƒโ‚‚โ‚ƒ ฯƒโ‚ƒโ‚‚] [RingHomInvPair ฯƒโ‚ƒโ‚‚ ฯƒโ‚‚โ‚ƒ] [RingHomInvPair ฯƒโ‚‚'โ‚ƒ' ฯƒโ‚ƒ'โ‚‚'] [RingHomInvPair ฯƒโ‚ƒ'โ‚‚' ฯƒโ‚‚'โ‚ƒ'] [RingHomInvPair ฯƒโ‚โ‚ƒ ฯƒโ‚ƒโ‚] [RingHomInvPair ฯƒโ‚ƒโ‚ ฯƒโ‚โ‚ƒ] [RingHomInvPair ฯƒโ‚'โ‚ƒ' ฯƒโ‚ƒ'โ‚'] [RingHomInvPair ฯƒโ‚ƒ'โ‚' ฯƒโ‚'โ‚ƒ'] [RingHomCompTriple ฯƒโ‚โ‚' ฯƒโ‚'โ‚‚' ฯƒโ‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚ ฯƒโ‚โ‚‚' ฯƒโ‚‚โ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚‚' ฯƒโ‚‚'โ‚' ฯƒโ‚‚โ‚'] [RingHomCompTriple ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚' ฯƒโ‚โ‚'] [RingHomCompTriple ฯƒโ‚โ‚' ฯƒโ‚'โ‚ƒ' ฯƒโ‚โ‚ƒ'] [RingHomCompTriple ฯƒโ‚ƒโ‚ ฯƒโ‚โ‚ƒ' ฯƒโ‚ƒโ‚ƒ'] [RingHomCompTriple ฯƒโ‚ƒโ‚ƒ' ฯƒโ‚ƒ'โ‚' ฯƒโ‚ƒโ‚'] [RingHomCompTriple ฯƒโ‚โ‚ƒ ฯƒโ‚ƒโ‚' ฯƒโ‚โ‚'] [RingHomCompTriple ฯƒโ‚‚โ‚‚' ฯƒโ‚‚'โ‚ƒ' ฯƒโ‚‚โ‚ƒ'] [RingHomCompTriple ฯƒโ‚ƒโ‚‚ ฯƒโ‚‚โ‚ƒ' ฯƒโ‚ƒโ‚ƒ'] [RingHomCompTriple ฯƒโ‚ƒโ‚ƒ' ฯƒโ‚ƒ'โ‚‚' ฯƒโ‚ƒโ‚‚'] [RingHomCompTriple ฯƒโ‚‚โ‚ƒ ฯƒโ‚ƒโ‚‚' ฯƒโ‚‚โ‚‚'] [RingHomCompTriple ฯƒโ‚โ‚‚ ฯƒโ‚‚โ‚ƒ ฯƒโ‚โ‚ƒ] [RingHomCompTriple ฯƒโ‚ƒโ‚‚ ฯƒโ‚‚โ‚ ฯƒโ‚ƒโ‚] [RingHomCompTriple ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚ƒ' ฯƒโ‚'โ‚ƒ'] [RingHomCompTriple ฯƒโ‚ƒ'โ‚‚' ฯƒโ‚‚'โ‚' ฯƒโ‚ƒ'โ‚'] (eโ‚ : Mโ‚ โ‰ƒโ‚›โ‚—[ฯƒโ‚โ‚‚] Mโ‚‚) (eโ‚' : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (eโ‚‚ : Mโ‚‚ โ‰ƒโ‚›โ‚—[ฯƒโ‚‚โ‚ƒ] Mโ‚ƒ) (eโ‚‚' : Mโ‚‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚‚'โ‚ƒ'] Mโ‚ƒ') :
                                                                                              (eโ‚.arrowCongr eโ‚').trans (eโ‚‚.arrowCongr eโ‚‚') = (eโ‚.trans eโ‚‚).arrowCongr (eโ‚'.trans eโ‚‚')
                                                                                              def LinearEquiv.conj {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] (e : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') :
                                                                                              Module.End Rโ‚' Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Module.End Rโ‚‚' Mโ‚‚'

                                                                                              If M and Mโ‚‚ are linearly isomorphic then the two spaces of linear maps from M and Mโ‚‚ to themselves are linearly isomorphic.

                                                                                              See LinearEquiv.conjRingEquiv for the isomorphism between endomorphism rings, which works over a not necessarily commutative semiring.

                                                                                              Equations
                                                                                                Instances For
                                                                                                  theorem LinearEquiv.conj_apply {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] (e : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (f : Module.End Rโ‚' Mโ‚') :
                                                                                                  @[simp]
                                                                                                  theorem LinearEquiv.conj_apply_apply {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] (e : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (f : Module.End Rโ‚' Mโ‚') (x : Mโ‚‚') :
                                                                                                  (e.conj f) x = e (f (e.symm x))
                                                                                                  theorem LinearEquiv.symm_conj_apply {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] (e : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (f : Module.End Rโ‚‚' Mโ‚‚') :
                                                                                                  theorem LinearEquiv.conj_comp {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] (e : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (f g : Module.End Rโ‚' Mโ‚') :
                                                                                                  theorem LinearEquiv.conj_trans {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Rโ‚ƒ' : Type u_14} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} {Mโ‚ƒ' : Type u_22} [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [CommSemiring Rโ‚ƒ'] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [AddCommMonoid Mโ‚ƒ'] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] [Module Rโ‚ƒ' Mโ‚ƒ'] {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} {ฯƒโ‚‚'โ‚ƒ' : Rโ‚‚' โ†’+* Rโ‚ƒ'} {ฯƒโ‚ƒ'โ‚‚' : Rโ‚ƒ' โ†’+* Rโ‚‚'} {ฯƒโ‚'โ‚ƒ' : Rโ‚' โ†’+* Rโ‚ƒ'} {ฯƒโ‚ƒ'โ‚' : Rโ‚ƒ' โ†’+* Rโ‚'} [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] [RingHomInvPair ฯƒโ‚‚'โ‚ƒ' ฯƒโ‚ƒ'โ‚‚'] [RingHomInvPair ฯƒโ‚ƒ'โ‚‚' ฯƒโ‚‚'โ‚ƒ'] [RingHomInvPair ฯƒโ‚'โ‚ƒ' ฯƒโ‚ƒ'โ‚'] [RingHomInvPair ฯƒโ‚ƒ'โ‚' ฯƒโ‚'โ‚ƒ'] [RingHomCompTriple ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚ƒ' ฯƒโ‚'โ‚ƒ'] [RingHomCompTriple ฯƒโ‚ƒ'โ‚‚' ฯƒโ‚‚'โ‚' ฯƒโ‚ƒ'โ‚'] (eโ‚ : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (eโ‚‚ : Mโ‚‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚‚'โ‚ƒ'] Mโ‚ƒ') :
                                                                                                  eโ‚.conj.trans eโ‚‚.conj = (eโ‚.trans eโ‚‚).conj
                                                                                                  @[simp]
                                                                                                  theorem LinearEquiv.conj_conj_symm {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] (e : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (f : Module.End Rโ‚‚' Mโ‚‚') :
                                                                                                  e.conj (e.symm.conj f) = f
                                                                                                  @[simp]
                                                                                                  theorem LinearEquiv.conj_symm_conj {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] (e : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') (f : Module.End Rโ‚' Mโ‚') :
                                                                                                  e.symm.conj (e.conj f) = f
                                                                                                  @[simp]
                                                                                                  theorem LinearEquiv.conj_id {Rโ‚' : Type u_12} {Rโ‚‚' : Type u_13} {Mโ‚' : Type u_20} {Mโ‚‚' : Type u_21} [CommSemiring Rโ‚'] [CommSemiring Rโ‚‚'] [AddCommMonoid Mโ‚'] [AddCommMonoid Mโ‚‚'] [Module Rโ‚' Mโ‚'] [Module Rโ‚‚' Mโ‚‚'] {ฯƒโ‚'โ‚‚' : Rโ‚' โ†’+* Rโ‚‚'} {ฯƒโ‚‚'โ‚' : Rโ‚‚' โ†’+* Rโ‚'} [RingHomInvPair ฯƒโ‚'โ‚‚' ฯƒโ‚‚'โ‚'] [RingHomInvPair ฯƒโ‚‚'โ‚' ฯƒโ‚'โ‚‚'] (e : Mโ‚' โ‰ƒโ‚›โ‚—[ฯƒโ‚'โ‚‚'] Mโ‚‚') :
                                                                                                  @[simp]
                                                                                                  theorem LinearEquiv.conj_refl {R : Type u_1} {M : Type u_5} [CommSemiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) :
                                                                                                  (refl R M).conj f = f
                                                                                                  def LinearEquiv.congrRight {R : Type u_1} {M : Type u_5} {Mโ‚‚ : Type u_7} {Mโ‚ƒ : Type u_8} [CommSemiring R] [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [AddCommMonoid Mโ‚ƒ] [Module R M] [Module R Mโ‚‚] [Module R Mโ‚ƒ] (f : Mโ‚‚ โ‰ƒโ‚—[R] Mโ‚ƒ) :

                                                                                                  If Mโ‚‚ and Mโ‚ƒ are linearly isomorphic then the two spaces of linear maps from M into Mโ‚‚ and M into Mโ‚ƒ are linearly isomorphic.

                                                                                                  Equations
                                                                                                    Instances For
                                                                                                      def LinearEquiv.congrLeft (M : Type u_5) {Mโ‚‚ : Type u_7} {Mโ‚ƒ : Type u_8} [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [AddCommMonoid Mโ‚ƒ] {R : Type u_9} (S : Type u_10) [Semiring R] [Semiring S] [Module R Mโ‚‚] [Module R Mโ‚ƒ] [Module R M] [Module S M] [SMulCommClass R S M] (e : Mโ‚‚ โ‰ƒโ‚—[R] Mโ‚ƒ) :

                                                                                                      An R-linear isomorphism between two R-modules Mโ‚‚ and Mโ‚ƒ induces an S-linear isomorphism between Mโ‚‚ โ†’โ‚—[R] M and Mโ‚ƒ โ†’โ‚—[R] M, if M is both an R-module and an S-module and their actions commute.

                                                                                                      Equations
                                                                                                        Instances For
                                                                                                          @[simp]
                                                                                                          theorem LinearEquiv.congrLeft_symm_apply (M : Type u_5) {Mโ‚‚ : Type u_7} {Mโ‚ƒ : Type u_8} [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [AddCommMonoid Mโ‚ƒ] {R : Type u_9} (S : Type u_10) [Semiring R] [Semiring S] [Module R Mโ‚‚] [Module R Mโ‚ƒ] [Module R M] [Module S M] [SMulCommClass R S M] (e : Mโ‚‚ โ‰ƒโ‚—[R] Mโ‚ƒ) (aโœ : Mโ‚ƒ โ†’โ‚—[R] M) :
                                                                                                          (congrLeft M S e).symm aโœ = (e.arrowCongrAddEquiv (refl R M)).invFun aโœ
                                                                                                          @[simp]
                                                                                                          theorem LinearEquiv.congrLeft_apply (M : Type u_5) {Mโ‚‚ : Type u_7} {Mโ‚ƒ : Type u_8} [AddCommMonoid M] [AddCommMonoid Mโ‚‚] [AddCommMonoid Mโ‚ƒ] {R : Type u_9} (S : Type u_10) [Semiring R] [Semiring S] [Module R Mโ‚‚] [Module R Mโ‚ƒ] [Module R M] [Module S M] [SMulCommClass R S M] (e : Mโ‚‚ โ‰ƒโ‚—[R] Mโ‚ƒ) (aโœ : Mโ‚‚ โ†’โ‚—[R] M) :
                                                                                                          (congrLeft M S e) aโœ = (e.arrowCongrAddEquiv (refl R M)).toFun aโœ
                                                                                                          def LinearEquiv.smulOfNeZero (K : Type u_3) (M : Type u_5) [Field K] [AddCommGroup M] [Module K M] (a : K) (ha : a โ‰  0) :

                                                                                                          Multiplying by a nonzero element a of the field K is a linear equivalence.

                                                                                                          Equations
                                                                                                            Instances For
                                                                                                              @[simp]
                                                                                                              theorem LinearEquiv.smulOfNeZero_apply (K : Type u_3) (M : Type u_5) [Field K] [AddCommGroup M] [Module K M] (a : K) (ha : a โ‰  0) (aโœ : M) :
                                                                                                              (smulOfNeZero K M a ha) aโœ = a โ€ข aโœ
                                                                                                              @[simp]
                                                                                                              theorem LinearEquiv.smulOfNeZero_symm_apply (K : Type u_3) (M : Type u_5) [Field K] [AddCommGroup M] [Module K M] (a : K) (ha : a โ‰  0) (aโœ : M) :
                                                                                                              (smulOfNeZero K M a ha).symm aโœ = (Units.mk0 a ha)โปยน โ€ข aโœ
                                                                                                              def Equiv.toLinearEquiv {R : Type u_1} {M : Type u_5} {Mโ‚‚ : Type u_7} [Semiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid Mโ‚‚] [Module R Mโ‚‚] (e : M โ‰ƒ Mโ‚‚) (h : IsLinearMap R โ‡‘e) :
                                                                                                              M โ‰ƒโ‚—[R] Mโ‚‚

                                                                                                              An equivalence whose underlying function is linear is a linear equivalence.

                                                                                                              Equations
                                                                                                                Instances For
                                                                                                                  def LinearMap.funLeft (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {m : Type u_9} {n : Type u_10} (f : m โ†’ n) :
                                                                                                                  (n โ†’ M) โ†’โ‚—[R] m โ†’ M

                                                                                                                  Given an R-module M and a function m โ†’ n between arbitrary types, construct a linear map (n โ†’ M) โ†’โ‚—[R] (m โ†’ M)

                                                                                                                  Equations
                                                                                                                    Instances For
                                                                                                                      @[simp]
                                                                                                                      theorem LinearMap.funLeft_apply (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {m : Type u_9} {n : Type u_10} (f : m โ†’ n) (g : n โ†’ M) (i : m) :
                                                                                                                      (funLeft R M f) g i = g (f i)
                                                                                                                      @[simp]
                                                                                                                      theorem LinearMap.funLeft_id (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {n : Type u_10} (g : n โ†’ M) :
                                                                                                                      (funLeft R M _root_.id) g = g
                                                                                                                      theorem LinearMap.funLeft_comp (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {m : Type u_9} {n : Type u_10} {p : Type u_11} (fโ‚ : n โ†’ p) (fโ‚‚ : m โ†’ n) :
                                                                                                                      funLeft R M (fโ‚ โˆ˜ fโ‚‚) = funLeft R M fโ‚‚ โˆ˜โ‚— funLeft R M fโ‚
                                                                                                                      theorem LinearMap.funLeft_surjective_of_injective (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {m : Type u_9} {n : Type u_10} (f : m โ†’ n) (hf : Function.Injective f) :
                                                                                                                      theorem LinearMap.funLeft_injective_of_surjective (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {m : Type u_9} {n : Type u_10} (f : m โ†’ n) (hf : Function.Surjective f) :
                                                                                                                      def LinearEquiv.funCongrLeft (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {m : Type u_9} {n : Type u_10} (e : m โ‰ƒ n) :
                                                                                                                      (n โ†’ M) โ‰ƒโ‚—[R] m โ†’ M

                                                                                                                      Given an R-module M and an equivalence m โ‰ƒ n between arbitrary types, construct a linear equivalence (n โ†’ M) โ‰ƒโ‚—[R] (m โ†’ M)

                                                                                                                      Equations
                                                                                                                        Instances For
                                                                                                                          @[simp]
                                                                                                                          theorem LinearEquiv.funCongrLeft_apply (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {m : Type u_9} {n : Type u_10} (e : m โ‰ƒ n) (x : n โ†’ M) :
                                                                                                                          (funCongrLeft R M e) x = (LinearMap.funLeft R M โ‡‘e) x
                                                                                                                          @[simp]
                                                                                                                          theorem LinearEquiv.funCongrLeft_id (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {n : Type u_10} :
                                                                                                                          funCongrLeft R M (Equiv.refl n) = refl R (n โ†’ M)
                                                                                                                          @[simp]
                                                                                                                          theorem LinearEquiv.funCongrLeft_comp (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {m : Type u_9} {n : Type u_10} {p : Type u_11} (eโ‚ : m โ‰ƒ n) (eโ‚‚ : n โ‰ƒ p) :
                                                                                                                          funCongrLeft R M (eโ‚.trans eโ‚‚) = funCongrLeft R M eโ‚‚ โ‰ชโ‰ซโ‚— funCongrLeft R M eโ‚
                                                                                                                          @[simp]
                                                                                                                          theorem LinearEquiv.funCongrLeft_symm (R : Type u_1) (M : Type u_5) [Semiring R] [AddCommMonoid M] [Module R M] {m : Type u_9} {n : Type u_10} (e : m โ‰ƒ n) :
                                                                                                                          def LinearEquiv.sumPiEquivProdPi (R : Type u_9) [Semiring R] (S : Type u_10) (T : Type u_11) (A : S โŠ• T โ†’ Type u_12) [(st : S โŠ• T) โ†’ AddCommMonoid (A st)] [(st : S โŠ• T) โ†’ Module R (A st)] :
                                                                                                                          ((st : S โŠ• T) โ†’ A st) โ‰ƒโ‚—[R] ((s : S) โ†’ A (Sum.inl s)) ร— ((t : T) โ†’ A (Sum.inr t))

                                                                                                                          The product over S โŠ• T of a family of modules is isomorphic to the product of (the product over S) and (the product over T).

                                                                                                                          This is Equiv.sumPiEquivProdPi as a LinearEquiv.

                                                                                                                          Equations
                                                                                                                            Instances For
                                                                                                                              @[simp]
                                                                                                                              theorem LinearEquiv.sumPiEquivProdPi_symm_apply (R : Type u_9) [Semiring R] (S : Type u_10) (T : Type u_11) (A : S โŠ• T โ†’ Type u_12) [(st : S โŠ• T) โ†’ AddCommMonoid (A st)] [(st : S โŠ• T) โ†’ Module R (A st)] :
                                                                                                                              โ‡‘(sumPiEquivProdPi R S T A).symm = โ‡‘(Equiv.sumPiEquivProdPi A).symm
                                                                                                                              @[simp]
                                                                                                                              theorem LinearEquiv.sumPiEquivProdPi_apply (R : Type u_9) [Semiring R] (S : Type u_10) (T : Type u_11) (A : S โŠ• T โ†’ Type u_12) [(st : S โŠ• T) โ†’ AddCommMonoid (A st)] [(st : S โŠ• T) โ†’ Module R (A st)] :
                                                                                                                              โ‡‘(sumPiEquivProdPi R S T A) = โ‡‘(Equiv.sumPiEquivProdPi A)
                                                                                                                              def LinearEquiv.piUnique {ฮฑ : Type u_9} [Unique ฮฑ] (R : Type u_10) [Semiring R] (f : ฮฑ โ†’ Type u_11) [(x : ฮฑ) โ†’ AddCommMonoid (f x)] [(x : ฮฑ) โ†’ Module R (f x)] :
                                                                                                                              ((t : ฮฑ) โ†’ f t) โ‰ƒโ‚—[R] f default

                                                                                                                              The product ฮ  t : ฮฑ, f t of a family of modules is linearly isomorphic to the module f โฌ when ฮฑ only contains โฌ.

                                                                                                                              This is Equiv.piUnique as a LinearEquiv.

                                                                                                                              Equations
                                                                                                                                Instances For
                                                                                                                                  @[simp]
                                                                                                                                  theorem LinearEquiv.piUnique_apply {ฮฑ : Type u_9} [Unique ฮฑ] (R : Type u_10) [Semiring R] (f : ฮฑ โ†’ Type u_11) [(x : ฮฑ) โ†’ AddCommMonoid (f x)] [(x : ฮฑ) โ†’ Module R (f x)] :
                                                                                                                                  โ‡‘(piUnique R f) = (Equiv.piUnique f).toFun
                                                                                                                                  @[simp]
                                                                                                                                  theorem LinearEquiv.piUnique_symm_apply {ฮฑ : Type u_9} [Unique ฮฑ] (R : Type u_10) [Semiring R] (f : ฮฑ โ†’ Type u_11) [(x : ฮฑ) โ†’ AddCommMonoid (f x)] [(x : ฮฑ) โ†’ Module R (f x)] :