| | Some definitions of interest. |
|
| Msg_sub | Def Msg_sub(l; M) == {m:Msg(M)| haslink(l; m) } |
| | | Thm* M:(IdLnk Id Type), l:IdLnk. Msg_sub(l; M) Type |
|
| fair-fifo | Def FairFifo
Def == ( i:Id, t: , l:IdLnk. source(l) = i  onlnk(l;m(i;t)) = nil Msg List)
Def == & ( i:Id, t: .
Def == & ( isnull(a(i;t))
Def == & (
Def == & (( x:Id. s(i;t+1).x = s(i;t).x vartype(i;x))
Def == & (& m(i;t) = nil Msg List)
Def == & ( i:Id, t: , l:IdLnk.
Def == & ( isrcv(l;a(i;t))
Def == & (
Def == & (destination(l) = i
Def == & (& ||queue(l;t)|| 1 & hd(queue(l;t)) = msg(a(i;t)) Msg)
Def == & ( l:IdLnk, t: .
Def == & ( t': .
Def == & (t t' & isrcv(l;a(destination(l);t')) queue(l;t') = nil Msg List) |
|
| world | Def World
Def == T:Id Id Type
Def == TA:Id Id Type
Def == M:IdLnk Id Type
Def == (i:Id    (x:Id T(i,x))) (i:Id    action(w-action-dec(TA;M;i)))
Def == (i:Id    ({m:Msg(M)| source(mlnk(m)) = i } List)) Top |
| | | Thm* World Type{i'} |
|
| Msg | Def Msg(M) == l:IdLnk t:Id M(l,t) |
| | | Thm* M:(IdLnk Id Type). Msg(M) Type |
|
| IdLnk | Def IdLnk == Id Id  |
| | | Thm* IdLnk Type |
|
| w-causl | Def e <c e' == e e,e'. e <loc e' isrcv(kind(e')) & e = sender(e') E^+ e' |
|
| w-E | Def E == {p:(Id )|  isnull(a(1of(p);2of(p))) } |
|
| w-index | Def index(e)
Def == ||rcvs(lnk(kind(e));time(e))||-||snds(lnk(kind(e));time(sender(e)))|| |
|
| w-sender | Def sender(e) == <source(lnk(kind(e))),mu( t.match(lnk(kind(e));t;time(e)))> |
|
| w-snds | Def snds(l;t) == concat(map( t1.m(l;t1);upto(t))) |
|
| w-ml | Def m(l;t) == onlnk(l;m(source(l);t)) |
|
| w-rcvs | Def rcvs(l;t) == filter( a.isrcv(l;a);map( t1.a(destination(l);t1);upto(t))) |
|
| w-sends | Def sends(l;e) == onlnk(l;m(loc(e);time(e))) |
|
| Id | Def Id == Atom  |
| | | Thm* Id Type |
|
| concat | Def concat(ll) == reduce( l,l'. l @ l';nil;ll) |
| | | Thm* T:Type, ll:(T List) List. concat(ll) T List |
|
| upto | Def upto(n) == if n= 0 nil else upto(n-1) @ [(n-1)] fi (recursive) |
| | | Thm* n: . upto(n) n List |
|
| append | Def as @ bs == Case of as; nil bs ; a.as' [a / (as' @ bs)] (recursive) |
| | | Thm* T:Type, as,bs:T List. (as @ bs) T List |
|
| assert | Def b == if b True else False fi |
| | | Thm* b: . b Prop |
|
| iff | Def P  Q == (P  Q) & (P  Q) |
| | | Thm* A,B:Prop. (A  B) Prop |
|
| int_seg | Def {i..j } == {k: | i k < j } |
| | | Thm* m,n: . {m..n } Type |
|
| isrcv | Def isrcv(k) == isl(k) |
| | | Thm* k:Knd. isrcv(k)  |
|
| ldst | Def destination(l) == 1of(2of(l)) |
| | | Thm* l:IdLnk. destination(l) Id |
|
| strongwellfounded | Def SWellFounded(R(x;y)) == f:(T  ). x,y:T. R(x;y)  f(x)<f(y) |
| | | Thm* T:Type, R:(T T Type). SWellFounded(R(x,y)) Prop |
|
| nat | Def == {i: | 0 i } |
| | | Thm* Type |
|
| le | Def A B == B<A |
| | | Thm* i,j: . (i j) Prop |
|
| length | Def ||as|| == Case of as; nil 0 ; a.as' ||as'||+1 (recursive) |
| | | Thm* A:Type, l:A List. ||l||  |
| | | Thm* ||nil||  |
|
| lnk | Def lnk(k) == 1of(outl(k)) |
| | | Thm* k:Knd. isrcv(k)  lnk(k) IdLnk |
|
| lsrc | Def source(l) == 1of(l) |
| | | Thm* l:IdLnk. source(l) Id |
|
| map | Def map(f;as) == Case of as; nil nil ; a.as' [(f(a)) / map(f;as')]
Def (recursive) |
| | | Thm* A,B:Type, f:(A B), l:A List. map(f;l) B List |
| | | Thm* A,B:Type, f:(A B), l:A List . map(f;l) B List |
|
| not | Def A == A  False |
| | | Thm* A:Prop. ( A) Prop |
|
| select | Def l[i] == hd(nth_tl(i;l)) |
| | | Thm* A:Type, l:A List, n: . 0 n  n<||l||  l[n] A |
|
| tagof | Def tag(k) == 2of(outl(k)) |
| | | Thm* k:Knd. isrcv(k)  tag(k) Id |
|
| top | Def Top == Void given Void |
| | | Thm* Top Type |
|
| trans | Def Trans x,y:T. E(x;y) == a,b,c:T. E(a;b)  E(b;c)  E(a;c) |
| | | Thm* T:Type, E:(T T Prop). (Trans x,y:T. E(x,y)) Prop |
|
| w-M | Def w.M == 1of(2of(2of(w))) |
|
| w-after | Def (x after e) == s(1of(e);2of(e)+1).x |
|
| w-ekind | Def kind(e) == kind(act(e)) |
|
| w-eval | Def val(e) == val(act(e)) |
|
| w-first | Def first(e)
Def == if time(e)= 0 true
Def == i; isnull(a(loc(e);time(e)-1)) first(<loc(e),time(e)-1>)
Def == else false fi
Def (recursive) |
|
| w-pred | Def pred(e)
Def == if isnull(a(loc(e);time(e)-1)) pred(<loc(e),time(e)-1>)
Def == else <loc(e),time(e)-1> fi
Def (recursive) |
|
| w-loc | Def loc(e) == 1of(e) |
|
| w-time | Def time(e) == 2of(e) |
|
| w-vartype | Def vartype(i;x) == w.T(i,x) |
|
| w-when | Def (x when e) == s(1of(e);2of(e)).x |