Opaque generate_word.
Definition c48 := 48%nat. Opaque c48.

(* Specifications: *)
Lemma generate_word_W:
forall block n
(LB: length block = 16%nat),
0 <= n < 64 ->
nthi (rev (generate_word (rev block) 48)) n =
W (nthi block) n.
Lemma process_block_hash_block:
forall regs block,
length regs = 8%nat ->
length block = 16%nat ->
process_block regs (rev block) = hash_block regs block.
Lemma process_msg_hash_blocks:
forall regs blocks,
(16 | Zlength blocks) ->
length regs = 8%nat ->
process_msg regs blocks = hash_blocks regs blocks.
Lemma SHA_256'_eq:  SHA_256' = SHA_256.