| | Some definitions of interest. |
|
| msga | Def MsgA
Def == ds:x:Id fp-> Type
Def == da:a:Knd fp-> Type
Def == x:Id fp-> ds(x)?Void a:Id fp-> State(ds) ma-valtype(da; locl(a)) Prop
Def == kx:Knd Id fp-> State(ds) ma-valtype(da; 1of(kx)) ds(2of(kx))?Void
Def == kl:Knd IdLnk fp-> (tg:Id
Def == kl:Knd IdLnk fp-> ( State(ds) ma-valtype(da; 1of(kl))
Def == kl:Knd IdLnk fp-> ((da(rcv(2of(kl); tg))?Void List)) List
Def == x:Id fp-> Knd List ltg:IdLnk Id fp-> Knd List Top |
| | | Thm* MsgA Type{i'} |
|
| ring | Def ring(R;in;out)
Def == ( i:|R|.
Def == ( (R(source(in(i)))) & (R(destination(out(i))))
Def == (& source(out(i)) = i
Def == (& & destination(in(i)) = i
Def == (& & in(destination(out(i))) = out(i) IdLnk
Def == (& & out(source(in(i))) = in(i) IdLnk)
Def == & ( i,j:|R|. k: . x.destination(out(x))^k(i) = j Id)
Def == & |R| |
| | | Thm* R:(Id  ), in,out:(|R| IdLnk). ring(R;in;out) Prop |
|
| ring-leader1 | Def ring-leader1(loc;R;uid;out;in)
Def == if R(loc)
Def == if [ (send-once(loc; ; ;"send-me"; x.x;"vote";out(loc);"me"));
Def == if [ (trigger1(loc; ; ; x,y. x= y;loc;rcv
Def == if [((in(loc)); "vote");"leader";"me"));
Def == if [ (Dconstant(loc; ;uid(loc);"me";loc));
Def == if [ma-single-sends1( ;
Def == if [ma-single-sends1( ;
Def == if [ma-single-sends1( ;
Def == if [ma-single-sends1("me";
Def == if [ma-single-sends1(rcv((in(loc)); "vote");
Def == if [ma-single-sends1((out(loc));
Def == if [ma-single-sends1("vote";
Def == if [ma-single-sends1(( a,b. if a< b [b] else nil fi));
Def == if [only [rcv((in(loc)); "vote");
Def == if [only [locl("send-me")] sends on (out(loc) with "vote")]
Def == else nil fi |
|
| IdLnk | Def IdLnk == Id Id  |
| | | Thm* IdLnk Type |
|
| rset | Def |R| == {i:Id| (R(i)) } |
| | | Thm* R:(Id  ). |R| Type |
|
| Id | Def Id == Atom  |
| | | Thm* Id Type |
|
| inject | Def Inj(A; B; f) == a1,a2:A. f(a1) = f(a2) B  a1 = a2 |
| | | Thm* A,B:Type, f:(A B). Inj(A; B; f) Prop |
|
| nat | Def == {i: | 0 i } |
| | | Thm* Type |