{ [Info:Type]. [es:EO+(Info)]. [A,B:Type]. [X:EClass(A)]. [P:B  ].
  [num:A  ]. [init:B]. [f:B  A  B]. [e:E].
    es-collect-accum(X;x.num[x];init;b,v.f[b;v];b.P[b])(e)
    = <num[X(e)]
      , list_accum(b,v.f[b;v];
                   init;
                   mapfilter(e.X(e);e'.(num[X(e')] = num[X(e)]);(X)(e)))
      > 
    supposing e  es-collect-accum(X;x.num[x];init;b,v.f[b;v];b.P[b]) }

{ Proof }



Definitions occuring in Statement :  es-collect-accum: es-collect-accum(X;x.num[x];init;a,v.f[a; v];a.P[a]) es-interface-predecessors: (X)(e) eclass-val: X(e) in-eclass: e  X eclass: EClass(A[eo; e]) event-ordering+: EO+(Info) es-E: E eq_int: (i = j) assert: b bool: nat: uimplies: b supposing a uall: [x:A]. B[x] so_apply: x[s1;s2] so_apply: x[s] lambda: x.A[x] function: x:A  B[x] pair: <a, b> product: x:A  B[x] universe: Type equal: s = t mapfilter: mapfilter(f;P;L) list_accum: list_accum(x,a.f[x; a];y;l)
Definitions :  eq_id: a = b es-prior-interface: prior(X) exists: x:A. B[x] es-interface-at: X@i tag-by: zT fset: FSet{T} dataflow: dataflow(A;B) isect2: T1  T2 b-union: A  B fpf-cap: f(x)?z record: record(x.T[x]) cand: A c B is_list_splitting: is_list_splitting(T;L;LL;L2;f) is_accum_splitting: is_accum_splitting(T;A;L;LL;L2;f;g;x) req: x = y rnonneg: rnonneg(r) rleq: x  y i-member: r  I partitions: partitions(I;p) modulus-of-ccontinuity: modulus-of-ccontinuity(omega;I;f) fpf-sub: f  g sq_stable: SqStable(P) bag-only: only(bs) bag_only_single: bag_only_single{bag_only_single_compseq_tag_def:o}(x) es-filter-image: f[X] rev_uimplies: rev_uimplies(P;Q) length: ||as|| eq_knd: a = b fpf-dom: x  dom(f) intensional-universe: IType bfalse: ff unit: Unit int_eq: if a=b  then c  else d btrue: tt atom_eq: atomeqn def sq_type: SQType(T) sqequal: s ~ t union: left + right or: P  Q append: as @ bs guard: {T} locl: locl(a) Knd: Knd atom: Atom$n filter: filter(P;l) l_member: (x  l) list: type List natural_number: $n rationals: real: grp_car: |g| int: es-loc: loc(e) label: ...$L... t true: True squash: T rev_implies: P  Q implies: P  Q iff: P  Q Id: Id fpf: a:A fp-B[a] strong-subtype: strong-subtype(A;B) false: False collect-event: collect-event(es;X;n;v.num[v];L.P[L];e) le: A  B ge: i  j  not: A less_than: a < b es-first-at: e is first@ i s.t.  e.P[e] alle-lt: e<e'.P[e] and: P  Q uiff: uiff(P;Q) void: Void subtype: S  T atom: Atom es-base-E: es-base-E(es) token: "$token" es-E-interface: E(X) subtype_rel: A r B quotient: x,y:A//B[x; y] decide: case b of inl(x) =s[x] | inr(y) =t[y] ifthenelse: if b then t else f fi  top: Top all: x:A. B[x] in-eclass: e  X dep-isect: Error :dep-isect,  eq_atom: x =a y eq_atom: eq_atom$n(x;y) record+: record+ bag: bag(T) set: {x:A| B[x]}  record-select: r.x axiom: Ax es-interface-predecessors: (X)(e) eq_int: (i = j) mapfilter: mapfilter(f;P;L) apply: f a es-collect-accum: es-collect-accum(X;x.num[x];init;a,v.f[a; v];a.P[a]) eclass-val: X(e) product: x:A  B[x] prop: assert: b event_ordering: EO es-E: E nat: uimplies: b supposing a equal: s = t event-ordering+: EO+(Info) universe: Type so_lambda: x y.t[x; y] eclass: EClass(A[eo; e]) uall: [x:A]. B[x] isect: x:A. B[x] member: t  T function: x:A  B[x] bool: MaAuto: Error :MaAuto,  CollapseTHEN: Error :CollapseTHEN,  THENM: Error :THENM,  CollapseTHENA: Error :CollapseTHENA,  Auto: Error :Auto,  so_apply: x[s1;s2] list_accum: list_accum(x,a.f[x; a];y;l) so_apply: x[s] es-collect: Collect(X;x.num[x];L.P[L]) pi2: snd(t) pi1: fst(t) pair: <a, b> single-bag: {x} lambda: x.A[x] so_lambda: x.t[x]
Lemmas :  event-ordering+_wf event-ordering+_inc subtype_rel_self es-base-E_wf es-E_wf top_wf nat_wf subtype_rel_wf es-collect-accum_wf es-interface-subtype_rel2 es-interface-top member_wf eclass_wf in-eclass_wf assert_wf bool_wf is-collect-accum eclass-val_wf es-interface-predecessors_wf Id_wf es-E-interface_wf mapfilter_wf list_accum_wf iff_wf rev_implies_wf squash_wf es-collect-accum-es-collect es-loc_wf eq_int_wf false_wf ifthenelse_wf true_wf le_wf not_wf list-subtype l_member_wf uiff_wf assert-eq-id subtype_base_sq bool_subtype_base assert_elim btrue_wf bfalse_wf unit_wf intensional-universe_wf es-interface-val_wf2 es-collect_wf length_wf1 es-filter-image-val is-es-collect es-collect-val pi1_wf_top pi2_wf sq_stable__assert

\mforall{}[Info:Type].  \mforall{}[es:EO+(Info)].  \mforall{}[A,B:Type].  \mforall{}[X:EClass(A)].  \mforall{}[P:B  {}\mrightarrow{}  \mBbbB{}].  \mforall{}[num:A  {}\mrightarrow{}  \mBbbN{}].  \mforall{}[init:B].
\mforall{}[f:B  {}\mrightarrow{}  A  {}\mrightarrow{}  B].  \mforall{}[e:E].
    es-collect-accum(X;x.num[x];init;b,v.f[b;v];b.P[b])(e)
    =  <num[X(e)]
        ,  list\_accum(b,v.f[b;v];init;mapfilter(\mlambda{}e.X(e);\mlambda{}e'.(num[X(e')]  =\msubz{}  num[X(e)]);\mleq{}(X)(e)))
        > 
    supposing  \muparrow{}e  \mmember{}\msubb{}  es-collect-accum(X;x.num[x];init;b,v.f[b;v];b.P[b])


Date html generated: 2011_08_16-PM-05_28_22
Last ObjectModification: 2011_06_20-AM-01_24_15

Home Index