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