Step * of Lemma pRun-System-invariant

[M:Type ⟶ Type]
  ∀[Q:ℕ ⟶ System(P.M[P]) ⟶ ℙ]
    ∀nat2msg:ℕ ⟶ pMsg(P.M[P]). ∀loc2msg:Id ⟶ pMsg(P.M[P]). ∀S0:System(P.M[P]).
      (Q[0;S0]
       (∀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))])))
       {∀env:pEnvType(P.M[P]). ∀t:ℕ.  Q[t;snd((pRun(S0;env;nat2msg;loc2msg) t))]}) 
  supposing Continuous+(P.M[P])
BY
(RepeatFor ((D THENA Auto))
   THEN (At ⌜Type⌝ (D 0)⋅ THENA (Auto THEN GenConclAtAddr [2;1] THEN Auto THEN DoSubsume THEN Auto THEN Auto))
   THEN (Unfold `guard` THEN Auto THEN CompNatInd (-1) THEN RecUnfold `pRun` THEN Reduce THEN AutoSplit)⋅}

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
⊢ 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:
\mforall{}[M:Type  {}\mrightarrow{}  Type]
    \mforall{}[Q:\mBbbN{}  {}\mrightarrow{}  System(P.M[P])  {}\mrightarrow{}  \mBbbP{}]
        \mforall{}nat2msg:\mBbbN{}  {}\mrightarrow{}  pMsg(P.M[P]).  \mforall{}loc2msg:Id  {}\mrightarrow{}  pMsg(P.M[P]).  \mforall{}S0:System(P.M[P]).
            (Q[0;S0]
            {}\mRightarrow{}  (\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))])))
            {}\mRightarrow{}  \{\mforall{}env:pEnvType(P.M[P]).  \mforall{}t:\mBbbN{}.    Q[t;snd((pRun(S0;env;nat2msg;loc2msg)  t))]\}) 
    supposing  Continuous+(P.M[P])


By


Latex:
(RepeatFor  7  ((D  0  THENA  Auto))
  THEN  (At  \mkleeneopen{}Type\mkleeneclose{}  (D  0)\mcdot{}
              THENA  (Auto  THEN  GenConclAtAddr  [2;1]  THEN  Auto  THEN  DoSubsume  THEN  Auto  THEN  Auto)
              )
  THEN  (Unfold  `guard`  0
              THEN  Auto
              THEN  CompNatInd  (-1)
              THEN  RecUnfold  `pRun`  0
              THEN  Reduce  0
              THEN  AutoSplit)\mcdot{})




Home Index