Definition SixteenWordRepI (w : SixteenWord) :=
  match w with (q0, q1, q2, q3) =>
    QuadWordRepI q0 ++ QuadWordRepI q1 ++ QuadWordRepI q2 ++ QuadWordRepI q3
  end.

(* Specifications: *)
Lemma SixteenWordRepI_SixteenWordRep w: SixteenWordRep w = map Vint (SixteenWordRepI w).
Lemma QuadWordRepI_length s: length (QuadWordRepI s) = 4%nat.
Lemma SixteenWordRepI_length s: length (SixteenWordRepI s) = 16%nat.
Lemma QuadByte2ValList_bytes q: exists bytes, length bytes = 4%nat /\ QuadByte2ValList q = map Vint (map Int.repr (map Byte.unsigned bytes)).
Lemma SixteenByte2ValList_bytes N: exists bytes, length bytes = 16%nat /\ SixteenByte2ValList N = map Vint (map Int.repr (map Byte.unsigned bytes)).
Lemma QuadByte2ValList_ints q: exists ints, length ints = 4%nat /\ QuadByte2ValList q = map Vint ints.
Lemma SixteenByte2ValList_ints N: exists ints, length ints = 16%nat /\ SixteenByte2ValList N = map Vint ints.
Lemma QuadChunks2ValList_bytes: forall l, exists bytes, length bytes = (4*length l)%nat /\ QuadChunks2ValList l = map Vint (map Int.repr (map Byte.unsigned bytes)).