Section DrySafety.
(* combining results from semax_to_juicy_machine and erasure_proof *)
Variable (CPROOF : CSL_proof).
Instance Sem : Semantics := ClightSemanticsForMachines.Clight_newSem (Clight.globalenv CPROOF.(CSL_prog)).
Definition ge := Clight.globalenv CPROOF.(CSL_prog).
Instance DTP : threadPool.ThreadPool.ThreadPool := Parching.DTP ge.
Instance DMS : HybridMachineSig.MachineSig := Parching.DMS ge.
Definition init_mem := proj1_sig (init_mem CPROOF).
Definition init_rmap n := m_phi (initial_jm CPROOF n).

(* Specifications: *)
Lemma init_match n : Parching.match_rmap_perm (init_rmap n) (getCurPerm init_mem, empty_map).
Lemma init_no_locks n : Parching.no_locks_perm (init_rmap n).
(**  Theorem to export. Explanation:  *)
Theorem dry_safety_initial_state (sch : HybridMachineSig.schedule) (n : nat) :
HybridMachineSig.HybridCoarseMachine.csafe
(sch, [::],
DryHybridMachine.initial_machine(Sem := Sem) (getCurPerm init_mem)
(initial_corestate CPROOF)) init_mem n.