{ [V:Type]. [A:Id List]. [t:]. [n:]. [L:consensus-rcv(V;A) List].
  [r:consensus-rcv(V;A)].
    (||remove-repeats(IdDeq;map(p.(fst(p));votes-from-inning(n;L @ [r])))||
       = ((2 * t) + 1)) 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) consensus-rcv: consensus-rcv(V;A) id-deq: IdDeq Id: Id map: map(f;as) length: ||as|| append: as @ bs nat_plus: uimplies: b supposing a uall: [x:A]. B[x] pi1: fst(t) le: A  B lambda: x.A[x] cons: [car / cdr] nil: [] list: type List multiply: n * m add: n + m natural_number: $n int: universe: Type equal: s = t values-for-distinct: values-for-distinct(eq;L) remove-repeats: remove-repeats(eq;L)
Definitions :  pair: <a, b> axiom: Ax pi1: fst(t) map: map(f;as) remove-repeats: remove-repeats(eq;L) tl: tl(l) hd: hd(l) void: Void nil: [] cons: [car / cdr] append: as @ bs add: n + m implies: P  Q lambda: x.A[x] so_lambda: x.t[x] cand: A c B fpf-cap: f(x)?z filter: filter(P;l) intensional-universe: IType false: False strong-subtype: strong-subtype(A;B) ge: i  j  not: A product: x:A  B[x] and: P  Q uiff: uiff(P;Q) int_nzero: real: nat: subtype: S  T natural_number: $n multiply: n * m subtype_rel: A r B fpf: a:A fp-B[a] less_than: a < b bool: assert: b iff: P  Q 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|| union: left + right prop: le: A  B uimplies: b supposing a isect: x:A. B[x] consensus-rcv: consensus-rcv(V;A) set: {x:A| B[x]}  int: all: x:A. B[x] function: x:A  B[x] uall: [x:A]. B[x] nat_plus: universe: Type member: t  T Id: Id list: type List equal: s = t tactic: Error :tactic,  rcvd-inning-eq: inning(r) = i mapfilter: mapfilter(f;P;L) listp: A List combination: Combination(n;T) apply-alist: apply-alist(eq;L;x) outl: outl(x) top: Top sqequal: s ~ t apply: f a so_apply: x[s] or: P  Q guard: {T} Auto: Error :Auto,  CollapseTHENA: Error :CollapseTHENA,  CollapseTHEN: Error :CollapseTHEN,  RepUR: Error :RepUR,  MaAuto: Error :MaAuto,  AllHyps: Error :AllHyps,  limited-type: LimitedType lt_int: i <z j le_int: i z j bfalse: ff btrue: tt eq_atom: x =a y null: null(as) 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 exists: x:A. B[x] l_all: (xL.P[x]) rcv-vote?: rcv-vote?(x) rcvd-vote: rcvd-vote(x) Try: Error :Try,  SplitOn: Error :SplitOn,  D: Error :D,  RepeatFor: Error :RepeatFor
Lemmas :  remove-repeats-append-one 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 not_wf eqff_to_assert assert_of_bnot not_functionality_wrt_uiff eq_int_wf nat_properties bnot_wf uiff_inversion remove-repeats_wf length-map map_wf pi1_wf_top top_wf mapfilter-append rcvd-inning-eq_wf map_append_sq deq_wf Id_wf l_member_wf bool_wf id-deq_wf member_wf iff_wf assert_wf values-for-distinct_wf votes-from-inning_wf length_wf1 le_wf consensus-rcv_wf nat_plus_wf subtype_rel_wf false_wf intensional-universe_wf length_wf_nat list-subtype strong-subtype-deq-subtype strong-subtype_wf strong-subtype-set3 strong-subtype-self nat_plus_properties append_wf

\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)].
    (||remove-repeats(IdDeq;map(\mlambda{}p.(fst(p));votes-from-inning(n;L  @  [r])))||
          =  ((2  *  t)  +  1))  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_13_03
Last ObjectModification: 2011_06_18-AM-09_04_59

Home Index