Nuprl Lemma : parallel-compose2-program-eq

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


Proof




Definitions occuring in Statement :  parallel-class-program: || Y eclass2-program: Xpr Ypr hdataflow: hdataflow(A;B) Id: Id valueall-type: valueall-type(T) uimplies: supposing a uall: [x:A]. B[x] squash: T function: x:A ⟶ B[x] universe: Type equal: t ∈ T bag: bag(T)
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T uimplies: supposing a squash: T exists: x:A. B[x] all: x:A. B[x] 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 so_lambda: λ2x.t[x] so_apply: x[s] subtype_rel: A ⊆B local-class: LocalClass(X) sq_exists: x:{A| B[x]} implies:  Q prop: guard: {T} iff: ⇐⇒ Q and: P ∧ Q rev_implies:  Q so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] true: True parallel-class-program: || Y eclass2-program: Xpr Ypr bool: 𝔹 unit: Unit it: btrue: tt uiff: uiff(P;Q) bfalse: ff or: P ∨ Q sq_type: SQType(T) bnot: ¬bb assert: b false: False

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



Date html generated: 2016_05_17-AM-09_08_46
Last ObjectModification: 2016_01_17-PM-09_14_28

Theory : local!classes


Home Index