ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Equiv.Perm.cycleOf_pow_apply_self
@[simp]
theorem cycleOf_pow_apply_self (f : Perm α) [DecidableRel f.SameCycle] (x : α) :
    ∀ n : ℕ, (cycleOf f x ^ n) x = (f ^ n) x 
Arguments: {α : Type u_2} (f : Equiv.Perm α) [DecidableRel f.SameCycle] (x : α) (n : ℕ)
Goal: (f.cycleOf x ^ n) x = (f ^ n) x
-- Equiv.Perm.cycleOf_zpow_apply_self
@[simp]
theorem cycleOf_zpow_apply_self (f : Perm α) [DecidableRel f.SameCycle] (x : α) :
    ∀ n : ℤ, (cycleOf f x ^ n) x = (f ^ n) x 
Arguments: {α : Type u_2} (f : Equiv.Perm α) [DecidableRel f.SameCycle] (x : α) (n : ℤ)
Goal: (f.cycleOf x ^ n) x = (f ^ n) x
-- Equiv.Perm.SameCycle.cycleOf_apply
theorem SameCycle.cycleOf_apply : SameCycle f x y → cycleOf f x y = f y 
Arguments: {α : Type u_2} {f : Equiv.Perm α} {x y : α} [DecidableRel f.SameCycle]
Goal: f.SameCycle x y → (f.cycleOf x) y = f y
-- Equiv.Perm.cycleOf_apply_of_not_sameCycle
theorem cycleOf_apply_of_not_sameCycle : ¬SameCycle f x y → cycleOf f x y = y 
Arguments: {α : Type u_2} {f : Equiv.Perm α} {x y : α} [DecidableRel f.SameCycle]
Goal: ¬f.SameCycle x y → (f.cycleOf x) y = y
-- Equiv.Perm.SameCycle.cycleOf_eq
theorem SameCycle.cycleOf_eq (h : SameCycle f x y) : cycleOf f x = cycleOf f y 
Arguments: {α : Type u_2} {f : Equiv.Perm α} {x y : α} [DecidableRel f.SameCycle] (h : f.SameCycle x y)
Goal: f.cycleOf x = f.cycleOf y
-- Equiv.Perm.cycleOf_apply_apply_zpow_self
@[simp]
theorem cycleOf_apply_apply_zpow_self (f : Perm α) [DecidableRel f.SameCycle] (x : α) (k : ℤ) :
    cycleOf f x ((f ^ k) x) = (f ^ (k + 1) : Perm α) x 
Arguments: {α : Type u_2} (f : Equiv.Perm α) [DecidableRel f.SameCycle] (x : α) (k : ℤ)
Goal: (f.cycleOf x) ((f ^ k) x) = (f ^ (k + 1)) x
-- Equiv.Perm.cycleOf_apply_apply_pow_self
@[simp]
theorem cycleOf_apply_apply_pow_self (f : Perm α) [DecidableRel f.SameCycle] (x : α) (k : ℕ) :
    cycleOf f x ((f ^ k) x) = (f ^ (k + 1) : Perm α) x 
Arguments: {α : Type u_2} (f : Equiv.Perm α) [DecidableRel f.SameCycle] (x : α) (k : ℕ)
Goal: (f.cycleOf x) ((f ^ k) x) = (f ^ (k + 1)) x
-- Equiv.Perm.cycleOf_apply_apply_self
@[simp]
theorem cycleOf_apply_apply_self (f : Perm α) [DecidableRel f.SameCycle] (x : α) :
    cycleOf f x (f x) = f (f x) 
Arguments: {α : Type u_2} (f : Equiv.Perm α) [DecidableRel f.SameCycle] (x : α)
Goal: (f.cycleOf x) (f x) = f (f x)
-- Equiv.Perm.cycleOf_apply_self
@[simp]
theorem cycleOf_apply_self (f : Perm α) [DecidableRel f.SameCycle] (x : α) : cycleOf f x x = f x 
Arguments: {α : Type u_2} (f : Equiv.Perm α) [DecidableRel f.SameCycle] (x : α)
Goal: (f.cycleOf x) x = f x
-- Equiv.Perm.IsCycle.cycleOf_eq
theorem IsCycle.cycleOf_eq (hf : IsCycle f) (hx : f x ≠ x) : cycleOf f x = f 
Arguments: {α : Type u_2} {f : Equiv.Perm α} {x : α} [DecidableRel f.SameCycle] (hf : f.IsCycle) (hx : f x ≠ x)
Goal: f.cycleOf x = f
-- Equiv.Perm.cycleOf_eq_one_iff
@[simp]
theorem cycleOf_eq_one_iff (f : Perm α) [DecidableRel f.SameCycle] : cycleOf f x = 1 ↔ f x = x 
Arguments: {α : Type u_2} {x : α} (f : Equiv.Perm α) [DecidableRel f.SameCycle]
Goal: f.cycleOf x = 1 ↔ f x = x
-- Equiv.Perm.cycleOf_self_apply
@[simp]
theorem cycleOf_self_apply (f : Perm α) [DecidableRel f.SameCycle] (x : α) :
    cycleOf f (f x) = cycleOf f x 
Arguments: {α : Type u_2} (f : Equiv.Perm α) [DecidableRel f.SameCycle] (x : α)
Goal: f.cycleOf (f x) = f.cycleOf x
-- Equiv.Perm.cycleOf_self_apply_pow
@[simp]
theorem cycleOf_self_apply_pow (f : Perm α) [DecidableRel f.SameCycle] (n : ℕ) (x : α) :
    cycleOf f ((f ^ n) x) = cycleOf f x 
Arguments: {α : Type u_2} (f : Equiv.Perm α) [DecidableRel f.SameCycle] (n : ℕ) (x : α)
Goal: f.cycleOf ((f ^ n) x) = f.cycleOf x
-- Equiv.Perm.cycleOf_self_apply_zpow
@[simp]
theorem cycleOf_self_apply_zpow (f : Perm α) [DecidableRel f.SameCycle] (n : ℤ) (x : α) :
    cycleOf f ((f ^ n) x) = cycleOf f x 
Arguments: {α : Type u_2} (f : Equiv.Perm α) [DecidableRel f.SameCycle] (n : ℤ) (x : α)
Goal: f.cycleOf ((f ^ n) x) = f.cycleOf x
-- Equiv.Perm.IsCycle.cycleOf
protected theorem IsCycle.cycleOf [DecidableEq α] (hf : IsCycle f) :
    cycleOf f x = if f x = x then 1 else f 
Arguments: {α : Type u_2} {f : Equiv.Perm α} {x : α} [DecidableRel f.SameCycle] [DecidableEq α] (hf : f.IsCycle)
Goal: f.cycleOf x = if f x = x then 1 else f
-- Equiv.Perm.cycleOf_one
theorem cycleOf_one [DecidableRel (1 : Perm α).SameCycle] (x : α) :
    cycleOf 1 x = 1 
Arguments: {α : Type u_2} [DecidableRel (Equiv.Perm.SameCycle 1)] (x : α)
Goal: Equiv.Perm.cycleOf 1 x = 1
-- Equiv.Perm.isCycle_cycleOf
theorem isCycle_cycleOf (f : Perm α) [DecidableRel f.SameCycle] (hx : f x ≠ x) :
    IsCycle (cycleOf f x) 
Arguments: {α : Type u_2} {x : α} (f : Equiv.Perm α) [DecidableRel f.SameCycle] (hx : f x ≠ x)
Goal: (f.cycleOf x).IsCycle
-- Equiv.Perm.two_le_card_support_cycleOf_iff
@[simp]
theorem two_le_card_support_cycleOf_iff [DecidableEq α] [Fintype α] :
    2 ≤ card (cycleOf f x).support ↔ f x ≠ x 
Arguments: {α : Type u_2} {f : Equiv.Perm α} {x : α} [DecidableRel f.SameCycle] [DecidableEq α] [Fintype α]
Goal: 2 ≤ (f.cycleOf x).support.card ↔ f x ≠ x
-- Equiv.Perm.support_cycleOf_nonempty
@[simp] lemma support_cycleOf_nonempty [DecidableEq α] [Fintype α] :
    (cycleOf f x).support.Nonempty ↔ f x ≠ x 
Arguments: {α : Type u_2} {f : Equiv.Perm α} {x : α} [DecidableRel f.SameCycle] [DecidableEq α] [Fintype α]
Goal: (f.cycleOf x).support.Nonempty ↔ f x ≠ x
-- Equiv.Perm.card_support_cycleOf_pos_iff
@[deprecated support_cycleOf_nonempty (since := "2024-06-16")]
theorem card_support_cycleOf_pos_iff [DecidableEq α] [Fintype α] :
    0 < card (cycleOf f x).support ↔ f x ≠ x 
Arguments: {α : Type u_2} {f : Equiv.Perm α} {x : α} [DecidableRel f.SameCycle] [DecidableEq α] [Fintype α]
Goal: 0 < (f.cycleOf x).support.card ↔ f x ≠ x
-- Equiv.Perm.pow_mod_orderOf_cycleOf_apply
theorem pow_mod_orderOf_cycleOf_apply (f : Perm α) [DecidableRel f.SameCycle] (n : ℕ) (x : α) :
    (f ^ (n % orderOf (cycleOf f x))) x = (f ^ n) x 
Arguments: {α : Type u_2} (f : Equiv.Perm α) [DecidableRel f.SameCycle] (n : ℕ) (x : α)
Goal: (f ^ (n % orderOf (f.cycleOf x))) x = (f ^ n) x
-- Equiv.Perm.cycleOf_mul_of_apply_right_eq_self
theorem cycleOf_mul_of_apply_right_eq_self [DecidableRel (f * g).SameCycle]
    (h : Commute f g) (x : α) (hx : g x = x) : (f * g).cycleOf x = f.cycleOf x 
Arguments: {α : Type u_2} {f g : Equiv.Perm α} [DecidableRel f.SameCycle] [DecidableRel (f * g).SameCycle] (h : Commute f g) (x : α) (hx : g x = x)
Goal: (f * g).cycleOf x = f.cycleOf x
-- Equiv.Perm.Disjoint.cycleOf_mul_distrib
theorem Disjoint.cycleOf_mul_distrib [DecidableRel (f * g).SameCycle]
    [DecidableRel (g * f).SameCycle]  (h : f.Disjoint g) (x : α) :
    (f * g).cycleOf x = f.cycleOf x * g.cycleOf x 
Arguments: {α : Type u_2} {f g : Equiv.Perm α} [DecidableRel f.SameCycle] [DecidableRel g.SameCycle] [DecidableRel (f * g).SameCycle] [DecidableRel (g * f).SameCycle] (h : f.Disjoint g) (x : α)
Goal: (f * g).cycleOf x = f.cycleOf x * g.cycleOf x
-- Equiv.Perm.support_cycleOf_eq_nil_iff
theorem support_cycleOf_eq_nil_iff [DecidableEq α] [Fintype α] :
    (f.cycleOf x).support = ∅ ↔ x ∉ f.support 
Arguments: {α : Type u_2} {f : Equiv.Perm α} {x : α} [DecidableRel f.SameCycle] [DecidableEq α] [Fintype α]
Goal: (f.cycleOf x).support = ∅ ↔ x ∉ f.support
-- Equiv.Perm.support_cycleOf_le
theorem support_cycleOf_le [DecidableEq α] [Fintype α] (f : Perm α) (x : α) :
    support (f.cycleOf x) ≤ support f 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] (f : Equiv.Perm α) (x : α)
Goal: (f.cycleOf x).support ≤ f.support
-- Equiv.Perm.mem_support_cycleOf_iff
theorem mem_support_cycleOf_iff [DecidableEq α] [Fintype α] :
    y ∈ support (f.cycleOf x) ↔ SameCycle f x y ∧ x ∈ support f 
Arguments: {α : Type u_2} {f : Equiv.Perm α} {x y : α} [DecidableRel f.SameCycle] [DecidableEq α] [Fintype α]
Goal: y ∈ (f.cycleOf x).support ↔ f.SameCycle x y ∧ x ∈ f.support
-- Equiv.Perm.mem_support_cycleOf_iff'
theorem mem_support_cycleOf_iff' (hx : f x ≠ x) [DecidableEq α] [Fintype α] :
    y ∈ support (f.cycleOf x) ↔ SameCycle f x y 
Arguments: {α : Type u_2} {f : Equiv.Perm α} {x y : α} [DecidableRel f.SameCycle] (hx : f x ≠ x) [DecidableEq α] [Fintype α]
Goal: y ∈ (f.cycleOf x).support ↔ f.SameCycle x y
-- Equiv.Perm.SameCycle.mem_support_iff
theorem SameCycle.mem_support_iff {f} [DecidableEq α] [Fintype α] (h : SameCycle f x y) :
    x ∈ support f ↔ y ∈ support f 
Arguments: {α : Type u_2} {x y : α} {f : Equiv.Perm α} [DecidableEq α] [Fintype α] (h : f.SameCycle x y)
Goal: x ∈ f.support ↔ y ∈ f.support
-- Equiv.Perm.pow_mod_card_support_cycleOf_self_apply
theorem pow_mod_card_support_cycleOf_self_apply [DecidableEq α] [Fintype α]
    (f : Perm α) (n : ℕ) (x : α) : (f ^ (n % (f.cycleOf x).support.card)) x = (f ^ n) x 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] (f : Equiv.Perm α) (n : ℕ) (x : α)
Goal: (f ^ (n % (f.cycleOf x).support.card)) x = (f ^ n) x
-- Equiv.Perm.isCycle_cycleOf_iff
theorem isCycle_cycleOf_iff (f : Perm α) [DecidableRel f.SameCycle] :
    IsCycle (cycleOf f x) ↔ f x ≠ x 
Arguments: {α : Type u_2} {x : α} (f : Equiv.Perm α) [DecidableRel f.SameCycle]
Goal: (f.cycleOf x).IsCycle ↔ f x ≠ x
-- Equiv.Perm.isCycleOn_support_cycleOf
theorem isCycleOn_support_cycleOf [DecidableEq α] [Fintype α] (f : Perm α) (x : α) :
    f.IsCycleOn (f.cycleOf x).support 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] (f : Equiv.Perm α) (x : α)
Goal: f.IsCycleOn ↑(f.cycleOf x).support
-- Equiv.Perm.SameCycle.exists_pow_eq_of_mem_support
theorem SameCycle.exists_pow_eq_of_mem_support {f} [DecidableEq α] [Fintype α] (h : SameCycle f x y)
    (hx : x ∈ f.support) : ∃ i < (f.cycleOf x).support.card, (f ^ i) x = y 
Arguments: {α : Type u_2} {x y : α} {f : Equiv.Perm α} [DecidableEq α] [Fintype α] (h : f.SameCycle x y) (hx : x ∈ f.support)
Goal: ∃ i < (f.cycleOf x).support.card, (f ^ i) x = y
-- Equiv.Perm.SameCycle.exists_pow_eq
theorem SameCycle.exists_pow_eq [DecidableEq α] [Fintype α] (f : Perm α) (h : SameCycle f x y) :
    ∃ i : ℕ, 0 < i ∧ i ≤ (f.cycleOf x).support.card + 1 ∧ (f ^ i) x = y 
Arguments: {α : Type u_2} {x y : α} [DecidableEq α] [Fintype α] (f : Equiv.Perm α) (h : f.SameCycle x y)
Goal: ∃ i, 0 < i ∧ i ≤ (f.cycleOf x).support.card + 1 ∧ (f ^ i) x = y
-- Equiv.Perm.mem_list_cycles_iff
theorem mem_list_cycles_iff {α : Type*} [Finite α] {l : List (Perm α)}
    (h1 : ∀ σ : Perm α, σ ∈ l → σ.IsCycle) (h2 : l.Pairwise Disjoint) {σ : Perm α} :
    σ ∈ l ↔ σ.IsCycle ∧ ∀ a, σ a ≠ a → σ a = l.prod a 
Arguments: {α : Type u_4} [Finite α] {l : List (Equiv.Perm α)} (h1 : ∀ σ ∈ l, σ.IsCycle) (h2 : List.Pairwise Equiv.Perm.Disjoint l) {σ : Equiv.Perm α}
Goal: σ ∈ l ↔ σ.IsCycle ∧ ∀ (a : α), σ a ≠ a → σ a = l.prod a
-- Equiv.Perm.list_cycles_perm_list_cycles
theorem list_cycles_perm_list_cycles {α : Type*} [Finite α] {l₁ l₂ : List (Perm α)}
    (h₀ : l₁.prod = l₂.prod) (h₁l₁ : ∀ σ : Perm α, σ ∈ l₁ → σ.IsCycle)
    (h₁l₂ : ∀ σ : Perm α, σ ∈ l₂ → σ.IsCycle) (h₂l₁ : l₁.Pairwise Disjoint)
    (h₂l₂ : l₂.Pairwise Disjoint) : l₁ ~ l₂ 
Arguments: {α : Type u_4} [Finite α] {l₁ l₂ : List (Equiv.Perm α)} (h₀ : l₁.prod = l₂.prod) (h₁l₁ : ∀ σ ∈ l₁, σ.IsCycle) (h₁l₂ : ∀ σ ∈ l₂, σ.IsCycle) (h₂l₁ : List.Pairwise Equiv.Perm.Disjoint l₁) (h₂l₂ : List.Pairwise Equiv.Perm.Disjoint l₂)
Goal: l₁.Perm l₂
-- Equiv.Perm.cycleFactorsFinset_eq_list_toFinset
theorem cycleFactorsFinset_eq_list_toFinset {σ : Perm α} {l : List (Perm α)} (hn : l.Nodup) :
    σ.cycleFactorsFinset = l.toFinset ↔
      (∀ f : Perm α, f ∈ l → f.IsCycle) ∧ l.Pairwise Disjoint ∧ l.prod = σ 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {σ : Equiv.Perm α} {l : List (Equiv.Perm α)} (hn : l.Nodup)
Goal: σ.cycleFactorsFinset = l.toFinset ↔ (∀ f ∈ l, f.IsCycle) ∧ List.Pairwise Equiv.Perm.Disjoint l ∧ l.prod = σ
-- Equiv.Perm.cycleFactorsFinset_eq_finset
theorem cycleFactorsFinset_eq_finset {σ : Perm α} {s : Finset (Perm α)} :
    σ.cycleFactorsFinset = s ↔
      (∀ f : Perm α, f ∈ s → f.IsCycle) ∧
        ∃ h : (s : Set (Perm α)).Pairwise Disjoint,
          s.noncommProd id (h.mono' fun _ _ => Disjoint.commute) = σ 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {σ : Equiv.Perm α} {s : Finset (Equiv.Perm α)}
Goal: σ.cycleFactorsFinset = s ↔ (∀ f ∈ s, f.IsCycle) ∧ ∃ (h : (↑s).Pairwise Equiv.Perm.Disjoint), s.noncommProd id ⋯ = σ
-- Equiv.Perm.cycleFactorsFinset_pairwise_disjoint
theorem cycleFactorsFinset_pairwise_disjoint :
    (cycleFactorsFinset f : Set (Perm α)).Pairwise Disjoint 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] (f : Equiv.Perm α)
Goal: (↑f.cycleFactorsFinset).Pairwise Equiv.Perm.Disjoint
-- Equiv.Perm.cycleFactorsFinset_mem_commute
theorem cycleFactorsFinset_mem_commute : (cycleFactorsFinset f : Set (Perm α)).Pairwise Commute 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] (f : Equiv.Perm α)
Goal: (↑f.cycleFactorsFinset).Pairwise Commute
-- Equiv.Perm.cycleFactorsFinset_noncommProd
theorem cycleFactorsFinset_noncommProd
    (comm : (cycleFactorsFinset f : Set (Perm α)).Pairwise Commute :=
      cycleFactorsFinset_mem_commute f) :
    f.cycleFactorsFinset.noncommProd id comm = f 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] (f : Equiv.Perm α) (comm : (↑f.cycleFactorsFinset).Pairwise Commute := ⋯)
Goal: f.cycleFactorsFinset.noncommProd id comm = f
-- Equiv.Perm.mem_cycleFactorsFinset_iff
theorem mem_cycleFactorsFinset_iff {f p : Perm α} :
    p ∈ cycleFactorsFinset f ↔ p.IsCycle ∧ ∀ a ∈ p.support, p a = f a 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {f p : Equiv.Perm α}
Goal: p ∈ f.cycleFactorsFinset ↔ p.IsCycle ∧ ∀ a ∈ p.support, p a = f a
-- Equiv.Perm.cycleOf_mem_cycleFactorsFinset_iff
theorem cycleOf_mem_cycleFactorsFinset_iff {f : Perm α} {x : α} :
    cycleOf f x ∈ cycleFactorsFinset f ↔ x ∈ f.support 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {f : Equiv.Perm α} {x : α}
Goal: f.cycleOf x ∈ f.cycleFactorsFinset ↔ x ∈ f.support
-- Equiv.Perm.mem_cycleFactorsFinset_support_le
theorem mem_cycleFactorsFinset_support_le {p f : Perm α} (h : p ∈ cycleFactorsFinset f) :
    p.support ≤ f.support 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {p f : Equiv.Perm α} (h : p ∈ f.cycleFactorsFinset)
Goal: p.support ≤ f.support
-- Equiv.Perm.cycleFactorsFinset_eq_empty_iff
theorem cycleFactorsFinset_eq_empty_iff {f : Perm α} : cycleFactorsFinset f = ∅ ↔ f = 1 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {f : Equiv.Perm α}
Goal: f.cycleFactorsFinset = ∅ ↔ f = 1
-- Equiv.Perm.cycleFactorsFinset_one
@[simp]
theorem cycleFactorsFinset_one : cycleFactorsFinset (1 : Perm α) = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α]
Goal: Equiv.Perm.cycleFactorsFinset 1 = ∅
-- Equiv.Perm.cycleFactorsFinset_eq_singleton_self_iff
@[simp]
theorem cycleFactorsFinset_eq_singleton_self_iff {f : Perm α} :
    f.cycleFactorsFinset = {f} ↔ f.IsCycle 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {f : Equiv.Perm α}
Goal: f.cycleFactorsFinset = {f} ↔ f.IsCycle
-- Equiv.Perm.IsCycle.cycleFactorsFinset_eq_singleton
theorem IsCycle.cycleFactorsFinset_eq_singleton {f : Perm α} (hf : IsCycle f) :
    f.cycleFactorsFinset = {f} 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {f : Equiv.Perm α} (hf : f.IsCycle)
Goal: f.cycleFactorsFinset = {f}
-- Equiv.Perm.cycleFactorsFinset_eq_singleton_iff
theorem cycleFactorsFinset_eq_singleton_iff {f g : Perm α} :
    f.cycleFactorsFinset = {g} ↔ f.IsCycle ∧ f = g 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {f g : Equiv.Perm α}
Goal: f.cycleFactorsFinset = {g} ↔ f.IsCycle ∧ f = g
-- Equiv.Perm.cycleFactorsFinset_injective
theorem cycleFactorsFinset_injective : Function.Injective (@cycleFactorsFinset α _ _) 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α]
Goal: Function.Injective Equiv.Perm.cycleFactorsFinset
-- Equiv.Perm.Disjoint.disjoint_cycleFactorsFinset
theorem Disjoint.disjoint_cycleFactorsFinset {f g : Perm α} (h : Disjoint f g) :
    _root_.Disjoint (cycleFactorsFinset f) (cycleFactorsFinset g) 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {f g : Equiv.Perm α} (h : f.Disjoint g)
Goal: Disjoint f.cycleFactorsFinset g.cycleFactorsFinset
-- Equiv.Perm.Disjoint.cycleFactorsFinset_mul_eq_union
theorem Disjoint.cycleFactorsFinset_mul_eq_union {f g : Perm α} (h : Disjoint f g) :
    cycleFactorsFinset (f * g) = cycleFactorsFinset f ∪ cycleFactorsFinset g 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {f g : Equiv.Perm α} (h : f.Disjoint g)
Goal: (f * g).cycleFactorsFinset = f.cycleFactorsFinset ∪ g.cycleFactorsFinset
-- Equiv.Perm.disjoint_mul_inv_of_mem_cycleFactorsFinset
theorem disjoint_mul_inv_of_mem_cycleFactorsFinset {f g : Perm α} (h : f ∈ cycleFactorsFinset g) :
    Disjoint (g * f⁻¹) f 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {f g : Equiv.Perm α} (h : f ∈ g.cycleFactorsFinset)
Goal: (g * f⁻¹).Disjoint f
-- Equiv.Perm.cycle_is_cycleOf
theorem cycle_is_cycleOf {f c : Equiv.Perm α} {a : α} (ha : a ∈ c.support)
    (hc : c ∈ f.cycleFactorsFinset) : c = f.cycleOf a 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {f c : Equiv.Perm α} {a : α} (ha : a ∈ c.support) (hc : c ∈ f.cycleFactorsFinset)
Goal: c = f.cycleOf a
-- Equiv.Perm.cycle_induction_on
@[elab_as_elim]
theorem cycle_induction_on [Finite β] (P : Perm β → Prop) (σ : Perm β) (base_one : P 1)
    (base_cycles : ∀ σ : Perm β, σ.IsCycle → P σ)
    (induction_disjoint : ∀ σ τ : Perm β,
      Disjoint σ τ → IsCycle σ → P σ → P τ → P (σ * τ)) : P σ 
Arguments: {β : Type u_3} [Finite β] (P : Equiv.Perm β → Prop) (σ : Equiv.Perm β) (base_one : P 1) (base_cycles : ∀ (σ : Equiv.Perm β), σ.IsCycle → P σ) (induction_disjoint : ∀ (σ τ : Equiv.Perm β), σ.Disjoint τ → σ.IsCycle → P σ → P τ → P (σ * τ))
Goal: P σ
-- Equiv.Perm.cycleFactorsFinset_mul_inv_mem_eq_sdiff
theorem cycleFactorsFinset_mul_inv_mem_eq_sdiff [DecidableEq α] [Fintype α] {f g : Perm α}
    (h : f ∈ cycleFactorsFinset g) : cycleFactorsFinset (g * f⁻¹) = cycleFactorsFinset g \ {f} 
Arguments: {α : Type u_2} [DecidableEq α] [Fintype α] {f g : Equiv.Perm α} (h : f ∈ g.cycleFactorsFinset)
Goal: (g * f⁻¹).cycleFactorsFinset = g.cycleFactorsFinset \ {f}
-- Bitraversable.id_tfst
@[higher_order tfst_id]
theorem id_tfst : ∀ {α β} (x : t α β), tfst (F := Id) pure x = pure x 
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] [LawfulBitraversable t] {α β : Type u} (x : t α β)
Goal: Bitraversable.tfst pure x = pure x
-- Bitraversable.tfst_id
@[higher_order tfst_id]
theorem id_tfst : ∀ {α β} (x : t α β), tfst (F := Id) pure x = pure x 
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] [LawfulBitraversable t] {α β : Type u}
Goal: Bitraversable.tfst pure = pure
-- Bitraversable.tsnd_id
@[higher_order tsnd_id]
theorem id_tsnd : ∀ {α β} (x : t α β), tsnd (F := Id) pure x = pure x 
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] [LawfulBitraversable t] {α β : Type u}
Goal: Bitraversable.tsnd pure = pure
-- Bitraversable.id_tsnd
@[higher_order tsnd_id]
theorem id_tsnd : ∀ {α β} (x : t α β), tsnd (F := Id) pure x = pure x 
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] [LawfulBitraversable t] {α β : Type u} (x : t α β)
Goal: Bitraversable.tsnd pure x = pure x
-- Bitraversable.tfst_comp_tfst
@[higher_order tfst_comp_tfst]
theorem comp_tfst {α₀ α₁ α₂ β} (f : α₀ → F α₁) (f' : α₁ → G α₂) (x : t α₀ β) :
    Comp.mk (tfst f' <$> tfst f x) = tfst (Comp.mk ∘ map f' ∘ f) x 
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] {F G : Type u → Type u} [Applicative F] [Applicative G] [LawfulBitraversable t] [LawfulApplicative F] [LawfulApplicative G] {α₀ α₁ α₂ β : Type u} (f : α₀ → F α₁) (f' : α₁ → G α₂)
Goal: Functor.Comp.mk ∘ Functor.map (Bitraversable.tfst f') ∘ Bitraversable.tfst f =
  Bitraversable.tfst (Functor.Comp.mk ∘ Functor.map f' ∘ f)
-- Bitraversable.comp_tfst
@[higher_order tfst_comp_tfst]
theorem comp_tfst {α₀ α₁ α₂ β} (f : α₀ → F α₁) (f' : α₁ → G α₂) (x : t α₀ β) :
    Comp.mk (tfst f' <$> tfst f x) = tfst (Comp.mk ∘ map f' ∘ f) x 
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] {F G : Type u → Type u} [Applicative F] [Applicative G] [LawfulBitraversable t] [LawfulApplicative F] [LawfulApplicative G] {α₀ α₁ α₂ β : Type u} (f : α₀ → F α₁) (f' : α₁ → G α₂) (x : t α₀ β)
Goal: Functor.Comp.mk (Bitraversable.tfst f' <$> Bitraversable.tfst f x) =
  Bitraversable.tfst (Functor.Comp.mk ∘ Functor.map f' ∘ f) x
-- Bitraversable.tfst_tsnd
@[higher_order tfst_comp_tsnd]
theorem tfst_tsnd {α₀ α₁ β₀ β₁} (f : α₀ → F α₁) (f' : β₀ → G β₁) (x : t α₀ β₀) :
    Comp.mk (tfst f <$> tsnd f' x)
      = bitraverse (Comp.mk ∘ pure ∘ f) (Comp.mk ∘ map pure ∘ f') x 
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] {F G : Type u → Type u} [Applicative F] [Applicative G] [LawfulBitraversable t] [LawfulApplicative F] [LawfulApplicative G] {α₀ α₁ β₀ β₁ : Type u} (f : α₀ → F α₁) (f' : β₀ → G β₁) (x : t α₀ β₀)
Goal: Functor.Comp.mk (Bitraversable.tfst f <$> Bitraversable.tsnd f' x) =
  bitraverse (Functor.Comp.mk ∘ pure ∘ f) (Functor.Comp.mk ∘ Functor.map pure ∘ f') x
-- Bitraversable.tfst_comp_tsnd
@[higher_order tfst_comp_tsnd]
theorem tfst_tsnd {α₀ α₁ β₀ β₁} (f : α₀ → F α₁) (f' : β₀ → G β₁) (x : t α₀ β₀) :
    Comp.mk (tfst f <$> tsnd f' x)
      = bitraverse (Comp.mk ∘ pure ∘ f) (Comp.mk ∘ map pure ∘ f') x 
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] {F G : Type u → Type u} [Applicative F] [Applicative G] [LawfulBitraversable t] [LawfulApplicative F] [LawfulApplicative G] {α₀ α₁ β₀ β₁ : Type u} (f : α₀ → F α₁) (f' : β₀ → G β₁)
Goal: Functor.Comp.mk ∘ Functor.map (Bitraversable.tfst f) ∘ Bitraversable.tsnd f' =
  bitraverse (Functor.Comp.mk ∘ pure ∘ f) (Functor.Comp.mk ∘ Functor.map pure ∘ f')
-- Bitraversable.tsnd_tfst
@[higher_order tsnd_comp_tfst]
theorem tsnd_tfst {α₀ α₁ β₀ β₁} (f : α₀ → F α₁) (f' : β₀ → G β₁) (x : t α₀ β₀) :
    Comp.mk (tsnd f' <$> tfst f x)
      = bitraverse (Comp.mk ∘ map pure ∘ f) (Comp.mk ∘ pure ∘ f') x 
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] {F G : Type u → Type u} [Applicative F] [Applicative G] [LawfulBitraversable t] [LawfulApplicative F] [LawfulApplicative G] {α₀ α₁ β₀ β₁ : Type u} (f : α₀ → F α₁) (f' : β₀ → G β₁) (x : t α₀ β₀)
Goal: Functor.Comp.mk (Bitraversable.tsnd f' <$> Bitraversable.tfst f x) =
  bitraverse (Functor.Comp.mk ∘ Functor.map pure ∘ f) (Functor.Comp.mk ∘ pure ∘ f') x
-- Bitraversable.tsnd_comp_tfst
@[higher_order tsnd_comp_tfst]
theorem tsnd_tfst {α₀ α₁ β₀ β₁} (f : α₀ → F α₁) (f' : β₀ → G β₁) (x : t α₀ β₀) :
    Comp.mk (tsnd f' <$> tfst f x)
      = bitraverse (Comp.mk ∘ map pure ∘ f) (Comp.mk ∘ pure ∘ f') x 
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] {F G : Type u → Type u} [Applicative F] [Applicative G] [LawfulBitraversable t] [LawfulApplicative F] [LawfulApplicative G] {α₀ α₁ β₀ β₁ : Type u} (f : α₀ → F α₁) (f' : β₀ → G β₁)
Goal: Functor.Comp.mk ∘ Functor.map (Bitraversable.tsnd f') ∘ Bitraversable.tfst f =
  bitraverse (Functor.Comp.mk ∘ Functor.map pure ∘ f) (Functor.Comp.mk ∘ pure ∘ f')
-- Bitraversable.tsnd_comp_tsnd
@[higher_order tsnd_comp_tsnd]
theorem comp_tsnd {α β₀ β₁ β₂} (g : β₀ → F β₁) (g' : β₁ → G β₂) (x : t α β₀) :
    Comp.mk (tsnd g' <$> tsnd g x) = tsnd (Comp.mk ∘ map g' ∘ g) x 
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] {F G : Type u → Type u} [Applicative F] [Applicative G] [LawfulBitraversable t] [LawfulApplicative F] [LawfulApplicative G] {α β₀ β₁ β₂ : Type u} (g : β₀ → F β₁) (g' : β₁ → G β₂)
Goal: Functor.Comp.mk ∘ Functor.map (Bitraversable.tsnd g') ∘ Bitraversable.tsnd g =
  Bitraversable.tsnd (Functor.Comp.mk ∘ Functor.map g' ∘ g)
-- Bitraversable.comp_tsnd
@[higher_order tsnd_comp_tsnd]
theorem comp_tsnd {α β₀ β₁ β₂} (g : β₀ → F β₁) (g' : β₁ → G β₂) (x : t α β₀) :
    Comp.mk (tsnd g' <$> tsnd g x) = tsnd (Comp.mk ∘ map g' ∘ g) x 
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] {F G : Type u → Type u} [Applicative F] [Applicative G] [LawfulBitraversable t] [LawfulApplicative F] [LawfulApplicative G] {α β₀ β₁ β₂ : Type u} (g : β₀ → F β₁) (g' : β₁ → G β₂) (x : t α β₀)
Goal: Functor.Comp.mk (Bitraversable.tsnd g' <$> Bitraversable.tsnd g x) =
  Bitraversable.tsnd (Functor.Comp.mk ∘ Functor.map g' ∘ g) x
-- Bitraversable.tfst_eq_fst_id
@[higher_order]
theorem tfst_eq_fst_id {α α' β} (f : α → α') (x : t α β) :
    tfst (F := Id) (pure ∘ f) x = pure (fst f x) 
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] [LawfulBitraversable t] {α α' β : Type u} (f : α → α') (x : t α β)
Goal: Bitraversable.tfst (pure ∘ f) x = pure (Bifunctor.fst f x)