Step * 1 1 1 2 2 1 2 1 1 of Lemma reliable-env-property


1. Type ─→ Type
2. Continuous+(P.M[P])
3. S0 InitialSystem(P.M[P])@i
4. n2m : ℕ ─→ pMsg(P.M[P])@i
5. l2m Id ─→ pMsg(P.M[P])@i
6. env pEnvType(P.M[P])@i
7. pRun(S0;env;n2m;l2m) ∈ pRunType(P.M[P])
8. reliable-env(env; pRun(S0;env;n2m;l2m))@i
9. : ℕ@i
10. ∀n1:ℕn. ∀t:ℕ.
      ((run-command-node(pRun(S0;env;n2m;l2m);t;n1)
      ∧ (com-kind(snd(snd(run-command(pRun(S0;env;n2m;l2m);t;n1)))) ∈ ``msg choose new``))
       (∃e:runEvents(pRun(S0;env;n2m;l2m))
           let t,n = <t, n1> 
           in (run-info(pRun(S0;env;n2m;l2m);e)
              intransit-to-info(n2m;l2m;pRun(S0;env;n2m;l2m);env;run-event-step(e);run-command(...;t;n))
              ∈ (ℤ × Id × pMsg(P.M[P])))
              ∧ (run-event-loc(e) (fst(snd(run-command(pRun(S0;env;n2m;l2m);t;n)))) ∈ Id)))@i
11. : ℕ@i
12. run-command-node(pRun(S0;env;n2m;l2m);t;n)@i
13. t' : ℕ
14. t < t'
15. ∀i:ℕ
      ¬(t < i
      c∧ (((fst((env pRun(S0;env;n2m;l2m)))) ≤ n)
         ∧ ↑lg-is-source(run-intransit(pRun(S0;env;n2m;l2m);i);fst((env pRun(S0;env;n2m;l2m)))) 
           supposing 0 < lg-size(run-intransit(pRun(S0;env;n2m;l2m);i)))) 
      supposing i < t'
16. ∀t2:ℕ
      ((t ≤ t2)
       t2 < t'
       (n < lg-size(snd(snd((pRun(S0;env;n2m;l2m) t2))))
         ∧ (∀x:ℕ
              ((x ≤ n)
               (run-command(pRun(S0;env;n2m;l2m);t2;x)
                 run-command(pRun(S0;env;n2m;l2m);t;x)
                 ∈ pInTransit(P.M[P]))))))
17. n < lg-size(snd(snd((pRun(S0;env;n2m;l2m) (t' 1)))))
18. ∀x:ℕ
      ((x ≤ n)
       (run-command(pRun(S0;env;n2m;l2m);t' 1;x) run-command(pRun(S0;env;n2m;l2m);t;x) ∈ pInTransit(P.M[P])))
19. run-command(pRun(S0;env;n2m;l2m);t' 1;n) run-command(pRun(S0;env;n2m;l2m);t;n) ∈ pInTransit(P.M[P])
⊢ fst((env t' pRun(S0;env;n2m;l2m))) < n)
 ((fst((env t' pRun(S0;env;n2m;l2m)))) ≤ n)
 (↑lg-is-source(snd(snd((pRun(S0;env;n2m;l2m) (t' 1))));fst((env t' pRun(S0;env;n2m;l2m)))))
 (com-kind(snd(snd(run-command(pRun(S0;env;n2m;l2m);t' 1;n)))) ∈ ``msg choose new``)
 (↑is-run-event(pRun(S0;env;n2m;l2m);t';fst(snd(run-command(pRun(S0;env;n2m;l2m);t' 1;n)))))
BY
(Reduce 0
   THEN RW (AddrC [2;2;2;2;1;1] (RecUnfoldC `pRun`)) 0
   THEN RepUR ``is-run-event run-command do-chosen-command`` 0
   THEN AutoSplit
   THEN (GenConclAtAddr [2;2;1;1;1;1] THENA Auto)
   THEN (-2)
   THEN RenameVar `G' (-2)
   THEN Reduce 0
   THEN (GenConclAtAddr [2;1;1;1] THENA Auto)
   THEN RepeatFor (D (-2))
   THEN Reduce 0
   THEN RepeatFor ((D THENA Auto))
   THEN AutoSplit)⋅ }

1
1. Type ─→ Type
2. Continuous+(P.M[P])
3. S0 InitialSystem(P.M[P])@i
4. n2m : ℕ ─→ pMsg(P.M[P])@i
5. l2m Id ─→ pMsg(P.M[P])@i
6. env pEnvType(P.M[P])@i
7. pRun(S0;env;n2m;l2m) ∈ pRunType(P.M[P])
8. reliable-env(env; pRun(S0;env;n2m;l2m))@i
9. : ℕ@i
10. ∀n1:ℕn. ∀t:ℕ.
      ((run-command-node(pRun(S0;env;n2m;l2m);t;n1)
      ∧ (com-kind(snd(snd(run-command(pRun(S0;env;n2m;l2m);t;n1)))) ∈ ``msg choose new``))
       (∃e:runEvents(pRun(S0;env;n2m;l2m))
           let t,n = <t, n1> 
           in (run-info(pRun(S0;env;n2m;l2m);e)
              intransit-to-info(n2m;l2m;pRun(S0;env;n2m;l2m);env;run-event-step(e);run-command(...;t;n))
              ∈ (ℤ × Id × pMsg(P.M[P])))
              ∧ (run-event-loc(e) (fst(snd(run-command(pRun(S0;env;n2m;l2m);t;n)))) ∈ Id)))@i
11. : ℕ@i
12. run-command-node(pRun(S0;env;n2m;l2m);t;n)@i
13. t' {1...}
14. t < t'
15. ∀i:ℕ
      ¬(t < i
      c∧ (((fst((env pRun(S0;env;n2m;l2m)))) ≤ n)
         ∧ ↑lg-is-source(run-intransit(pRun(S0;env;n2m;l2m);i);fst((env pRun(S0;env;n2m;l2m)))) 
           supposing 0 < lg-size(run-intransit(pRun(S0;env;n2m;l2m);i)))) 
      supposing i < t'
16. ∀t2:ℕ
      ((t ≤ t2)
       t2 < t'
       (n < lg-size(snd(snd((pRun(S0;env;n2m;l2m) t2))))
         ∧ (∀x:ℕ
              ((x ≤ n)
               (run-command(pRun(S0;env;n2m;l2m);t2;x)
                 run-command(pRun(S0;env;n2m;l2m);t;x)
                 ∈ pInTransit(P.M[P]))))))
17. n < lg-size(snd(snd((pRun(S0;env;n2m;l2m) (t' 1)))))
18. ∀x:ℕ
      ((x ≤ n)
       (run-command(pRun(S0;env;n2m;l2m);t' 1;x) run-command(pRun(S0;env;n2m;l2m);t;x) ∈ pInTransit(P.M[P])))
19. run-command(pRun(S0;env;n2m;l2m);t' 1;n) run-command(pRun(S0;env;n2m;l2m);t;n) ∈ pInTransit(P.M[P])
20. v1 Top@i
21. LabeledDAG(pInTransit(P.M[P]))@i
22. (snd((pRun(S0;env;n2m;l2m) (t' 1)))) = <v1, G> ∈ (Top × LabeledDAG(pInTransit(P.M[P])))@i
23. v2 : ℕ@i
24. v4 : ℕ@i
25. v5 Id@i
26. (env t' pRun(S0;env;n2m;l2m)) = <v2, v4, v5> ∈ (ℕ × ℕ × Id)@i
27. ¬v2 < n@i
28. v2 ≤ n@i
29. ↑lg-is-source(G;v2)@i
30. ↑lg-is-source(G;v2)
⊢ (com-kind(snd(snd(lg-label(G;n)))) ∈ ``msg choose new``)
 (↑let info,S let ev,x,c lg-label(G;v2) in 
     let G' lg-remove(G;v2) in
         if com-kind(c) =a "msg" then let ms comm-msg(c) in <inl <ev, x, ms>deliver-msg(t';ms;x;v1;G')>
         if com-kind(c) =a "create" then let comm-create(c) in <inr ⋅ create-component(t';P;x;v1;G')>
         if com-kind(c) =a "choose" then let ms n2m v4 in <inl <ev, x, ms>deliver-msg(t';ms;x;v1;G')>
         if com-kind(c) =a "new" then let ms l2m v5 in <inl <ev, x, ms>deliver-msg(t';ms;x;v1;G')>
         else <inr ⋅ v1, G'>
         fi  
     in isl(info) ∧b let ev,z,m outl(info) in fst(snd(lg-label(G;n))) z)


Latex:



Latex:

1.  M  :  Type  {}\mrightarrow{}  Type
2.  Continuous+(P.M[P])
3.  S0  :  InitialSystem(P.M[P])@i
4.  n2m  :  \mBbbN{}  {}\mrightarrow{}  pMsg(P.M[P])@i
5.  l2m  :  Id  {}\mrightarrow{}  pMsg(P.M[P])@i
6.  env  :  pEnvType(P.M[P])@i
7.  pRun(S0;env;n2m;l2m)  \mmember{}  pRunType(P.M[P])
8.  reliable-env(env;  pRun(S0;env;n2m;l2m))@i
9.  n  :  \mBbbN{}@i
10.  \mforall{}n1:\mBbbN{}n.  \mforall{}t:\mBbbN{}.
            ((run-command-node(pRun(S0;env;n2m;l2m);t;n1)
            \mwedge{}  (com-kind(snd(snd(run-command(pRun(S0;env;n2m;l2m);t;n1))))  \mmember{}  ``msg  choose  new``))
            {}\mRightarrow{}  (\mexists{}e:runEvents(pRun(S0;env;n2m;l2m))
                      let  t,n  =  <t,  n1> 
                      in  (run-info(pRun(S0;env;n2m;l2m);e)
                            =  intransit-to-info(n2m;l2m;pRun(S0;env;n2m;l2m);env;run-event-step(e);...))
                            \mwedge{}  (run-event-loc(e)  =  (fst(snd(run-command(pRun(S0;env;n2m;l2m);t;n)))))))@i
11.  t  :  \mBbbN{}@i
12.  run-command-node(pRun(S0;env;n2m;l2m);t;n)@i
13.  t'  :  \mBbbN{}
14.  t  <  t'
15.  \mforall{}i:\mBbbN{}
            \mneg{}(t  <  i
            c\mwedge{}  (((fst((env  i  pRun(S0;env;n2m;l2m))))  \mleq{}  n)
                  \mwedge{}  \muparrow{}lg-is-source(run-intransit(pRun(S0;env;n2m;l2m);i);fst((env  i  pRun(S0;env;n2m;l2m)))) 
                      supposing  0  <  lg-size(run-intransit(pRun(S0;env;n2m;l2m);i)))) 
            supposing  i  <  t'
16.  \mforall{}t2:\mBbbN{}
            ((t  \mleq{}  t2)
            {}\mRightarrow{}  t2  <  t'
            {}\mRightarrow{}  (n  <  lg-size(snd(snd((pRun(S0;env;n2m;l2m)  t2))))
                  \mwedge{}  (\mforall{}x:\mBbbN{}
                            ((x  \mleq{}  n)
                            {}\mRightarrow{}  (run-command(pRun(S0;env;n2m;l2m);t2;x)
                                  =  run-command(pRun(S0;env;n2m;l2m);t;x))))))
17.  n  <  lg-size(snd(snd((pRun(S0;env;n2m;l2m)  (t'  -  1)))))
18.  \mforall{}x:\mBbbN{}
            ((x  \mleq{}  n)
            {}\mRightarrow{}  (run-command(pRun(S0;env;n2m;l2m);t'  -  1;x)  =  run-command(pRun(S0;env;n2m;l2m);t;x)))
19.  run-command(pRun(S0;env;n2m;l2m);t'  -  1;n)  =  run-command(pRun(S0;env;n2m;l2m);t;n)
\mvdash{}  (\mneg{}fst((env  t'  pRun(S0;env;n2m;l2m)))  <  n)
{}\mRightarrow{}  ((fst((env  t'  pRun(S0;env;n2m;l2m))))  \mleq{}  n)
{}\mRightarrow{}  (\muparrow{}lg-is-source(snd(snd((pRun(S0;env;n2m;l2m)  (t'  -  1))));fst((env  t'  pRun(S0;env;n2m;l2m)))))
{}\mRightarrow{}  (com-kind(snd(snd(run-command(pRun(S0;env;n2m;l2m);t'  -  1;n))))  \mmember{}  ``msg  choose  new``)
{}\mRightarrow{}  (\muparrow{}is-run-event(pRun(S0;env;n2m;l2m);t';fst(snd(run-command(pRun(S0;env;n2m;l2m);t'  -  1;n)))))


By


Latex:
(Reduce  0
  THEN  RW  (AddrC  [2;2;2;2;1;1]  (RecUnfoldC  `pRun`))  0
  THEN  RepUR  ``is-run-event  run-command  do-chosen-command``  0
  THEN  AutoSplit
  THEN  (GenConclAtAddr  [2;2;1;1;1;1]  THENA  Auto)
  THEN  D  (-2)
  THEN  RenameVar  `G'  (-2)
  THEN  Reduce  0
  THEN  (GenConclAtAddr  [2;1;1;1]  THENA  Auto)
  THEN  RepeatFor  2  (D  (-2))
  THEN  Reduce  0
  THEN  RepeatFor  3  ((D  0  THENA  Auto))
  THEN  AutoSplit)\mcdot{}




Home Index