Disjoint cycle notation #
A permutation of a finite type is written in disjoint cycle notation as a list of cycles, each
cycle a list of points traversed in order, such that no point is listed twice and every cycle has
at least two points. Fixed points are omitted, and the identity is the empty list of cycles. The
cycle l denotes List.formPerm l, sending each listed point to the next and the last back to
the first, and the notation denotes the product of its cycles. The cycles are
disjoint, so they commute and the product does not depend on their order.
Equiv.Perm.IsCycleNotation σ p says that p is a disjoint cycle notation for σ. The lengths
of the listed cycles are then the cycle type of σ, the listed points are its support, and the
full cycle partition of σ is recovered by padding the lengths with one part equal to one for
each point not listed. Reversing every cycle gives a notation for the inverse, and every
permutation has a notation.
Main definitions #
Equiv.Perm.IsCycleNotation:pis a disjoint cycle notation forσ.
Main results #
Equiv.Perm.IsCycleNotation.cycleType_eq: the cycle type is the multiset of listed lengths.Equiv.Perm.IsCycleNotation.parts_partition_eq: the full cycle partition is the listed lengths padded by fixed points.Equiv.Perm.IsCycleNotation.inv: reversing every cycle writes the inverse.Equiv.Perm.exists_isCycleNotation: every permutation has a disjoint cycle notation.
References #
The proof of Equiv.Perm.IsCycleNotation.cycleType_eq follows the cycle-type computation in the
construction half of Mathlib's Equiv.Perm.exists_with_cycleType_iff
(Mathlib/GroupTheory/Perm/Cycle/PossibleTypes.lean).
p is a disjoint cycle notation for σ: no point is listed twice, every listed cycle has
at least two points, and σ is the product of the cycles List.formPerm l for l ∈ p. Fixed
points of σ are not listed, and the identity is written as the empty list.
No point is listed twice.
Every listed cycle has at least two points.
The permutation is the product of the listed cycles.
Instances For
The empty list of cycles writes exactly the identity.
Every listed cycle lists distinct points.
The listed cycles are disjoint permutations.
Every listed cycle is a cycle.
Dropping the first cycle of a disjoint cycle notation leaves a notation for the product of the remaining cycles.
A point is moved by σ exactly when it is listed.
Inverse in cycle notation: reversing every cycle of a disjoint cycle notation for σ gives
one for σ⁻¹.
Every permutation has a disjoint cycle notation.
The support of a permutation is the set of listed points.
The cycle type is read off a disjoint cycle notation: it is the multiset of lengths of the listed cycles.
The number of points moved by a permutation is the total length of the listed cycles.
The full cycle partition from a disjoint cycle notation: the lengths of the listed cycles, padded by one part equal to one for each point that is not listed.