| 1 |
9. p5 :
9. i:Id, t: , l:IdLnk.
9. isrcv(l;a(i;t))
9. 
9. destination(l) = i & ||queue(l;t)|| 1 & hd(queue(l;t)) = msg(a(i;t)) Msg
10. p6 :
10. l:IdLnk, t: .
10. t': . t t' & isrcv(l;a(destination(l);t')) queue(l;t') = nil Msg List
11. i:Id, t: , l:IdLnk. source(l) = i  onlnk(l;m(i;t)) = nil Msg List
12. i:Id, t: .
12. isnull(a(i;t))
12. 
12. ( x:Id. s(i;t+1).x = s(i;t).x vartype(i;x)) & m(i;t) = nil Msg List
13. i:Id, t: , l:IdLnk.
13. isrcv(l;a(i;t))
13. 
13. destination(l) = i & ||queue(l;t)|| 1 & hd(queue(l;t)) = msg(a(i;t)) Msg
14. l:IdLnk, t: .
14. t': . t t' & isrcv(l;a(destination(l);t')) queue(l;t') = nil Msg List
15. l:IdLnk, tg:Id.
15. (w.M(l,tg)) r if eqof(IdDeq)(source(l),i)
15. (w.M(l,tg)) r if <ds,<[locl(a)], x.T>,,<[a], x.P>,,,,, >
15. (w.M(l,tg)) r else fi.da(rcv(l; tg))
16. (eqof(IdDeq)(i,i)) ~ true
17. a@0:Id, t: .
17. t': .
17. t t'
17. & isnull(a(i;t')) & kind(a(i;t')) = locl(a@0)
17. & locl(a@0) dom(<[locl(a)], x.T>)
17. & P@0 != <[a], x.P>(a@0) ==> v:<[locl(a)], x.T>(locl(a@0))?Top.
17. & P@0(( x.s(i;t').x),v)
18. t: .
18. isnull(a(i;t))
18. 
18. (islocal(kind(a(i;t)))
18. (
18. ((eqof(IdDeq)(a,act(kind(a(i;t))))  false )
18. (
18. (P(( x.s(i;t).x),val(a(i;t))))
18. & ( x:Id.
18. & (deq-member(product-deq(Knd;Id;KindDeq;IdDeq);<kind(a(i;t)),x>;1of())
18. & (
18. & (s(i;t+1).x
18. & (=
18. & (2of()(<kind(a(i;t)),x>, x.s(i;t).x,val(a(i;t)))
18. & ( if deq-member(IdDeq;x;1of(ds)) 2of(ds)(x) else Top fi)
18. & ( l:IdLnk.
18. & (deq-member(product-deq(Knd;IdLnk;KindDeq;IdLnkDeq);<kind(a(i;t)),l>;1of(
18. & (deq-member(product-deq(Knd;IdLnk;KindDeq;IdLnkDeq);<kind(a(i;t)),l>;))
18. & (
18. & (withlnk(l;m(i;t))
18. & (=
18. & (if source(l) = i
18. & (if concat(map( tgf.map( x.<1of(tgf)
18. & (if concat(map( tgf.map( x.,x>;2of(tgf)
18. & (if concat(map( tgf.map( x.,x>;(( x.s(i;t).x)
18. & (if concat(map( tgf.map( x.,x>;,val(a(i;t))));2of()(<kind(a(i;t)),l>)))
18. & (else nil fi
18. & ( (tg:Id
18. & ( ( if source(l) = i <[locl(a)], x.T>(rcv(l; tg))?Top else Top fi) List)
18. & ( x:Id.
18. & ( (deq-member(IdDeq;x;1of())  deq-member(KindDeq;kind(a(i;t));2of()(x)))
18. & (
18. & (s(i;t).x
18. & (=
18. & (s(i;t+1).x
18. & ( if deq-member(IdDeq;x;1of(ds)) 2of(ds)(x) else Top fi)
18. & ( l:IdLnk, tg:Id.
18. & ( (deq-member(product-deq(IdLnk;Id;IdLnkDeq;IdDeq);<l,tg>;1of())
18. & ( (
18. & ( (deq-member(KindDeq;kind(a(i;t));2of()(<l,tg>)))
18. & (
18. & (w-tagged(tg; onlnk(l;m(i;t))) = nil Msg List)
19. x:Id.
19. deq-member(IdDeq;x;1of())
19. 
19. s(i;0).x
19. =
19. 2of()(x)
19. if deq-member(IdDeq;x;1of(ds)) 2of(ds)(x) else Void fi
20. a@0:Action(i).
20. isnull(a@0)  (valtype(i;a@0) r <[locl(a)], x.T>(kind(a@0))?Top)
21. x:Id.
21. vartype(i;x) r if deq-member(IdDeq;x;1of(ds)) 2of(ds)(x) else Top fi
22. IdDeq EqDecider(Id)
23. x:Id. vartype(i;x) r ds(x)?Top
24. j : Id
25. t :
26. j = i
27. isnull(a(j;t))
28. isnull(a(i;t))
29. ( x.s(i;t).x) State(ds)
30. t' :
31. t+1 t'
32. v:T. P(( x.s(i;t').x),v)
33. t2 :
34. t2<t'
35. isnull(a(i;t2))
36. t3: . t2<t3 & t3<t'  isnull(a(i;t3))
37. t t2
38. loc(<j,t>) = loc(<i,t2>) Id & (<j,t> < <i,t2>) <j,t> = <i,t2> E
39. v : T
40. P(( x.s(i;t').x),v)
41. z : Id
42. t3 :
43. 0<t3
44. t2+1 t3
45. t3 t'
46. t2+1 t3-1
47. s(i;t2+1).z = s(i;t3-1).z ds(z)?Top
48. isnull(a(i;t3-1))
49. x:Id. s(i;t3-1+1).x = s(i;t3-1).x vartype(i;x)
50. m(i;t3-1) = nil Msg List
51. s(i;t3-1+1).z = s(i;t3-1).z vartype(i;z)
52. x:Id. s(i;t3-1+1).x = s(i;t3-1).x vartype(i;x)
53. m(i;t3-1) = nil Msg List
54. s(i;t3).z = s(i;t3-1).z vartype(i;z)
55. z1 : vartype(i;z)
z1 ds(z)?Top
 | 2 steps |