mathlib documentation

group_theory.perm.cycle_type

Cycle Types #

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

Main definitions #

Main results #

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

The cycle type of a permutation

Equations
theorem equiv.perm.cycle_type_eq' {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} (s : finset (equiv.perm α)) (h1 : ∀ (f : equiv.perm α), f s → f.is_cycle) (h2 : ∀ (a : equiv.perm α), a s∀ (b : equiv.perm α), b sa ba.disjoint b) (h0 : s.noncomm_prod id _ = σ) :
theorem equiv.perm.cycle_type_eq {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} (l : list (equiv.perm α)) (h0 : l.prod = σ) (h1 : ∀ (σ : equiv.perm α), σ l → σ.is_cycle) (h2 : list.pairwise equiv.perm.disjoint 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 α} :
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.is_cycle.cycle_type {α : Type u_1} [fintype α] [decidable_eq α] {σ : equiv.perm α} (hσ : σ.is_cycle) :
theorem equiv.perm.disjoint.cycle_type {α : Type u_1} [fintype α] [decidable_eq α] {σ τ : equiv.perm α} (h : σ.disjoint τ) :
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 α) :
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) :
theorem equiv.perm.order_of_cycle_of_dvd_order_of {α : Type u_1} [fintype α] [decidable_eq α] (f : equiv.perm α) (x : α) :
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 = multiset.repeat (order_of σ) (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 * order_of σ) :
theorem equiv.perm.is_conj_of_cycle_type_eq {α : Type u_1} [fintype α] [decidable_eq α] {σ τ : equiv.perm α} (h : σ.cycle_type = τ.cycle_type) :
is_conj σ τ
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} [decidable_pred p] (f : α subtype p) {g : equiv.perm α} :
theorem equiv.perm.mem_cycle_type_iff {α : Type u_1} [fintype α] [decidable_eq α] {n : } {σ : equiv.perm α} :
n σ.cycle_type ∃ (c τ : equiv.perm α), σ = c * τ c.disjoint τ c.is_cycle c.support.card = n
theorem equiv.perm.le_card_support_of_mem_cycle_type {α : Type u_1} [fintype α] [decidable_eq α] {n : } {σ : equiv.perm α} (h : n σ.cycle_type) :
theorem equiv.perm.cycle_type_of_card_le_mem_cycle_type_add_two {α : Type u_1} [fintype α] [decidable_eq α] {n : } {g : equiv.perm α} (hn2 : fintype.card α < n + 2) (hng : n g.cycle_type) :
theorem equiv.perm.card_compl_support_modeq {α : Type u_1} [fintype α] [decidable_eq α] {p n : } [hp : fact (nat.prime p)] {σ : equiv.perm α} (hσ : σ ^ p ^ n = 1) :
theorem equiv.perm.exists_fixed_point_of_prime {α : Type u_1} [fintype α] {p n : } [hp : fact (nat.prime p)] (hα : ¬p fintype.card α) {σ : equiv.perm α} (hσ : σ ^ p ^ n = 1) :
∃ (a : α), σ a = a
theorem equiv.perm.exists_fixed_point_of_prime' {α : 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) :
∃ (b : α), σ b = b b a
theorem equiv.perm.is_cycle_of_prime_order' {α : Type u_1} [fintype α] {σ : equiv.perm α} (h1 : nat.prime (order_of σ)) (h2 : fintype.card α < 2 * order_of σ) :
theorem equiv.perm.is_cycle_of_prime_order'' {α : Type u_1} [fintype α] {σ : equiv.perm α} (h1 : nat.prime (fintype.card α)) (h2 : order_of σ = fintype.card α) :
def equiv.perm.vectors_prod_eq_one (G : Type u_2) [group G] (n : ) :
set (vector G n)

The type of vectors with terms from G, length n, and product equal to 1:G.

Equations

Given a vector v of length n, make a vector of length n + 1 whose product is 1, by appending the inverse of the product of v.

Equations

Given a vector v of length n whose product is 1, make a vector of length n - 1, by deleting the last entry of v.

Equations

Rotate a vector whose product is 1.

Equations
theorem equiv.perm.exists_prime_order_of_dvd_card {G : Type u_1} [group G] [fintype G] (p : ) [hp : fact (nat.prime p)] (hdvd : p fintype.card G) :
∃ (x : G), order_of x = p
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 : fintype.card α fintype.card H) (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.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.order_of {α : Type u_1} [fintype α] [decidable_eq α] {g : equiv.perm α} (ht : g.is_three_cycle) :
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) :