intuition.
specialize (append_splitVector_h _ _ x); intuition.
rewrite <- H in H0.
simpl in *.
trivial.
Qed.

(* Specifications: *)
Theorem shiftOut_plus :
forall (n1 n2 : nat) s b s',
shiftOut s (n1 + n2) = Some (b, s') ->
exists b1 b2 s'',
shiftOut s n1 = Some (b1, s'') /\
shiftOut s'' n2 = Some (b2, s') /\
splitVector n1 n2 b = (b1, b2).
Theorem shiftOut_plus :
forall (n1 n2 : nat) s b s',
shiftOut s (n1 + n2) = Some (b, s') ->
exists b1 b2 s'',
shiftOut s n1 = Some (b1, s'') /\
shiftOut s'' n2 = Some (b2, s') /\
splitVector n1 n2 b = (b1, b2).