modify-combinator2(f) ==
  
u,p.
   (f u 
    (
i.if (i =
 0)
          then case p 0
               of inl(xy) => if oob-hasleft(xy)
                             then inl oob-getleft(xy) 
                             else ff
                             fi 
                | inr(_) => ff
        if (i =
 1)
          then case p 0
               of inl(xy) => if oob-hasright(xy)
                             then inl oob-getright(xy) 
                             else ff
                             fi 
                | inr(_) => ff
        else p (i - 1)
        fi ))
Definitions : 
lambda:
x.A[x], 
oob-hasleft: oob-hasleft(x), 
oob-getleft: oob-getleft(x), 
eq_int: (i =
 j), 
decide: case b of inl(x) => s[x] | inr(y) => t[y], 
ifthenelse: if b then t else f fi , 
oob-hasright: oob-hasright(x), 
inl: inl x , 
oob-getright: oob-getright(x), 
bfalse: ff, 
apply: f a, 
subtract: n - m, 
natural_number: $n
FDL editor aliases : 
modify-combinator2
modify-combinator2(f)  ==
    \mlambda{}u,p.
      (f  u 
        (\mlambda{}i.if  (i  =\msubz{}  0)
                    then  case  p  0
                              of  inl(xy)  =>  if  oob-hasleft(xy)  then  inl  oob-getleft(xy)    else  ff  fi 
                                |  inr($_{}$)  =>  ff
                if  (i  =\msubz{}  1)
                    then  case  p  0
                              of  inl(xy)  =>  if  oob-hasright(xy)  then  inl  oob-getright(xy)    else  ff  fi 
                                |  inr($_{}$)  =>  ff
                else  p  (i  -  1)
                fi  ))
Date html generated:
2010_08_27-AM-09_37_09
Last ObjectModification:
2009_12_16-AM-08_34_43
Home
Index