(* 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 valid_unique_running:
forall tp tr m U U' tid tid',
schedPeek U = Some tid ->
schedPeek U' = Some tid' ->
valid (tr, tp, m) U ->
valid (tr, tp, m) U' ->
has_unique_running tp ->
tid = tid'.