Fixpoint nat2bs (n:nat) : bs :=
  match n with
  | 0 => nil
  | S n' => succ_bs (nat2bs n')
  end.

(* Specifications: *)
Lemma bs2nat_nil : bs2nat nil = 0.
Lemma bs2nat_false v : bs2nat (false :: v) = 2 * bs2nat v.
Lemma bs2nat_true v : bs2nat (true :: v) = 1 + 2 * bs2nat v.
Lemma bs2nat_tl : forall v, bs2nat (tl v) = div2 (bs2nat v).
Lemma bs2nat_nat2bs : forall n, bs2nat (nat2bs n) = n.