Definition natToBv(k : nat)(v : nat) : Bvector k :=
  N2Bv_gen k (N.of_nat v).

(* Specifications: *)
Lemma Bv2N_app_false : forall n1 n2 (v1 : Bvector n1), Bv2N (n1 + n2) (Vector.append v1 (Bvect_false n2)) = Bv2N n1 v1.
Lemma Bv2N_N2Bv_gen : forall n0 k, n0 >= N.size_nat k -> Bv2N n0 (N2Bv_gen n0 k) = k.
Lemma bvToNat_natToBv_inverse : forall n k, n >= lognat k -> bvToNat (natToBv n k) = k.
Lemma Nat_size_nat_monotonic : forall n1 n2, (n1 < n2)%N -> (N.size_nat n1 <= N.size_nat n2)%nat.
Lemma lognat_monotonic : forall n1 n2, (n1 < n2 -> lognat n1 <= lognat n2)%nat.
Lemma natToBv_bvToNat_inverse : forall n k, (natToBv n (bvToNat k)) = k.
Lemma bvToNat_natToBv_eq : forall n (v : Bvector n) k, bvToNat v = k -> v = natToBv n k.