mlt_inning_val() ==
  z.let s,x = z in
       let n,vs,i = s in 
      case x
      of inl(v) =inl inl <n, 0, v>  
       | inr(vote) =let m,j,v = vote in 
                      if n <z m then inl inl vote  
                      if i z j then inl inl vote  
                      if (xvs.(x = v))_b
                        then inl inl <n, i, strict-majority-or-max([v / vs])>  
                      else inl (inr <n, v) 
                      fi 



Definitions :  lambda: x.A[x] spread: spread def decide: case b of inl(x) =s[x] | inr(y) =t[y] natural_number: $n spreadn: spread3 lt_int: i <z j le_int: i z j ifthenelse: if b then t else f fi  bl-exists: (xL.P[x])_b bnot: b eq_int: (i = j) strict-majority-or-max: strict-majority-or-max(L) cons: [car / cdr] inl: inl x  inr: inr x  pair: <a, b>
FDL editor aliases :  mlt_inning_val

mlt\_inning\_val()  ==
    \mlambda{}z.let  s,x  =  z  in
              let  n,vs,i  =  s  in 
            case  x
            of  inl(v)  =>  inl  inl  <n,  0,  v>   
              |  inr(vote)  =>  let  m,j,v  =  vote  in 
                                            if  n  <z  m  then  inl  inl  vote   
                                            if  i  \mleq{}z  j  then  inl  inl  vote   
                                            if  (\mexists{}x\mmember{}vs.\mneg{}\msubb{}(x  =\msubz{}  v))\_b
                                                then  inl  inl  <n,  i,  strict-majority-or-max([v  /  vs])>   
                                            else  inl  (inr  <n,  v>  ) 
                                            fi 


Date html generated: 2010_08_27-PM-08_30_55
Last ObjectModification: 2010_06_23-PM-11_58_45

Home Index