Abort.
(* Todo : we need a general theorem that covers these sorts of facts.  Something like: shiftOut s n1 = Some(_, s1) -> shiftOut s1 n2 = x -> shiftOut s (n1 + n2) = x *)

(* Specifications: *)
Theorem shiftOut_S : forall (n : nat)(s s1 s2 : Blist)(v1 : Bvector 1)(v2 : Bvector n),
shiftOut s 1 = Some (v1, s1) ->
shiftOut s1 n = Some (v2, s2) ->
shiftOut s (S n) = Some (Vector.cons _ (Vector.hd v1) _  v2, s2).