Step * 1 of Lemma pRun_functionality

.....assertion..... 
1. Type ─→ Type
2. Continuous+(P.M[P])
3. nat2msg : ℕ ─→ pMsg(P.M[P])
4. loc2msg Id ─→ pMsg(P.M[P])
5. env pEnvType(P.M[P])
6. S1 System(P.M[P])
7. S2 System(P.M[P])
8. system-equiv(P.M[P];S1;S2)
9. : ℕ
⊢ system-equiv(P.M[P];snd((pRun(S1;env;nat2msg;loc2msg) t));snd((pRun(S2;env;nat2msg;loc2msg) t)))
∧ ((pRun(S1;env;nat2msg;loc2msg) t)
  (pRun(S2;env;nat2msg;loc2msg) t)
  ∈ (ℤ × Id × Id × pMsg(P.M[P])? × Top × LabeledDAG(pInTransit(P.M[P]))))
BY
(CompNatInd (-1) THEN RecUnfold `pRun` 0⋅ THEN Reduce THEN AutoSplit) }

1
1. Type ─→ Type
2. Continuous+(P.M[P])
3. nat2msg : ℕ ─→ pMsg(P.M[P])
4. loc2msg Id ─→ pMsg(P.M[P])
5. env pEnvType(P.M[P])
6. S1 System(P.M[P])
7. S2 System(P.M[P])
8. system-equiv(P.M[P];S1;S2)
9. : ℕ
10. ∀t:ℕt
      (system-equiv(P.M[P];snd((pRun(S1;env;nat2msg;loc2msg) t));snd((pRun(S2;env;nat2msg;loc2msg) t)))
      ∧ ((pRun(S1;env;nat2msg;loc2msg) t)
        (pRun(S2;env;nat2msg;loc2msg) t)
        ∈ (ℤ × Id × Id × pMsg(P.M[P])? × Top × LabeledDAG(pInTransit(P.M[P])))))@i
11. 0 ∈ ℤ
⊢ system-equiv(P.M[P];S1;S2)
∧ (<inr ⋅ S1> = <inr ⋅ S2> ∈ (ℤ × Id × Id × pMsg(P.M[P])? × Top × LabeledDAG(pInTransit(P.M[P]))))

2
1. Type ─→ Type
2. Continuous+(P.M[P])
3. nat2msg : ℕ ─→ pMsg(P.M[P])
4. loc2msg Id ─→ pMsg(P.M[P])
5. env pEnvType(P.M[P])
6. S1 System(P.M[P])
7. S2 System(P.M[P])
8. system-equiv(P.M[P];S1;S2)
9. {1...}
10. ∀t:ℕt
      (system-equiv(P.M[P];snd((pRun(S1;env;nat2msg;loc2msg) t));snd((pRun(S2;env;nat2msg;loc2msg) t)))
      ∧ ((pRun(S1;env;nat2msg;loc2msg) t)
        (pRun(S2;env;nat2msg;loc2msg) t)
        ∈ (ℤ × Id × Id × pMsg(P.M[P])? × Top × LabeledDAG(pInTransit(P.M[P])))))@i
⊢ system-equiv(P.M[P];snd(let n,m,nm env pRun(S1;env;nat2msg;loc2msg) in 
                      do-chosen-command(nat2msg;loc2msg;t;snd((pRun(S1;env;nat2msg;loc2msg) (t 1)));n;m;nm));
                      snd(let n,m,nm env pRun(S2;env;nat2msg;loc2msg) in 
                      do-chosen-command(nat2msg;loc2msg;t;snd((pRun(S2;env;nat2msg;loc2msg) (t 1)));n;m;nm)))
∧ (let n,m,nm env pRun(S1;env;nat2msg;loc2msg) in 
  do-chosen-command(nat2msg;loc2msg;t;snd((pRun(S1;env;nat2msg;loc2msg) (t 1)));n;m;nm)
  let n,m,nm env pRun(S2;env;nat2msg;loc2msg) in 
    do-chosen-command(nat2msg;loc2msg;t;snd((pRun(S2;env;nat2msg;loc2msg) (t 1)));n;m;nm)
  ∈ (ℤ × Id × Id × pMsg(P.M[P])? × Top × LabeledDAG(pInTransit(P.M[P]))))


Latex:



Latex:
.....assertion..... 
1.  M  :  Type  {}\mrightarrow{}  Type
2.  Continuous+(P.M[P])
3.  nat2msg  :  \mBbbN{}  {}\mrightarrow{}  pMsg(P.M[P])
4.  loc2msg  :  Id  {}\mrightarrow{}  pMsg(P.M[P])
5.  env  :  pEnvType(P.M[P])
6.  S1  :  System(P.M[P])
7.  S2  :  System(P.M[P])
8.  system-equiv(P.M[P];S1;S2)
9.  t  :  \mBbbN{}
\mvdash{}  system-equiv(P.M[P];snd((pRun(S1;env;nat2msg;loc2msg)  t));snd((pRun(S2;env;nat2msg;loc2msg)  t)))
\mwedge{}  ((pRun(S1;env;nat2msg;loc2msg)  t)  =  (pRun(S2;env;nat2msg;loc2msg)  t))


By


Latex:
(CompNatInd  (-1)  THEN  RecUnfold  `pRun`  0\mcdot{}  THEN  Reduce  0  THEN  AutoSplit)




Home Index