Skip to content

Commit a55b976

Browse files
committed
feat(Perm/Fin): add lemmas about cycleRange and insertNth (leanprover-community#24980)
1 parent f23bfe0 commit a55b976

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

Mathlib/GroupTheory/Perm/Fin.lean

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,29 @@ theorem cycleRange_symm_succ {n : ℕ} (i : Fin (n + 1)) (j : Fin n) :
256256
i.cycleRange.symm j.succ = i.succAbove j :=
257257
i.cycleRange.injective (by simp)
258258

259+
@[simp]
260+
theorem insertNth_apply_cycleRange_symm {n : ℕ} {α : Type*} (p : Fin (n + 1)) (a : α)
261+
(x : Fin n → α) (j : Fin (n + 1)) :
262+
(p.insertNth a x : _ → α) (p.cycleRange.symm j) = (Fin.cons a x : _ → α) j := by
263+
cases j using Fin.cases <;> simp
264+
265+
@[simp]
266+
theorem insertNth_comp_cycleRange_symm {n : ℕ} {α : Type*} (p : Fin (n + 1)) (a : α)
267+
(x : Fin n → α) : (p.insertNth a x ∘ p.cycleRange.symm : _ → α) = Fin.cons a x := by
268+
ext j
269+
simp
270+
271+
@[simp]
272+
theorem cons_apply_cycleRange {n : ℕ} {α : Type*} (a : α) (x : Fin n → α)
273+
(p : Fin (n + 1)) (j : Fin (n + 1)) :
274+
(Fin.cons a x : _ → α) (p.cycleRange j) = (p.insertNth a x : _ → α) j := by
275+
rw [← insertNth_apply_cycleRange_symm, Equiv.symm_apply_apply]
276+
277+
@[simp]
278+
theorem cons_comp_cycleRange {n : ℕ} {α : Type*} (a : α) (x : Fin n → α) (p : Fin (n + 1)) :
279+
(Fin.cons a x : _ → α) ∘ p.cycleRange = p.insertNth a x := by
280+
ext; simp
281+
259282
theorem isCycle_cycleRange {n : ℕ} [NeZero n] {i : Fin n} (h0 : i ≠ 0) :
260283
IsCycle (cycleRange i) := by
261284
obtain ⟨i, hi⟩ := i

0 commit comments

Comments
 (0)