Definition initial_machine pmap c := mkPool (Krun c) (pmap, empty_map).
Definition init_mach (pmap : option res) (m: mem)
(ms:thread_pool) (m' : mem) (v:val) (args:list val) : Prop :=
exists c, semantics.initial_core semSem 0 m c m' v args /\
ms = mkPool (Krun c) (getCurPerm m', empty_map).
Set Printing All.
Section HybDryMachineLemmas.

(* Specifications: *)
Lemma build_delta_content_restr: forall d m p Hlt,
build_delta_content d (@restrPermMap p m Hlt) = build_delta_content d m.
(*TODO: This lemma should probably be moved. *)
Lemma threads_canonical:
forall ds m i (cnt:containsThread ds i),
mem_compatible ds m ->
isCanonical (getThreadR cnt).1 /\
isCanonical (getThreadR cnt).2.