Step
*
1
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
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))]
BY
{ ((Subst' (t - 1) + 1 ~ t -1 THEN Try (Complete (Auto)))
   THEN (MoveToConcl (-1) THEN (GenConclAtAddr [1;1] THENA (Auto THEN DoSubsume⋅ THEN 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. v : ℕ × ℕ × Id@i
13. (env t pRun(S0;env;nat2msg;loc2msg)) = v ∈ (ℕ × ℕ × Id)@i
⊢ let n,m,nm = v in 
Q[t;snd(do-chosen-command(nat2msg;loc2msg;t;snd((pRun(S0;env;nat2msg;loc2msg) (t - 1)));n;m;nm))]
⇒ Q[t;snd(let n,m,nm = v 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
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))]
\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:
((Subst'  (t  -  1)  +  1  \msim{}  t  -1  THEN  Try  (Complete  (Auto)))
  THEN  (MoveToConcl  (-1)  THEN  (GenConclAtAddr  [1;1]  THENA  (Auto  THEN  DoSubsume\mcdot{}  THEN  Auto))\mcdot{})\mcdot{}
  )
Home
Index