{ [Info,T,A:Type]. [num:A  ]. [val:A  (  T?)]. [size:].
  [X:EClass(A)]. [Z:EClass(T)].
    (Collect(size v's from X
              with maximum num= num[v]
              return <num,n,outl(v).2for which
              n=outl(val[v]).1 is maximum
              or <num,-1,prior Zif all isr(val[v])))  EClass(    T)) }

{ Proof }



Definitions occuring in Statement :  es-collect-opt-max: es-collect-opt-max eclass: EClass(A[eo; e]) nat_plus: nat: uall: [x:A]. B[x] so_apply: x[s] unit: Unit member: t  T function: x:A  B[x] product: x:A  B[x] union: left + right int: universe: Type
Definitions :  uall: [x:A]. B[x] member: t  T es-collect-opt-max: es-collect-opt-max so_apply: x[s] spreadn: spread4 ifthenelse: if b then t else f fi  btrue: tt top: Top all: x:A. B[x] subtype: S  T so_lambda: x.t[x] implies: P  Q prop: bfalse: ff so_lambda: x y.t[x; y] nat: unit: Unit bool: iff: P  Q and: P  Q uimplies: b supposing a so_apply: x[s1;s2] it:
Lemmas :  map-class_wf nat_wf pi1_wf_top isl_wf unit_wf bool_wf iff_weakening_uiff assert_wf eqtt_to_assert pi2_wf outl_wf not_wf uiff_transitivity bnot_wf eqff_to_assert assert_of_bnot es-interface-pair-prior_wf es-collect-filter-max_wf btrue_wf eclass_wf es-E_wf event-ordering+_inc event-ordering+_wf nat_plus_wf

\mforall{}[Info,T,A:Type].  \mforall{}[num:A  {}\mrightarrow{}  \mBbbN{}].  \mforall{}[val:A  {}\mrightarrow{}  (\mBbbN{}  \mtimes{}  T?)].  \mforall{}[size:\mBbbN{}\msupplus{}].  \mforall{}[X:EClass(A)].  \mforall{}[Z:EClass(T)].
    (Collect(size  v's  from  X
                        with  maximum  num=  num[v]
                        return  <num,n,outl(v).2>  for  which
                        n=outl(val[v]).1  is  maximum
                        or  <num,-1,prior  Z>  if  all  isr(val[v])))  \mmember{}  EClass(\mBbbN{}  \mtimes{}  \mBbbZ{}  \mtimes{}  T))


Date html generated: 2011_08_16-PM-05_39_43
Last ObjectModification: 2011_06_20-AM-01_29_40

Home Index