ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- AddMonoid.ExponentExists.addOrderOf_pos
@[to_additive]
theorem ExponentExists.orderOf_pos (h : ExponentExists G) (g : G) : 0 < orderOf g 
Arguments: {G : Type u} [AddMonoid G] (h : AddMonoid.ExponentExists G) (g : G)
Goal: 0 < addOrderOf g
-- Monoid.exponent_ne_zero
@[to_additive]
theorem exponent_ne_zero : exponent G ≠ 0 ↔ ExponentExists G 
Arguments: {G : Type u} [Monoid G]
Goal: Monoid.exponent G ≠ 0 ↔ Monoid.ExponentExists G
-- AddMonoid.exponent_ne_zero
@[to_additive]
theorem exponent_ne_zero : exponent G ≠ 0 ↔ ExponentExists G 
Arguments: {G : Type u} [AddMonoid G]
Goal: AddMonoid.exponent G ≠ 0 ↔ AddMonoid.ExponentExists G
-- AddMonoid.exponentExists_iff_ne_zero
@[to_additive (attr := deprecated (since := "2024-01-27"))]
theorem exponentExists_iff_ne_zero : ExponentExists G ↔ exponent G ≠ 0 
Arguments: {G : Type u} [AddMonoid G]
Goal: AddMonoid.ExponentExists G ↔ AddMonoid.exponent G ≠ 0
-- Monoid.exponentExists_iff_ne_zero
@[to_additive (attr := deprecated (since := "2024-01-27"))]
theorem exponentExists_iff_ne_zero : ExponentExists G ↔ exponent G ≠ 0 
Arguments: {G : Type u} [Monoid G]
Goal: Monoid.ExponentExists G ↔ Monoid.exponent G ≠ 0
-- Monoid.exponent_pos
@[to_additive]
theorem exponent_pos : 0 < exponent G ↔ ExponentExists G 
Arguments: {G : Type u} [Monoid G]
Goal: 0 < Monoid.exponent G ↔ Monoid.ExponentExists G
-- AddMonoid.exponent_pos
@[to_additive]
theorem exponent_pos : 0 < exponent G ↔ ExponentExists G 
Arguments: {G : Type u} [AddMonoid G]
Goal: 0 < AddMonoid.exponent G ↔ AddMonoid.ExponentExists G
-- Monoid.exponent_eq_zero_iff
@[to_additive]
theorem exponent_eq_zero_iff : exponent G = 0 ↔ ¬ExponentExists G 
Arguments: {G : Type u} [Monoid G]
Goal: Monoid.exponent G = 0 ↔ ¬Monoid.ExponentExists G
-- AddMonoid.exponent_eq_zero_iff
@[to_additive]
theorem exponent_eq_zero_iff : exponent G = 0 ↔ ¬ExponentExists G 
Arguments: {G : Type u} [AddMonoid G]
Goal: AddMonoid.exponent G = 0 ↔ ¬AddMonoid.ExponentExists G
-- Monoid.exponent_eq_zero_of_order_zero
@[to_additive exponent_eq_zero_addOrder_zero]
theorem exponent_eq_zero_of_order_zero {g : G} (hg : orderOf g = 0) : exponent G = 0 
Arguments: {G : Type u} [Monoid G] {g : G} (hg : orderOf g = 0)
Goal: Monoid.exponent G = 0
-- AddMonoid.exponent_eq_zero_addOrder_zero
@[to_additive exponent_eq_zero_addOrder_zero]
theorem exponent_eq_zero_of_order_zero {g : G} (hg : orderOf g = 0) : exponent G = 0 
Arguments: {G : Type u} [AddMonoid G] {g : G} (hg : addOrderOf g = 0)
Goal: AddMonoid.exponent G = 0
-- AddMonoid.exponent_eq_zero_iff_forall
@[to_additive "The exponent is zero iff for all nonzero `n`, one can find a `g` such that
`n • g ≠ 0`."]
theorem exponent_eq_zero_iff_forall : exponent G = 0 ↔ ∀ n > 0, ∃ g : G, g ^ n ≠ 1 
Arguments: {G : Type u} [AddMonoid G]
Goal: AddMonoid.exponent G = 0 ↔ ∀ n > 0, ∃ g, n • g ≠ 0
-- Monoid.exponent_eq_zero_iff_forall
@[to_additive "The exponent is zero iff for all nonzero `n`, one can find a `g` such that
`n • g ≠ 0`."]
theorem exponent_eq_zero_iff_forall : exponent G = 0 ↔ ∀ n > 0, ∃ g : G, g ^ n ≠ 1 
Arguments: {G : Type u} [Monoid G]
Goal: Monoid.exponent G = 0 ↔ ∀ n > 0, ∃ g, g ^ n ≠ 1
-- Monoid.pow_exponent_eq_one
@[to_additive exponent_nsmul_eq_zero]
theorem pow_exponent_eq_one (g : G) : g ^ exponent G = 1 
Arguments: {G : Type u} [Monoid G] (g : G)
Goal: g ^ Monoid.exponent G = 1
-- AddMonoid.exponent_nsmul_eq_zero
@[to_additive exponent_nsmul_eq_zero]
theorem pow_exponent_eq_one (g : G) : g ^ exponent G = 1 
Arguments: {G : Type u} [AddMonoid G] (g : G)
Goal: AddMonoid.exponent G • g = 0
-- AddMonoid.nsmul_eq_mod_exponent
@[to_additive]
theorem pow_eq_mod_exponent {n : ℕ} (g : G) : g ^ n = g ^ (n % exponent G) 
Arguments: {G : Type u} [AddMonoid G] {n : ℕ} (g : G)
Goal: n • g = (n % AddMonoid.exponent G) • g
-- Monoid.pow_eq_mod_exponent
@[to_additive]
theorem pow_eq_mod_exponent {n : ℕ} (g : G) : g ^ n = g ^ (n % exponent G) 
Arguments: {G : Type u} [Monoid G] {n : ℕ} (g : G)
Goal: g ^ n = g ^ (n % Monoid.exponent G)
-- Monoid.exponent_pos_of_exists
@[to_additive]
theorem exponent_pos_of_exists (n : ℕ) (hpos : 0 < n) (hG : ∀ g : G, g ^ n = 1) :
    0 < exponent G 
Arguments: {G : Type u} [Monoid G] (n : ℕ) (hpos : 0 < n) (hG : ∀ (g : G), g ^ n = 1)
Goal: 0 < Monoid.exponent G
-- AddMonoid.exponent_pos_of_exists
@[to_additive]
theorem exponent_pos_of_exists (n : ℕ) (hpos : 0 < n) (hG : ∀ g : G, g ^ n = 1) :
    0 < exponent G 
Arguments: {G : Type u} [AddMonoid G] (n : ℕ) (hpos : 0 < n) (hG : ∀ (g : G), n • g = 0)
Goal: 0 < AddMonoid.exponent G
-- AddMonoid.exponent_min'
@[to_additive]
theorem exponent_min' (n : ℕ) (hpos : 0 < n) (hG : ∀ g : G, g ^ n = 1) : exponent G ≤ n 
Arguments: {G : Type u} [AddMonoid G] (n : ℕ) (hpos : 0 < n) (hG : ∀ (g : G), n • g = 0)
Goal: AddMonoid.exponent G ≤ n
-- Monoid.exponent_min'
@[to_additive]
theorem exponent_min' (n : ℕ) (hpos : 0 < n) (hG : ∀ g : G, g ^ n = 1) : exponent G ≤ n 
Arguments: {G : Type u} [Monoid G] (n : ℕ) (hpos : 0 < n) (hG : ∀ (g : G), g ^ n = 1)
Goal: Monoid.exponent G ≤ n
-- AddMonoid.exponent_min
@[to_additive]
theorem exponent_min (m : ℕ) (hpos : 0 < m) (hm : m < exponent G) : ∃ g : G, g ^ m ≠ 1 
Arguments: {G : Type u} [AddMonoid G] (m : ℕ) (hpos : 0 < m) (hm : m < AddMonoid.exponent G)
Goal: ∃ g, m • g ≠ 0
-- Monoid.exponent_min
@[to_additive]
theorem exponent_min (m : ℕ) (hpos : 0 < m) (hm : m < exponent G) : ∃ g : G, g ^ m ≠ 1 
Arguments: {G : Type u} [Monoid G] (m : ℕ) (hpos : 0 < m) (hm : m < Monoid.exponent G)
Goal: ∃ g, g ^ m ≠ 1
-- Monoid.exp_eq_one_iff
@[to_additive AddMonoid.exp_eq_one_iff]
theorem exp_eq_one_iff : exponent G = 1 ↔ Subsingleton G 
Arguments: {G : Type u} [Monoid G]
Goal: Monoid.exponent G = 1 ↔ Subsingleton G
-- AddMonoid.exp_eq_one_iff
@[to_additive AddMonoid.exp_eq_one_iff]
theorem exp_eq_one_iff : exponent G = 1 ↔ Subsingleton G 
Arguments: {G : Type u} [AddMonoid G]
Goal: AddMonoid.exponent G = 1 ↔ Subsingleton G
-- AddMonoid.exp_eq_one_of_subsingleton
@[to_additive (attr := simp) AddMonoid.exp_eq_one_of_subsingleton]
theorem exp_eq_one_of_subsingleton [hs : Subsingleton G] : exponent G = 1 
Arguments: {G : Type u} [AddMonoid G] [hs : Subsingleton G]
Goal: AddMonoid.exponent G = 1
-- Monoid.exp_eq_one_of_subsingleton
@[to_additive (attr := simp) AddMonoid.exp_eq_one_of_subsingleton]
theorem exp_eq_one_of_subsingleton [hs : Subsingleton G] : exponent G = 1 
Arguments: {G : Type u} [Monoid G] [hs : Subsingleton G]
Goal: Monoid.exponent G = 1
-- Monoid.order_dvd_exponent
@[to_additive addOrder_dvd_exponent]
theorem order_dvd_exponent (g : G) : orderOf g ∣ exponent G 
Arguments: {G : Type u} [Monoid G] (g : G)
Goal: orderOf g ∣ Monoid.exponent G
-- AddMonoid.addOrder_dvd_exponent
@[to_additive addOrder_dvd_exponent]
theorem order_dvd_exponent (g : G) : orderOf g ∣ exponent G 
Arguments: {G : Type u} [AddMonoid G] (g : G)
Goal: addOrderOf g ∣ AddMonoid.exponent G
-- Monoid.orderOf_le_exponent
@[to_additive]
theorem orderOf_le_exponent (h : ExponentExists G) (g : G) : orderOf g ≤ exponent G 
Arguments: {G : Type u} [Monoid G] (h : Monoid.ExponentExists G) (g : G)
Goal: orderOf g ≤ Monoid.exponent G
-- AddMonoid.addOrderOf_le_exponent
@[to_additive]
theorem orderOf_le_exponent (h : ExponentExists G) (g : G) : orderOf g ≤ exponent G 
Arguments: {G : Type u} [AddMonoid G] (h : AddMonoid.ExponentExists G) (g : G)
Goal: addOrderOf g ≤ AddMonoid.exponent G
-- Monoid.exponent_dvd_iff_forall_pow_eq_one
@[to_additive]
theorem exponent_dvd_iff_forall_pow_eq_one {n : ℕ} : exponent G ∣ n ↔ ∀ g : G, g ^ n = 1 
Arguments: {G : Type u} [Monoid G] {n : ℕ}
Goal: Monoid.exponent G ∣ n ↔ ∀ (g : G), g ^ n = 1
-- AddMonoid.exponent_dvd_iff_forall_nsmul_eq_zero
@[to_additive]
theorem exponent_dvd_iff_forall_pow_eq_one {n : ℕ} : exponent G ∣ n ↔ ∀ g : G, g ^ n = 1 
Arguments: {G : Type u} [AddMonoid G] {n : ℕ}
Goal: AddMonoid.exponent G ∣ n ↔ ∀ (g : G), n • g = 0
-- Monoid.exponent_dvd
@[to_additive]
theorem exponent_dvd {n : ℕ} : exponent G ∣ n ↔ ∀ g : G, orderOf g ∣ n 
Arguments: {G : Type u} [Monoid G] {n : ℕ}
Goal: Monoid.exponent G ∣ n ↔ ∀ (g : G), orderOf g ∣ n
-- AddMonoid.exponent_dvd
@[to_additive]
theorem exponent_dvd {n : ℕ} : exponent G ∣ n ↔ ∀ g : G, orderOf g ∣ n 
Arguments: {G : Type u} [AddMonoid G] {n : ℕ}
Goal: AddMonoid.exponent G ∣ n ↔ ∀ (g : G), addOrderOf g ∣ n
-- AddMonoid.exponent_dvd_of_forall_addOrderOf_dvd
@[to_additive (attr := deprecated (since := "2024-01-27"))]
theorem exponent_dvd_of_forall_orderOf_dvd (n : ℕ) (h : ∀ g : G, orderOf g ∣ n) : exponent G ∣ n 
Arguments: (G : Type u) [AddMonoid G] (n : ℕ) (h : ∀ (g : G), addOrderOf g ∣ n)
Goal: AddMonoid.exponent G ∣ n
-- Monoid.exponent_dvd_of_forall_orderOf_dvd
@[to_additive (attr := deprecated (since := "2024-01-27"))]
theorem exponent_dvd_of_forall_orderOf_dvd (n : ℕ) (h : ∀ g : G, orderOf g ∣ n) : exponent G ∣ n 
Arguments: (G : Type u) [Monoid G] (n : ℕ) (h : ∀ (g : G), orderOf g ∣ n)
Goal: Monoid.exponent G ∣ n
-- AddMonoid.lcm_addOrderOf_dvd_exponent
@[to_additive]
theorem lcm_orderOf_dvd_exponent [Fintype G] :
    (Finset.univ : Finset G).lcm orderOf ∣ exponent G 
Arguments: (G : Type u) [AddMonoid G] [Fintype G]
Goal: Finset.univ.lcm addOrderOf ∣ AddMonoid.exponent G
-- Monoid.lcm_orderOf_dvd_exponent
@[to_additive]
theorem lcm_orderOf_dvd_exponent [Fintype G] :
    (Finset.univ : Finset G).lcm orderOf ∣ exponent G 
Arguments: (G : Type u) [Monoid G] [Fintype G]
Goal: Finset.univ.lcm orderOf ∣ Monoid.exponent G
-- Nat.Prime.exists_orderOf_eq_pow_factorization_exponent
@[to_additive exists_addOrderOf_eq_pow_padic_val_nat_add_exponent]
theorem _root_.Nat.Prime.exists_orderOf_eq_pow_factorization_exponent {p : ℕ} (hp : p.Prime) :
    ∃ g : G, orderOf g = p ^ (exponent G).factorization p 
Arguments: (G : Type u) [Monoid G] {p : ℕ} (hp : Nat.Prime p)
Goal: ∃ g, orderOf g = p ^ (Monoid.exponent G).factorization p
-- Nat.Prime.exists_addOrderOf_eq_pow_padic_val_nat_add_exponent
@[to_additive exists_addOrderOf_eq_pow_padic_val_nat_add_exponent]
theorem _root_.Nat.Prime.exists_orderOf_eq_pow_factorization_exponent {p : ℕ} (hp : p.Prime) :
    ∃ g : G, orderOf g = p ^ (exponent G).factorization p 
Arguments: (G : Type u) [AddMonoid G] {p : ℕ} (hp : Nat.Prime p)
Goal: ∃ g, addOrderOf g = p ^ (AddMonoid.exponent G).factorization p
-- Commute.orderOf_mul_pow_eq_lcm
@[to_additive "If two commuting elements `x` and `y` of an additive monoid have order `n` and `m`,
there is an element of order `lcm n m`. The result actually gives an explicit (computable) element,
written as the sum of a multiple of `x` and a multiple of `y`. See also the result below if you
don't need the explicit formula."]
lemma _root_.Commute.orderOf_mul_pow_eq_lcm {x y : G} (h : Commute x y) (hx : orderOf x ≠ 0)
    (hy : orderOf y ≠ 0) :
    orderOf (x ^ (orderOf x / (factorizationLCMLeft (orderOf x) (orderOf y))) *
      y ^ (orderOf y / factorizationLCMRight (orderOf x) (orderOf y))) =
      Nat.lcm (orderOf x) (orderOf y) 
Arguments: {G : Type u} [Monoid G] {x y : G} (h : Commute x y) (hx : orderOf x ≠ 0) (hy : orderOf y ≠ 0)
Goal: orderOf
    (x ^ (orderOf x / (orderOf x).factorizationLCMLeft (orderOf y)) *
      y ^ (orderOf y / (orderOf x).factorizationLCMRight (orderOf y))) =
  (orderOf x).lcm (orderOf y)
-- AddCommute.addOrderOf_add_nsmul_eq_lcm
@[to_additive "If two commuting elements `x` and `y` of an additive monoid have order `n` and `m`,
there is an element of order `lcm n m`. The result actually gives an explicit (computable) element,
written as the sum of a multiple of `x` and a multiple of `y`. See also the result below if you
don't need the explicit formula."]
lemma _root_.Commute.orderOf_mul_pow_eq_lcm {x y : G} (h : Commute x y) (hx : orderOf x ≠ 0)
    (hy : orderOf y ≠ 0) :
    orderOf (x ^ (orderOf x / (factorizationLCMLeft (orderOf x) (orderOf y))) *
      y ^ (orderOf y / factorizationLCMRight (orderOf x) (orderOf y))) =
      Nat.lcm (orderOf x) (orderOf y) 
Arguments: {G : Type u} [AddMonoid G] {x y : G} (h : AddCommute x y) (hx : addOrderOf x ≠ 0) (hy : addOrderOf y ≠ 0)
Goal: addOrderOf
    ((addOrderOf x / (addOrderOf x).factorizationLCMLeft (addOrderOf y)) • x +
      (addOrderOf y / (addOrderOf x).factorizationLCMRight (addOrderOf y)) • y) =
  (addOrderOf x).lcm (addOrderOf y)
-- Commute.exists_orderOf_eq_lcm
@[to_additive "If two commuting elements `x` and `y` of an additive monoid have order `n` and `m`,
then there is an element of order `lcm n m` that lies in the additive subgroup generated by `x`
and `y`."]
theorem _root_.Commute.exists_orderOf_eq_lcm {x y : G} (h : Commute x y) :
    ∃ z ∈ closure {x, y}, orderOf z = Nat.lcm (orderOf x) (orderOf y) 
Arguments: (G : Type u) [Monoid G] {x y : G} (h : Commute x y)
Goal: ∃ z ∈ Submonoid.closure {x, y}, orderOf z = (orderOf x).lcm (orderOf y)
-- AddCommute.exists_addOrderOf_eq_lcm
@[to_additive "If two commuting elements `x` and `y` of an additive monoid have order `n` and `m`,
then there is an element of order `lcm n m` that lies in the additive subgroup generated by `x`
and `y`."]
theorem _root_.Commute.exists_orderOf_eq_lcm {x y : G} (h : Commute x y) :
    ∃ z ∈ closure {x, y}, orderOf z = Nat.lcm (orderOf x) (orderOf y) 
Arguments: (G : Type u) [AddMonoid G] {x y : G} (h : AddCommute x y)
Goal: ∃ z ∈ AddSubmonoid.closure {x, y}, addOrderOf z = (addOrderOf x).lcm (addOrderOf y)
-- Monoid.exponent_eq_prime_iff
@[to_additive]
lemma exponent_eq_prime_iff {G : Type*} [Monoid G] [Nontrivial G] {p : ℕ} (hp : p.Prime) :
    Monoid.exponent G = p ↔ ∀ g : G, g ≠ 1 → orderOf g = p 
Arguments: {G : Type u_1} [Monoid G] [Nontrivial G] {p : ℕ} (hp : Nat.Prime p)
Goal: Monoid.exponent G = p ↔ ∀ (g : G), g ≠ 1 → orderOf g = p
-- AddMonoid.exponent_eq_prime_iff
@[to_additive]
lemma exponent_eq_prime_iff {G : Type*} [Monoid G] [Nontrivial G] {p : ℕ} (hp : p.Prime) :
    Monoid.exponent G = p ↔ ∀ g : G, g ≠ 1 → orderOf g = p 
Arguments: {G : Type u_1} [AddMonoid G] [Nontrivial G] {p : ℕ} (hp : Nat.Prime p)
Goal: AddMonoid.exponent G = p ↔ ∀ (g : G), g ≠ 0 → addOrderOf g = p
-- Monoid.exponent_ne_zero_iff_range_orderOf_finite
@[to_additive]
theorem exponent_ne_zero_iff_range_orderOf_finite (h : ∀ g : G, 0 < orderOf g) :
    exponent G ≠ 0 ↔ (Set.range (orderOf : G → ℕ)).Finite 
Arguments: {G : Type u} [Monoid G] (h : ∀ (g : G), 0 < orderOf g)
Goal: Monoid.exponent G ≠ 0 ↔ (Set.range orderOf).Finite
-- AddMonoid.exponent_ne_zero_iff_range_addOrderOf_finite
@[to_additive]
theorem exponent_ne_zero_iff_range_orderOf_finite (h : ∀ g : G, 0 < orderOf g) :
    exponent G ≠ 0 ↔ (Set.range (orderOf : G → ℕ)).Finite 
Arguments: {G : Type u} [AddMonoid G] (h : ∀ (g : G), 0 < addOrderOf g)
Goal: AddMonoid.exponent G ≠ 0 ↔ (Set.range addOrderOf).Finite
-- AddMonoid.exponent_eq_zero_iff_range_addOrderOf_infinite
@[to_additive]
theorem exponent_eq_zero_iff_range_orderOf_infinite (h : ∀ g : G, 0 < orderOf g) :
    exponent G = 0 ↔ (Set.range (orderOf : G → ℕ)).Infinite 
Arguments: {G : Type u} [AddMonoid G] (h : ∀ (g : G), 0 < addOrderOf g)
Goal: AddMonoid.exponent G = 0 ↔ (Set.range addOrderOf).Infinite
-- Monoid.exponent_eq_zero_iff_range_orderOf_infinite
@[to_additive]
theorem exponent_eq_zero_iff_range_orderOf_infinite (h : ∀ g : G, 0 < orderOf g) :
    exponent G = 0 ↔ (Set.range (orderOf : G → ℕ)).Infinite 
Arguments: {G : Type u} [Monoid G] (h : ∀ (g : G), 0 < orderOf g)
Goal: Monoid.exponent G = 0 ↔ (Set.range orderOf).Infinite
-- Monoid.lcm_orderOf_eq_exponent
@[to_additive]
theorem lcm_orderOf_eq_exponent [Fintype G] : (Finset.univ : Finset G).lcm orderOf = exponent G 
Arguments: {G : Type u} [Monoid G] [Fintype G]
Goal: Finset.univ.lcm orderOf = Monoid.exponent G
-- AddMonoid.lcm_addOrderOf_eq_exponent
@[to_additive]
theorem lcm_orderOf_eq_exponent [Fintype G] : (Finset.univ : Finset G).lcm orderOf = exponent G 
Arguments: {G : Type u} [AddMonoid G] [Fintype G]
Goal: Finset.univ.lcm addOrderOf = AddMonoid.exponent G
-- AddMonoid.exponent_dvd_of_addMonoidHom
@[to_additive "If there exists an injective, addition-preserving map from `G` to `H`,
then the exponent of `G` divides the exponent of `H`."]
theorem exponent_dvd_of_monoidHom (e : G →* H) (e_inj : Function.Injective e) :
    Monoid.exponent G ∣ Monoid.exponent H 
Arguments: {G : Type u} [AddMonoid G] {H : Type u_1} [AddMonoid H] (e : G →+ H) (e_inj : Function.Injective ⇑e)
Goal: AddMonoid.exponent G ∣ AddMonoid.exponent H
-- Monoid.exponent_dvd_of_monoidHom
@[to_additive "If there exists an injective, addition-preserving map from `G` to `H`,
then the exponent of `G` divides the exponent of `H`."]
theorem exponent_dvd_of_monoidHom (e : G →* H) (e_inj : Function.Injective e) :
    Monoid.exponent G ∣ Monoid.exponent H 
Arguments: {G : Type u} [Monoid G] {H : Type u_1} [Monoid H] (e : G →* H) (e_inj : Function.Injective ⇑e)
Goal: Monoid.exponent G ∣ Monoid.exponent H
-- Monoid.exponent_eq_of_mulEquiv
@[to_additive "If there exists a addition-preserving equivalence between `G` and `H`,
then the exponent of `G` is equal to the exponent of `H`."]
theorem exponent_eq_of_mulEquiv (e : G ≃* H) : Monoid.exponent G = Monoid.exponent H 
Arguments: {G : Type u} [Monoid G] {H : Type u_1} [Monoid H] (e : G ≃* H)
Goal: Monoid.exponent G = Monoid.exponent H
-- AddMonoid.exponent_eq_of_addEquiv
@[to_additive "If there exists a addition-preserving equivalence between `G` and `H`,
then the exponent of `G` is equal to the exponent of `H`."]
theorem exponent_eq_of_mulEquiv (e : G ≃* H) : Monoid.exponent G = Monoid.exponent H 
Arguments: {G : Type u} [AddMonoid G] {H : Type u_1} [AddMonoid H] (e : G ≃+ H)
Goal: AddMonoid.exponent G = AddMonoid.exponent H
-- Submonoid.exponent_top
@[to_additive (attr := simp)]
theorem _root_.Submonoid.exponent_top :
    Monoid.exponent (⊤ : Submonoid G) = Monoid.exponent G 
Arguments: (G : Type u) [Monoid G]
Goal: Monoid.exponent ↥⊤ = Monoid.exponent G
-- AddSubmonoid.exponent_top
@[to_additive (attr := simp)]
theorem _root_.Submonoid.exponent_top :
    Monoid.exponent (⊤ : Submonoid G) = Monoid.exponent G 
Arguments: (G : Type u) [AddMonoid G]
Goal: AddMonoid.exponent ↥⊤ = AddMonoid.exponent G
-- AddSubmonoid.nsmul_exponent_eq_zero
@[to_additive]
theorem _root_.Submonoid.pow_exponent_eq_one {S : Submonoid G} {g : G} (g_in_s : g ∈ S) :
    g ^ (Monoid.exponent S) = 1 
Arguments: {G : Type u} [AddMonoid G] {S : AddSubmonoid G} {g : G} (g_in_s : g ∈ S)
Goal: AddMonoid.exponent ↥S • g = 0
-- Submonoid.pow_exponent_eq_one
@[to_additive]
theorem _root_.Submonoid.pow_exponent_eq_one {S : Submonoid G} {g : G} (g_in_s : g ∈ S) :
    g ^ (Monoid.exponent S) = 1 
Arguments: {G : Type u} [Monoid G] {S : Submonoid G} {g : G} (g_in_s : g ∈ S)
Goal: g ^ Monoid.exponent ↥S = 1
-- AddMonoid.ExponentExists.of_finite
@[to_additive]
theorem ExponentExists.of_finite : ExponentExists G 
Arguments: {G : Type u} [AddLeftCancelMonoid G] [Finite G]
Goal: AddMonoid.ExponentExists G
-- Monoid.ExponentExists.of_finite
@[to_additive]
theorem ExponentExists.of_finite : ExponentExists G 
Arguments: {G : Type u} [LeftCancelMonoid G] [Finite G]
Goal: Monoid.ExponentExists G
-- AddMonoid.exponent_ne_zero_of_finite
@[to_additive]
theorem exponent_ne_zero_of_finite : exponent G ≠ 0 
Arguments: {G : Type u} [AddLeftCancelMonoid G] [Finite G]
Goal: AddMonoid.exponent G ≠ 0
-- Monoid.exponent_ne_zero_of_finite
@[to_additive]
theorem exponent_ne_zero_of_finite : exponent G ≠ 0 
Arguments: {G : Type u} [LeftCancelMonoid G] [Finite G]
Goal: Monoid.exponent G ≠ 0
-- Monoid.one_lt_exponent
@[to_additive AddMonoid.one_lt_exponent]
lemma one_lt_exponent [Nontrivial G] : 1 < Monoid.exponent G 
Arguments: {G : Type u} [LeftCancelMonoid G] [Finite G] [Nontrivial G]
Goal: 1 < Monoid.exponent G
-- AddMonoid.one_lt_exponent
@[to_additive AddMonoid.one_lt_exponent]
lemma one_lt_exponent [Nontrivial G] : 1 < Monoid.exponent G 
Arguments: {G : Type u} [AddLeftCancelMonoid G] [Finite G] [Nontrivial G]
Goal: 1 < AddMonoid.exponent G
-- Monoid.exists_orderOf_eq_exponent
@[to_additive]
theorem exists_orderOf_eq_exponent (hG : ExponentExists G) : ∃ g : G, orderOf g = exponent G 
Arguments: {G : Type u} [CommMonoid G] (hG : Monoid.ExponentExists G)
Goal: ∃ g, orderOf g = Monoid.exponent G
-- AddMonoid.exists_addOrderOf_eq_exponent
@[to_additive]
theorem exists_orderOf_eq_exponent (hG : ExponentExists G) : ∃ g : G, orderOf g = exponent G 
Arguments: {G : Type u} [AddCommMonoid G] (hG : AddMonoid.ExponentExists G)
Goal: ∃ g, addOrderOf g = AddMonoid.exponent G
-- Monoid.exponent_eq_iSup_orderOf
@[to_additive]
theorem exponent_eq_iSup_orderOf (h : ∀ g : G, 0 < orderOf g) :
    exponent G = ⨆ g : G, orderOf g 
Arguments: {G : Type u} [CommMonoid G] (h : ∀ (g : G), 0 < orderOf g)
Goal: Monoid.exponent G = ⨆ g, orderOf g
-- AddMonoid.exponent_eq_iSup_addOrderOf
@[to_additive]
theorem exponent_eq_iSup_orderOf (h : ∀ g : G, 0 < orderOf g) :
    exponent G = ⨆ g : G, orderOf g 
Arguments: {G : Type u} [AddCommMonoid G] (h : ∀ (g : G), 0 < addOrderOf g)
Goal: AddMonoid.exponent G = ⨆ g, addOrderOf g
-- Monoid.exponent_eq_iSup_orderOf'
@[to_additive]
theorem exponent_eq_iSup_orderOf' :
    exponent G = if ∃ g : G, orderOf g = 0 then 0 else ⨆ g : G, orderOf g 
Arguments: {G : Type u} [CommMonoid G]
Goal: Monoid.exponent G = if ∃ g, orderOf g = 0 then 0 else ⨆ g, orderOf g
-- AddMonoid.exponent_eq_iSup_addOrderOf'
@[to_additive]
theorem exponent_eq_iSup_orderOf' :
    exponent G = if ∃ g : G, orderOf g = 0 then 0 else ⨆ g : G, orderOf g 
Arguments: {G : Type u} [AddCommMonoid G]
Goal: AddMonoid.exponent G = if ∃ g, addOrderOf g = 0 then 0 else ⨆ g, addOrderOf g
-- Monoid.exponent_eq_max'_orderOf
@[to_additive]
theorem exponent_eq_max'_orderOf [Fintype G] :
    exponent G = ((@Finset.univ G _).image orderOf).max' ⟨1, by simp⟩ 
Arguments: {G : Type u} [CancelCommMonoid G] [Fintype G]
Goal: Monoid.exponent G = (Finset.image orderOf Finset.univ).max' ⋯
-- AddMonoid.exponent_eq_max'_addOrderOf
@[to_additive]
theorem exponent_eq_max'_orderOf [Fintype G] :
    exponent G = ((@Finset.univ G _).image orderOf).max' ⟨1, by simp⟩ 
Arguments: {G : Type u} [AddCancelCommMonoid G] [Fintype G]
Goal: AddMonoid.exponent G = (Finset.image addOrderOf Finset.univ).max' ⋯
-- Group.one_lt_exponent
@[to_additive (attr := deprecated Monoid.one_lt_exponent (since := "2024-02-17"))
  AddGroup.one_lt_exponent]
lemma Group.one_lt_exponent [Finite G] [Nontrivial G] : 1 < Monoid.exponent G 
Arguments: {G : Type u} [Group G] [Finite G] [Nontrivial G]
Goal: 1 < Monoid.exponent G
-- AddGroup.one_lt_exponent
@[to_additive (attr := deprecated Monoid.one_lt_exponent (since := "2024-02-17"))
  AddGroup.one_lt_exponent]
lemma Group.one_lt_exponent [Finite G] [Nontrivial G] : 1 < Monoid.exponent G 
Arguments: {G : Type u} [AddGroup G] [Finite G] [Nontrivial G]
Goal: 1 < AddMonoid.exponent G
-- Group.exponent_dvd_card
theorem Group.exponent_dvd_card [Fintype G] : Monoid.exponent G ∣ Fintype.card G 
Arguments: {G : Type u} [Group G] [Fintype G]
Goal: Monoid.exponent G ∣ Fintype.card G
-- Group.exponent_dvd_nat_card
theorem Group.exponent_dvd_nat_card : Monoid.exponent G ∣ Nat.card G 
Arguments: {G : Type u} [Group G]
Goal: Monoid.exponent G ∣ Nat.card G
-- Subgroup.exponent_toSubmonoid
@[to_additive]
theorem Subgroup.exponent_toSubmonoid (H : Subgroup G) :
    Monoid.exponent H.toSubmonoid = Monoid.exponent H 
Arguments: {G : Type u} [Group G] (H : Subgroup G)
Goal: Monoid.exponent ↥H.toSubmonoid = Monoid.exponent ↥H
-- AddSubgroup.exponent_toAddSubmonoid
@[to_additive]
theorem Subgroup.exponent_toSubmonoid (H : Subgroup G) :
    Monoid.exponent H.toSubmonoid = Monoid.exponent H 
Arguments: {G : Type u} [AddGroup G] (H : AddSubgroup G)
Goal: AddMonoid.exponent ↥H.toAddSubmonoid = AddMonoid.exponent ↥H
-- Subgroup.exponent_top
@[to_additive (attr := simp)]
theorem Subgroup.exponent_top : Monoid.exponent (⊤ : Subgroup G) = Monoid.exponent G 
Arguments: {G : Type u} [Group G]
Goal: Monoid.exponent ↥⊤ = Monoid.exponent G
-- AddSubgroup.exponent_top
@[to_additive (attr := simp)]
theorem Subgroup.exponent_top : Monoid.exponent (⊤ : Subgroup G) = Monoid.exponent G 
Arguments: {G : Type u} [AddGroup G]
Goal: AddMonoid.exponent ↥⊤ = AddMonoid.exponent G
-- AddSubgroup.nsmul_exponent_eq_zero
@[to_additive]
theorem Subgroup.pow_exponent_eq_one {H : Subgroup G} {g : G} (g_in_H : g ∈ H) :
    g ^ Monoid.exponent H = 1 
Arguments: {G : Type u} [AddGroup G] {H : AddSubgroup G} {g : G} (g_in_H : g ∈ H)
Goal: AddMonoid.exponent ↥H • g = 0