{ [A,B:Type]. [b1,b2:bag(dataflow(A;bag(B)))].
    (dataflow-bags-equiv(A;B;b1;b2)  ) }

{ Proof }



Definitions occuring in Statement :  dataflow-bags-equiv: dataflow-bags-equiv(A;B;b1;b2),  dataflow: dataflow(A;B),  uall: [x:A]. B[x],  prop: ,  member: t  T,  universe: Type,  bag: bag(T)
Definitions :  length: ||as||,  add: n + m,  true: True,  le: A  B,  ge: i  j ,  subtype: S  T,  top: Top,  sqequal: s ~ t,  null: null(as),  corec: corec(T.F[T]),  quotient: x,y:A//B[x; y],  strong-subtype: strong-subtype(A;B),  l_member: (x  l),  less_than: a < b,  product: x:A  B[x],  and: P  Q,  uiff: uiff(P;Q),  subtype_rel: A r B,  assert: b,  void: Void,  implies: P  Q,  false: False,  not: A,  set: {x:A| B[x]} ,  list: type List,  data-stream: data-stream(P;L),  uimplies: b supposing a,  last: last(L),  lambda: x.A[x],  so_lambda: x.t[x],  bag-combine: xbs.f[x],  limited-type: LimitedType,  listp: A List,  function: x:A  B[x],  all: x:A. B[x],  uall: [x:A]. B[x],  dataflow: dataflow(A;B),  isect: x:A. B[x],  axiom: Ax,  prop: ,  universe: Type,  dataflow-bags-equiv: dataflow-bags-equiv(A;B;b1;b2),  member: t  T,  equal: s = t,  bag: bag(T),  Auto: Error :Auto,  CollapseTHEN: Error :CollapseTHEN,  D: Error :D
Lemmas :  false_wf,  assert_wf,  not_wf,  top_wf,  member_wf,  null-data-stream,  pos_length2,  bag_wf,  data-stream_wf,  last_wf,  dataflow_wf,  bag-combine_wf,  listp_wf,  listp_properties,  true_wf

\mforall{}[A,B:Type].  \mforall{}[b1,b2:bag(dataflow(A;bag(B)))].    (dataflow-bags-equiv(A;B;b1;b2)  \mmember{}  \mBbbP{})


Date html generated: 2011_08_16-AM-09_48_47
Last ObjectModification: 2011_04_27-PM-03_40_42

Home Index