Nuprl Definition : consensus-rcvs-to-consensus-events

consensus-rcvs-to-consensus-events(f;t;v0;L) ==
  accumulate (with value and list item r):
   let X,Y 
   in let b,i,as,vs,v accumulate (with value and list item r):
                         consensus-accum-num((2 t) 1;f;s;r)
                        over list:
                          [r]
                        with starting value:
                         <ff, 0, [], [], v0>in <X
                                                  if rcv-vote?(r)
                                                    then let a,i,v rcvd-vote(r) in 
                                                         [consensus-message(a;i 1;inl <i, v>)]
                                                    else []
                                                    fi 
                                                  if b
                                                    then if null(as)
                                                         then [Archive(v); NextInning]
                                                         else map(λn.NextInning;upto(i 
                                                                  ||filter(λx.is-inning-event(x);X)||))
                                                              [Archive(v); NextInning]
                                                         fi 
                                                    else []
                                                    fi 
                                                 [r]
                                                 >
  over list:
    L
  with starting value:
   <[], []>)



Definitions occuring in Statement :  consensus-accum-num: consensus-accum-num(num;f;s;r) rcvd-vote: rcvd-vote(x) rcv-vote?: rcv-vote?(x) consensus-message: consensus-message(b;i;z) archive-event: Archive(v) is-inning-event: is-inning-event(x) inning-event: NextInning upto: upto(n) filter: filter(P;l) map: map(f;as) length: ||as|| append: as bs null: null(as) list_accum: list_accum cons: [a b] nil: [] ifthenelse: if then else fi  bfalse: ff spreadn: let a,b,c,d,e in v[a; b; c; d; e] spreadn: spread3 lambda: λx.A[x] spread: spread def pair: <a, b> inl: inl x multiply: m subtract: m add: m natural_number: $n
FDL editor aliases :  consensus-rcvs-to-consensus-events
consensus-rcvs-to-consensus-events(f;t;v0;L)  ==
    accumulate  (with  value  p  and  list  item  r):
      let  X,Y  =  p 
      in  let  b,i,as,vs,v  =  accumulate  (with  value  s  and  list  item  r):
                                                  consensus-accum-num((2  *  t)  +  1;f;s;r)
                                                over  list:
                                                    Y  @  [r]
                                                with  starting  value:
                                                  <ff,  0,  [],  [],  v0>)  in  <X
                                                                                                    @  if  rcv-vote?(r)
                                                                                                        then  let  a,i,v  =  rcvd-vote(r)  in 
                                                                                                                  [consensus-message(a;i  +  1;inl  <i,  v>)]
                                                                                                        else  []
                                                                                                        fi 
                                                                                                    @  if  b
                                                                                                        then  if  null(as)
                                                                                                                  then  [Archive(v);  NextInning]
                                                                                                                  else  map(\mlambda{}n.NextInning;upto(i  -  1 
                                                                                                                                    -  ||filter(\mlambda{}x.is-inning-event(x);
                                                                                                                                                          X)||))
                                                                                                                            @  [Archive(v);  NextInning]
                                                                                                                  fi 
                                                                                                        else  []
                                                                                                        fi 
                                                                                                  ,  Y  @  [r]
                                                                                                  >
    over  list:
        L
    with  starting  value:
      <[],  []>)



Date html generated: 2015_07_17-AM-11_54_29
Last ObjectModification: 2012_02_25-AM-11_54_53

Home Index