{ [Info,A,B,C:Type].
    F:bag(A)  bag(B)  bag(C)
      [X:EClass(A)]. [Y:EClass(B)].  (x,y.F[x;y]|X;Y|  EClass(C)) }

{ Proof }



Definitions occuring in Statement :  simple-comb2: x,y.F[x; y]|X;Y| eclass: EClass(A[eo; e]) uall: [x:A]. B[x] so_apply: x[s1;s2] all: x:A. B[x] member: t  T function: x:A  B[x] universe: Type bag: bag(T)
Definitions :  natural_number: $n lambda: x.A[x] select: l[i] cons: [car / cdr] nil: [] function: x:A  B[x] member: t  T bag: bag(T) all: x:A. B[x] isect: x:A. B[x] universe: Type uall: [x:A]. B[x] equal: s = t eclass: EClass(A[eo; e]) so_lambda: x y.t[x; y] simple-comb2: x,y.F[x; y]|X;Y| so_apply: x[s1;s2] apply: f a axiom: Ax event-ordering+: EO+(Info) es-E: E event_ordering: EO record+: record+ dep-isect: Error :dep-isect,  record-select: r.x ifthenelse: if b then t else f fi  eq_atom: x =a y token: "$token" es-base-E: es-base-E(es) top: Top atom: Atom eq_atom: eq_atom$n(x;y) subtype_rel: A r B subtype: S  T bool: simple-comb: simple-comb(F;Xs) uimplies: b supposing a fpf: a:A fp-B[a] uiff: uiff(P;Q) and: P  Q product: x:A  B[x] less_than: a < b not: A ge: i  j  le: A  B strong-subtype: strong-subtype(A;B) int: nat: rationals: real: set: {x:A| B[x]}  false: False implies: P  Q void: Void prop: p-outcome: Outcome int_seg: {i..j} list: type List length: ||as|| label: ...$L... t lelt: i  j < k sq_type: SQType(T) tactic: Error :tactic,  Try: Error :Try,  CollapseTHEN: Error :CollapseTHEN,  Auto: Error :Auto,  same-thread: same-thread(es;p;e;e') decidable: Dec(P) es-E-interface: E(X) collect-event: Error :collect-event,  cut-order: Error :cut-order,  path-goes-thru: Error :path-goes-thru,  es-r-immediate-pred: es-r-immediate-pred(es;R;e';e) exists: x:A. B[x] 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] alle-lt: e<e'.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') infix_ap: x f y consensus-rcv: consensus-rcv(V;A) 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 consensus-state3: consensus-state3(T) l_disjoint: l_disjoint(T;l1;l2) MaName: MaName Knd: Knd IdLnk: IdLnk Id: Id fset-closed: (s closed under fs) fset: FSet{T} f-subset: xs  ys fset-member: a  s dstype: dstype(TypeNames; d; a) i-closed: i-closed(I) i-finite: i-finite(I) atom: Atom$n sq_exists: x:{A| B[x]} q-rel: q-rel(r;x) qless: r < s qle: r  s limited-type: LimitedType fun-connected: y is f*(x) l_all: (xL.P[x]) l_exists: (xL. P[x]) squash: T prime: prime(a) reducible: reducible(a) inject: Inj(A;B;f) cmp-le: cmp-le(cmp;x;y) l_contains: A  B nat_plus: or: P  Q union: left + right guard: {T}
Lemmas :  int_subtype_base decidable__equal_int subtype_base_sq es-interface-top subtype_rel_wf top_wf length_wf1 non_neg_length length_cons length_nil length_wf_nat select_wf int_seg_wf nat_wf false_wf not_wf le_wf simple-comb_wf member_wf bag_wf eclass_wf es-E_wf es-base-E_wf subtype_rel_self event-ordering+_inc event-ordering+_wf

\mforall{}[Info,A,B,C:Type].
    \mforall{}F:bag(A)  {}\mrightarrow{}  bag(B)  {}\mrightarrow{}  bag(C).  \mforall{}[X:EClass(A)].  \mforall{}[Y:EClass(B)].    (\mlambda{}x,y.F[x;y]|X;Y|  \mmember{}  EClass(C))


Date html generated: 2011_08_16-PM-04_57_28
Last ObjectModification: 2011_05_11-AM-01_29_11

Home Index