{ [Info,A,B:Type]. [X:EClass(A)]. [P:B  ]. [num:A  ]. [init:B].
  [f:B  A  B].
    (es-collect-accum(X;x.num[x];init;b,v.f[b;v];b.P[b])  EClass(  B)) }

{ Proof }



Definitions occuring in Statement :  es-collect-accum: es-collect-accum(X;x.num[x];init;a,v.f[a; v];a.P[a]),  eclass: EClass(A[eo; e]),  bool: ,  nat: ,  uall: [x:A]. B[x],  so_apply: x[s1;s2],  so_apply: x[s],  member: t  T,  function: x:A  B[x],  product: x:A  B[x],  universe: Type
Definitions :  bfalse: ff,  decide_bfalse: decide_bfalse{decide_bfalse_compseq_tag_def:o}(v11.g[v11]; v21.f[v21]),  ifthenelse: if b then t else f fi ,  sum-map: f[x] for x  L,  sum: (f[x] | x < k),  imax: imax(a;b),  length: ||as||,  multiply: n * m,  filter: filter(P;l),  es-E-interface: E(X),  sq_type: SQType(T),  add: n + m,  real: ,  rationals: ,  inl: inl x ,  spread: spread def,  sq_stable: SqStable(P),  or: P  Q,  guard: {T},  eq_knd: a = b,  fpf-dom: x  dom(f),  permutation: permutation(T;L1;L2),  list: type List,  quotient: x,y:A//B[x; y],  empty-bag: {},  subtract: n - m,  single-bag: {x},  decide: case b of inl(x) => s[x] | inr(y) => t[y],  spreadn: spread3,  false: False,  bag: bag(T),  void: Void,  l_member: (x  l),  so_lambda: x.t[x],  prop: ,  pi1: fst(t),  pi2: snd(t),  isl: isl(x),  assert: b,  implies: P  Q,  union: left + right,  int: ,  set: {x:A| B[x]} ,  inr: inr x ,  natural_number: $n,  minus: -n,  pair: <a, b>,  collect_accum: collect_accum(x.num[x];init;a,v.f[a; v];a.P[a]),  es-interface-accum: es-interface-accum(f;x;X),  collect_filter: collect_filter(),  es-filter-image: f[X],  subtype: S  T,  event_ordering: EO,  es-E: E,  event-ordering+: EO+(Info),  lambda: x.A[x],  top: Top,  fpf: a:A fp-> B[a],  strong-subtype: strong-subtype(A;B),  le: A  B,  ge: i  j ,  not: A,  less_than: a < b,  uimplies: b supposing a,  and: P  Q,  uiff: uiff(P;Q),  subtype_rel: A r B,  all: x:A. B[x],  axiom: Ax,  so_apply: x[s1;s2],  apply: f a,  so_apply: x[s],  es-collect-accum: es-collect-accum(X;x.num[x];init;a,v.f[a; v];a.P[a]),  product: x:A  B[x],  nat: ,  equal: s = t,  universe: Type,  so_lambda: x y.t[x; y],  eclass: EClass(A[eo; e]),  bool: ,  function: x:A  B[x],  member: t  T,  isect: x:A. B[x],  uall: [x:A]. B[x],  exists: x:A. B[x],  true: True,  MaAuto: Error :MaAuto,  D: Error :D,  CollapseTHEN: Error :CollapseTHEN
Lemmas :  ifthenelse_wf,  true_wf,  subtype_base_sq,  union_subtype_base,  isect_subtype_base,  top_wf,  member_wf,  pi1_wf_top,  le_wf,  es-interface-accum_wf,  assert_wf,  nat_wf,  pi2_wf,  isl_wf,  es-filter-image_wf,  collect_accum-wf2,  event-ordering+_wf,  event-ordering+_inc,  es-E_wf,  eclass_wf,  bool_wf,  bag_wf,  permutation_wf,  single-bag_wf,  not_wf,  false_wf,  subtype_rel_wf,  empty-bag_wf,  bfalse_wf

\mforall{}[Info,A,B:Type].  \mforall{}[X:EClass(A)].  \mforall{}[P:B  {}\mrightarrow{}  \mBbbB{}].  \mforall{}[num:A  {}\mrightarrow{}  \mBbbN{}].  \mforall{}[init:B].  \mforall{}[f:B  {}\mrightarrow{}  A  {}\mrightarrow{}  B].
    (es-collect-accum(X;x.num[x];init;b,v.f[b;v];b.P[b])  \mmember{}  EClass(\mBbbN{}  \mtimes{}  B))


Date html generated: 2011_08_16-PM-05_27_12
Last ObjectModification: 2011_06_20-AM-01_23_51

Home Index