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