{ [V:Type]
    A:Id List. t:. n:. L:consensus-rcv(V;A) List. r:consensus-rcv(V;A).
      (a:{a:Id| (a  A)} 
        v:V
         ((r = Vote[a;n;v])
          (null(filter(r.n - 1 <z inning(r);L)))
          (0  n))) supposing 
         ((((2 * t) + 1)  ||values-for-distinct(IdDeq;votes-from-inning(n;L
         @ [r]))||) and 
         (||values-for-distinct(IdDeq;votes-from-inning(n;L))||  (2 * t))) }

{ Proof }



Definitions occuring in Statement :  votes-from-inning: votes-from-inning(i;L) rcvd-inning-gt: i <z inning(r) cs-rcv-vote: Vote[a;i;v] consensus-rcv: consensus-rcv(V;A) id-deq: IdDeq Id: Id length: ||as|| append: as @ bs null: null(as) assert: b nat_plus: uimplies: b supposing a uall: [x:A]. B[x] le: A  B all: x:A. B[x] exists: x:A. B[x] not: A and: P  Q set: {x:A| B[x]}  lambda: x.A[x] cons: [car / cdr] nil: [] list: type List multiply: n * m subtract: n - m add: n + m natural_number: $n int: universe: Type equal: s = t filter: filter(P;l) l_member: (x  l) values-for-distinct: values-for-distinct(eq;L)
Definitions :  rcvd-inning-eq: inning(r) = i mapfilter: mapfilter(f;P;L) pair: <a, b> listp: A List combination: Combination(n;T) apply-alist: apply-alist(eq;L;x) outl: outl(x) top: Top sqequal: s ~ t pi1: fst(t) map: map(f;as) remove-repeats: remove-repeats(eq;L) cand: A c B fpf-cap: f(x)?z filter: filter(P;l) intensional-universe: IType bool: iff: P  Q apply: f a so_apply: x[s] or: P  Q guard: {T} so_lambda: x.t[x] assert: b tl: tl(l) hd: hd(l) add: n + m nil: [] cons: [car / cdr] append: as @ bs fpf: a:A fp-B[a] strong-subtype: strong-subtype(A;B) union: left + right ge: i  j  and: P  Q uiff: uiff(P;Q) subtype_rel: A r B deq: EqDecider(T) id-deq: IdDeq l_member: (x  l) votes-from-inning: votes-from-inning(i;L) values-for-distinct: values-for-distinct(eq;L) length: ||as|| int_nzero: real: nat: subtype: S  T natural_number: $n multiply: n * m equal: s = t uall: [x:A]. B[x] universe: Type Id: Id nat_plus: int: list: type List all: x:A. B[x] consensus-rcv: consensus-rcv(V;A) prop: uimplies: b supposing a isect: x:A. B[x] exists: x:A. B[x] product: x:A  B[x] set: {x:A| B[x]}  false: False void: Void le: A  B not: A implies: P  Q lambda: x.A[x] less_than: a < b member: t  T function: x:A  B[x] Auto: Error :Auto,  CollapseTHENA: Error :CollapseTHENA,  CollapseTHEN: Error :CollapseTHEN,  RepUR: Error :RepUR,  MaAuto: Error :MaAuto,  AllHyps: Error :AllHyps,  tactic: Error :tactic,  RepeatFor: Error :RepeatFor,  limited-type: LimitedType lt_int: i <z j le_int: i z j bfalse: ff btrue: tt eq_atom: x =a y set_blt: a < b grp_blt: a < b infix_ap: x f y dcdr-to-bool: [d] bl-all: (xL.P[x])_b bl-exists: (xL.P[x])_b b-exists: (i<n.P[i])_b eq_type: eq_type(T;T') eq_atom: eq_atom$n(x;y) qeq: qeq(r;s) q_less: q_less(r;s) q_le: q_le(r;s) deq-member: deq-member(eq;x;L) deq-disjoint: deq-disjoint(eq;as;bs) deq-all-disjoint: deq-all-disjoint(eq;ass;bs) eq_str: Error :eq_str,  eq_id: a = b eq_lnk: a = b bimplies: p  q band: p  q bor: p q unit: Unit inr: inr x  eq_int: (i = j) ifthenelse: if b then t else f fi  outr: outr(x) spreadn: spread3 grp_car: |g| bnot: b list_ind: list_ind def atom: Atom sq_type: SQType(T) rev_implies: P  Q last: last(L) select: l[i] atom: Atom$n l_all: (xL.P[x]) subtract: n - m rcvd-inning-gt: i <z inning(r) null: null(as) cs-rcv-vote: Vote[a;i;v] inl: inl x  rcv-vote?: rcv-vote?(x) rcvd-vote: rcvd-vote(x) rationals: minus: -n it: remove_repeats_nil: remove_repeats_nil{remove_repeats_nil_compseq_tag_def:o}(eq) remove_repeats_cons: remove_repeats_cons{remove_repeats_cons_compseq_tag_def:o}(v; u; eq)
Lemmas :  list_subtype_base set_subtype_base assert_of_null votes-from-inning-is-nil cs-rcv-vote_wf append-nil list-set-type2 l_all_wf nat_wf l_member-settype l_member_subtype subtype_base_sq atom2_subtype_base iff_weakening_uiff uiff_transitivity eqtt_to_assert assert_of_eq_int eqff_to_assert assert_of_bnot not_functionality_wrt_uiff eq_int_wf nat_properties filter_wf pos_length2 null_wf3 filter_wf_top rcvd-inning-gt_wf bnot_wf Id_wf l_member_wf deq_wf member_wf id-deq_wf subtype_rel_wf votes-from-inning_wf values-for-distinct_wf length_wf1 le_wf consensus-rcv_wf nat_plus_wf append_wf length_wf_nat assert_wf not_wf uall_wf uiff_inversion nat_plus_properties iff_wf bool_wf intensional-universe_wf list-subtype strong-subtype-deq-subtype strong-subtype_wf strong-subtype-set3 strong-subtype-self false_wf remove-repeats_wf length-map map_wf pi1_wf_top top_wf mapfilter-append rcvd-inning-eq_wf map_append_sq

\mforall{}[V:Type]
    \mforall{}A:Id  List.  \mforall{}t:\mBbbN{}\msupplus{}.  \mforall{}n:\mBbbZ{}.  \mforall{}L:consensus-rcv(V;A)  List.  \mforall{}r:consensus-rcv(V;A).
        (\mexists{}a:\{a:Id|  (a  \mmember{}  A)\} 
            \mexists{}v:V.  ((r  =  Vote[a;n;v])  \mwedge{}  (\mneg{}\muparrow{}null(filter(\mlambda{}r.n  -  1  <z  inning(r);L)))  \mwedge{}  (0  \mleq{}  n)))  supposing 
              ((((2  *  t)  +  1)  \mleq{}  ||values-for-distinct(IdDeq;votes-from-inning(n;L  @  [r]))||)  and 
              (||values-for-distinct(IdDeq;votes-from-inning(n;L))||  \mleq{}  (2  *  t)))


Date html generated: 2011_08_16-AM-10_12_45
Last ObjectModification: 2011_06_18-AM-09_04_55

Home Index