Proof with eauto 10 with val_renamings reg_renamings ge_renamings.
intros.
unfold eval_addrmode64.
destruct a, base, ofs, const; autounfold with renamings;
try destruct p; try destruct p0;
try match goal with
| [|- context[match ?Expr with _ => _ end]] =>
destruct Expr
end...
Qed.

(* Specifications: *)
Lemma val_obs_addrmode:
forall f fg g (a : addrmode) rs rs'
(Hrs_ren: regset_ren f rs rs')
(Hfg: forall b1 b2, fg b1 = Some b2 -> b1 = b2)
(Hge_wd: ge_wd fg g)
(Hincr: ren_incr fg f),
val_obs f (eval_addrmode g a rs) (eval_addrmode g a rs').
Lemma compare_ints_ren:
forall f v1 v2 v1' v2' rs rs' m m'
(Hval_obs: val_obs f v1 v1')
(Hval_obs': val_obs f v2 v2')
(Hrs_ren: regset_ren f rs rs')
(Hmem_obs_eq: mem_obs_eq f m m'),
regset_ren f (compare_ints v1 v2 rs m)
(compare_ints v1' v2' rs' m').