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

{ Proof }



Definitions occuring in Statement :  map-dataflow: map-dataflow(P;b.f[b]),  data-stream: data-stream(P;L),  dataflow: dataflow(A;B),  map: map(f;as),  uall: [x:A]. B[x],  so_apply: x[s],  lambda: x.A[x],  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: map(f;as),  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),  strong-subtype: strong-subtype(A;B),  qabs: |r|,  filter: filter(P;l),  pi2: snd(t),  dataflow-ap: df(a),  pi1: fst(t),  fpf: a:A fp-> B[a],  fpf-cap: f(x)?z,  pair: <a, b>,  fpf-dom: x  dom(f),  ma-state: State(ds),  deq: EqDecider(T),  fpf-sub: f  g,  true: True,  data_stream_nil: data_stream_nil{data_stream_nil_compseq_tag_def:o}(P),  int_iseg: {i...j},  rationals: ,  select: l[i],  upto: upto(n),  int_seg: {i..j},  base: Base,  lelt: i  j < k,  iff: P  Q,  rev_implies: P  Q,  tactic: Error :tactic,  RepeatFor: Error :RepeatFor,  CollapseTHEN: Error :CollapseTHEN,  Try: Error :Try,  CollapseTHENA: Error :CollapseTHENA,  Auto: Error :Auto,  RepUR: Error :RepUR,  D: Error :D
Lemmas :  length_cons,  pos_length2,  assert_wf,  iterate-map-dataflow,  rev_implies_wf,  iff_wf,  int_subtype_base,  set_subtype_base,  map_wf,  int_seg_wf,  upto_wf,  select_wf,  pi2_wf,  false_wf,  not_wf,  length_firstn,  non_neg_length,  map_append_sq,  data-stream-cons,  subtype_rel_list,  subtype_rel_wf,  last_wf,  dataflow-ap_wf,  pi1_wf,  list_subtype_base,  subtype_base_sq,  append_wf,  data-stream_wf,  iterate-dataflow_wf,  map-dataflow_wf,  firstn_wf,  data-stream-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].
    (data-stream(map-dataflow(P;b.f[b]);ms)  \msim{}  map(\mlambda{}b.f[b];data-stream(P;ms)))


Date html generated: 2011_08_10-AM-08_17_27
Last ObjectModification: 2010_12_31-PM-12_51_55

Home Index