Proof with eauto with val_renamings.
intros.
destruct v1, v2; simpl in *; try discriminate.
match goal with
| [H: match ?Expr with _ => _ end = _ |- _] =>
destruct Expr
end; try discriminate.
inversion H...
Qed.

Lemma val_obs_of_bool:
forall f b,
val_obs f (Val.of_bool b) (Val.of_bool b).