{ [A,B,C:Type]. [P:dataflow(A;B)]. [f:B  C]. [ms:A List].
    (map-dataflow(P;b.f[b])*(ms) ~ map-dataflow(P*(ms);b.f[b])) }

{ Proof }



Definitions occuring in Statement :  map-dataflow: map-dataflow(P;b.f[b]),  iterate-dataflow: P*(inputs),  dataflow: dataflow(A;B),  uall: [x:A]. B[x],  so_apply: x[s],  function: x:A  B[x],  list: type List,  universe: Type,  sqequal: s ~ t
Definitions :  less_than: a < b,  natural_number: $n,  length: ||as||,  lambda: x.A[x],  subtract: n - m,  add: n + m,  minus: -n,  not: A,  false: False,  ge: i  j ,  isect: x:A. B[x],  uall: [x:A]. B[x],  universe: Type,  dataflow: dataflow(A;B),  function: x:A  B[x],  list: type List,  prop: ,  sqequal: s ~ t,  so_lambda: x.t[x],  member: t  T,  equal: s = t,  all: x:A. B[x],  implies: P  Q,  guard: {T},  le: A  B,  nat: ,  int: ,  subtype: S  T,  grp_car: |g|,  real: ,  set: {x:A| B[x]} ,  uimplies: b supposing a,  top: Top,  void: Void,  decidable: Dec(P),  l_disjoint: l_disjoint(T;l1;l2),  fset-closed: (s closed under fs),  f-subset: xs  ys,  fset-member: a  s,  p-outcome: Outcome,  i-closed: i-closed(I),  i-finite: i-finite(I),  exists: x:A. B[x],  product: x:A  B[x],  q-rel: q-rel(r;x),  qless: r < s,  qle: r  s,  fun-connected: y is f*(x),  infix_ap: x f y,  apply: f a,  l_all: (xL.P[x]),  l_exists: (xL. P[x]),  squash: T,  prime: prime(a),  reducible: reducible(a),  inject: Inj(A;B;f),  l_contains: A  B,  l_member: (x  l),  cand: A c B,  grp_lt: a < b,  set_lt: a <p b,  set_leq: a  b,  assoced: a ~ b,  divides: b | a,  assert: b,  or: P  Q,  union: left + right,  append: as @ bs,  firstn: firstn(n;as),  cons: [car / cdr],  last: last(L),  nil: [],  data-stream: data-stream(P;L),  iterate-dataflow: P*(inputs),  so_apply: x[s],  map-dataflow: map-dataflow(P;b.f[b]),  corec: corec(T.F[T]),  primrec: primrec(n;b;c),  subtype_rel: A r B,  sq_type: SQType(T),  uiff: uiff(P;Q),  and: P  Q,  hd: hd(l),  tl: tl(l),  iter_df_cons: iter_df_cons{iter_df_cons_compseq_tag_def:o}(as; a; P),  iter_df_nil: iter_df_nil{iter_df_nil_compseq_tag_def:o}(P),  strong-subtype: strong-subtype(A;B),  qabs: |r|,  filter: filter(P;l),  map: map(f;as),  dataflow-ap: df(a),  pi1: fst(t),  iff: P  Q,  rev_implies: P  Q,  int_iseg: {i...j},  rationals: ,  RepUR: Error :RepUR,  D: Error :D,  CollapseTHEN: Error :CollapseTHEN,  Auto: Error :Auto
Lemmas :  non_neg_length,  length_cons,  pos_length2,  assert_wf,  false_wf,  not_wf,  length_firstn,  rev_implies_wf,  iff_wf,  pi1_wf,  dataflow-ap_wf,  isect_subtype_base,  primrec_wf,  subtype_base_sq,  iterate-dataflow_wf,  map-dataflow_wf,  firstn_wf,  last_wf,  iterate-dataflow-append,  firstn_all,  firstn_decomp,  length_wf1,  decidable__lt,  top_wf,  member_wf,  length_wf_nat,  guard_wf,  le_wf,  comp_nat_ind_tp,  nat_wf,  uall_wf,  dataflow_wf,  nat_ind_tp,  nat_properties,  ge_wf

\mforall{}[A,B,C:Type].  \mforall{}[P:dataflow(A;B)].  \mforall{}[f:B  {}\mrightarrow{}  C].  \mforall{}[ms:A  List].
    (map-dataflow(P;b.f[b])*(ms)  \msim{}  map-dataflow(P*(ms);b.f[b]))


Date html generated: 2011_08_10-AM-08_17_13
Last ObjectModification: 2010_12_31-PM-12_45_47

Home Index