Module Type PRACTICAL_CLIGHT_SEPARATION_HOARE_LOGIC.
Declare Module CSHL_MinimumLogic: MINIMUM_CLIGHT_SEPARATION_HOARE_LOGIC.

Axiom semax_fun_id:
forall {CS: compspecs} {Espec: OracleKind},
forall id f Delta P Q c,
(var_types Delta) ! id = None ->
(glob_specs Delta) ! id = Some f ->
(glob_types Delta) ! id = Some (type_of_funspec f) ->
@semax CS Espec Delta (P && `(func_ptr f) (eval_var id (type_of_funspec f)))
c Q ->
@semax CS Espec Delta P c Q.