Definition sha_splitandpad_blocks (msg : Blist) : list Blist :=
  toBlocks (sha_splitandpad_inc msg).

Theorem fold_hash_blocks_eq_ind : forall (l : list Blist) (iv : Blist), Forall (fun x => length x = 512%nat) l -> fold_left sha_h l iv = hash_blocks_bits _ B sha_h iv (concat l).