parallel-df-program(B;F;dfps) ==
  Y 
  (parallel-df-program,F,dfps.
    if 2 <z ||dfps||
      then parallel-df-program 
           (g.(F 
                (k.if (k = 0) then fst(bag-separate(g 0))
                    if (k = 1) then snd(bag-separate(g 0))
                    else g (k - 1)
                    fi ))) 
           [parallel-df-prog2(...;x,y.bag-merge(x;y);hd(dfps);hd(tl(dfps))) / 
            tl(tl(dfps))]
    if (||dfps|| = 2)
      then parallel-df-prog2(B;x,y.(F (k.if (k = 0) then x else y fi ));
              hd(dfps);hd(tl(dfps)))
    else parallel-df-prog1(B;x.(F (k.x));hd(dfps))
    fi ) 
  F 
  dfps



Definitions occuring in Statement :  parallel-df-prog2: parallel-df-prog2(B;G;dfp1;dfp2),  parallel-df-prog1: parallel-df-prog1(B;G;dfp),  df-program-type: df-program-type(dfp),  tl: tl(l),  hd: hd(l),  length: ||as||,  eq_int: (i = j),  lt_int: i <z j,  ifthenelse: if b then t else f fi ,  pi1: fst(t),  pi2: snd(t),  ycomb: Y,  apply: f a,  lambda: x.A[x],  union: left + right,  cons: [car / cdr],  subtract: n - m,  natural_number: $n,  bag-separate: bag-separate(bs),  bag-merge: bag-merge(as;bs)
Definitions :  ycomb: Y,  lt_int: i <z j,  pi1: fst(t),  pi2: snd(t),  bag-separate: bag-separate(bs),  subtract: n - m,  cons: [car / cdr],  union: left + right,  df-program-type: df-program-type(dfp),  bag-merge: bag-merge(as;bs),  length: ||as||,  parallel-df-prog2: parallel-df-prog2(B;G;dfp1;dfp2),  ifthenelse: if b then t else f fi ,  eq_int: (i = j),  natural_number: $n,  tl: tl(l),  parallel-df-prog1: parallel-df-prog1(B;G;dfp),  apply: f a,  lambda: x.A[x],  hd: hd(l)
FDL editor aliases :  parallel-df-program

parallel-df-program(B;F;dfps)  ==
    Y 
    (\mlambda{}parallel-df-program,F,dfps.
        if  2  <z  ||dfps||
            then  parallel-df-program 
                      (\mlambda{}g.(F 
                                (\mlambda{}k.if  (k  =\msubz{}  0)  then  fst(bag-separate(g  0))
                                        if  (k  =\msubz{}  1)  then  snd(bag-separate(g  0))
                                        else  g  (k  -  1)
                                        fi  ))) 
                      [parallel-df-prog2(df-program-type(hd(dfps))  +  df-program-type(hd(tl(dfps)));\mlambda{}x,y.
                                                                                                                                                                                  ...;
                              hd(dfps);hd(tl(dfps)))  / 
                        tl(tl(dfps))]
        if  (||dfps||  =\msubz{}  2)
            then  parallel-df-prog2(B;\mlambda{}x,y.(F  (\mlambda{}k.if  (k  =\msubz{}  0)  then  x  else  y  fi  ));hd(dfps);hd(tl(dfps)))
        else  parallel-df-prog1(B;\mlambda{}x.(F  (\mlambda{}k.x));hd(dfps))
        fi  ) 
    F 
    dfps


Date html generated: 2011_08_16-AM-09_44_06
Last ObjectModification: 2011_03_16-PM-10_07_54

Home Index