{ 
[A,B:Type]. 
[ins:A List
]. 
[P:dataflow(A;bag(B))].
    (last(data-stream(delay-dataflow(P);ins)) 
    ~ let ins' = firstn(||ins|| - 1;ins) in
          if null(filter(
x.0 <z bag-size(x);data-stream(P;ins')))
          then {}
          else last(filter(
x.0 <z bag-size(x);data-stream(P;ins')))
          fi ) }
{ Proof }
Definitions occuring in Statement : 
delay-dataflow: delay-dataflow(P), 
data-stream: data-stream(P;L), 
dataflow: dataflow(A;B), 
firstn: firstn(n;as), 
length: ||as||, 
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], 
subtract: n - m, 
natural_number: $n, 
universe: Type, 
sqequal: s ~ t, 
filter: filter(P;l), 
listp: A List
, 
last: last(L)
Lemmas : 
Error :empty-bag_wf, 
last-delay-data-stream1, 
listp_wf, 
Error :bag_wf, 
dataflow_wf, 
subtype_base_sq, 
last_wf, 
data-stream_wf, 
delay-dataflow_wf
\mforall{}[A,B:Type].  \mforall{}[ins:A  List\msupplus{}].  \mforall{}[P:dataflow(A;bag(B))].
    (last(data-stream(delay-dataflow(P);ins))  \msim{}  let  ins'  =  firstn(||ins||  -  1;ins)  in
                                                                                                    if  null(filter(\mlambda{}x.0  <z  bag-size(x);
                                                                                                                                  data-stream(P;ins')))
                                                                                                    then  \{\}
                                                                                                    else  last(filter(\mlambda{}x.0  <z  bag-size(x);
                                                                                                                                      data-stream(P;ins')))
                                                                                                    fi  )
Date html generated:
2011_08_10-AM-08_18_22
Last ObjectModification:
2011_06_29-PM-03_56_10
Home
Index