Definition bitlength (hashed: list int) (data: list byte) : Z :=
((Zlength hashed * WORD + Zlength data) * 8)%Z.

(* Specifications: *)
Lemma bitlength_eq:
forall hashed data,
bitlength hashed data = s256a_len (S256abs hashed data).
Lemma S256abs_recombine:
forall a,
S256abs (s256a_hashed a) (s256a_data a) = a.
Lemma bytelist_to_intlist_app:
forall a b,
(WORD | Zlength a) ->
bytelist_to_intlist (a++b) = bytelist_to_intlist a ++ bytelist_to_intlist b.
Lemma round_range:
forall {A} (a: list A) (N:Z),
N > 0 ->
0 <= Zlength a / N * N <= Zlength a.
Lemma CBLOCKz_gt: CBLOCKz > 0.
Lemma bytelist_to_intlist_inj:
forall a b,
(WORD | Zlength a) ->
(WORD | Zlength b) ->
bytelist_to_intlist a = bytelist_to_intlist b ->
a=b.