Nuprl Lemma : CLK-msg
∀[MsgType:{T:Type| valueall-type(T)} ]. ∀[locs:bag(Id)]. ∀[reply:Id ─→ MsgType ─→ (MsgType × Id)].
∀[f:CLK_headers_type{i:l}(MsgType)]. ∀[es:EO+(Message(f))]. ∀[e:E]. ∀[d:ℤ]. ∀[i:Id]. ∀[auth:𝔹]. ∀[v:MsgType]. ∀[k:ℤ].
(<d, i, mk-msg(auth;``CLK msg``;<v, k>)> ∈ CLK_main(MsgType;locs;reply;f)(e)
⇐⇒ loc(e) ↓∈ locs
∧ ((header(e) = ``CLK msg`` ∈ Name) ∧ has-es-info-type(es;e;f;MsgType × ℤ))
∧ (d = 0 ∈ ℤ)
∧ (i = (snd((reply loc(e) (fst(msgval(e)))))) ∈ Id)
∧ auth = ff
∧ (v = (fst((reply loc(e) (fst(msgval(e)))))) ∈ MsgType)
∧ (k = CLK_ClockVal(MsgType;f)@e ∈ ℤ))
Proof
Definitions occuring in Statement :
CLK_main: CLK_main(MsgType;locs;reply;f)
,
CLK_ClockFun: CLK_ClockVal(MsgType;f)@e
,
CLK_headers_type: CLK_headers_type{i:l}(MsgType)
,
msg-interface: Interface
,
mk-msg: mk-msg(auth;hdr;val)
,
es-info-body: msgval(e)
,
has-es-info-type: has-es-info-type(es;e;f;T)
,
es-header: header(e)
,
Message: Message(f)
,
classrel: v ∈ X(e)
,
event-ordering+: EO+(Info)
,
es-loc: loc(e)
,
es-E: E
,
Id: Id
,
name: Name
,
cons: [a / b]
,
nil: []
,
valueall-type: valueall-type(T)
,
bfalse: ff
,
bool: 𝔹
,
uall: ∀[x:A]. B[x]
,
pi1: fst(t)
,
pi2: snd(t)
,
iff: P
⇐⇒ Q
,
and: P ∧ Q
,
set: {x:A| B[x]}
,
apply: f a
,
function: x:A ─→ B[x]
,
pair: <a, b>
,
product: x:A × B[x]
,
natural_number: $n
,
int: ℤ
,
token: "$token"
,
universe: Type
,
equal: s = t ∈ T
,
bag-member: x ↓∈ bs
,
bag: bag(T)
Lemmas :
int_seg_wf,
length_wf,
name_wf,
CLK_headers_wf,
l_all_iff,
l_member_wf,
equal_wf,
CLK_headers_fun_wf,
cons_wf_listp,
cons_wf,
nil_wf,
listp_wf,
cons_member,
iff_weakening_equal,
classrel_wf,
msg-interface_wf,
CLK_main_wf,
make-msg-interface_wf,
mk-msg_wf,
subtype_rel_weakening,
ext-eq_weakening,
bag-member_wf,
es-loc_wf,
event-ordering+_subtype,
equal-wf-T-base,
es-header_wf,
has-es-info-type_wf,
equal-wf-base,
int_subtype_base,
es-info-body_wf,
bool_wf,
equal-wf-base-T,
CLK_ClockFun_wf,
es-E_wf,
event-ordering+_wf,
Message_wf,
subtype_rel_dep_function,
vatype_wf,
CLK_headers_type_wf,
bag_wf,
Id_wf,
set_wf,
valueall-type_wf,
CLK-ilf,
make-Msg-as-mk-msg,
mk-msg-equal,
bfalse_wf,
equal_functionality_wrt_subtype_rel2,
squash_wf,
true_wf
Latex:
\mforall{}[MsgType:\{T:Type| valueall-type(T)\} ]. \mforall{}[locs:bag(Id)]. \mforall{}[reply:Id {}\mrightarrow{} MsgType {}\mrightarrow{} (MsgType \mtimes{} Id)].
\mforall{}[f:CLK\_headers\_type\{i:l\}(MsgType)]. \mforall{}[es:EO+(Message(f))]. \mforall{}[e:E]. \mforall{}[d:\mBbbZ{}]. \mforall{}[i:Id]. \mforall{}[auth:\mBbbB{}].
\mforall{}[v:MsgType]. \mforall{}[k:\mBbbZ{}].
(<d, i, mk-msg(auth;``CLK msg``;<v, k>)> \mmember{} CLK\_main(MsgType;locs;reply;f)(e)
\mLeftarrow{}{}\mRightarrow{} loc(e) \mdownarrow{}\mmember{} locs
\mwedge{} ((header(e) = ``CLK msg``) \mwedge{} has-es-info-type(es;e;f;MsgType \mtimes{} \mBbbZ{}))
\mwedge{} (d = 0)
\mwedge{} (i = (snd((reply loc(e) (fst(msgval(e)))))))
\mwedge{} auth = ff
\mwedge{} (v = (fst((reply loc(e) (fst(msgval(e)))))))
\mwedge{} (k = CLK\_ClockVal(MsgType;f)@e))
Date html generated:
2015_07_23-PM-04_10_20
Last ObjectModification:
2015_02_04-PM-03_30_32
Home
Index