Nuprl Lemma : run-event-state-next2

[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)
          (run-event-state(r;e)
          rev(map(λP.(fst(Process-apply(P;run-event-msg(r;e))));run-event-state-when(r;e)))
          ∈ (Process(P.M[P]) List)) 
  supposing Continuous+(P.M[P])


Proof




Definitions occuring in Statement :  run-event-state-when: run-event-state-when(r;e) run-event-state: run-event-state(r;e) run-event-msg: run-event-msg(r;e) runEvents: runEvents(r) pRun: pRun(S0;env;nat2msg;loc2msg) pEnvType: pEnvType(T.M[T]) System: System(P.M[P]) Process-apply: Process-apply(P;m) pMsg: pMsg(P.M[P]) Process: Process(P.M[P]) Id: Id reverse: rev(as) map: map(f;as) list: List strong-type-continuous: Continuous+(T.F[T]) nat: let: let uimplies: supposing a uall: [x:A]. B[x] so_apply: x[s] pi1: fst(t) all: x:A. B[x] lambda: λx.A[x] function: x:A ⟶ B[x] universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] uimplies: supposing a member: t ∈ T strong-type-continuous: Continuous+(T.F[T]) ext-eq: A ≡ B and: P ∧ Q subtype_rel: A ⊆B all: x:A. B[x] so_lambda: λ2x.t[x] so_apply: x[s] let: let runEvents: runEvents(r) pi1: fst(t) pi2: snd(t) implies:  Q run-event-state: run-event-state(r;e) run-event-msg: run-event-msg(r;e) is-run-event: is-run-event(r;t;x) run-info: run-info(r;e) pRun: pRun(S0;env;nat2msg;loc2msg) ycomb: Y nat: exposed-bfalse: exposed-bfalse bool: 𝔹 unit: Unit it: btrue: tt uiff: uiff(P;Q) ifthenelse: if then else fi  spreadn: spread3 isl: isl(x) outl: outl(x) bfalse: ff band: p ∧b q assert: b false: False prop: exists: x:A. B[x] or: P ∨ Q sq_type: SQType(T) guard: {T} bnot: ¬bb le: A ≤ B less_than': less_than'(a;b) not: ¬A ge: i ≥  int_upper: {i...} fulpRunType: fulpRunType(T.M[T]) decidable: Dec(P) satisfiable_int_formula: satisfiable_int_formula(fmla) top: Top System: System(P.M[P]) run-event-state-when: run-event-state-when(r;e) Id: Id do-chosen-command: do-chosen-command(nat2msg;loc2msg;t;S;n;m;nm) ldag: LabeledDAG(T) int_seg: {i..j-} lelt: i ≤ j < k lg-is-source: lg-is-source(g;i) pInTransit: pInTransit(P.M[P]) true: True squash: T iff: ⇐⇒ Q rev_implies:  Q component: component(P.M[P]) mapfilter: mapfilter(f;P;L) append: as bs so_lambda: so_lambda(x,y,z.t[x; y; z]) so_apply: x[s1;s2;s3] deliver-msg: deliver-msg(t;m;x;Cs;L) so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] deliver-msg-to-comp: deliver-msg-to-comp(t;m;x;S;C) compose: g

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)
                    (run-event-state(r;e)
                    =  rev(map(\mlambda{}P.(fst(Process-apply(P;run-event-msg(r;e))));run-event-state-when(r;e)))) 
    supposing  Continuous+(P.M[P])



Date html generated: 2016_05_17-AM-10_46_46
Last ObjectModification: 2016_01_18-AM-00_23_30

Theory : process-model


Home Index