(** Validity *)
Definition eventval_valid (ev: eventval) : Prop :=
match ev with
| EVint _ => True
| EVlong _ => True
| EVfloat _ => True
| EVsingle _ => True
| EVptr_global id ofs => Senv.public_symbol ge id = true
end.
Definition eventval_type (ev: eventval) : typ :=
match ev with
| EVint _ => Tint
| EVlong _ => Tlong
| EVfloat _ => Tfloat
| EVsingle _ => Tsingle
| EVptr_global id ofs => Tptr
end.

Lemma eventval_match_same_type:
forall ev1 ty v1 ev2 v2,
eventval_match ev1 ty v1 -> eventval_match ev2 ty v2 -> eventval_type ev1 = eventval_type ev2.