{ 
[Info,A:Type]. 
[a:A]. 
[X:EClass(A)]. 
[S:Type]. 
[init:S].
  
[f:S 
 A 
 S]. 
[test:S 
 A 
 
]. 
[nxt:S 
 A 
 S]. 
[B:Type].
  
[g:S 
 A 
 (B + Top)].
    (g[Threshold(init;f;test;nxt;X)]
    = 
p.(snd(p))[es-interface-accum(
p,x.
                                      let s',v = p 
                                      in if test s' x
                                         then <nxt <s', x>, g <s', x>>
                                         else <f s' x, ff>
                                         fi <init
                                     , if test init a
                                       then g <init, a>
                                       else ff
                                       fi 
                                     >X)]) }
{ Proof }
Definitions occuring in Statement : 
es-threshold: Threshold(init;f;test;nxt;X), 
es-interface-accum: es-interface-accum(f;x;X), 
es-filter-image: f[X], 
eclass: EClass(A[eo; e]), 
ifthenelse: if b then t else f fi , 
bfalse: ff, 
bool:
, 
uall:
[x:A]. B[x], 
top: Top, 
pi2: snd(t), 
apply: f a, 
lambda:
x.A[x], 
function: x:A 
 B[x], 
spread: spread def, 
pair: <a, b>, 
product: x:A 
 B[x], 
union: left + right, 
universe: Type, 
equal: s = t
Definitions : 
uall:
[x:A]. B[x], 
eclass: EClass(A[eo; e]), 
top: Top, 
es-filter-image: f[X], 
pi2: snd(t), 
es-interface-accum: es-interface-accum(f;x;X), 
ifthenelse: if b then t else f fi , 
bfalse: ff, 
spreadn: spread3, 
member: t 
 T, 
all:
x:A. B[x], 
implies: P 
 Q, 
btrue: tt, 
prop:
, 
and: P 
 Q, 
pi1: fst(t), 
so_lambda: 
x.t[x], 
p-compose: f o g, 
can-apply: can-apply(f;x), 
do-apply: do-apply(f;x), 
isl: isl(x), 
outl: outl(x), 
subtype: S 
 T, 
suptype: suptype(S; T), 
so_lambda: 
x y.t[x; y], 
list_accum: list_accum(x,a.f[x; a];y;l), 
ycomb: Y, 
bool:
, 
unit: Unit, 
iff: P 

 Q, 
so_apply: x[s], 
es-E-interface: E(X), 
so_apply: x[s1;s2], 
it:
Lemmas : 
es-threshold-as-accum, 
bool_wf, 
iff_weakening_uiff, 
assert_wf, 
eqtt_to_assert, 
not_wf, 
uiff_transitivity, 
bnot_wf, 
eqff_to_assert, 
assert_of_bnot, 
top_wf, 
es-filter-image_wf, 
es-interface-accum_wf, 
ifthenelse_wf, 
pi2_wf, 
in-eclass_wf, 
event-ordering+_wf, 
es-E_wf, 
event-ordering+_inc, 
es-interface-predecessors_wf, 
es-E-interface_wf, 
Id_wf, 
es-loc_wf, 
eclass_wf, 
es-interface-val_wf2, 
pi1_wf_top
\mforall{}[Info,A:Type].  \mforall{}[a:A].  \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{}[B:Type].  \mforall{}[g:S  \mtimes{}  A  {}\mrightarrow{}  (B  +  Top)].
    (g[Threshold(init;f;test;nxt;X)]
    =  \mlambda{}p.(snd(p))[es-interface-accum(\mlambda{}p,x.
                                                                        let  s',v  =  p 
                                                                        in  if  test  s'  x
                                                                              then  <nxt  <s',  x>,  g  <s',  x>>
                                                                              else  <f  s'  x,  ff>
                                                                              fi  ;<init,  if  test  init  a  then  g  <init,  a>  else  ff  fi  >X)])
Date html generated:
2011_08_16-PM-06_08_33
Last ObjectModification:
2010_11_10-AM-05_41_52
Home
Index