Require Recdef.
Require Coq.Strings.String.
Require Coq.Strings.Ascii.
(* LINEAR-TIME FUNCTIONAL VERSION OF SHA256 *)
Function zeros (n : Z) {measure Z.to_nat n} : list Int.int :=
if Z.gtb n 0 then Int.zero :: zeros (n-1) else nil.

Lemma grab_and_process_block_length:
forall n r firstr msg r' m',
length r = 8 ->
length msg >= n ->
grab_and_process_block n r firstr msg  = (r',m') ->
length r' = 8.