feedback-df-prog2(B;G;P;buf;dfp1;dfp2) ==
  let C1,S1,s1,F1 = dfp1
  in let C2,S2,s2,F2 = dfp2
     in <B
        , S1?  S2?  bag(B)
        , <inl s1 , inl s2 , buf>
        , s,a.
           evalall(let hs1,hs2,buf = s in 
           let s1',out1 = case hs1 of inl(s1) =F1 s1 a | inr(z) => <hs1, {}
           in let s2',out2 = case hs2
              of inl(s2) =>
               F2 s2 a
               | inr(z) =>
               <hs2, {}
              in let x = G out1 out2 buf in
                     <if (isl(s1'))  (isl(s2'))
                      then inr  
                      else inl <s1', s2', if P[x] then x else buf fi > 
                      fi 
                     , x
                     >)>    



Definitions occuring in Statement :  isl: isl(x) band: p  q bnot: b ifthenelse: if b then t else f fi  let: let it: spreadn: spread4 spreadn: spread3 so_apply: x[s] unit: Unit apply: f a 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  union: left + right empty-bag: {} bag: bag(T) evalall: evalall(t)
Definitions :  spreadn: spread4 product: x:A  B[x] union: left + right unit: Unit bag: bag(T) lambda: x.A[x] evalall: evalall(t) spreadn: spread3 spread: spread def decide: case b of inl(x) =s[x] | inr(y) =t[y] empty-bag: {} let: let apply: f a band: p  q bnot: b isl: isl(x) inr: inr x  it: inl: inl x  pair: <a, b> ifthenelse: if b then t else f fi  so_apply: x[s]
FDL editor aliases :  feedback-df-prog2

feedback-df-prog2(B;G;P;buf;dfp1;dfp2)  ==
    let  C1,S1,s1,F1  =  dfp1
    in  let  C2,S2,s2,F2  =  dfp2
          in  <B
                ,  S1?  \mtimes{}  S2?  \mtimes{}  bag(B)
                ,  <inl  s1  ,  inl  s2  ,  buf>
                ,  \mlambda{}s,a.
                      evalall(let  hs1,hs2,buf  =  s  in 
                      let  s1',out1  =  case  hs1  of  inl(s1)  =>  F1  s1  a  |  inr(z)  =>  <hs1,  \{\}> 
                      in  let  s2',out2  =  case  hs2  of  inl(s2)  =>  F2  s2  a  |  inr(z)  =>  <hs2,  \{\}> 
                            in  let  x  =  G  out1  out2  buf  in
                                          <if  (\mneg{}\msubb{}isl(s1'))  \mwedge{}\msubb{}  (\mneg{}\msubb{}isl(s2'))
                                            then  inr  \mcdot{} 
                                            else  inl  <s1',  s2',  if  P[x]  then  x  else  buf  fi  > 
                                            fi 
                                          ,  x
                                          >)>       


Date html generated: 2011_08_16-AM-09_43_26
Last ObjectModification: 2011_06_03-AM-00_06_02

Home Index