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. {1...}
11. ∀t:ℕt. Q[t;snd((pRun(S0;env;nat2msg;loc2msg) t))]@i
⊢ Q[t;snd(let n,m,nm env 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 [⌜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. {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 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