{ [Info:Type]. [es:EO+(Info)]. [A:Type]. [X:EClass(A)]. [P:{L:A List| 
                                                                 0 < ||L||} 
                                                                 ].
  [num:A  ]. [e:E].
    Collect(X;x.num[x];L.P[L])(e)
    = <num[X(e)], mapfilter(e.X(e);e'.(num[X(e')] = num[X(e)]);(X)(e))> 
    supposing e  Collect(X;x.num[x];L.P[L]) }

{ Proof }



Definitions occuring in Statement :  es-collect: Collect(X;x.num[x];L.P[L]),  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,  length: ||as||,  eq_int: (i = j),  assert: b,  bool: ,  nat: ,  uimplies: b supposing a,  uall: [x:A]. B[x],  so_apply: x[s],  and: P  Q,  less_than: a < b,  set: {x:A| B[x]} ,  lambda: x.A[x],  function: x:A  B[x],  pair: <a, b>,  product: x:A  B[x],  list: type List,  natural_number: $n,  universe: Type,  equal: s = t,  mapfilter: mapfilter(f;P;L)
Definitions :  so_apply: x[s],  and: P  Q,  member: t  T,  prop: ,  top: Top,  so_lambda: x.t[x],  all: x:A. B[x],  so_lambda: x y.t[x; y],  cand: A c B,  nat: ,  implies: P  Q,  le: A  B,  subtype: S  T,  not: A,  false: False,  pi2: snd(t),  squash: T,  true: True,  uall: [x:A]. B[x],  uimplies: b supposing a,  so_apply: x[s1;s2],  pi1: fst(t),  sq_stable: SqStable(P)
Lemmas :  assert_wf,  in-eclass_wf,  es-collect_wf,  length_wf1,  es-interface-subtype_rel2,  nat_wf,  es-E_wf,  event-ordering+_inc,  event-ordering+_wf,  top_wf,  bool_wf,  eclass_wf,  eclass-val_wf,  pi1_wf_top,  pi2_wf,  nat_properties,  sq_stable__and,  sq_stable_from_decidable,  decidable__lt,  sq_stable__assert

\mforall{}[Info:Type].  \mforall{}[es:EO+(Info)].  \mforall{}[A:Type].  \mforall{}[X:EClass(A)].  \mforall{}[P:\{L:A  List|  0  <  ||L||\}    {}\mrightarrow{}  \mBbbB{}].
\mforall{}[num:A  {}\mrightarrow{}  \mBbbN{}].  \mforall{}[e:E].
    Collect(X;x.num[x];L.P[L])(e)
    =  <num[X(e)],  mapfilter(\mlambda{}e.X(e);\mlambda{}e'.(num[X(e')]  =\msubz{}  num[X(e)]);\mleq{}(X)(e))> 
    supposing  \muparrow{}e  \mmember{}\msubb{}  Collect(X;x.num[x];L.P[L])


Date html generated: 2011_08_16-PM-05_26_56
Last ObjectModification: 2010_11_15-AM-01_57_07

Home Index