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:
forall  (Espec : OracleKind)
(ext_link: Strings.String.string -> ident)
(id : Strings.String.string) (ids : list ident) (sig : funsig) (sig' : signature)
cc A P Q NEP NEQ (fs : funspecs),
let f := mk_funspec sig cc A P Q NEP NEQ in
In (ext_link id,f) fs ->
funspecs_norepeat fs ->
ids = fst (split (fst sig)) ->
sig' = funsig2signature sig cc ->
@semax_external (add_funspecs Espec ext_link fs) ids (EF_external id sig') _ P Q.