feedback-df-prog1(B;G;P;buf;dfp) ==
  let C,S,s0,F = dfp
  in <B
     , S  bag(B)
     , <s0, buf>
     , s,a.
        evalall(let s1,s2 = s 
                in let s',out = F[s1;a] 
                   in <case s'
                       of inl(s3) =>
                        inl <s3, if P[G[out;s2]] then G[out;s2] else s2 fi > 
                        | inr(z) =>
                        inr  
                      , G[out;s2]
                      >)>  



Definitions occuring in Statement :  ifthenelse: if b then t else f fi ,  it: ,  spreadn: spread4,  so_apply: x[s1;s2],  so_apply: x[s],  lambda: x.A[x],  spread: spread def,  pair: <a, b>,  product: x:A  B[x],  decide: case b of inl(x) => s[x] | inr(y) => t[y],  inr: inr x ,  inl: inl x ,  bag: bag(T),  evalall: evalall(t)
Definitions :  spreadn: spread4,  product: x:A  B[x],  bag: bag(T),  lambda: x.A[x],  evalall: evalall(t),  spread: spread def,  decide: case b of inl(x) => s[x] | inr(y) => t[y],  inl: inl x ,  pair: <a, b>,  ifthenelse: if b then t else f fi ,  so_apply: x[s],  inr: inr x ,  it: ,  so_apply: x[s1;s2]
FDL editor aliases :  feedback-df-prog1

feedback-df-prog1(B;G;P;buf;dfp)  ==
    let  C,S,s0,F  =  dfp
    in  <B
          ,  S  \mtimes{}  bag(B)
          ,  <s0,  buf>
          ,  \mlambda{}s,a.
                evalall(let  s1,s2  =  s 
                                in  let  s',out  =  F[s1;a] 
                                      in  <case  s'
                                              of  inl(s3)  =>
                                                inl  <s3,  if  P[G[out;s2]]  then  G[out;s2]  else  s2  fi  > 
                                                |  inr(z)  =>
                                                inr  \mcdot{} 
                                            ,  G[out;s2]
                                            >)>   


Date html generated: 2011_08_16-AM-09_42_52
Last ObjectModification: 2011_06_02-PM-06_33_37

Home Index