Permutations of fin n
#
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
@[simp]
theorem
equiv.perm.decompose_fin_symm_of_refl
{n : ℕ}
(p : fin (n + 1)) :
⇑(equiv.perm.decompose_fin.symm) (p, equiv.refl (fin n)) = equiv.swap 0 p
@[simp]
theorem
equiv.perm.decompose_fin_symm_of_one
{n : ℕ}
(p : fin (n + 1)) :
⇑(equiv.perm.decompose_fin.symm) (p, 1) = equiv.swap 0 p
@[simp]
theorem
equiv.perm.decompose_fin_symm_apply_zero
{n : ℕ}
(p : fin (n + 1))
(e : equiv.perm (fin n)) :
⇑(⇑(equiv.perm.decompose_fin.symm) (p, e)) 0 = p
@[simp]
theorem
equiv.perm.decompose_fin_symm_apply_succ
{n : ℕ}
(e : equiv.perm (fin n))
(p : fin (n + 1))
(x : fin n) :
⇑(⇑(equiv.perm.decompose_fin.symm) (p, e)) x.succ = ⇑(equiv.swap 0 p) (⇑e x).succ
@[simp]
theorem
equiv.perm.decompose_fin_symm_apply_one
{n : ℕ}
(e : equiv.perm (fin (n + 1)))
(p : fin (n + 2)) :
⇑(⇑(equiv.perm.decompose_fin.symm) (p, e)) 1 = ⇑(equiv.swap 0 p) (⇑e 0).succ
@[simp]
theorem
equiv.perm.decompose_fin.symm_sign
{n : ℕ}
(p : fin (n + 1))
(e : equiv.perm (fin n)) :
⇑equiv.perm.sign (⇑(equiv.perm.decompose_fin.symm) (p, e)) = ite (p = 0) 1 (-1) * ⇑equiv.perm.sign e
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.
cycle_range
section #
Define the permutations fin.cycle_range i
, the cycle (0 1 2 ... i)
.
theorem
fin_rotate_succ
{n : ℕ} :
fin_rotate n.succ = ⇑(equiv.perm.decompose_fin.symm) (1, fin_rotate n)
fin.cycle_range i
is the cycle (0 1 2 ... i)
leaving (i+1 ... (n-1))
unchanged.
Equations
- i.cycle_range = (fin_rotate (↑i + 1)).extend_domain (equiv.of_left_inverse' ⇑((fin.cast_le _).to_embedding) coe _)
@[simp]
@[simp]
theorem
fin.succ_above_cycle_range
{n : ℕ}
(i j : fin n) :
⇑(i.succ.succ_above) (⇑(i.cycle_range) j) = ⇑(equiv.swap 0 i.succ) j.succ
@[simp]
theorem
fin.cycle_range_succ_above
{n : ℕ}
(i : fin (n + 1))
(j : fin n) :
⇑(i.cycle_range) (⇑(i.succ_above) j) = j.succ
@[simp]
@[simp]
theorem
fin.cycle_range_symm_succ
{n : ℕ}
(i : fin (n + 1))
(j : fin n) :
⇑(equiv.symm i.cycle_range) j.succ = ⇑(i.succ_above) j
@[simp]
theorem
fin.cycle_type_cycle_range
{n : ℕ}
{i : fin (n + 1)}
(h0 : i ≠ 0) :
i.cycle_range.cycle_type = {↑i + 1}