Documentation

Mathlib.GroupTheory.Submonoid.Center

Centers of monoids #

Main definitions #

We provide Subgroup.center, AddSubgroup.center, Subsemiring.center, and Subring.center in other files.

The center of a multiplication with unit M is the set of elements that commute with everything in M

Instances For

    The center of an addition with zero M is the set of elements that commute with everything in M

    Instances For
      instance Submonoid.instSMulCommClassSubtypeMemCenter {M : Type u_2} {ฮฑ : Type u_3} [Monoid M] [MulAction M ฮฑ] :
      SMulCommClass (โ†ฅ(center M)) M ฮฑ
      instance Submonoid.instSMulCommClassSubtypeMemCenter_1 {M : Type u_2} {ฮฑ : Type u_3} [Monoid M] [MulAction M ฮฑ] :
      SMulCommClass M (โ†ฅ(center M)) ฮฑ
      @[reducible, inline]

      The center of a multiplication with unit is commutative and associative.

      This is not an instance as it forms a non-defeq diamond with Submonoid.toMonoid in the npow field.

      Instances For
        @[reducible, inline]

        The center of an addition with zero is commutative and associative.

        Instances For
          @[implicit_reducible]
          instance Submonoid.center.commMonoid {M : Type u_1} [Monoid M] :
          CommMonoid โ†ฅ(center M)

          The center of a monoid is commutative.

          @[implicit_reducible]
          theorem Submonoid.mem_center_iff {M : Type u_1} [Monoid M] {z : M} :
          z โˆˆ center M โ†” โˆ€ (g : M), g * z = z * g
          theorem AddSubmonoid.mem_center_iff {M : Type u_1} [AddMonoid M] {z : M} :
          z โˆˆ center M โ†” โˆ€ (g : M), g + z = z + g
          @[implicit_reducible]
          instance Submonoid.decidableMemCenter {M : Type u_1} [Monoid M] (a : M) [Decidable (โˆ€ (b : M), b * a = a * b)] :
          Decidable (a โˆˆ center M)
          @[implicit_reducible]
          instance AddSubmonoid.decidableMemCenter {M : Type u_1} [AddMonoid M] (a : M) [Decidable (โˆ€ (b : M), b + a = a + b)] :
          Decidable (a โˆˆ center M)
          instance Submonoid.center.smulCommClass_left {M : Type u_1} [Monoid M] :
          SMulCommClass (โ†ฅ(center M)) M M

          The center of a monoid acts commutatively on that monoid.

          instance Submonoid.center.smulCommClass_right {M : Type u_1} [Monoid M] :
          SMulCommClass M (โ†ฅ(center M)) M

          The center of a monoid acts commutatively on that monoid.

          Note that smulCommClass (center M) (center M) M is already implied by Submonoid.smulCommClass_right

          For a monoid, the units of the center inject into the center of the units. This is not an equivalence in general; one case where this holds is for groups with zero, which is covered in centerUnitsEquivUnitsCenter.

          Instances For

            For an additive monoid, the units of the center inject into the center of the units.

            Instances For
              @[simp]
              theorem val_unitsCenterToCenterUnits_apply_coe (M : Type u_1) [Monoid M] (n : (โ†ฅ(Submonoid.center M))หฃ) :
              โ†‘โ†‘((unitsCenterToCenterUnits M) n) = โ†‘โ†‘n
              @[simp]
              theorem val_addUnitsCenterToCenterAddUnits_apply_coe (M : Type u_1) [AddMonoid M] (n : AddUnits โ†ฅ(AddSubmonoid.center M)) :
              โ†‘โ†‘((addUnitsCenterToCenterAddUnits M) n) = โ†‘โ†‘n
              theorem MulEquivClass.apply_mem_center {M : Type u_3} {N : Type u_1} {F : Type u_2} [EquivLike F M N] [Mul M] [Mul N] [MulEquivClass F M N] (e : F) {x : M} (hx : x โˆˆ Set.center M) :
              e x โˆˆ Set.center N
              theorem AddEquivClass.apply_mem_center {M : Type u_3} {N : Type u_1} {F : Type u_2} [EquivLike F M N] [Add M] [Add N] [AddEquivClass F M N] (e : F) {x : M} (hx : x โˆˆ Set.addCenter M) :
              e x โˆˆ Set.addCenter N
              theorem MulEquivClass.apply_mem_center_iff {M : Type u_3} {N : Type u_1} {F : Type u_2} [EquivLike F M N] [Mul M] [Mul N] [MulEquivClass F M N] (e : F) {x : M} :
              e x โˆˆ Set.center N โ†” x โˆˆ Set.center M
              theorem AddEquivClass.apply_mem_center_iff {M : Type u_3} {N : Type u_1} {F : Type u_2} [EquivLike F M N] [Add M] [Add N] [AddEquivClass F M N] (e : F) {x : M} :
              e x โˆˆ Set.addCenter N โ†” x โˆˆ Set.addCenter M
              def Subsemigroup.centerCongr {M : Type u_2} {N : Type u_1} [Mul M] [Mul N] (e : M โ‰ƒ* N) :
              โ†ฅ(center M) โ‰ƒ* โ†ฅ(center N)

              The center of isomorphic magmas are isomorphic.

              Instances For
                def AddSubsemigroup.centerCongr {M : Type u_2} {N : Type u_1} [Add M] [Add N] (e : M โ‰ƒ+ N) :
                โ†ฅ(center M) โ‰ƒ+ โ†ฅ(center N)

                The center of isomorphic additive magmas are isomorphic.

                Instances For
                  @[simp]
                  theorem AddSubsemigroup.centerCongr_apply_coe {M : Type u_2} {N : Type u_1} [Add M] [Add N] (e : M โ‰ƒ+ N) (r : โ†ฅ(center M)) :
                  โ†‘((centerCongr e) r) = e โ†‘r
                  @[simp]
                  theorem Subsemigroup.centerCongr_apply_coe {M : Type u_2} {N : Type u_1} [Mul M] [Mul N] (e : M โ‰ƒ* N) (r : โ†ฅ(center M)) :
                  โ†‘((centerCongr e) r) = e โ†‘r
                  @[simp]
                  theorem Subsemigroup.centerCongr_symm_apply_coe {M : Type u_2} {N : Type u_1} [Mul M] [Mul N] (e : M โ‰ƒ* N) (s : โ†ฅ(center N)) :
                  โ†‘((centerCongr e).symm s) = e.symm โ†‘s
                  @[simp]
                  theorem AddSubsemigroup.centerCongr_symm_apply_coe {M : Type u_2} {N : Type u_1} [Add M] [Add N] (e : M โ‰ƒ+ N) (s : โ†ฅ(center N)) :
                  โ†‘((centerCongr e).symm s) = e.symm โ†‘s
                  def Submonoid.centerCongr {M : Type u_2} {N : Type u_1} [MulOneClass M] [MulOneClass N] (e : M โ‰ƒ* N) :
                  โ†ฅ(center M) โ‰ƒ* โ†ฅ(center N)

                  The center of isomorphic monoids are isomorphic.

                  Instances For
                    def AddSubmonoid.centerCongr {M : Type u_2} {N : Type u_1} [AddZeroClass M] [AddZeroClass N] (e : M โ‰ƒ+ N) :
                    โ†ฅ(center M) โ‰ƒ+ โ†ฅ(center N)

                    The center of isomorphic additive monoids are isomorphic.

                    Instances For
                      @[simp]
                      theorem Submonoid.centerCongr_apply_coe {M : Type u_2} {N : Type u_1} [MulOneClass M] [MulOneClass N] (e : M โ‰ƒ* N) (r : โ†ฅ(Subsemigroup.center M)) :
                      โ†‘((centerCongr e) r) = e โ†‘r
                      @[simp]
                      theorem Submonoid.centerCongr_symm_apply_coe {M : Type u_2} {N : Type u_1} [MulOneClass M] [MulOneClass N] (e : M โ‰ƒ* N) (s : โ†ฅ(Subsemigroup.center N)) :
                      โ†‘((centerCongr e).symm s) = e.symm โ†‘s
                      @[simp]
                      theorem AddSubmonoid.centerCongr_apply_coe {M : Type u_2} {N : Type u_1} [AddZeroClass M] [AddZeroClass N] (e : M โ‰ƒ+ N) (r : โ†ฅ(AddSubsemigroup.center M)) :
                      โ†‘((centerCongr e) r) = e โ†‘r
                      @[simp]
                      theorem AddSubmonoid.centerCongr_symm_apply_coe {M : Type u_2} {N : Type u_1} [AddZeroClass M] [AddZeroClass N] (e : M โ‰ƒ+ N) (s : โ†ฅ(AddSubsemigroup.center N)) :
                      โ†‘((centerCongr e).symm s) = e.symm โ†‘s
                      theorem MulOpposite.op_mem_center_iff {M : Type u_2} [Mul M] {x : M} :
                      op x โˆˆ Set.center Mแตแต’แต– โ†” x โˆˆ Set.center M
                      theorem AddOpposite.op_mem_center_iff {M : Type u_2} [Add M] {x : M} :

                      The center of a magma is isomorphic to the center of its opposite.

                      Instances For

                        The center of an additive magma is isomorphic to the center of its opposite.

                        Instances For
                          @[simp]
                          theorem Subsemigroup.centerToMulOpposite_apply_coe {M : Type u_2} [Mul M] (r : โ†ฅ(center M)) :
                          โ†‘(centerToMulOpposite r) = MulOpposite.op โ†‘r
                          @[simp]
                          theorem AddSubsemigroup.centerToAddOpposite_apply_coe {M : Type u_2} [Add M] (r : โ†ฅ(center M)) :
                          โ†‘(centerToAddOpposite r) = AddOpposite.op โ†‘r

                          The center of a monoid is isomorphic to the center of its opposite.

                          Instances For

                            The center of an additive monoid is isomorphic to the center of its opposite.

                            Instances For