induction ls1; intuition; simpl in *.
destruct n; destruct ls2; try discriminate; trivial.
destruct n.
discriminate.
case_eq (shiftOut (ls1 ++ ls2) n); intuition.
rewrite H0 in H.
destruct p.
discriminate.
rewrite H0 in H.
erewrite IHls1.
trivial.
eauto.
Qed.

(* Specifications: *)
Lemma BVxor_same_id : forall n (v : Bvector n),
BVxor n v v = Bvect_false n.