English
For any list l and natural n, rotate(l, n) = rotate'(n) when length(l) > 0, and equal otherwise; in particular, rotate and rotate' coincide for all lists with nonzero length.
Русский
Для любого списка l и натурального n, rotate(l,n) = rotate'(n) при длине > 0, и иначе; в частности, rotate и rotate' совпадают для всех списков с непустой длиной.
LaTeX
$$$\\forall \\alpha \\in \\mathsf{Type},\\ \\forall l \\in \\mathsf{List}(\\alpha),\\forall n \\in \\mathbb{N},\\ l.rotate\\ n = l.rotate'\\ n$$$
Lean4
theorem rotate'_mod (l : List α) (n : ℕ) : l.rotate' (n % l.length) = l.rotate' n :=
calc
l.rotate' (n % l.length) =
(l.rotate' (n % l.length)).rotate' ((l.rotate' (n % l.length)).length * (n / l.length)) :=
by rw [rotate'_length_mul]
_ = l.rotate' n := by rw [rotate'_rotate', length_rotate', Nat.mod_add_div]