Nuprl Definition : ohc_v2_roundout2

ohc_v2_roundout2(Cmd;cmdeq;flrs;learners;locs) ==
  loc,cmd,zi.
   let zj,sender = zi 
   in let zk,cmdU = zj 
      in let n,i = zk 
         in z.let cmdUs,z = z 
               in if (||cmdUs|| = flrs + 1)
                  then let vlist = mapfilter(x.outl(x);x.isl(x);cmdUs) in
                           let k,x = poss-maj(cmdeq;vlist;cmd) 
                           in if (k = flrs + 1)
                                then (ohc_v2_notify'broadcast(Cmd) learners <n, x>)
                                     + (ohc_v2_decided'broadcast() locs n)
                              if null(vlist) then {ohc_v2_retry'send(Cmd) loc <<n, i + 1>, cmd>}
                              else {ohc_v2_retry'send(Cmd) loc <<n, i + 1>, x>}
                              fi 
                  else {}
                  fi 



Definitions occuring in Statement :  ohc_v2_notify'broadcast: ohc_v2_notify'broadcast(Cmd) ohc_v2_decided'broadcast: ohc_v2_decided'broadcast() ohc_v2_retry'send: ohc_v2_retry'send(Cmd) length: ||as|| null: null(as) outl: outl(x) isl: isl(x) eq_int: (i = j) ifthenelse: if b then t else f fi  let: let apply: f a lambda: x.A[x] spread: spread def pair: <a, b> add: n + m natural_number: $n mapfilter: mapfilter(f;P;L) poss-maj: poss-maj(eq;L;x) bag-append: as + bs single-bag: {x} empty-bag: {}
FDL editor aliases :  ohc_v2_roundout2

ohc\_v2\_roundout2(Cmd;cmdeq;flrs;learners;locs)  ==
    \mlambda{}loc,cmd,zi.
      let  zj,sender  =  zi 
      in  let  zk,cmdU  =  zj 
            in  let  n,i  =  zk 
                  in  \mlambda{}z.let  cmdUs,z  =  z 
                              in  if  (||cmdUs||  =\msubz{}  flrs  +  1)
                                    then  let  vlist  =  mapfilter(\mlambda{}x.outl(x);\mlambda{}x.isl(x);cmdUs)  in
                                                      let  k,x  =  poss-maj(cmdeq;vlist;cmd) 
                                                      in  if  (k  =\msubz{}  flrs  +  1)
                                                                then  (ohc\_v2\_notify'broadcast(Cmd)  learners  <n,  x>)
                                                                          +  (ohc\_v2\_decided'broadcast()  locs  n)
                                                            if  null(vlist)  then  \{ohc\_v2\_retry'send(Cmd)  loc  <<n,  i  +  1>,  cmd>\}
                                                            else  \{ohc\_v2\_retry'send(Cmd)  loc  <<n,  i  +  1>,  x>\}
                                                            fi 
                                    else  \{\}
                                    fi 


Date html generated: 2012_02_20-PM-05_46_53
Last ObjectModification: 2012_02_17-PM-10_22_20

Home Index