EconCSLib.SocialChoice.Voting.VotingRules #
Concrete voting-rule vocabulary over strict finite profiles.
The main rules in this file are set-valued: ties are represented by multiple
winners in the returned Finset.
Main definitions #
rank,position— ordinal position of an alternative in a ballotmargin,MajorityPrefers,CondorcetWinnerscoringRule,plurality,borda,vetocopeland
Main result #
condorcet_paradox_possible— a concrete 3-voter, 3-alternative profile with no Condorcet winner
Rank and position #
rank r a is the number of alternatives strictly above a in ballot r.
Equations
- SocialChoice.Voting.rank r a = {b : A | SocialChoice.Voting.BallotPrefers r b a}.card
Instances For
The 1-based position of a in ballot r.
Equations
Instances For
Pairwise majority and margins #
Voters who strictly prefer a to b.
Equations
- SocialChoice.Voting.votersPreferring P a b = {i : N | SocialChoice.Voting.Prefers P i a b}
Instances For
Positive pairwise majority margin.
Equations
- SocialChoice.Voting.margin_pos P a b = (0 < SocialChoice.Voting.margin P a b)
Instances For
a is a Condorcet winner if it beats every other alternative by strict
pairwise majority.
Equations
- SocialChoice.Voting.CondorcetWinner P a = ∀ (b : A), b ≠ a → SocialChoice.Voting.MajorityPrefers P a b
Instances For
A profile has at least one Condorcet winner.
Equations
- SocialChoice.Voting.HasCondorcetWinner P = ∃ (a : A), SocialChoice.Voting.CondorcetWinner P a
Instances For
A rule is Condorcet-consistent if every Condorcet winner is the unique winner.
Equations
- SocialChoice.Voting.CondorcetConsistency f = ∀ (P : SocialChoice.Voting.Profile N A) (a : A), SocialChoice.Voting.CondorcetWinner P a → f P = {a}
Instances For
Scoring rules #
Total score for a candidate under a positional score vector.
Equations
- SocialChoice.Voting.scoreCandidate P score a = ∑ i : N, score (SocialChoice.Voting.rank (P.pref i) a)
Instances For
Generic positional scoring rule. The first argument is the number of alternatives, and the second is the zero-based rank.
Equations
- SocialChoice.Voting.scoringRule score P = SocialChoice.Voting.scoringWinners P fun (r : ℕ) => score (Fintype.card A) r
Instances For
Plurality score vector.
Instances For
Plurality rule.
Equations
Instances For
Borda rule.
Instances For
Veto rule.
Instances For
Copeland rule #
Copeland score: pairwise majority wins minus pairwise majority losses.
Equations
- SocialChoice.Voting.copelandScore P a = Int.ofNat {b : A | SocialChoice.Voting.MajorityPrefers P a b}.card - Int.ofNat {b : A | SocialChoice.Voting.MajorityPrefers P b a}.card
Instances For
Copeland winners.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Condorcet paradox #
Condorcet paradox: with 3 voters and 3 alternatives, pairwise majority can cycle, so a Condorcet winner need not exist.