Section ThreadPoolWF.
Context {Sem : Semantics}.
Existing Instance DryHybridMachine.dryResources.
Existing Instance OrdinalPool.OrdinalThreadPool.
(** Take an instance of the Dry Machine *)
Existing Instance DryHybridMachine.DryHybridMachineSig.

Lemma invariant_decr:
forall tp c pmap i (cnti: containsThread tp i)
(Hinv: invariant tp)
(Hdecr1: forall b ofs,
Mem.perm_order'' ((getThreadR cnti).1 # b ofs)
(pmap.1 # b ofs))
(Hdecr2: forall b ofs,
Mem.perm_order'' ((getThreadR cnti).2 # b ofs)
(pmap.2 # b ofs)),
invariant (updThread cnti c pmap).