Nuprl Lemma : pRun-intransit-invariant

[M:Type ⟶ Type]
  ∀n2m:ℕ ⟶ pMsg(P.M[P]). ∀l2m:Id ⟶ pMsg(P.M[P]). ∀Cs0:component(P.M[P]) List. ∀G0:LabeledDAG(pInTransit(P.M[P])).
  ∀env:pEnvType(P.M[P]). ∀t:ℕ.
    let pRun(<Cs0, G0>;env;n2m;l2m) in
        let info,Cs,G in 
        ∀x∈G.let ev fst(x) in
                 ((fst(ev)) ≤ t) ∨ (∃m:ℕlg-size(G0). (ev (fst(lg-label(G0;m))) ∈ (ℤ × Id))) 
  supposing Continuous+(P.M[P])


Proof




Definitions occuring in Statement :  pRun: pRun(S0;env;nat2msg;loc2msg) pEnvType: pEnvType(T.M[T]) pInTransit: pInTransit(P.M[P]) component: component(P.M[P]) pMsg: pMsg(P.M[P]) lg-all: x∈G.P[x] ldag: LabeledDAG(T) lg-label: lg-label(g;x) lg-size: lg-size(g) Id: Id list: List strong-type-continuous: Continuous+(T.F[T]) int_seg: {i..j-} nat: let: let spreadn: spread3 uimplies: supposing a uall: [x:A]. B[x] so_apply: x[s] pi1: fst(t) le: A ≤ B all: x:A. B[x] exists: x:A. B[x] or: P ∨ Q apply: a function: x:A ⟶ B[x] pair: <a, b> product: x:A × B[x] natural_number: $n int: universe: Type equal: t ∈ T
Definitions unfolded in proof :  let: let 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] pInTransit: pInTransit(P.M[P]) pi1: fst(t) so_lambda: λ2x.t[x] so_apply: x[s] ldag: LabeledDAG(T) nat: implies:  Q so_lambda: λ2y.t[x; y] System: System(P.M[P]) so_apply: x[s1;s2] prop: guard: {T} lg-all: x∈G.P[x] or: P ∨ Q exists: x:A. B[x] pEnvType: pEnvType(T.M[T]) nat_plus: + le: A ≤ B decidable: Dec(P) iff: ⇐⇒ Q not: ¬A rev_implies:  Q false: False uiff: uiff(P;Q) subtract: m top: Top less_than': less_than'(a;b) true: True pRunType: pRunType(T.M[T]) spreadn: spread3 do-chosen-command: do-chosen-command(nat2msg;loc2msg;t;S;n;m;nm) exposed-bfalse: exposed-bfalse bool: 𝔹 unit: Unit it: btrue: tt ifthenelse: if then else fi  bfalse: ff sq_type: SQType(T) bnot: ¬bb assert: b pi2: snd(t) lg-is-source: lg-is-source(g;i) int_seg: {i..j-} lelt: i ≤ j < k ge: i ≥  satisfiable_int_formula: satisfiable_int_formula(fmla) list_accum: list_accum nil: [] deliver-msg-to-comp: deliver-msg-to-comp(t;m;x;S;C) component: component(P.M[P]) cand: c∧ B pExt: pExt(P.M[P]) add-cause: add-cause(ev;ext) deliver-msg: deliver-msg(t;m;x;Cs;L) create-component: create-component(t;P;x;Cs;L) nequal: a ≠ b ∈  fulpRunType: fulpRunType(T.M[T])

Latex:
\mforall{}[M:Type  {}\mrightarrow{}  Type]
    \mforall{}n2m:\mBbbN{}  {}\mrightarrow{}  pMsg(P.M[P]).  \mforall{}l2m:Id  {}\mrightarrow{}  pMsg(P.M[P]).  \mforall{}Cs0:component(P.M[P])  List.
    \mforall{}G0:LabeledDAG(pInTransit(P.M[P])).  \mforall{}env:pEnvType(P.M[P]).  \mforall{}t:\mBbbN{}.
        let  r  =  pRun(<Cs0,  G0>env;n2m;l2m)  in
                let  info,Cs,G  =  r  t  in 
                \mforall{}x\mmember{}G.let  ev  =  fst(x)  in
                                  ((fst(ev))  \mleq{}  t)  \mvee{}  (\mexists{}m:\mBbbN{}lg-size(G0).  (ev  =  (fst(lg-label(G0;m))))) 
    supposing  Continuous+(P.M[P])



Date html generated: 2016_05_17-AM-10_48_14
Last ObjectModification: 2016_01_18-AM-00_18_02

Theory : process-model


Home Index