Documentation

Mathlib.Algebra.Equiv.TransferInstance

Transfer algebraic structures across Equivs #

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

noncomputable instance Equiv.instOneShrink {α : Type u} [Small.{v, u} α] [One α] :
Equations
noncomputable instance Equiv.instZeroShrink {α : Type u} [Small.{v, u} α] [Zero α] :
Equations
noncomputable instance Equiv.instMulShrink {α : Type u} [Small.{v, u} α] [Mul α] :
Equations
noncomputable instance Equiv.instAddShrink {α : Type u} [Small.{v, u} α] [Add α] :
Equations
noncomputable instance Equiv.instDivShrink {α : Type u} [Small.{v, u} α] [Div α] :
Equations
noncomputable instance Equiv.instSubShrink {α : Type u} [Small.{v, u} α] [Sub α] :
Equations
noncomputable instance Equiv.instInvShrink {α : Type u} [Small.{v, u} α] [Inv α] :
Equations
noncomputable instance Equiv.instNegShrink {α : Type u} [Small.{v, u} α] [Neg α] :
Equations
noncomputable instance Equiv.instSMulShrink {α : Type u} [Small.{v, u} α] (R : Type u_1) [SMul R α] :
Equations
noncomputable instance Equiv.instPowShrink {α : Type u} [Small.{v, u} α] (N : Type u_1) [Pow α N] :
Equations
noncomputable def Shrink.mulEquiv {α : Type u} [Small.{v, u} α] [Mul α] :

Shrink α to a smaller universe preserves multiplication.

Equations
Instances For
    noncomputable def Shrink.addEquiv {α : Type u} [Small.{v, u} α] [Add α] :

    Shrink α to a smaller universe preserves addition.

    Equations
    Instances For
      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 : β) :
        noncomputable def Shrink.ringEquiv (α : Type u) [Small.{v, u} α] [Add α] [Mul α] :

        Shrink α to a smaller universe preserves ring structure.

        Equations
        Instances For
          @[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
                                        noncomputable instance Equiv.instRingShrink {α : Type u} [Small.{v, u} α] [Ring α] :
                                        Equations
                                        @[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
                                                        noncomputable instance Equiv.instModuleShrink {α : Type u} (R : Type u_1) [Semiring R] [Small.{v, u} α] [AddCommMonoid α] [Module R α] :
                                                        Equations
                                                        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
                                                          noncomputable def Shrink.linearEquiv (α : Type u) (R : Type u_1) [Semiring R] [Small.{v, u} α] [AddCommMonoid α] [Module R α] :

                                                          Shrink α to a smaller universe preserves module structure.

                                                          Equations
                                                          Instances For
                                                            @[simp]
                                                            theorem Shrink.linearEquiv_apply (α : Type u) (R : Type u_1) [Semiring R] [Small.{v, u} α] [AddCommMonoid α] [Module R α] (a✝ : Shrink.{v, u} α) :
                                                            (linearEquiv α R) a✝ = (equivShrink α).symm a✝
                                                            @[simp]
                                                            theorem Shrink.linearEquiv_symm_apply (α : Type u) (R : Type u_1) [Semiring R] [Small.{v, u} α] [AddCommMonoid α] [Module R α] (a✝ : α) :
                                                            @[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)
                                                              noncomputable instance Equiv.instAlgebraShrink {α : Type u} (R : Type u_1) [CommSemiring R] [Small.{v, u} α] [Semiring α] [Algebra R α] :
                                                              Equations
                                                              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 : β) :
                                                                noncomputable def Shrink.algEquiv (α : Type u) (R : Type u_1) [CommSemiring R] [Small.{v, u} α] [Semiring α] [Algebra R α] :

                                                                Shrink α to a smaller universe preserves algebra structure.

                                                                Equations
                                                                Instances For
                                                                  @[simp]
                                                                  theorem Shrink.algEquiv_symm_apply (α : Type u) (R : Type u_1) [CommSemiring R] [Small.{v, u} α] [Semiring α] [Algebra R α] (a✝ : α) :
                                                                  (algEquiv α R).symm a✝ = (equivShrink α) a✝
                                                                  @[simp]
                                                                  theorem Shrink.algEquiv_apply (α : Type u) (R : Type u_1) [CommSemiring R] [Small.{v, u} α] [Semiring α] [Algebra R α] (a✝ : Shrink.{v, u} α) :
                                                                  (algEquiv α R) a✝ = (equivShrink α).symm a✝
                                                                  @[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.