{ [Info,T:Type].
    X:EClass(T). es:EO+(Info). e:E.
      (e'<e.((v:T. v  X(e'))  e''<e.(v:T. v  X(e''))  e'' loc e' )
       (class-pred(X;es;e) = (inl e' ))
       (e'<e.v:T. (v  X(e'))  (class-pred(X;es;e) = (inr  )))) }

{ Proof }



Definitions occuring in Statement :  class-pred: class-pred(X;es;e) classrel: v  X(e) eclass: EClass(A[eo; e]) event-ordering+: EO+(Info) alle-lt: e<e'.P[e] existse-before: e<e'.P[e] es-le: e loc e'  es-E: E it: uall: [x:A]. B[x] top: Top all: x:A. B[x] exists: x:A. B[x] not: A squash: T implies: P  Q or: P  Q and: P  Q inr: inr x  inl: inl x  union: left + right universe: Type equal: s = t
Definitions :  bag-size: bag-size(bs) natural_number: $n less_than: a < b bag-member: bag-member(T;x;bs) exists: x:A. B[x] squash: T iff: P  Q bag: bag(T) uall: [x:A]. B[x] universe: Type tactic: Error :tactic,  limited-type: LimitedType l_member: (x  l) length: ||as|| eclass: EClass(A[eo; e]) fpf: a:A fp-B[a] strong-subtype: strong-subtype(A;B) le: A  B ge: i  j  not: A uimplies: b supposing a uiff: uiff(P;Q) subtype_rel: A r B so_lambda: x.t[x] real: grp_car: |g| subtype: S  T int: nat: prop: permutation: permutation(T;L1;L2) list: type List and: P  Q product: x:A  B[x] rev_implies: P  Q implies: P  Q set: {x:A| B[x]}  quotient: x,y:A//B[x; y] all: x:A. B[x] function: x:A  B[x] isect: x:A. B[x] equal: s = t member: t  T Auto: Error :Auto,  RepUR: Error :RepUR,  CollapseTHEN: Error :CollapseTHEN,  Complete: Error :Complete,  Try: Error :Try,  D: Error :D,  axiom: Ax lambda: x.A[x] pair: <a, b> CollapseTHENA: Error :CollapseTHENA,  apply: f a so_apply: x[s] union: left + right or: P  Q false: False void: Void top: Top cons: [car / cdr] nil: [] guard: {T} sq_type: SQType(T) null: null(as) assert: b true: True RepeatFor: Error :RepeatFor,  es-causle: e c e' tl: tl(l) hd: hd(l) cand: A c B add: n + m unit: Unit es-loc: loc(e) Id: Id infix_ap: x f y es-causl: (e < e') bool: lt_int: i <z j es-locl: (e <loc e') sq_exists: x:{A| B[x]} es-local-pred: last(P) record-select: r.x eq_atom: x =a y eq_atom: eq_atom$n(x;y) decide: case b of inl(x) =s[x] | inr(y) =t[y] ifthenelse: if b then t else f fi  dep-isect: Error :dep-isect,  record+: record+ event_ordering: EO so_lambda: x y.t[x; y] event-ordering+: EO+(Info) existse-before: e<e'.P[e] es-le: e loc e'  inl: inl x  alle-lt: e<e'.P[e] classrel: v  X(e) es-E: E class-pred: class-pred(X;es;e) inr: inr x  it: atom: Atom es-base-E: es-base-E(es) token: "$token" eclass-val: X(e) es-pred: pred(e) existse-le: ee'.P[e] alle-le: ee'.P[e] alle-between1: e[e1,e2).P[e] existse-between1: e[e1,e2).P[e] alle-between2: e[e1,e2].P[e] existse-between2: e[e1,e2].P[e] existse-between3: e(e1,e2].P[e] es-fset-loc: i  locs(s) es-r-immediate-pred: es-r-immediate-pred(es;R;e';e) same-thread: same-thread(es;p;e;e') decidable: Dec(P) uni_sat: a = !x:T. Q[x] inv_funs: InvFuns(A;B;f;g) inject: Inj(A;B;f) eqfun_p: IsEqFun(T;eq) refl: Refl(T;x,y.E[x; y]) urefl: UniformlyRefl(T;x,y.E[x; y]) sym: Sym(T;x,y.E[x; y]) usym: UniformlySym(T;x,y.E[x; y]) trans: Trans(T;x,y.E[x; y]) utrans: UniformlyTrans(T;x,y.E[x; y]) anti_sym: AntiSym(T;x,y.R[x; y]) uanti_sym: UniformlyAntiSym(T;x,y.R[x; y]) connex: Connex(T;x,y.R[x; y]) uconnex: uconnex(T; x,y.R[x; y]) coprime: CoPrime(a,b) ident: Ident(T;op;id) assoc: Assoc(T;op) comm: Comm(T;op) inverse: Inverse(T;op;id;inv) bilinear: BiLinear(T;pl;tm) bilinear_p: IsBilinear(A;B;C;+a;+b;+c;f) action_p: IsAction(A;x;e;S;f) dist_1op_2op_lr: Dist1op2opLR(A;1op;2op) fun_thru_1op: fun_thru_1op(A;B;opa;opb;f) fun_thru_2op: FunThru2op(A;B;opa;opb;f) cancel: Cancel(T;S;op) monot: monot(T;x,y.R[x; y];f) monoid_p: IsMonoid(T;op;id) group_p: IsGroup(T;op;id;inv) monoid_hom_p: IsMonHom{M1,M2}(f) grp_leq: a  b integ_dom_p: IsIntegDom(r) prime_ideal_p: IsPrimeIdeal(R;P) no_repeats: no_repeats(T;l) value-type: value-type(T) valueall-type: valueall-type(T) 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 i-member: r  I fpf-sub: f  g modulus-of-ccontinuity: modulus-of-ccontinuity(omega;I;f) sq_stable: SqStable(P) partitions: partitions(I;p) le_int: i z j eq_int: (i = j) set_blt: a < b grp_blt: a < b dcdr-to-bool: [d] bl-all: (xL.P[x])_b bl-exists: (xL.P[x])_b b-exists: (i<n.P[i])_b eq_type: eq_type(T;T') qeq: qeq(r;s) q_less: q_less(r;s) q_le: q_le(r;s) deq-member: deq-member(eq;x;L) deq-disjoint: deq-disjoint(eq;as;bs) deq-all-disjoint: deq-all-disjoint(eq;ass;bs) name_eq: name_eq(x;y) eq_id: a = b eq_lnk: a = b es-eq-E: e = e' es-bless: e <loc e' es-ble: e loc e' bnot: b bimplies: p  q band: p  q bor: p q rev_uimplies: rev_uimplies(P;Q)
Lemmas :  sq_stable__assert true_wf ifthenelse_wf es-le-not-locl decidable__es-le false_wf assert_of_lt_int sq_stable_from_decidable decidable__es-locl es-causl_wf es-base-E_wf subtype_rel_self es-E_wf es-locl_wf assert_wf not_wf event-ordering+_wf lt_int_wf es-local-pred_wf event-ordering+_inc eclass_wf existse-before_wf classrel_wf alle-lt_wf es-le_wf bool_wf Id_wf es-loc_wf it_wf unit_wf equal-top cons_member permutation-length member_null subtype_base_sq int_subtype_base length_cons non_neg_length length_wf_nat top_wf nil_member squash_wf bag-member_wf member_wf bag-size_wf subtype_rel_wf nat_wf rev_implies_wf bag_qinc pair_wf iff_wf permutation_wf bag_wf l_member_wf length_wf1 pos_length2

\mforall{}[Info,T:Type].
    \mforall{}X:EClass(T).  \mforall{}es:EO+(Info).  \mforall{}e:E.
        (\mexists{}e'<e.((\mdownarrow{}\mexists{}v:T.  v  \mmember{}  X(e'))  \mwedge{}  \mforall{}e''<e.(\mdownarrow{}\mexists{}v:T.  v  \mmember{}  X(e''))  {}\mRightarrow{}  e''  \mleq{}loc  e'  )
        \mwedge{}  (class-pred(X;es;e)  =  (inl  e'  ))
        \mvee{}  (\mforall{}e'<e.\mforall{}v:T.  (\mneg{}v  \mmember{}  X(e'))  \mwedge{}  (class-pred(X;es;e)  =  (inr  \mcdot{}  ))))


Date html generated: 2011_08_16-PM-04_40_46
Last ObjectModification: 2011_06_15-PM-05_28_05

Home Index