Fixpoint loops (s: statement) : list statement :=
match s with
| Ssequence a b => loops a ++ loops b
| Sloop _ _ => [s]
| Sifthenelse _ a b => loops a ++ loops b
| _ => nil
end.

(* Specifications: *)
Lemma big_endian_integer_bytelist:
forall bl, Zlength bl = 4->
bytelist_to_intlist bl = big_endian_integer bl :: nil.
Lemma nth_big_endian_integer:
forall i bl w,
nth_error bl i = Some w ->
w = big_endian_integer
(sublist (Z.of_nat i * WORD)
(Z.succ (Z.of_nat i) * WORD)
(intlist_to_bytelist bl)).
Lemma Znth_big_endian_integer:
forall i bl,
0 <= i < Zlength bl ->
Znth i bl =
big_endian_integer
(sublist (i * WORD) (Z.succ i * WORD)
(intlist_to_bytelist bl)).