Definition MachStateDry := @MachState dryResources (Clight_newSem ge)
       (@OrdinalPool.OrdinalThreadPool dryResources (Clight_newSem ge)).(*
SearchHead (MachState -> _).
Print Val.inject.
Definition flat_inject (v: memval)
*)


Definition threadpool_of (st: MachStateDry) :=    match st with (_, _, tp) => tp end.Definition dryThreadPool := @ThreadPool.t dryResources (Clight_newSem ge)
                                  (@OrdinalPool.OrdinalThreadPool dryResources (Clight_newSem ge)).Definition ctl_ok nextb (c: @ctl Clight_new.corestate) : Prop :=
 match c with
 | Krun q => corestate_ok nextb q 
 | Kblocked q => corestate_ok nextb q
 | Kresume q v => corestate_ok nextb q /\ val_ok nextb v
 | Kinit v1 v2 => val_ok nextb v1 /\ val_ok nextb v2
 end.

Lemma alloc_ctl_ok: forall (nextb nextb': positive) (LESS: (nextb <= nextb')%positive) c, ctl_ok nextb c -> ctl_ok nextb' c.