Instance ClightAxioms : @CoreLanguage.SemAxioms (ClightSem ge).

(* Specifications: *)
Lemma CoreSafe_star: forall n U tr tp m tid (c : @semC (ClightSem ge)) c' tp' m' ev (HschedN: schedPeek U = Some tid) (Htid: containsThread tp tid) (Hm: fst (getThreadR(resources:=dryResources) Htid) = getCurPerm m) (Hcmpt: mem_compatible tp m) (Hinv: invariant tp) (Hcode: getThreadC Htid = Krun c) (Hcoresteps: ev_star ge c m ev c' m') (Htp': tp' = updThread Htid (Krun c') (getCurPerm m', snd (getThreadR Htid))) (Hsafe: csafe(ThreadPool:= OrdinalPool.OrdinalThreadPool(Sem:=ClightSem ge)) (machineSig:= HybridMachine.DryHybridMachine.DryHybridMachineSig) (yield U, seq.cat tr (map (fun mev => Events.internal tid mev) ev), tp') (diluteMem m') n), csafe(ThreadPool:= OrdinalPool.OrdinalThreadPool(Sem:=ClightSem ge)) (machineSig:= HybridMachine.DryHybridMachine.DryHybridMachineSig) (U, tr, tp) m n.
Lemma CoreSafe_plus : forall n U tr tp m tid (c : @semC (ClightSem ge)) c' tp' m' ev m1 (HschedN: schedPeek U = Some tid) (Htid: containsThread tp tid) (Hcmpt: mem_compatible tp m) (Hrestrict_pmap: restrPermMap (proj1 (compat_th _ _ Hcmpt Htid)) = m1) (Hinv: invariant tp) (Hcode: getThreadC Htid = Krun c) (Hcoresteps: ev_plus ge c m1 ev c' m') (Htp': tp' = updThread Htid (Krun c') (getCurPerm m', snd (getThreadR Htid))) (Hsafe: csafe(ThreadPool:= OrdinalPool.OrdinalThreadPool(Sem:=ClightSem ge)) (machineSig:= HybridMachine.DryHybridMachine.DryHybridMachineSig) (yield U, seq.cat tr (map (fun mev => Events.internal tid mev) ev), tp') (diluteMem m') n), csafe(ThreadPool:= OrdinalPool.OrdinalThreadPool(Sem:=ClightSem ge)) (machineSig:= HybridMachine.DryHybridMachine.DryHybridMachineSig) (U, tr, tp) m (S n).
Lemma type_of_fundef_fun: forall f, exists targs tres cc, Clight.type_of_fundef f = Tfunction targs tres cc.