(* modified version of sha_padding_lemmas.pad *)
Definition pad_inc (msg : list Z) : list Z :=
let n := BlockSize + Zlength msg in
msg ++ [128%Z]
++ list_repeat (Z.to_nat (-(n + 9) mod 64)) 0
++ intlist_to_Zlist ([Int.repr (n * 8 / Int.modulus); Int.repr (n * 8)]).
Definition sha_splitandpad_inc (msg : Blist) : Blist :=
bytesToBits (pad_inc (bitsToBytes msg)).

Lemma sha_h_length iv blk: length iv = c -> length blk = b ->
length (sha_h iv blk) = c.