(** Useful simplification tactic *)

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

(* Specifications: *)
Lemma loadv_offset_ptr: forall chunk m a delta v, Mem.loadv chunk m (Val.offset_ptr a delta) = Some v -> Mem.loadv chunk m (Val.add a (Vint (Ptrofs.to_int delta))) = Some v.
Lemma storev_offset_ptr: forall chunk m a delta v m', Mem.storev chunk m (Val.offset_ptr a delta) v = Some m' -> Mem.storev chunk m (Val.add a (Vint (Ptrofs.to_int delta))) v = Some m'.