lg-add(g;a;b) ==
  mklist(||g||;i.let lbl,L1,L2 = g[i] in 
                  <lbl
                  , if (i = a)
                      then if (i = b)
                           then <[i / L1], [i / L2]>
                           else <L1, [b / L2]>
                           fi 
                    if (i = b) then <[a / L1], L2>
                    else <L1, L2>
                    fi 
                  >)



Definitions :  mklist: mklist(n;f) length: ||as|| lambda: x.A[x] spreadn: spread3 select: l[i] ifthenelse: if b then t else f fi  eq_int: (i = j) cons: [car / cdr] pair: <a, b>
FDL editor aliases :  lg-add

lg-add(g;a;b)  ==
    mklist(||g||;\mlambda{}i.let  lbl,L1,L2  =  g[i]  in 
                                    <lbl
                                    ,  if  (i  =\msubz{}  a)  then  if  (i  =\msubz{}  b)  then  <[i  /  L1],  [i  /  L2]>  else  <L1,  [b  /  L2]>  fi 
                                        if  (i  =\msubz{}  b)  then  <[a  /  L1],  L2>
                                        else  <L1,  L2>
                                        fi 
                                    >)


Date html generated: 2010_08_27-PM-03_40_55
Last ObjectModification: 2010_05_06-PM-04_07_34

Home Index