{ [Info,A:Type]. [f:A  ]. [X:EClass(A)]. [size:]. [num:A  ].
  [P:A  ].
    (es-collect-filter-max-aux(X;size;v.num[v];v.P[v];v.f[v])
     EClass(  {s:i:  {v:A| f[v] = i}  + Top| isl(s)} )) }

{ Proof }



Definitions occuring in Statement :  es-collect-filter-max-aux: es-collect-filter-max-aux(X;size;v.num[v];v.P[v];v.f[v]) eclass: EClass(A[eo; e]) isl: isl(x) assert: b bool: nat_plus: nat: uall: [x:A]. B[x] top: Top so_apply: x[s] member: t  T set: {x:A| B[x]}  function: x:A  B[x] product: x:A  B[x] union: left + right int: universe: Type equal: s = t
Definitions :  pair: <a, b> false: False decide: case b of inl(x) =s[x] | inr(y) =t[y] ifthenelse: if b then t else f fi  Knd: Knd tag-by: zT rev_implies: P  Q or: P  Q implies: P  Q iff: P  Q record+: record+ record: record(x.T[x]) fset: FSet{T} isect2: T1  T2 b-union: A  B bag: bag(T) list: type List true: True fpf-sub: f  g deq: EqDecider(T) ma-state: State(ds) class-program: ClassProgram(T) es-E-interface: E(X) so_lambda: x.t[x] prop: fpf-cap: f(x)?z subtype: S  T event_ordering: EO es-E: E event-ordering+: EO+(Info) lambda: x.A[x] 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 es-collect-filter-max-aux: es-collect-filter-max-aux(X;size;v.num[v];v.P[v];v.f[v]) apply: f a bool: universe: Type function: x:A  B[x] so_lambda: x y.t[x; y] nat_plus: uall: [x:A]. B[x] isect: x:A. B[x] member: t  T Auto: Error :Auto,  D: Error :D,  CollapseTHEN: Error :CollapseTHEN,  MaAuto: Error :MaAuto,  Try: Error :Try,  pi2: snd(t) isl: isl(x) assert: b top: Top so_apply: x[s] int: equal: s = t set: {x:A| B[x]}  product: x:A  B[x] union: left + right nat: eclass: EClass(A[eo; e]) quotient: x,y:A//B[x; y] natural_number: $n IdLnk: IdLnk l_member: (x  l) bfalse: ff Id: Id btrue: tt sq_type: SQType(T) es-interface-predecessors: (X)(e) eq_int: (i = j) mapfilter: mapfilter(f;P;L) list_accum: list_accum(x,a.f[x; a];y;l) so_apply: x[s1;s2] in-eclass: e  X rev_uimplies: rev_uimplies(P;Q) squash: T atom: Atom es-base-E: es-base-E(es) token: "$token" record-select: r.x es-collect-accum: es-collect-accum(X;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() collect_accum: collect_accum(x.num[x];init;a,v.f[a; v];a.P[a]) guard: {T} eq_atom: x =a y eq_atom: eq_atom$n(x;y) dep-isect: Error :dep-isect,  eclass-val: X(e) rationals: has-value: has-value(a) unit: Unit void: Void CollapseTHENA: Error :CollapseTHENA,  inl: inl x  pi1: fst(t) lt_int: i <z j callbyvalue: callbyvalue it: inr: inr x  es-collect-filter-accum: es-collect-filter-accum AssertBY: Error :AssertBY,  band: p  q filter: filter(P;l) length: ||as|| es-loc: loc(e) alle-lt: e<e'.P[e] es-first-at: e is first@ i s.t.  e.P[e] is_list_splitting: is_list_splitting(T;L;LL;L2;f) is_accum_splitting: is_accum_splitting(T;A;L;LL;L2;f;g;x) req: x = y rnonneg: rnonneg(r) rleq: x  y modulus-of-ccontinuity: modulus-of-ccontinuity(omega;I;f) partitions: partitions(I;p) sq_stable: SqStable(P) i-member: r  I real: grp_car: |g| list-max-aux: list-max-aux(x.f[x];L) tactic: Error :tactic,  eq_knd: a = b fpf-dom: x  dom(f) intensional-universe: IType int_eq: if a=b  then c  else d atom_eq: atomeqn def sqequal: s ~ t append: as @ bs locl: locl(a) atom: Atom$n cand: A c B no_repeats: no_repeats(T;l) prime_ideal_p: IsPrimeIdeal(R;P) integ_dom_p: IsIntegDom(r) grp_leq: a  b monoid_hom_p: IsMonHom{M1,M2}(f) group_p: IsGroup(T;op;id;inv) monoid_p: IsMonoid(T;op;id) monot: monot(T;x,y.R[x; y];f) cancel: Cancel(T;S;op) fun_thru_2op: FunThru2op(A;B;opa;opb;f) fun_thru_1op: fun_thru_1op(A;B;opa;opb;f) dist_1op_2op_lr: Dist1op2opLR(A;1op;2op) action_p: IsAction(A;x;e;S;f) bilinear_p: IsBilinear(A;B;C;+a;+b;+c;f) bilinear: BiLinear(T;pl;tm) inverse: Inverse(T;op;id;inv) comm: Comm(T;op) assoc: Assoc(T;op) ident: Ident(T;op;id) coprime: CoPrime(a,b) connex: Connex(T;x,y.R[x; y]) anti_sym: AntiSym(T;x,y.R[x; y]) trans: Trans(T;x,y.E[x; y]) sym: Sym(T;x,y.E[x; y]) refl: Refl(T;x,y.E[x; y]) eqfun_p: IsEqFun(T;eq) inv_funs: InvFuns(A;B;f;g) uni_sat: a = !x:T. Q[x] collect-event: collect-event(es;X;n;v.num[v];L.P[L];e) es-fset-loc: i  locs(s) existse-between3: e(e1,e2].P[e] existse-between2: e[e1,e2].P[e] alle-between2: e[e1,e2].P[e] existse-between1: e[e1,e2).P[e] alle-between1: e[e1,e2).P[e] alle-le: ee'.P[e] existse-le: ee'.P[e] existse-before: e<e'.P[e] es-causle: e c e' es-le: e loc e'  es-locl: (e <loc e') es-causl: (e < e') cs-precondition: state s may consider v in inning i cs-archive-blocked: in state s, ws' blocks ws from archiving v in inning i cs-inning-committable: in state s, inning i could commit v  cs-inning-committed: in state s, inning i has committed v cs-passed: by state s, a passed inning i without archiving a value cs-archived: by state s, a archived v in inning i cs-not-completed: in state s, a has not completed inning i fset-closed: (s closed under fs) f-subset: xs  ys fset-member: a  s p-outcome: Outcome q-rel: q-rel(r;x) qless: r < s qle: r  s fun-connected: y is f*(x) l_disjoint: l_disjoint(T;l1;l2) prime: prime(a) reducible: reducible(a) inject: Inj(A;B;f) l_contains: A  B l_exists: (xL. P[x]) l_all: (xL.P[x]) infix_ap: x f y grp_lt: a < b set_lt: a <p b set_leq: a  b assoced: a ~ b divides: b | a exists: x:A. B[x] decidable: Dec(P) can-apply: can-apply(f;x) add: n + m spread: spread def map: map(f;as) gt: i > j multiply: n * m iseg: l1  l2 proper-iseg: L1 < L2 limited-type: LimitedType nil: [] select: l[i] remove-repeats: remove-repeats(eq;L) last: last(L) hd: hd(l) cons: [car / cdr]
Lemmas :  es-interface-predecessors-member eq_int_eq_true l_member_subtype l_member-settype l_all_wf list-set-type2 sq_stable__equal sq_stable_wf property-from-l_member l_exists_wf mapfilter-not-nil length_wf_nat equal-nil-sq-nil not_wf pos-length list-max-aux-property bool_sq rev_implies_wf iff_wf decidable__assert sq_stable_from_decidable list-subtype l_member_wf assert-eq-id btrue_wf bfalse_wf intensional-universe_wf es-interface-val_wf2 eq_int_wf es-loc_wf list-max-aux_wf sq_stable__assert is-collect-filter-accum es-E-interface_wf es-interface-set-subtype pi1_wf_top lt_int_wf int_inc rational-has-value unit_wf it_wf es-collect-filter-accum_wf es-interface-top es-base-E_wf subtype_rel_self collect-filter-accum-val assert_functionality_wrt_uiff eclass-val_wf squash_wf subtype_base_sq bool_subtype_base assert_elim in-eclass_wf es-interface-predecessors_wf Id_wf mapfilter_wf uiff_inversion top_wf assert_wf event-ordering+_wf es-E_wf nat_wf member_wf eclass_wf event-ordering+_inc nat_plus_wf bool_wf subtype_rel_wf es-interface-subtype_rel pi2_wf isl_wf subtype_rel_set false_wf ifthenelse_wf true_wf

\mforall{}[Info,A:Type].  \mforall{}[f:A  {}\mrightarrow{}  \mBbbZ{}].  \mforall{}[X:EClass(A)].  \mforall{}[size:\mBbbN{}\msupplus{}].  \mforall{}[num:A  {}\mrightarrow{}  \mBbbN{}].  \mforall{}[P:A  {}\mrightarrow{}  \mBbbB{}].
    (es-collect-filter-max-aux(X;size;v.num[v];v.P[v];v.f[v])
    \mmember{}  EClass(\mBbbN{}  \mtimes{}  \{s:i:\mBbbZ{}  \mtimes{}  \{v:A|  f[v]  =  i\}    +  Top|  \muparrow{}isl(s)\}  ))


Date html generated: 2011_08_16-PM-05_31_22
Last ObjectModification: 2010_12_22-PM-12_32_10

Home Index