Nuprl Lemma : parallel-bind-program-eq

∀[Info,B,C:Type]. ∀[X1,X2:Id ⟶ hdataflow(Info;B)]. ∀[X:B ⟶ Id ⟶ hdataflow(Info;C)].
  (X1 >>= X || X2 >>= X = X1 || X2 >>= X ∈ (Id ⟶ hdataflow(Info;C))) supposing (valueall-type(C) and valueall-type(B))


Proof




Definitions occuring in Statement :  parallel-class-program: X || Y,  bind-class-program: xpr >>= ypr,  hdataflow: hdataflow(A;B),  Id: Id,  valueall-type: valueall-type(T),  uimplies: b supposing a,  uall: ∀[x:A]. B[x],  function: x:A ⟶ B[x],  universe: Type,  equal: s = t ∈ T
Definitions unfolded in proof :  uall: ∀[x:A]. B[x],  member: t ∈ T,  uimplies: b supposing a,  so_lambda: λ2x.t[x],  so_apply: x[s],  all: ∀x:A. B[x],  subtype_rel: A ⊆r B,  local-class: LocalClass(X),  implies: P ⇒ Q,  prop: ℙ,  squash: ↓T,  so_lambda: λ2x y.t[x; y],  so_apply: x[s1;s2],  true: True,  guard: {T},  iff: P ⇐⇒ Q,  and: P ∧ Q,  rev_implies: P ⇐ Q,  parallel-class-program: X || Y,  bind-class-program: xpr >>= ypr,  class-ap: X(e),  hdataflow-class: hdataflow-class(F),  pi2: snd(t),  hdf-ap: X(a),  iterate-hdataflow: P*(inputs),  list_accum: list_accum,  map: map(f;as),  list_ind: list_ind,  es-before: before(e),  ifthenelse: if b then t else f fi ,  es-first: first(e),  bor: p ∨bq,  es-eq-E: e = e',  es-eq: es-eq(es),  band: p ∧b q,  eq_id: a = b,  id-deq: IdDeq,  atom2-deq: Atom2Deq,  eq_atom: eq_atom$n(x;y),  es-loc: loc(e),  record-select: r.x,  sq_exists: ∃x:{A| B[x]}

Latex:
\mforall{}[Info,B,C:Type].  \mforall{}[X1,X2:Id  {}\mrightarrow{}  hdataflow(Info;B)].  \mforall{}[X:B  {}\mrightarrow{}  Id  {}\mrightarrow{}  hdataflow(Info;C)].
    (X1  >>=  X  ||  X2  >>=  X  =  X1  ||  X2  >>=  X)  supposing  (valueall-type(C)  and  valueall-type(B))



Date html generated: 2016_05_17-AM-09_12_11
Last ObjectModification: 2016_01_17-PM-09_14_36

Theory : local!classes


Home Index