Step * 1 2 of Lemma run-event-state-next2


1. Type ─→ Type
2. Continuous+(P.M[P])
3. n2m : ℕ ─→ pMsg(P.M[P])@i
4. l2m Id ─→ pMsg(P.M[P])@i
5. S0 System(P.M[P])@i
6. env pEnvType(P.M[P])@i
7. {1...}
8. Id@i
9. v1 : ℕ@i
10. v3 : ℕ@i
11. v4 Id@i
12. (env pRun(S0;env;n2m;l2m)) = <v1, v3, v4> ∈ (ℕ × ℕ × Id)@i
13. x2 : ℤ × Id@i
14. x5 pMsg(P.M[P])@i
15. v7 component(P.M[P]) List@i
16. v8 LabeledDAG(pInTransit(P.M[P]))@i
17. do-chosen-command(n2m;l2m;n;snd((pRun(S0;env;n2m;l2m) (n 1)));v1;v3;v4)
= <inl <x2, x, x5>v7, v8>
∈ (ℤ × Id × Id × pMsg(P.M[P])? × System(P.M[P]))@i
18. ∃G:LabeledDAG(pInTransit(P.M[P]))
     (v7 (fst(deliver-msg(n;x5;x;fst(snd((pRun(S0;env;n2m;l2m) (n 1))));G))) ∈ (component(P.M[P]) List))
⊢ mapfilter(λc.(snd(c));λc.fst(c) x;v7)
rev(map(λP.(fst(Process-apply(P;x5)));let info,Cs,G pRun(S0;env;n2m;l2m) (n 1) in 
          mapfilter(λc.(snd(c));λc.fst(c) x;Cs)))
∈ (Process(P.M[P]) List)
BY
((Assert λc.fst(c) x ∈ component(P.M[P]) ─→ 𝔹 BY
          Auto)
   THEN PromoteHyp (-1) 10
   THEN ExRepD⋅
   THEN Assert ⌈mapfilter(λc.(snd(c));λc.fst(c) x;v7)
                rev(mapfilter(λC.(fst(Process-apply(snd(C);x5)));
                                λc.fst(c) x;
                                fst(snd((pRun(S0;env;n2m;l2m) (n 1))))))
                ∈ (Process(P.M[P]) List)⌉⋅}

1
.....assertion..... 
1. Type ─→ Type
2. Continuous+(P.M[P])
3. n2m : ℕ ─→ pMsg(P.M[P])@i
4. l2m Id ─→ pMsg(P.M[P])@i
5. S0 System(P.M[P])@i
6. env pEnvType(P.M[P])@i
7. {1...}
8. Id@i
9. v1 : ℕ@i
10. λc.fst(c) x ∈ component(P.M[P]) ─→ 𝔹
11. v3 : ℕ@i
12. v4 Id@i
13. (env pRun(S0;env;n2m;l2m)) = <v1, v3, v4> ∈ (ℕ × ℕ × Id)@i
14. x2 : ℤ × Id@i
15. x5 pMsg(P.M[P])@i
16. v7 component(P.M[P]) List@i
17. v8 LabeledDAG(pInTransit(P.M[P]))@i
18. do-chosen-command(n2m;l2m;n;snd((pRun(S0;env;n2m;l2m) (n 1)));v1;v3;v4)
= <inl <x2, x, x5>v7, v8>
∈ (ℤ × Id × Id × pMsg(P.M[P])? × System(P.M[P]))@i
19. LabeledDAG(pInTransit(P.M[P]))
20. v7 (fst(deliver-msg(n;x5;x;fst(snd((pRun(S0;env;n2m;l2m) (n 1))));G))) ∈ (component(P.M[P]) List)
⊢ mapfilter(λc.(snd(c));λc.fst(c) x;v7)
rev(mapfilter(λC.(fst(Process-apply(snd(C);x5)));λc.fst(c) x;fst(snd((pRun(S0;env;n2m;l2m) (n 1))))))
∈ (Process(P.M[P]) List)

2
1. Type ─→ Type
2. Continuous+(P.M[P])
3. n2m : ℕ ─→ pMsg(P.M[P])@i
4. l2m Id ─→ pMsg(P.M[P])@i
5. S0 System(P.M[P])@i
6. env pEnvType(P.M[P])@i
7. {1...}
8. Id@i
9. v1 : ℕ@i
10. λc.fst(c) x ∈ component(P.M[P]) ─→ 𝔹
11. v3 : ℕ@i
12. v4 Id@i
13. (env pRun(S0;env;n2m;l2m)) = <v1, v3, v4> ∈ (ℕ × ℕ × Id)@i
14. x2 : ℤ × Id@i
15. x5 pMsg(P.M[P])@i
16. v7 component(P.M[P]) List@i
17. v8 LabeledDAG(pInTransit(P.M[P]))@i
18. do-chosen-command(n2m;l2m;n;snd((pRun(S0;env;n2m;l2m) (n 1)));v1;v3;v4)
= <inl <x2, x, x5>v7, v8>
∈ (ℤ × Id × Id × pMsg(P.M[P])? × System(P.M[P]))@i
19. LabeledDAG(pInTransit(P.M[P]))
20. v7 (fst(deliver-msg(n;x5;x;fst(snd((pRun(S0;env;n2m;l2m) (n 1))));G))) ∈ (component(P.M[P]) List)
21. mapfilter(λc.(snd(c));λc.fst(c) x;v7)
rev(mapfilter(λC.(fst(Process-apply(snd(C);x5)));λc.fst(c) x;fst(snd((pRun(S0;env;n2m;l2m) (n 1))))))
∈ (Process(P.M[P]) List)
⊢ mapfilter(λc.(snd(c));λc.fst(c) x;v7)
rev(map(λP.(fst(Process-apply(P;x5)));let info,Cs,G pRun(S0;env;n2m;l2m) (n 1) in 
          mapfilter(λc.(snd(c));λc.fst(c) x;Cs)))
∈ (Process(P.M[P]) List)


Latex:



Latex:

1.  M  :  Type  {}\mrightarrow{}  Type
2.  Continuous+(P.M[P])
3.  n2m  :  \mBbbN{}  {}\mrightarrow{}  pMsg(P.M[P])@i
4.  l2m  :  Id  {}\mrightarrow{}  pMsg(P.M[P])@i
5.  S0  :  System(P.M[P])@i
6.  env  :  pEnvType(P.M[P])@i
7.  n  :  \{1...\}
8.  x  :  Id@i
9.  v1  :  \mBbbN{}@i
10.  v3  :  \mBbbN{}@i
11.  v4  :  Id@i
12.  (env  n  pRun(S0;env;n2m;l2m))  =  <v1,  v3,  v4>@i
13.  x2  :  \mBbbZ{}  \mtimes{}  Id@i
14.  x5  :  pMsg(P.M[P])@i
15.  v7  :  component(P.M[P])  List@i
16.  v8  :  LabeledDAG(pInTransit(P.M[P]))@i
17.  do-chosen-command(n2m;l2m;n;snd((pRun(S0;env;n2m;l2m)  (n  -  1)));v1;v3;v4)
=  <inl  <x2,  x,  x5>,  v7,  v8>@i
18.  \mexists{}G:LabeledDAG(pInTransit(P.M[P]))
          (v7  =  (fst(deliver-msg(n;x5;x;fst(snd((pRun(S0;env;n2m;l2m)  (n  -  1))));G))))
\mvdash{}  mapfilter(\mlambda{}c.(snd(c));\mlambda{}c.fst(c)  =  x;v7)
=  rev(map(\mlambda{}P.(fst(Process-apply(P;x5)));let  info,Cs,G  =  pRun(S0;env;n2m;l2m)  (n  -  1)  in 
                    mapfilter(\mlambda{}c.(snd(c));\mlambda{}c.fst(c)  =  x;Cs)))


By


Latex:
((Assert  \mlambda{}c.fst(c)  =  x  \mmember{}  component(P.M[P])  {}\mrightarrow{}  \mBbbB{}  BY
                Auto)
  THEN  PromoteHyp  (-1)  10
  THEN  ExRepD\mcdot{}
  THEN  Assert  \mkleeneopen{}mapfilter(\mlambda{}c.(snd(c));\mlambda{}c.fst(c)  =  x;v7)
                            =  rev(mapfilter(\mlambda{}C.(fst(Process-apply(snd(C);x5)));
                                                            \mlambda{}c.fst(c)  =  x;
                                                            fst(snd((pRun(S0;env;n2m;l2m)  (n  -  1))))))\mkleeneclose{}\mcdot{})




Home Index