Definition syncStep (isCoarse:bool) :
      forall {tid0 ms m}, containsThread ms tid0 -> mem_compatible ms m ->
                     thread_pool -> mem -> sync_event ->  Prop:=
      @syncStep' isCoarse.

(* Specifications: *)
Lemma syncstep_equal_run: forall b i tp m cnt cmpt tp' m' tr, @syncStep b i tp m cnt cmpt tp' m' tr -> forall j, (exists cntj q, @getThreadC _ _ _ j tp cntj = Krun q) <-> (exists cntj' q', @getThreadC _ _ _ j tp' cntj' = Krun q').
Lemma syncstep_not_running: forall b i tp m cnt cmpt tp' m' tr, @syncStep b i tp m cnt cmpt tp' m' tr -> forall cntj q, ~ @getThreadC _ _ _ i tp cntj = Krun q.
Lemma syncstep_equal_run: forall b i tp m cnt cmpt tp' m' tr, @syncStep b i tp m cnt cmpt tp' m' tr -> forall j, (exists cntj q, @getThreadC _ _ _ j tp cntj = Krun q) <-> (exists cntj' q', @getThreadC _ _ _ j tp' cntj' = Krun q').
Lemma syncstep_not_running: forall b i tp m cnt cmpt tp' m' tr, @syncStep b i tp m cnt cmpt tp' m' tr -> forall cntj q, ~ @getThreadC _ _ _ i tp cntj = Krun q.