{ [Info,A:Type]. [X:EClass(A)]. [size:]. [num:A  ]. [P:A  ].
    (Collect(size v's from X with maximum num[v] such that P[v])
    = collectfilterfun()[
      es-interface-accum(collectfilteracc(size;v.num[v];v.P[v]);<-1, 0, inr 0 >;
                         X)]) }

{ Proof }



Definitions occuring in Statement :  collectfilterfun: collectfilterfun() collectfilteracc: collectfilteracc(size;v1.num[v1];v2.P[v2]) es-collect-filter: Collect(size v's from X with maximum num[v] such that P[v]) es-interface-accum: es-interface-accum(f;x;X) es-filter-image: f[X] eclass: EClass(A[eo; e]) bool: nat_plus: nat: uall: [x:A]. B[x] so_apply: x[s] function: x:A  B[x] pair: <a, b> inr: inr x  minus: -n natural_number: $n universe: Type equal: s = t
Definitions :  member: t  T so_lambda: x y.t[x; y] eclass: EClass(A[eo; e]) es-filter-image: f[X] collectfilterfun: collectfilterfun() es-interface-accum: es-interface-accum(f;x;X) collectfilteracc: collectfilteracc(size;v1.num[v1];v2.P[v2]) collectfilterfun2: collectfilterfun2() collectfilteracc2: collectfilteracc2(size;v1.num[v1];v2.P[v2]) btrue: tt ifthenelse: if b then t else f fi  top: Top p-compose: f o g bfalse: ff can-apply: can-apply(f;x) do-apply: do-apply(f;x) isl: isl(x) outl: outl(x) all: x:A. B[x] implies: P  Q prop: nat: assert: b le: A  B so_apply: x[s] so_lambda: x.t[x] spreadn: spread3 subtype: S  T has-value: has-value(a) true: True false: False not: A and: P  Q pi2: snd(t) pi1: fst(t) squash: T suptype: suptype(S; T) cand: A c B es-collect-filter: Collect(size v's from X with maximum num[v] such that P[v]) es-collect-accum: es-collect-accum(X;x.num[x];init;a,v.f[a; v];a.P[a]) collect_filter: collect_filter() uall: [x:A]. B[x] so_apply: x[s1;s2] bool: unit: Unit iff: P  Q nat_plus: es-E-interface: E(X) uimplies: b supposing a sq_type: SQType(T) guard: {T} sq_stable: SqStable(P) it:
Lemmas :  bool_wf nat_wf nat_plus_wf eclass_wf es-E_wf event-ordering+_inc event-ordering+_wf in-eclass_wf es-interface-top iff_weakening_uiff assert_wf eqtt_to_assert not_wf uiff_transitivity bnot_wf eqff_to_assert assert_of_bnot es-E-interface_wf top_wf isl_wf pi2_wf le_wf pi1_wf_top eq_int_wf nat_plus_properties assert_of_eq_int rational-has-value int-rational eclass-val_wf subtype_base_sq bool_subtype_base lt_int_wf assert_of_lt_int le_int_wf assert_functionality_wrt_uiff bnot_of_lt_int assert_of_le_int btrue_wf nat_properties int_inc ifthenelse_wf bfalse_wf not_functionality_wrt_uiff assert_elim list_accum_equality false_wf sq_stable_from_decidable decidable__le es-interface-predecessors_wf Id_wf es-loc_wf list_accum_wf collectfilteracc2-as_collect_accum es-collect-filter_wf es-filter-image_wf collectfilterfun2_wf es-interface-accum_wf collect_accum-wf2 bor_wf band_wf eclass-ext

\mforall{}[Info,A:Type].  \mforall{}[X:EClass(A)].  \mforall{}[size:\mBbbN{}\msupplus{}].  \mforall{}[num:A  {}\mrightarrow{}  \mBbbN{}].  \mforall{}[P:A  {}\mrightarrow{}  \mBbbB{}].
    (Collect(size  v's  from  X  with  maximum  num[v]  such  that  P[v])
    =  collectfilterfun()[es-interface-accum(collectfilteracc(size;v.num[v];v.P[v]);<-1,  0,  inr  0  >
                                                                                    X)])


Date html generated: 2011_08_16-PM-05_29_38
Last ObjectModification: 2010_11_10-AM-02_05_22

Home Index