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