Cycle Types #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
In this file we define the cycle type of a permutation.
Main definitions #
σ.cycle_type
whereσ
is a permutation of afintype
σ.partition
whereσ
is a permutation of afintype
Main results #
sum_cycle_type
: The sum ofσ.cycle_type
equalsσ.support.card
lcm_cycle_type
: The lcm ofσ.cycle_type
equalsorder_of σ
is_conj_iff_cycle_type_eq
: Two permutations are conjugate if and only if they have the same cycle type.exists_prime_order_of_dvd_card
: For every primep
dividing the order of a finite groupG
there exists an element of orderp
inG
. This is known as Cauchy's theorem.
The cycle type of a permutation
Equations
The type of vectors with terms from G
, length n
, and product equal to 1:G
.
Instances for ↥equiv.perm.vectors_prod_eq_one
Equations
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
.
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
- equiv.perm.vectors_prod_eq_one.equiv_vector G n = ((equiv.perm.vectors_prod_eq_one.vector_equiv G (n - 1)).trans (dite (n = 0) (λ (hn : n = 0), show ↥(equiv.perm.vectors_prod_eq_one G (n - 1 + 1)) ≃ ↥(equiv.perm.vectors_prod_eq_one G n), from _.mpr (equiv.equiv_of_unique ↥(equiv.perm.vectors_prod_eq_one G (0 - 1 + 1)) ↥(equiv.perm.vectors_prod_eq_one G 0))) (λ (hn : ¬n = 0), _.mpr (equiv.refl ↥(equiv.perm.vectors_prod_eq_one G n))))).symm
Equations
Rotate a vector whose product is 1.
For every prime p
dividing the order of a finite group G
there exists an element of order
p
in G
. This is known as Cauchy's theorem.
For every prime p
dividing the order of a finite additive group G
there exists an element of
order p
in G
. This is the additive version of Cauchy's theorem.
The partition corresponding to a permutation
Equations
- σ.partition = {parts := σ.cycle_type + multiset.replicate (fintype.card α - σ.support.card) 1, parts_pos := _, parts_sum := _}
3-cycles #
A three-cycle is a cycle of length 3.
Equations
- σ.is_three_cycle = (σ.cycle_type = {3})