(** [mem_compatible] is preserved by [resume_thread]*)
    Corollary resume_compatible :
      forall (tp tp' : t) m (i : nat) (pf : containsThread tp i)
        (Hcompatible: mem_compatible tp m)
        (Hresume: resume_thread m pf tp'),
        mem_compatible tp' m.(** [mem_compatible] is preserved by [start_thread]*)
    Corollary start_compatible :
      forall (tp tp' : t) m m' (i : nat) (pf : containsThread tp i)
        (Hcompatible: mem_compatible tp m)
        (Hstart: start_thread m pf tp' m'),
        mem_compatible tp' m'.(** [mem_compatible] is preserved by [internal_step]*)
    Corollary internal_step_compatible :
      forall (tp tp' : t) m m' (i : nat) (pf : containsThread tp i)
        (Hcompatible: mem_compatible tp m)
        (Hstep: internal_step pf Hcompatible tp' m'),
        mem_compatible tp' m'.

Lemma remLock_internal_step: forall tp tp' m m' j (cntj: containsThread tp j) b ofs (Hcomp: mem_compatible tp m) (Hcomp': mem_compatible (remLockSet tp (b,ofs)) m) (cntj': containsThread (remLockSet tp (b,ofs)) j) (Hstep: internal_step cntj Hcomp tp' m'), internal_step cntj' Hcomp' (remLockSet tp' (b,ofs)) m'.