Documentation

Mathlib.Algebra.Group.Units.Equiv

Multiplicative and additive equivalence acting on units. #

def toUnits {G : Type u_5} [Group G] :

A group is isomorphic to its group of units.

Equations
    Instances For
      def toAddUnits {G : Type u_5} [AddGroup G] :

      An additive group is isomorphic to its group of additive units

      Equations
        Instances For
          @[simp]
          theorem val_toUnits_apply {G : Type u_5} [Group G] (x : G) :
          โ†‘(toUnits x) = x
          @[simp]
          theorem toUnits_symm_apply {G : Type u_5} [Group G] (x : Gหฃ) :
          toUnits.symm x = โ†‘x
          @[simp]
          theorem val_toAddUnits_apply {G : Type u_5} [AddGroup G] (x : G) :
          โ†‘(toAddUnits x) = x
          @[simp]
          theorem toAddUnits_symm_apply {G : Type u_5} [AddGroup G] (x : AddUnits G) :
          toAddUnits.symm x = โ†‘x
          @[simp]
          theorem toUnits_val_apply {G : Type u_6} [Group G] (x : Gหฃ) :
          toUnits โ†‘x = x
          @[simp]
          theorem toAddUnits_val_apply {G : Type u_6} [AddGroup G] (x : AddUnits G) :
          toAddUnits โ†‘x = x
          def Units.mapEquiv {M : Type u_3} {N : Type u_4} [Monoid M] [Monoid N] (h : M โ‰ƒ* N) :

          A multiplicative equivalence of monoids defines a multiplicative equivalence of their groups of units.

          Equations
            Instances For
              @[simp]
              theorem Units.mapEquiv_symm {M : Type u_3} {N : Type u_4} [Monoid M] [Monoid N] (h : M โ‰ƒ* N) :
              @[simp]
              theorem Units.coe_mapEquiv {M : Type u_3} {N : Type u_4} [Monoid M] [Monoid N] (h : M โ‰ƒ* N) (x : Mหฃ) :
              โ†‘((mapEquiv h) x) = h โ†‘x
              def Units.mulLeft {M : Type u_3} [Monoid M] (u : Mหฃ) :

              Left multiplication by a unit of a monoid is a permutation of the underlying type.

              Equations
                Instances For
                  def AddUnits.addLeft {M : Type u_3} [AddMonoid M] (u : AddUnits M) :

                  Left addition of an additive unit is a permutation of the underlying type.

                  Equations
                    Instances For
                      @[simp]
                      theorem Units.mulLeft_apply {M : Type u_3} [Monoid M] (u : Mหฃ) :
                      โ‡‘u.mulLeft = fun (x : M) => โ†‘u * x
                      @[simp]
                      theorem AddUnits.addLeft_apply {M : Type u_3} [AddMonoid M] (u : AddUnits M) :
                      โ‡‘u.addLeft = fun (x : M) => โ†‘u + x
                      theorem Units.mulLeft_bijective {M : Type u_3} [Monoid M] (a : Mหฃ) :
                      Function.Bijective fun (x : M) => โ†‘a * x
                      theorem AddUnits.addLeft_bijective {M : Type u_3} [AddMonoid M] (a : AddUnits M) :
                      Function.Bijective fun (x : M) => โ†‘a + x
                      def Units.mulRight {M : Type u_3} [Monoid M] (u : Mหฃ) :

                      Right multiplication by a unit of a monoid is a permutation of the underlying type.

                      Equations
                        Instances For
                          def AddUnits.addRight {M : Type u_3} [AddMonoid M] (u : AddUnits M) :

                          Right addition of an additive unit is a permutation of the underlying type.

                          Equations
                            Instances For
                              @[simp]
                              theorem AddUnits.addRight_apply {M : Type u_3} [AddMonoid M] (u : AddUnits M) :
                              โ‡‘u.addRight = fun (x : M) => x + โ†‘u
                              @[simp]
                              theorem Units.mulRight_apply {M : Type u_3} [Monoid M] (u : Mหฃ) :
                              โ‡‘u.mulRight = fun (x : M) => x * โ†‘u
                              theorem Units.mulRight_bijective {M : Type u_3} [Monoid M] (a : Mหฃ) :
                              Function.Bijective fun (x : M) => x * โ†‘a
                              theorem AddUnits.addRight_bijective {M : Type u_3} [AddMonoid M] (a : AddUnits M) :
                              Function.Bijective fun (x : M) => x + โ†‘a
                              def Equiv.mulLeft {G : Type u_5} [Group G] (a : G) :

                              Left multiplication in a Group is a permutation of the underlying type.

                              Equations
                                Instances For
                                  def Equiv.addLeft {G : Type u_5} [AddGroup G] (a : G) :

                                  Left addition in an AddGroup is a permutation of the underlying type.

                                  Equations
                                    Instances For
                                      @[simp]
                                      theorem Equiv.coe_mulLeft {G : Type u_5} [Group G] (a : G) :
                                      โ‡‘(Equiv.mulLeft a) = fun (x : G) => a * x
                                      @[simp]
                                      theorem Equiv.coe_addLeft {G : Type u_5} [AddGroup G] (a : G) :
                                      โ‡‘(Equiv.addLeft a) = fun (x : G) => a + x
                                      @[simp]
                                      theorem Equiv.mulLeft_symm_apply {G : Type u_5} [Group G] (a : G) :
                                      โ‡‘(Equiv.symm (Equiv.mulLeft a)) = fun (x : G) => aโปยน * x

                                      Extra simp lemma that dsimp can use. simp will never use this.

                                      @[simp]
                                      theorem Equiv.addLeft_symm_apply {G : Type u_5} [AddGroup G] (a : G) :
                                      โ‡‘(Equiv.symm (Equiv.addLeft a)) = fun (x : G) => -a + x

                                      Extra simp lemma that dsimp can use. simp will never use this.

                                      theorem Group.mulLeft_bijective {G : Type u_5} [Group G] (a : G) :
                                      Function.Bijective fun (x : G) => a * x
                                      theorem AddGroup.addLeft_bijective {G : Type u_5} [AddGroup G] (a : G) :
                                      Function.Bijective fun (x : G) => a + x
                                      def Equiv.mulRight {G : Type u_5} [Group G] (a : G) :

                                      Right multiplication in a Group is a permutation of the underlying type.

                                      Equations
                                        Instances For
                                          def Equiv.addRight {G : Type u_5} [AddGroup G] (a : G) :

                                          Right addition in an AddGroup is a permutation of the underlying type.

                                          Equations
                                            Instances For
                                              @[simp]
                                              theorem Equiv.coe_mulRight {G : Type u_5} [Group G] (a : G) :
                                              โ‡‘(Equiv.mulRight a) = fun (x : G) => x * a
                                              @[simp]
                                              theorem Equiv.coe_addRight {G : Type u_5} [AddGroup G] (a : G) :
                                              โ‡‘(Equiv.addRight a) = fun (x : G) => x + a
                                              @[simp]
                                              theorem Equiv.mulRight_symm_apply {G : Type u_5} [Group G] (a : G) :
                                              โ‡‘(Equiv.symm (Equiv.mulRight a)) = fun (x : G) => x * aโปยน

                                              Extra simp lemma that dsimp can use. simp will never use this.

                                              @[simp]
                                              theorem Equiv.addRight_symm_apply {G : Type u_5} [AddGroup G] (a : G) :
                                              โ‡‘(Equiv.symm (Equiv.addRight a)) = fun (x : G) => x + -a

                                              Extra simp lemma that dsimp can use. simp will never use this.

                                              theorem Group.mulRight_bijective {G : Type u_5} [Group G] (a : G) :
                                              Function.Bijective fun (x : G) => x * a
                                              theorem AddGroup.addRight_bijective {G : Type u_5} [AddGroup G] (a : G) :
                                              Function.Bijective fun (x : G) => x + a
                                              def Equiv.divLeft {G : Type u_5} [Group G] (a : G) :

                                              A version of Equiv.mulLeft a bโปยน that is defeq to a / b.

                                              Equations
                                                Instances For
                                                  def Equiv.subLeft {G : Type u_5} [AddGroup G] (a : G) :

                                                  A version of Equiv.addLeft a (-b) that is defeq to a - b.

                                                  Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem Equiv.divLeft_apply {G : Type u_5} [Group G] (a b : G) :
                                                      (Equiv.divLeft a) b = a / b
                                                      @[simp]
                                                      theorem Equiv.subLeft_apply {G : Type u_5} [AddGroup G] (a b : G) :
                                                      (Equiv.subLeft a) b = a - b
                                                      @[simp]
                                                      theorem Equiv.subLeft_symm_apply {G : Type u_5} [AddGroup G] (a b : G) :
                                                      def Equiv.divRight {G : Type u_5} [Group G] (a : G) :

                                                      A version of Equiv.mulRight aโปยน b that is defeq to b / a.

                                                      Equations
                                                        Instances For
                                                          def Equiv.subRight {G : Type u_5} [AddGroup G] (a : G) :

                                                          A version of Equiv.addRight (-a) b that is defeq to b - a.

                                                          Equations
                                                            Instances For
                                                              @[simp]
                                                              theorem Equiv.subRight_apply {G : Type u_5} [AddGroup G] (a b : G) :
                                                              (Equiv.subRight a) b = b - a
                                                              @[simp]
                                                              theorem Equiv.subRight_symm_apply {G : Type u_5} [AddGroup G] (a b : G) :
                                                              @[simp]
                                                              theorem Equiv.divRight_symm_apply {G : Type u_5} [Group G] (a b : G) :
                                                              @[simp]
                                                              theorem Equiv.divRight_apply {G : Type u_5} [Group G] (a b : G) :
                                                              (Equiv.divRight a) b = b / a
                                                              def unitsEquivProdSubtype (ฮฑ : Type u_2) [Monoid ฮฑ] :
                                                              ฮฑหฃ โ‰ƒ { p : ฮฑ ร— ฮฑ // p.1 * p.2 = 1 โˆง p.2 * p.1 = 1 }

                                                              The ฮฑหฃ type is equivalent to a subtype of ฮฑ ร— ฮฑ.

                                                              Equations
                                                                Instances For
                                                                  @[simp]
                                                                  theorem val_inv_unitsEquivProdSubtype_symm_apply (ฮฑ : Type u_2) [Monoid ฮฑ] (p : { p : ฮฑ ร— ฮฑ // p.1 * p.2 = 1 โˆง p.2 * p.1 = 1 }) :
                                                                  โ†‘((unitsEquivProdSubtype ฮฑ).symm p)โปยน = (โ†‘p).2
                                                                  @[simp]
                                                                  theorem val_unitsEquivProdSubtype_symm_apply (ฮฑ : Type u_2) [Monoid ฮฑ] (p : { p : ฮฑ ร— ฮฑ // p.1 * p.2 = 1 โˆง p.2 * p.1 = 1 }) :
                                                                  โ†‘((unitsEquivProdSubtype ฮฑ).symm p) = (โ†‘p).1
                                                                  @[simp]
                                                                  theorem unitsEquivProdSubtype_apply_coe (ฮฑ : Type u_2) [Monoid ฮฑ] (u : ฮฑหฃ) :
                                                                  โ†‘((unitsEquivProdSubtype ฮฑ) u) = (โ†‘u, โ†‘uโปยน)

                                                                  In a DivisionCommMonoid, Equiv.inv is a MulEquiv. There is a variant of this MulEquiv.inv' G : G โ‰ƒ* Gแตแต’แต– for the non-commutative case.

                                                                  Equations
                                                                    Instances For

                                                                      When the AddGroup is commutative, Equiv.neg is an AddEquiv.

                                                                      Equations
                                                                        Instances For
                                                                          @[simp]
                                                                          theorem MulEquiv.inv_apply (G : Type u_6) [DivisionCommMonoid G] (aโœ : G) :
                                                                          (inv G) aโœ = aโœโปยน
                                                                          @[simp]
                                                                          theorem AddEquiv.neg_apply (G : Type u_6) [SubtractionCommMonoid G] (aโœ : G) :
                                                                          (neg G) aโœ = -aโœ
                                                                          @[simp]
                                                                          theorem MulEquiv.isUnit_map {F : Type u_1} {M : Type u_3} {N : Type u_4} [Monoid M] [Monoid N] [EquivLike F M N] [MulEquivClass F M N] (f : F) {x : M} :
                                                                          @[simp]
                                                                          theorem AddEquiv.isAddUnit_map {F : Type u_1} {M : Type u_3} {N : Type u_4} [AddMonoid M] [AddMonoid N] [EquivLike F M N] [AddEquivClass F M N] (f : F) {x : M} :
                                                                          instance isLocalHom_equiv {F : Type u_1} {M : Type u_3} {N : Type u_4} [Monoid M] [Monoid N] [EquivLike F M N] [MulEquivClass F M N] (f : F) :