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