{ 
es:EO. 
e1,e2,b:E.
    
[Q,P:{e:E| loc(e) = loc(e1)}  
 {e:E| loc(e) = loc(e1)}  
 
].
      ((e1 <loc b)
      
 b 
loc e2 
      
 [e1;pred(b)]~([a,b].P[a;b])*[a,b].P[a;b]
      
 [b;e2]~([a,b].P[a;b])*[a,b].Q[a;b]
      
 [e1;e2]~([a,b].P[a;b])*[a,b].Q[a;b]) }
{ Proof }
Definitions occuring in Statement : 
es-pstar-q: [e1;e2]~([a,b].p[a; b])*[a,b].q[a; b], 
es-le: e 
loc e' , 
es-locl: (e <loc e'), 
es-pred: pred(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, 
es-pstar-q: [e1;e2]~([a,b].p[a; b])*[a,b].q[a; b], 
so_apply: x[s1;s2], 
exists:
x:A. B[x], 
int_seg: {i..j
}, 
and: P 
 Q, 
member: t 
 T, 
cand: A c
 B, 
lelt: i 
 j < k, 
le: A 
 B, 
not:
A, 
false: False, 
so_lambda: 
x y.t[x; y], 
assert:
b, 
bfalse: ff, 
ifthenelse: if b then t else f fi , 
btrue: tt, 
squash:
T, 
true: True, 
rev_implies: P 
 Q, 
iff: P 

 Q, 
es-locl: (e <loc e'), 
nat_plus: 
, 
uimplies: b supposing a, 
sq_type: SQType(T), 
guard: {T}, 
bool:
, 
unit: Unit, 
it:
Lemmas : 
int_seg_wf, 
le_wf, 
es-le_wf, 
es-locl_wf, 
Id_wf, 
es-loc_wf, 
es-pstar-q_wf, 
es-E_wf, 
es-pred_wf, 
subtype_base_sq, 
bool_subtype_base, 
false_wf, 
event_ordering_wf, 
es-le-loc, 
es-locl-first, 
es-loc-pred, 
bool_wf, 
lt_int_wf, 
assert_wf, 
le_int_wf, 
bnot_wf, 
iff_weakening_uiff, 
uiff_transitivity, 
eqtt_to_assert, 
assert_of_lt_int, 
eqff_to_assert, 
assert_functionality_wrt_uiff, 
bnot_of_lt_int, 
assert_of_le_int, 
int_subtype_base, 
nat_plus_properties, 
int_seg_properties, 
es-le-trans2, 
es-pred-locl, 
member_wf, 
es-first_wf, 
squash_wf, 
not_wf
\mforall{}es:EO.  \mforall{}e1,e2,b:E.
    \mforall{}[Q,P:\{e:E|  loc(e)  =  loc(e1)\}    {}\mrightarrow{}  \{e:E|  loc(e)  =  loc(e1)\}    {}\mrightarrow{}  \mBbbP{}].
        ((e1  <loc  b)
        {}\mRightarrow{}  b  \mleq{}loc  e2 
        {}\mRightarrow{}  [e1;pred(b)]\msim{}([a,b].P[a;b])*[a,b].P[a;b]
        {}\mRightarrow{}  [b;e2]\msim{}([a,b].P[a;b])*[a,b].Q[a;b]
        {}\mRightarrow{}  [e1;e2]\msim{}([a,b].P[a;b])*[a,b].Q[a;b])
Date html generated:
2011_08_16-AM-10_57_35
Last ObjectModification:
2011_06_18-AM-09_30_30
Home
Index