{ [A,B,M:Type]. [P:dataflow(M;bag(A))]. [Q:A  dataflow(M;bag(B))].
    (bind-dataflow(P;a.Q[a])  dataflow(M;bag(B))) }

{ Proof }



Definitions occuring in Statement :  bind-dataflow: bind-dataflow(P;a.Q[a]) dataflow: dataflow(A;B) uall: [x:A]. B[x] so_apply: x[s] member: t  T function: x:A  B[x] universe: Type bag: bag(T)
Definitions :  empty-bag: {} lambda: x.A[x] so_lambda: x.t[x] bind-dataflow-aux: bind-dataflow-aux(P;dfs;a.Q[a]) all: x:A. B[x] axiom: Ax apply: f a so_apply: x[s] bind-dataflow: bind-dataflow(P;a.Q[a]) universe: Type uall: [x:A]. B[x] dataflow: dataflow(A;B) bag: bag(T) function: x:A  B[x] isect: x:A. B[x] equal: s = t member: t  T tactic: Error :tactic
Lemmas :  bind-dataflow-aux_wf empty-bag_wf dataflow_wf bag_wf

\mforall{}[A,B,M:Type].  \mforall{}[P:dataflow(M;bag(A))].  \mforall{}[Q:A  {}\mrightarrow{}  dataflow(M;bag(B))].
    (bind-dataflow(P;a.Q[a])  \mmember{}  dataflow(M;bag(B)))


Date html generated: 2011_08_16-AM-09_49_37
Last ObjectModification: 2011_05_09-PM-06_25_42

Home Index