{ [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