(* Some view lemmas for processes and corresponding schedules *)

(* Specifications: *)
Lemma stepUnfin W A s1 sc s2 (t : proc this W A) :
pstep s1 Unfinished sc s2 t <-> False.
Lemma stepSeq W A B s1 (t : proc this W B) k sc s2 (q : proc this W A) :
pstep s1 (Seq t k) sc s2 q <->
(exists v, [/\ sc = SeqRet, t = Ret v, q = k v, s2 = s1 &
s1 \In Coh W]) \/
exists sc' p',
[/\ sc = SeqStep sc', q = Seq p' k & pstep s1 t sc' s2 p'].
Lemma stepInject V W K A (em : injects V W K)
s1 (t : proc this V A) sc s2 (q : proc this W A) :
pstep s1 (Inject em t) sc s2 q <->
(exists s1' v, [/\ sc = InjectRet, t = Ret v, q = Ret v, s2 = s1 &
extends em s1 s1']) \/
exists sc' t' s1' s2' s,
[/\ sc = InjectStep sc', q = Inject em t',
s1 = s1' \+ s, s2 = s2' \+ s, s1 \In Coh W &
pstep s1' t sc' s2' t'].