Cyclic permutations #
This file develops the theory of cycles in permutations.
Main definitions #
In the following, f : Equiv.Perm β.
- Equiv.Perm.SameCycle:- f.SameCycle x ywhen- xand- yare in the same cycle of- f.
- Equiv.Perm.IsCycle:- fis a cycle if any two nonfixed points of- fare related by repeated applications of- f, and- fis not the identity.
- Equiv.Perm.IsCycleOn:- fis a cycle on a set- swhen any two points of- sare related by repeated applications of- f.
The following two definitions require that β is a Fintype:
- Equiv.Perm.cycleOf:- f.cycleOf xis the cycle of- fthat- xbelongs to.
- Equiv.Perm.cycleFactors:- f.cycleFactorsis a list of disjoint cyclic permutations that multiply to- f.
Main results #
- This file contains several closure results:
- closure_isCycle: The symmetric group is generated by cycles
- closure_cycle_adjacent_swap: The symmetric group is generated by a cycle and an adjacent transposition
- closure_cycle_coprime_swap: The symmetric group is generated by a cycle and a coprime transposition
- closure_prime_cycle_swap: The symmetric group is generated by a prime cycle and a transposition
 
Notes #
Equiv.Perm.IsCycle and Equiv.Perm.IsCycleOn are different in three ways:
The equivalence relation indicating that two points are in the same cycle of a permutation.
Equations
- Equiv.Perm.SameCycle f x y = ∃ i, ↑(f ^ i) x = y
Instances For
The setoid defined by the SameCycle relation.
Equations
- Equiv.Perm.SameCycle.setoid f = { r := Equiv.Perm.SameCycle f, iseqv := (_ : Equivalence (Equiv.Perm.SameCycle f)) }
Instances For
Alias of the reverse direction of Equiv.Perm.sameCycle_inv.
Alias of the forward direction of Equiv.Perm.sameCycle_inv.
Alias of the forward direction of Equiv.Perm.sameCycle_apply_left.
Alias of the reverse direction of Equiv.Perm.sameCycle_apply_left.
Alias of the reverse direction of Equiv.Perm.sameCycle_apply_right.
Alias of the forward direction of Equiv.Perm.sameCycle_apply_right.
Alias of the reverse direction of Equiv.Perm.sameCycle_inv_apply_left.
Alias of the forward direction of Equiv.Perm.sameCycle_inv_apply_left.
Alias of the reverse direction of Equiv.Perm.sameCycle_inv_apply_right.
Alias of the forward direction of Equiv.Perm.sameCycle_inv_apply_right.
Alias of the reverse direction of Equiv.Perm.sameCycle_pow_left.
Alias of the forward direction of Equiv.Perm.sameCycle_pow_left.
Alias of the forward direction of Equiv.Perm.sameCycle_pow_right.
Alias of the reverse direction of Equiv.Perm.sameCycle_pow_right.
Alias of the forward direction of Equiv.Perm.sameCycle_zpow_left.
Alias of the reverse direction of Equiv.Perm.sameCycle_zpow_left.
Alias of the reverse direction of Equiv.Perm.sameCycle_zpow_right.
Alias of the forward direction of Equiv.Perm.sameCycle_zpow_right.
Alias of the reverse direction of Equiv.Perm.sameCycle_subtypePerm.
Alias of the reverse direction of Equiv.Perm.sameCycle_extendDomain.
Equations
- One or more equations did not get rendered due to their size.
A cycle is a non identity permutation where any two nonfixed points of the permutation are related by repeated application of the permutation.
Equations
- Equiv.Perm.IsCycle f = ∃ x, ↑f x ≠ x ∧ ∀ ⦃y : α⦄, ↑f y ≠ y → Equiv.Perm.SameCycle f x y
Instances For
The subgroup generated by a cycle is in bijection with its support
Equations
- One or more equations did not get rendered due to their size.
Instances For
Unlike support_congr, which assumes that ∀ (x ∈ g.support), f x = g x), here
we have the weaker assumption that ∀ (x ∈ f.support), f x = g x.
If two cyclic permutations agree on all terms in their intersection, and that intersection is not empty, then the two cyclic permutations must be equal.
A permutation is a cycle on s when any two points of s are related by repeated application
of the permutation. Note that this means the identity is a cycle of subsingleton sets.
Equations
- Equiv.Perm.IsCycleOn f s = (Set.BijOn (↑f) s s ∧ ∀ ⦃x : α⦄, x ∈ s → ∀ ⦃y : α⦄, y ∈ s → Equiv.Perm.SameCycle f x y)
Instances For
Alias of the reverse direction of Equiv.Perm.isCycleOn_one.
Alias of the forward direction of Equiv.Perm.isCycleOn_one.
Alias of the reverse direction of Equiv.Perm.isCycleOn_inv.
Alias of the forward direction of Equiv.Perm.isCycleOn_inv.
This lemma demonstrates the relation between Equiv.Perm.IsCycle and Equiv.Perm.IsCycleOn
in non-degenerate cases.
Note that the identity satisfies IsCycleOn for any subsingleton set, but not IsCycle.
Note that the identity is a cycle on any subsingleton set, but not a cycle.
f.cycleOf x is the cycle of the permutation f to which x belongs.
Equations
- Equiv.Perm.cycleOf f x = ↑Equiv.Perm.ofSubtype (Equiv.Perm.subtypePerm f (_ : ∀ (x_1 : α), Equiv.Perm.SameCycle f x x_1 ↔ Equiv.Perm.SameCycle f x (↑f x_1)))
Instances For
x is in the support of f iff Equiv.Perm.cycle_of f x is a cycle.
Given a list l : List α and a permutation f : perm α whose nonfixed points are all in l,
recursively factors f into cycles.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Factors a permutation f into a list of disjoint cyclic permutations that multiply to f.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Factors a permutation f into a list of disjoint cyclic permutations that multiply to f,
without a linear order.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Factors a permutation f into a Finset of disjoint cyclic permutations that multiply to f.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The product of cycle factors is equal to the original f : perm α.
Two permutations f g : perm α have the same cycle factors iff they are the same.
If c is a cycle, a ∈ c.support and c is a cycle of f, then c = f.cycleOf a
Fixed points #
We can partition the square s ×ˢ s into shifted diagonals as such:
01234
40123
34012
23401
12340
The diagonals are given by the cycle f.