ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Subgroup.orderOf_le_card
@[to_additive]
lemma Subgroup.orderOf_le_card (s : Subgroup G) (hs : (s : Set G).Finite) (hx : x ∈ s) :
    orderOf x ≤ Nat.card s 
Arguments: {G : Type u_1} [Group G] {x : G} (s : Subgroup G) (hs : (↑s).Finite) (hx : x ∈ s)
Goal: orderOf x ≤ Nat.card ↥s
-- AddSubgroup.addOrderOf_le_card
@[to_additive]
lemma Subgroup.orderOf_le_card (s : Subgroup G) (hs : (s : Set G).Finite) (hx : x ∈ s) :
    orderOf x ≤ Nat.card s 
Arguments: {G : Type u_1} [AddGroup G] {x : G} (s : AddSubgroup G) (hs : (↑s).Finite) (hx : x ∈ s)
Goal: addOrderOf x ≤ Nat.card ↥s
-- AddSubmonoid.addOrderOf_le_card
@[to_additive]
lemma Submonoid.orderOf_le_card (s : Submonoid G) (hs : (s : Set G).Finite) (hx : x ∈ s) :
    orderOf x ≤ Nat.card s 
Arguments: {G : Type u_1} [AddGroup G] {x : G} (s : AddSubmonoid G) (hs : (↑s).Finite) (hx : x ∈ s)
Goal: addOrderOf x ≤ Nat.card ↥s
-- Submonoid.orderOf_le_card
@[to_additive]
lemma Submonoid.orderOf_le_card (s : Submonoid G) (hs : (s : Set G).Finite) (hx : x ∈ s) :
    orderOf x ≤ Nat.card s 
Arguments: {G : Type u_1} [Group G] {x : G} (s : Submonoid G) (hs : (↑s).Finite) (hx : x ∈ s)
Goal: orderOf x ≤ Nat.card ↥s
-- card_nsmul_eq_zero'
@[to_additive (attr := simp) card_nsmul_eq_zero']
theorem pow_card_eq_one' {G : Type*} [Group G] {x : G} : x ^ Nat.card G = 1 
Arguments: {G : Type u_6} [AddGroup G] {x : G}
Goal: Nat.card G • x = 0
-- pow_card_eq_one'
@[to_additive (attr := simp) card_nsmul_eq_zero']
theorem pow_card_eq_one' {G : Type*} [Group G] {x : G} : x ^ Nat.card G = 1 
Arguments: {G : Type u_6} [Group G] {x : G}
Goal: x ^ Nat.card G = 1
-- pow_card_eq_one
@[to_additive (attr := simp) card_nsmul_eq_zero]
theorem pow_card_eq_one : x ^ Fintype.card G = 1 
Arguments: {G : Type u_1} [Group G] [Fintype G] {x : G}
Goal: x ^ Fintype.card G = 1
-- card_nsmul_eq_zero
@[to_additive (attr := simp) card_nsmul_eq_zero]
theorem pow_card_eq_one : x ^ Fintype.card G = 1 
Arguments: {G : Type u_1} [AddGroup G] [Fintype G] {x : G}
Goal: Fintype.card G • x = 0
-- AddSubgroup.nsmul_index_mem
@[to_additive]
theorem Subgroup.pow_index_mem {G : Type*} [Group G] (H : Subgroup G) [Normal H] (g : G) :
    g ^ index H ∈ H 
Arguments: {G : Type u_6} [AddGroup G] (H : AddSubgroup G) [H.Normal] (g : G)
Goal: H.index • g ∈ H
-- Subgroup.pow_index_mem
@[to_additive]
theorem Subgroup.pow_index_mem {G : Type*} [Group G] (H : Subgroup G) [Normal H] (g : G) :
    g ^ index H ∈ H 
Arguments: {G : Type u_6} [Group G] (H : Subgroup G) [H.Normal] (g : G)
Goal: g ^ H.index ∈ H
-- mod_card_nsmul
@[to_additive (attr := simp) mod_card_nsmul]
lemma pow_mod_card (a : G) (n : ℕ) : a ^ (n % card G) = a ^ n 
Arguments: {G : Type u_1} [AddGroup G] [Fintype G] (a : G) (n : ℕ)
Goal: (n % Fintype.card G) • a = n • a
-- pow_mod_card
@[to_additive (attr := simp) mod_card_nsmul]
lemma pow_mod_card (a : G) (n : ℕ) : a ^ (n % card G) = a ^ n 
Arguments: {G : Type u_1} [Group G] [Fintype G] (a : G) (n : ℕ)
Goal: a ^ (n % Fintype.card G) = a ^ n
-- mod_card_zsmul
@[to_additive (attr := simp) mod_card_zsmul]
theorem zpow_mod_card (a : G) (n : ℤ) : a ^ (n % Fintype.card G : ℤ) = a ^ n 
Arguments: {G : Type u_1} [AddGroup G] [Fintype G] (a : G) (n : ℤ)
Goal: (n % ↑(Fintype.card G)) • a = n • a
-- zpow_mod_card
@[to_additive (attr := simp) mod_card_zsmul]
theorem zpow_mod_card (a : G) (n : ℤ) : a ^ (n % Fintype.card G : ℤ) = a ^ n 
Arguments: {G : Type u_1} [Group G] [Fintype G] (a : G) (n : ℤ)
Goal: a ^ (n % ↑(Fintype.card G)) = a ^ n
-- mod_natCard_nsmul
@[to_additive (attr := simp) mod_natCard_nsmul]
lemma pow_mod_natCard (a : G) (n : ℕ) : a ^ (n % Nat.card G) = a ^ n 
Arguments: {G : Type u_1} [AddGroup G] (a : G) (n : ℕ)
Goal: (n % Nat.card G) • a = n • a
-- pow_mod_natCard
@[to_additive (attr := simp) mod_natCard_nsmul]
lemma pow_mod_natCard (a : G) (n : ℕ) : a ^ (n % Nat.card G) = a ^ n 
Arguments: {G : Type u_1} [Group G] (a : G) (n : ℕ)
Goal: a ^ (n % Nat.card G) = a ^ n
-- mod_natCard_zsmul
@[to_additive (attr := simp) mod_natCard_zsmul]
lemma zpow_mod_natCard (a : G) (n : ℤ) : a ^ (n % Nat.card G : ℤ) = a ^ n 
Arguments: {G : Type u_1} [AddGroup G] (a : G) (n : ℤ)
Goal: (n % ↑(Nat.card G)) • a = n • a
-- zpow_mod_natCard
@[to_additive (attr := simp) mod_natCard_zsmul]
lemma zpow_mod_natCard (a : G) (n : ℤ) : a ^ (n % Nat.card G : ℤ) = a ^ n 
Arguments: {G : Type u_1} [Group G] (a : G) (n : ℤ)
Goal: a ^ (n % ↑(Nat.card G)) = a ^ n
-- nsmulCoprime_symm_apply
@[to_additive (attr := simps) "If `gcd(|G|,n)=1` then the smul by `n` is a bijection"]
noncomputable def powCoprime {G : Type*} [Group G] (h : (Nat.card G).Coprime n) : G ≃ G 
Arguments: {n : ℕ} {G : Type u_6} [AddGroup G] (h : (Nat.card G).Coprime n) (g : G)
Goal: (nsmulCoprime h).symm g = (Nat.card G).gcdB n • g
-- nsmulCoprime_apply
@[to_additive (attr := simps) "If `gcd(|G|,n)=1` then the smul by `n` is a bijection"]
noncomputable def powCoprime {G : Type*} [Group G] (h : (Nat.card G).Coprime n) : G ≃ G 
Arguments: {n : ℕ} {G : Type u_6} [AddGroup G] (h : (Nat.card G).Coprime n) (g : G)
Goal: (nsmulCoprime h) g = n • g
-- powCoprime_symm_apply
@[to_additive (attr := simps) "If `gcd(|G|,n)=1` then the smul by `n` is a bijection"]
noncomputable def powCoprime {G : Type*} [Group G] (h : (Nat.card G).Coprime n) : G ≃ G 
Arguments: {n : ℕ} {G : Type u_6} [Group G] (h : (Nat.card G).Coprime n) (g : G)
Goal: (powCoprime h).symm g = g ^ (Nat.card G).gcdB n
-- powCoprime_apply
@[to_additive (attr := simps) "If `gcd(|G|,n)=1` then the smul by `n` is a bijection"]
noncomputable def powCoprime {G : Type*} [Group G] (h : (Nat.card G).Coprime n) : G ≃ G 
Arguments: {n : ℕ} {G : Type u_6} [Group G] (h : (Nat.card G).Coprime n) (g : G)
Goal: (powCoprime h) g = g ^ n
-- powCoprime_one
@[to_additive] -- Porting note (#10618): simp can prove this (so removed simp)
theorem powCoprime_one {G : Type*} [Group G] (h : (Nat.card G).Coprime n) : powCoprime h 1 = 1 
Arguments: {n : ℕ} {G : Type u_6} [Group G] (h : (Nat.card G).Coprime n)
Goal: (powCoprime h) 1 = 1
-- nsmulCoprime_zero
@[to_additive] -- Porting note (#10618): simp can prove this (so removed simp)
theorem powCoprime_one {G : Type*} [Group G] (h : (Nat.card G).Coprime n) : powCoprime h 1 = 1 
Arguments: {n : ℕ} {G : Type u_6} [AddGroup G] (h : (Nat.card G).Coprime n)
Goal: (nsmulCoprime h) 0 = 0
-- powCoprime_inv
@[to_additive] -- Porting note (#10618): simp can prove this (so removed simp)
theorem powCoprime_inv {G : Type*} [Group G] (h : (Nat.card G).Coprime n) {g : G} :
    powCoprime h g⁻¹ = (powCoprime h g)⁻¹ 
Arguments: {n : ℕ} {G : Type u_6} [Group G] (h : (Nat.card G).Coprime n) {g : G}
Goal: (powCoprime h) g⁻¹ = ((powCoprime h) g)⁻¹
-- nsmulCoprime_neg
@[to_additive] -- Porting note (#10618): simp can prove this (so removed simp)
theorem powCoprime_inv {G : Type*} [Group G] (h : (Nat.card G).Coprime n) {g : G} :
    powCoprime h g⁻¹ = (powCoprime h g)⁻¹ 
Arguments: {n : ℕ} {G : Type u_6} [AddGroup G] (h : (Nat.card G).Coprime n) {g : G}
Goal: (nsmulCoprime h) (-g) = -(nsmulCoprime h) g
-- Nat.Coprime.nsmul_right_bijective
@[to_additive Nat.Coprime.nsmul_right_bijective]
lemma Nat.Coprime.pow_left_bijective (hn : (Nat.card G).Coprime n) : Bijective (· ^ n : G → G) 
Arguments: {G : Type u_1} [AddGroup G] {n : ℕ} (hn : (Nat.card G).Coprime n)
Goal: Function.Bijective fun x => n • x
-- Nat.Coprime.pow_left_bijective
@[to_additive Nat.Coprime.nsmul_right_bijective]
lemma Nat.Coprime.pow_left_bijective (hn : (Nat.card G).Coprime n) : Bijective (· ^ n : G → G) 
Arguments: {G : Type u_1} [Group G] {n : ℕ} (hn : (Nat.card G).Coprime n)
Goal: Function.Bijective fun x => x ^ n
-- add_inf_eq_bot_of_coprime
@[to_additive add_inf_eq_bot_of_coprime]
theorem inf_eq_bot_of_coprime {G : Type*} [Group G] {H K : Subgroup G}
    (h : Nat.Coprime (Nat.card H) (Nat.card K)) : H ⊓ K = ⊥ 
Arguments: {G : Type u_6} [AddGroup G] {H K : AddSubgroup G} (h : (Nat.card ↥H).Coprime (Nat.card ↥K))
Goal: H ⊓ K = ⊥
-- inf_eq_bot_of_coprime
@[to_additive add_inf_eq_bot_of_coprime]
theorem inf_eq_bot_of_coprime {G : Type*} [Group G] {H K : Subgroup G}
    (h : Nat.Coprime (Nat.card H) (Nat.card K)) : H ⊓ K = ⊥ 
Arguments: {G : Type u_6} [Group G] {H K : Subgroup G} (h : (Nat.card ↥H).Coprime (Nat.card ↥K))
Goal: H ⊓ K = ⊥
-- image_range_orderOf
@[to_additive]
theorem image_range_orderOf [DecidableEq G] :
    Finset.image (fun i => x ^ i) (Finset.range (orderOf x)) = (zpowers x : Set G).toFinset 
Arguments: {G : Type u_1} [Group G] [Fintype G] {x : G} [DecidableEq G]
Goal: Finset.image (fun i => x ^ i) (Finset.range (orderOf x)) = (↑(Subgroup.zpowers x)).toFinset
-- image_range_addOrderOf
@[to_additive]
theorem image_range_orderOf [DecidableEq G] :
    Finset.image (fun i => x ^ i) (Finset.range (orderOf x)) = (zpowers x : Set G).toFinset 
Arguments: {G : Type u_1} [AddGroup G] [Fintype G] {x : G} [DecidableEq G]
Goal: Finset.image (fun i => i • x) (Finset.range (addOrderOf x)) = (↑(AddSubgroup.zmultiples x)).toFinset
-- pow_gcd_card_eq_one_iff
@[to_additive gcd_nsmul_card_eq_zero_iff]
theorem pow_gcd_card_eq_one_iff : x ^ n = 1 ↔ x ^ gcd n (Fintype.card G) = 1 
Arguments: {G : Type u_1} [Group G] [Fintype G] {x : G} {n : ℕ}
Goal: x ^ n = 1 ↔ x ^ n.gcd (Fintype.card G) = 1
-- gcd_nsmul_card_eq_zero_iff
@[to_additive gcd_nsmul_card_eq_zero_iff]
theorem pow_gcd_card_eq_one_iff : x ^ n = 1 ↔ x ^ gcd n (Fintype.card G) = 1 
Arguments: {G : Type u_1} [AddGroup G] [Fintype G] {x : G} {n : ℕ}
Goal: n • x = 0 ↔ n.gcd (Fintype.card G) • x = 0
-- smulCardAddSubgroup_coe
@[to_additive (attr := simps!) smulCardAddSubgroup
  "If `S` is a nonempty subset of a finite add group `G`, then `|G| • S` is a subgroup"]
def powCardSubgroup {G : Type*} [Group G] [Fintype G] (S : Set G) (hS : S.Nonempty) : Subgroup G 
Arguments: {G : Type u_6} [AddGroup G] [Fintype G] (S : Set G) (hS : S.Nonempty)
Goal: ↑(smulCardAddSubgroup S hS) = Fintype.card G • S
-- powCardSubgroup_coe
@[to_additive (attr := simps!) smulCardAddSubgroup
  "If `S` is a nonempty subset of a finite add group `G`, then `|G| • S` is a subgroup"]
def powCardSubgroup {G : Type*} [Group G] [Fintype G] (S : Set G) (hS : S.Nonempty) : Subgroup G 
Arguments: {G : Type u_6} [Group G] [Fintype G] (S : Set G) (hS : S.Nonempty)
Goal: ↑(powCardSubgroup S hS) = S ^ Fintype.card G
-- IsOfFinOrder.eq_one
protected lemma IsOfFinOrder.eq_one (ha₀ : 0 ≤ a) (ha : IsOfFinOrder a) : a = 1 
Arguments: {G : Type u_1} [LinearOrderedSemiring G] {a : G} (ha₀ : 0 ≤ a) (ha : IsOfFinOrder a)
Goal: a = 1
-- IsOfFinOrder.eq_neg_one
protected lemma IsOfFinOrder.eq_neg_one (ha₀ : a ≤ 0) (ha : IsOfFinOrder a) : a = -1 
Arguments: {G : Type u_1} [LinearOrderedRing G] {a : G} (ha₀ : a ≤ 0) (ha : IsOfFinOrder a)
Goal: a = -1
-- orderOf_abs_ne_one
theorem orderOf_abs_ne_one (h : |x| ≠ 1) : orderOf x = 0 
Arguments: {G : Type u_1} [LinearOrderedRing G] {x : G} (h : |x| ≠ 1)
Goal: orderOf x = 0
-- LinearOrderedRing.orderOf_le_two
theorem LinearOrderedRing.orderOf_le_two : orderOf x ≤ 2 
Arguments: {G : Type u_1} [LinearOrderedRing G] {x : G}
Goal: orderOf x ≤ 2
-- Prod.orderOf
@[to_additive]
protected theorem Prod.orderOf (x : α × β) : orderOf x = (orderOf x.1).lcm (orderOf x.2) 
Arguments: {α : Type u_4} {β : Type u_5} [Monoid α] [Monoid β] (x : α × β)
Goal: orderOf x = (orderOf x.1).lcm (orderOf x.2)
-- Prod.addOrderOf
@[to_additive]
protected theorem Prod.orderOf (x : α × β) : orderOf x = (orderOf x.1).lcm (orderOf x.2) 
Arguments: {α : Type u_4} {β : Type u_5} [AddMonoid α] [AddMonoid β] (x : α × β)
Goal: addOrderOf x = (addOrderOf x.1).lcm (addOrderOf x.2)
-- addOrderOf_fst_dvd_addOrderOf
@[to_additive]
theorem orderOf_fst_dvd_orderOf : orderOf x.1 ∣ orderOf x 
Arguments: {α : Type u_4} {β : Type u_5} [AddMonoid α] [AddMonoid β] {x : α × β}
Goal: addOrderOf x.1 ∣ addOrderOf x
-- orderOf_fst_dvd_orderOf
@[to_additive]
theorem orderOf_fst_dvd_orderOf : orderOf x.1 ∣ orderOf x 
Arguments: {α : Type u_4} {β : Type u_5} [Monoid α] [Monoid β] {x : α × β}
Goal: orderOf x.1 ∣ orderOf x
-- addOrderOf_snd_dvd_addOrderOf
@[to_additive]
theorem orderOf_snd_dvd_orderOf : orderOf x.2 ∣ orderOf x 
Arguments: {α : Type u_4} {β : Type u_5} [AddMonoid α] [AddMonoid β] {x : α × β}
Goal: addOrderOf x.2 ∣ addOrderOf x
-- orderOf_snd_dvd_orderOf
@[to_additive]
theorem orderOf_snd_dvd_orderOf : orderOf x.2 ∣ orderOf x 
Arguments: {α : Type u_4} {β : Type u_5} [Monoid α] [Monoid β] {x : α × β}
Goal: orderOf x.2 ∣ orderOf x
-- IsOfFinAddOrder.fst
@[to_additive]
theorem IsOfFinOrder.fst {x : α × β} (hx : IsOfFinOrder x) : IsOfFinOrder x.1 
Arguments: {α : Type u_4} {β : Type u_5} [AddMonoid α] [AddMonoid β] {x : α × β} (hx : IsOfFinAddOrder x)
Goal: IsOfFinAddOrder x.1
-- IsOfFinOrder.fst
@[to_additive]
theorem IsOfFinOrder.fst {x : α × β} (hx : IsOfFinOrder x) : IsOfFinOrder x.1 
Arguments: {α : Type u_4} {β : Type u_5} [Monoid α] [Monoid β] {x : α × β} (hx : IsOfFinOrder x)
Goal: IsOfFinOrder x.1
-- IsOfFinAddOrder.snd
@[to_additive]
theorem IsOfFinOrder.snd {x : α × β} (hx : IsOfFinOrder x) : IsOfFinOrder x.2 
Arguments: {α : Type u_4} {β : Type u_5} [AddMonoid α] [AddMonoid β] {x : α × β} (hx : IsOfFinAddOrder x)
Goal: IsOfFinAddOrder x.2
-- IsOfFinOrder.snd
@[to_additive]
theorem IsOfFinOrder.snd {x : α × β} (hx : IsOfFinOrder x) : IsOfFinOrder x.2 
Arguments: {α : Type u_4} {β : Type u_5} [Monoid α] [Monoid β] {x : α × β} (hx : IsOfFinOrder x)
Goal: IsOfFinOrder x.2
-- IsOfFinAddOrder.prod_mk
@[to_additive IsOfFinAddOrder.prod_mk]
theorem IsOfFinOrder.prod_mk : IsOfFinOrder a → IsOfFinOrder b → IsOfFinOrder (a, b) 
Arguments: {α : Type u_4} {β : Type u_5} [AddMonoid α] [AddMonoid β] {a : α} {b : β}
Goal: IsOfFinAddOrder a → IsOfFinAddOrder b → IsOfFinAddOrder (a, b)
-- IsOfFinOrder.prod_mk
@[to_additive IsOfFinAddOrder.prod_mk]
theorem IsOfFinOrder.prod_mk : IsOfFinOrder a → IsOfFinOrder b → IsOfFinOrder (a, b) 
Arguments: {α : Type u_4} {β : Type u_5} [Monoid α] [Monoid β] {a : α} {b : β}
Goal: IsOfFinOrder a → IsOfFinOrder b → IsOfFinOrder (a, b)
-- Prod.addOrderOf_mk
@[to_additive]
lemma Prod.orderOf_mk : orderOf (a, b) = Nat.lcm (orderOf a) (orderOf b) 
Arguments: {α : Type u_4} {β : Type u_5} [AddMonoid α] [AddMonoid β] {a : α} {b : β}
Goal: addOrderOf (a, b) = (addOrderOf a).lcm (addOrderOf b)
-- Prod.orderOf_mk
@[to_additive]
lemma Prod.orderOf_mk : orderOf (a, b) = Nat.lcm (orderOf a) (orderOf b) 
Arguments: {α : Type u_4} {β : Type u_5} [Monoid α] [Monoid β] {a : α} {b : β}
Goal: orderOf (a, b) = (orderOf a).lcm (orderOf b)
-- Nat.cast_card_eq_zero
@[simp]
lemma Nat.cast_card_eq_zero (R) [AddGroupWithOne R] [Fintype R] : (Fintype.card R : R) = 0 
Arguments: (R : Type u_6) [AddGroupWithOne R] [Fintype R]
Goal: ↑(Fintype.card R) = 0
-- CharP.addOrderOf_one
lemma CharP.addOrderOf_one : CharP R (addOrderOf (1 : R)) 
Arguments: (R : Type u_6) [NonAssocRing R]
Goal: CharP R (addOrderOf 1)
-- charP_of_ne_zero
lemma charP_of_ne_zero (hn : card R = p) (hR : ∀ i < p, (i : R) = 0 → i = 0) : CharP R p 
Arguments: {R : Type u_6} [NonAssocRing R] [Fintype R] (p : ℕ) (hn : Fintype.card R = p) (hR : ∀ i < p, ↑i = 0 → i = 0)
Goal: CharP R p
-- charP_of_prime_pow_injective
lemma charP_of_prime_pow_injective (R) [Ring R] [Fintype R] (p n : ℕ) [hp : Fact p.Prime]
    (hn : card R = p ^ n) (hR : ∀ i ≤ n, (p : R) ^ i = 0 → i = n) : CharP R (p ^ n) 
Arguments: (R : Type u_6) [Ring R] [Fintype R] (p n : ℕ) [hp : Fact (Nat.Prime p)] (hn : Fintype.card R = p ^ n) (hR : ∀ i ≤ n, ↑p ^ i = 0 → i = n)
Goal: CharP R (p ^ n)
-- AddSemiconjBy.addOrderOf_eq
@[to_additive]
lemma orderOf_eq [Group G] (a : G) {x y : G} (h : SemiconjBy a x y) : orderOf x = orderOf y 
Arguments: {G : Type u_1} [AddGroup G] (a : G) {x y : G} (h : AddSemiconjBy a x y)
Goal: addOrderOf x = addOrderOf y
-- SemiconjBy.orderOf_eq
@[to_additive]
lemma orderOf_eq [Group G] (a : G) {x y : G} (h : SemiconjBy a x y) : orderOf x = orderOf y 
Arguments: {G : Type u_1} [Group G] (a : G) {x y : G} (h : SemiconjBy a x y)
Goal: orderOf x = orderOf y
-- Equiv.Perm.viaEmbedding_apply
theorem viaEmbedding_apply (x : α) : e.viaEmbedding ι (ι x) = ι (e x) 
Arguments: {α : Type u_1} {β : Type u_2} (e : Equiv.Perm α) (ι : α ↪ β) (x : α)
Goal: (e.viaEmbedding ι) (ι x) = ι (e x)
-- Equiv.Perm.viaEmbedding_apply_of_not_mem
theorem viaEmbedding_apply_of_not_mem (x : β) (hx : x ∉ Set.range ι) : e.viaEmbedding ι x = x 
Arguments: {α : Type u_1} {β : Type u_2} (e : Equiv.Perm α) (ι : α ↪ β) (x : β) (hx : x ∉ Set.range ⇑ι)
Goal: (e.viaEmbedding ι) x = x
-- Equiv.Perm.viaEmbeddingHom_apply
theorem viaEmbeddingHom_apply : viaEmbeddingHom ι e = viaEmbedding e ι 
Arguments: {α : Type u_1} {β : Type u_2} (e : Equiv.Perm α) (ι : α ↪ β)
Goal: (Equiv.Perm.viaEmbeddingHom ι) e = e.viaEmbedding ι
-- Equiv.Perm.viaEmbeddingHom_injective
theorem viaEmbeddingHom_injective : Function.Injective (viaEmbeddingHom ι) 
Arguments: {α : Type u_1} {β : Type u_2} (ι : α ↪ β)
Goal: Function.Injective ⇑(Equiv.Perm.viaEmbeddingHom ι)
-- CoxeterMatrix.reindex_relationsSet
theorem reindex_relationsSet :
    (M.reindex e).relationsSet =
    FreeGroup.freeGroupCongr e '' M.relationsSet 
Arguments: {B : Type u_1} {B' : Type u_2} (M : CoxeterMatrix B) (e : B ≃ B')
Goal: (CoxeterMatrix.reindex e M).relationsSet = ⇑(FreeGroup.freeGroupCongr e) '' M.relationsSet
-- CoxeterMatrix.reindexGroupEquiv_apply_simple
theorem reindexGroupEquiv_apply_simple (i : B') :
    (M.reindexGroupEquiv e) ((M.reindex e).simple i) = M.simple (e.symm i) 
Arguments: {B : Type u_1} {B' : Type u_2} (M : CoxeterMatrix B) (e : B ≃ B') (i : B')
Goal: (M.reindexGroupEquiv e) ((CoxeterMatrix.reindex e M).simple i) = M.simple (e.symm i)
-- CoxeterMatrix.reindexGroupEquiv_symm_apply_simple
theorem reindexGroupEquiv_symm_apply_simple (i : B) :
    (M.reindexGroupEquiv e).symm (M.simple i) = (M.reindex e).simple (e i) 
Arguments: {B : Type u_1} {B' : Type u_2} (M : CoxeterMatrix B) (e : B ≃ B') (i : B)
Goal: (M.reindexGroupEquiv e).symm (M.simple i) = (CoxeterMatrix.reindex e M).simple (e i)
-- IsCoxeterGroup.nonempty_system
class IsCoxeterGroup.{u} (W : Type u) [Group W] : Prop where
  nonempty_system : ∃ B : Type u, ∃ M : CoxeterMatrix B, Nonempty (CoxeterSystem M W)
Arguments: {W : Type u} [Group W] [self : IsCoxeterGroup W]
Goal: ∃ B M, Nonempty (CoxeterSystem M W)
-- CoxeterSystem.reindex_mulEquiv
@[simps]
protected def reindex (e : B ≃ B') : CoxeterSystem (M.reindex e) W 
Arguments: {B : Type u_1} {B' : Type u_2} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (e : B ≃ B')
Goal: (cs.reindex e).mulEquiv = cs.mulEquiv.trans (M.reindexGroupEquiv e).symm
-- CoxeterSystem.map_mulEquiv
@[simps]
protected def map (e : W ≃* H) : CoxeterSystem M H 
Arguments: {B : Type u_1} {W : Type u_3} {H : Type u_4} [Group W] [Group H] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (e : W ≃* H)
Goal: (cs.map e).mulEquiv = e.symm.trans cs.mulEquiv
-- CoxeterMatrix.toCoxeterSystem_simple
@[simp]
theorem _root_.CoxeterMatrix.toCoxeterSystem_simple (M : CoxeterMatrix B) :
    M.toCoxeterSystem.simple = M.simple 
Arguments: {B : Type u_1} (M : CoxeterMatrix B)
Goal: M.toCoxeterSystem.simple = M.simple
-- CoxeterSystem.reindex_simple
@[simp] theorem reindex_simple (i' : B') : (cs.reindex e).simple i' = cs.simple (e.symm i') 
Arguments: {B : Type u_1} {B' : Type u_2} (e : B ≃ B') {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (i' : B')
Goal: (cs.reindex e).simple i' = cs.simple (e.symm i')
-- CoxeterSystem.map_simple
@[simp] theorem map_simple (e : W ≃* H) (i : B) : (cs.map e).simple i = e (cs.simple i) 
Arguments: {B : Type u_1} {W : Type u_3} {H : Type u_4} [Group W] [Group H] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (e : W ≃* H) (i : B)
Goal: (cs.map e).simple i = e (cs.simple i)
-- CoxeterSystem.simple_mul_simple_self
@[simp]
theorem simple_mul_simple_self (i : B) : s i * s i = 1 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (i : B)
Goal: cs.simple i * cs.simple i = 1
-- CoxeterSystem.simple_mul_simple_cancel_right
@[simp]
theorem simple_mul_simple_cancel_right {w : W} (i : B) : w * s i * s i = w 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) {w : W} (i : B)
Goal: w * cs.simple i * cs.simple i = w
-- CoxeterSystem.simple_mul_simple_cancel_left
@[simp]
theorem simple_mul_simple_cancel_left {w : W} (i : B) : s i * (s i * w) = w 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) {w : W} (i : B)
Goal: cs.simple i * (cs.simple i * w) = w
-- CoxeterSystem.simple_sq
@[simp] theorem simple_sq (i : B) : s i ^ 2 = 1 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (i : B)
Goal: cs.simple i ^ 2 = 1
-- CoxeterSystem.inv_simple
@[simp]
theorem inv_simple (i : B) : (s i)⁻¹ = s i 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (i : B)
Goal: (cs.simple i)⁻¹ = cs.simple i
-- CoxeterSystem.simple_mul_simple_pow
@[simp]
theorem simple_mul_simple_pow (i i' : B) : (s i * s i') ^ M i i' = 1 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (i i' : B)
Goal: (cs.simple i * cs.simple i') ^ M.M i i' = 1
-- CoxeterSystem.simple_mul_simple_pow'
@[simp] theorem simple_mul_simple_pow' (i i' : B) : (s i' * s i) ^ M i i' = 1 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (i i' : B)
Goal: (cs.simple i' * cs.simple i) ^ M.M i i' = 1
-- CoxeterSystem.subgroup_closure_range_simple
theorem subgroup_closure_range_simple : Subgroup.closure (range cs.simple) = ⊤ 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W)
Goal: Subgroup.closure (Set.range cs.simple) = ⊤
-- CoxeterSystem.submonoid_closure_range_simple
theorem submonoid_closure_range_simple : Submonoid.closure (range cs.simple) = ⊤ 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W)
Goal: Submonoid.closure (Set.range cs.simple) = ⊤
-- CoxeterSystem.simple_induction
theorem simple_induction {p : W → Prop} (w : W) (simple : ∀ i : B, p (s i)) (one : p 1)
    (mul : ∀ w w' : W, p w → p w' → p (w * w')) : p w 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) {p : W → Prop} (w : W) (simple : ∀ (i : B), p (cs.simple i)) (one : p 1) (mul : ∀ (w w' : W), p w → p w' → p (w * w'))
Goal: p w
-- CoxeterSystem.simple_induction_left
theorem simple_induction_left {p : W → Prop} (w : W) (one : p 1)
    (mul_simple_left : ∀ (w : W) (i : B), p w → p (s i * w)) : p w 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) {p : W → Prop} (w : W) (one : p 1) (mul_simple_left : ∀ (w : W) (i : B), p w → p (cs.simple i * w))
Goal: p w
-- CoxeterSystem.simple_induction_right
theorem simple_induction_right {p : W → Prop} (w : W) (one : p 1)
    (mul_simple_right : ∀ (w : W) (i : B), p w → p (w * s i)) : p w 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) {p : W → Prop} (w : W) (one : p 1) (mul_simple_right : ∀ (w : W) (i : B), p w → p (w * cs.simple i))
Goal: p w
-- CoxeterSystem.ext_simple
theorem ext_simple {G : Type*} [Monoid G] {φ₁ φ₂ : W →* G} (h : ∀ i : B, φ₁ (s i) = φ₂ (s i)) :
    φ₁ = φ₂ 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) {G : Type u_5} [Monoid G] {φ₁ φ₂ : W →* G} (h : ∀ (i : B), φ₁ (cs.simple i) = φ₂ (cs.simple i))
Goal: φ₁ = φ₂
-- _private.Mathlib.GroupTheory.Coxeter.Basic.0.CoxeterSystem.relations_liftable
private theorem relations_liftable {G : Type*} [Group G] {f : B → G} (hf : IsLiftable M f)
    (r : FreeGroup B) (hr : r ∈ M.relationsSet) : (FreeGroup.lift f) r = 1 
Arguments: {B : Type u_1} {M : CoxeterMatrix B} {G : Type u_5} [Group G] {f : B → G} (hf : M.IsLiftable f) (r : FreeGroup B) (hr : r ∈ M.relationsSet)
Goal: (FreeGroup.lift f) r = 1