Nuprl Definition : request-buffer

request-buffer(Req) ==
  smr-class(<1, []>;s,reqst.let c = fst(reqst) in
                                let num,pending = s 
                                in if c <z num then <s, []>
                                   if num <z c
                                     then <<num
                                           , insert-by(r1,r2.(fst(r1) = fst(r2));r1,r2.fst(r1) <z fst(r2);reqst;
                                                       pending)
                                           >
                                          , []
                                          >
                                   else let p1,p2 = split-gap(x.(fst(x));pending) 
                                        in <<(num + 1) + ||p1||, p2>, map(x.(snd(x));[reqst / p1])>
                                   fi ;Req)


Proof not projected




Definitions occuring in Statement :  smr-class: smr-class(init;s,x.F[s; x];X),  map: map(f;as),  length: ||as||,  eq_int: (i = j),  lt_int: i <z j,  ifthenelse: if b then t else f fi ,  let: let,  pi1: fst(t),  pi2: snd(t),  lambda: x.A[x],  spread: spread def,  pair: <a, b>,  cons: [car / cdr],  nil: [],  add: n + m,  natural_number: $n,  split-gap: split-gap(f;L),  insert-by: insert-by(eq;r;x;l)
Definitions :  smr-class: smr-class(init;s,x.F[s; x];X),  let: let,  ifthenelse: if b then t else f fi ,  insert-by: insert-by(eq;r;x;l),  eq_int: (i = j),  lt_int: i <z j,  nil: [],  spread: spread def,  split-gap: split-gap(f;L),  pi1: fst(t),  pair: <a, b>,  add: n + m,  natural_number: $n,  length: ||as||,  map: map(f;as),  lambda: x.A[x],  pi2: snd(t),  cons: [car / cdr]
FDL editor aliases :  request-buffer

request-buffer(Req)  ==
    smr-class(ə,  []>s,reqst.let  c  =  fst(reqst)  in
                                                                let  num,pending  =  s 
                                                                in  if  c  <z  num  then  <s,  []>
                                                                      if  num  <z  c
                                                                          then  <<num
                                                                                      ,  insert-by(\mlambda{}r1,r2.(fst(r1)  =\msubz{}  fst(r2));
                                                                                                              \mlambda{}r1,r2.fst(r1)  <z  fst(r2);reqst;pending)
                                                                                      >
                                                                                    ,  []
                                                                                    >
                                                                      else  let  p1,p2  =  split-gap(\mlambda{}x.(fst(x));pending) 
                                                                                in  <<(num  +  1)  +  ||p1||,  p2>,  map(\mlambda{}x.(snd(x));[reqst  /  p1])>
                                                                      fi  ;Req)


Date html generated: 2011_10_20-PM-04_09_50
Last ObjectModification: 2011_01_25-AM-00_06_47

Home Index