Proof with eauto with val_renamings.
intros.
destruct v1, v1'; inversion Hval_obs;
inversion Hval_obs'; subst; simpl; eauto with val_renamings;
destruct Archi.ptr64; simpl...
destruct (eq_block b b0); subst.
rewrite H6 in H2; inversion H2; subst.
destruct (eq_block b2 b2)...
by exfalso.
destruct (eq_block b2 b4)...
subst.
assert (b0 = b)
by (eapply Hinjective; eauto).
subst.
by exfalso.
Qed.

(* Specifications: *)
Lemma val_obs_subl:
forall f v1 v2 v1' v2'
(Hinjective: forall b1 b1' b2,
f b1 = Some b2 -> f b1' = Some b2 -> b1 = b1')
(Hval_obs': val_obs f v1' v2')
(Hval_obs: val_obs f v1 v2),
val_obs f (Val.subl v1 v1') (Val.subl v2 v2').