{ [es:EO]. [p:E  (E + Top)].
    [A:E  ]
      ([e,e':E].  (same-thread(es;p;e;e')) supposing (A[e'] and A[e])) supposin\000Cg 
         ((x:{e:E| A[e]} 
            y:{e:E| A[e]} 
              ((y = x)  ((can-apply(p;y))  A[do-apply(p;y)]))) and 
         p-inject({e:E| A[e]} ;E;p)) 
    supposing causal-predecessor(es;p) }

{ Proof }



Definitions occuring in Statement :  same-thread: same-thread(es;p;e;e'),  causal-predecessor: causal-predecessor(es;p),  es-E: E,  event_ordering: EO,  assert: b,  uimplies: b supposing a,  uall: [x:A]. B[x],  top: Top,  prop: ,  so_apply: x[s],  all: x:A. B[x],  exists: x:A. B[x],  or: P  Q,  and: P  Q,  set: {x:A| B[x]} ,  function: x:A  B[x],  union: left + right,  equal: s = t,  p-inject: p-inject(A;B;f),  do-apply: do-apply(f;x),  can-apply: can-apply(f;x)
Definitions :  strong-subtype: strong-subtype(A;B),  le: A  B,  ge: i  j ,  not: A,  less_than: a < b,  uiff: uiff(P;Q),  subtype_rel: A r B,  axiom: Ax,  final-iterate: final-iterate(f;x),  same-thread: same-thread(es;p;e;e'),  ifthenelse: if b then t else f fi ,  bool: ,  do-apply: do-apply(f;x),  void: Void,  can-apply: can-apply(f;x),  cand: A c B,  limited-type: LimitedType,  pair: <a, b>,  and: P  Q,  or: P  Q,  product: x:A  B[x],  exists: x:A. B[x],  subtype: S  T,  suptype: suptype(S; T),  so_apply: x[s],  set: {x:A| B[x]} ,  p-inject: p-inject(A;B;f),  apply: f a,  es-causl: (e < e'),  implies: P  Q,  assert: b,  universe: Type,  prop: ,  causal-predecessor: causal-predecessor(es;p),  uimplies: b supposing a,  isect: x:A. B[x],  dep-isect: Error :dep-isect,  eq_atom: x =a y,  eq_atom: eq_atom$n(x;y),  all: x:A. B[x],  uall: [x:A]. B[x],  function: x:A  B[x],  union: left + right,  top: Top,  es-E: E,  record+: record+,  member: t  T,  equal: s = t,  event_ordering: EO,  record-select: r.x,  infix_ap: x f y,  tactic: Error :tactic,  record: record(x.T[x]),  l_member: (x  l),  lambda: x.A[x],  so_lambda: x.t[x],  guard: {T},  wellfounded: WellFnd{i}(A;x,y.R[x; y]),  sq_type: SQType(T),  decide: case b of inl(x) => s[x] | inr(y) => t[y]
Lemmas :  same-thread_transitivity,  same-thread_inversion,  same-thread-do-apply,  same-thread_weakening,  subtype_base_sq,  es-causl-wellfnd,  es-causl_wf,  uiff_inversion,  top_wf,  es-E_wf,  member_wf,  can-apply_wf,  assert_wf,  p-inject_wf,  causal-predecessor_wf,  event_ordering_wf,  do-apply_wf,  same-thread_wf

\mforall{}[es:EO].  \mforall{}[p:E  {}\mrightarrow{}  (E  +  Top)].
    \mforall{}[A:E  {}\mrightarrow{}  \mBbbP{}]
        (\mforall{}[e,e':E].    (same-thread(es;p;e;e'))  supposing  (A[e']  and  A[e]))  supposing 
              ((\mexists{}x:\{e:E|  A[e]\}  .  \mforall{}y:\{e:E|  A[e]\}  .  ((y  =  x)  \mvee{}  ((\muparrow{}can-apply(p;y))  \mwedge{}  A[do-apply(p;y)])))  and 
              p-inject(\{e:E|  A[e]\}  ;E;p)) 
    supposing  causal-predecessor(es;p)


Date html generated: 2011_08_16-AM-11_19_22
Last ObjectModification: 2011_06_20-AM-00_24_38

Home Index