{ [A:Type]. [P:{L:A List| 0 < ||L||}   ].
    (collect_filter()  
                         {L:A List| (0 < ||L||)  (P[L])} 
                         ({L:A List| (0 < ||L||)  (P[L])}  + Top)
                         bag(  {L:A List| (0 < ||L||)  (P[L])} )) }

{ Proof }



Definitions occuring in Statement :  collect_filter: collect_filter(),  length: ||as||,  assert: b,  bool: ,  uall: [x:A]. B[x],  top: Top,  so_apply: x[s],  not: A,  implies: P  Q,  and: P  Q,  member: t  T,  less_than: a < b,  set: {x:A| B[x]} ,  function: x:A  B[x],  product: x:A  B[x],  union: left + right,  list: type List,  natural_number: $n,  int: ,  universe: Type,  bag: bag(T)
Definitions :  inr: inr x ,  inl: inl x ,  empty-bag: {},  subtract: n - m,  pair: <a, b>,  single-bag: {x},  decide: case b of inl(x) => s[x] | inr(y) => t[y],  spread: spread def,  or: P  Q,  guard: {T},  uimplies: b supposing a,  eq_knd: a = b,  l_member: (x  l),  fpf-dom: x  dom(f),  fpf: a:A fp-> B[a],  nil: [],  prop: ,  cand: A c B,  permutation: permutation(T;L1;L2),  quotient: x,y:A//B[x; y],  spreadn: spread3,  lambda: x.A[x],  all: x:A. B[x],  universe: Type,  uall: [x:A]. B[x],  bool: ,  isect: x:A. B[x],  member: t  T,  not: A,  union: left + right,  top: Top,  bag: bag(T),  and: P  Q,  natural_number: $n,  length: ||as||,  assert: b,  so_apply: x[s],  apply: f a,  collect_filter: collect_filter(),  axiom: Ax,  equal: s = t,  int: ,  product: x:A  B[x],  set: {x:A| B[x]} ,  list: type List,  implies: P  Q,  function: x:A  B[x],  less_than: a < b
Lemmas :  bool_wf,  permutation_wf,  bag_wf,  member_wf,  single-bag_wf,  empty-bag_wf,  not_wf,  assert_wf,  length_wf1,  top_wf

\mforall{}[A:Type].  \mforall{}[P:\{L:A  List|  0  <  ||L||\}    {}\mrightarrow{}  \mBbbB{}].
    (collect\_filter()  \mmember{}  \mBbbZ{}
                                            \mtimes{}  \{L:A  List|  (0  <  ||L||)  {}\mRightarrow{}  (\mneg{}\muparrow{}P[L])\} 
                                            \mtimes{}  (\{L:A  List|  (0  <  ||L||)  \mwedge{}  (\muparrow{}P[L])\}    +  Top)
                                            {}\mrightarrow{}  bag(\mBbbZ{}  \mtimes{}  \{L:A  List|  (0  <  ||L||)  \mwedge{}  (\muparrow{}P[L])\}  ))


Date html generated: 2011_08_16-AM-11_03_36
Last ObjectModification: 2011_06_18-AM-09_36_49

Home Index