Definition QuadWordRep (q:QuadWord):list val :=
  match q with (q0, q1, q2, q3) => map Vint [q0;q1;q2;q3] end.Definition SixteenWordRep (w:SixteenWord):list val :=
  match w with (q0, q1, q2, q3) => QuadWordRep q0 ++ QuadWordRep q1 ++ QuadWordRep q2 ++ QuadWordRep q3 end.Definition littleendian_of_SixteenByte (x:SixteenByte): QuadWord :=
  match x with (q0, q1, q2, q3) => (littleendian q0, littleendian q1, littleendian q2, littleendian q3) end.

(* Specifications: *)
Lemma QuadWR_length q: length (QuadWordRep q) = 4%nat.
Lemma QuadWR_zlength q: Zlength (QuadWordRep q) = 4.
Lemma SixteenWR_length s: length (SixteenWordRep s) = 16%nat.
Lemma SixteenWR_zlength s: Zlength (SixteenWordRep s) = 16.
Lemma QuadWR_int q i: (0<=i<4)%nat -> exists ii, nth i (QuadWordRep q) Vundef = Vint ii.
Lemma SixteenWR_int s i: (0<=i<16)%nat -> exists ii, nth i (SixteenWordRep s) Vundef = Vint ii.
Lemma SixteenWR_Znth_int i s: (0 <= i < 16) -> exists ii : int, Znth i (SixteenWordRep s) = Vint ii.
Lemma QuadWR_Z_int: forall (q : QuadWord) (i : Z), 0 <= i < 4 -> exists ii : int, Znth i (QuadWordRep q) = Vint ii.
Lemma SixteenWordRep_MapVint ss: exists l, SixteenWordRep ss = map Vint l.