Documentation

LeanPool.LeanBooleanfun.Arrow

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 #

@[reducible, inline]

Encodes votes of n voters in a 2-candidate election.

Equations
Instances For

    ±1-valued majority function

    Equations
    Instances For
      @[reducible, inline]

      A dictator is a Walsh character of a singleton set.

      Equations
      Instances For
        @[reducible, inline]
        abbrev LeanPool.LeanBooleanfun.BooleanFun.BV.NAE3 {α : Type u_1} (x y z : α) :

        Not-all-equal predicate on three values.

        Equations
        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
          Instances For

            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 admits a dictator if it is equal to dictator i for some i.

              Equations
              Instances For

                A voting rule is unanimous if it selects candidate i if everyone votes for i.

                Equations
                Instances For

                  The (unique) voting rule for zero voters is not unanimous.

                  theorem LeanPool.LeanBooleanfun.BooleanFun.BV.oneOn_NAE3_eq {n : } {f : BooleanFunc n} [hbv : BooleanValued f] {x y z : Fin nFin 2} :
                  oneOn (NAE3 (f x) (f y) (f z)) = 3 / 4 - 1 / 4 * f x * f y - 1 / 4 * f y * f z - 1 / 4 * f x * f z

                  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.