{ [es:EO]. [e1:E]. [e2:{e:E| loc(e) = loc(e1)} ].
  [p:{e:E| loc(e) = loc(e1)}   ].
    uiff(e[e1,e2].e = first e  e1.p[e];e[e1,e2].p[e]) }

{ Proof }



Definitions occuring in Statement :  es-first-since: e2 = first e  e1.P[e] alle-between2: e[e1,e2].P[e] es-loc: loc(e) es-E: E event_ordering: EO Id: Id uiff: uiff(P;Q) uall: [x:A]. B[x] prop: so_apply: x[s] not: A set: {x:A| B[x]}  function: x:A  B[x] equal: s = t
Definitions :  uall: [x:A]. B[x] prop: uiff: uiff(P;Q) alle-between2: e[e1,e2].P[e] not: A so_apply: x[s] member: t  T and: P  Q uimplies: b supposing a all: x:A. B[x] implies: P  Q false: False so_lambda: x.t[x] es-first-since: e2 = first e  e1.P[e] alle-between1: e[e1,e2).P[e] es-le: e loc e'  or: P  Q wellfounded: WellFnd{i}(A;x,y.R[x; y]) guard: {T} trans: Trans(T;x,y.E[x; y])
Lemmas :  es-le_wf es-E_wf not_wf es-first-since_wf es-loc_wf Id_wf event_ordering_wf es-le-loc es-locl_wf es-locl-wellfnd es-le-trans

\mforall{}[es:EO].  \mforall{}[e1:E].  \mforall{}[e2:\{e:E|  loc(e)  =  loc(e1)\}  ].  \mforall{}[p:\{e:E|  loc(e)  =  loc(e1)\}    {}\mrightarrow{}  \mBbbP{}].
    uiff(\mforall{}e\mmember{}[e1,e2].\mneg{}e  =  first  e  \mgeq{}  e1.p[e];\mforall{}e\mmember{}[e1,e2].\mneg{}p[e])


Date html generated: 2011_08_16-AM-10_56_36
Last ObjectModification: 2011_06_18-AM-09_29_49

Home Index