Nuprl Lemma : parallel-bind-program-eq

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


Proof




Definitions occuring in Statement :  parallel-class-program: || Y bind-class-program: xpr >>ypr hdataflow: hdataflow(A;B) Id: Id valueall-type: valueall-type(T) uimplies: supposing a uall: [x:A]. B[x] function: x:A ⟶ B[x] universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T uimplies: supposing a so_lambda: λ2x.t[x] so_apply: x[s] all: x:A. B[x] subtype_rel: A ⊆B local-class: LocalClass(X) implies:  Q prop: squash: T so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] true: True guard: {T} iff: ⇐⇒ Q and: P ∧ Q rev_implies:  Q parallel-class-program: || 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 then else fi  es-first: first(e) bor: p ∨bq es-eq-E: e' es-eq: es-eq(es) band: p ∧b q eq_id: 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