Step
*
of Lemma
local-simulation-validity2
∀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)))
          
⇒ (∀R:Interface ─→ Message(g) ─→ ℙ. ∀R':Interface ─→ Message(f) ─→ ℙ.
                ((∀eo:EO+(Message(g))
                    (eo-msg-interface-constraint(eo;X;hdrs;g)
                    
⇒ for every v in X there is an
                       earlier event  with info=m such that
                       R[v;m]))
                
⇒ (∀e:E. ∀v:Interface.
                      ((correct loc(e))
                      
⇒ (↑has-header-and-in-locs(info(e);hdr;locs))
                      
⇒ R[v;snd(msg-body(info(e)))]
                      
⇒ (↓∃e':E. ((e' < e) ∧ R'[v;info(e')]))))
                
⇒ for every v in local-simulation-class(X;locs;hdr) at location i s.t. correct i
                   there is an earlier event with info=m  such that R'[v;m]))) 
        supposing hdr encodes Id × Message(g)))
BY
{ (InstLemma `local-simulation-validity` []
   THEN RepeatFor 7 ((ParallelLast' THENA Auto))
   THEN ((Intro THEN D -2) THENA Auto)
   THEN RepeatFor 3 ((ParallelLast' THENA Auto))
   THEN (With ⌈λ2x.True⌉ (D (-1))⋅ THENA Auto)
   THEN ((ParallelLast' THEN (D 0 THENA Auto))
         THEN (ParallelOp -2
               THENA (RepUR ``so_apply so_lambda`` 0
                      THEN RepeatFor 2 ((ParallelLast' THENA Auto))
                      THEN UnfoldTopAb (-1)
                      THEN RepeatFor 3 (ParallelLast)
                      THEN Auto)
               )
         )
   THEN (D 0
         THENA (Auto
                THEN (RWO "assert-has-header-and-in-locs" (-1) THENA Auto)
                THEN (Assert msg-body(info(e)) ∈ Id × Message(g) BY
                            Auto)
                THEN Auto)
         )) }
1
1. correct : Id ─→ ℙ@i'
2. g : Name ─→ Type@i'
3. f : Name ─→ Type@i'
4. X : EClass(Interface)@i'
5. LocalClass(X)@i'
6. locs : bag(Id)@i
7. hdr : Name@i
8. [%8] : hdr encodes Id × Message(g)
9. hdrs : Name List@i
10. es : EO+(Message(f))@i'
11. ∀i:Id. ((correct i) 
⇒ local-simulation-input-validity(g;X;hdr;locs;hdrs;es;i))@i
12. R : Interface ─→ Message(g) ─→ ℙ@i'
13. R' : Interface ─→ Message(f) ─→ ℙ@i'
14. ∀eo:EO+(Message(g))
      (eo-msg-interface-constraint(eo;X;hdrs;g)
      
⇒ for every v in X there is an
         earlier event  with info=m such that
         R[v;m])@i'
15. ∀e:E. ∀v:Interface.
      ((correct loc(e))
      
⇒ v ∈ local-simulation-class(X;locs;hdr)(e)
      
⇒ λ2x.True[v]
      
⇒ (↓∃e':E. ((e' <loc e) ∧ (↑has-header-and-in-locs(info(e');hdr;locs)) ∧ R[v;snd(msg-body(info(e')))])))
16. ∀e:E. ∀v:Interface.
      ((correct loc(e))
      
⇒ (↑has-header-and-in-locs(info(e);hdr;locs))
      
⇒ R[v;snd(msg-body(info(e)))]
      
⇒ (↓∃e':E. ((e' < e) ∧ R'[v;info(e')])))@i
⊢ for every v in local-simulation-class(X;locs;hdr) at location i s.t. correct i there is an earlier event with info=m
   such that R'[v;m]
Latex:
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{}R:Interface  {}\mrightarrow{}  Message(g)  {}\mrightarrow{}  \mBbbP{}.  \mforall{}R':Interface  {}\mrightarrow{}  Message(f)  {}\mrightarrow{}  \mBbbP{}.
                                ((\mforall{}eo:EO+(Message(g))
                                        (eo-msg-interface-constraint(eo;X;hdrs;g)
                                        {}\mRightarrow{}  for  every  v  in  X  there  is  an
                                              earlier  event    with  info=m  such  that
                                              R[v;m]))
                                {}\mRightarrow{}  (\mforall{}e:E.  \mforall{}v:Interface.
                                            ((correct  loc(e))
                                            {}\mRightarrow{}  (\muparrow{}has-header-and-in-locs(info(e);hdr;locs))
                                            {}\mRightarrow{}  R[v;snd(msg-body(info(e)))]
                                            {}\mRightarrow{}  (\mdownarrow{}\mexists{}e':E.  ((e'  <  e)  \mwedge{}  R'[v;info(e')]))))
                                {}\mRightarrow{}  for  every  v  in  local-simulation-class(X;locs;hdr)  at  location  i  s.t.  correct  i
                                      there  is  an  earlier  event  with  info=m    such  that  R'[v;m]))) 
                supposing  hdr  encodes  Id  \mtimes{}  Message(g)))
By
Latex:
(InstLemma  `local-simulation-validity`  []
  THEN  RepeatFor  7  ((ParallelLast'  THENA  Auto))
  THEN  ((Intro  THEN  D  -2)  THENA  Auto)
  THEN  RepeatFor  3  ((ParallelLast'  THENA  Auto))
  THEN  (With  \mkleeneopen{}\mlambda{}\msubtwo{}x.True\mkleeneclose{}  (D  (-1))\mcdot{}  THENA  Auto)
  THEN  ((ParallelLast'  THEN  (D  0  THENA  Auto))
              THEN  (ParallelOp  -2
                          THENA  (RepUR  ``so\_apply  so\_lambda``  0
                                        THEN  RepeatFor  2  ((ParallelLast'  THENA  Auto))
                                        THEN  UnfoldTopAb  (-1)
                                        THEN  RepeatFor  3  (ParallelLast)
                                        THEN  Auto)
                          )
              )
  THEN  (D  0
              THENA  (Auto
                            THEN  (RWO  "assert-has-header-and-in-locs"  (-1)  THENA  Auto)
                            THEN  (Assert  msg-body(info(e))  \mmember{}  Id  \mtimes{}  Message(g)  BY
                                                    Auto)
                            THEN  Auto)
              ))
Home
Index