Arrow's theorem #
This file proves a version of Arrow's theorem [arrow1950] for 3-candidate elections,
see dictator_of_condorcet_and_unanimous.
We follow O'Donnell [odonnell2014], Sec. 2.5,
which follows Kalai's approach [kalai2002] via Fourier analysis of Boolean valued functions.
Implementation notes #
The proof in [odonnell2014] makes key use of notions from probability such as
joint probability distributions on the discrete cube. We prefer to avoid this in this formalization,
so we unpack most of the probability language in the proof.
This is mainly facilitated by introducing an auxiliary linear operator, see _Tnae3.
References #
- [K. Arrow, A difficulty in the concept of social welfare][arrow1950]
- [G. Kalai, A Fourier-theoretic perspective on the Condorcet paradox and Arrow's theorem][kalai2002]
- [R. O'Donnell, Analysis of Boolean functions][odonnell2014]
Encodes votes of n voters in a 2-candidate election.
Equations
- LeanPool.LeanBooleanfun.BooleanFun.BV.Votes n = (Fin n → Fin 2)
Instances For
±1-valued majority function
Equations
Instances For
The majority function is Boolean valued.
A dictator is a Walsh character of a singleton set.
Equations
Instances For
Not-all-equal predicate on three values.
Instances For
Voter preferences in an election among 3 candidates A, B, C are represented by three
vote ensembles x y z representing votes in the three 2-candidate elections among the candidates:
x contains the votes for the election A vs. B, y for B vs. C and z for C vs. A.
Three vote ensembles x y z are consistent if they encode a ranking of the
three candidates A, B, C for each voter. This is expressed by the not-all-equal predicate.
See [odonnell2014], Sec. 2.5.
Equations
- LeanPool.LeanBooleanfun.BooleanFun.BV.VoteConsistent x y z = ∀ (i : Fin n), LeanPool.LeanBooleanfun.BooleanFun.BV.NAE3 (x i) (y i) (z i)
Instances For
Commute arguments of VoteConsistent predicate
Commute arguments of VoteConsistent predicate
A voting rule is Condorcet, if in every 3-candidate election conducted using it there is a Condercet winner.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A voting rule is unanimous if it selects candidate i if everyone votes for i.
Equations
- LeanPool.LeanBooleanfun.BooleanFun.BV.IsUnanimous f = (f 0 = 1 ∧ f 1 = -1)
Instances For
The (unique) voting rule for zero voters is not unanimous.
Explicit Walsh-Fourier expansion of the not-all-equal predicate on a 3-tuple composed with a Boolean valued function. A crucial step in the proof of Arrow's theorem.
The probability of a Condorcet winner equals the proportion out of
the 6ⁿ possible voter preferences (x, y, z) so that (f(x), f(y), f(z))
is a consistent preference tuple. The impartial culture assumption is encoded
by giving each tuple (x, y, z) the same weight.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If a voting rule is Condorcet, then the probability of a Condorcet winner equals 1.
The probability of having a Condorcet winner can be expressed in terms of the noise operator. See [odonnell2014], Theorem 2.56.
Arrow's theorem as formulated in [odonnell2014], Sec. 2.5 : Every unanimous voting rule that always admits a Condorcet winner is a dictatorship.