| 1 |
2. i:Id, t: , l:IdLnk. source(l) = i  onlnk(l;m(i;t)) = nil Msg List
3. i:Id, t: .
3. isnull(a(i;t))
3. 
3. ( x:Id. s(i;t+1).x = s(i;t).x vartype(i;x)) & m(i;t) = nil Msg List
4. i:Id, t: , l:IdLnk.
4. isrcv(l;a(i;t))
4. 
4. destination(l) = i & ||queue(l;t)|| 1 & hd(queue(l;t)) = msg(a(i;t)) Msg
5. l:IdLnk, t: .
5. t': . t t' & isrcv(l;a(destination(l);t')) queue(l;t') = nil Msg List
6. e,e':E. loc(e) = loc(e') Id  e <c e' e = e' e' <c e
7. e:E. first(e)  ( e':E. loc(e') = loc(e) Id  e' <c e)
8. e:E.
8. first(e)
8. 
8. loc(pred(e)) = loc(e) Id & pred(e) <c e
8. & ( e':E. loc(e') = loc(e) Id  (pred(e) <c e' & e' <c e))
9. e:E.
9. first(e)  ( x:Id. (x when e) = (x after pred(e)) vartype(loc(e);x))
10. Trans e,e':E. e <c e'
11. SWellFounded(e <c e')
12. e:E.
12. isrcv(kind(e))
12. 
12. sends(lnk(kind(e));sender(e))[index(e)]
12. =
12. msg(lnk(kind(e));tag(kind(e));val(e))
12. Msg(the_w.M)
13. e:E. isrcv(kind(e))  sender(e) <c e
14. e,e':E.
14. e <c e'
14. 
14. first(e') & e <c pred(e') e = pred(e') E
14. isrcv(kind(e')) & e <c sender(e') e = sender(e') E
15. e:E. isrcv(kind(e))  loc(e) = destination(lnk(kind(e)))
16. e:E, l:IdLnk.
16. loc(e) = source(l)  sends(l;e) = nil Msg_sub(l; the_w.M) List
17. e,e':E.
17. isrcv(kind(e))
17. 
17. isrcv(kind(e'))
17. 
17. lnk(kind(e)) = lnk(kind(e'))
17. 
17. (e <c e'
17. (
17. (sender(e) <c sender(e') sender(e) = sender(e') E & index(e)<index(e'))
18. m :
19. 0<m
20. l:IdLnk, t: . m-1 ||snds(l;t)||  ( t': . t t' & m-1 ||rcvs(l;t')||)
21. l : IdLnk
22. t :
23. m ||snds(l;t)||
24. t' :
25. t t'
26. m-1 ||rcvs(l;t')||
27. t'@0 :
28. t' t'@0
29. isrcv(l;a(destination(l);t'@0)) queue(l;t'@0) = nil Msg List
t': . t t' & m ||rcvs(l;t')||
 | 15 steps |