Module CSHL_Defs := DerivedDefs(CSHL_Def).
(***************** SEMAX_LEMMAS ****************)
(* THIS RULE FROM semax_switch *)
(* THESE RULES FROM semax_straight *)
(* THESE RULES FROM semax_lemmas *)
(* THESE RULES FROM semax_ext *)
(*TODO: What's the preferred way to expose these defs in the SL interface?*)

Axiom semax_ext_void:
forall  (Espec : OracleKind)
(ext_link: Strings.String.string -> ident)
(id : Strings.String.string) (ids : list ident) sig (sig' : signature)
cc A P Q NEP NEQ (fs : funspecs),
let f := mk_funspec (sig, tvoid) cc A P Q NEP NEQ in
In (ext_link id,f) fs ->
funspecs_norepeat fs ->
ids = fst (split sig) ->
sig' = mksignature (map typ_of_type (map snd sig)) None cc ->
@semax_external (add_funspecs Espec ext_link fs) ids (EF_external id sig') _ P Q.