Proof with eauto with val_renamings.
intros; destruct v; inversion Hval_obs; subst; simpl...
Qed.
Definition val_obsC f v :=
match v with
| Vptr b n => match f b with
| Some b' => Vptr b' n
| None => Vundef
end
| _ => v
end.

Lemma val_obsC_correct:
forall f v,
valid_val f v ->
val_obs f v (val_obsC f v).