(** 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_valid:
forall ev ty v, eventval_match ev ty v -> eventval_valid ev.