{ [A,B,M:Type]. [ms:M List]. [P:dataflow(M;bag(A))].
  [Q:A  dataflow(M;bag(B))].
    (bind-dataflow(P;a.Q[a])*(ms)
    = bind-dataflow-aux(P*(ms);bag-map(df.df*(ms);{})
      + nupto(||ms||).bag-map(a.Q[a]*(nth_tl(n;ms));
                        snd(P*(firstn(n;ms))(ms[n])));a.Q[a])) }

{ Proof }



Definitions occuring in Statement :  bind-dataflow: bind-dataflow(P;a.Q[a]) bind-dataflow-aux: bind-dataflow-aux(P;dfs;a.Q[a]) iterate-dataflow: P*(inputs) dataflow-ap: df(a) dataflow: dataflow(A;B) select: l[i] firstn: firstn(n;as) nth_tl: nth_tl(n;as) length: ||as|| uall: [x:A]. B[x] so_apply: x[s] pi2: snd(t) lambda: x.A[x] function: x:A  B[x] list: type List universe: Type equal: s = t bag-combine: xbs.f[x] bag-append: as + bs bag-map: bag-map(f;bs) empty-bag: {} bag: bag(T) upto: upto(n)
Definitions :  all: x:A. B[x] axiom: Ax select: l[i] firstn: firstn(n;as) dataflow-ap: df(a) pi2: snd(t) nth_tl: nth_tl(n;as) length: ||as|| upto: upto(n) bag-combine: xbs.f[x] lambda: x.A[x] bag-map: bag-map(f;bs) bag-append: as + bs bind-dataflow-aux: bind-dataflow-aux(P;dfs;a.Q[a]) apply: f a so_apply: x[s] bind-dataflow: bind-dataflow(P;a.Q[a]) iterate-dataflow: P*(inputs) member: t  T so_lambda: x.t[x] equal: s = t function: x:A  B[x] dataflow: dataflow(A;B) bag: bag(T) list: type List universe: Type uall: [x:A]. B[x] isect: x:A. B[x] Auto: Error :Auto,  CollapseTHEN: Error :CollapseTHEN,  RepeatFor: Error :RepeatFor,  RepUR: Error :RepUR,  empty-bag: {} CollapseTHENA: Error :CollapseTHENA,  tactic: Error :tactic
Lemmas :  bag_wf dataflow_wf empty-bag_wf uall_wf iterate-bind-dataflow-aux

\mforall{}[A,B,M:Type].  \mforall{}[ms:M  List].  \mforall{}[P:dataflow(M;bag(A))].  \mforall{}[Q:A  {}\mrightarrow{}  dataflow(M;bag(B))].
    (bind-dataflow(P;a.Q[a])*(ms)
    =  bind-dataflow-aux(P*(ms);bag-map(\mlambda{}df.df*(ms);\{\})
        +  \mcup{}n\mmember{}upto(||ms||).bag-map(\mlambda{}a.Q[a]*(nth\_tl(n;ms));snd(P*(firstn(n;ms))(ms[n])));a.Q[a]))


Date html generated: 2011_08_16-AM-09_49_44
Last ObjectModification: 2011_05_09-PM-06_26_08

Home Index