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.

(*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.