Commit 2025-08-18 09:17 4eba5edd

View on Github →

feat(GroupTheory/Perm/Fin): add Fin.cycleIcc and refactor cycleRange (#27014) In this PR, I define the permutation cycleIcc i j hij, which is the cycle (i i+1 .... j) leaving (0 ... i-1) and (j+1 ... n-1) unchanged. In other words, it rotates elements in [i, j] one step to the right. Also I prove some properties of cycleIcc i j hij such as the fact that it is a cycle and its cycleType is j - i. This definition is used to prove the following result:

theorem succAbove_comp_cycleIcc [NeZero n] (x : Fin (n + 1) → L) (i j : Fin (n + 1)) (eq : x i = x j) (lt : i < j)
x ∘ i.succAbove = x ∘ j.succAbove ∘ (cycleIcc hij)

More clearly, x ∘ i.succAbove and x ∘ j.succAbove are Fin n → L types. For example, when n = 6, i = 2, j = 5 and x i = x j

x ∘ i.succAbove = (x 0, x 1, x 3, x 4, x 5, x 6)
x ∘ j.succAbove = (x 0, x 1, x 2, x 3, x 4, x 6)

We have

                (x 0, x 1, x 3, x 4, x 5, x 6)
--(cycleIcc)

Estimated changes

modified theorem Fin.coe_cycleRange_of_le
modified theorem Fin.coe_cycleRange_of_lt
modified theorem Fin.cons_apply_cycleRange
modified theorem Fin.cons_comp_cycleRange
added theorem Fin.cycleIcc.trans
added def Fin.cycleIcc
added theorem Fin.cycleIcc_def_gt'
added theorem Fin.cycleIcc_def_gt
added theorem Fin.cycleIcc_def_le
added theorem Fin.cycleIcc_eq
added theorem Fin.cycleIcc_ge
added theorem Fin.cycleIcc_of_gt
added theorem Fin.cycleIcc_of_last
added theorem Fin.cycleIcc_of_lt
modified theorem Fin.cycleRange_apply
modified theorem Fin.cycleRange_mk_zero
modified theorem Fin.cycleRange_of_eq
modified theorem Fin.cycleRange_of_gt
modified theorem Fin.cycleRange_of_le
modified theorem Fin.cycleRange_of_lt
modified theorem Fin.cycleRange_self
modified theorem Fin.cycleRange_succAbove
modified theorem Fin.cycleRange_symm_succ
modified theorem Fin.cycleRange_symm_zero
modified theorem Fin.cycleType_cycleRange
added theorem Fin.isCycle_cycleIcc
modified theorem Fin.isCycle_cycleRange
modified theorem Fin.sign_cycleRange
modified theorem Fin.succAbove_cycleRange