End FineGrainedExecutions.
Section SCExecutions.
Context
{Sem : Semantics}
{initU : seq.seq nat}
{SemAx : CoreLanguage.SemAxioms}
{SemD : CoreLanguage.SemDet}.
Existing Instance BareMachine.resources.
Existing Instance HybridFineMachine.scheduler.
Existing Instance OrdinalPool.OrdinalThreadPool.
Existing Instance BareMachine.BareMachineSig.
Existing Instance BareDilMem.
Existing Instance bareMach.
Opaque containsThread mem_compatible.

(* Specifications: *)
Lemma start_thread_det:
forall tp m tid (cnt: containsThread tp tid) tp' m' tp'' m''
(Hstart: start_thread m cnt tp' m')
(Hstart': start_thread m cnt tp'' m''),
tp' = tp'' /\ m' = m''.
Lemma sync_step_det:
forall tp m tid (cnt: containsThread tp tid) tp' m' tp'' m'' ev ev'
(Hcmpt: mem_compatible tp m)
(Hstep: @BareMachine.syncStep _ false _ tp m cnt Hcmpt tp' m' ev)
(Hstep': @BareMachine.syncStep _ false _ tp m cnt Hcmpt tp'' m'' ev'),
tp' = tp'' /\ m' = m'' /\ ev = ev'.
Lemma suspend_thread_det:
forall tp m tid (cnt: containsThread tp tid) tp' tp''
(Hsuspend: suspend_thread m cnt tp')
(Hsuspend': suspend_thread m cnt tp''),
tp' = tp''.
Lemma step_thread_det:
forall tp m tid (cnt: containsThread tp tid) tp' m' tp'' m'' ev ev'
(Hcmpt: mem_compatible tp m)
(Hstep: threadStep cnt Hcmpt tp' m' ev)
(Hstep': threadStep cnt Hcmpt tp'' m'' ev'),
tp' = tp'' /\ m' = m'' /\ ev = ev'.
Lemma resume_thread_det:
forall tp m tid (cnt: containsThread tp tid) tp' tp''
(Hresume: resume_thread m cnt tp')
(Hresume': resume_thread m cnt tp''),
tp' = tp''.
Lemma bareStep_det:
forall U tr tp m U' tr' tp' m' U'' tr'' tp'' m''
(Hstep: MachStep (U, tr, tp) m
(U', tr', tp') m')
(Hstep': MachStep (U, tr, tp) m
(U'', tr'', tp'') m''),
U' = U'' /\ tr' = tr'' /\ tp' = tp'' /\ m' = m''.
Lemma bare_execution_det:
forall st m st' m' st'' m''
(Hstep: fine_execution st m st' m')
(Hstep': fine_execution st m st'' m''),
st' = st'' /\ m' = m''.