{ [Info:Type]
    es:EO+(Info)
      [T:Type]
        X:EClass(T). P:E(X)  . i:Id.
          [R:Id  E(X)  ]
            n:. L:Id List.
              ((xL.y:E(X). (R[x;y]  (P[y])))
                  (e:E(X)
                      ((P[e])
                       e is first@ i s.t.  q.||filter(e.P[e];(X)(q))||
                        = n))) supposing 
                 ((n  ||L||) and 
                 no_repeats(Id;L)) 
            supposing x1,x2:Id. y:E(X).  (R[x1;y]  R[x2;y]  (x1 = x2)) 
          supposing e:E(X). loc(e) = i supposing P[e] }

{ Proof }



Definitions occuring in Statement :  es-interface-predecessors: (X)(e) es-E-interface: E(X) eclass: EClass(A[eo; e]) event-ordering+: EO+(Info) es-first-at: e is first@ i s.t.  e.P[e] es-loc: loc(e) Id: Id length: ||as|| assert: b bool: nat_plus: uimplies: b supposing a uall: [x:A]. B[x] prop: so_apply: x[s1;s2] so_apply: x[s] le: A  B all: x:A. B[x] exists: x:A. B[x] implies: P  Q and: P  Q lambda: x.A[x] function: x:A  B[x] list: type List int: universe: Type equal: s = t l_all: (xL.P[x]) no_repeats: no_repeats(T;l) filter: filter(P;l)
Definitions :  uall: [x:A]. B[x] all: x:A. B[x] uimplies: b supposing a so_apply: x[s] prop: implies: P  Q so_apply: x[s1;s2] no_repeats: no_repeats(T;l) le: A  B exists: x:A. B[x] and: P  Q member: t  T not: A false: False rev_implies: P  Q iff: P  Q so_lambda: x.t[x] so_lambda: x y.t[x; y] assert: b cand: A c B btrue: tt ifthenelse: if b then t else f fi  true: True nat: guard: {T} ge: i  j  top: Top squash: T es-E-interface: E(X) length: ||as|| label: ...$L... t ycomb: Y subtype: S  T nat_plus: sq_type: SQType(T) strongwellfounded: SWellFounded(R[x; y]) decidable: Dec(P) or: P  Q bfalse: ff filter: filter(P;l) reduce: reduce(f;k;as) append: as @ bs es-first-at: e is first@ i s.t.  e.P[e] alle-lt: e<e'.P[e]
Lemmas :  assert_wf es-E-interface_wf es-interface-top Id_wf select_wf not_wf nat_wf length_wf1 filter-interface-predecessors-lower-bound2 l_all_wf2 l_member_wf le_wf no_repeats_wf nat_plus_wf es-loc_wf event-ordering+_inc bool_wf eclass_wf es-E_wf event-ordering+_wf subtype_base_sq bool_subtype_base filter_wf es-interface-predecessors_wf assert_elim es-causl-swellfnd es-causl_wf nat_properties ge_wf decidable__equal_int in-eclass_wf es-prior-interface_wf es-interface-subtype_rel2 top_wf bnot_wf squash_wf true_wf es-interface-predecessors-general-step bool_cases iff_weakening_uiff eqtt_to_assert uiff_transitivity eqff_to_assert assert_of_bnot eclass-val_wf2 es-prior-interface-causl es-loc-prior-interface length_nil non_neg_length length_wf_nat filter_wf_top append_wf length_append filter_append_sq filter_type subtype_rel_list length_cons length-append es-first-at-exists es-prior-interface-locl append-nil assert_witness es-first-at_wf

\mforall{}[Info:Type]
    \mforall{}es:EO+(Info)
        \mforall{}[T:Type]
            \mforall{}X:EClass(T).  \mforall{}P:E(X)  {}\mrightarrow{}  \mBbbB{}.  \mforall{}i:Id.
                \mforall{}[R:Id  {}\mrightarrow{}  E(X)  {}\mrightarrow{}  \mBbbP{}]
                    \mforall{}n:\mBbbN{}\msupplus{}.  \mforall{}L:Id  List.
                        ((\mforall{}x\mmember{}L.\mexists{}y:E(X).  (R[x;y]  \mwedge{}  (\muparrow{}P[y])))
                              {}\mRightarrow{}  (\mexists{}e:E(X)
                                        ((\muparrow{}P[e])  \mwedge{}  e  is  first@  i  s.t.    q.||filter(\mlambda{}e.P[e];\mleq{}(X)(q))||  =  n)))  supposing 
                              ((n  \mleq{}  ||L||)  and 
                              no\_repeats(Id;L)) 
                    supposing  \mforall{}x1,x2:Id.  \mforall{}y:E(X).    (R[x1;y]  {}\mRightarrow{}  R[x2;y]  {}\mRightarrow{}  (x1  =  x2)) 
                supposing  \mforall{}e:E(X).  loc(e)  =  i  supposing  \muparrow{}P[e]


Date html generated: 2011_08_16-PM-05_23_55
Last ObjectModification: 2011_06_20-AM-01_22_56

Home Index