Proof with eauto with reg_renamings val_renamings.
intros.
inversion Harg; subst.
exists (rs' (preg_of r)).
split...
constructor.
pose proof (strong_obs_eq Hobs_eq).
pose proof (injective (weak_obs_eq Hobs_eq)).
eapply loadv_val_obs in H0...
destruct H0 as [arg' [Hloadv' Hval_obs]].
exists arg'; split; auto.
econstructor; eauto.
Qed.

(* Specifications: *)
Lemma extcall_arg_pair_ren:
forall f rs rs' m m' locs arg
(Hrs_ren: regset_ren f rs rs')
(Hobs_eq: mem_obs_eq f m m')
(Harg: extcall_arg_pair rs m locs arg),
exists arg',
extcall_arg_pair rs' m' locs arg' /\
val_obs f arg arg'.