{ 
[Info,A:Type]. 
[a:A]. 
[X:EClass(A)]. 
[S:Type]. 
[init:S].
  
[f:S 
 A 
 S]. 
[test:S 
 A 
 
]. 
[nxt:S 
 A 
 S].
    (Threshold(init;f;test;nxt;X)
    = 
tr.let s',s,v = tr in 
          if test s v then {<s, v>} else {} fi [
      es-interface-accum(
tr,x.
                          let s',s,v = tr in 
                          <if test s' x then nxt <s', x> else f s' x fi 
                          , s'
                          , x><init, init, a>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 , 
bool:
, 
spreadn: spread3, 
uall:
[x:A]. B[x], 
apply: f a, 
lambda:
x.A[x], 
function: x:A 
 B[x], 
pair: <a, b>, 
product: x:A 
 B[x], 
universe: Type, 
equal: s = t, 
single-bag: {x}, 
empty-bag: {}
Definitions : 
ycomb: Y, 
prop:
, 
btrue: tt, 
reduce: reduce(f;k;as), 
filter: filter(P;l), 
so_lambda: 
x y.t[x; y], 
subtype: S 
 T, 
member: t 
 T, 
es-le-before:
loc(e), 
eclass-events: eclass-events(es;X;L), 
bfalse: ff, 
top: Top, 
es-interface-predecessors:
(X)(e), 
ifthenelse: if b then t else f fi , 
list_accum: list_accum(x,a.f[x; a];y;l), 
implies: P 
 Q, 
all:
x:A. B[x], 
true: True, 
spreadn: spread3, 
assert:
b, 
so_lambda: 
x.t[x], 
and: P 
 Q, 
pi2: snd(t), 
pi1: fst(t), 
let: let, 
outl: outl(x), 
do-apply: do-apply(f;x), 
isl: isl(x), 
can-apply: can-apply(f;x), 
eclass-val: X(e), 
in-eclass: e 
 X, 
eclass: EClass(A[eo; e]), 
es-E-interface: E(X), 
cand: A c
 B, 
es-prior-interface-vals: X(<e), 
squash:
T, 
hd: hd(l), 
le: A 
 B, 
label: ...$L... t, 
ge: i 
 j , 
length: ||as||, 
false: False, 
exists:
x:A. B[x], 
not:
A, 
rev_implies: P 
 Q, 
map: map(f;as), 
mapfilter: mapfilter(f;P;L), 
iff: P 

 Q, 
or: P 
 Q, 
guard: {T}, 
unit: Unit, 
so_apply: x[s1;s2], 
uall:
[x:A]. B[x], 
bool:
, 
sq_type: SQType(T), 
uimplies: b supposing a, 
so_apply: x[s], 
es-before: before(e), 
uiff: uiff(P;Q), 
decidable: Dec(P), 
it:
Lemmas : 
assert_of_bnot, 
eqff_to_assert, 
bnot_wf, 
uiff_transitivity, 
not_wf, 
eqtt_to_assert, 
assert_wf, 
iff_weakening_uiff, 
bool_wf, 
in-eclass_wf, 
es-E-interface_wf, 
top_wf, 
eclass-events_wf, 
list_accum_append, 
es-E_wf, 
event-ordering+_inc, 
es-before_wf, 
es-interface-top, 
es-interface-events-append, 
assert_elim, 
bool_subtype_base, 
subtype_base_sq, 
event-ordering+_wf, 
eclass-val_wf, 
ifthenelse_wf, 
list_accum_wf, 
pi2_wf, 
pi1_wf_top, 
not_assert_elim, 
btrue_neq_bfalse, 
assert_functionality_wrt_uiff, 
es-interface-val_wf2, 
es-prior-interval-vals_wf, 
false_wf, 
true_wf, 
eclass-val_wf2, 
es-prior-interface_wf, 
member-es-before, 
l_member_wf, 
ge_wf, 
squash_wf, 
hd_wf, 
append-impossible2, 
bool_cases, 
es-loc_wf, 
Id_wf, 
es-before_wf2, 
non_neg_length, 
length_cons, 
length_wf_nat, 
length_nil, 
length_wf1, 
es-pred_wf, 
general-append-cancellation, 
nil_iseg, 
es-first_wf, 
mapfilter_wf, 
es-locl_wf, 
filter_type, 
last_induction, 
append_wf, 
nil_member, 
implies_functionality_wrt_iff, 
all_functionality_wrt_iff, 
member_append, 
mapfilter-append, 
filter_wf_top, 
filter_append_sq, 
map_wf, 
is-prior-interface, 
cons_member, 
decidable__es-E-equal, 
decidable__l_member, 
append-nil, 
not_functionality_wrt_iff, 
decidable__assert, 
es-interface-subtype_rel2, 
eclass_wf, 
es-prior-interface-vals_wf, 
equal-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].
    (Threshold(init;f;test;nxt;X)
    =  \mlambda{}tr.let  s',s,v  =  tr  in 
                if  test  s  v  then  \{<s,  v>\}  else  \{\}  fi  [es-interface-accum(\mlambda{}tr,x.
                                                                                                                                    let  s',s,v  =  tr  in 
                                                                                                                                    <if  test  s'  x
                                                                                                                                    then  nxt  <s',  x>
                                                                                                                                    else  f  s'  x
                                                                                                                                    fi 
                                                                                                                                    ,  s'
                                                                                                                                    ,  x><init,  init,  a>X)])
Date html generated:
2011_08_16-PM-06_04_57
Last ObjectModification:
2011_01_30-PM-03_52_24
Home
Index