Documentation

EconCSLib.SocialChoice.Voting.Decisive

EconCSLib.SocialChoice.Voting.Decisive #

Decisive coalitions and the decisive-coalitions proof of Arrow's impossibility theorem over strict voting profiles.

This file records the public decisive-coalition vocabulary for the strict ranked-ballot voting domain. The proof route is the standard one:

  1. unanimity implies the grand coalition is decisive;
  2. weak decisiveness for one ordered pair spreads to decisiveness for all pairs;
  3. any decisive coalition of size at least two has a strictly smaller nonempty decisive subcoalition;
  4. a minimal decisive coalition is a singleton;
  5. the singleton voter is a dictator.
def SocialChoice.Voting.IsDecisiveFor {N : Type u_1} {A : Type u_2} [Fintype N] [Fintype A] (F : SWF N A) (C : Set N) (a b : A) :

A coalition is decisive for a over b if unanimous strict support inside the coalition forces the social strict preference ab.

Equations
Instances For
    def SocialChoice.Voting.IsDecisive {N : Type u_1} {A : Type u_2} [Fintype N] [Fintype A] (F : SWF N A) (C : Set N) :

    A coalition is decisive if it is decisive for every ordered pair of alternatives.

    Equations
    Instances For
      def SocialChoice.Voting.SWF.IsDictator {N : Type u_1} {A : Type u_2} [Fintype N] [Fintype A] (F : SWF N A) (i : N) :

      An individual is a dictator exactly when their singleton coalition is decisive.

      Equations
      Instances For
        theorem SocialChoice.Voting.singleton_unanimity_isDictator {N : Type u_1} {A : Type u_2} [Fintype N] [Fintype A] [Subsingleton N] {F : SWF N A} (h : F.Unanimity) (i : N) :
        def SocialChoice.Voting.IsWeaklyDecisiveFor {N : Type u_1} {A : Type u_2} [Fintype N] [Fintype A] (F : SWF N A) (C : Set N) (a b : A) :

        Weak decisiveness tests a coalition against a complement unanimously supporting the opposite strict ranking.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem SocialChoice.Voting.isWeaklyDecisiveFor_of_isDecisiveFor {N : Type u_1} {A : Type u_2} [Fintype N] [Fintype A] {F : SWF N A} {C : Set N} {a b : A} (h : IsDecisiveFor F C a b) :
          theorem SocialChoice.Voting.iia_strict {N : Type u_1} {A : Type u_2} [Fintype N] [Fintype A] {F : SWF N A} (hF : F.IIA) {P Q : Profile N A} {a b : A} (hab : ∀ (i : N), Prefers P i a b Prefers Q i a b) (hba : ∀ (i : N), Prefers P i b a Prefers Q i b a) :
          strict (F P).rel a b strict (F Q).rel a b

          Strict ballot surgery for the decisive-coalitions proof #

          theorem SocialChoice.Voting.decisive_spread {N : Type u_1} {A : Type u_2} [Fintype N] [Fintype A] {F : SWF N A} (hU : F.Unanimity) (hIIA : F.IIA) {C : Set N} {x y z : A} (hxy : x y) (hxz : x z) (hyz : y z) (hC : C.Nonempty) (h : IsWeaklyDecisiveFor F C x y) :
          theorem SocialChoice.Voting.decisive_contraction {N : Type u_1} {A : Type u_2} [Fintype N] [Fintype A] {F : SWF N A} (h0 : ∃ (x : A) (y : A) (z : A), x y x z y z) {C : Set N} (hCdec : IsDecisive F C) (hCcard : 2 C.ncard) (hU : F.Unanimity) (hIIA : F.IIA) :
          ∃ (S : Set N), S.Nonempty S < C IsDecisive F S
          theorem SocialChoice.Voting.decisive_minimal {N : Type u_1} {A : Type u_2} [Fintype N] [Nonempty N] [Fintype A] (h0 : ∃ (x : A) (y : A) (z : A), x y x z y z) {F : SWF N A} (hU : F.Unanimity) (hIIA : F.IIA) :
          theorem SocialChoice.Voting.arrow_of_unanimity_iia {N : Type u_1} {A : Type u_2} [Fintype N] [Nonempty N] [Fintype A] (h0 : ∃ (x : A) (y : A) (z : A), x y x z y z) {F : SWF N A} (h1 : F.Unanimity) (h2 : F.IIA) :

          Arrow's decisive-coalitions theorem for strict finite voting profiles: unanimity and IIA imply dictatorship.