Documentation

Mathlib.Algebra.Equiv.TransferInstance

Transfer algebraic structures across Equivs #

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

def Equiv.ringEquiv {α : Type u} {β : Type v} (e : α β) [Add β] [Mul β] :
have add := e.add; have mul := e.mul; α ≃+* β

An equivalence e : α ≃ β gives a ring equivalence α ≃+* β where the ring structure on α is the one obtained by transporting a ring structure on β back along e.

Equations
  • e.ringEquiv = { toEquiv := e, map_mul' := , map_add' := }
Instances For
    @[simp]
    theorem Equiv.ringEquiv_apply {α : Type u} {β : Type v} (e : α β) [Add β] [Mul β] (a : α) :
    e.ringEquiv a = e a
    theorem Equiv.ringEquiv_symm_apply {α : Type u} {β : Type v} (e : α β) [Add β] [Mul β] (b : β) :
    @[reducible, inline]
    abbrev Equiv.semigroupWithZero {α : Type u} {β : Type v} (e : α β) [SemigroupWithZero β] :

    Transfer SemigroupWithZero across an Equiv

    Equations
    Instances For
      @[reducible, inline]
      abbrev Equiv.mulZeroClass {α : Type u} {β : Type v} (e : α β) [MulZeroClass β] :

      Transfer MulZeroClass across an Equiv

      Equations
      Instances For
        @[reducible, inline]
        abbrev Equiv.mulZeroOneClass {α : Type u} {β : Type v} (e : α β) [MulZeroOneClass β] :

        Transfer MulZeroOneClass across an Equiv

        Equations
        Instances For
          @[reducible, inline]

          Transfer NonUnitalNonAssocSemiring across an Equiv

          Equations
          Instances For
            @[reducible, inline]
            abbrev Equiv.nonUnitalSemiring {α : Type u} {β : Type v} (e : α β) [NonUnitalSemiring β] :

            Transfer NonUnitalSemiring across an Equiv

            Equations
            Instances For
              @[reducible, inline]
              abbrev Equiv.addMonoidWithOne {α : Type u} {β : Type v} (e : α β) [AddMonoidWithOne β] :

              Transfer AddMonoidWithOne across an Equiv

              Equations
              Instances For
                @[reducible, inline]
                abbrev Equiv.addGroupWithOne {α : Type u} {β : Type v} (e : α β) [AddGroupWithOne β] :

                Transfer AddGroupWithOne across an Equiv

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[reducible, inline]
                  abbrev Equiv.nonAssocSemiring {α : Type u} {β : Type v} (e : α β) [NonAssocSemiring β] :

                  Transfer NonAssocSemiring across an Equiv

                  Equations
                  Instances For
                    @[reducible, inline]
                    abbrev Equiv.semiring {α : Type u} {β : Type v} (e : α β) [Semiring β] :

                    Transfer Semiring across an Equiv

                    Equations
                    Instances For
                      @[reducible, inline]

                      Transfer NonUnitalCommSemiring across an Equiv

                      Equations
                      Instances For
                        @[reducible, inline]
                        abbrev Equiv.commSemiring {α : Type u} {β : Type v} (e : α β) [CommSemiring β] :

                        Transfer CommSemiring across an Equiv

                        Equations
                        Instances For
                          @[reducible, inline]

                          Transfer NonUnitalNonAssocRing across an Equiv

                          Equations
                          Instances For
                            @[reducible, inline]
                            abbrev Equiv.nonUnitalRing {α : Type u} {β : Type v} (e : α β) [NonUnitalRing β] :

                            Transfer NonUnitalRing across an Equiv

                            Equations
                            Instances For
                              @[reducible, inline]
                              abbrev Equiv.nonAssocRing {α : Type u} {β : Type v} (e : α β) [NonAssocRing β] :

                              Transfer NonAssocRing across an Equiv

                              Equations
                              Instances For
                                @[reducible, inline]
                                abbrev Equiv.ring {α : Type u} {β : Type v} (e : α β) [Ring β] :
                                Ring α

                                Transfer Ring across an Equiv

                                Equations
                                Instances For
                                  @[reducible, inline]
                                  abbrev Equiv.nonUnitalCommRing {α : Type u} {β : Type v} (e : α β) [NonUnitalCommRing β] :

                                  Transfer NonUnitalCommRing across an Equiv

                                  Equations
                                  Instances For
                                    @[reducible, inline]
                                    abbrev Equiv.commRing {α : Type u} {β : Type v} (e : α β) [CommRing β] :

                                    Transfer CommRing across an Equiv

                                    Equations
                                    Instances For
                                      theorem Equiv.isDomain {α : Type u} {β : Type v} [Semiring α] [Semiring β] [IsDomain β] (e : α ≃+* β) :

                                      Transfer IsDomain across an Equiv

                                      @[reducible, inline]
                                      abbrev Equiv.nnratCast {α : Type u} {β : Type v} (e : α β) [NNRatCast β] :

                                      Transfer NNRatCast across an Equiv

                                      Equations
                                      Instances For
                                        @[reducible, inline]
                                        abbrev Equiv.ratCast {α : Type u} {β : Type v} (e : α β) [RatCast β] :

                                        Transfer RatCast across an Equiv

                                        Equations
                                        Instances For
                                          @[reducible, inline]
                                          abbrev Equiv.divisionRing {α : Type u} {β : Type v} (e : α β) [DivisionRing β] :

                                          Transfer DivisionRing across an Equiv

                                          Equations
                                          Instances For
                                            @[reducible, inline]
                                            abbrev Equiv.field {α : Type u} {β : Type v} (e : α β) [Field β] :

                                            Transfer Field across an Equiv

                                            Equations
                                            Instances For
                                              @[reducible, inline]
                                              abbrev Equiv.distribMulAction {α : Type u} {β : Type v} (R : Type u_1) [Monoid R] (e : α β) [AddCommMonoid β] [DistribMulAction R β] :

                                              Transfer DistribMulAction across an Equiv

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

                                                Transfer Module across an Equiv

                                                Equations
                                                Instances For
                                                  def Equiv.linearEquiv {α : Type u} {β : Type v} (R : Type u_1) [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 Equiv.algebra {α : Type u} {β : Type v} (R : Type u_1) [CommSemiring R] (e : α β) [Semiring β] :
                                                    have x := e.semiring; [Algebra R β] → Algebra R α

                                                    Transfer Algebra across an Equiv

                                                    Equations
                                                    Instances For
                                                      theorem Equiv.algebraMap_def {α : Type u} {β : Type v} (R : Type u_1) [CommSemiring R] (e : α β) [Semiring β] [Algebra R β] (r : R) :
                                                      (algebraMap R α) r = e.symm ((algebraMap R β) r)
                                                      def Equiv.algEquiv {α : Type u} {β : Type v} (R : Type u_1) [CommSemiring R] (e : α β) [Semiring β] [Algebra R β] :
                                                      let semiring := e.semiring; have algebra := Equiv.algebra R e; α ≃ₐ[R] β

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

                                                      Equations
                                                      Instances For
                                                        @[simp]
                                                        theorem Equiv.algEquiv_apply {α : Type u} {β : Type v} (R : Type u_1) [CommSemiring R] (e : α β) [Semiring β] [Algebra R β] (a : α) :
                                                        (algEquiv R e) a = e a
                                                        theorem Equiv.algEquiv_symm_apply {α : Type u} {β : Type v} (R : Type u_1) [CommSemiring R] (e : α β) [Semiring β] [Algebra R β] (b : β) :
                                                        @[reducible, inline]
                                                        abbrev AddEquiv.module {α : Type u} {β : Type v} (A : Type u_2) [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 {α : Type u} {β : Type v} {R : Type u_1} [CommSemiring R] (A : Type u_2) [Semiring A] [Algebra 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.