End AES_LL_Spec_Type.
Module Export AES_LL_Spec : AES_LL_Spec_Type.
(* arr: list of 4 bytes *)
Definition get_uint32_le (arr: list Z) (i: Z) : int :=
(Int.or (Int.or (Int.or
(Int.repr (Znth  i    arr 0))
(Int.shl (Int.repr (Znth (i+1) arr 0)) (Int.repr  8)))
(Int.shl (Int.repr (Znth (i+2) arr 0)) (Int.repr 16)))
(Int.shl (Int.repr (Znth (i+3) arr 0)) (Int.repr 24))).

(* Specifications: *)
Lemma get_uint32_le_def: get_uint32_le = fun (arr: list Z) (i: Z) =>
(Int.or (Int.or (Int.or
(Int.repr (Znth  i    arr 0))
(Int.shl (Int.repr (Znth (i+1) arr 0)) (Int.repr  8)))
(Int.shl (Int.repr (Znth (i+2) arr 0)) (Int.repr 16)))
(Int.shl (Int.repr (Znth (i+3) arr 0)) (Int.repr 24))).