{ [V:Type]
    eq:EqDecider(V). A:Id List. t:. f:V List  V.
      ((vs:V List. (f vs  vs) supposing ||vs||  1 )
       (s:ts-reachable(three-consensus-ts(V;A;t;f)). v:V.
          a:{a:Id| (a  A)} . n:. L:consensus-rcv(V;A) List.
            (L  s a
             archive-condition(V;A;t;f;n;v;L)
             (aA. (||s a||  1 )  (hd(s a) = Init[v]))))) }

{ Proof }



Definitions occuring in Statement :  three-consensus-ts: three-consensus-ts(V;A;t;f) archive-condition: archive-condition(V;A;t;f;n;v;L) cs-initial-rcv: Init[v] consensus-rcv: consensus-rcv(V;A) Id: Id hd: hd(l) length: ||as|| nat_plus: uimplies: b supposing a uall: [x:A]. B[x] ge: i  j  all: x:A. B[x] implies: P  Q and: P  Q set: {x:A| B[x]}  apply: f a function: x:A  B[x] list: type List natural_number: $n int: universe: Type equal: s = t l_exists: (xL. P[x]) iseg: l1  l2 l_member: (x  l) deq: EqDecider(T) ts-reachable: ts-reachable(ts)
Definitions :  cand: A c B so_lambda: x.t[x] prop: member: t  T implies: P  Q and: P  Q ge: i  j  all: x:A. B[x] exists: x:A. B[x] l_exists: (xL. P[x]) Id: Id false: False le: A  B ycomb: Y append: as @ bs not: A hd: hd(l) length: ||as|| subtype: S  T top: Top rev_implies: P  Q iff: P  Q or: P  Q nat: true: True ifthenelse: if b then t else f fi  bfalse: ff btrue: tt isl: isl(x) bnot: b outr: outr(x) assert: b so_apply: x[s] uall: [x:A]. B[x] pi1: fst(t) ts-type: ts-type(ts) three-consensus-ts: three-consensus-ts(V;A;t;f) ts-reachable: ts-reachable(ts) uimplies: b supposing a decidable: Dec(P) guard: {T} sq_type: SQType(T) nat_plus: pi2: snd(t) cs-rcv-vote: Vote[a;i;v] consensus-rcv: consensus-rcv(V;A)
Lemmas :  sq_stable_from_decidable sq_stable__all cs-initial-rcv_wf hd_wf length_wf1 ge_wf list-subtype l_exists_wf archive-condition_wf iseg_wf consensus-rcv_wf l_member_wf Id_wf ts-type_wf nat_plus_inc three-consensus-ts_wf ts-reachable_wf decidable__equal_Id atom2_subtype_base subtype_base_sq archive-condition-append-vote cs-rcv-vote_wf pos_length votes-from-inning_wf strong-subtype-self strong-subtype-set3 strong-subtype-deq-subtype id-deq_wf values-for-distinct_wf nat_plus_properties le_wf member_wf nat_wf top_wf length_wf_nat member-values-for-distinct2 member_singleton or_functionality_wrt_iff member_append iff_transitivity member-votes-from-inning pi2_wf pi1_wf_top isl_wf bnot_wf assert_wf outr_wf three-cs-vote-invariant

\mforall{}[V:Type]
    \mforall{}eq:EqDecider(V).  \mforall{}A:Id  List.  \mforall{}t:\mBbbN{}\msupplus{}.  \mforall{}f:V  List  {}\mrightarrow{}  V.
        ((\mforall{}vs:V  List.  (f  vs  \mmember{}  vs)  supposing  ||vs||  \mgeq{}  1  )
        {}\mRightarrow{}  (\mforall{}s:ts-reachable(three-consensus-ts(V;A;t;f)).  \mforall{}v:V.  \mforall{}a:\{a:Id|  (a  \mmember{}  A)\}  .  \mforall{}n:\mBbbZ{}.
                \mforall{}L:consensus-rcv(V;A)  List.
                    (L  \mleq{}  s  a
                    {}\mRightarrow{}  archive-condition(V;A;t;f;n;v;L)
                    {}\mRightarrow{}  (\mexists{}a\mmember{}A.  (||s  a||  \mgeq{}  1  )  \mwedge{}  (hd(s  a)  =  Init[v])))))


Date html generated: 2011_08_16-AM-10_17_21
Last ObjectModification: 2011_06_18-AM-09_07_02

Home Index