Nuprl Lemma : CLK-prop
∀MsgType:ValueAllType. ∀locs:bag(Id). ∀reply:Id ─→ MsgType ─→ (MsgType × Id). ∀f:CLK_headers_type{i:l}(MsgType).
∀es:EO+(Message(f)). ∀e1,e2:E. ∀clock1,clock2:ℤ.
(CLK_message-constraint{i:l}(MsgType;locs;reply;f)
⇒ (∀e:E. (↑e ∈b CLK_msg'base(MsgType;f)))
⇒ e1 ─→ e2
⇒ clock1 ∈ CLK_Clock(MsgType;f)(e1)
⇒ clock2 ∈ CLK_Clock(MsgType;f)(e2)
⇒ clock1 < clock2)
Proof
Definitions occuring in Statement :
CLK_message-constraint: CLK_message-constraint{i:l}(MsgType;locs;reply;f)
,
CLK_main: CLK_main(MsgType;locs;reply;f)
,
CLK_Clock: CLK_Clock(MsgType;f)
,
CLK_msg'base: CLK_msg'base(MsgType;f)
,
CLK_headers_type: CLK_headers_type{i:l}(MsgType)
,
es-happened-before: e1 ─→ e2
,
Message: Message(f)
,
classrel: v ∈ X(e)
,
member-eclass: e ∈b X
,
event-ordering+: EO+(Info)
,
es-E: E
,
Id: Id
,
vatype: ValueAllType
,
assert: ↑b
,
less_than: a < b
,
all: ∀x:A. B[x]
,
implies: P
⇒ Q
,
function: x:A ─→ B[x]
,
product: x:A × B[x]
,
int: ℤ
,
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,
es-causl-swellfnd,
event-ordering+_subtype,
nat_properties,
less_than_transitivity1,
less_than_irreflexivity,
ge_wf,
less_than_wf,
member-less_than,
classrel_wf,
CLK_Clock_wf,
es-happened-before_wf,
CLK_main_wf,
es-E_wf,
int_seg_subtype-nat,
decidable__le,
subtract_wf,
false_wf,
not-ge-2,
less-iff-le,
condition-implies-le,
minus-one-mul,
zero-add,
minus-add,
minus-minus,
add-associates,
add-swap,
add-commutes,
add_functionality_wrt_le,
add-zero,
le-add-cancel,
decidable__equal_int,
subtype_rel-int_seg,
le_weakening,
int_seg_properties,
le_wf,
nat_wf,
zero-le-nat,
lelt_wf,
es-causl_wf,
decidable__equal_Id,
es-loc_wf,
decidable__lt,
not-equal-2,
le-add-cancel-alt,
not-le-2,
sq_stable__le,
add-mul-special,
zero-mul,
all_wf,
assert_wf,
member-eclass_wf,
CLK_msg'base_wf,
CLK_message-constraint_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_strict_inc2,
es-causl_transitivity1,
es-causle_weakening_eq,
and_wf,
es-causle_wf,
es-le-self,
es-locl_wf,
es-le_wf,
CLK-ilf,
es-info_wf,
CLK_Clock-classrel,
equal-wf-base-T,
int_subtype_base,
CLK_ClockFun_wf,
subtype_base_sq,
squash_wf,
true_wf,
CLK_ClockFun-eq,
es-first_wf2,
bool_wf,
eqtt_to_assert,
classfun-res-member-base,
Message-eta,
msg-authentic_wf,
bool_cases,
bool_subtype_base,
basicMessage_wf,
bfalse_wf,
btrue_wf,
btrue_neq_bfalse,
eqff_to_assert,
assert_of_bnot,
make-Msg-equal,
msg-header_wf,
msg-body_wf2,
msg-type_wf,
es-info-body_wf,
subtype_rel_weakening,
ext-eq_weakening,
msg-has-type-encodes,
sq_stable__encodes-msg-type,
l_all_fwd,
name_eq_wf,
assert-name_eq,
bool_cases_sqequal,
assert-bnot,
equal-wf-T-base,
equal_functionality_wrt_subtype_rel2,
le_to_lt,
imax_wf,
imax_ub,
es-pred_wf,
less_than_transitivity2,
le_weakening2,
make-Msg_wf,
hdrmakeMsg_lemma,
subtype_rel-equal,
bodymakeMsg_lemma
Latex:
\mforall{}MsgType:ValueAllType. \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{}e1,e2:E. \mforall{}clock1,clock2:\mBbbZ{}.
(CLK\_message-constraint\{i:l\}(MsgType;locs;reply;f)
{}\mRightarrow{} (\mforall{}e:E. (\muparrow{}e \mmember{}\msubb{} CLK\_msg'base(MsgType;f)))
{}\mRightarrow{} e1 {}\mrightarrow{} e2
{}\mRightarrow{} clock1 \mmember{} CLK\_Clock(MsgType;f)(e1)
{}\mRightarrow{} clock2 \mmember{} CLK\_Clock(MsgType;f)(e2)
{}\mRightarrow{} clock1 < clock2)
Date html generated:
2015_07_23-PM-04_10_30
Last ObjectModification:
2015_04_08-AM-02_11_24
Home
Index