Section X86WD.
Variable f: memren.
Definition regset_wd rs : Prop :=
forall r, valid_val f (Pregmap.get r rs).
Definition core_wd c : Prop :=
match c with State rs _ => regset_wd rs end.
Definition ge_wd (the_ge: genv) : Prop :=
(forall b, Maps.PTree.get b (genv_defs the_ge) ->
f b) /\
(forall id ofs v, Senv.symbol_address the_ge id ofs = v ->
valid_val f v).
End X86WD.
(* Lemma decode_longs_valid_val: forall f vals tys, valid_val_list f vals -> valid_val_list f (val_casted.decode_longs tys vals). *)
Hint Extern 1 (valid_val _ (@Pregmap.set _ _ _ _ _)) => eapply regset_wd_set : wd.
Hint Resolve regset_wd_set regset_wd_set_res : wd.

(*NOTE: Do i use that?*)
Lemma valid_val_reg_set:
forall f rs r r' v,
valid_val f v ->
regset_wd f rs ->
valid_val f (rs # r <- v r').