Proof with eauto with val_renamings.
intros.
destruct v; inversion Hval_obs; subst...
Qed.

(* Specifications: *)
Lemma val_obs_trans:
forall (v v' v'' : val) (f f' f'' : memren),
val_obs f v v'' ->
val_obs f' v v' ->
(forall b b' b'' : block,
f b = Some b'' ->
f' b = Some b' ->
f'' b' = Some b'') ->
val_obs f'' v' v''.