Module Type AES_LL_Spec_Type.
(* arr: list of 4 bytes *)
Parameter get_uint32_le: list Z -> Z -> int.
(* outputs a list of 4 bytes *)
Parameter put_uint32_le: int -> list int.
Parameter output_four_ints_as_bytes: four_ints -> list int.
Parameter byte0: int -> Z.
Parameter byte1: int -> Z.
Parameter byte2: int -> Z.
Parameter byte3: int -> Z.

Axiom byte3_def: byte3 = fun (x : int) =>
(Z.land (Int.unsigned (Int.shru x (Int.repr 24))) (Int.unsigned (Int.repr 255))).