Definition semax'  := HORec semax_.Definition semax vars (G: funspecs) (P: assert) (k: control) : Prop :=
       typecheck vars k = true /\ forall n,  semax' (SemaxArg vars (fun s => P s && funassert G) k) n.Definition semax_func (G: funspecs) (p: program) (G': funspecs) :=
    match_specs p G' /\
    forall n, believe_all semax' G p G' n.

Lemma semax_G: forall vars G P c, semax vars G (fun s => P s && funassert G) c -> semax vars G P c.