ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- LawfulBitraversable.binaturality
class LawfulBitraversable (t : Type u → Type u → Type u) [Bitraversable t] extends
  LawfulBifunctor t : Prop where
  -- Porting note: need to specify `m := Id` because `id` no longer has a `Monad` instance
  id_bitraverse : ∀ {α β} (x : t α β), bitraverse (m := Id) pure pure x = pure x
  comp_bitraverse :
    ∀ {F G} [Applicative F] [Applicative G] [LawfulApplicative F] [LawfulApplicative G]
      {α α' β β' γ γ'} (f : β → F γ) (f' : β' → F γ') (g : α → G β) (g' : α' → G β') (x : t α α'),
      bitraverse (Comp.mk ∘ map f ∘ g) (Comp.mk ∘ map f' ∘ g') x =
        Comp.mk (bitraverse f f' <$> bitraverse g g' x)
  bitraverse_eq_bimap_id :
    ∀ {α α' β β'} (f : α → β) (f' : α' → β') (x : t α α'),
      bitraverse (m := Id) (pure ∘ f) (pure ∘ f') x = pure (bimap f f' x)
  binaturality :
    ∀ {F G} [Applicative F] [Applicative G] [LawfulApplicative F] [LawfulApplicative G]
      (η : ApplicativeTransformation F G) {α α' β β'} (f : α → F β) (f' : α' → F β') (x : t α α'),
      η (bitraverse f f' x) = bitraverse (@η _ ∘ f) (@η _ ∘ f') x
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] [self : LawfulBitraversable t] {F G : Type u → Type u} [Applicative F] [Applicative G] [LawfulApplicative F] [LawfulApplicative G] (η : ApplicativeTransformation F G) {α α' β β' : Type u} (f : α → F β) (f' : α' → F β') (x : t α α')
Goal: (fun {α} => η.app α) (bitraverse f f' x) = bitraverse ((fun {α} => η.app α) ∘ f) ((fun {α} => η.app α) ∘ f') x
-- LawfulBitraversable.id_bitraverse
class LawfulBitraversable (t : Type u → Type u → Type u) [Bitraversable t] extends
  LawfulBifunctor t : Prop where
  -- Porting note: need to specify `m := Id` because `id` no longer has a `Monad` instance
  id_bitraverse : ∀ {α β} (x : t α β), bitraverse (m := Id) pure pure x = pure x
  comp_bitraverse :
    ∀ {F G} [Applicative F] [Applicative G] [LawfulApplicative F] [LawfulApplicative G]
      {α α' β β' γ γ'} (f : β → F γ) (f' : β' → F γ') (g : α → G β) (g' : α' → G β') (x : t α α'),
      bitraverse (Comp.mk ∘ map f ∘ g) (Comp.mk ∘ map f' ∘ g') x =
        Comp.mk (bitraverse f f' <$> bitraverse g g' x)
  bitraverse_eq_bimap_id :
    ∀ {α α' β β'} (f : α → β) (f' : α' → β') (x : t α α'),
      bitraverse (m := Id) (pure ∘ f) (pure ∘ f') x = pure (bimap f f' x)
  binaturality :
    ∀ {F G} [Applicative F] [Applicative G] [LawfulApplicative F] [LawfulApplicative G]
      (η : ApplicativeTransformation F G) {α α' β β'} (f : α → F β) (f' : α' → F β') (x : t α α'),
      η (bitraverse f f' x) = bitraverse (@η _ ∘ f) (@η _ ∘ f') x
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] [self : LawfulBitraversable t] {α β : Type u} (x : t α β)
Goal: bitraverse pure pure x = pure x
-- LawfulBitraversable.bitraverse_eq_bimap_id
class LawfulBitraversable (t : Type u → Type u → Type u) [Bitraversable t] extends
  LawfulBifunctor t : Prop where
  -- Porting note: need to specify `m := Id` because `id` no longer has a `Monad` instance
  id_bitraverse : ∀ {α β} (x : t α β), bitraverse (m := Id) pure pure x = pure x
  comp_bitraverse :
    ∀ {F G} [Applicative F] [Applicative G] [LawfulApplicative F] [LawfulApplicative G]
      {α α' β β' γ γ'} (f : β → F γ) (f' : β' → F γ') (g : α → G β) (g' : α' → G β') (x : t α α'),
      bitraverse (Comp.mk ∘ map f ∘ g) (Comp.mk ∘ map f' ∘ g') x =
        Comp.mk (bitraverse f f' <$> bitraverse g g' x)
  bitraverse_eq_bimap_id :
    ∀ {α α' β β'} (f : α → β) (f' : α' → β') (x : t α α'),
      bitraverse (m := Id) (pure ∘ f) (pure ∘ f') x = pure (bimap f f' x)
  binaturality :
    ∀ {F G} [Applicative F] [Applicative G] [LawfulApplicative F] [LawfulApplicative G]
      (η : ApplicativeTransformation F G) {α α' β β'} (f : α → F β) (f' : α' → F β') (x : t α α'),
      η (bitraverse f f' x) = bitraverse (@η _ ∘ f) (@η _ ∘ f') x
Arguments: {t : Type u → Type u → Type u} [Bitraversable t] [self : LawfulBitraversable t] {α α' β β' : Type u} (f : α → β) (f' : α' → β') (x : t α α')
Goal: bitraverse (pure ∘ f) (pure ∘ f') x = pure (bimap f f' x)
-- Equiv.Perm.cycleType_def
theorem cycleType_def (σ : Perm α) :
    σ.cycleType = σ.cycleFactorsFinset.1.map (Finset.card ∘ support) 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] (σ : Equiv.Perm α)
Goal: σ.cycleType = Multiset.map (Finset.card ∘ Equiv.Perm.support) σ.cycleFactorsFinset.val
-- Equiv.Perm.cycleType_eq'
theorem cycleType_eq' {σ : Perm α} (s : Finset (Perm α)) (h1 : ∀ f : Perm α, f ∈ s → f.IsCycle)
    (h2 : (s : Set (Perm α)).Pairwise Disjoint)
    (h0 : s.noncommProd id (h2.imp fun _ _ => Disjoint.commute) = σ) :
    σ.cycleType = s.1.map (Finset.card ∘ support) 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α} (s : Finset (Equiv.Perm α)) (h1 : ∀ f ∈ s, f.IsCycle) (h2 : (↑s).Pairwise Equiv.Perm.Disjoint) (h0 : s.noncommProd id ⋯ = σ)
Goal: σ.cycleType = Multiset.map (Finset.card ∘ Equiv.Perm.support) s.val
-- Equiv.Perm.cycleType_eq
theorem cycleType_eq {σ : Perm α} (l : List (Perm α)) (h0 : l.prod = σ)
    (h1 : ∀ σ : Perm α, σ ∈ l → σ.IsCycle) (h2 : l.Pairwise Disjoint) :
    σ.cycleType = l.map (Finset.card ∘ support) 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α} (l : List (Equiv.Perm α)) (h0 : l.prod = σ) (h1 : ∀ σ ∈ l, σ.IsCycle) (h2 : List.Pairwise Equiv.Perm.Disjoint l)
Goal: σ.cycleType = ↑(List.map (Finset.card ∘ Equiv.Perm.support) l)
-- Equiv.Perm.cycleType_eq_zero
@[simp] -- Porting note: new attr
theorem cycleType_eq_zero {σ : Perm α} : σ.cycleType = 0 ↔ σ = 1 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α}
Goal: σ.cycleType = 0 ↔ σ = 1
-- Equiv.Perm.cycleType_one
@[simp] -- Porting note: new attr
theorem cycleType_one : (1 : Perm α).cycleType = 0 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α]
Goal: Equiv.Perm.cycleType 1 = 0
-- Equiv.Perm.card_cycleType_eq_zero
theorem card_cycleType_eq_zero {σ : Perm α} : Multiset.card σ.cycleType = 0 ↔ σ = 1 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α}
Goal: Multiset.card σ.cycleType = 0 ↔ σ = 1
-- Equiv.Perm.card_cycleType_pos
theorem card_cycleType_pos {σ : Perm α} : 0 < Multiset.card σ.cycleType ↔ σ ≠ 1 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α}
Goal: 0 < Multiset.card σ.cycleType ↔ σ ≠ 1
-- Equiv.Perm.two_le_of_mem_cycleType
theorem two_le_of_mem_cycleType {σ : Perm α} {n : ℕ} (h : n ∈ σ.cycleType) : 2 ≤ n 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α} {n : ℕ} (h : n ∈ σ.cycleType)
Goal: 2 ≤ n
-- Equiv.Perm.one_lt_of_mem_cycleType
theorem one_lt_of_mem_cycleType {σ : Perm α} {n : ℕ} (h : n ∈ σ.cycleType) : 1 < n 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α} {n : ℕ} (h : n ∈ σ.cycleType)
Goal: 1 < n
-- Equiv.Perm.IsCycle.cycleType
theorem IsCycle.cycleType {σ : Perm α} (hσ : IsCycle σ) : σ.cycleType = [σ.support.card] 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α} (hσ : σ.IsCycle)
Goal: σ.cycleType = ↑[σ.support.card]
-- Equiv.Perm.card_cycleType_eq_one
theorem card_cycleType_eq_one {σ : Perm α} : Multiset.card σ.cycleType = 1 ↔ σ.IsCycle 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α}
Goal: Multiset.card σ.cycleType = 1 ↔ σ.IsCycle
-- Equiv.Perm.Disjoint.cycleType
theorem Disjoint.cycleType {σ τ : Perm α} (h : Disjoint σ τ) :
    (σ * τ).cycleType = σ.cycleType + τ.cycleType 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ τ : Equiv.Perm α} (h : σ.Disjoint τ)
Goal: (σ * τ).cycleType = σ.cycleType + τ.cycleType
-- Equiv.Perm.cycleType_inv
@[simp] -- Porting note: new attr
theorem cycleType_inv (σ : Perm α) : σ⁻¹.cycleType = σ.cycleType 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] (σ : Equiv.Perm α)
Goal: σ⁻¹.cycleType = σ.cycleType
-- Equiv.Perm.cycleType_conj
@[simp] -- Porting note: new attr
theorem cycleType_conj {σ τ : Perm α} : (τ * σ * τ⁻¹).cycleType = σ.cycleType 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ τ : Equiv.Perm α}
Goal: (τ * σ * τ⁻¹).cycleType = σ.cycleType
-- Equiv.Perm.sum_cycleType
theorem sum_cycleType (σ : Perm α) : σ.cycleType.sum = σ.support.card 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] (σ : Equiv.Perm α)
Goal: σ.cycleType.sum = σ.support.card
-- Equiv.Perm.sign_of_cycleType'
theorem sign_of_cycleType' (σ : Perm α) :
    sign σ = (σ.cycleType.map fun n => -(-1 : ℤˣ) ^ n).prod 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] (σ : Equiv.Perm α)
Goal: Equiv.Perm.sign σ = (Multiset.map (fun n => -(-1) ^ n) σ.cycleType).prod
-- Equiv.Perm.sign_of_cycleType
theorem sign_of_cycleType (f : Perm α) :
    sign f = (-1 : ℤˣ) ^ (f.cycleType.sum + Multiset.card f.cycleType) 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] (f : Equiv.Perm α)
Goal: Equiv.Perm.sign f = (-1) ^ (f.cycleType.sum + Multiset.card f.cycleType)
-- Equiv.Perm.lcm_cycleType
@[simp] -- Porting note: new attr
theorem lcm_cycleType (σ : Perm α) : σ.cycleType.lcm = orderOf σ 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] (σ : Equiv.Perm α)
Goal: σ.cycleType.lcm = orderOf σ
-- Equiv.Perm.dvd_of_mem_cycleType
theorem dvd_of_mem_cycleType {σ : Perm α} {n : ℕ} (h : n ∈ σ.cycleType) : n ∣ orderOf σ 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α} {n : ℕ} (h : n ∈ σ.cycleType)
Goal: n ∣ orderOf σ
-- Equiv.Perm.orderOf_cycleOf_dvd_orderOf
theorem orderOf_cycleOf_dvd_orderOf (f : Perm α) (x : α) : orderOf (cycleOf f x) ∣ orderOf f 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] (f : Equiv.Perm α) (x : α)
Goal: orderOf (f.cycleOf x) ∣ orderOf f
-- Equiv.Perm.two_dvd_card_support
theorem two_dvd_card_support {σ : Perm α} (hσ : σ ^ 2 = 1) : 2 ∣ σ.support.card 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α} (hσ : σ ^ 2 = 1)
Goal: 2 ∣ σ.support.card
-- Equiv.Perm.cycleType_prime_order
theorem cycleType_prime_order {σ : Perm α} (hσ : (orderOf σ).Prime) :
    ∃ n : ℕ, σ.cycleType = Multiset.replicate (n + 1) (orderOf σ) 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α} (hσ : Nat.Prime (orderOf σ))
Goal: ∃ n, σ.cycleType = Multiset.replicate (n + 1) (orderOf σ)
-- Equiv.Perm.isCycle_of_prime_order
theorem isCycle_of_prime_order {σ : Perm α} (h1 : (orderOf σ).Prime)
    (h2 : σ.support.card < 2 * orderOf σ) : σ.IsCycle 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α} (h1 : Nat.Prime (orderOf σ)) (h2 : σ.support.card < 2 * orderOf σ)
Goal: σ.IsCycle
-- Equiv.Perm.cycleType_le_of_mem_cycleFactorsFinset
theorem cycleType_le_of_mem_cycleFactorsFinset {f g : Perm α} (hf : f ∈ g.cycleFactorsFinset) :
    f.cycleType ≤ g.cycleType 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {f g : Equiv.Perm α} (hf : f ∈ g.cycleFactorsFinset)
Goal: f.cycleType ≤ g.cycleType
-- Equiv.Perm.cycleType_mul_inv_mem_cycleFactorsFinset_eq_sub
theorem cycleType_mul_inv_mem_cycleFactorsFinset_eq_sub
    {f g : Perm α} (hf : f ∈ g.cycleFactorsFinset) :
    (g * f⁻¹).cycleType = g.cycleType - f.cycleType 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {f g : Equiv.Perm α} (hf : f ∈ g.cycleFactorsFinset)
Goal: (g * f⁻¹).cycleType = g.cycleType - f.cycleType
-- Equiv.Perm.isConj_of_cycleType_eq
theorem isConj_of_cycleType_eq {σ τ : Perm α} (h : cycleType σ = cycleType τ) : IsConj σ τ 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ τ : Equiv.Perm α} (h : σ.cycleType = τ.cycleType)
Goal: IsConj σ τ
-- Equiv.Perm.isConj_iff_cycleType_eq
theorem isConj_iff_cycleType_eq {σ τ : Perm α} : IsConj σ τ ↔ σ.cycleType = τ.cycleType 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ τ : Equiv.Perm α}
Goal: IsConj σ τ ↔ σ.cycleType = τ.cycleType
-- Equiv.Perm.cycleType_extendDomain
@[simp]
theorem cycleType_extendDomain {β : Type*} [Fintype β] [DecidableEq β] {p : β → Prop}
    [DecidablePred p] (f : α ≃ Subtype p) {g : Perm α} :
    cycleType (g.extendDomain f) = cycleType g 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {β : Type u_2} [Fintype β] [DecidableEq β] {p : β → Prop} [DecidablePred p] (f : α ≃ Subtype p) {g : Equiv.Perm α}
Goal: (g.extendDomain f).cycleType = g.cycleType
-- Equiv.Perm.cycleType_ofSubtype
theorem cycleType_ofSubtype {p : α → Prop} [DecidablePred p] {g : Perm (Subtype p)} :
    cycleType (ofSubtype g) = cycleType g 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {p : α → Prop} [DecidablePred p] {g : Equiv.Perm (Subtype p)}
Goal: (Equiv.Perm.ofSubtype g).cycleType = g.cycleType
-- Equiv.Perm.mem_cycleType_iff
theorem mem_cycleType_iff {n : ℕ} {σ : Perm α} :
    n ∈ cycleType σ ↔ ∃ c τ, σ = c * τ ∧ Disjoint c τ ∧ IsCycle c ∧ c.support.card = n 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {n : ℕ} {σ : Equiv.Perm α}
Goal: n ∈ σ.cycleType ↔ ∃ c τ, σ = c * τ ∧ c.Disjoint τ ∧ c.IsCycle ∧ c.support.card = n
-- Equiv.Perm.le_card_support_of_mem_cycleType
theorem le_card_support_of_mem_cycleType {n : ℕ} {σ : Perm α} (h : n ∈ cycleType σ) :
    n ≤ σ.support.card 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {n : ℕ} {σ : Equiv.Perm α} (h : n ∈ σ.cycleType)
Goal: n ≤ σ.support.card
-- Equiv.Perm.cycleType_of_card_le_mem_cycleType_add_two
theorem cycleType_of_card_le_mem_cycleType_add_two {n : ℕ} {g : Perm α}
    (hn2 : Fintype.card α < n + 2) (hng : n ∈ g.cycleType) : g.cycleType = {n} 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {n : ℕ} {g : Equiv.Perm α} (hn2 : Fintype.card α < n + 2) (hng : n ∈ g.cycleType)
Goal: g.cycleType = {n}
-- Equiv.Perm.card_compl_support_modEq
theorem card_compl_support_modEq [DecidableEq α] {p n : ℕ} [hp : Fact p.Prime] {σ : Perm α}
    (hσ : σ ^ p ^ n = 1) : σ.supportᶜ.card ≡ Fintype.card α [MOD p] 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {p n : ℕ} [hp : Fact (Nat.Prime p)] {σ : Equiv.Perm α} (hσ : σ ^ p ^ n = 1)
Goal: σ.supportᶜ.card ≡ Fintype.card α [MOD p]
-- Equiv.Perm.card_fixedPoints_modEq
theorem card_fixedPoints_modEq [DecidableEq α] {f : Function.End α} {p n : ℕ}
    [hp : Fact p.Prime] (hf : f ^ p ^ n = 1) :
    Fintype.card α ≡ Fintype.card f.fixedPoints [MOD p] 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {f : Function.End α} {p n : ℕ} [hp : Fact (Nat.Prime p)] (hf : f ^ p ^ n = 1)
Goal: Fintype.card α ≡ Fintype.card ↑(Function.fixedPoints f) [MOD p]
-- Equiv.Perm.exists_fixed_point_of_prime
theorem exists_fixed_point_of_prime {p n : ℕ} [hp : Fact p.Prime] (hα : ¬p ∣ Fintype.card α)
    {σ : Perm α} (hσ : σ ^ p ^ n = 1) : ∃ a : α, σ a = a 
Arguments: {α : Type u_1} [Fintype α] {p n : ℕ} [hp : Fact (Nat.Prime p)] (hα : ¬p ∣ Fintype.card α) {σ : Equiv.Perm α} (hσ : σ ^ p ^ n = 1)
Goal: ∃ a, σ a = a
-- Equiv.Perm.exists_fixed_point_of_prime'
theorem exists_fixed_point_of_prime' {p n : ℕ} [hp : Fact p.Prime] (hα : p ∣ Fintype.card α)
    {σ : Perm α} (hσ : σ ^ p ^ n = 1) {a : α} (ha : σ a = a) : ∃ b : α, σ b = b ∧ b ≠ a 
Arguments: {α : Type u_1} [Fintype α] {p n : ℕ} [hp : Fact (Nat.Prime p)] (hα : p ∣ Fintype.card α) {σ : Equiv.Perm α} (hσ : σ ^ p ^ n = 1) {a : α} (ha : σ a = a)
Goal: ∃ b, σ b = b ∧ b ≠ a
-- Equiv.Perm.isCycle_of_prime_order'
theorem isCycle_of_prime_order' {σ : Perm α} (h1 : (orderOf σ).Prime)
    (h2 : Fintype.card α < 2 * orderOf σ) : σ.IsCycle 
Arguments: {α : Type u_1} [Fintype α] {σ : Equiv.Perm α} (h1 : Nat.Prime (orderOf σ)) (h2 : Fintype.card α < 2 * orderOf σ)
Goal: σ.IsCycle
-- Equiv.Perm.isCycle_of_prime_order''
theorem isCycle_of_prime_order'' {σ : Perm α} (h1 : (Fintype.card α).Prime)
    (h2 : orderOf σ = Fintype.card α) : σ.IsCycle 
Arguments: {α : Type u_1} [Fintype α] {σ : Equiv.Perm α} (h1 : Nat.Prime (Fintype.card α)) (h2 : orderOf σ = Fintype.card α)
Goal: σ.IsCycle
-- Equiv.Perm.VectorsProdEqOne.mem_iff
theorem mem_iff {n : ℕ} (v : Vector G n) : v ∈ vectorsProdEqOne G n ↔ v.toList.prod = 1 
Arguments: (G : Type u_2) [Group G] {n : ℕ} (v : Mathlib.Vector G n)
Goal: v ∈ Equiv.Perm.vectorsProdEqOne G n ↔ v.toList.prod = 1
-- Equiv.Perm.VectorsProdEqOne.zero_eq
theorem zero_eq : vectorsProdEqOne G 0 = {Vector.nil} 
Arguments: (G : Type u_2) [Group G]
Goal: Equiv.Perm.vectorsProdEqOne G 0 = {Mathlib.Vector.nil}
-- Equiv.Perm.VectorsProdEqOne.one_eq
theorem one_eq : vectorsProdEqOne G 1 = {Vector.nil.cons 1} 
Arguments: (G : Type u_2) [Group G]
Goal: Equiv.Perm.vectorsProdEqOne G 1 = {1 ::ᵥ Mathlib.Vector.nil}
-- Equiv.Perm.VectorsProdEqOne.vectorEquiv_apply_coe
@[simps]
def vectorEquiv : Vector G n ≃ vectorsProdEqOne G (n + 1) 
Arguments: (G : Type u_2) [Group G] (n : ℕ) (v : Mathlib.Vector G n)
Goal: ↑((Equiv.Perm.VectorsProdEqOne.vectorEquiv G n) v) = v.toList.prod⁻¹ ::ᵥ v
-- Equiv.Perm.VectorsProdEqOne.vectorEquiv_symm_apply
@[simps]
def vectorEquiv : Vector G n ≃ vectorsProdEqOne G (n + 1) 
Arguments: (G : Type u_2) [Group G] (n : ℕ) (v : ↑(Equiv.Perm.vectorsProdEqOne G (n + 1)))
Goal: (Equiv.Perm.VectorsProdEqOne.vectorEquiv G n).symm v = (↑v).tail
-- Equiv.Perm.VectorsProdEqOne.card
theorem card [Fintype G] : Fintype.card (vectorsProdEqOne G n) = Fintype.card G ^ (n - 1) 
Arguments: (G : Type u_2) [Group G] (n : ℕ) [Fintype G]
Goal: Fintype.card ↑(Equiv.Perm.vectorsProdEqOne G n) = Fintype.card G ^ (n - 1)
-- Equiv.Perm.VectorsProdEqOne.rotate_zero
theorem rotate_zero : rotate v 0 = v 
Arguments: {G : Type u_2} [Group G] {n : ℕ} (v : ↑(Equiv.Perm.vectorsProdEqOne G n))
Goal: Equiv.Perm.VectorsProdEqOne.rotate v 0 = v
-- Equiv.Perm.VectorsProdEqOne.rotate_rotate
theorem rotate_rotate : rotate (rotate v j) k = rotate v (j + k) 
Arguments: {G : Type u_2} [Group G] {n : ℕ} (v : ↑(Equiv.Perm.vectorsProdEqOne G n)) (j k : ℕ)
Goal: Equiv.Perm.VectorsProdEqOne.rotate (Equiv.Perm.VectorsProdEqOne.rotate v j) k =
  Equiv.Perm.VectorsProdEqOne.rotate v (j + k)
-- Equiv.Perm.VectorsProdEqOne.rotate_length
theorem rotate_length : rotate v n = v 
Arguments: {G : Type u_2} [Group G] {n : ℕ} (v : ↑(Equiv.Perm.vectorsProdEqOne G n))
Goal: Equiv.Perm.VectorsProdEqOne.rotate v n = v
-- exists_prime_orderOf_dvd_card
theorem _root_.exists_prime_orderOf_dvd_card {G : Type*} [Group G] [Fintype G] (p : ℕ)
    [hp : Fact p.Prime] (hdvd : p ∣ Fintype.card G) : ∃ x : G, orderOf x = p 
Arguments: {G : Type u_3} [Group G] [Fintype G] (p : ℕ) [hp : Fact (Nat.Prime p)] (hdvd : p ∣ Fintype.card G)
Goal: ∃ x, orderOf x = p
-- exists_prime_addOrderOf_dvd_card
theorem _root_.exists_prime_addOrderOf_dvd_card {G : Type*} [AddGroup G] [Fintype G] (p : ℕ)
    [hp : Fact p.Prime] (hdvd : p ∣ Fintype.card G) : ∃ x : G, addOrderOf x = p 
Arguments: {G : Type u_3} [AddGroup G] [Fintype G] (p : ℕ) [hp : Fact (Nat.Prime p)] (hdvd : p ∣ Fintype.card G)
Goal: ∃ x, addOrderOf x = p
-- exists_prime_orderOf_dvd_card'
@[to_additive]
theorem _root_.exists_prime_orderOf_dvd_card' {G : Type*} [Group G] [Finite G] (p : ℕ)
    [hp : Fact p.Prime] (hdvd : p ∣ Nat.card G) : ∃ x : G, orderOf x = p 
Arguments: {G : Type u_3} [Group G] [Finite G] (p : ℕ) [hp : Fact (Nat.Prime p)] (hdvd : p ∣ Nat.card G)
Goal: ∃ x, orderOf x = p
-- exists_prime_addOrderOf_dvd_card'
@[to_additive]
theorem _root_.exists_prime_orderOf_dvd_card' {G : Type*} [Group G] [Finite G] (p : ℕ)
    [hp : Fact p.Prime] (hdvd : p ∣ Nat.card G) : ∃ x : G, orderOf x = p 
Arguments: {G : Type u_3} [AddGroup G] [Finite G] (p : ℕ) [hp : Fact (Nat.Prime p)] (hdvd : p ∣ Nat.card G)
Goal: ∃ x, addOrderOf x = p
-- Equiv.Perm.subgroup_eq_top_of_swap_mem
theorem subgroup_eq_top_of_swap_mem [DecidableEq α] {H : Subgroup (Perm α)}
    [d : DecidablePred (· ∈ H)] {τ : Perm α} (h0 : (Fintype.card α).Prime)
    (h1 : Fintype.card α ∣ Fintype.card H) (h2 : τ ∈ H) (h3 : IsSwap τ) : H = ⊤ 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {H : Subgroup (Equiv.Perm α)} [d : DecidablePred fun x => x ∈ H] {τ : Equiv.Perm α} (h0 : Nat.Prime (Fintype.card α)) (h1 : Fintype.card α ∣ Fintype.card ↥H) (h2 : τ ∈ H) (h3 : τ.IsSwap)
Goal: H = ⊤
-- Equiv.Perm.parts_partition
theorem parts_partition {σ : Perm α} :
    σ.partition.parts = σ.cycleType + Multiset.replicate (Fintype.card α - σ.support.card) 1 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α}
Goal: σ.partition.parts = σ.cycleType + Multiset.replicate (Fintype.card α - σ.support.card) 1
-- Equiv.Perm.filter_parts_partition_eq_cycleType
theorem filter_parts_partition_eq_cycleType {σ : Perm α} :
    ((partition σ).parts.filter fun n => 2 ≤ n) = σ.cycleType 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α}
Goal: Multiset.filter (fun n => 2 ≤ n) σ.partition.parts = σ.cycleType
-- Equiv.Perm.partition_eq_of_isConj
theorem partition_eq_of_isConj {σ τ : Perm α} : IsConj σ τ ↔ σ.partition = τ.partition 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ τ : Equiv.Perm α}
Goal: IsConj σ τ ↔ σ.partition = τ.partition
-- Equiv.Perm.IsThreeCycle.cycleType
theorem cycleType (h : IsThreeCycle σ) : σ.cycleType = {3} 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α} (h : σ.IsThreeCycle)
Goal: σ.cycleType = {3}
-- Equiv.Perm.IsThreeCycle.card_support
theorem card_support (h : IsThreeCycle σ) : σ.support.card = 3 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α} (h : σ.IsThreeCycle)
Goal: σ.support.card = 3
-- card_support_eq_three_iff
theorem _root_.card_support_eq_three_iff : σ.support.card = 3 ↔ σ.IsThreeCycle 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α}
Goal: σ.support.card = 3 ↔ σ.IsThreeCycle
-- Equiv.Perm.IsThreeCycle.isCycle
theorem isCycle (h : IsThreeCycle σ) : IsCycle σ 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α} (h : σ.IsThreeCycle)
Goal: σ.IsCycle
-- Equiv.Perm.IsThreeCycle.sign
theorem sign (h : IsThreeCycle σ) : sign σ = 1 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ : Equiv.Perm α} (h : σ.IsThreeCycle)
Goal: Equiv.Perm.sign σ = 1
-- Equiv.Perm.IsThreeCycle.inv
theorem inv {f : Perm α} (h : IsThreeCycle f) : IsThreeCycle f⁻¹ 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {f : Equiv.Perm α} (h : f.IsThreeCycle)
Goal: f⁻¹.IsThreeCycle
-- Equiv.Perm.IsThreeCycle.inv_iff
@[simp]
theorem inv_iff {f : Perm α} : IsThreeCycle f⁻¹ ↔ IsThreeCycle f 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {f : Equiv.Perm α}
Goal: f⁻¹.IsThreeCycle ↔ f.IsThreeCycle
-- Equiv.Perm.IsThreeCycle.orderOf
theorem orderOf {g : Perm α} (ht : IsThreeCycle g) : orderOf g = 3 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {g : Equiv.Perm α} (ht : g.IsThreeCycle)
Goal: orderOf g = 3
-- Equiv.Perm.IsThreeCycle.isThreeCycle_sq
theorem isThreeCycle_sq {g : Perm α} (ht : IsThreeCycle g) : IsThreeCycle (g * g) 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {g : Equiv.Perm α} (ht : g.IsThreeCycle)
Goal: (g * g).IsThreeCycle
-- Equiv.Perm.isThreeCycle_swap_mul_swap_same
theorem isThreeCycle_swap_mul_swap_same {a b c : α} (ab : a ≠ b) (ac : a ≠ c) (bc : b ≠ c) :
    IsThreeCycle (swap a b * swap a c) 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {a b c : α} (ab : a ≠ b) (ac : a ≠ c) (bc : b ≠ c)
Goal: (Equiv.swap a b * Equiv.swap a c).IsThreeCycle
-- Equiv.Perm.swap_mul_swap_same_mem_closure_three_cycles
theorem swap_mul_swap_same_mem_closure_three_cycles {a b c : α} (ab : a ≠ b) (ac : a ≠ c) :
    swap a b * swap a c ∈ closure { σ : Perm α | IsThreeCycle σ } 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {a b c : α} (ab : a ≠ b) (ac : a ≠ c)
Goal: Equiv.swap a b * Equiv.swap a c ∈ Subgroup.closure {σ | σ.IsThreeCycle}
-- Equiv.Perm.IsSwap.mul_mem_closure_three_cycles
theorem IsSwap.mul_mem_closure_three_cycles {σ τ : Perm α} (hσ : IsSwap σ) (hτ : IsSwap τ) :
    σ * τ ∈ closure { σ : Perm α | IsThreeCycle σ } 
Arguments: {α : Type u_1} [Fintype α] [DecidableEq α] {σ τ : Equiv.Perm α} (hσ : σ.IsSwap) (hτ : τ.IsSwap)
Goal: σ * τ ∈ Subgroup.closure {σ | σ.IsThreeCycle}
-- Equiv.Perm.cycleOf_apply
theorem cycleOf_apply (f : Perm α) [DecidableRel f.SameCycle] (x y : α) :
    cycleOf f x y = if SameCycle f x y then f y else y 
Arguments: {α : Type u_2} (f : Equiv.Perm α) [DecidableRel f.SameCycle] (x y : α)
Goal: (f.cycleOf x) y = if f.SameCycle x y then f y else y
-- Equiv.Perm.cycleOf_inv
theorem cycleOf_inv (f : Perm α) [DecidableRel f.SameCycle] (x : α) :
    (cycleOf f x)⁻¹ = cycleOf f⁻¹ x 
Arguments: {α : Type u_2} (f : Equiv.Perm α) [DecidableRel f.SameCycle] (x : α)
Goal: (f.cycleOf x)⁻¹ = f⁻¹.cycleOf x