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