{ [A,B,S,C:Type]. [s0:S]. [G:S  A  (S  B)]. [f:B  C].
    (map-dataflow(rec-dataflow(s0;s,a.G[s;a]);x.f[x])
    = rec-dataflow(s0;s,a.let s',b = G[s;a] 
                          in <s', f[b]>)) }

{ Proof }



Definitions occuring in Statement :  map-dataflow: map-dataflow(P;b.f[b]) rec-dataflow: rec-dataflow(s0;s,m.next[s; m]) dataflow: dataflow(A;B) uall: [x:A]. B[x] so_apply: x[s1;s2] so_apply: x[s] function: x:A  B[x] spread: spread def pair: <a, b> product: x:A  B[x] universe: Type equal: s = t
Definitions :  sqequal: s ~ t subtype: S  T prop: true: True squash: T data-stream: data-stream(P;L) list: type List let: let lambda: x.A[x] so_lambda: x y.t[x; y] so_lambda: x.t[x] fpf: a:A fp-B[a] strong-subtype: strong-subtype(A;B) le: A  B ge: i  j  not: A less_than: a < b uimplies: b supposing a and: P  Q uiff: uiff(P;Q) subtype_rel: A r B all: x:A. B[x] axiom: Ax pair: <a, b> spread: spread def so_apply: x[s] apply: f a so_apply: x[s1;s2] rec-dataflow: rec-dataflow(s0;s,m.next[s; m]) map-dataflow: map-dataflow(P;b.f[b]) dataflow: dataflow(A;B) equal: s = t universe: Type uall: [x:A]. B[x] product: x:A  B[x] function: x:A  B[x] isect: x:A. B[x] member: t  T Auto: Error :Auto,  THENM: Error :THENM,  CollapseTHENA: Error :CollapseTHENA,  Complete: Error :Complete,  CollapseTHEN: Error :CollapseTHEN,  Try: Error :Try,  tactic: Error :tactic,  tl: tl(l) hd: hd(l) cons: [car / cdr] map: map(f;as) data_stream_nil: data_stream_nil{data_stream_nil_compseq_tag_def:o}(P) nil: [] implies: P  Q pi2: snd(t) dataflow-ap: df(a) pi1: fst(t) rec_dataflow_ap: rec_dataflow_ap_compseq_tag_def void: Void top: Top
Lemmas :  data-stream-cons top_wf dataflow-extensionality map-dataflow_wf rec-dataflow_wf data-stream_wf squash_wf true_wf member_wf dataflow_wf map-data-stream

\mforall{}[A,B,S,C:Type].  \mforall{}[s0:S].  \mforall{}[G:S  {}\mrightarrow{}  A  {}\mrightarrow{}  (S  \mtimes{}  B)].  \mforall{}[f:B  {}\mrightarrow{}  C].
    (map-dataflow(rec-dataflow(s0;s,a.G[s;a]);x.f[x])
    =  rec-dataflow(s0;s,a.let  s',b  =  G[s;a] 
                                                in  <s',  f[b]>))


Date html generated: 2011_08_10-AM-08_20_17
Last ObjectModification: 2011_06_18-AM-08_32_03

Home Index