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