Step
*
1
of Lemma
reliable-env-property
1. [M] : 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. ∀tn:run-msg-commands(pRun(S0;env;n2m;l2m))
     let t,n = tn 
     in ∃t':ℕ
         ((t < t'
         c∧ (((fst((env t' pRun(S0;env;n2m;l2m)))) ≤ n)
            ∧ ↑lg-is-source(run-intransit(pRun(S0;env;n2m;l2m);t');fst((env t' pRun(S0;env;n2m;l2m)))) 
              supposing 0 < lg-size(run-intransit(pRun(S0;env;n2m;l2m);t'))))
         ∧ (∀i:ℕ
              ¬(t < i
              c∧ (((fst((env i pRun(S0;env;n2m;l2m)))) ≤ n)
                 ∧ ↑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'))
10. n : ℕ@i
11. ∀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
12. t : ℕ@i
13. run-command-node(pRun(S0;env;n2m;l2m);t;n)@i
14. (com-kind(snd(snd(run-command(pRun(S0;env;n2m;l2m);t;n)))) ∈ ``msg choose new``)@i
⊢ ∃e:runEvents(pRun(S0;env;n2m;l2m))
   let t,n = <t, n> 
   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(pRun(S0;env;n2m;l2m);t;n))
      ∈ (ℤ × Id × pMsg(P.M[P])))
      ∧ (run-event-loc(e) = (fst(snd(run-command(pRun(S0;env;n2m;l2m);t;n)))) ∈ Id)
BY
{ (InstHyp [⌈<t, n>⌉] 9⋅
   THENA (Auto
          THEN Try (Unfold `run-msg-commands` 0)
          THEN Auto
          THEN Try ((GenConclAtAddr [2;1;1;1] THEN Auto THEN RepeatFor 2 (D (-2)) THEN Reduce 0 THEN Auto))⋅)
   ) }
1
1. [M] : 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. ∀tn:run-msg-commands(pRun(S0;env;n2m;l2m))
     let t,n = tn 
     in ∃t':ℕ
         ((t < t'
         c∧ (((fst((env t' pRun(S0;env;n2m;l2m)))) ≤ n)
            ∧ ↑lg-is-source(run-intransit(pRun(S0;env;n2m;l2m);t');fst((env t' pRun(S0;env;n2m;l2m)))) 
              supposing 0 < lg-size(run-intransit(pRun(S0;env;n2m;l2m);t'))))
         ∧ (∀i:ℕ
              ¬(t < i
              c∧ (((fst((env i pRun(S0;env;n2m;l2m)))) ≤ n)
                 ∧ ↑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'))
10. n : ℕ@i
11. ∀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
12. t : ℕ@i
13. run-command-node(pRun(S0;env;n2m;l2m);t;n)@i
14. (com-kind(snd(snd(run-command(pRun(S0;env;n2m;l2m);t;n)))) ∈ ``msg choose new``)@i
15. let t,n = <t, n> 
    in ∃t':ℕ
        ((t < t'
        c∧ (((fst((env t' pRun(S0;env;n2m;l2m)))) ≤ n)
           ∧ ↑lg-is-source(run-intransit(pRun(S0;env;n2m;l2m);t');fst((env t' pRun(S0;env;n2m;l2m)))) 
             supposing 0 < lg-size(run-intransit(pRun(S0;env;n2m;l2m);t'))))
        ∧ (∀i:ℕ
             ¬(t < i
             c∧ (((fst((env i pRun(S0;env;n2m;l2m)))) ≤ n)
                ∧ ↑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'))
⊢ ∃e:runEvents(pRun(S0;env;n2m;l2m))
   let t,n = <t, n> 
   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(pRun(S0;env;n2m;l2m);t;n))
      ∈ (ℤ × Id × pMsg(P.M[P])))
      ∧ (run-event-loc(e) = (fst(snd(run-command(pRun(S0;env;n2m;l2m);t;n)))) ∈ Id)
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.  \mforall{}tn:run-msg-commands(pRun(S0;env;n2m;l2m))
          let  t,n  =  tn 
          in  \mexists{}t':\mBbbN{}
                  ((t  <  t'
                  c\mwedge{}  (((fst((env  t'  pRun(S0;env;n2m;l2m))))  \mleq{}  n)
                        \mwedge{}  \muparrow{}lg-is-source(run-intransit(pRun(S0;env;n2m;l2m);t');fst((env  t' 
                                                                                                                                                pRun(S0;env;n2m;l2m)))) 
                            supposing  0  <  lg-size(run-intransit(pRun(S0;env;n2m;l2m);t'))))
                  \mwedge{}  (\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'))
10.  n  :  \mBbbN{}@i
11.  \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
12.  t  :  \mBbbN{}@i
13.  run-command-node(pRun(S0;env;n2m;l2m);t;n)@i
14.  (com-kind(snd(snd(run-command(pRun(S0;env;n2m;l2m);t;n))))  \mmember{}  ``msg  choose  new``)@i
\mvdash{}  \mexists{}e:runEvents(pRun(S0;env;n2m;l2m))
      let  t,n  =  <t,  n> 
      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)))
            \mwedge{}  (run-event-loc(e)  =  (fst(snd(run-command(pRun(S0;env;n2m;l2m);t;n)))))
By
Latex:
(InstHyp  [\mkleeneopen{}<t,  n>\mkleeneclose{}]  9\mcdot{}
  THENA  (Auto
                THEN  Try  (Unfold  `run-msg-commands`  0)
                THEN  Auto
                THEN  Try  ((GenConclAtAddr  [2;1;1;1]
                                      THEN  Auto
                                      THEN  RepeatFor  2  (D  (-2))
                                      THEN  Reduce  0
                                      THEN  Auto))\mcdot{})
  )
Home
Index