Step * 1 of Lemma std-components-property


1. [M] Type ⟶ Type
2. Continuous+(P.M[P])
3. n2m : ℕ ⟶ pMsg(P.M[P])@i
4. l2m Id ⟶ pMsg(P.M[P])@i
5. Cs component(P.M[P]) List@i
6. <Cs, lg-nil()> ∈ System(P.M[P])
7. S2 InitialSystem(P.M[P])@i
8. sub-system(P.M[P];<Cs, lg-nil()>;S2)@i
9. env pEnvType(P.M[P])@i
10. ∀e1,e2:runEvents(pRun(S2;env;n2m;l2m)).
      (∀P:Process(P.M[P])
         ((P ∈ run-prior-state(S2;pRun(S2;env;n2m;l2m);e1))
          (iterate-Process(P;map(λe.run-event-msg(pRun(S2;env;n2m;l2m);e);
                                   run-event-interval(pRun(S2;env;n2m;l2m);e1;e2)))
              ∈ run-event-state(pRun(S2;env;n2m;l2m);e2)))) supposing 
         ((run-event-step(e1) ≤ run-event-step(e2)) and 
         (run-event-loc(e1) run-event-loc(e2) ∈ Id))
11. pRun(S2;env;n2m;l2m) ∈ pRunType(P.M[P])
12. reliable-env(env; pRun(S2;env;n2m;l2m))@i
13. ∀e:runEvents(pRun(S2;env;n2m;l2m)). ∀P:Process(P.M[P]).
      ((P ∈ run-event-state-when(pRun(S2;env;n2m;l2m);e))
       ∀p∈snd((P (snd(run-info(pRun(S2;env;n2m;l2m);e))))).let y,c 
                                                             in (com-kind(c) ∈ ``msg choose new``)
                                                                 (∃e':runEvents(pRun(S2;env;n2m;l2m))
                                                                     ((run-event-loc(e') y ∈ Id)
                                                                     ∧ (e run-lt(pRun(S2;env;n2m;l2m)) e')
                                                                     ∧ (∃n:ℕ
                                                                         ∃nm:Id
                                                                          ((snd(run-info(pRun(S2;env;n2m;l2m);e')))
                                                                          command-to-msg(c;n2m n;l2m nm)
                                                                          ∈ pMsg(P.M[P])))
                                                                     ∧ ((run-cause(pRun(S2;env;n2m;l2m)) e')
                                                                       (inl e)
                                                                       ∈ (runEvents(pRun(S2;env;n2m;l2m))?)))))
14. E ⊆runEvents(pRun(S2;env;n2m;l2m))
15. runEvents(pRun(S2;env;n2m;l2m)) ⊆E
16. ∀e:runEvents(pRun(S2;env;n2m;l2m)). (loc(e) run-event-loc(e) ∈ Id)
17. run-cause(pRun(S2;env;n2m;l2m)) ∈ E ⟶ (E?)
⊢ (∀C∈Cs.∀e:E
           ∀p∈last(data-stream(snd(C);map(λe.info(e);before(e) [e]))).let y,c 
                                                                        in (com-kind(c) ∈ ``msg choose new``)
                                                                            (∃e':E
                                                                                ((loc(e') y ∈ Id)
                                                                                ∧ (e < e')
                                                                                ∧ (∃n:ℕ
                                                                                    ∃nm:Id
                                                                                     (info(e')
                                                                                     command-to-msg(c;n2m n;l2m nm)
                                                                                     ∈ pMsg(P.M[P])))
                                                                                ∧ ((run-cause(pRun(S2;env;n2m;l2m)) e')
                                                                                  (inl e)
                                                                                  ∈ (E?)))) 
           supposing loc(e) (fst(C)) ∈ Id)
BY
((D THENA Auto)
   THEN (GenConcl ⌜Cs[i] C ∈ component(P.M[P])⌝⋅ THENA Auto)
   THEN PromoteHyp (-2) 4
   THEN (Assert (C ∈ Cs) BY
               (With ⌜i⌝ (D 0)⋅ THEN Auto))
   THEN ThinVar `i') }

1
1. [M] Type ⟶ Type
2. Continuous+(P.M[P])
3. n2m : ℕ ⟶ pMsg(P.M[P])@i
4. component(P.M[P])@i
5. l2m Id ⟶ pMsg(P.M[P])@i
6. Cs component(P.M[P]) List@i
7. <Cs, lg-nil()> ∈ System(P.M[P])
8. S2 InitialSystem(P.M[P])@i
9. sub-system(P.M[P];<Cs, lg-nil()>;S2)@i
10. env pEnvType(P.M[P])@i
11. ∀e1,e2:runEvents(pRun(S2;env;n2m;l2m)).
      (∀P:Process(P.M[P])
         ((P ∈ run-prior-state(S2;pRun(S2;env;n2m;l2m);e1))
          (iterate-Process(P;map(λe.run-event-msg(pRun(S2;env;n2m;l2m);e);
                                   run-event-interval(pRun(S2;env;n2m;l2m);e1;e2)))
              ∈ run-event-state(pRun(S2;env;n2m;l2m);e2)))) supposing 
         ((run-event-step(e1) ≤ run-event-step(e2)) and 
         (run-event-loc(e1) run-event-loc(e2) ∈ Id))
12. pRun(S2;env;n2m;l2m) ∈ pRunType(P.M[P])
13. reliable-env(env; pRun(S2;env;n2m;l2m))@i
14. ∀e:runEvents(pRun(S2;env;n2m;l2m)). ∀P:Process(P.M[P]).
      ((P ∈ run-event-state-when(pRun(S2;env;n2m;l2m);e))
       ∀p∈snd((P (snd(run-info(pRun(S2;env;n2m;l2m);e))))).let y,c 
                                                             in (com-kind(c) ∈ ``msg choose new``)
                                                                 (∃e':runEvents(pRun(S2;env;n2m;l2m))
                                                                     ((run-event-loc(e') y ∈ Id)
                                                                     ∧ (e run-lt(pRun(S2;env;n2m;l2m)) e')
                                                                     ∧ (∃n:ℕ
                                                                         ∃nm:Id
                                                                          ((snd(run-info(pRun(S2;env;n2m;l2m);e')))
                                                                          command-to-msg(c;n2m n;l2m nm)
                                                                          ∈ pMsg(P.M[P])))
                                                                     ∧ ((run-cause(pRun(S2;env;n2m;l2m)) e')
                                                                       (inl e)
                                                                       ∈ (runEvents(pRun(S2;env;n2m;l2m))?)))))
15. E ⊆runEvents(pRun(S2;env;n2m;l2m))
16. runEvents(pRun(S2;env;n2m;l2m)) ⊆E
17. ∀e:runEvents(pRun(S2;env;n2m;l2m)). (loc(e) run-event-loc(e) ∈ Id)
18. run-cause(pRun(S2;env;n2m;l2m)) ∈ E ⟶ (E?)
19. (C ∈ Cs)
⊢ ∀e:E
    ∀p∈last(data-stream(snd(C);map(λe.info(e);before(e) [e]))).let y,c 
                                                                 in (com-kind(c) ∈ ``msg choose new``)
                                                                     (∃e':E
                                                                         ((loc(e') y ∈ Id)
                                                                         ∧ (e < e')
                                                                         ∧ (∃n:ℕ
                                                                             ∃nm:Id
                                                                              (info(e')
                                                                              command-to-msg(c;n2m n;l2m nm)
                                                                              ∈ pMsg(P.M[P])))
                                                                         ∧ ((run-cause(pRun(S2;env;n2m;l2m)) e')
                                                                           (inl e)
                                                                           ∈ (E?)))) 
    supposing loc(e) (fst(C)) ∈ Id


Latex:


Latex:

1.  [M]  :  Type  {}\mrightarrow{}  Type
2.  Continuous+(P.M[P])
3.  n2m  :  \mBbbN{}  {}\mrightarrow{}  pMsg(P.M[P])@i
4.  l2m  :  Id  {}\mrightarrow{}  pMsg(P.M[P])@i
5.  Cs  :  component(P.M[P])  List@i
6.  <Cs,  lg-nil()>  \mmember{}  System(P.M[P])
7.  S2  :  InitialSystem(P.M[P])@i
8.  sub-system(P.M[P];<Cs,  lg-nil()>S2)@i
9.  env  :  pEnvType(P.M[P])@i
10.  \mforall{}e1,e2:runEvents(pRun(S2;env;n2m;l2m)).
            (\mforall{}P:Process(P.M[P])
                  ((P  \mmember{}  run-prior-state(S2;pRun(S2;env;n2m;l2m);e1))
                  {}\mRightarrow{}  (iterate-Process(P;map(\mlambda{}e.run-event-msg(pRun(S2;env;n2m;l2m);e);
                                                                      run-event-interval(pRun(S2;env;n2m;l2m);e1;e2)))
                            \mmember{}  run-event-state(pRun(S2;env;n2m;l2m);e2))))  supposing 
                  ((run-event-step(e1)  \mleq{}  run-event-step(e2))  and 
                  (run-event-loc(e1)  =  run-event-loc(e2)))
11.  pRun(S2;env;n2m;l2m)  \mmember{}  pRunType(P.M[P])
12.  reliable-env(env;  pRun(S2;env;n2m;l2m))@i
13.  \mforall{}e:runEvents(pRun(S2;env;n2m;l2m)).  \mforall{}P:Process(P.M[P]).
            ((P  \mmember{}  run-event-state-when(pRun(S2;env;n2m;l2m);e))
            {}\mRightarrow{}  \mforall{}p\mmember{}snd((P  (snd(run-info(pRun(S2;env;n2m;l2m);e))))).
                    let  y,c  =  p 
                    in  (com-kind(c)  \mmember{}  ``msg  choose  new``)
                          {}\mRightarrow{}  (\mexists{}e':runEvents(pRun(S2;env;n2m;l2m))
                                    ((run-event-loc(e')  =  y)
                                    \mwedge{}  (e  run-lt(pRun(S2;env;n2m;l2m))  e')
                                    \mwedge{}  (\mexists{}n:\mBbbN{}
                                            \mexists{}nm:Id
                                              ((snd(run-info(pRun(S2;env;n2m;l2m);e')))  =  command-to-msg(c;n2m  n;l2m  nm)))
                                    \mwedge{}  ((run-cause(pRun(S2;env;n2m;l2m))  e')  =  (inl  e)))))
14.  E  \msubseteq{}r  runEvents(pRun(S2;env;n2m;l2m))
15.  runEvents(pRun(S2;env;n2m;l2m))  \msubseteq{}r  E
16.  \mforall{}e:runEvents(pRun(S2;env;n2m;l2m)).  (loc(e)  =  run-event-loc(e))
17.  run-cause(pRun(S2;env;n2m;l2m))  \mmember{}  E  {}\mrightarrow{}  (E?)
\mvdash{}  (\mforall{}C\mmember{}Cs.\mforall{}e:E
                      \mforall{}p\mmember{}last(data-stream(snd(C);map(\mlambda{}e.info(e);before(e)  @  [e]))).
                        let  y,c  =  p 
                        in  (com-kind(c)  \mmember{}  ``msg  choose  new``)
                              {}\mRightarrow{}  (\mexists{}e':E
                                        ((loc(e')  =  y)
                                        \mwedge{}  (e  <  e')
                                        \mwedge{}  (\mexists{}n:\mBbbN{}.  \mexists{}nm:Id.  (info(e')  =  command-to-msg(c;n2m  n;l2m  nm)))
                                        \mwedge{}  ((run-cause(pRun(S2;env;n2m;l2m))  e')  =  (inl  e)))) 
                      supposing  loc(e)  =  (fst(C)))


By


Latex:
((D  0  THENA  Auto)
  THEN  (GenConcl  \mkleeneopen{}Cs[i]  =  C\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  PromoteHyp  (-2)  4
  THEN  (Assert  (C  \mmember{}  Cs)  BY
                          (With  \mkleeneopen{}i\mkleeneclose{}  (D  0)\mcdot{}  THEN  Auto))
  THEN  ThinVar  `i')




Home Index