Nuprl Lemma : mu_ex_v5_send-token-received-or-born
[es:EO']. 
[m1,m2,init,p1,p2,p:Id]. 
[e:E].
  (<p, make-Msg([token];Unit;
)> 
 mu_ex_v5_main(init;m1;m2;p1;p2)(e)
  
 (
e':E
        (((
 
 mu_ex_v5_Token()(e') 
 (e' <loc e))
         
 ((loc(e') = init) 
 (
first(e')) 
 (
 
 mu_ex_v5_Token()(e')) 
 e' 
loc e ))
        
 (
e'':E
             (e' 
loc e''  
 (e'' <loc e) 
 (
b1,b2,b3:
.  (<b1, b2, b3> 
 mu_ex_v5_State(init)(e'') 
 (
b2)))))
        
 (
e'':E. ((e' <loc e'') 
 (e'' <loc e) 
 (
 
 mu_ex_v5_Token()(e'')))))))
Proof not projected
Definitions occuring in Statement : 
mu_ex_v5_main: mu_ex_v5_main(initial_token;m1;m2;proc1;proc2), 
mu_ex_v5_State: mu_ex_v5_State(initial_token), 
mu_ex_v5_Token: mu_ex_v5_Token(), 
make-Msg: make-Msg(hdr;typ;val), 
Message: Message, 
classrel: v 
 X(e), 
event-ordering+: EO+(Info), 
es-le: e 
loc e' , 
es-locl: (e <loc e'), 
es-first: first(e), 
es-loc: loc(e), 
es-E: E, 
Id: Id, 
assert:
b, 
bool:
, 
it:
, 
uall:
[x:A]. B[x], 
all:
x:A. B[x], 
exists:
x:A. B[x], 
not:
A, 
squash:
T, 
implies: P 
 Q, 
or: P 
 Q, 
and: P 
 Q, 
unit: Unit, 
pair: <a, b>, 
product: x:A 
 B[x], 
cons: [car / cdr], 
nil: [], 
token: "$token", 
equal: s = t
Definitions : 
prop:
, 
false: False, 
le: A 
 B, 
ge: i 
 j , 
nat:
, 
true: True, 
member: t 
 T, 
implies: P 
 Q, 
all:
x:A. B[x], 
not:
A, 
or: P 
 Q, 
squash:
T, 
unit: Unit, 
so_lambda: 
x.t[x], 
top: Top, 
uall:
[x:A]. B[x], 
Accum-loc-class: Accum-loc-class(f;init;X), 
SM4-class-du: SM4-class-du(init;trX1;trX2;trX3;trX4), 
mu_ex_v5_State: mu_ex_v5_State(initial_token), 
eq_atom: x =a y, 
atom-deq: AtomDeq, 
list-deq: list-deq(eq), 
name-deq: NameDeq, 
name_eq: name_eq(x;y), 
name: Name, 
subtype: S 
 T, 
bfalse: ff, 
band: p 
 q, 
ifthenelse: if b then t else f fi , 
uiff: uiff(P;Q), 
assert:
b, 
and: P 
 Q, 
exists:
x:A. B[x], 
btrue: tt, 
guard: {T}, 
cand: A c
 B, 
pi2: snd(t), 
pi1: fst(t), 
Id: Id, 
uimplies: b supposing a, 
strongwellfounded: SWellFounded(R[x; y]), 
es-locl: (e <loc e'), 
so_apply: x[s], 
es-p-local-pred: es-p-local-pred(es;P), 
sq_type: SQType(T), 
spreadn: spread3, 
isl: isl(x), 
mu_ex_v5_onRequest: mu_ex_v5_onRequest(), 
disjoint-union-tr: tr1 + tr2, 
mu_ex_v5_Request: mu_ex_v5_Request(), 
mu_ex_v5_Token: mu_ex_v5_Token(), 
single-valued-classrel: single-valued-classrel(es;X;T), 
iff: P 

 Q, 
outr: outr(x), 
mu_ex_v5_onToken: mu_ex_v5_onToken(), 
es-le: e 
loc e' , 
mu_ex_v5_onLeaveCS: mu_ex_v5_onLeaveCS(), 
mu_ex_v5_onUseSR: mu_ex_v5_onUseSR(), 
deq: EqDecider(T), 
mu_ex_v5_initState: mu_ex_v5_initState(initial_token), 
rev_implies: P 
 Q, 
it:
, 
eq_id: a = b
Lemmas : 
event-ordering+_wf, 
it_wf, 
valueall-type_wf, 
equal-valueall-type, 
make-Msg_wf, 
mu_ex_v5_main_wf, 
Id_wf, 
es-E_wf, 
equal_wf, 
btrue_wf, 
mu_ex_v5_State_wf, 
mu_ex_v5_initState_wf, 
primed-class-opt_wf, 
bool_wf, 
mu_ex_v5_Token_wf, 
unit_wf2, 
classrel_wf, 
not_wf, 
primed-class-opt-classrel, 
es-causl_wf, 
le_wf, 
nat_wf, 
less_than_wf, 
ge_wf, 
nat_properties, 
Message_wf, 
event-ordering+_inc, 
es-causl-swellfnd, 
mu_ex_v5_send-token-not-token, 
mu_ex_v5_send-token-had-token, 
lifting-loc-2_wf, 
rec-combined-loc-class-opt-1_wf, 
mu_ex_v5_LeaveCS_wf, 
mu_ex_v5_UseSR_wf, 
mu_ex_v5_Request_wf, 
disjoint-union-class_wf, 
mu_ex_v5_onLeaveCS_wf, 
mu_ex_v5_onUseSR_wf, 
all_wf, 
uall_wf, 
mu_ex_v5_onToken_wf, 
mu_ex_v5_onRequest_wf, 
disjoint-union-tr_wf, 
simple-loc-comb-2-classrel, 
rec-combined-loc-class-opt-1-classrel, 
band_wf, 
assert_elim, 
es-first_wf, 
assert_wf, 
es-loc_wf, 
or_wf, 
and_wf, 
es-le_wf, 
es-locl_wf, 
assert-name_eq, 
atom_subtype_base, 
list_subtype_base, 
name_wf, 
base-noloc-classrel, 
assert_of_band, 
bool_subtype_base, 
subtype_base_sq, 
pi1_wf_top, 
pi2_wf, 
disjoint-union-classrel, 
es-locl_transitivity1, 
es-le_weakening, 
es-locl_transitivity2, 
mu_ex_v5_State-single-val, 
es-locl-trichotomy, 
mu_ex_v5_token-implies-state, 
assert_of_bnot, 
eqff_to_assert, 
uiff_transitivity, 
eqtt_to_assert, 
bool_cases, 
bnot_wf, 
btrue_neq_bfalse, 
assert-eq-id, 
deq_wf, 
id-deq_wf, 
bfalse_wf, 
bag-member-single, 
es-init_wf, 
atom2_subtype_base, 
es-loc-init, 
es-init-le, 
es-first-init
\mforall{}[es:EO'].  \mforall{}[m1,m2,init,p1,p2,p:Id].  \mforall{}[e:E].
    (<p,  make-Msg([token];Unit;\mcdot{})>  \mmember{}  mu\_ex\_v5\_main(init;m1;m2;p1;p2)(e)
    {}\mRightarrow{}  (\mdownarrow{}\mexists{}e':E
                (((\mcdot{}  \mmember{}  mu\_ex\_v5\_Token()(e')  \mwedge{}  (e'  <loc  e))
                  \mvee{}  ((loc(e')  =  init)  \mwedge{}  (\muparrow{}first(e'))  \mwedge{}  (\mneg{}\mcdot{}  \mmember{}  mu\_ex\_v5\_Token()(e'))  \mwedge{}  e'  \mleq{}loc  e  ))
                \mwedge{}  (\mforall{}e'':E
                          (e'  \mleq{}loc  e'' 
                          {}\mRightarrow{}  (e''  <loc  e)
                          {}\mRightarrow{}  (\mforall{}b1,b2,b3:\mBbbB{}.    (<b1,  b2,  b3>  \mmember{}  mu\_ex\_v5\_State(init)(e'')  {}\mRightarrow{}  (\muparrow{}b2)))))
                \mwedge{}  (\mforall{}e'':E.  ((e'  <loc  e'')  {}\mRightarrow{}  (e''  <loc  e)  {}\mRightarrow{}  (\mneg{}\mcdot{}  \mmember{}  mu\_ex\_v5\_Token()(e'')))))))
Date html generated:
2012_02_20-PM-07_02_10
Last ObjectModification:
2012_02_02-PM-03_02_26
Home
Index