{ [L:simple-consensus-msg() List]. [s:simple-consensus-state()].
    (list_accum(s,v.inning_step() s v;s;L) 
    ~ <map(p.(snd(outr(p)));filter(is-vote-from-inning((snd(s)) - 1);rev(L)))
       @ (fst(s))
    , snd(s)
    >) }

{ Proof }



Definitions occuring in Statement :  is-vote-from-inning: is-vote-from-inning(i),  inning_step: inning_step(),  simple-consensus-msg: simple-consensus-msg(),  simple-consensus-state: simple-consensus-state(),  reverse: rev(as),  map: map(f;as),  append: as @ bs,  outr: outr(x),  uall: [x:A]. B[x],  pi1: fst(t),  pi2: snd(t),  apply: f a,  lambda: x.A[x],  pair: <a, b>,  list: type List,  subtract: n - m,  natural_number: $n,  sqequal: s ~ t,  list_accum: list_accum(x,a.f[x; a];y;l),  filter: filter(P;l)
Definitions :  uall: [x:A]. B[x],  list_accum: list_accum(x,a.f[x; a];y;l),  append: as @ bs,  map: map(f;as),  filter: filter(P;l),  reverse: rev(as),  member: t  T,  ycomb: Y,  reduce: reduce(f;k;as),  pi1: fst(t),  pi2: snd(t),  simple-consensus-state: simple-consensus-state(),  inning_step: inning_step(),  ifthenelse: if b then t else f fi ,  all: x:A. B[x],  implies: P  Q,  btrue: tt,  prop: ,  bfalse: ff,  top: Top,  subtype: S  T,  suptype: suptype(S; T),  outr: outr(x),  is-vote-from-inning: is-vote-from-inning(i),  band: p  q,  bnot: b,  isl: isl(x),  simple-consensus-msg: simple-consensus-msg(),  nat: ,  bool: ,  unit: Unit,  iff: P  Q,  and: P  Q,  it:
Lemmas :  simple-consensus-state_wf,  simple-consensus-msg_wf,  inning_step_wf,  eq_int_wf,  bool_wf,  iff_weakening_uiff,  uiff_transitivity,  assert_wf,  eqtt_to_assert,  assert_of_eq_int,  not_wf,  bnot_wf,  eqff_to_assert,  assert_of_bnot,  not_functionality_wrt_uiff,  filter_append_sq,  is-vote-from-inning_wf,  reverse_wf,  map_append_sq,  filter_wf_top,  l_member_wf,  append_assoc_sq,  map_wf,  top_wf,  filter_wf

\mforall{}[L:simple-consensus-msg()  List].  \mforall{}[s:simple-consensus-state()].
    (list\_accum(s,v.inning\_step()  s  v;s;L) 
    \msim{}  <map(\mlambda{}p.(snd(outr(p)));filter(is-vote-from-inning((snd(s))  -  1);rev(L)))  @  (fst(s)),  snd(s)>)


Date html generated: 2011_08_17-PM-06_32_26
Last ObjectModification: 2011_06_18-AM-11_55_26

Home Index