(* Surgery: drop, take, rot, rotr.                                        *)

(* drop_nth and take_nth below do NOT use the default n0, because the "n"  *)
(* can be inferred from the condition, whereas the nth default value x0    *)
(* will have to be given explicitly (and this will provide "d" as well).   *)
Lemma drop_nth n s : n < size s -> drop n s = nth s n :: drop n.+1 s.