{ 
[Info:Type]
    
es:EO+(Info)
      
[T:Type]
        
X:EClass(T). 
P:E(X) 
 
. 
i:Id.
          
[R:Id 
 E(X) 
 
]
            
n:
. 
L:Id List.
              ((
x
L.
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: (
x
L.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