{ 
[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 
 Threshold(init;f;test;nxt;X)
              

 ((
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'')))))
                      
 (
(test 
                           list_accum(s,v.f s v;
                                      nxt Threshold(init;f;test;nxt;X)(e');
                                      X(e', e)) 
                           X(e))))))
                  
 ((
e 
 X)
                    
 (
e':E(X)
                         ((e' <loc e)
                         
 (
(test list_accum(s,v.f s v;init;X(<e')) X(e')))))
                    
 (
(test list_accum(s,v.f s v;init;X(<e)) X(e))))) }
{ 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:
, 
uall:
[x:A]. B[x], 
all:
x:A. B[x], 
exists:
x:A. B[x], 
iff: P 

 Q, 
not:
A, 
implies: P 
 Q, 
or: P 
 Q, 
and: P 
 Q, 
apply: f a, 
function: x:A 
 B[x], 
product: x:A 
 B[x], 
universe: Type, 
list_accum: list_accum(x,a.f[x; a];y;l)
Definitions : 
uall:
[x:A]. B[x], 
all:
x:A. B[x], 
iff: P 

 Q, 
assert:
b, 
or: P 
 Q, 
and: P 
 Q, 
exists:
x:A. B[x], 
implies: P 
 Q, 
rev_implies: P 
 Q, 
member: t 
 T, 
cand: A c
 B, 
prop:
, 
so_lambda: 
x y.t[x; y], 
guard: {T}, 
top: Top, 
btrue: tt, 
ifthenelse: if b then t else f fi , 
true: True, 
es-E-interface: E(X), 
uimplies: b supposing a, 
let: let, 
so_apply: x[s1;s2], 
sq_type: SQType(T), 
subtype: S 
 T
Lemmas : 
is-threshold2, 
es-locl_wf, 
not_wf, 
assert_wf, 
list_accum_wf, 
es-prior-interval-vals_wf, 
eclass-val_wf, 
es-E_wf, 
event-ordering+_inc, 
es-threshold_wf, 
es-prior-interface-vals_wf, 
es-E-interface_wf, 
es-interface-subtype_rel2, 
event-ordering+_wf, 
top_wf, 
in-eclass_wf, 
implies-is-threshold, 
subtype_base_sq, 
bool_subtype_base, 
bool_wf, 
eclass_wf, 
assert_elim
\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{}  Threshold(init;f;test;nxt;X)
                        \mLeftarrow{}{}\mRightarrow{}  ((\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{}  (\muparrow{}(test  list\_accum(s,v.f  s  v;nxt  Threshold(init;f;test;nxt;X)(e');X(e',  e)) 
                                                  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{}  (\muparrow{}(test  list\_accum(s,v.f  s  v;init;X(<e))  X(e)))))
Date html generated:
2011_08_16-PM-05_13_08
Last ObjectModification:
2011_06_20-AM-01_14_15
Home
Index