Documentation

LeanPool.Apportionment

Apportionmentlib #

Source: url:https://archive.org/details/fairrepresentati00bali Authors: Michał Dobranowski Status: verified Main declarations: Apportionment.balinski_young Tags: social-choice-theory, combinatorics MSC: 91B12, 91B14

Mathematical overview #

The library formalizes the basic vocabulary of apportionment theory, the part of social-choice theory that studies how to allocate a fixed number of seats among parties in proportion to their vote counts. The setup is built around Election n, recording a vector of n party vote totals and a positive house size, and Apportionment n, the corresponding seat distributions. An apportionment Rule returns a non-empty finite set of feasible seat allocations satisfying inheritance of zeros and house-size feasibility.

Several rule properties are formalized as type classes — IsAnonymous, IsBalanced, IsConcordant, IsDecent, IsExact, IsQuotaRule, IsPopulationMonotone — and the two main results are IsConcordant_of_IsPopulationMonotone and the Balinski–Young impossibility theorem Apportionment.balinski_young: no anonymous quota rule can be population-monotone. The proof exhibits two explicit four-party elections where any quota allocation forces the population paradox.

Provenance #

Imported from https://github.com/mdbrnowski/Apportionmentlib. Upstream contains no sorrys. Ported from Lean v4.28.0 to Lean Pool's v4.30.0-rc2. The upstream namespace Apportionmentlib was renamed to Apportionment and the library root renamed accordingly.