Instance Sem : Semantics := ClightSemanticsForMachines.Clight_newSem ge.Instance JR : Resources := LocksAndResources.Instance JTP : ThreadPool.ThreadPool := OrdinalPool.OrdinalThreadPool.Instance JMS : MachineSig := Concur.JuicyMachineShell.Instance DilMem : DiluteMem := HybridMachineSig.HybridCoarseMachine.DilMem.Instance scheduler : Scheduler := HybridCoarseMachine.scheduler.Instance JuicyMachine : HybridMachine := HybridCoarseMachine.HybridCoarseMachine.Definition jstate := jstate ge.Instance DR : Resources := DryHybridMachine.dryResources.Instance DTP : ThreadPool.ThreadPool := OrdinalPool.OrdinalThreadPool.Instance DMS : MachineSig := DryHybridMachine.DryHybridMachineSig.Instance DryMachine : HybridMachine := HybridCoarseMachine.HybridCoarseMachine.Definition dstate := ThreadPool.t
                         (ThreadPool := OrdinalPool.OrdinalThreadPool)
                         (*
                         @t dryResources DSem (@OrdinalPool.OrdinalThreadPool dryResources DSem)
                          *).Definition dmachine_state:= MachState(ThreadPool := OrdinalPool.OrdinalThreadPool).Definition match_st:= match_st'.

Lemma lock_range_perm : forall m js ds (MATCH : match_st js ds) i (Hi : containsThread js i) (Hcmpt : mem_compatible js m) b ofs sh R (HJcanwrite : Concur.lock_at_least sh R (getThreadR Hi) b (Ptrofs.intval ofs)), Mem.range_perm (Concur.juicyRestrict_locks (Concur.mem_compat_thread_max_cohere Hcmpt Hi)) b (Ptrofs.intval ofs) (Ptrofs.intval ofs + LKSIZE) Cur Readable.