until-prog(A;S;T;sx;sy;nxtx;nxty) ==
  <A
  , S 
 (T?)
  , <sx, inl sy >
  , 
s,m.
     evalall(let sx,sy = s 
             in let sx',xout = nxtx sx m 
                in let sy',yout = case sy
                   of inl(s) =>
                    nxty s m
                    | inr(z) =>
                    <sy, {}> 
                   in <case sx'
                       of inl(s) =>
                        if bag-null(yout) then inl <s, sy'>  else inr 
  fi 
                        | inr(z) =>
                        inr 
 
                      , xout
                      >)>
Definitions occuring in Statement : 
ifthenelse: if b then t else f fi , 
it:
, 
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, 
bag-null: bag-null(bs), 
empty-bag: {}, 
evalall: evalall(t)
Definitions : 
product: x:A 
 B[x], 
union: left + right, 
unit: Unit, 
lambda:
x.A[x], 
evalall: evalall(t), 
spread: spread def, 
apply: f a, 
empty-bag: {}, 
decide: case b of inl(x) => s[x] | inr(y) => t[y], 
ifthenelse: if b then t else f fi , 
bag-null: bag-null(bs), 
inl: inl x , 
pair: <a, b>, 
inr: inr x , 
it:
FDL editor aliases : 
until-prog
until-prog(A;S;T;sx;sy;nxtx;nxty)  ==
    <A
    ,  S  \mtimes{}  (T?)
    ,  <sx,  inl  sy  >
    ,  \mlambda{}s,m.
          evalall(let  sx,sy  =  s 
                          in  let  sx',xout  =  nxtx  sx  m 
                                in  let  sy',yout  =  case  sy  of  inl(s)  =>  nxty  s  m  |  inr(z)  =>  <sy,  \{\}> 
                                      in  <case  sx'
                                              of  inl(s)  =>
                                                if  bag-null(yout)  then  inl  <s,  sy'>    else  inr  \mcdot{}    fi 
                                                |  inr(z)  =>
                                                inr  \mcdot{} 
                                            ,  xout
                                            >)>
Date html generated:
2011_08_16-PM-06_16_47
Last ObjectModification:
2011_06_16-PM-03_37_34
Home
Index