Proof with eauto with val_renamings.
intros.
destruct v1, v2; simpl in *; try discriminate.
destruct (Int64.eq i0 Int64.zero); try discriminate.
inversion H...
Qed.

(* Specifications: *)
Lemma val_obs_modlu_id:
forall f v1 v2 v,
Val.modlu v1 v2 = Some v ->
val_obs f v v.
Lemma divls_ren:
forall f v1 v2 v1' v2'
(Hval_obs: val_obs f v1 v1')
(Hval_obs': val_obs f v2 v2'),
Val.divls v1 v2 = Val.divls v1' v2'.
Lemma modls_ren:
forall f v1 v2 v1' v2'
(Hval_obs: val_obs f v1 v1')
(Hval_obs': val_obs f v2 v2'),
Val.modls v1 v2 = Val.modls v1' v2'.
Lemma val_obs_divls_id:
forall f v1 v2 v,
Val.divls v1 v2 = Some v ->
val_obs f v v.