{ 
[Info:Type]
    
es:EO+(Info)
      
[A:Type]
        
X:EClass(A)
          
[S:Type]
            
init:S. 
f:S 
 A 
 S. 
test:S 
 A 
 
. 
nxt:S 
 A 
 S. 
e:E.
              ((
e 
 X)
              
 (
e':E(Threshold(init;f;test;nxt;X))
                  ((e' <loc e)
                  
 (
e'':E(X)
                       ((e' <loc e'')
                       
 (e'' <loc e)
                       
 (
(test 
                              list_accum(s,v.f s v;
                                         nxt Threshold(init;f;test;nxt;X)(e');
                                         X(e', e'')) 
                              X(e'')))))
                  
 let s = list_accum(s,v.f s v;
                                       nxt Threshold(init;f;test;nxt;X)(e');
                                       X(e', e)) in
                        (
(test s X(e)))
                        
 (Threshold(init;f;test;nxt;X)(e) = <s, X(e)>))))
              
 ((
e 
 X)
                
 (
e':E(X)
                     ((e' <loc e)
                     
 (
(test list_accum(s,v.f s v;init;X(<e')) X(e')))))
                
 let s = list_accum(s,v.f s v;init;X(<e)) in
                      (
(test s X(e)))
                      
 (Threshold(init;f;test;nxt;X)(e) = <s, X(e)>)) 
              supposing 
e 
 Threshold(init;f;test;nxt;X) }
{ Proof }
Definitions occuring in Statement : 
es-threshold: Threshold(init;f;test;nxt;X), 
es-prior-interval-vals: X(e1, e2), 
es-prior-interface-vals: X(<e), 
es-E-interface: E(X), 
eclass-val: X(e), 
in-eclass: e 
 X, 
eclass: EClass(A[eo; e]), 
event-ordering+: EO+(Info), 
es-locl: (e <loc e'), 
es-E: E, 
assert:
b, 
bool:
, 
let: let, 
uimplies: b supposing a, 
uall:
[x:A]. B[x], 
all:
x:A. B[x], 
exists:
x:A. B[x], 
not:
A, 
implies: P 
 Q, 
or: P 
 Q, 
and: P 
 Q, 
apply: f a, 
function: x:A 
 B[x], 
pair: <a, b>, 
product: x:A 
 B[x], 
universe: Type, 
equal: s = t, 
list_accum: list_accum(x,a.f[x; a];y;l)
Definitions : 
assert:
b, 
member: t 
 T, 
top: Top, 
all:
x:A. B[x], 
so_lambda: 
x y.t[x; y], 
or: P 
 Q, 
and: P 
 Q, 
exists:
x:A. B[x], 
es-E-interface: E(X), 
implies: P 
 Q, 
let: let, 
ifthenelse: if b then t else f fi , 
prop:
, 
cand: A c
 B, 
btrue: tt, 
guard: {T}, 
true: True, 
uall:
[x:A]. B[x], 
uimplies: b supposing a, 
so_apply: x[s1;s2], 
iff: P 

 Q, 
sq_type: SQType(T), 
subtype: S 
 T
Lemmas : 
in-eclass_wf, 
es-threshold_wf, 
es-interface-subtype_rel2, 
es-E_wf, 
event-ordering+_inc, 
event-ordering+_wf, 
top_wf, 
is-threshold, 
es-threshold-cases, 
assert_wf, 
es-locl_wf, 
es-E-interface_wf, 
es-interface-top, 
not_wf, 
list_accum_wf, 
es-prior-interval-vals_wf, 
eclass-val_wf, 
es-prior-interface-vals_wf, 
subtype_base_sq, 
bool_wf, 
bool_subtype_base, 
assert_elim, 
eclass_wf
\mforall{}[Info:Type]
    \mforall{}es:EO+(Info)
        \mforall{}[A:Type]
            \mforall{}X:EClass(A)
                \mforall{}[S:Type]
                    \mforall{}init:S.  \mforall{}f:S  {}\mrightarrow{}  A  {}\mrightarrow{}  S.  \mforall{}test:S  {}\mrightarrow{}  A  {}\mrightarrow{}  \mBbbB{}.  \mforall{}nxt:S  \mtimes{}  A  {}\mrightarrow{}  S.  \mforall{}e:E.
                        ((\muparrow{}e  \mmember{}\msubb{}  X)
                        \mwedge{}  (\mexists{}e':E(Threshold(init;f;test;nxt;X))
                                ((e'  <loc  e)
                                \mwedge{}  (\mforall{}e'':E(X)
                                          ((e'  <loc  e'')
                                          {}\mRightarrow{}  (e''  <loc  e)
                                          {}\mRightarrow{}  (\mneg{}\muparrow{}(test 
                                                        list\_accum(s,v.f  s  v;nxt  Threshold(init;f;test;nxt;X)(e');X(e',  e'')) 
                                                        X(e'')))))
                                \mwedge{}  let  s  =  list\_accum(s,v.f  s  v;nxt  Threshold(init;f;test;nxt;X)(e');X(e',  e))  in
                                            (\muparrow{}(test  s  X(e)))  \mwedge{}  (Threshold(init;f;test;nxt;X)(e)  =  <s,  X(e)>))))
                        \mvee{}  ((\muparrow{}e  \mmember{}\msubb{}  X)
                            \mwedge{}  (\mforall{}e':E(X).  ((e'  <loc  e)  {}\mRightarrow{}  (\mneg{}\muparrow{}(test  list\_accum(s,v.f  s  v;init;X(<e'))  X(e')))))
                            \mwedge{}  let  s  =  list\_accum(s,v.f  s  v;init;X(<e))  in
                                        (\muparrow{}(test  s  X(e)))  \mwedge{}  (Threshold(init;f;test;nxt;X)(e)  =  <s,  X(e)>)) 
                        supposing  \muparrow{}e  \mmember{}\msubb{}  Threshold(init;f;test;nxt;X)
Date html generated:
2011_08_16-PM-05_12_20
Last ObjectModification:
2011_06_20-AM-01_13_52
Home
Index