Step
*
1
2
of Lemma
member-local-simulation-inputs
.....wf..... 
1. f : Name ─→ Type@i'
2. Info : Type
3. es : EO+(Message(f))@i'
4. hdr : Name@i
5. locs : bag(Id)@i
6. hdr encodes Id × Info
7. e : E@i
8. v : Id × Info@i
9. (v ∈ mapfilter(λm.msg-body(m);λm.has-header-and-in-locs(m;hdr;locs);map(λe.info(e);≤loc(e))))
⇐⇒ ∃y:Message(f)
     ((y ∈ map(λe.info(e);≤loc(e))) ∧ ((↑has-header-and-in-locs(y;hdr;locs)) c∧ (v = msg-body(y) ∈ (Id × Info))))
⊢ (v ∈ mapfilter(λm.msg-body(m);λm.has-header-and-in-locs(m;hdr;locs);map(λe.info(e);≤loc(e)))) ∈ ℙ
BY
{ (Auto
   THEN Try ((Reduce (-1)
              THEN (RWO "assert-has-header-and-in-locs" (-1) THENA Auto)
              THEN D -1
              THEN Unfold `msg-type` 0
              THEN HypSubst' (-2) 0
              THEN Auto))
   ) }
Latex:
Latex:
.....wf..... 
1.  f  :  Name  {}\mrightarrow{}  Type@i'
2.  Info  :  Type
3.  es  :  EO+(Message(f))@i'
4.  hdr  :  Name@i
5.  locs  :  bag(Id)@i
6.  hdr  encodes  Id  \mtimes{}  Info
7.  e  :  E@i
8.  v  :  Id  \mtimes{}  Info@i
9.  (v  \mmember{}  mapfilter(\mlambda{}m.msg-body(m);\mlambda{}m.has-header-and-in-locs(m;hdr;locs);map(\mlambda{}e.info(e);\mleq{}loc(e))))
\mLeftarrow{}{}\mRightarrow{}  \mexists{}y:Message(f)
          ((y  \mmember{}  map(\mlambda{}e.info(e);\mleq{}loc(e)))  \mwedge{}  ((\muparrow{}has-header-and-in-locs(y;hdr;locs))  c\mwedge{}  (v  =  msg-body(y))))
\mvdash{}  (v  \mmember{}  mapfilter(\mlambda{}m.msg-body(m);\mlambda{}m.has-header-and-in-locs(m;hdr;locs);map(\mlambda{}e.info(e);\mleq{}loc(e))))  \mmember{}  \mBbbP{}
By
Latex:
(Auto
  THEN  Try  ((Reduce  (-1)
                        THEN  (RWO  "assert-has-header-and-in-locs"  (-1)  THENA  Auto)
                        THEN  D  -1
                        THEN  Unfold  `msg-type`  0
                        THEN  HypSubst'  (-2)  0
                        THEN  Auto))
  )
Home
Index