Documentation

Mathlib.GroupTheory.Exponent

Exponent of a group #

This file defines the exponent of a group, or more generally a monoid. For a group G it is defined to be the minimal n≥1 such that g ^ n = 1 for all g ∈ G. For a finite group G, it is equal to the lowest common multiple of the order of all elements of the group G.

Main definitions #

Main results #

TODO #

A predicate on an additive monoid saying that there is a positive integer n such

that n • g = 0 for all g.

Equations
Instances For

    A predicate on a monoid saying that there is a positive integer n such that g ^ n = 1 for all g.

    Equations
    Instances For
      noncomputable def AddMonoid.exponent (G : Type u) [AddMonoid G] :

      The exponent of an additive group is the smallest positive integer n such that

      n • g = 0 for all g ∈ G if it exists, otherwise it is zero by convention.

      Equations
      Instances For
        noncomputable def Monoid.exponent (G : Type u) [Monoid G] :

        The exponent of a group is the smallest positive integer n such that g ^ n = 1 for all g ∈ G if it exists, otherwise it is zero by convention.

        Equations
        Instances For
          abbrev AddMonoid.exponent_eq_zero_addOrder_zero.match_1 {G : Type u_1} [AddMonoid G] (motive : AddMonoid.ExponentExists GProp) :
          ∀ (x : AddMonoid.ExponentExists G), (∀ (n : ) (hn : 0 < n) (hgn : ∀ (g : G), n g = 0), motive (_ : ∃ (n : ), 0 < n ∀ (g : G), n g = 0))motive x
          Equations
          • (_ : motive x) = (_ : motive x)
          Instances For
            theorem Monoid.pow_exponent_eq_one {G : Type u} [Monoid G] (g : G) :
            theorem AddMonoid.nsmul_eq_mod_exponent {G : Type u} [AddMonoid G] {n : } (g : G) :
            theorem Monoid.pow_eq_mod_exponent {G : Type u} [Monoid G] {n : } (g : G) :
            g ^ n = g ^ (n % Monoid.exponent G)
            theorem AddMonoid.exponent_pos_of_exists {G : Type u} [AddMonoid G] (n : ) (hpos : 0 < n) (hG : ∀ (g : G), n g = 0) :
            theorem Monoid.exponent_pos_of_exists {G : Type u} [Monoid G] (n : ) (hpos : 0 < n) (hG : ∀ (g : G), g ^ n = 1) :
            theorem AddMonoid.exponent_min' {G : Type u} [AddMonoid G] (n : ) (hpos : 0 < n) (hG : ∀ (g : G), n g = 0) :
            theorem Monoid.exponent_min' {G : Type u} [Monoid G] (n : ) (hpos : 0 < n) (hG : ∀ (g : G), g ^ n = 1) :
            theorem AddMonoid.exponent_min {G : Type u} [AddMonoid G] (m : ) (hpos : 0 < m) (hm : m < AddMonoid.exponent G) :
            ∃ (g : G), m g 0
            theorem Monoid.exponent_min {G : Type u} [Monoid G] (m : ) (hpos : 0 < m) (hm : m < Monoid.exponent G) :
            ∃ (g : G), g ^ m 1
            theorem AddMonoid.exponent_dvd_of_forall_nsmul_eq_zero (G : Type u_1) [AddMonoid G] (n : ) (hG : ∀ (g : G), n g = 0) :
            theorem Monoid.exponent_dvd_of_forall_pow_eq_one (G : Type u_1) [Monoid G] (n : ) (hG : ∀ (g : G), g ^ n = 1) :
            theorem AddMonoid.exponent_eq_prime_iff {G : Type u_1} [AddMonoid G] [Nontrivial G] {p : } (hp : Nat.Prime p) :
            AddMonoid.exponent G = p ∀ (g : G), g 0addOrderOf g = p
            theorem Monoid.exponent_eq_prime_iff {G : Type u_1} [Monoid G] [Nontrivial G] {p : } (hp : Nat.Prime p) :
            Monoid.exponent G = p ∀ (g : G), g 1orderOf g = p

            A nontrivial monoid has prime exponent p if and only if every non-identity element has order p.

            theorem Monoid.lcm_order_eq_exponent {G : Type u} [Monoid G] [Fintype G] :
            Finset.lcm Finset.univ orderOf = Monoid.exponent G
            theorem AddMonoid.exponent_eq_iSup_addOrderOf {G : Type u} [AddCommMonoid G] (h : ∀ (g : G), 0 < addOrderOf g) :
            theorem Monoid.exponent_eq_iSup_orderOf {G : Type u} [CommMonoid G] (h : ∀ (g : G), 0 < orderOf g) :
            Monoid.exponent G = ⨆ (g : G), orderOf g
            theorem AddMonoid.exponent_eq_iSup_addOrderOf' {G : Type u} [AddCommMonoid G] :
            AddMonoid.exponent G = if ∃ (g : G), addOrderOf g = 0 then 0 else ⨆ (g : G), addOrderOf g
            theorem Monoid.exponent_eq_iSup_orderOf' {G : Type u} [CommMonoid G] :
            Monoid.exponent G = if ∃ (g : G), orderOf g = 0 then 0 else ⨆ (g : G), orderOf g
            theorem AddMonoid.exponent_eq_max'_addOrderOf {G : Type u} [AddCancelCommMonoid G] [Fintype G] :
            AddMonoid.exponent G = Finset.max' (Finset.image addOrderOf Finset.univ) (_ : ∃ (x : ), x Finset.image addOrderOf Finset.univ)
            theorem Monoid.exponent_eq_max'_orderOf {G : Type u} [CancelCommMonoid G] [Fintype G] :
            Monoid.exponent G = Finset.max' (Finset.image orderOf Finset.univ) (_ : ∃ (x : ), x Finset.image orderOf Finset.univ)
            theorem card_dvd_exponent_nsmul_rank' (G : Type u) [AddCommGroup G] [AddGroup.FG G] {n : } (hG : ∀ (g : G), n g = 0) :
            theorem card_dvd_exponent_pow_rank' (G : Type u) [CommGroup G] [Group.FG G] {n : } (hG : ∀ (g : G), g ^ n = 1) :
            theorem AddMonoid.exponent_pi_eq_zero {ι : Type u_1} {M : ιType u_2} [(i : ι) → AddMonoid (M i)] {j : ι} (hj : AddMonoid.exponent (M j) = 0) :
            AddMonoid.exponent ((i : ι) → M i) = 0
            theorem Monoid.exponent_pi_eq_zero {ι : Type u_1} {M : ιType u_2} [(i : ι) → Monoid (M i)] {j : ι} (hj : Monoid.exponent (M j) = 0) :
            Monoid.exponent ((i : ι) → M i) = 0
            theorem AddMonoidHom.exponent_dvd {F : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} [AddMonoid M₁] [AddMonoid M₂] [FunLike F M₁ M₂] [AddMonoidHomClass F M₁ M₂] {f : F} (hf : Function.Surjective f) :
            theorem MonoidHom.exponent_dvd {F : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} [Monoid M₁] [Monoid M₂] [FunLike F M₁ M₂] [MonoidHomClass F M₁ M₂] {f : F} (hf : Function.Surjective f) :

            If f : M₁ →⋆ M₂ is surjective, then the exponent of M₂ divides the exponent of M₁.

            theorem AddMonoid.exponent_pi {ι : Type u_1} [Fintype ι] {M : ιType u_2} [(i : ι) → AddMonoid (M i)] :
            AddMonoid.exponent ((i : ι) → M i) = Finset.lcm Finset.univ fun (x : ι) => AddMonoid.exponent (M x)

            The exponent of finite product of additive monoids is the Finset.lcm of the exponents of the constituent additive monoids.

            theorem Monoid.exponent_pi {ι : Type u_1} [Fintype ι] {M : ιType u_2} [(i : ι) → Monoid (M i)] :
            Monoid.exponent ((i : ι) → M i) = Finset.lcm Finset.univ fun (x : ι) => Monoid.exponent (M x)

            The exponent of finite product of monoids is the Finset.lcm of the exponents of the constituent monoids.

            theorem AddMonoid.exponent_prod {M₁ : Type u_1} {M₂ : Type u_2} [AddMonoid M₁] [AddMonoid M₂] :

            The exponent of product of two additive monoids is the lcm of the exponents of the individuaul additive monoids.

            theorem Monoid.exponent_prod {M₁ : Type u_1} {M₂ : Type u_2} [Monoid M₁] [Monoid M₂] :

            The exponent of product of two monoids is the lcm of the exponents of the individuaul monoids.