unfold lengthbv in |- *. simple induction v. simple induction w. intros. case cin. simpl in |- *. trivial.
simpl in |- *. trivial.
intros. absurd (length (nil:list bool) = length (a :: l)).
simpl in |- *. discriminate. exact H0. simple induction w. simpl in |- *. intros. discriminate H0.
intros. simpl in |- *. rewrite H. trivial. generalize H1. simpl in |- *. auto.
Qed.

(* Specifications: *)
Lemma BV_full_adder_carry_sym :
forall (v w : BV) (cin : bool),
BV_full_adder_carry v w cin = BV_full_adder_carry w v cin.