Documentation

Mathlib.Algebra.Group.Equiv.Basic

Multiplicative and additive equivs #

This file contains basic results on MulEquiv and AddEquiv.

Tags #

Equiv, MulEquiv, AddEquiv

theorem MulEquivClass.toMulEquiv_injective {F : Type u_1} {α : Type u_2} {β : Type u_3} [EquivLike F α β] [Mul α] [Mul β] [MulEquivClass F α β] :
theorem AddEquivClass.toAddEquiv_injective {F : Type u_1} {α : Type u_2} {β : Type u_3} [EquivLike F α β] [Add α] [Add β] [AddEquivClass F α β] :
theorem MulEquivClass.isDedekindFiniteMonoid_iff {F : Type u_1} {α : Type u_2} {β : Type u_3} [EquivLike F α β] [MulOne α] [MulOne β] [MulEquivClass F α β] [OneHomClass F α β] (f : F) :
theorem AddEquivClass.isDedekindFiniteAddMonoid_iff {F : Type u_1} {α : Type u_2} {β : Type u_3} [EquivLike F α β] [AddZero α] [AddZero β] [AddEquivClass F α β] [ZeroHomClass F α β] (f : F) :
def MulEquiv.ofUnique {M : Type u_16} {N : Type u_17} [Unique M] [Unique N] [Mul M] [Mul N] :

The MulEquiv between two monoids with a unique element.

Equations
    Instances For
      def AddEquiv.ofUnique {M : Type u_16} {N : Type u_17} [Unique M] [Unique N] [Add M] [Add N] :

      The AddEquiv between two AddMonoids with a unique element.

      Equations
        Instances For
          instance MulEquiv.instUnique {M : Type u_16} {N : Type u_17} [Unique M] [Unique N] [Mul M] [Mul N] :

          There is a unique monoid homomorphism between two monoids with a unique element.

          Equations
            instance AddEquiv.instUnique {M : Type u_16} {N : Type u_17} [Unique M] [Unique N] [Add M] [Add N] :

            There is a unique additive monoid homomorphism between two additive monoids with a unique element.

            Equations
              def MulEquiv.funUnique (α : Type u_2) (M : Type u_4) [Mul M] [Unique α] :
              (α → M) ā‰ƒ* M

              If α has a unique term, then the product of magmas α → M is isomorphic to M.

              Equations
                Instances For
                  def AddEquiv.funUnique (α : Type u_2) (M : Type u_4) [Add M] [Unique α] :
                  (α → M) ā‰ƒ+ M

                  If α has a unique term, then the product of magmas α → M is isomorphic to M.

                  Equations
                    Instances For
                      @[simp]
                      theorem AddEquiv.funUnique_symm_apply (α : Type u_2) (M : Type u_4) [Add M] [Unique α] (x : M) (i : α) :
                      (funUnique α M).symm x i = x
                      @[simp]
                      theorem MulEquiv.funUnique_apply (α : Type u_2) (M : Type u_4) [Mul M] [Unique α] (f : (i : α) → (fun (a : α) => M) i) :
                      (funUnique α M) f = f default
                      @[simp]
                      theorem AddEquiv.funUnique_apply (α : Type u_2) (M : Type u_4) [Add M] [Unique α] (f : (i : α) → (fun (a : α) => M) i) :
                      (funUnique α M) f = f default
                      @[simp]
                      theorem MulEquiv.funUnique_symm_apply (α : Type u_2) (M : Type u_4) [Mul M] [Unique α] (x : M) (i : α) :
                      (funUnique α M).symm x i = x

                      Monoids #

                      def MulEquiv.arrowCongr {M : Type u_16} {N : Type u_17} {P : Type u_18} {Q : Type u_19} [Mul P] [Mul Q] (f : M ā‰ƒ N) (g : P ā‰ƒ* Q) :
                      (M → P) ā‰ƒ* (N → Q)

                      A multiplicative analogue of Equiv.arrowCongr, where the equivalence between the targets is multiplicative.

                      Equations
                        Instances For
                          def AddEquiv.arrowCongr {M : Type u_16} {N : Type u_17} {P : Type u_18} {Q : Type u_19} [Add P] [Add Q] (f : M ā‰ƒ N) (g : P ā‰ƒ+ Q) :
                          (M → P) ā‰ƒ+ (N → Q)

                          An additive analogue of Equiv.arrowCongr, where the equivalence between the targets is additive.

                          Equations
                            Instances For
                              @[simp]
                              theorem MulEquiv.arrowCongr_apply {M : Type u_16} {N : Type u_17} {P : Type u_18} {Q : Type u_19} [Mul P] [Mul Q] (f : M ā‰ƒ N) (g : P ā‰ƒ* Q) (h : M → P) (n : N) :
                              (arrowCongr f g) h n = g (h (f.symm n))
                              @[simp]
                              theorem AddEquiv.arrowCongr_apply {M : Type u_16} {N : Type u_17} {P : Type u_18} {Q : Type u_19} [Add P] [Add Q] (f : M ā‰ƒ N) (g : P ā‰ƒ+ Q) (h : M → P) (n : N) :
                              (arrowCongr f g) h n = g (h (f.symm n))
                              def MulEquiv.monoidHomCongrLeftEquiv {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [MulOneClass M₁] [MulOneClass Mā‚‚] [Monoid N] (e : M₁ ā‰ƒ* Mā‚‚) :
                              (M₁ →* N) ā‰ƒ (Mā‚‚ →* N)

                              The equivalence (M₁ →* N) ā‰ƒ (Mā‚‚ →* N) obtained by postcomposition with a multiplicative equivalence e : M₁ ā‰ƒ* Mā‚‚.

                              Equations
                                Instances For
                                  def AddEquiv.addMonoidHomCongrLeftEquiv {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [AddZeroClass M₁] [AddZeroClass Mā‚‚] [AddMonoid N] (e : M₁ ā‰ƒ+ Mā‚‚) :
                                  (M₁ →+ N) ā‰ƒ (Mā‚‚ →+ N)

                                  The equivalence (M₁ →+ N) ā‰ƒ (Mā‚‚ →+ N) obtained by postcomposition with an additive equivalence e : M₁ ā‰ƒ+ Mā‚‚.

                                  Equations
                                    Instances For
                                      @[simp]
                                      theorem AddEquiv.addMonoidHomCongrLeftEquiv_apply {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [AddZeroClass M₁] [AddZeroClass Mā‚‚] [AddMonoid N] (e : M₁ ā‰ƒ+ Mā‚‚) (f : M₁ →+ N) :
                                      @[simp]
                                      theorem MulEquiv.monoidHomCongrLeftEquiv_symm_apply {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [MulOneClass M₁] [MulOneClass Mā‚‚] [Monoid N] (e : M₁ ā‰ƒ* Mā‚‚) (f : Mā‚‚ →* N) :
                                      @[simp]
                                      theorem MulEquiv.monoidHomCongrLeftEquiv_apply {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [MulOneClass M₁] [MulOneClass Mā‚‚] [Monoid N] (e : M₁ ā‰ƒ* Mā‚‚) (f : M₁ →* N) :
                                      @[simp]
                                      theorem AddEquiv.addMonoidHomCongrLeftEquiv_symm_apply {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [AddZeroClass M₁] [AddZeroClass Mā‚‚] [AddMonoid N] (e : M₁ ā‰ƒ+ Mā‚‚) (f : Mā‚‚ →+ N) :
                                      def MulEquiv.monoidHomCongrRightEquiv {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [MulOneClass M] [Monoid N₁] [Monoid Nā‚‚] (e : N₁ ā‰ƒ* Nā‚‚) :
                                      (M →* N₁) ā‰ƒ (M →* Nā‚‚)

                                      The equivalence (M →* N₁) ā‰ƒ (M →* Nā‚‚) obtained by postcomposition with a multiplicative equivalence e : N₁ ā‰ƒ* Nā‚‚.

                                      Equations
                                        Instances For
                                          def AddEquiv.addMonoidHomCongrRightEquiv {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [AddZeroClass M] [AddMonoid N₁] [AddMonoid Nā‚‚] (e : N₁ ā‰ƒ+ Nā‚‚) :
                                          (M →+ N₁) ā‰ƒ (M →+ Nā‚‚)

                                          The equivalence (M →+ N₁) ā‰ƒ (M →+ Nā‚‚) obtained by postcomposition with an additive equivalence e : N₁ ā‰ƒ+ Nā‚‚.

                                          Equations
                                            Instances For
                                              @[simp]
                                              theorem MulEquiv.monoidHomCongrRightEquiv_symm_apply {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [MulOneClass M] [Monoid N₁] [Monoid Nā‚‚] (e : N₁ ā‰ƒ* Nā‚‚) (hmn : M →* Nā‚‚) :
                                              @[simp]
                                              theorem AddEquiv.addMonoidHomCongrRightEquiv_symm_apply {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [AddZeroClass M] [AddMonoid N₁] [AddMonoid Nā‚‚] (e : N₁ ā‰ƒ+ Nā‚‚) (hmn : M →+ Nā‚‚) :
                                              @[simp]
                                              theorem MulEquiv.monoidHomCongrRightEquiv_apply {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [MulOneClass M] [Monoid N₁] [Monoid Nā‚‚] (e : N₁ ā‰ƒ* Nā‚‚) (hmn : M →* N₁) :
                                              @[simp]
                                              theorem AddEquiv.addMonoidHomCongrRightEquiv_apply {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [AddZeroClass M] [AddMonoid N₁] [AddMonoid Nā‚‚] (e : N₁ ā‰ƒ+ Nā‚‚) (hmn : M →+ N₁) :
                                              @[simp]
                                              theorem MulEquiv.symm_monoidHomCongrLeftEquiv {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [MulOneClass M₁] [MulOneClass Mā‚‚] [Monoid N] (e : M₁ ā‰ƒ* Mā‚‚) :
                                              @[simp]
                                              theorem AddEquiv.symm_addMonoidHomCongrLeftEquiv {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [AddZeroClass M₁] [AddZeroClass Mā‚‚] [AddMonoid N] (e : M₁ ā‰ƒ+ Mā‚‚) :
                                              @[simp]
                                              theorem MulEquiv.symm_monoidHomCongrRightEquiv {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [MulOneClass M] [Monoid N₁] [Monoid Nā‚‚] (e : N₁ ā‰ƒ* Nā‚‚) :
                                              @[simp]
                                              theorem AddEquiv.symm_addMonoidHomCongrRightEquiv {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [AddZeroClass M] [AddMonoid N₁] [AddMonoid Nā‚‚] (e : N₁ ā‰ƒ+ Nā‚‚) :
                                              @[simp]
                                              theorem MulEquiv.monoidHomCongrLeftEquiv_trans {M₁ : Type u_5} {Mā‚‚ : Type u_6} {Mā‚ƒ : Type u_7} {N : Type u_8} [MulOneClass M₁] [MulOneClass Mā‚‚] [MulOneClass Mā‚ƒ] [Monoid N] (e₁₂ : M₁ ā‰ƒ* Mā‚‚) (eā‚‚ā‚ƒ : Mā‚‚ ā‰ƒ* Mā‚ƒ) :
                                              (e₁₂.trans eā‚‚ā‚ƒ).monoidHomCongrLeftEquiv = e₁₂.monoidHomCongrLeftEquiv.trans eā‚‚ā‚ƒ.monoidHomCongrLeftEquiv
                                              @[simp]
                                              theorem AddEquiv.addMonoidHomCongrLeftEquiv_trans {M₁ : Type u_5} {Mā‚‚ : Type u_6} {Mā‚ƒ : Type u_7} {N : Type u_8} [AddZeroClass M₁] [AddZeroClass Mā‚‚] [AddZeroClass Mā‚ƒ] [AddMonoid N] (e₁₂ : M₁ ā‰ƒ+ Mā‚‚) (eā‚‚ā‚ƒ : Mā‚‚ ā‰ƒ+ Mā‚ƒ) :
                                              (e₁₂.trans eā‚‚ā‚ƒ).addMonoidHomCongrLeftEquiv = e₁₂.addMonoidHomCongrLeftEquiv.trans eā‚‚ā‚ƒ.addMonoidHomCongrLeftEquiv
                                              @[simp]
                                              theorem MulEquiv.monoidHomCongrRightEquiv_trans {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} {Nā‚ƒ : Type u_11} [MulOneClass M] [Monoid N₁] [Monoid Nā‚‚] [Monoid Nā‚ƒ] (e₁₂ : N₁ ā‰ƒ* Nā‚‚) (eā‚‚ā‚ƒ : Nā‚‚ ā‰ƒ* Nā‚ƒ) :
                                              (e₁₂.trans eā‚‚ā‚ƒ).monoidHomCongrRightEquiv = e₁₂.monoidHomCongrRightEquiv.trans eā‚‚ā‚ƒ.monoidHomCongrRightEquiv
                                              @[simp]
                                              theorem AddEquiv.addMonoidHomCongrRightEquiv_trans {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} {Nā‚ƒ : Type u_11} [AddZeroClass M] [AddMonoid N₁] [AddMonoid Nā‚‚] [AddMonoid Nā‚ƒ] (e₁₂ : N₁ ā‰ƒ+ Nā‚‚) (eā‚‚ā‚ƒ : Nā‚‚ ā‰ƒ+ Nā‚ƒ) :
                                              (e₁₂.trans eā‚‚ā‚ƒ).addMonoidHomCongrRightEquiv = e₁₂.addMonoidHomCongrRightEquiv.trans eā‚‚ā‚ƒ.addMonoidHomCongrRightEquiv
                                              def MulEquiv.monoidHomCongrLeft {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [MulOneClass M₁] [MulOneClass Mā‚‚] [CommMonoid N] (e : M₁ ā‰ƒ* Mā‚‚) :
                                              (M₁ →* N) ā‰ƒ* (Mā‚‚ →* N)

                                              The isomorphism (M₁ →* N) ā‰ƒ* (Mā‚‚ →* N) obtained by postcomposition with a multiplicative equivalence e : M₁ ā‰ƒ* Mā‚‚.

                                              Equations
                                                Instances For
                                                  def AddEquiv.addMonoidHomCongrLeft {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [AddZeroClass M₁] [AddZeroClass Mā‚‚] [AddCommMonoid N] (e : M₁ ā‰ƒ+ Mā‚‚) :
                                                  (M₁ →+ N) ā‰ƒ+ (Mā‚‚ →+ N)

                                                  The isomorphism (M₁ →+ N) ā‰ƒ+ (Mā‚‚ →+ N) obtained by postcomposition with an additive equivalence e : M₁ ā‰ƒ+ Mā‚‚.

                                                  Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem AddEquiv.addMonoidHomCongrLeft_apply {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [AddZeroClass M₁] [AddZeroClass Mā‚‚] [AddCommMonoid N] (e : M₁ ā‰ƒ+ Mā‚‚) (f : M₁ →+ N) :
                                                      @[simp]
                                                      theorem MulEquiv.monoidHomCongrLeft_apply {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [MulOneClass M₁] [MulOneClass Mā‚‚] [CommMonoid N] (e : M₁ ā‰ƒ* Mā‚‚) (f : M₁ →* N) :
                                                      def MulEquiv.monoidHomCongrRight {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [MulOneClass M] [CommMonoid N₁] [CommMonoid Nā‚‚] (e : N₁ ā‰ƒ* Nā‚‚) :
                                                      (M →* N₁) ā‰ƒ* (M →* Nā‚‚)

                                                      The isomorphism (M →* N₁) ā‰ƒ* (M →* Nā‚‚) obtained by postcomposition with a multiplicative equivalence e : N₁ ā‰ƒ* Nā‚‚.

                                                      Equations
                                                        Instances For
                                                          def AddEquiv.addMonoidHomCongrRight {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [AddZeroClass M] [AddCommMonoid N₁] [AddCommMonoid Nā‚‚] (e : N₁ ā‰ƒ+ Nā‚‚) :
                                                          (M →+ N₁) ā‰ƒ+ (M →+ Nā‚‚)

                                                          The isomorphism (M →+ N₁) ā‰ƒ+ (M →+ Nā‚‚) obtained by postcomposition with an additive equivalence e : N₁ ā‰ƒ+ Nā‚‚.

                                                          Equations
                                                            Instances For
                                                              @[simp]
                                                              theorem AddEquiv.addMonoidHomCongrRight_apply {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [AddZeroClass M] [AddCommMonoid N₁] [AddCommMonoid Nā‚‚] (e : N₁ ā‰ƒ+ Nā‚‚) (hmn : M →+ N₁) :
                                                              e.addMonoidHomCongrRight hmn = (↑e).comp hmn
                                                              @[simp]
                                                              theorem MulEquiv.monoidHomCongrRight_apply {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [MulOneClass M] [CommMonoid N₁] [CommMonoid Nā‚‚] (e : N₁ ā‰ƒ* Nā‚‚) (hmn : M →* N₁) :
                                                              e.monoidHomCongrRight hmn = (↑e).comp hmn
                                                              @[simp]
                                                              theorem MulEquiv.symm_monoidHomCongrLeft {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [MulOneClass M₁] [MulOneClass Mā‚‚] [CommMonoid N] (e : M₁ ā‰ƒ* Mā‚‚) :
                                                              @[simp]
                                                              theorem AddEquiv.symm_addMonoidHomCongrLeft {M₁ : Type u_5} {Mā‚‚ : Type u_6} {N : Type u_8} [AddZeroClass M₁] [AddZeroClass Mā‚‚] [AddCommMonoid N] (e : M₁ ā‰ƒ+ Mā‚‚) :
                                                              @[simp]
                                                              theorem MulEquiv.symm_monoidHomCongrRight {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [MulOneClass M] [CommMonoid N₁] [CommMonoid Nā‚‚] (e : N₁ ā‰ƒ* Nā‚‚) :
                                                              @[simp]
                                                              theorem AddEquiv.symm_addMonoidHomCongrRight {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} [AddZeroClass M] [AddCommMonoid N₁] [AddCommMonoid Nā‚‚] (e : N₁ ā‰ƒ+ Nā‚‚) :
                                                              @[simp]
                                                              theorem MulEquiv.monoidHomCongrLeft_trans {M₁ : Type u_5} {Mā‚‚ : Type u_6} {Mā‚ƒ : Type u_7} {N : Type u_8} [MulOneClass M₁] [MulOneClass Mā‚‚] [MulOneClass Mā‚ƒ] [CommMonoid N] (e₁₂ : M₁ ā‰ƒ* Mā‚‚) (eā‚‚ā‚ƒ : Mā‚‚ ā‰ƒ* Mā‚ƒ) :
                                                              (e₁₂.trans eā‚‚ā‚ƒ).monoidHomCongrLeft = e₁₂.monoidHomCongrLeft.trans eā‚‚ā‚ƒ.monoidHomCongrLeft
                                                              @[simp]
                                                              theorem AddEquiv.addMonoidHomCongrLeft_trans {M₁ : Type u_5} {Mā‚‚ : Type u_6} {Mā‚ƒ : Type u_7} {N : Type u_8} [AddZeroClass M₁] [AddZeroClass Mā‚‚] [AddZeroClass Mā‚ƒ] [AddCommMonoid N] (e₁₂ : M₁ ā‰ƒ+ Mā‚‚) (eā‚‚ā‚ƒ : Mā‚‚ ā‰ƒ+ Mā‚ƒ) :
                                                              (e₁₂.trans eā‚‚ā‚ƒ).addMonoidHomCongrLeft = e₁₂.addMonoidHomCongrLeft.trans eā‚‚ā‚ƒ.addMonoidHomCongrLeft
                                                              @[simp]
                                                              theorem MulEquiv.monoidHomCongrRight_trans {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} {Nā‚ƒ : Type u_11} [MulOneClass M] [CommMonoid N₁] [CommMonoid Nā‚‚] [CommMonoid Nā‚ƒ] (e₁₂ : N₁ ā‰ƒ* Nā‚‚) (eā‚‚ā‚ƒ : Nā‚‚ ā‰ƒ* Nā‚ƒ) :
                                                              (e₁₂.trans eā‚‚ā‚ƒ).monoidHomCongrRight = e₁₂.monoidHomCongrRight.trans eā‚‚ā‚ƒ.monoidHomCongrRight
                                                              @[simp]
                                                              theorem AddEquiv.addMonoidHomCongrRight_trans {M : Type u_4} {N₁ : Type u_9} {Nā‚‚ : Type u_10} {Nā‚ƒ : Type u_11} [AddZeroClass M] [AddCommMonoid N₁] [AddCommMonoid Nā‚‚] [AddCommMonoid Nā‚ƒ] (e₁₂ : N₁ ā‰ƒ+ Nā‚‚) (eā‚‚ā‚ƒ : Nā‚‚ ā‰ƒ+ Nā‚ƒ) :
                                                              (e₁₂.trans eā‚‚ā‚ƒ).addMonoidHomCongrRight = e₁₂.addMonoidHomCongrRight.trans eā‚‚ā‚ƒ.addMonoidHomCongrRight
                                                              def MulEquiv.piCongrRight {Ī· : Type u_16} {Ms : Ī· → Type u_17} {Ns : Ī· → Type u_18} [(j : Ī·) → Mul (Ms j)] [(j : Ī·) → Mul (Ns j)] (es : (j : Ī·) → Ms j ā‰ƒ* Ns j) :
                                                              ((j : Ī·) → Ms j) ā‰ƒ* ((j : Ī·) → Ns j)

                                                              A family of multiplicative equivalences Ī  j, (Ms j ā‰ƒ* Ns j) generates a multiplicative equivalence between Ī  j, Ms j and Ī  j, Ns j.

                                                              This is the MulEquiv version of Equiv.piCongrRight, and the dependent version of MulEquiv.arrowCongr.

                                                              Equations
                                                                Instances For
                                                                  def AddEquiv.piCongrRight {Ī· : Type u_16} {Ms : Ī· → Type u_17} {Ns : Ī· → Type u_18} [(j : Ī·) → Add (Ms j)] [(j : Ī·) → Add (Ns j)] (es : (j : Ī·) → Ms j ā‰ƒ+ Ns j) :
                                                                  ((j : Ī·) → Ms j) ā‰ƒ+ ((j : Ī·) → Ns j)

                                                                  A family of additive equivalences Ī  j, (Ms j ā‰ƒ+ Ns j) generates an additive equivalence between Ī  j, Ms j and Ī  j, Ns j.

                                                                  This is the AddEquiv version of Equiv.piCongrRight, and the dependent version of AddEquiv.arrowCongr.

                                                                  Equations
                                                                    Instances For
                                                                      @[simp]
                                                                      theorem MulEquiv.piCongrRight_apply {Ī· : Type u_16} {Ms : Ī· → Type u_17} {Ns : Ī· → Type u_18} [(j : Ī·) → Mul (Ms j)] [(j : Ī·) → Mul (Ns j)] (es : (j : Ī·) → Ms j ā‰ƒ* Ns j) (x : (j : Ī·) → Ms j) (j : Ī·) :
                                                                      (piCongrRight es) x j = (es j) (x j)
                                                                      @[simp]
                                                                      theorem AddEquiv.piCongrRight_apply {Ī· : Type u_16} {Ms : Ī· → Type u_17} {Ns : Ī· → Type u_18} [(j : Ī·) → Add (Ms j)] [(j : Ī·) → Add (Ns j)] (es : (j : Ī·) → Ms j ā‰ƒ+ Ns j) (x : (j : Ī·) → Ms j) (j : Ī·) :
                                                                      (piCongrRight es) x j = (es j) (x j)
                                                                      @[simp]
                                                                      theorem MulEquiv.piCongrRight_refl {Ī· : Type u_16} {Ms : Ī· → Type u_17} [(j : Ī·) → Mul (Ms j)] :
                                                                      (piCongrRight fun (j : Ī·) => refl (Ms j)) = refl ((j : Ī·) → Ms j)
                                                                      @[simp]
                                                                      theorem AddEquiv.piCongrRight_refl {Ī· : Type u_16} {Ms : Ī· → Type u_17} [(j : Ī·) → Add (Ms j)] :
                                                                      (piCongrRight fun (j : Ī·) => refl (Ms j)) = refl ((j : Ī·) → Ms j)
                                                                      @[simp]
                                                                      theorem MulEquiv.piCongrRight_symm {Ī· : Type u_16} {Ms : Ī· → Type u_17} {Ns : Ī· → Type u_18} [(j : Ī·) → Mul (Ms j)] [(j : Ī·) → Mul (Ns j)] (es : (j : Ī·) → Ms j ā‰ƒ* Ns j) :
                                                                      (piCongrRight es).symm = piCongrRight fun (i : Ī·) => (es i).symm
                                                                      @[simp]
                                                                      theorem AddEquiv.piCongrRight_symm {Ī· : Type u_16} {Ms : Ī· → Type u_17} {Ns : Ī· → Type u_18} [(j : Ī·) → Add (Ms j)] [(j : Ī·) → Add (Ns j)] (es : (j : Ī·) → Ms j ā‰ƒ+ Ns j) :
                                                                      (piCongrRight es).symm = piCongrRight fun (i : Ī·) => (es i).symm
                                                                      @[simp]
                                                                      theorem MulEquiv.piCongrRight_trans {Ī· : Type u_16} {Ms : Ī· → Type u_17} {Ns : Ī· → Type u_18} {Ps : Ī· → Type u_19} [(j : Ī·) → Mul (Ms j)] [(j : Ī·) → Mul (Ns j)] [(j : Ī·) → Mul (Ps j)] (es : (j : Ī·) → Ms j ā‰ƒ* Ns j) (fs : (j : Ī·) → Ns j ā‰ƒ* Ps j) :
                                                                      (piCongrRight es).trans (piCongrRight fs) = piCongrRight fun (i : Ī·) => (es i).trans (fs i)
                                                                      @[simp]
                                                                      theorem AddEquiv.piCongrRight_trans {Ī· : Type u_16} {Ms : Ī· → Type u_17} {Ns : Ī· → Type u_18} {Ps : Ī· → Type u_19} [(j : Ī·) → Add (Ms j)] [(j : Ī·) → Add (Ns j)] [(j : Ī·) → Add (Ps j)] (es : (j : Ī·) → Ms j ā‰ƒ+ Ns j) (fs : (j : Ī·) → Ns j ā‰ƒ+ Ps j) :
                                                                      (piCongrRight es).trans (piCongrRight fs) = piCongrRight fun (i : Ī·) => (es i).trans (fs i)
                                                                      def MulEquiv.piUnique {ι : Type u_16} (M : ι → Type u_17) [(j : ι) → Mul (M j)] [Unique ι] :
                                                                      ((j : ι) → M j) ā‰ƒ* M default

                                                                      A family indexed by a type with a unique element is MulEquiv to the element at the single index.

                                                                      Equations
                                                                        Instances For
                                                                          def AddEquiv.piUnique {ι : Type u_16} (M : ι → Type u_17) [(j : ι) → Add (M j)] [Unique ι] :
                                                                          ((j : ι) → M j) ā‰ƒ+ M default

                                                                          A family indexed by a type with a unique element is AddEquiv to the element at the single index.

                                                                          Equations
                                                                            Instances For
                                                                              @[simp]
                                                                              theorem AddEquiv.piUnique_symm_apply {ι : Type u_16} (M : ι → Type u_17) [(j : ι) → Add (M j)] [Unique ι] (x : M default) (i : ι) :
                                                                              @[simp]
                                                                              theorem AddEquiv.piUnique_apply {ι : Type u_16} (M : ι → Type u_17) [(j : ι) → Add (M j)] [Unique ι] (f : (i : ι) → M i) :
                                                                              @[simp]
                                                                              theorem MulEquiv.piUnique_symm_apply {ι : Type u_16} (M : ι → Type u_17) [(j : ι) → Mul (M j)] [Unique ι] (x : M default) (i : ι) :
                                                                              @[simp]
                                                                              theorem MulEquiv.piUnique_apply {ι : Type u_16} (M : ι → Type u_17) [(j : ι) → Mul (M j)] [Unique ι] (f : (i : ι) → M i) :
                                                                              def Equiv.inv (G : Type u_14) [InvolutiveInv G] :

                                                                              Inversion on a Group or GroupWithZero is a permutation of the underlying type.

                                                                              Equations
                                                                                Instances For
                                                                                  def Equiv.neg (G : Type u_14) [InvolutiveNeg G] :

                                                                                  Negation on an AddGroup is a permutation of the underlying type.

                                                                                  Equations
                                                                                    Instances For
                                                                                      @[simp]
                                                                                      theorem Equiv.inv_apply (G : Type u_14) [InvolutiveInv G] :
                                                                                      ⇑(Equiv.inv G) = Inv.inv
                                                                                      @[simp]
                                                                                      theorem Equiv.neg_apply (G : Type u_14) [InvolutiveNeg G] :
                                                                                      ⇑(Equiv.neg G) = Neg.neg