Fixpoint tailOpt(A : Set)(n : nat)(v : Vector.t A n) : option (Vector.t A (pred n)):=
  match v with
    | [] => None
    | Vector.cons _ _ _ v => Some v
  end.

Lemma shiftOut_ls_eq : forall n ls1 ls2 v ls1' ls2', shiftOut ls1 n = Some (v, ls1') -> shiftOut ls2 n = Some (v, ls2') -> (firstn n ls1) = (firstn n ls2).