Fixpoint repeat {A:Type}(n:nat)(x:A) : list A :=
match n with
| 0 => nil
| S n' => x :: repeat n' x
end.

Lemma move_forward_map A B d1 d2 i j (f:A->B) l :
f d1 = d2 ->
move_forward i j (map f l) d2 = map f (move_forward i j l d1).