Documentation

Mathlib.GroupTheory.Subsemigroup.Center

Centers of magmas and semigroups #

Main definitions #

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

References #

structure IsAddCentral {M : Type u_1} [Add M] (z : M) :

Conditions for an element to be additively central

  • comm : ∀ (a : M), z + a = a + z

    addition commutes

  • left_assoc : ∀ (b c : M), z + (b + c) = z + b + c

    associative property for left addition

  • mid_assoc : ∀ (a c : M), a + z + c = a + (z + c)

    middle associative addition property

  • right_assoc : ∀ (a b : M), a + b + z = a + (b + z)

    associative property for right addition

Instances For
    structure IsMulCentral {M : Type u_1} [Mul M] (z : M) :

    Conditions for an element to be multiplicatively central

    • comm : ∀ (a : M), z * a = a * z

      multiplication commutes

    • left_assoc : ∀ (b c : M), z * (b * c) = z * b * c

      associative property for left multiplication

    • mid_assoc : ∀ (a c : M), a * z * c = a * (z * c)

      middle associative multiplication property

    • right_assoc : ∀ (a b : M), a * b * z = a * (b * z)

      associative property for right multiplication

    Instances For
      theorem isMulCentral_iff {M : Type u_1} [Mul M] (z : M) :
      IsMulCentral z (∀ (a : M), z * a = a * z) (∀ (b c : M), z * (b * c) = z * b * c) (∀ (a c : M), a * z * c = a * (z * c)) ∀ (a b : M), a * b * z = a * (b * z)
      theorem isAddCentral_iff {M : Type u_1} [Add M] (z : M) :
      IsAddCentral z (∀ (a : M), z + a = a + z) (∀ (b c : M), z + (b + c) = z + b + c) (∀ (a c : M), a + z + c = a + (z + c)) ∀ (a b : M), a + b + z = a + (b + z)
      theorem IsAddCentral.left_comm {M : Type u_1} {a : M} [Add M] (h : IsAddCentral a) (b : M) (c : M) :
      a + (b + c) = b + (a + c)
      theorem IsMulCentral.left_comm {M : Type u_1} {a : M} [Mul M] (h : IsMulCentral a) (b : M) (c : M) :
      a * (b * c) = b * (a * c)
      theorem IsAddCentral.right_comm {M : Type u_1} {c : M} [Add M] (h : IsAddCentral c) (a : M) (b : M) :
      a + b + c = a + c + b
      theorem IsMulCentral.right_comm {M : Type u_1} {c : M} [Mul M] (h : IsMulCentral c) (a : M) (b : M) :
      a * b * c = a * c * b
      def Set.addCenter (M : Type u_1) [Add M] :
      Set M

      The center of an additive magma.

      Equations
      Instances For
        def Set.center (M : Type u_1) [Mul M] :
        Set M

        The center of a magma.

        Equations
        Instances For
          theorem Set.mem_center_iff (M : Type u_1) [Mul M] {z : M} :
          @[simp]
          theorem Set.add_mem_addCenter {M : Type u_1} [Add M] {z₁ : M} {z₂ : M} (hz₁ : z₁ Set.addCenter M) (hz₂ : z₂ Set.addCenter M) :
          z₁ + z₂ Set.addCenter M
          @[simp]
          theorem Set.mul_mem_center {M : Type u_1} [Mul M] {z₁ : M} {z₂ : M} (hz₁ : z₁ Set.center M) (hz₂ : z₂ Set.center M) :
          z₁ * z₂ Set.center M
          theorem AddSemigroup.mem_center_iff {M : Type u_1} [AddSemigroup M] {z : M} :
          z Set.addCenter M ∀ (g : M), g + z = z + g
          theorem Semigroup.mem_center_iff {M : Type u_1} [Semigroup M] {z : M} :
          z Set.center M ∀ (g : M), g * z = z * g
          instance Set.decidableMemCenter (M : Type u_1) [Semigroup M] [(a : M) → Decidable (∀ (b : M), b * a = a * b)] :
          DecidablePred fun (x : M) => x Set.center M
          Equations
          @[simp]
          theorem Set.addCenter_eq_univ (M : Type u_1) [AddCommSemigroup M] :
          Set.addCenter M = Set.univ
          @[simp]
          theorem Set.center_eq_univ (M : Type u_1) [CommSemigroup M] :
          Set.center M = Set.univ
          @[simp]
          theorem Set.one_mem_center (M : Type u_1) [MulOneClass M] :
          @[simp]
          @[simp]
          theorem Set.natCast_mem_center (M : Type u_1) [NonAssocSemiring M] (n : ) :
          @[simp]
          theorem Set.intCast_mem_center (M : Type u_1) [NonAssocRing M] (n : ) :
          @[simp]
          theorem Set.neg_mem_addCenter {M : Type u_1} [AddGroup M] {a : M} (ha : a Set.addCenter M) :
          @[simp]
          theorem Set.inv_mem_center {M : Type u_1} [Group M] {a : M} (ha : a Set.center M) :
          @[simp]
          theorem Set.add_mem_center {M : Type u_1} [Distrib M] {a : M} {b : M} (ha : a Set.center M) (hb : b Set.center M) :
          @[simp]
          theorem Set.neg_mem_center {M : Type u_1} [NonUnitalNonAssocRing M] {a : M} (ha : a Set.center M) :

          In a group with zero, the center of the units is the preimage of the center.

          @[simp]
          theorem Set.units_inv_mem_center {M : Type u_1} [Monoid M] {a : Mˣ} (ha : a Set.center M) :
          @[simp]
          theorem Set.invOf_mem_center {M : Type u_1} [Monoid M] {a : M} [Invertible a] (ha : a Set.center M) :
          @[simp]
          theorem Set.inv_mem_center₀ {M : Type u_1} [GroupWithZero M] {a : M} (ha : a Set.center M) :
          @[simp]
          theorem Set.sub_mem_addCenter {M : Type u_1} [AddGroup M] {a : M} {b : M} (ha : a Set.addCenter M) (hb : b Set.addCenter M) :
          @[simp]
          theorem Set.div_mem_center {M : Type u_1} [Group M] {a : M} {b : M} (ha : a Set.center M) (hb : b Set.center M) :
          @[simp]
          theorem Set.div_mem_center₀ {M : Type u_1} [GroupWithZero M] {a : M} {b : M} (ha : a Set.center M) (hb : b Set.center M) :

          Set.center as a Subsemigroup. #

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

          Equations
          Instances For

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

            Equations
            Instances For

              The center of an additive magma is commutative and associative.

              Equations
              theorem AddSubsemigroup.center.addCommSemigroup.proof_1 {M : Type u_1} [Add M] :
              ∀ (x b x_1 : (AddSubsemigroup.center M)), x + b + x_1 = x + (b + x_1)

              The center of a magma is commutative and associative.

              Equations
              theorem AddSubsemigroup.mem_center_iff {M : Type u_1} [AddSemigroup M] {z : M} :
              z AddSubsemigroup.center M ∀ (g : M), g + z = z + g
              theorem Subsemigroup.mem_center_iff {M : Type u_1} [Semigroup M] {z : M} :
              z Subsemigroup.center M ∀ (g : M), g * z = z * g
              instance AddSubsemigroup.decidableMemCenter {M : Type u_1} [AddSemigroup M] (a : M) [Decidable (∀ (b : M), b + a = a + b)] :
              Equations
              instance Subsemigroup.decidableMemCenter {M : Type u_1} [Semigroup M] (a : M) [Decidable (∀ (b : M), b * a = a * b)] :
              Equations