{ [A,B:Type]. [ins:A List]. [P:dataflow(A;bag(B))].
    (delay-dataflow(P)*(ins) 
    ~ seq-dataflow(P*(ins);let ins' = filter(x.0 <z bag-size(x);
                                             data-stream(P;ins)) in
                               buffer-dataflow(if null(ins')
                               then {}
                               else last(ins')
                               fi ;x.0 <z bag-size(x)))) }

{ Proof }



Definitions occuring in Statement :  delay-dataflow: delay-dataflow(P) buffer-dataflow: buffer-dataflow(s;x.P[x]) seq-dataflow: seq-dataflow(P;Q) data-stream: data-stream(P;L) iterate-dataflow: P*(inputs) dataflow: dataflow(A;B) null: null(as) lt_int: i <z j ifthenelse: if b then t else f fi  let: let uall: [x:A]. B[x] lambda: x.A[x] list: type List natural_number: $n universe: Type sqequal: s ~ t filter: filter(P;l) last: last(L)
Definitions :  function: x:A  B[x] all: x:A. B[x] equal: s = t delay-dataflow: delay-dataflow(P) bag: Error :bag,  universe: Type sqequal: s ~ t list: type List uall: [x:A]. B[x] isect: x:A. B[x] member: t  T dataflow: dataflow(A;B) void: Void top: Top set: {x:A| B[x]}  real: grp_car: |g| subtype: S  T int: nat: let: let apply: f a filter: filter(P;l) lambda: x.A[x] ifthenelse: if b then t else f fi  null: null(as) empty-bag: Error :empty-bag,  last: last(L) lt_int: i <z j natural_number: $n bag-size: Error :bag-size,  data-stream: data-stream(P;L) so_lambda: x.t[x] iterate-dataflow: P*(inputs) seq-dataflow: seq-dataflow(P;Q) buffer-dataflow: buffer-dataflow(s;x.P[x])
Lemmas :  iterate-seq-dataflow iterate-buffer-dataflow buffer-dataflow_wf lt_int_wf Error :bag-size_wf,  nat_wf Error :empty-bag_wf,  data-stream_wf dataflow_wf Error :bag_wf

\mforall{}[A,B:Type].  \mforall{}[ins:A  List].  \mforall{}[P:dataflow(A;bag(B))].
    (delay-dataflow(P)*(ins) 
    \msim{}  seq-dataflow(P*(ins);let  ins'  =  filter(\mlambda{}x.0  <z  bag-size(x);data-stream(P;ins))  in
                                                          buffer-dataflow(if  null(ins')
                                                          then  \{\}
                                                          else  last(ins')
                                                          fi  ;x.0  <z  bag-size(x))))


Date html generated: 2011_08_10-AM-08_18_09
Last ObjectModification: 2011_06_18-AM-08_31_30

Home Index