Proof with eauto with val_renamings.
intros; destruct v; unfold Val.maketotal;
inversion Hval_obs; subst; simpl...
Qed.

(* Specifications: *)
Lemma val_obs_intofsingle:
forall f v v'
(Hval_obs: val_obs f v v'),
val_obs f (Val.maketotal (Val.intofsingle v))
(Val.maketotal (Val.intofsingle v')).
Lemma val_obs_longoffloat:
forall f v v'
(Hval_obs: val_obs f v v'),
val_obs f (Val.maketotal (Val.longoffloat v))
(Val.maketotal (Val.longoffloat v')).
Lemma val_obs_longofsingle:
forall f v v'
(Hval_obs: val_obs f v v'),
val_obs f (Val.maketotal (Val.longofsingle v))
(Val.maketotal (Val.longofsingle v')).
Lemma val_obs_mul:
forall f v1 v2 v1' v2'
(Hval_obs': val_obs f v1' v2')
(Hval_obs: val_obs f v1 v2),
val_obs f (Val.mul v1 v1') (Val.mul v2 v2').