(** Useful simplification tactic *)

Ltac Simplif :=
  ((rewrite nextinstr_inv by eauto with asmgen)
  || (rewrite nextinstr_inv1 by eauto with asmgen)
  || (rewrite nextinstr_nf_inv by eauto with asmgen)
  || (rewrite Pregmap.gss)
  || (rewrite nextinstr_pc)
  || (rewrite nextinstr_nf_pc)
  || (rewrite Pregmap.gso by eauto with asmgen)); auto with asmgen.Ltac Simpl := repeat Simplif.

(* Specifications: *)
Lemma decompose_int_arm_or: forall N n p x, List.fold_left Int.or (decompose_int_arm N n p) x = Int.or x n.
Lemma decompose_int_arm_xor: forall N n p x, List.fold_left Int.xor (decompose_int_arm N n p) x = Int.xor x n.
Lemma decompose_int_arm_add: forall N n p x, List.fold_left Int.add (decompose_int_arm N n p) x = Int.add x n.