Step
*
1
of Lemma
pRun-System-invariant
1. [M] : Type ─→ Type
2. Continuous+(P.M[P])
3. [Q] : ℕ ─→ System(P.M[P]) ─→ ℙ
4. nat2msg : ℕ ─→ pMsg(P.M[P])@i
5. loc2msg : Id ─→ pMsg(P.M[P])@i
6. S0 : System(P.M[P])@i
7. Q[0;S0]@i
8. ∀t:ℕ. ∀S:System(P.M[P]).
     (Q[t;S]
     
⇒ (∀env:pEnvType(P.M[P])
           let n,m,nm = env (t + 1) pRun(S0;env;nat2msg;loc2msg) in 
           Q[t + 1;snd(do-chosen-command(nat2msg;loc2msg;t + 1;S;n;m;nm))]))@i
9. env : pEnvType(P.M[P])@i
10. t : {1...}
11. ∀t:ℕt. Q[t;snd((pRun(S0;env;nat2msg;loc2msg) t))]@i
⊢ Q[t;snd(let n,m,nm = env t pRun(S0;env;nat2msg;loc2msg) in 
  do-chosen-command(nat2msg;loc2msg;t;snd((pRun(S0;env;nat2msg;loc2msg) (t - 1)));n;m;nm))]
BY
{ (InstHyp [⌈t - 1⌉;⌈snd((pRun(S0;env;nat2msg;loc2msg) (t - 1)))⌉;⌈env⌉] 8⋅ THENA Auto)⋅ }
1
1. [M] : Type ─→ Type
2. Continuous+(P.M[P])
3. [Q] : ℕ ─→ System(P.M[P]) ─→ ℙ
4. nat2msg : ℕ ─→ pMsg(P.M[P])@i
5. loc2msg : Id ─→ pMsg(P.M[P])@i
6. S0 : System(P.M[P])@i
7. Q[0;S0]@i
8. ∀t:ℕ. ∀S:System(P.M[P]).
     (Q[t;S]
     
⇒ (∀env:pEnvType(P.M[P])
           let n,m,nm = env (t + 1) pRun(S0;env;nat2msg;loc2msg) in 
           Q[t + 1;snd(do-chosen-command(nat2msg;loc2msg;t + 1;S;n;m;nm))]))@i
9. env : pEnvType(P.M[P])@i
10. t : {1...}
11. ∀t:ℕt. Q[t;snd((pRun(S0;env;nat2msg;loc2msg) t))]@i
12. let n,m,nm = env ((t - 1) + 1) pRun(S0;env;nat2msg;loc2msg) in 
Q[(t - 1) + 1;snd(do-chosen-command(nat2msg;loc2msg;(t - 1) + 1;snd((pRun(S0;env;nat2msg;loc2msg) (t - 1)));n;m;nm))]
⊢ Q[t;snd(let n,m,nm = env t pRun(S0;env;nat2msg;loc2msg) in 
  do-chosen-command(nat2msg;loc2msg;t;snd((pRun(S0;env;nat2msg;loc2msg) (t - 1)));n;m;nm))]
Latex:
Latex:
1.  [M]  :  Type  {}\mrightarrow{}  Type
2.  Continuous+(P.M[P])
3.  [Q]  :  \mBbbN{}  {}\mrightarrow{}  System(P.M[P])  {}\mrightarrow{}  \mBbbP{}
4.  nat2msg  :  \mBbbN{}  {}\mrightarrow{}  pMsg(P.M[P])@i
5.  loc2msg  :  Id  {}\mrightarrow{}  pMsg(P.M[P])@i
6.  S0  :  System(P.M[P])@i
7.  Q[0;S0]@i
8.  \mforall{}t:\mBbbN{}.  \mforall{}S:System(P.M[P]).
          (Q[t;S]
          {}\mRightarrow{}  (\mforall{}env:pEnvType(P.M[P])
                      let  n,m,nm  =  env  (t  +  1)  pRun(S0;env;nat2msg;loc2msg)  in 
                      Q[t  +  1;snd(do-chosen-command(nat2msg;loc2msg;t  +  1;S;n;m;nm))]))@i
9.  env  :  pEnvType(P.M[P])@i
10.  t  :  \{1...\}
11.  \mforall{}t:\mBbbN{}t.  Q[t;snd((pRun(S0;env;nat2msg;loc2msg)  t))]@i
\mvdash{}  Q[t;snd(let  n,m,nm  =  env  t  pRun(S0;env;nat2msg;loc2msg)  in 
    do-chosen-command(nat2msg;loc2msg;t;snd((pRun(S0;env;nat2msg;loc2msg)  (t  -  1)));n;m;nm))]
By
Latex:
(InstHyp  [\mkleeneopen{}t  -  1\mkleeneclose{};\mkleeneopen{}snd((pRun(S0;env;nat2msg;loc2msg)  (t  -  1)))\mkleeneclose{};\mkleeneopen{}env\mkleeneclose{}]  8\mcdot{}  THENA  Auto)\mcdot{}
Home
Index