Definition padlen' (n: Z) : list Int.int :=
     let q := (n+8)/64*16 + 15 - (n+8)/4   (* number of zero-pad words *)
      in zeros q ++ [Int.repr (n * 8 / Int.modulus); Int.repr (n * 8)].

Lemma generate_word_plus: forall msg a b, (16 <= length msg)%nat -> generate_word msg (a+b) = generate_word (generate_word msg a) b.