{ [A,B:Type]. [f,g,h:dataflow(A;B)].  (f  h) supposing (f  g and g  h) }

{ Proof }



Definitions occuring in Statement :  dataflow-equiv: d1  d2,  dataflow: dataflow(A;B),  uimplies: b supposing a,  uall: [x:A]. B[x],  universe: Type
Definitions :  b-union: A  B,  union: left + right,  bag: Error :bag,  fpf-sub: f  g,  deq: EqDecider(T),  ma-state: State(ds),  apply: f a,  fpf-dom: x  dom(f),  false: False,  rcv: rcv(l,tg),  locl: locl(a),  Knd: Knd,  pair: <a, b>,  true: True,  squash: T,  primrec: primrec(n;b;c),  bool: ,  fpf-cap: f(x)?z,  guard: {T},  limited-type: LimitedType,  void: Void,  subtype: S  T,  fpf: a:A fp-> B[a],  top: Top,  int: ,  length: ||as||,  nat: ,  set: {x:A| B[x]} ,  sq_type: SQType(T),  strong-subtype: strong-subtype(A;B),  corec: corec(T.F[T]),  le: A  B,  ge: i  j ,  not: A,  less_than: a < b,  product: x:A  B[x],  and: P  Q,  uiff: uiff(P;Q),  subtype_rel: A r B,  axiom: Ax,  data-stream: data-stream(P;L),  list: type List,  lambda: x.A[x],  all: x:A. B[x],  function: x:A  B[x],  equal: s = t,  universe: Type,  uall: [x:A]. B[x],  dataflow: dataflow(A;B),  uimplies: b supposing a,  prop: ,  isect: x:A. B[x],  dataflow-equiv: d1  d2,  member: t  T,  MaAuto: Error :MaAuto,  CollapseTHEN: Error :CollapseTHEN,  ParallelOp: Error :ParallelOp,  RepeatFor: Error :RepeatFor,  Auto: Error :Auto
Lemmas :  member_wf,  subtype_rel_wf,  dataflow_wf,  top_wf,  data-stream_wf,  length_wf_nat,  nat_wf,  list_subtype_base,  subtype_base_sq,  dataflow-equiv_wf,  true_wf,  squash_wf,  dataflow_subtype,  subtype_rel_self

\mforall{}[A,B:Type].  \mforall{}[f,g,h:dataflow(A;B)].    (f  \mequiv{}  h)  supposing  (f  \mequiv{}  g  and  g  \mequiv{}  h)


Date html generated: 2011_08_10-AM-08_21_53
Last ObjectModification: 2011_06_18-AM-08_32_30

Home Index