Proof with eauto with val_renamings.
intros.
destruct v1, v1'; inversion Hval_obs;
inversion Hval_obs'; subst; simpl...
destruct (Int.ltu i0 Int.iwordsize)...
Qed.

(* Specifications: *)
Lemma val_obs_shr:
forall f v1 v2 v1' v2'
(Hval_obs': val_obs f v1' v2')
(Hval_obs: val_obs f v1 v2),
val_obs f (Val.shr v1 v1') (Val.shr v2 v2').
Lemma val_obs_shru:
forall f v1 v2 v1' v2'
(Hval_obs': val_obs f v1' v2')
(Hval_obs: val_obs f v1 v2),
val_obs f (Val.shru v1 v1') (Val.shru v2 v2').
Lemma val_obs_ror:
forall f v1 v2 ofs
(Hval_obs: val_obs f v1 v2),
val_obs f (Val.ror v1 (Vint ofs)) (Val.ror v2 (Vint ofs)).