Opaque bs2nat.
Opaque Cond.

(* Specifications: *)
Lemma bs2nat_smash' : forall u v n,
bs2nat v = power 2 n ->
bs2nat (smash' u v) = power 2 (length u + n).
Lemma bs2nat_smash_bs : forall u v,
bs2nat (smash_bs u v) = power 2 (length u * length v).
Lemma Smash_correct : forall l,
bs2nat (Sem Smash l) = power 2 (length (hd nil l) * length (hd nil (tl l))).
Lemma Zero_correct_bs n l:
Sem (Zero_e n) l = nil.
Lemma Zero_correct n l:
bs2nat (Sem (Zero_e n) l) = 0.