Permutations of Fin (n + 1)
are equivalent to fixing a single
Fin (n + 1)
and permuting the remaining with a Perm (Fin n)
.
The fixed Fin (n + 1)
is swapped with 0
.
Equations
- Equiv.Perm.decomposeFin = ((finSuccEquiv n).permCongr.trans Equiv.Perm.decomposeOption).trans ((finSuccEquiv n).symm.prodCongr (Equiv.refl (Equiv.Perm (Fin n))))
Instances For
@[simp]
theorem
Equiv.Perm.decomposeFin_symm_of_refl
{n : ℕ}
(p : Fin (n + 1))
:
Equiv.Perm.decomposeFin.symm (p, Equiv.refl (Fin n)) = Equiv.swap 0 p
@[simp]
theorem
Equiv.Perm.decomposeFin_symm_of_one
{n : ℕ}
(p : Fin (n + 1))
:
Equiv.Perm.decomposeFin.symm (p, 1) = Equiv.swap 0 p
@[simp]
theorem
Equiv.Perm.decomposeFin_symm_apply_zero
{n : ℕ}
(p : Fin (n + 1))
(e : Equiv.Perm (Fin n))
:
(Equiv.Perm.decomposeFin.symm (p, e)) 0 = p
@[simp]
theorem
Equiv.Perm.decomposeFin_symm_apply_succ
{n : ℕ}
(e : Equiv.Perm (Fin n))
(p : Fin (n + 1))
(x : Fin n)
:
(Equiv.Perm.decomposeFin.symm (p, e)) x.succ = (Equiv.swap 0 p) (e x).succ
@[simp]
theorem
Equiv.Perm.decomposeFin_symm_apply_one
{n : ℕ}
(e : Equiv.Perm (Fin (n + 1)))
(p : Fin (n + 2))
:
(Equiv.Perm.decomposeFin.symm (p, e)) 1 = (Equiv.swap 0 p) (e 0).succ
@[simp]
theorem
Finset.univ_perm_fin_succ
{n : ℕ}
:
Finset.univ = Finset.map Equiv.Perm.decomposeFin.symm.toEmbedding Finset.univ
The set of all permutations of Fin (n + 1)
can be constructed by augmenting the set of
permutations of Fin n
by each element of Fin (n + 1)
in turn.
cycleRange
section #
Define the permutations Fin.cycleRange i
, the cycle (0 1 2 ... i)
.
Fin.cycleRange i
is the cycle (0 1 2 ... i)
leaving (i+1 ... (n-1))
unchanged.
Equations
- i.cycleRange = (finRotate (↑i + 1)).extendDomain (Equiv.ofLeftInverse' (⇑(Fin.castLEEmb ⋯)) (fun (x : Fin n) => ↑↑x) ⋯)
Instances For
@[simp]
theorem
Fin.succAbove_cycleRange
{n : ℕ}
(i : Fin n)
(j : Fin n)
:
i.succ.succAbove (i.cycleRange j) = (Equiv.swap 0 i.succ) j.succ
@[simp]
@[simp]
theorem
Fin.cycleRange_symm_succ
{n : ℕ}
(i : Fin (n + 1))
(j : Fin n)
:
(Equiv.symm i.cycleRange) j.succ = i.succAbove j