Step * of Lemma run-event-state-next

[M:Type ⟶ Type]
  ∀n2m:ℕ ⟶ pMsg(P.M[P]). ∀l2m:Id ⟶ pMsg(P.M[P]). ∀S0:System(P.M[P]). ∀env:pEnvType(P.M[P]).
    let pRun(S0;env;n2m;l2m) in
        ∀e:runEvents(r)
          sub-mset(Process(P.M[P]); map(λP.(fst(Process-apply(P;run-event-msg(r;e))));run-prior-state(S0;r;e));
                   run-event-state(r;e)) 
  supposing Continuous+(P.M[P])
BY
(Auto
   THEN (RepUR ``let`` THEN (Assert pRun(S0;env;n2m;l2m) ∈ pRunType(P.M[P]) BY (DoSubsume THEN Auto)))
   THEN Auto⋅
   THEN -1
   THEN -2
   THEN All Reduce
   THEN (Assert ↑is-run-event(pRun(S0;env;n2m;l2m);e1;e2) BY
               (Unhide THEN Auto))
   THEN Thin (-2)
   THEN RenameVar `n' (-3)
   THEN RenameVar `x' (-2)
   THEN RepeatFor (MoveToConcl (-1))
   THEN Auto
   THEN RW (AddrC [3] UnfoldTopAbC) 0
   THEN Reduce 0
   THEN MoveToConcl (-1)
   THEN (RepUR ``is-run-event run-event-msg run-info`` 0
         THEN Subst' pRun(S0;env;n2m;l2m) if (n =z 0)
         then <inr ⋅ S0>
         else let n@0,m,nm env pRun(S0;env;n2m;l2m) in 
              do-chosen-command(n2m;l2m;n;snd((pRun(S0;env;n2m;l2m) (n 1)));n@0;m;nm)
         fi  0
         THEN Try ((RW (AddrC [1;1] RecUnfoldTopAbC) THEN Reduce THEN Trivial))
         THEN AutoSplit
         THEN RepUR ``bfalse`` 0
         THEN Try (Complete (Auto))
         THEN ((GenConclAtAddr [1;1;1;1] THENA (Auto THEN DoSubsume THEN Auto THEN Auto))
               THEN RepeatFor (D (-2))
               THEN Reduce 0
               THEN Thin 7
               THEN (GenConclAtAddr [1;1;1] THENA (Auto THEN DoSubsume THEN Auto THEN Auto))
               THEN (D (-2) THEN -3)
               THEN Reduce 0
               THEN Try (Complete (Auto))
               THEN (D -2
                     THEN RepeatFor (D (-4))
                     THEN Reduce 0
                     THEN RepUR ``run-event-local-pred run-event-history run-event-loc run-event-step let`` 0
                     THEN (D THENA Auto)
                     THEN (RW assert_pushdownC (-1) THENA Auto)
                     THEN RevHypSubst' (-1) (-2)
                     THEN ThinVar `x4')⋅)⋅)⋅}

1
1. [M] 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
⊢ sub-mset(Process(P.M[P]); map(λP.(fst(Process-apply(P;x5)));run-prior-state(S0;pRun(S0;env;n2m;l2m);<n, x>)); mapfilte\000Cr(λc.(snd(c));λc.fst(c) x;v7))


Latex:


Latex:
\mforall{}[M:Type  {}\mrightarrow{}  Type]
    \mforall{}n2m:\mBbbN{}  {}\mrightarrow{}  pMsg(P.M[P]).  \mforall{}l2m:Id  {}\mrightarrow{}  pMsg(P.M[P]).  \mforall{}S0:System(P.M[P]).  \mforall{}env:pEnvType(P.M[P]).
        let  r  =  pRun(S0;env;n2m;l2m)  in
                \mforall{}e:runEvents(r)
                    sub-mset(Process(P.M[P]);  map(\mlambda{}P.(fst(Process-apply(P;run-event-msg(r;e))));
                                                                                run-prior-state(S0;r;e));  run-event-state(r;e)) 
    supposing  Continuous+(P.M[P])


By


Latex:
(Auto
  THEN  (RepUR  ``let``  0
              THEN  (Assert  pRun(S0;env;n2m;l2m)  \mmember{}  pRunType(P.M[P])  BY
                                      (DoSubsume  THEN  Auto))
              )
  THEN  Auto\mcdot{}
  THEN  D  -1
  THEN  D  -2
  THEN  All  Reduce
  THEN  (Assert  \muparrow{}is-run-event(pRun(S0;env;n2m;l2m);e1;e2)  BY
                          (Unhide  THEN  Auto))
  THEN  Thin  (-2)
  THEN  RenameVar  `n'  (-3)
  THEN  RenameVar  `x'  (-2)
  THEN  RepeatFor  3  (MoveToConcl  (-1))
  THEN  Auto
  THEN  RW  (AddrC  [3]  UnfoldTopAbC)  0
  THEN  Reduce  0
  THEN  MoveToConcl  (-1)
  THEN 
  (RepUR  ``is-run-event  run-event-msg  run-info``  0
    THEN  Subst'  pRun(S0;env;n2m;l2m)  n  \msim{}  if  (n  =\msubz{}  0)
    then  <inr  \mcdot{}  ,  S0>
    else  let  n@0,m,nm  =  env  n  pRun(S0;env;n2m;l2m)  in 
              do-chosen-command(n2m;l2m;n;snd((pRun(S0;env;n2m;l2m)  (n  -  1)));n@0;m;nm)
    fi    0
    THEN  Try  ((RW  (AddrC  [1;1]  RecUnfoldTopAbC)  0  THEN  Reduce  0  THEN  Trivial))
    THEN  AutoSplit
    THEN  RepUR  ``bfalse``  0
    THEN  Try  (Complete  (Auto))
    THEN 
    ((GenConclAtAddr  [1;1;1;1]  THENA  (Auto  THEN  DoSubsume  THEN  Auto  THEN  Auto))
      THEN  RepeatFor  2  (D  (-2))
      THEN  Reduce  0
      THEN  Thin  7
      THEN  (GenConclAtAddr  [1;1;1]  THENA  (Auto  THEN  DoSubsume  THEN  Auto  THEN  Auto))
      THEN  (D  (-2)  THEN  D  -3)
      THEN  Reduce  0
      THEN  Try  (Complete  (Auto))
      THEN  (D  -2
                  THEN  RepeatFor  2  (D  (-4))
                  THEN  Reduce  0
                  THEN  RepUR  ``run-event-local-pred  run-event-history  run-event-loc  run-event-step  let``  0
                  THEN  (D  0  THENA  Auto)
                  THEN  (RW  assert\_pushdownC  (-1)  THENA  Auto)
                  THEN  RevHypSubst'  (-1)  (-2)
                  THEN  ThinVar  `x4')\mcdot{})\mcdot{})\mcdot{})




Home Index