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. *)

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