Section CoreLanguageDry.
Context {Sem : Semantics}
{SemAx : SemAxioms}.
Existing Instance OrdinalPool.OrdinalThreadPool.
Existing Instance DryHybridMachine.dryResources.
(** Take an instance of the Dry Machine *)
Existing Instance DryHybridMachine.DryHybridMachineSig.
(** Lemmas about containsThread and coresteps *)
(** *** Lemmas about invariants preserved by coresteps*)

(** [mem_compatible] is preserved by coresteps*)
Lemma decay_compatible:
forall (tp : t)  (m m' : mem) i
(pf : containsThread tp i) (c': semC)
(Hinv: invariant tp)
(Hcompatible : mem_compatible tp m)
(Hdecay: decay (restrPermMap (DryHybridMachine.compat_th _ _ Hcompatible pf).1) m')
(Hvalid_blocks: forall b, Mem.valid_block m b -> Mem.valid_block m' b),
mem_compatible (updThread pf (Krun c') (getCurPerm m', (getThreadR pf).2)) m'.