{ s:simple-consensus-state(). v:simple-consensus-msg(). t:.
    (((snd(s)) = 0)
     (isl(v))
     (outl(outl(inning_val() <s, v>)) = <0, outl(v)>))
     ((isl(v))
       ((((snd(s))  (fst(outr(v))))
         (isl(inning_val() <s, v>))
         (outl(outl(inning_val() <s, v>)) = outr(v)))
         (((fst(outr(v))) = ((snd(s)) - 1))
           (||fst(s)|| = (2 * t))
           (((xfst(s).x = (snd(outr(v))))
             (isl(outl(inning_val() <s, v>)))
             (outr(outl(inning_val() <s, v>)) = (snd(outr(v)))))
             ((xfst(s). (x = (snd(outr(v)))))
               (isl(inning_val() <s, v>))
               (outl(outl(inning_val() <s, v>))
                = <snd(s)
                  , strict-majority-or-max([snd(outr(v)) / (fst(s))])
                  >)))))) 
    supposing (inning_test(t) s v) }

{ Proof }



Definitions occuring in Statement :  inning_val: inning_val() inning_test: inning_test(t) simple-consensus-msg: simple-consensus-msg() simple-consensus-state: simple-consensus-state() length: ||as|| outr: outr(x) outl: outl(x) isl: isl(x) assert: b nat: uimplies: b supposing a pi1: fst(t) pi2: snd(t) le: A  B all: x:A. B[x] not: A or: P  Q and: P  Q apply: f a pair: <a, b> product: x:A  B[x] cons: [car / cdr] multiply: n * m subtract: n - m natural_number: $n int: equal: s = t l_exists: (xL. P[x]) l_all: (xL.P[x]) strict-majority-or-max: strict-majority-or-max(L)
Definitions :  all: x:A. B[x] uimplies: b supposing a assert: b or: P  Q and: P  Q nat: pi2: snd(t) isl: isl(x) outl: outl(x) inning_val: inning_val() not: A le: A  B pi1: fst(t) outr: outr(x) member: t  T implies: P  Q ifthenelse: if b then t else f fi  btrue: tt bfalse: ff true: True false: False prop: cand: A c B so_lambda: x.t[x] guard: {T} l_exists: (xL. P[x]) exists: x:A. B[x] l_all: (xL.P[x]) simple-consensus-state: simple-consensus-state() simple-consensus-msg: simple-consensus-msg() inning_test: inning_test(t) uall: [x:A]. B[x] bool: iff: P  Q so_apply: x[s] unit: Unit decidable: Dec(P) rev_implies: P  Q it:
Lemmas :  assert_witness inning_test_wf iff_weakening_uiff assert_wf eq_int_wf nat_properties assert_of_eq_int le_wf not_wf true_wf pi1_wf_top nat_wf length_wf1 l_all_wf2 l_member_wf l_exists_wf strict-majority-or-max_wf simple-consensus-msg_wf simple-consensus-state_wf bor_wf le_int_wf band_wf decidable__assert decidable_wf bool_wf uiff_transitivity eqtt_to_assert assert_of_le_int false_wf lt_int_wf bnot_wf eqff_to_assert assert_functionality_wrt_uiff bnot_of_le_int assert_of_lt_int bl-exists_wf iff_transitivity assert-bl-exists assert_of_bnot not_functionality_wrt_iff assert_of_bor or_functionality_wrt_uiff assert_of_band and_functionality_wrt_uiff not_functionality_wrt_uiff decidable__equal_int

\mforall{}s:simple-consensus-state().  \mforall{}v:simple-consensus-msg().  \mforall{}t:\mBbbZ{}.
    (((snd(s))  =  0)  \mwedge{}  (\muparrow{}isl(v))  \mwedge{}  (outl(outl(inning\_val()  <s,  v>))  =  ɘ,  outl(v)>))
    \mvee{}  ((\mneg{}\muparrow{}isl(v))
        \mwedge{}  ((((snd(s))  \mleq{}  (fst(outr(v))))
            \mwedge{}  (\muparrow{}isl(inning\_val()  <s,  v>))
            \mwedge{}  (outl(outl(inning\_val()  <s,  v>))  =  outr(v)))
            \mvee{}  (((fst(outr(v)))  =  ((snd(s))  -  1))
                \mwedge{}  (||fst(s)||  =  (2  *  t))
                \mwedge{}  (((\mforall{}x\mmember{}fst(s).x  =  (snd(outr(v))))
                    \mwedge{}  (\mneg{}\muparrow{}isl(outl(inning\_val()  <s,  v>)))
                    \mwedge{}  (outr(outl(inning\_val()  <s,  v>))  =  (snd(outr(v)))))
                    \mvee{}  ((\mexists{}x\mmember{}fst(s).  \mneg{}(x  =  (snd(outr(v)))))
                        \mwedge{}  (\muparrow{}isl(inning\_val()  <s,  v>))
                        \mwedge{}  (outl(outl(inning\_val()  <s,  v>))
                            =  <snd(s),  strict-majority-or-max([snd(outr(v))  /  (fst(s))])>)))))) 
    supposing  \muparrow{}(inning\_test(t)  s  v)


Date html generated: 2011_08_17-PM-06_32_48
Last ObjectModification: 2011_06_18-AM-11_55_55

Home Index