(* THIS FILE CONTAINS Lemmas that DO NOT depend on CompCert or Verifiable C, and that are used in the proof of the C program but are not used in the proof of functional_prog.v. *)
Require Export sha.common_lemmas.
Require Psatz.
Global Opaque CBLOCKz LBLOCKz.
Hint Rewrite Zlength_intlist_to_bytelist : sublist.
Hint Rewrite Zlength_intlist_to_bytelist : Zlength.

Lemma Ndivide_Zdivide_length:
forall {A} n (al: list A),
0 <= n ->
(Nat.divide (Z.to_nat n) (length al) <->
(n | Zlength al)).