Definition init_threadpool :=
@initial_machine (Clight_newSem ge)
(@OrdinalPool.OrdinalThreadPool dryResources (Clight_newSem ge))
(getCurPerm init_mem) (initial_corestate CPROOF).
Transparent getThreadC.

(* Specifications: *)
Lemma init_mem_ok: mem_ok init_threadpool init_mem.
Lemma Clight_new_Clight_safety:
(forall sch n,
csafe
(Sem := Clight_newSem ge)
(ThreadPool:= threadPool.OrdinalPool.OrdinalThreadPool(Sem:=Clight_newSem ge))
(machineSig:= HybridMachine.DryHybridMachine.DryHybridMachineSig)
(sch, nil,
DryHybridMachine.initial_machine
(Sem := Clight_newSem ge)
(permissions.getCurPerm init_mem)
(initial_corestate CPROOF)) init_mem n) ->
forall sch n,
csafe
(Sem := ClightSem ge)
(ThreadPool:= threadPool.OrdinalPool.OrdinalThreadPool(Sem:=ClightSem ge))
(machineSig:= HybridMachine.DryHybridMachine.DryHybridMachineSig)
(sch, nil, (DryHybridMachine.initial_machine
(Sem := ClightSem ge)
(permissions.getCurPerm init_mem)
initial_Clight_state)) init_mem n.