(* Rotation *)

Definition rot n s := drop n s ++ take n s.

(* Specifications: *)
Lemma rot0 s : rot 0 s = s.
Lemma size_rot s : size (rot n0 s) = size s.
Lemma rot_oversize n s : size s <= n -> rot n s = s.
Lemma rot_size s : rot (size s) s = s.
Lemma has_rot s a : has a (rot n0 s) = has a s.
Lemma rot_size_cat s1 s2 : rot (size s1) (s1 ++ s2) = s2 ++ s1.