Collect(size v's from X with maximum num[v] such that P[v]) ==
  
tr.let b,v,ok = tr in 
      if ok then {b} else {} fi [CollectAccum(for v from class X
                                              do if num[v] increases
                                                      p := <0, tt>
                                                 else p := let n,ok = p 
                                                           in <n + 1
                                                              , ok 
 P[v]
                                                              >
                                              until 
((fst(p) =
 size)
                                              
(
(snd(p)))) )]
Definitions occuring in Statement : 
es-collect-accum: es-collect-accum(X;x.num[x];init;a,v.f[a; v];a.P[a]), 
es-filter-image: f[X], 
eq_int: (i =
 j), 
bor: p 
q, 
band: p 
 q, 
bnot: 
b, 
ifthenelse: if b then t else f fi , 
btrue: tt, 
spreadn: spread3, 
pi1: fst(t), 
pi2: snd(t), 
lambda:
x.A[x], 
spread: spread def, 
pair: <a, b>, 
add: n + m, 
natural_number: $n, 
single-bag: {x}, 
empty-bag: {}
Definitions : 
es-filter-image: f[X], 
lambda:
x.A[x], 
spreadn: spread3, 
ifthenelse: if b then t else f fi , 
single-bag: {x}, 
empty-bag: {}, 
es-collect-accum: es-collect-accum(X;x.num[x];init;a,v.f[a; v];a.P[a]), 
btrue: tt, 
spread: spread def, 
pair: <a, b>, 
add: n + m, 
natural_number: $n, 
band: p 
 q, 
bor: p 
q, 
eq_int: (i =
 j), 
pi1: fst(t), 
bnot: 
b, 
pi2: snd(t)
FDL editor aliases : 
es-collect-filter
Collect(size  v's  from  X  with  maximum  num[v]  such  that  P[v])  ==
    \mlambda{}tr.let  b,v,ok  =  tr  in 
            if  ok  then  \{b\}  else  \{\}  fi  [CollectAccum(for  v  from  class  X
                                                                                            do  if  num[v]  increases
                                                                                                            p  :=  ɘ,  tt>
                                                                                                  else  p  :=  let  n,ok  =  p 
                                                                                                                      in  <n  +  1,  ok  \mwedge{}\msubb{}  P[v]>
                                                                                            until  \muparrow{}((fst(p)  =\msubz{}  size)  \mvee{}\msubb{}(\mneg{}\msubb{}(snd(p))))  )]
Date html generated:
2011_08_16-PM-05_28_31
Last ObjectModification:
2011_01_16-PM-08_23_09
Home
Index