(* MachStep that doesn't change the schedule, Reduces the set of valid schedules... *)
Inductive has_unique_running tp:Prop :=
| HasUniqueRun i (cnti : ThreadPool.containsThread tp i) q:
ThreadPool.getThreadC cnti = Krun q ->
has_unique_running tp.

Lemma AngelStep_preserve_valid:
forall U U' tr st tr' st' m m',
valid (tr, st, m) U ->
MachStep (U,tr,st) m (schedSkip U,tr',st') m' ->
valid (tr', st', m') U'.