{ [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