# mathlibdocumentation

group_theory.perm.cycle_type

# Cycle Types #

In this file we define the cycle type of a partition.

## Main definitions #

• σ.cycle_type where σ is a permutation of a fintype
• σ.partition where σ is a permutation of a fintype

## Main results #

• sum_cycle_type : The sum of σ.cycle_type equals σ.support.card
• lcm_cycle_type : The lcm of σ.cycle_type equals order_of σ
• is_conj_iff_cycle_type_eq : Two permutations are conjugate if and only if they have the same cycle type.
theorem equiv.perm.mem_list_cycles_iff {α : Type u_1} [fintype α] {l : list (equiv.perm α)} (h1 : ∀ (σ : , σ l → σ.is_cycle) (h2 : l) {σ : equiv.perm α} (h3 : σ.is_cycle) {a : α} (h4 : σ a a) :
σ l ∀ (k : ), ^ k) a = (l.prod ^ k) a
theorem equiv.perm.list_cycles_perm_list_cycles {α : Type u_1} [fintype α] {l₁ l₂ : list (equiv.perm α)} (h₀ : l₁.prod = l₂.prod) (h₁l₁ : ∀ (σ : , σ l₁ → σ.is_cycle) (h₁l₂ : ∀ (σ : , σ l₂ → σ.is_cycle) (h₂l₁ : l₁) (h₂l₂ : l₂) :
l₁ ~ l₂
def equiv.perm.cycle_type {α : Type u_1} [fintype α] [decidable_eq α] (σ : equiv.perm α) :

The cycle type of a permutation

Equations
theorem equiv.perm.two_le_of_mem_cycle_type {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} {n : } (h : n σ.cycle_type) :
2 n
theorem equiv.perm.one_lt_of_mem_cycle_type {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} {n : } (h : n σ.cycle_type) :
1 < n
theorem equiv.perm.cycle_type_eq {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} (l : list (equiv.perm α)) (h0 : l.prod = σ) (h1 : ∀ (σ : , σ l → σ.is_cycle) (h2 : l) :
theorem equiv.perm.cycle_type_one {α : Type u_1} [fintype α] [decidable_eq α] :
theorem equiv.perm.cycle_type_eq_zero {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} :
σ.cycle_type = 0 σ = 1
theorem equiv.perm.card_cycle_type_eq_zero {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} :
σ = 1
theorem equiv.perm.is_cycle.cycle_type {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} (hσ : σ.is_cycle) :
theorem equiv.perm.card_cycle_type_eq_one {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} :
theorem equiv.perm.disjoint.cycle_type {α : Type u_1} [fintype α] [decidable_eq α] {σ τ : equiv.perm α} (h : σ.disjoint τ) :
* τ).cycle_type =
theorem equiv.perm.cycle_type_inv {α : Type u_1} [fintype α] [decidable_eq α] (σ : equiv.perm α) :
theorem equiv.perm.cycle_type_conj {α : Type u_1} [fintype α] [decidable_eq α] {σ τ : equiv.perm α} :
((τ * σ) * τ⁻¹).cycle_type = σ.cycle_type
theorem equiv.perm.sum_cycle_type {α : Type u_1} [fintype α] [decidable_eq α] (σ : equiv.perm α) :
theorem equiv.perm.sign_of_cycle_type {α : Type u_1} [fintype α] [decidable_eq α] (σ : equiv.perm α) :
= (multiset.map (λ (n : ), -(-1) ^ n) σ.cycle_type).prod
theorem equiv.perm.lcm_cycle_type {α : Type u_1} [fintype α] [decidable_eq α] (σ : equiv.perm α) :
theorem equiv.perm.dvd_of_mem_cycle_type {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} {n : } (h : n σ.cycle_type) :
n
theorem equiv.perm.two_dvd_card_support {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} (hσ : σ ^ 2 = 1) :
theorem equiv.perm.cycle_type_prime_order {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} (hσ : nat.prime (order_of σ)) :
∃ (n : ), σ.cycle_type = (n + 1)
theorem equiv.perm.is_cycle_of_prime_order {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} (h1 : nat.prime (order_of σ)) (h2 : σ.support.card < 2 * ) :
theorem equiv.perm.is_conj_of_cycle_type_eq {α : Type u_1} [fintype α] [decidable_eq α] {σ τ : equiv.perm α} (h : σ.cycle_type = τ.cycle_type) :
τ
theorem equiv.perm.is_conj_iff_cycle_type_eq {α : Type u_1} [fintype α] [decidable_eq α] {σ τ : equiv.perm α} :
τ
@[simp]
theorem equiv.perm.cycle_type_extend_domain {α : Type u_1} [fintype α] [decidable_eq α] {β : Type u_2} [fintype β] [decidable_eq β] {p : β → Prop} (f : α ) {g : equiv.perm α} :
theorem equiv.perm.is_cycle_of_prime_order' {α : Type u_1} [fintype α] {σ : equiv.perm α} (h1 : nat.prime (order_of σ)) (h2 : < 2 * ) :
theorem equiv.perm.is_cycle_of_prime_order'' {α : Type u_1} [fintype α] {σ : equiv.perm α} (h1 : nat.prime (fintype.card α)) (h2 : = ) :
theorem equiv.perm.subgroup_eq_top_of_swap_mem {α : Type u_1} [fintype α] [decidable_eq α] {H : subgroup (equiv.perm α)} [d : decidable_pred (λ (_x : equiv.perm α), _x H)] {τ : equiv.perm α} (h0 : nat.prime (fintype.card α)) (h1 : ) (h2 : τ H) (h3 : τ.is_swap) :
H =
def equiv.perm.partition {α : Type u_1} [fintype α] [decidable_eq α] (σ : equiv.perm α) :

The partition corresponding to a permutation

Equations
theorem equiv.perm.parts_partition {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} :
theorem equiv.perm.partition_eq_of_is_conj {α : Type u_1} [fintype α] [decidable_eq α] {σ τ : equiv.perm α} :
τ

### 3-cycles #

def equiv.perm.is_three_cycle {α : Type u_1} [fintype α] [decidable_eq α] (σ : equiv.perm α) :
Prop

A three-cycle is a cycle of length 3.

Equations
theorem equiv.perm.is_three_cycle.cycle_type {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} (h : σ.is_three_cycle) :
σ.cycle_type = {3}
theorem equiv.perm.is_three_cycle.card_support {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} (h : σ.is_three_cycle) :
theorem card_support_eq_three_iff {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} :
theorem equiv.perm.is_three_cycle.is_cycle {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} (h : σ.is_three_cycle) :
theorem equiv.perm.is_three_cycle.sign {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} (h : σ.is_three_cycle) :
theorem equiv.perm.is_three_cycle.inv {α : Type u_1} [fintype α] [decidable_eq α] {f : equiv.perm α} (h : f.is_three_cycle) :
@[simp]
theorem equiv.perm.is_three_cycle.inv_iff {α : Type u_1} [fintype α] [decidable_eq α] {f : equiv.perm α} :
theorem equiv.perm.is_three_cycle_swap_mul_swap_same {α : Type u_1} [fintype α] [decidable_eq α] {a b c : α} (ab : a b) (ac : a c) (bc : b c) :
theorem equiv.perm.swap_mul_swap_same_mem_closure_three_cycles {α : Type u_1} [fintype α] [decidable_eq α] {a b c : α} (ab : a b) (ac : a c) :
theorem equiv.perm.is_swap.mul_mem_closure_three_cycles {α : Type u_1} [fintype α] [decidable_eq α] {σ τ : equiv.perm α} (hσ : σ.is_swap) (hτ : τ.is_swap) :