reflexivity. Qed.
Definition hashblocks: list int -> list int -> list int:= SHA256.hash_blocks.
Definition d := 16%nat.
Definition HBS_eq : forall r msg : list int,
hashblocks r msg =
match msg with
| List.nil => r
| _ :: _ => hashblocks (hashblock r (firstn d msg)) (skipn d msg)
end := SHA256.hash_blocks_equation.

Lemma GAP: forall bits, NPeano.Nat.divide d (length (gap (bitsToBytes bits))).
intros. rewrite <- pad_compose_equal. apply gap_divide16. Qed.