df-prog-equiv(A;p;q;s1,s2.R[s1; s2]) ==
  R[inl df-program-state(p) ; inl df-program-state(q) ]
   (s1:df-program-statetype(p)?. s2:df-program-statetype(q)?.
       (R[s1; s2]
        (a:A
             let s1',out1 = df-program-in-state-ap'(p;s1;a) 
             in let s2',out2 = df-program-in-state-ap'(q;s2;a) 
                in R[s1'; s2']  (out1 = out2))))



Definitions occuring in Statement :  df-program-in-state-ap': df-program-in-state-ap'(dfp;s;m) df-program-state: df-program-state(dfp) df-program-statetype: df-program-statetype(dfp) df-program-type: df-program-type(dfp) all: x:A. B[x] implies: P  Q and: P  Q unit: Unit spread: spread def inl: inl x  union: left + right equal: s = t bag: bag(T)
Definitions :  inl: inl x  df-program-state: df-program-state(dfp) union: left + right df-program-statetype: df-program-statetype(dfp) unit: Unit implies: P  Q all: x:A. B[x] spread: spread def df-program-in-state-ap': df-program-in-state-ap'(dfp;s;m) and: P  Q equal: s = t bag: bag(T) df-program-type: df-program-type(dfp)
FDL editor aliases :  df-prog-equiv

df-prog-equiv(A;p;q;s1,s2.R[s1;  s2])  ==
    R[inl  df-program-state(p)  ;  inl  df-program-state(q)  ]
    \mwedge{}  (\mforall{}s1:df-program-statetype(p)?.  \mforall{}s2:df-program-statetype(q)?.
              (R[s1;  s2]
              {}\mRightarrow{}  (\mforall{}a:A
                          let  s1',out1  =  df-program-in-state-ap'(p;s1;a) 
                          in  let  s2',out2  =  df-program-in-state-ap'(q;s2;a) 
                                in  R[s1';  s2']  \mwedge{}  (out1  =  out2))))


Date html generated: 2011_08_16-AM-09_36_24
Last ObjectModification: 2011_06_17-PM-01_18_05

Home Index