Nuprl Definition : mu_ex_v5_cs-constraint

mu_ex_v5_cs-constraint{i:l}(es;m1;m2;init;p1;p2) ==
  e:E
    ((  mu_ex_v5_LeaveCS()(e)
     (e':E
          i:Id
           (<i, make-Msg(``enter cs``;Unit;) mu_ex_v5_main(init;m1;m2;p1;p2)(e')
            (e' <loc e)
            (e'':E
                ((e' <loc e'')
                 (e'' <loc e)
                 (j:Id. (<j, make-Msg(``enter cs``;Unit;) mu_ex_v5_main(init;m1;m2;p1;p2)(e''))))))))
     (||filter(e.name_eq(es-header(es;e);``leave cs``);
                loc(e))||  bag-size([pe'loc(e).mu_ex_v5_main(init;m1;m2;p1;p2) es e'|
                                       name_eq(msg-header(snd(p));``enter cs``)])))



Definitions occuring in Statement :  mu_ex_v5_main: mu_ex_v5_main(initial_token;m1;m2;proc1;proc2) mu_ex_v5_LeaveCS: mu_ex_v5_LeaveCS() make-Msg: make-Msg(hdr;typ;val) es-header: es-header(es;e) msg-header: msg-header(m) Message: Message classrel: v  X(e) es-le-before: loc(e) es-locl: (e <loc e') es-E: E Id: Id name_eq: name_eq(x;y) length: ||as|| it: pi2: snd(t) le: A  B all: x:A. B[x] exists: x:A. B[x] not: A squash: T implies: P  Q and: P  Q unit: Unit apply: f a lambda: x.A[x] pair: <a, b> product: x:A  B[x] cons: [car / cdr] nil: [] token: "$token" filter: filter(P;l) bag-combine: xbs.f[x] bag-size: bag-size(bs) bag-filter: [xb|p[x]]
FDL editor aliases :  mu_ex_v5_cs-constraint

mu\_ex\_v5\_cs-constraint\{i:l\}(es;m1;m2;init;p1;p2)  ==
    \mforall{}e:E
        ((\mcdot{}  \mmember{}  mu\_ex\_v5\_LeaveCS()(e)
        {}\mRightarrow{}  (\mdownarrow{}\mexists{}e':E
                    \mexists{}i:Id
                      (<i,  make-Msg(``enter  cs``;Unit;\mcdot{})>  \mmember{}  mu\_ex\_v5\_main(init;m1;m2;p1;p2)(e')
                      \mwedge{}  (e'  <loc  e)
                      \mwedge{}  (\mforall{}e'':E
                                ((e'  <loc  e'')
                                {}\mRightarrow{}  (e''  <loc  e)
                                {}\mRightarrow{}  (\mforall{}j:Id
                                            (\mneg{}<j,  make-Msg(``enter  cs``;Unit;\mcdot{})>  \mmember{}
                                                  mu\_ex\_v5\_main(init;m1;m2;p1;p2)(e''))))))))
        \mwedge{}  (||filter(\mlambda{}e.name\_eq(es-header(es;e);``leave  cs``);
                                \mleq{}loc(e))||  \mleq{}  bag-size([p\mmember{}\mcup{}e'\mmember{}\mleq{}loc(e).mu\_ex\_v5\_main(init;m1;m2;p1;p2)  es  e'|
                                                                              name\_eq(msg-header(snd(p));``enter  cs``)])))


Date html generated: 2012_02_20-PM-06_59_14
Last ObjectModification: 2012_02_02-PM-03_01_14

Home Index