Section CONSTRUCTORS.
Variable ge: genv.
Variable fn: function.
(** Decomposition of an integer constant *)
Remark decompose_int_arm_nil:
forall N n p, decompose_int_arm N n p = nil -> n = Int.zero.
Remark decompose_int_thumb_nil:
forall N n p, decompose_int_thumb N n p = nil -> n = Int.zero.
(** Loading a constant. *)
(** Add integer immediate. *)
(* And integer immediate *)
(** Reverse sub immediate *)
(** Or immediate *)
(** Xor immediate *)

Lemma xorimm_correct:
forall r1 r2 n k rs m,
exists rs',
exec_straight ge fn (xorimm r1 r2 n k) rs m  k rs' m
/\ rs'#r1 = Val.xor rs#r2 (Vint n)
/\ forall r': preg, r' <> r1 -> if_preg r' = true -> rs'#r' = rs#r'.