Documentation

Mathlib.Algebra.Group.Center

Centers of magmas and semigroups #

Main definitions #

See also #

See Mathlib/GroupTheory/Subsemigroup/Center.lean for the definition of the center as a subsemigroup:

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

See Mathlib/GroupTheory/Subsemigroup/Centralizer.lean for the definition of the centralizer as a subsemigroup:

We provide Monoid.centralizer, AddMonoid.centralizer, Subgroup.centralizer, and AddSubgroup.centralizer in other files.

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

Conditions for an element to be additively central

  • comm (a : M) : AddCommute z a

    addition commutes

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

    associative property for left addition

  • 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) : Commute z a

      multiplication commutes

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

      associative property for left multiplication

    • 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), Commute z a) โˆง (โˆ€ (b c : M), z * (b * c) = z * b * 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), AddCommute z a) โˆง (โˆ€ (b c : M), z + (b + c) = z + b + c) โˆง โˆ€ (a b : M), a + b + z = a + (b + z)
      theorem IsMulCentral.mid_assoc {M : Type u_1} [Mul M] {z : M} (h : IsMulCentral z) (a c : M) :
      a * z * c = a * (z * c)
      theorem IsAddCentral.mid_assoc {M : Type u_1} [Add M] {z : M} (h : IsAddCentral z) (a c : M) :
      a + z + c = a + (z + c)
      theorem IsMulCentral.left_comm {M : Type u_1} {a : M} [Mul M] (h : IsMulCentral a) (b c : M) :
      a * (b * c) = b * (a * c)
      theorem IsAddCentral.left_comm {M : Type u_1} {a : M} [Add M] (h : IsAddCentral a) (b c : M) :
      a + (b + c) = b + (a + c)
      theorem IsMulCentral.right_comm {M : Type u_1} {c : M} [Mul M] (h : IsMulCentral c) (a b : M) :
      a * b * c = a * c * b
      theorem IsAddCentral.right_comm {M : Type u_1} {c : M} [Add M] (h : IsAddCentral c) (a b : M) :
      a + b + c = a + c + b

      Center #

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

      The center of a magma.

      Instances For
        def Set.addCenter (M : Type u_1) [Add M] :
        Set M

        The center of an additive magma.

        Instances For
          def Set.centralizer {M : Type u_1} (S : Set M) [Mul M] :
          Set M

          The centralizer of a subset of a magma.

          Instances For
            def Set.addCentralizer {M : Type u_1} (S : Set M) [Add M] :
            Set M

            The centralizer of a subset of an additive magma.

            Instances For
              theorem Set.mem_center_iff {M : Type u_1} [Mul M] {z : M} :
              z โˆˆ center M โ†” IsMulCentral z
              theorem Set.mem_addCenter_iff {M : Type u_1} [Add M] {z : M} :
              z โˆˆ addCenter M โ†” IsAddCentral z
              theorem Set.mem_centralizer_iff {M : Type u_1} {S : Set M} [Mul M] {c : M} :
              c โˆˆ S.centralizer โ†” โˆ€ m โˆˆ S, m * c = c * m
              theorem Set.mem_addCentralizer {M : Type u_1} {S : Set M} [Add M] {c : M} :
              c โˆˆ S.addCentralizer โ†” โˆ€ m โˆˆ S, m + c = c + m
              @[simp]
              theorem Set.mul_mem_center {M : Type u_1} [Mul M] {zโ‚ zโ‚‚ : M} (hzโ‚ : zโ‚ โˆˆ center M) (hzโ‚‚ : zโ‚‚ โˆˆ center M) :
              zโ‚ * zโ‚‚ โˆˆ center M
              @[simp]
              theorem Set.add_mem_addCenter {M : Type u_1} [Add M] {zโ‚ zโ‚‚ : M} (hzโ‚ : zโ‚ โˆˆ addCenter M) (hzโ‚‚ : zโ‚‚ โˆˆ addCenter M) :
              zโ‚ + zโ‚‚ โˆˆ addCenter M
              theorem Set.center_subset_centralizer {M : Type u_1} [Mul M] (S : Set M) :
              center M โІ S.centralizer
              theorem Set.centralizer_union {M : Type u_1} {S T : Set M} [Mul M] :
              (S โˆช T).centralizer = S.centralizer โˆฉ T.centralizer
              theorem Set.addCentralizer_union {M : Type u_1} {S T : Set M} [Add M] :
              (S โˆช T).addCentralizer = S.addCentralizer โˆฉ T.addCentralizer
              theorem Set.centralizer_subset {M : Type u_1} {S T : Set M} [Mul M] (h : S โІ T) :
              theorem Set.addCentralizer_subset {M : Type u_1} {S T : Set M} [Add M] (h : S โІ T) :
              @[implicit_reducible]
              instance Set.decidableMemCentralizer {M : Type u_1} {S : Set M} [Mul M] [(a : M) โ†’ Decidable (โˆ€ b โˆˆ S, b * a = a * b)] :
              DecidablePred fun (x : M) => x โˆˆ S.centralizer
              @[implicit_reducible]
              instance Set.decidableMemAddCentralizer {M : Type u_1} {S : Set M} [Add M] [(a : M) โ†’ Decidable (โˆ€ b โˆˆ S, b + a = a + b)] :
              DecidablePred fun (x : M) => x โˆˆ S.addCentralizer
              theorem Set.centralizer_centralizer_comm_of_comm {M : Type u_1} {S : Set M} [Mul M] (h_comm : โˆ€ x โˆˆ S, โˆ€ y โˆˆ S, x * y = y * x) (x : M) :
              x โˆˆ S.centralizer.centralizer โ†’ โˆ€ y โˆˆ S.centralizer.centralizer, x * y = y * x
              theorem Set.addCentralizer_addCentralizer_comm_of_comm {M : Type u_1} {S : Set M} [Add M] (h_comm : โˆ€ x โˆˆ S, โˆ€ y โˆˆ S, x + y = y + x) (x : M) :
              x โˆˆ S.addCentralizer.addCentralizer โ†’ โˆ€ y โˆˆ S.addCentralizer.addCentralizer, x + y = y + x
              @[simp]
              theorem Set.centralizer_empty {M : Type u_1} [Mul M] :
              @[simp]
              theorem Set.addCentralizer_empty {M : Type u_1} [Add M] :
              theorem Set.centralizer_prod {M : Type u_1} [Mul M] {N : Type u_2} [Mul N] {S : Set M} {T : Set N} (hS : S.Nonempty) (hT : T.Nonempty) :

              The centralizer of the product of non-empty sets is equal to the product of the centralizers.

              theorem Set.addCentralizer_prod {M : Type u_1} [Add M] {N : Type u_2} [Add N] {S : Set M} {T : Set N} (hS : S.Nonempty) (hT : T.Nonempty) :
              theorem Set.center_prod {M : Type u_1} [Mul M] {N : Type u_2} [Mul N] :
              center (M ร— N) = center M ร—หข center N
              theorem Set.addCenter_prod {M : Type u_1} [Add M] {N : Type u_2} [Add N] :
              theorem Set.center_pi {ฮน : Type u_2} {A : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ Mul (A i)] :
              center ((i : ฮน) โ†’ A i) = univ.pi fun (i : ฮน) => center (A i)
              theorem Set.addCenter_pi {ฮน : Type u_2} {A : ฮน โ†’ Type u_3} [(i : ฮน) โ†’ Add (A i)] :
              addCenter ((i : ฮน) โ†’ A i) = univ.pi fun (i : ฮน) => addCenter (A i)
              theorem Semigroup.mem_center_iff {M : Type u_1} [Semigroup M] {z : M} :
              z โˆˆ Set.center M โ†” โˆ€ (g : M), g * z = z * g
              theorem AddSemigroup.mem_center_iff {M : Type u_1} [AddSemigroup M] {z : M} :
              z โˆˆ Set.addCenter M โ†” โˆ€ (g : M), g + z = z + g
              @[simp]
              theorem Set.mul_mem_centralizer {M : Type u_1} {S : Set M} [Semigroup M] {a b : M} (ha : a โˆˆ S.centralizer) (hb : b โˆˆ S.centralizer) :
              a * b โˆˆ S.centralizer
              @[simp]
              theorem Set.add_mem_addCentralizer {M : Type u_1} {S : Set M} [AddSemigroup M] {a b : M} (ha : a โˆˆ S.addCentralizer) (hb : b โˆˆ S.addCentralizer) :
              a + b โˆˆ S.addCentralizer
              @[simp]
              theorem Set.centralizer_eq_top_iff_subset {M : Type u_1} {S : Set M} [Semigroup M] :
              S.centralizer = univ โ†” S โІ center M
              @[simp]
              theorem Set.addCentralizer_eq_top_iff_subset {M : Type u_1} {S : Set M} [AddSemigroup M] :
              S.addCentralizer = univ โ†” S โІ addCenter M
              @[implicit_reducible]
              instance Set.decidableMemCenter {M : Type u_1} [Semigroup M] [(a : M) โ†’ Decidable (โˆ€ (b : M), b * a = a * b)] :
              DecidablePred fun (x : M) => x โˆˆ center M
              @[implicit_reducible]
              instance Set.decidableMemAddCenter {M : Type u_1} [AddSemigroup M] [(a : M) โ†’ Decidable (โˆ€ (b : M), b + a = a + b)] :
              DecidablePred fun (x : M) => x โˆˆ addCenter M
              @[simp]
              theorem Set.one_mem_center {M : Type u_1} [MulOneClass M] :
              1 โˆˆ center M
              @[simp]
              theorem Set.zero_mem_addCenter {M : Type u_1} [AddZeroClass M] :
              0 โˆˆ addCenter M
              @[simp]
              theorem Set.one_mem_centralizer {M : Type u_1} {S : Set M} [MulOneClass M] :
              1 โˆˆ S.centralizer
              @[simp]
              theorem Set.zero_mem_addCentralizer {M : Type u_1} {S : Set M} [AddZeroClass M] :
              0 โˆˆ S.addCentralizer
              @[simp]
              theorem Set.units_inv_mem_center {M : Type u_1} [Monoid M] {a : Mหฃ} (ha : โ†‘a โˆˆ center M) :
              โ†‘aโปยน โˆˆ center M
              @[simp]
              theorem Set.addUnits_neg_mem_center {M : Type u_1} [AddMonoid M] {a : AddUnits M} (ha : โ†‘a โˆˆ addCenter M) :
              โ†‘(-a) โˆˆ addCenter M
              @[simp]
              theorem Set.invOf_mem_center {M : Type u_1} [Monoid M] {a : M} [Invertible a] (ha : a โˆˆ center M) :
              โ…Ÿa โˆˆ center M
              @[simp]
              theorem Set.inv_mem_center {M : Type u_1} [DivisionMonoid M] {a : M} (ha : a โˆˆ center M) :
              @[simp]
              theorem Set.neg_mem_addCenter {M : Type u_1} [SubtractionMonoid M] {a : M} (ha : a โˆˆ addCenter M) :
              -a โˆˆ addCenter M
              @[simp]
              theorem Set.div_mem_center {M : Type u_1} [DivisionMonoid M] {a b : M} (ha : a โˆˆ center M) (hb : b โˆˆ center M) :
              a / b โˆˆ center M
              @[simp]
              theorem Set.sub_mem_addCenter {M : Type u_1} [SubtractionMonoid M] {a b : M} (ha : a โˆˆ addCenter M) (hb : b โˆˆ addCenter M) :
              a - b โˆˆ addCenter M
              @[simp]
              theorem Set.inv_mem_centralizer {M : Type u_1} {S : Set M} [Group M] {a : M} (ha : a โˆˆ S.centralizer) :
              @[simp]
              theorem Set.neg_mem_addCentralizer {M : Type u_1} {S : Set M} [AddGroup M] {a : M} (ha : a โˆˆ S.addCentralizer) :
              -a โˆˆ S.addCentralizer
              @[simp]
              theorem Set.div_mem_centralizer {M : Type u_1} {S : Set M} [Group M] {a b : M} (ha : a โˆˆ S.centralizer) (hb : b โˆˆ S.centralizer) :
              a / b โˆˆ S.centralizer
              @[simp]
              theorem Set.sub_mem_addCentralizer {M : Type u_1} {S : Set M} [AddGroup M] {a b : M} (ha : a โˆˆ S.addCentralizer) (hb : b โˆˆ S.addCentralizer) :
              a - b โˆˆ S.addCentralizer