Nuprl Lemma : ping-ilf

[locs:bag(Id)]. [p:Id]. [es:EO']. [e:E]. [i:Id]. [m:Message].
  {<i, m>  ping_main(locs;p)(e)
   ((loc(e) = p)
       (e':{e':E| e' loc e } 
           z:Id
            (z  Base([start];Id)(e')
             (z1:Id
                (((((i = z1)  (m = make-Msg([ping];Id;loc(e))))  (e = e'))
                 (((i = z)  (m = make-Msg([out];Id;z1)))  z1  Base([pong];Id)(e)))
                 z1  locs)))))
       (loc(e)  locs  (m = make-Msg([pong];Id;loc(e)))  i  Base([ping];Id)(e))}


Proof not projected




Definitions occuring in Statement :  ping_main: ping_main(locs;p),  make-Msg: make-Msg(hdr;typ;val),  base-headers-msg-val: Base(hdr;typ),  Message: Message,  classrel: v  X(e),  event-ordering+: EO+(Info),  es-le: e loc e' ,  es-loc: loc(e),  es-E: E,  Id: Id,  sq_or: a  b,  uall: [x:A]. B[x],  guard: {T},  exists: x:A. B[x],  iff: P  Q,  squash: T,  and: P  Q,  set: {x:A| B[x]} ,  pair: <a, b>,  product: x:A  B[x],  cons: [car / cdr],  nil: [],  token: "$token",  equal: s = t,  bag-member: x  bs,  bag: bag(T)
Definitions :  uall: [x:A]. B[x],  guard: {T},  iff: P  Q,  classrel: v  X(e),  sq_or: a  b,  and: P  Q,  squash: T,  exists: x:A. B[x],  bag-member: x  bs,  member: t  T,  implies: P  Q,  rev_implies: P  Q,  prop: ,  name: Name,  true: True,  so_lambda: x.t[x],  top: Top,  Id: Id,  ping_main: ping_main(locs;p),  ping_P: ping_P(locs),  ping_Reply: ping_Reply(),  ping_Subs: ping_Subs(locs),  ping_Handler: ping_Handler(),  ping_pong: ping_pong(),  ping_Ping: ping_Ping(),  uiff: uiff(P;Q),  all: x:A. B[x],  ping_Start: ping_Start(),  ping_ping: ping_ping(),  ping_cout: ping_cout(),  ping_Pong: ping_Pong(),  subtype: S  T,  ifthenelse: if b then t else f fi ,  ping_out: ping_out(),  false: False,  btrue: tt,  bfalse: ff,  cand: A c B,  so_apply: x[s],  uimplies: b supposing a,  pi1: fst(t),  pi2: snd(t),  sq_type: SQType(T),  sq_stable: SqStable(P),  bool: ,  unit: Unit,  not: A,  deq: EqDecider(T),  it:
Lemmas :  classrel_wf,  Message_wf,  Id_wf,  ping_main_wf,  sq_or_wf,  es-loc_wf,  event-ordering+_inc,  squash_wf,  es-E_wf,  es-le_wf,  base-headers-msg-val_wf,  make-Msg_wf,  Id-valueall-type,  valueall-type_wf,  bag-member_wf,  event-ordering+_wf,  bag_wf,  parallel-class_wf,  class-at_wf,  ping_P_wf,  single-bag_wf,  ping_Reply_wf,  bind-class_wf,  ping_Subs_wf,  ping_Handler_wf,  simple-loc-comb-1_wf,  concat-lifting-loc-1_wf,  ping_pong_wf,  ping_Ping_wf,  false_wf,  iff_transitivity,  parallel-classrel-weak,  sq_or_functionality_wrt_iff,  classrel-at,  and_functionality_wrt_iff,  bag-member-single-weak,  bind-class-rel-weak,  simple-loc-comb-1-concat-classrel-weak,  and_functionality_wrt_uiff3,  squash_functionality_wrt_uiff,  exists_functionality_wrt_iff,  pi1_wf_top,  Error :pi2_wf,  iff_weakening_uiff,  bag-member-map,  send-once-loc-classrel,  squash_and,  and_functionality_wrt_uiff,  sq_or_squash3,  squash_equal,  subtype_base_sq,  atom2_subtype_base,  eo-forward-first2,  squash-classrel,  eo-forward_wf,  member-eo-forward-E,  sq_stable_from_decidable,  decidable__es-le,  eo-forward-base-classrel,  bag-member-ifthenelse,  eo-forward-loc,  ifthenelse_functionality_wrt_iff,  bag-member-empty-weak,  bool_wf,  uiff_transitivity,  assert_wf,  eqtt_to_assert,  assert-deq,  id-deq_wf,  ping_out_wf,  bnot_wf,  not_wf,  eqff_to_assert,  assert_of_bnot,  not_functionality_wrt_uiff,  and_functionality_wrt_uiff2,  squash_squash,  squash-bag-member,  bag-map_wf,  ping_Start_wf,  send-once-loc-class_wf,  ping_ping_wf,  ping_cout_wf,  ping_Pong_wf,  es-first_wf,  ifthenelse_wf,  deq_wf,  empty-bag_wf

\mforall{}[locs:bag(Id)].  \mforall{}[p:Id].  \mforall{}[es:EO'].  \mforall{}[e:E].  \mforall{}[i:Id].  \mforall{}[m:Message].
    \{<i,  m>  \mmember{}  ping\_main(locs;p)(e)
    \mLeftarrow{}{}\mRightarrow{}  ((loc(e)  =  p)
            \mwedge{}  (\mdownarrow{}\mexists{}e':\{e':E|  e'  \mleq{}loc  e  \} 
                      \mexists{}z:Id
                        (z  \mmember{}  Base([start];Id)(e')
                        \mwedge{}  (\mexists{}z1:Id
                                (((((i  =  z1)  \mwedge{}  (m  =  make-Msg([ping];Id;loc(e))))  \mwedge{}  (e  =  e'))
                                \mdownarrow{}\mvee{}  (((i  =  z)  \mwedge{}  (m  =  make-Msg([out];Id;z1)))  \mwedge{}  z1  \mmember{}  Base([pong];Id)(e)))
                                \mwedge{}  z1  \mdownarrow{}\mmember{}  locs)))))
            \mdownarrow{}\mvee{}  (loc(e)  \mdownarrow{}\mmember{}  locs  \mwedge{}  (m  =  make-Msg([pong];Id;loc(e)))  \mwedge{}  i  \mmember{}  Base([ping];Id)(e))\}


Date html generated: 2012_02_20-PM-06_21_29
Last ObjectModification: 2012_02_02-PM-02_46_49

Home Index