Documentation

Mathlib.Algebra.Module.TransferInstance

Transfer algebraic structures across Equivs #

This continues the pattern set in Mathlib/Algebra/Group/TransferInstance.lean.

@[reducible, inline]
abbrev Equiv.module (R : Type u_1) {α : Type u_2} {β : Type u_3} [Semiring R] (e : α β) [AddCommMonoid β] :
have x := e.addCommMonoid; [Module R β] → Module R α

Transfer Module across an Equiv

Equations
    Instances For
      def Equiv.linearEquiv (R : Type u_1) {α : Type u_2} {β : Type u_3} [Semiring R] (e : α β) [AddCommMonoid β] [Module R β] :
      let addCommMonoid := e.addCommMonoid; have module := Equiv.module R e; α ≃ₗ[R] β

      An equivalence e : α ≃ β gives a linear equivalence α ≃ₗ[R] β where the R-module structure on α is the one obtained by transporting an R-module structure on β back along e.

      Equations
        Instances For
          @[reducible, inline]
          abbrev AddEquiv.module {α : Type u_2} {β : Type u_3} (A : Type u_4) [Semiring A] [AddCommMonoid α] [AddCommMonoid β] [Module A β] (e : α ≃+ β) :
          Module A α

          Transport a module instance via an isomorphism of the underlying abelian groups. This has better definitional properties than Equiv.module since here the abelian group structure remains unmodified.

          Equations
            Instances For
              theorem LinearEquiv.isScalarTower {R : Type u_1} {α : Type u_2} {β : Type u_3} [Semiring R] (A : Type u_4) [Semiring A] [Module R A] [AddCommMonoid α] [AddCommMonoid β] [Module A β] [Module R α] [Module R β] [IsScalarTower R A β] (e : α ≃ₗ[R] β) :

              The module instance from AddEquiv.module is compatible with the R-module structures, if the AddEquiv is induced by an R-module isomorphism.