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*)

Lemma decay_invariant:
forall tp m m1 m1' i (pf: containsThread tp i) c
(Hinv : invariant tp)
(Hcompatible : mem_compatible tp m)
(Hrestrict_pmap : restrPermMap (Hcompatible i pf)#1 = m1)
(Hdecay: decay m1 m1'),
invariant (updThread pf (Krun c) (getCurPerm m1', (getThreadR pf)#2)).