Nuprl Lemma : local-simulation-validity
∀correct:Id ─→ ℙ. ∀g,f:Name ─→ Type. ∀X:EClass(Interface).
  (LocalClass(X)
  
⇒ (∀locs:bag(Id). ∀hdr:Name.
        ∀hdrs:Name List. ∀es:EO+(Message(f)).
          ((∀i:Id. ((correct i) 
⇒ local-simulation-input-validity(g;X;hdr;locs;hdrs;es;i)))
          
⇒ (∀P:Interface ─→ ℙ. ∀R:Interface ─→ Message(g) ─→ ℙ.
                ((∀eo:EO+(Message(g))
                    (eo-msg-interface-constraint(eo;X;hdrs;g)
                    
⇒ (∀e:E. ∀v:Interface.  (v ∈ X(e) 
⇒ P[v] 
⇒ (↓∃e':E. ((e' < e) ∧ R[v;info(e')]))))))
                
⇒ (∀e:E. ∀v:Interface.
                      ((correct loc(e))
                      
⇒ v ∈ local-simulation-class(X;locs;hdr)(e)
                      
⇒ P[v]
                      
⇒ (↓∃e':E
                            ((e' <loc e)
                            ∧ (↑has-header-and-in-locs(info(e');hdr;locs))
                            ∧ R[v;snd(msg-body(info(e')))]))))))) 
        supposing hdr encodes Id × Message(g)))
Proof
Definitions occuring in Statement : 
local-simulation-input-validity: local-simulation-input-validity(g;X;hdr;locs;hdrs;es;i)
, 
eo-msg-interface-constraint: eo-msg-interface-constraint(es;X;hdrs;f)
, 
msg-interface: Interface
, 
has-header-and-in-locs: has-header-and-in-locs(msg;hdr;locs)
, 
local-simulation-class: local-simulation-class(X;locs;hdr)
, 
encodes-msg-type: hdr encodes T
, 
msg-body: msg-body(msg)
, 
Message: Message(f)
, 
local-class: LocalClass(X)
, 
classrel: v ∈ X(e)
, 
eclass: EClass(A[eo; e])
, 
es-info: info(e)
, 
event-ordering+: EO+(Info)
, 
es-locl: (e <loc e')
, 
es-causl: (e < e')
, 
es-loc: loc(e)
, 
es-E: E
, 
Id: Id
, 
name: Name
, 
list: T List
, 
assert: ↑b
, 
uimplies: b supposing a
, 
prop: ℙ
, 
so_apply: x[s1;s2]
, 
so_apply: x[s]
, 
pi2: snd(t)
, 
all: ∀x:A. B[x]
, 
exists: ∃x:A. B[x]
, 
squash: ↓T
, 
implies: P 
⇒ Q
, 
and: P ∧ Q
, 
apply: f a
, 
function: x:A ─→ B[x]
, 
product: x:A × B[x]
, 
universe: Type
, 
bag: bag(T)
Lemmas : 
global-eo-causl, 
local-simulation-inputs_wf, 
Message_wf, 
subtype_rel_list, 
Id_wf, 
bag-member_wf, 
top_wf, 
local-simulation-event_wf, 
es-E_wf, 
local-simulation-eo_wf, 
event-ordering+_subtype, 
global-eo-E-sq, 
filter_wf5, 
es-before_wf, 
compose_wf, 
l_member_wf, 
bool_wf, 
has-header-and-in-locs_wf, 
subtype_rel_product, 
subtype_top, 
subtype_rel_transitivity, 
es-info_wf, 
filter-map, 
length-map, 
select_member, 
lelt_wf, 
length_wf, 
member_filter, 
select_wf, 
sq_stable__le, 
member-es-before, 
es-locl_wf, 
assert_wf, 
global-eo-info, 
filter_cons_lemma, 
filter_nil_lemma, 
filter_append_sq, 
map_append_sq, 
filter_type, 
name_wf, 
msg-header_wf, 
assert-has-header-and-in-locs, 
list_wf, 
less_than_wf, 
map_wf, 
eqtt_to_assert, 
cons_wf, 
nil_wf, 
eqff_to_assert, 
equal_wf, 
bool_cases_sqequal, 
subtype_base_sq, 
bool_subtype_base, 
le_wf, 
lt_int_wf, 
assert_of_lt_int, 
select-map, 
assert-bnot, 
select-append, 
map-map, 
set_wf, 
msg-body_wf2, 
subtype_rel-equal, 
msg-type_wf, 
iff_weakening_equal
Latex:
\mforall{}correct:Id  {}\mrightarrow{}  \mBbbP{}.  \mforall{}g,f:Name  {}\mrightarrow{}  Type.  \mforall{}X:EClass(Interface).
    (LocalClass(X)
    {}\mRightarrow{}  (\mforall{}locs:bag(Id).  \mforall{}hdr:Name.
                \mforall{}hdrs:Name  List.  \mforall{}es:EO+(Message(f)).
                    ((\mforall{}i:Id.  ((correct  i)  {}\mRightarrow{}  local-simulation-input-validity(g;X;hdr;locs;hdrs;es;i)))
                    {}\mRightarrow{}  (\mforall{}P:Interface  {}\mrightarrow{}  \mBbbP{}.  \mforall{}R:Interface  {}\mrightarrow{}  Message(g)  {}\mrightarrow{}  \mBbbP{}.
                                ((\mforall{}eo:EO+(Message(g))
                                        (eo-msg-interface-constraint(eo;X;hdrs;g)
                                        {}\mRightarrow{}  (\mforall{}e:E.  \mforall{}v:Interface.
                                                    (v  \mmember{}  X(e)  {}\mRightarrow{}  P[v]  {}\mRightarrow{}  (\mdownarrow{}\mexists{}e':E.  ((e'  <  e)  \mwedge{}  R[v;info(e')]))))))
                                {}\mRightarrow{}  (\mforall{}e:E.  \mforall{}v:Interface.
                                            ((correct  loc(e))
                                            {}\mRightarrow{}  v  \mmember{}  local-simulation-class(X;locs;hdr)(e)
                                            {}\mRightarrow{}  P[v]
                                            {}\mRightarrow{}  (\mdownarrow{}\mexists{}e':E
                                                        ((e'  <loc  e)
                                                        \mwedge{}  (\muparrow{}has-header-and-in-locs(info(e');hdr;locs))
                                                        \mwedge{}  R[v;snd(msg-body(info(e')))]))))))) 
                supposing  hdr  encodes  Id  \mtimes{}  Message(g)))
Date html generated:
2015_07_22-PM-00_07_15
Last ObjectModification:
2015_02_04-PM-04_43_16
Home
Index