ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- _private.Mathlib.GroupTheory.Coxeter.Basic.0.CoxeterSystem.toMonoidHom_apply_symm_apply
private theorem toMonoidHom_apply_symm_apply (a : PresentedGroup (M.relationsSet)) :
    (MulEquiv.toMonoidHom cs.mulEquiv : W →* PresentedGroup (M.relationsSet))
    ((MulEquiv.symm cs.mulEquiv) a) = a 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (a : PresentedGroup M.relationsSet)
Goal: cs.mulEquiv.toMonoidHom (cs.mulEquiv.symm a) = a
-- CoxeterSystem.lift_apply_simple
@[simp]
theorem lift_apply_simple {G : Type*} [Monoid G] {f : B → G} (hf : IsLiftable M f) (i : B) :
    cs.lift ⟨f, hf⟩ (s i) = f 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] {f : B → G} (hf : M.IsLiftable f) (i : B)
Goal: (cs.lift ⟨f, hf⟩) (cs.simple i) = f i
-- CoxeterSystem.simple_determines_coxeterSystem
theorem simple_determines_coxeterSystem :
    Injective (simple : CoxeterSystem M W → B → W) 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B}
Goal: Function.Injective CoxeterSystem.simple
-- CoxeterSystem.wordProd_nil
@[simp] theorem wordProd_nil : π [] = 1 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W)
Goal: cs.wordProd [] = 1
-- CoxeterSystem.wordProd_cons
theorem wordProd_cons (i : B) (ω : List B) : π (i :: ω) = s i * π ω 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (i : B) (ω : List B)
Goal: cs.wordProd (i :: ω) = cs.simple i * cs.wordProd ω
-- CoxeterSystem.wordProd_singleton
@[simp] theorem wordProd_singleton (i : B) : π ([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.wordProd [i] = cs.simple i
-- CoxeterSystem.wordProd_concat
theorem wordProd_concat (i : B) (ω : List B) : π (ω.concat i) = π ω * s i 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (i : B) (ω : List B)
Goal: cs.wordProd (ω.concat i) = cs.wordProd ω * cs.simple i
-- CoxeterSystem.wordProd_append
theorem wordProd_append (ω ω' : List B) : π (ω ++ ω') = π ω * π ω' 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (ω ω' : List B)
Goal: cs.wordProd (ω ++ ω') = cs.wordProd ω * cs.wordProd ω'
-- CoxeterSystem.wordProd_reverse
@[simp] theorem wordProd_reverse (ω : List B) : π (reverse ω) = (π ω)⁻¹ 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (ω : List B)
Goal: cs.wordProd ω.reverse = (cs.wordProd ω)⁻¹
-- CoxeterSystem.wordProd_surjective
theorem wordProd_surjective : Surjective cs.wordProd 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W)
Goal: Function.Surjective cs.wordProd
-- CoxeterSystem.alternatingWord_succ
theorem alternatingWord_succ (i i' : B) (m : ℕ) :
    alternatingWord i i' (m + 1) = (alternatingWord i' i m).concat i' 
Arguments: {B : Type u_1} (i i' : B) (m : ℕ)
Goal: CoxeterSystem.alternatingWord i i' (m + 1) = (CoxeterSystem.alternatingWord i' i m).concat i'
-- CoxeterSystem.alternatingWord_succ'
theorem alternatingWord_succ' (i i' : B) (m : ℕ) :
    alternatingWord i i' (m + 1) = (if Even m then i' else i) :: alternatingWord i i' m 
Arguments: {B : Type u_1} (i i' : B) (m : ℕ)
Goal: CoxeterSystem.alternatingWord i i' (m + 1) = (if Even m then i' else i) :: CoxeterSystem.alternatingWord i i' m
-- CoxeterSystem.length_alternatingWord
@[simp]
theorem length_alternatingWord (i i' : B) (m : ℕ) :
    List.length (alternatingWord i i' m) = m 
Arguments: {B : Type u_1} (i i' : B) (m : ℕ)
Goal: (CoxeterSystem.alternatingWord i i' m).length = m
-- CoxeterSystem.prod_alternatingWord_eq_mul_pow
theorem prod_alternatingWord_eq_mul_pow (i i' : B) (m : ℕ) :
    π (alternatingWord i i' m) = (if Even m then 1 else s i') * (s i * s i') ^ (m / 2) 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (i i' : B) (m : ℕ)
Goal: cs.wordProd (CoxeterSystem.alternatingWord i i' m) =
  (if Even m then 1 else cs.simple i') * (cs.simple i * cs.simple i') ^ (m / 2)
-- CoxeterSystem.prod_alternatingWord_eq_prod_alternatingWord_sub
theorem prod_alternatingWord_eq_prod_alternatingWord_sub (i i' : B) (m : ℕ) (hm : m ≤ M i i' * 2) :
    π (alternatingWord i i' m) = π (alternatingWord i' i (M i i' * 2 - m)) 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (i i' : B) (m : ℕ) (hm : m ≤ M.M i i' * 2)
Goal: cs.wordProd (CoxeterSystem.alternatingWord i i' m) = cs.wordProd (CoxeterSystem.alternatingWord i' i (M.M i i' * 2 - m))
-- CoxeterSystem.wordProd_braidWord_eq
theorem wordProd_braidWord_eq (i i' : B) :
    π (braidWord M i i') = π (braidWord M i' i) 
Arguments: {B : Type u_1} {W : Type u_3} [Group W] {M : CoxeterMatrix B} (cs : CoxeterSystem M W) (i i' : B)
Goal: cs.wordProd (CoxeterSystem.braidWord M i i') = cs.wordProd (CoxeterSystem.braidWord M i' i)
-- Equiv.Perm.closure_isCycle
theorem closure_isCycle : closure { σ : Perm β | IsCycle σ } = ⊤ 
Arguments: {β : Type u_3} [Finite β]
Goal: Subgroup.closure {σ | σ.IsCycle} = ⊤
-- Equiv.Perm.closure_cycle_adjacent_swap
theorem closure_cycle_adjacent_swap {σ : Perm α} (h1 : IsCycle σ) (h2 : σ.support = ⊤) (x : α) :
    closure ({σ, swap x (σ x)} : Set (Perm α)) = ⊤ 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {σ : Equiv.Perm α} (h1 : σ.IsCycle) (h2 : σ.support = ⊤) (x : α)
Goal: Subgroup.closure {σ, Equiv.swap x (σ x)} = ⊤
-- Equiv.Perm.closure_cycle_coprime_swap
theorem closure_cycle_coprime_swap {n : ℕ} {σ : Perm α} (h0 : Nat.Coprime n (Fintype.card α))
    (h1 : IsCycle σ) (h2 : σ.support = Finset.univ) (x : α) :
    closure ({σ, swap x ((σ ^ n) x)} : Set (Perm α)) = ⊤ 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {n : ℕ} {σ : Equiv.Perm α} (h0 : n.Coprime (Fintype.card α)) (h1 : σ.IsCycle) (h2 : σ.support = Finset.univ) (x : α)
Goal: Subgroup.closure {σ, Equiv.swap x ((σ ^ n) x)} = ⊤
-- Equiv.Perm.closure_prime_cycle_swap
theorem closure_prime_cycle_swap {σ τ : Perm α} (h0 : (Fintype.card α).Prime) (h1 : IsCycle σ)
    (h2 : σ.support = Finset.univ) (h3 : IsSwap τ) : closure ({σ, τ} : Set (Perm α)) = ⊤ 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {σ τ : Equiv.Perm α} (h0 : Nat.Prime (Fintype.card α)) (h1 : σ.IsCycle) (h2 : σ.support = Finset.univ) (h3 : τ.IsSwap)
Goal: Subgroup.closure {σ, τ} = ⊤
-- finite_compl_fixedBy_closure_iff
theorem finite_compl_fixedBy_closure_iff {S : Set G} :
    (∀ g ∈ closure S, (fixedBy α g)ᶜ.Finite) ↔ ∀ g ∈ S, (fixedBy α g)ᶜ.Finite 
Arguments: {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] {S : Set G}
Goal: (∀ g ∈ Subgroup.closure S, (MulAction.fixedBy α g)ᶜ.Finite) ↔ ∀ g ∈ S, (MulAction.fixedBy α g)ᶜ.Finite
-- finite_compl_fixedBy_swap
theorem finite_compl_fixedBy_swap {x y : α} : (fixedBy α (swap x y))ᶜ.Finite 
Arguments: {α : Type u_2} [DecidableEq α] {x y : α}
Goal: (MulAction.fixedBy α (Equiv.swap x y))ᶜ.Finite
-- Equiv.Perm.IsSwap.finite_compl_fixedBy
theorem Equiv.Perm.IsSwap.finite_compl_fixedBy {σ : Perm α} (h : σ.IsSwap) :
    (fixedBy α σ)ᶜ.Finite 
Arguments: {α : Type u_2} [DecidableEq α] {σ : Equiv.Perm α} (h : σ.IsSwap)
Goal: (MulAction.fixedBy α σ)ᶜ.Finite
-- SubmonoidClass.swap_mem_trans
theorem SubmonoidClass.swap_mem_trans {a b c : α} {C} [SetLike C (Perm α)]
    [SubmonoidClass C (Perm α)] (M : C) (hab : swap a b ∈ M) (hbc : swap b c ∈ M) :
    swap a c ∈ M 
Arguments: {α : Type u_2} [DecidableEq α] {a b c : α} {C : Type u_3} [SetLike C (Equiv.Perm α)] [SubmonoidClass C (Equiv.Perm α)] (M : C) (hab : Equiv.swap a b ∈ M) (hbc : Equiv.swap b c ∈ M)
Goal: Equiv.swap a c ∈ M
-- exists_smul_not_mem_of_subset_orbit_closure
theorem exists_smul_not_mem_of_subset_orbit_closure (S : Set G) (T : Set α) {a : α}
    (hS : ∀ g ∈ S, g⁻¹ ∈ S) (subset : T ⊆ orbit (closure S) a) (not_mem : a ∉ T)
    (nonempty : T.Nonempty) : ∃ σ ∈ S, ∃ a ∈ T, σ • a ∉ T 
Arguments: {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] (S : Set G) (T : Set α) {a : α} (hS : ∀ g ∈ S, g⁻¹ ∈ S) (subset : T ⊆ MulAction.orbit (↥(Subgroup.closure S)) a) (not_mem : a ∉ T) (nonempty : T.Nonempty)
Goal: ∃ σ ∈ S, ∃ a ∈ T, σ • a ∉ T
-- swap_mem_closure_isSwap
theorem swap_mem_closure_isSwap {S : Set (Perm α)} (hS : ∀ f ∈ S, f.IsSwap) {x y : α} :
    swap x y ∈ closure S ↔ x ∈ orbit (closure S) y 
Arguments: {α : Type u_2} [DecidableEq α] {S : Set (Equiv.Perm α)} (hS : ∀ f ∈ S, f.IsSwap) {x y : α}
Goal: Equiv.swap x y ∈ Subgroup.closure S ↔ x ∈ MulAction.orbit (↥(Subgroup.closure S)) y
-- mem_closure_isSwap
theorem mem_closure_isSwap {S : Set (Perm α)} (hS : ∀ f ∈ S, f.IsSwap) {f : Perm α} :
    f ∈ closure S ↔ (fixedBy α f)ᶜ.Finite ∧ ∀ x, f x ∈ orbit (closure S) x 
Arguments: {α : Type u_2} [DecidableEq α] {S : Set (Equiv.Perm α)} (hS : ∀ f ∈ S, f.IsSwap) {f : Equiv.Perm α}
Goal: f ∈ Subgroup.closure S ↔ (MulAction.fixedBy α f)ᶜ.Finite ∧ ∀ (x : α), f x ∈ MulAction.orbit (↥(Subgroup.closure S)) x
-- mem_closure_isSwap'
theorem mem_closure_isSwap' {f : Perm α} :
    f ∈ closure {σ : Perm α | σ.IsSwap} ↔ (fixedBy α f)ᶜ.Finite 
Arguments: {α : Type u_2} [DecidableEq α] {f : Equiv.Perm α}
Goal: f ∈ Subgroup.closure {σ | σ.IsSwap} ↔ (MulAction.fixedBy α f)ᶜ.Finite
-- closure_of_isSwap_of_isPretransitive
theorem closure_of_isSwap_of_isPretransitive [Finite α] {S : Set (Perm α)} (hS : ∀ σ ∈ S, σ.IsSwap)
    [MulAction.IsPretransitive (Subgroup.closure S) α] : Subgroup.closure S = ⊤ 
Arguments: {α : Type u_2} [DecidableEq α] [Finite α] {S : Set (Equiv.Perm α)} (hS : ∀ σ ∈ S, σ.IsSwap) [MulAction.IsPretransitive (↥(Subgroup.closure S)) α]
Goal: Subgroup.closure S = ⊤
-- surjective_of_isSwap_of_isPretransitive
theorem surjective_of_isSwap_of_isPretransitive [Finite α] (S : Set G)
    (hS1 : ∀ σ ∈ S, Perm.IsSwap (MulAction.toPermHom G α σ)) (hS2 : Subgroup.closure S = ⊤)
    [h : MulAction.IsPretransitive G α] : Function.Surjective (MulAction.toPermHom G α) 
Arguments: {G : Type u_1} {α : Type u_2} [Group G] [MulAction G α] [DecidableEq α] [Finite α] (S : Set G) (hS1 : ∀ σ ∈ S, ((MulAction.toPermHom G α) σ).IsSwap) (hS2 : Subgroup.closure S = ⊤) [h : MulAction.IsPretransitive G α]
Goal: Function.Surjective ⇑(MulAction.toPermHom G α)
-- Equiv.Perm.Disjoint.symm
@[symm]
theorem Disjoint.symm : Disjoint f g → Disjoint g f 
Arguments: {α : Type u_1} {f g : Equiv.Perm α}
Goal: f.Disjoint g → g.Disjoint f
-- Equiv.Perm.Disjoint.symmetric
theorem Disjoint.symmetric : Symmetric (@Disjoint α) 
Arguments: {α : Type u_1}
Goal: Symmetric Equiv.Perm.Disjoint
-- Equiv.Perm.disjoint_comm
theorem disjoint_comm : Disjoint f g ↔ Disjoint g f 
Arguments: {α : Type u_1} {f g : Equiv.Perm α}
Goal: f.Disjoint g ↔ g.Disjoint f
-- Equiv.Perm.Disjoint.commute
theorem Disjoint.commute (h : Disjoint f g) : Commute f g 
Arguments: {α : Type u_1} {f g : Equiv.Perm α} (h : f.Disjoint g)
Goal: Commute f g
-- Equiv.Perm.disjoint_one_left
@[simp]
theorem disjoint_one_left (f : Perm α) : Disjoint 1 f 
Arguments: {α : Type u_1} (f : Equiv.Perm α)
Goal: Equiv.Perm.Disjoint 1 f
-- Equiv.Perm.disjoint_one_right
@[simp]
theorem disjoint_one_right (f : Perm α) : Disjoint f 1 
Arguments: {α : Type u_1} (f : Equiv.Perm α)
Goal: f.Disjoint 1
-- Equiv.Perm.disjoint_iff_eq_or_eq
theorem disjoint_iff_eq_or_eq : Disjoint f g ↔ ∀ x : α, f x = x ∨ g x = x 
Arguments: {α : Type u_1} {f g : Equiv.Perm α}
Goal: f.Disjoint g ↔ ∀ (x : α), f x = x ∨ g x = x
-- Equiv.Perm.disjoint_refl_iff
@[simp]
theorem disjoint_refl_iff : Disjoint f f ↔ f = 1 
Arguments: {α : Type u_1} {f : Equiv.Perm α}
Goal: f.Disjoint f ↔ f = 1
-- Equiv.Perm.Disjoint.inv_left
theorem Disjoint.inv_left (h : Disjoint f g) : Disjoint f⁻¹ g 
Arguments: {α : Type u_1} {f g : Equiv.Perm α} (h : f.Disjoint g)
Goal: f⁻¹.Disjoint g
-- Equiv.Perm.Disjoint.inv_right
theorem Disjoint.inv_right (h : Disjoint f g) : Disjoint f g⁻¹ 
Arguments: {α : Type u_1} {f g : Equiv.Perm α} (h : f.Disjoint g)
Goal: f.Disjoint g⁻¹
-- Equiv.Perm.disjoint_inv_left_iff
@[simp]
theorem disjoint_inv_left_iff : Disjoint f⁻¹ g ↔ Disjoint f g 
Arguments: {α : Type u_1} {f g : Equiv.Perm α}
Goal: f⁻¹.Disjoint g ↔ f.Disjoint g
-- Equiv.Perm.disjoint_inv_right_iff
@[simp]
theorem disjoint_inv_right_iff : Disjoint f g⁻¹ ↔ Disjoint f g 
Arguments: {α : Type u_1} {f g : Equiv.Perm α}
Goal: f.Disjoint g⁻¹ ↔ f.Disjoint g
-- Equiv.Perm.Disjoint.mul_left
theorem Disjoint.mul_left (H1 : Disjoint f h) (H2 : Disjoint g h) : Disjoint (f * g) h 
Arguments: {α : Type u_1} {f g h : Equiv.Perm α} (H1 : f.Disjoint h) (H2 : g.Disjoint h)
Goal: (f * g).Disjoint h
-- Equiv.Perm.Disjoint.mul_right
theorem Disjoint.mul_right (H1 : Disjoint f g) (H2 : Disjoint f h) : Disjoint f (g * h) 
Arguments: {α : Type u_1} {f g h : Equiv.Perm α} (H1 : f.Disjoint g) (H2 : f.Disjoint h)
Goal: f.Disjoint (g * h)
-- Equiv.Perm.disjoint_conj
theorem disjoint_conj (h : Perm α) : Disjoint (h * f * h⁻¹) (h * g * h⁻¹) ↔ Disjoint f g 
Arguments: {α : Type u_1} {f g : Equiv.Perm α} (h : Equiv.Perm α)
Goal: (h * f * h⁻¹).Disjoint (h * g * h⁻¹) ↔ f.Disjoint g
-- Equiv.Perm.Disjoint.conj
theorem Disjoint.conj (H : Disjoint f g) (h : Perm α) : Disjoint (h * f * h⁻¹) (h * g * h⁻¹) 
Arguments: {α : Type u_1} {f g : Equiv.Perm α} (H : f.Disjoint g) (h : Equiv.Perm α)
Goal: (h * f * h⁻¹).Disjoint (h * g * h⁻¹)
-- Equiv.Perm.disjoint_prod_right
theorem disjoint_prod_right (l : List (Perm α)) (h : ∀ g ∈ l, Disjoint f g) :
    Disjoint f l.prod 
Arguments: {α : Type u_1} {f : Equiv.Perm α} (l : List (Equiv.Perm α)) (h : ∀ g ∈ l, f.Disjoint g)
Goal: f.Disjoint l.prod
-- Equiv.Perm.disjoint_prod_perm
theorem disjoint_prod_perm {l₁ l₂ : List (Perm α)} (hl : l₁.Pairwise Disjoint) (hp : l₁ ~ l₂) :
    l₁.prod = l₂.prod 
Arguments: {α : Type u_1} {l₁ l₂ : List (Equiv.Perm α)} (hl : List.Pairwise Equiv.Perm.Disjoint l₁) (hp : l₁.Perm l₂)
Goal: l₁.prod = l₂.prod
-- Equiv.Perm.nodup_of_pairwise_disjoint
theorem nodup_of_pairwise_disjoint {l : List (Perm α)} (h1 : (1 : Perm α) ∉ l)
    (h2 : l.Pairwise Disjoint) : l.Nodup 
Arguments: {α : Type u_1} {l : List (Equiv.Perm α)} (h1 : 1 ∉ l) (h2 : List.Pairwise Equiv.Perm.Disjoint l)
Goal: l.Nodup
-- Equiv.Perm.pow_apply_eq_self_of_apply_eq_self
theorem pow_apply_eq_self_of_apply_eq_self {x : α} (hfx : f x = x) : ∀ n : ℕ, (f ^ n) x = x
  
Arguments: {α : Type u_1} {f : Equiv.Perm α} {x : α} (hfx : f x = x) (n : ℕ)
Goal: (f ^ n) x = x
-- Equiv.Perm.zpow_apply_eq_self_of_apply_eq_self
theorem zpow_apply_eq_self_of_apply_eq_self {x : α} (hfx : f x = x) : ∀ n : ℤ, (f ^ n) x = x
  
Arguments: {α : Type u_1} {f : Equiv.Perm α} {x : α} (hfx : f x = x) (n : ℤ)
Goal: (f ^ n) x = x
-- Equiv.Perm.pow_apply_eq_of_apply_apply_eq_self
theorem pow_apply_eq_of_apply_apply_eq_self {x : α} (hffx : f (f x) = x) :
    ∀ n : ℕ, (f ^ n) x = x ∨ (f ^ n) x = f x
  
Arguments: {α : Type u_1} {f : Equiv.Perm α} {x : α} (hffx : f (f x) = x) (n : ℕ)
Goal: (f ^ n) x = x ∨ (f ^ n) x = f x
-- Equiv.Perm.zpow_apply_eq_of_apply_apply_eq_self
theorem zpow_apply_eq_of_apply_apply_eq_self {x : α} (hffx : f (f x) = x) :
    ∀ i : ℤ, (f ^ i) x = x ∨ (f ^ i) x = f x
  
Arguments: {α : Type u_1} {f : Equiv.Perm α} {x : α} (hffx : f (f x) = x) (i : ℤ)
Goal: (f ^ i) x = x ∨ (f ^ i) x = f x
-- Equiv.Perm.Disjoint.mul_apply_eq_iff
theorem Disjoint.mul_apply_eq_iff {σ τ : Perm α} (hστ : Disjoint σ τ) {a : α} :
    (σ * τ) a = a ↔ σ a = a ∧ τ a = a 
Arguments: {α : Type u_1} {σ τ : Equiv.Perm α} (hστ : σ.Disjoint τ) {a : α}
Goal: (σ * τ) a = a ↔ σ a = a ∧ τ a = a
-- Equiv.Perm.Disjoint.mul_eq_one_iff
theorem Disjoint.mul_eq_one_iff {σ τ : Perm α} (hστ : Disjoint σ τ) :
    σ * τ = 1 ↔ σ = 1 ∧ τ = 1 
Arguments: {α : Type u_1} {σ τ : Equiv.Perm α} (hστ : σ.Disjoint τ)
Goal: σ * τ = 1 ↔ σ = 1 ∧ τ = 1
-- Equiv.Perm.Disjoint.zpow_disjoint_zpow
theorem Disjoint.zpow_disjoint_zpow {σ τ : Perm α} (hστ : Disjoint σ τ) (m n : ℤ) :
    Disjoint (σ ^ m) (τ ^ n) 
Arguments: {α : Type u_1} {σ τ : Equiv.Perm α} (hστ : σ.Disjoint τ) (m n : ℤ)
Goal: (σ ^ m).Disjoint (τ ^ n)
-- Equiv.Perm.Disjoint.pow_disjoint_pow
theorem Disjoint.pow_disjoint_pow {σ τ : Perm α} (hστ : Disjoint σ τ) (m n : ℕ) :
    Disjoint (σ ^ m) (τ ^ n) 
Arguments: {α : Type u_1} {σ τ : Equiv.Perm α} (hστ : σ.Disjoint τ) (m n : ℕ)
Goal: (σ ^ m).Disjoint (τ ^ n)
-- Equiv.Perm.ofSubtype_swap_eq
@[simp]
theorem ofSubtype_swap_eq {p : α → Prop} [DecidablePred p] (x y : Subtype p) :
    ofSubtype (Equiv.swap x y) = Equiv.swap ↑x ↑y 
Arguments: {α : Type u_1} [DecidableEq α] {p : α → Prop} [DecidablePred p] (x y : Subtype p)
Goal: Equiv.Perm.ofSubtype (Equiv.swap x y) = Equiv.swap ↑x ↑y
-- Equiv.Perm.IsSwap.of_subtype_isSwap
theorem IsSwap.of_subtype_isSwap {p : α → Prop} [DecidablePred p] {f : Perm (Subtype p)}
    (h : f.IsSwap) : (ofSubtype f).IsSwap 
Arguments: {α : Type u_1} [DecidableEq α] {p : α → Prop} [DecidablePred p] {f : Equiv.Perm (Subtype p)} (h : f.IsSwap)
Goal: (Equiv.Perm.ofSubtype f).IsSwap
-- Equiv.Perm.ne_and_ne_of_swap_mul_apply_ne_self
theorem ne_and_ne_of_swap_mul_apply_ne_self {f : Perm α} {x y : α} (hy : (swap x (f x) * f) y ≠ y) :
    f y ≠ y ∧ y ≠ x 
Arguments: {α : Type u_1} [DecidableEq α] {f : Equiv.Perm α} {x y : α} (hy : (Equiv.swap x (f x) * f) y ≠ y)
Goal: f y ≠ y ∧ y ≠ x
-- Equiv.Perm.set_support_inv_eq
theorem set_support_inv_eq : { x | p⁻¹ x ≠ x } = { x | p x ≠ x } 
Arguments: {α : Type u_1} (p : Equiv.Perm α)
Goal: {x | p⁻¹ x ≠ x} = {x | p x ≠ x}
-- Equiv.Perm.set_support_apply_mem
theorem set_support_apply_mem {p : Perm α} {a : α} :
    p a ∈ { x | p x ≠ x } ↔ a ∈ { x | p x ≠ x } 
Arguments: {α : Type u_1} {p : Equiv.Perm α} {a : α}
Goal: p a ∈ {x | p x ≠ x} ↔ a ∈ {x | p x ≠ x}
-- Equiv.Perm.set_support_zpow_subset
theorem set_support_zpow_subset (n : ℤ) : { x | (p ^ n) x ≠ x } ⊆ { x | p x ≠ x } 
Arguments: {α : Type u_1} (p : Equiv.Perm α) (n : ℤ)
Goal: {x | (p ^ n) x ≠ x} ⊆ {x | p x ≠ x}
-- Equiv.Perm.set_support_mul_subset
theorem set_support_mul_subset : { x | (p * q) x ≠ x } ⊆ { x | p x ≠ x } ∪ { x | q x ≠ x } 
Arguments: {α : Type u_1} (p q : Equiv.Perm α)
Goal: {x | (p * q) x ≠ x} ⊆ {x | p x ≠ x} ∪ {x | q x ≠ x}
-- Equiv.Perm.apply_pow_apply_eq_iff
@[simp]
theorem apply_pow_apply_eq_iff (f : Perm α) (n : ℕ) {x : α} :
    f ((f ^ n) x) = (f ^ n) x ↔ f x = x 
Arguments: {α : Type u_1} (f : Equiv.Perm α) (n : ℕ) {x : α}
Goal: f ((f ^ n) x) = (f ^ n) x ↔ f x = x
-- Equiv.Perm.apply_zpow_apply_eq_iff
@[simp]
theorem apply_zpow_apply_eq_iff (f : Perm α) (n : ℤ) {x : α} :
    f ((f ^ n) x) = (f ^ n) x ↔ f x = x 
Arguments: {α : Type u_1} (f : Equiv.Perm α) (n : ℤ) {x : α}
Goal: f ((f ^ n) x) = (f ^ n) x ↔ f x = x
-- Equiv.Perm.mem_support
@[simp]
theorem mem_support {x : α} : x ∈ f.support ↔ f x ≠ x 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {f : Equiv.Perm α} {x : α}
Goal: x ∈ f.support ↔ f x ≠ x
-- Equiv.Perm.not_mem_support
theorem not_mem_support {x : α} : x ∉ f.support ↔ f x = x 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {f : Equiv.Perm α} {x : α}
Goal: x ∉ f.support ↔ f x = x
-- Equiv.Perm.coe_support_eq_set_support
theorem coe_support_eq_set_support (f : Perm α) : (f.support : Set α) = { x | f x ≠ x } 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] (f : Equiv.Perm α)
Goal: ↑f.support = {x | f x ≠ x}
-- Equiv.Perm.support_eq_empty_iff
@[simp]
theorem support_eq_empty_iff {σ : Perm α} : σ.support = ∅ ↔ σ = 1 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {σ : Equiv.Perm α}
Goal: σ.support = ∅ ↔ σ = 1
-- Equiv.Perm.support_one
@[simp]
theorem support_one : (1 : Perm α).support = ∅ 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α]
Goal: Equiv.Perm.support 1 = ∅
-- Equiv.Perm.support_refl
@[simp]
theorem support_refl : support (Equiv.refl α) = ∅ 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α]
Goal: Equiv.Perm.support (Equiv.refl α) = ∅
-- Equiv.Perm.support_congr
theorem support_congr (h : f.support ⊆ g.support) (h' : ∀ x ∈ g.support, f x = g x) : f = g 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {f g : Equiv.Perm α} (h : f.support ⊆ g.support) (h' : ∀ x ∈ g.support, f x = g x)
Goal: f = g
-- Equiv.Perm.support_mul_le
theorem support_mul_le (f g : Perm α) : (f * g).support ≤ f.support ⊔ g.support 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] (f g : Equiv.Perm α)
Goal: (f * g).support ≤ f.support ⊔ g.support
-- Equiv.Perm.exists_mem_support_of_mem_support_prod
theorem exists_mem_support_of_mem_support_prod {l : List (Perm α)} {x : α}
    (hx : x ∈ l.prod.support) : ∃ f : Perm α, f ∈ l ∧ x ∈ f.support 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {l : List (Equiv.Perm α)} {x : α} (hx : x ∈ l.prod.support)
Goal: ∃ f ∈ l, x ∈ f.support
-- Equiv.Perm.support_pow_le
theorem support_pow_le (σ : Perm α) (n : ℕ) : (σ ^ n).support ≤ σ.support 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] (σ : Equiv.Perm α) (n : ℕ)
Goal: (σ ^ n).support ≤ σ.support
-- Equiv.Perm.support_inv
@[simp]
theorem support_inv (σ : Perm α) : support σ⁻¹ = σ.support 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] (σ : Equiv.Perm α)
Goal: σ⁻¹.support = σ.support
-- Equiv.Perm.apply_mem_support
theorem apply_mem_support {x : α} : f x ∈ f.support ↔ x ∈ f.support 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {f : Equiv.Perm α} {x : α}
Goal: f x ∈ f.support ↔ x ∈ f.support
-- Equiv.Perm.pow_apply_mem_support
theorem pow_apply_mem_support {n : ℕ} {x : α} : (f ^ n) x ∈ f.support ↔ x ∈ f.support 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {f : Equiv.Perm α} {n : ℕ} {x : α}
Goal: (f ^ n) x ∈ f.support ↔ x ∈ f.support
-- Equiv.Perm.zpow_apply_mem_support
theorem zpow_apply_mem_support {n : ℤ} {x : α} : (f ^ n) x ∈ f.support ↔ x ∈ f.support 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {f : Equiv.Perm α} {n : ℤ} {x : α}
Goal: (f ^ n) x ∈ f.support ↔ x ∈ f.support
-- Equiv.Perm.pow_eq_on_of_mem_support
theorem pow_eq_on_of_mem_support (h : ∀ x ∈ f.support ∩ g.support, f x = g x) (k : ℕ) :
    ∀ x ∈ f.support ∩ g.support, (f ^ k) x = (g ^ k) x 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {f g : Equiv.Perm α} (h : ∀ x ∈ f.support ∩ g.support, f x = g x) (k : ℕ) (x : α)
Goal: x ∈ f.support ∩ g.support → (f ^ k) x = (g ^ k) x
-- Equiv.Perm.disjoint_iff_disjoint_support
theorem disjoint_iff_disjoint_support : Disjoint f g ↔ _root_.Disjoint f.support g.support 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {f g : Equiv.Perm α}
Goal: f.Disjoint g ↔ Disjoint f.support g.support
-- Equiv.Perm.Disjoint.disjoint_support
theorem Disjoint.disjoint_support (h : Disjoint f g) : _root_.Disjoint f.support g.support 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {f g : Equiv.Perm α} (h : f.Disjoint g)
Goal: Disjoint f.support g.support
-- Equiv.Perm.Disjoint.support_mul
theorem Disjoint.support_mul (h : Disjoint f g) : (f * g).support = f.support ∪ g.support 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {f g : Equiv.Perm α} (h : f.Disjoint g)
Goal: (f * g).support = f.support ∪ g.support
-- Equiv.Perm.support_prod_of_pairwise_disjoint
theorem support_prod_of_pairwise_disjoint (l : List (Perm α)) (h : l.Pairwise Disjoint) :
    l.prod.support = (l.map support).foldr (· ⊔ ·) ⊥ 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] (l : List (Equiv.Perm α)) (h : List.Pairwise Equiv.Perm.Disjoint l)
Goal: l.prod.support = List.foldr (fun x x_1 => x ⊔ x_1) ⊥ (List.map Equiv.Perm.support l)
-- Equiv.Perm.support_prod_le
theorem support_prod_le (l : List (Perm α)) : l.prod.support ≤ (l.map support).foldr (· ⊔ ·) ⊥ 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] (l : List (Equiv.Perm α))
Goal: l.prod.support ≤ List.foldr (fun x x_1 => x ⊔ x_1) ⊥ (List.map Equiv.Perm.support l)
-- Equiv.Perm.support_zpow_le
theorem support_zpow_le (σ : Perm α) (n : ℤ) : (σ ^ n).support ≤ σ.support 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] (σ : Equiv.Perm α) (n : ℤ)
Goal: (σ ^ n).support ≤ σ.support
-- Equiv.Perm.support_swap
@[simp]
theorem support_swap {x y : α} (h : x ≠ y) : support (swap x y) = {x, y} 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] {x y : α} (h : x ≠ y)
Goal: (Equiv.swap x y).support = {x, y}
-- Equiv.Perm.support_swap_iff
theorem support_swap_iff (x y : α) : support (swap x y) = {x, y} ↔ x ≠ y 
Arguments: {α : Type u_1} [DecidableEq α] [Fintype α] (x y : α)
Goal: (Equiv.swap x y).support = {x, y} ↔ x ≠ y