Proof with eauto with wd.
intros.
inversion Harg; subst;
eapply extcall_arg_valid in H; eauto.
eapply extcall_arg_valid in H0; eauto...
Qed.

(* Specifications: *)
Lemma extcall_arguments_valid:
forall f m ef args rs
(Hexternal: extcall_arguments rs m (ef_sig ef) args)
(Hrs_wd: regset_wd f rs)
(Hmem_wd : valid_mem m)
(Hobs_eq: domain_memren f m),
valid_val_list f args.
Lemma free_wd_domain :
forall (m m' : mem) b lo hi (f : memren),
domain_memren f m ->
Mem.free m b lo hi = Some m' ->
valid_mem m ->
valid_mem m' /\ domain_memren f m'.
Lemma exec_instr_wd:
forall (g : genv) (fn : function) (i : instruction) (rs rs': regset)
(m m' : mem) (f fg: memren) loader
(Hmem_wd: valid_mem m)
(Hrs_wd: regset_wd f rs)
(Hge_wd: ge_wd fg g)
(Hincr: ren_domain_incr fg f)
(Hdomain: domain_memren f m)
(Hexec: exec_instr g fn i rs m = Next rs' m'),
valid_mem m' /\
(exists f' : memren, ren_domain_incr f f' /\ domain_memren f' m') /\
(forall f' : memren,
domain_memren f' m' -> core_wd f' (State rs' loader)).