{ es:EO. i:Id.
    [P:e1:{e:E| loc(e) = i}   {e2:E| loc(e2) = i}   ]
      (e1@i.e2e1.(e:E. ((e1 <loc e)  e loc e2   P[e;e2]))  P[e1;e2]
       e1@i.e2e1.P[e1;e2]) }

{ Proof }



Definitions occuring in Statement :  alle-ge: e'e.P[e'],  alle-at: e@i.P[e],  es-le: e loc e' ,  es-locl: (e <loc e'),  es-loc: loc(e),  es-E: E,  event_ordering: EO,  Id: Id,  uall: [x:A]. B[x],  prop: ,  so_apply: x[s1;s2],  all: x:A. B[x],  implies: P  Q,  set: {x:A| B[x]} ,  function: x:A  B[x],  equal: s = t
Definitions :  all: x:A. B[x],  uall: [x:A]. B[x],  prop: ,  implies: P  Q,  alle-ge: e'e.P[e'],  so_apply: x[s1;s2],  member: t  T,  so_lambda: x.t[x],  le: A  B,  not: A,  false: False,  ge: i  j ,  es-le: e loc e' ,  and: P  Q,  cand: A c B,  or: P  Q,  guard: {T},  top: Top,  subtype: S  T,  assert: b,  bfalse: ff,  ifthenelse: if b then t else f fi ,  alle-at: e@i.P[e],  es-locl: (e <loc e'),  so_apply: x[s],  uimplies: b supposing a,  nat: ,  iff: P  Q,  rev_implies: P  Q,  sq_type: SQType(T)
Lemmas :  alle-at_wf,  es-E_wf,  es-le_wf,  es-locl_wf,  Id_wf,  es-loc_wf,  event_ordering_wf,  es-le-loc,  nat_wf,  nat_properties,  ge_wf,  le_wf,  length_wf1,  es-interval_wf,  member-es-interval,  non_neg_length,  length_wf_nat,  es-interval_wf2,  top_wf,  iff_weakening_uiff,  length_zero,  l_member_wf,  nil_member,  es-interval-partition,  length-append,  es-pred_wf,  subtype_base_sq,  bool_wf,  bool_subtype_base,  false_wf,  es-locl-first,  es-le-pred,  es-interval-non-zero

\mforall{}es:EO.  \mforall{}i:Id.
    \mforall{}[P:e1:\{e:E|  loc(e)  =  i\}    {}\mrightarrow{}  \{e2:E|  loc(e2)  =  i\}    {}\mrightarrow{}  \mBbbP{}]
        (\mforall{}e1@i.\mforall{}e2\mgeq{}e1.(\mforall{}e:E.  ((e1  <loc  e)  {}\mRightarrow{}  e  \mleq{}loc  e2    {}\mRightarrow{}  P[e;e2]))  {}\mRightarrow{}  P[e1;e2]
        {}\mRightarrow{}  \mforall{}e1@i.\mforall{}e2\mgeq{}e1.P[e1;e2])


Date html generated: 2011_08_16-AM-10_53_32
Last ObjectModification: 2011_06_18-AM-09_26_50

Home Index