A Lyndon word is strictly smaller than all its rotations. Watch Duval's i/j/k pointers scan the string and emit the non-increasing Lyndon factors. Switch to rotation mode to see the smallest cyclic rotation via s+s.
s[k] <= s[j] drives the loop: equal → advance k (period continues); s[k] < s[j] → reset k=i (candidate extends); s[k] > s[j] → emit Lyndon factors of length (j−k).s + s; the start of the last factor before the dashed midline marks the smallest cyclic rotation.
See junior.md and professional.md for the proofs.