Arrow and Gibbard Satterthwaite Theorems in Lean
Abstract
We give a source-aligned account of two Lean 4 formalizations of classical finite social-choice impossibility theorems. For a finite nonempty electorate and a finite alternative set containing three distinct alternatives, Arrow’s theorem derives dictatorship from unanimity and independence of irrelevant alternatives. Its proof expands a weakly decisive coalition from one ordered pair to all pairs, then contracts decisive coalitions to a singleton. The Gibbard–Satterthwaite development proves that every onto strategy-proof choice function on the unrestricted strict-ranking domain is dictatorial by constructing a social welfare function and applying that Arrow implementation. We explain the essential construction in full: top-two profiles define pairwise comparisons; strategy-proof monotonicity and three-top profiles establish a strict total order; predecessor counts provide injective natural-number ranks. Exact hypotheses, vendored dependencies, pinned source identities, prior formalizations, and the distinction between historical registry verification and the present source audit are recorded. The contribution is an exposition and audit of reusable formalization artifacts, not a new social-choice theorem or a claim of first formalization.
Introduction
Arrow’s theorem and the Gibbard–Satterthwaite theorem expose two different limits of collective decision making. Arrow studies the aggregation of individual rankings into a social ranking. Gibbard–Satterthwaite studies the selection of one alternative when each voter may misreport a ranking. Their classical sources are Arrow’s 1950 paper [1], Gibbard’s 1973 paper [2], and Satterthwaite’s 1975 paper [10].
The artifacts examined here are Arthur Freitas Ramos’s finite Arrow development [7] and its Gibbard–Satterthwaite extension [8], registered separately in Palomar [4, 5]. Their mathematical dependence makes a combined exposition natural. The second repository contains a byte-identical copy of the first repository’s four substantive Arrow modules, and its main theorem invokes the copied Arrow theorem. The manuscript’s subject is therefore one proof chain: decisive coalitions establish Arrow; strategy-proof choice is converted into a valid strict social ranking; Arrow’s dictator is transferred back to the original choice rule.
The source pins used throughout are
| Arrow | 4f405d27d0b244574bbee5d3d79bae0c66bda16e |
| Gibbard–Satterthwaite | 8398e65a99cd3d5e973c64963c4bab8c0491947c |
Table 1.
These identify repository snapshots, not merely branch names. Both use Lean v4.35.0-rc2 and the same Mathlib manifest revision, recorded in Section 7.
Our main expository task is to make the intermediate social welfare function explicit. Choosing winners on two-alternative tests does not by itself produce a ballot: the resulting pairwise relation might have cycles or tied numerical scores. The formalization proves the order laws before using
Copyright 2026 the authors. This manuscript is licensed under Creative Commons Attribution 4.0 International. The cited Lean repositories have their separate BSD-3-Clause licenses. predecessor counts to construct an injective ranking. This step is essential to the reduction, and was specifically absent from the optional proof sketch noted in the Gibbard–Satterthwaite registry review [5].
The mathematical route is established. Satterthwaite describes Gibbard’s construction of a social welfare function from strategy-proof voting, the verification of Pareto and independence conditions, the use of Arrow, and the transfer of dictatorship [10]. Formal proofs of both theorems also predate these Lean repositories; Nipkow formalized them in Isabelle/HOL [3]. Peters’s earlier public Lean development proves a resolute unanimous strategy-proof choice correspondence dictatorial using voter cloning and strong induction [6]; we consulted its pinned source, without rebuilding it. The Arrow metadata separately acknowledges Joris Roos’s independent three-candidate Fourier-analytic Lean formalization [9]. We claim neither a new reduction nor priority among formalizations. The present contribution is a readable explanation of the precise finite strict-ranking implementations, their interfaces, and their verification boundary.
The strict ranking domain and exact statements
Let be a finite nonempty electorate and a finite set of alternatives. The main results take explicit witnesses satisfying
Thus the alternative-set hypothesis is at least three alternatives, without fixing a particular cardinality. The Lean interfaces use Fintype V, Fintype A, DecidableEq V, DecidableEq A, and Nonempty V. The Gibbard–Satterthwaite interface also supplies Nonempty A; condition (1) already entails it mathematically. No assumption of two or more voters is made. A one-voter electorate is included.
Ballots as injective natural ranks
The common representation is
Lower numbers mean higher preference. Injectivity makes irreflexive, asymmetric, transitive, and total on distinct alternatives. Rankings need not be consecutive integers or bounded by . Conversely, every strict linear order on a finite set can be represented by counting predecessors in that order. This elementary mathematical observation explains the domain; the pinned Arrow library does not separately state a general representation theorem. Thus (2) supplies the full strict-ranking domain. It excludes indifference and partial orders.
A profile is . We write for voter ’s comparison. Both a social welfare function and a social choice function are defined on every profile:
Unrestricted domain is built into these function types. The implementations do not begin with a quotient that identifies different numerical encodings of the same ranking. Their axioms and conclusions concern the induced comparisons; equality of complete natural-number score functions is not Arrow’s dictatorship conclusion.
Arrow’s axioms
A social welfare function is unanimous if
It satisfies independence of irrelevant alternatives (IIA) if
for all profiles and alternatives. A voter is a dictator of precisely when
There is no anonymity or neutrality hypothesis. Social transitivity and completeness come from the codomain .
Theorem 2.1 (Finite strict-ranking Arrow theorem). Under the finite-domain hypotheses above and (1), every unanimous social welfare function satisfying IIA has a dictator in the sense of (5).
The selected declaration is Arrow.Palomar.arrowImpossibility; the substantive theorem is Arrow.arrowImpossibility in Arrow/ArrowTheorem.lean.
Strategy proof choice
For a profile , voter , and ballot , let replace only ’s report. Strategy-proofness means
The comparison uses the true ballot on both outcomes. Onto means is surjective: for every , some profile selects . Dictatorship of a choice function is the existence of such that
Equivalently, the chosen alternative is always ’s unique top choice. A finite nonempty ballot has such a unique top alternative.
Theorem 2.2 (Finite strict-ranking Gibbard–Satterthwaite theorem). Under the finite-domain hypotheses above and (1), every onto strategy-proof social choice function is dictatorial in the sense of (7).
This is GibbardSatterthwaite.gibbardSatterthwaite, proved in GS/Main.lean. It concerns deterministic single-valued choice without transfers on the full strict-ranking domain. It does not assert an impossibility for restricted domains, randomized rules, weak preferences, or infinite electorates.
Arrow through decisive coalitions
For a coalition and distinct , the implementation distinguishes two properties. Weak decisiveness for requires to rank above whenever every member of ranks above and every outsider ranks above . Decisiveness for the pair requires the same social comparison whenever the members agree on , with no condition on outsiders. A coalition is decisive if it is decisive for every ordered pair of distinct alternatives. These are WeakDecisive, DecisivePair, and Decisive in Arrow/Basic.lean.
The whole electorate is decisive by unanimity. The selected theorem Arrow.Palomar.decisiveUniv exposes this first step. The remaining argument uses field expansion and group contraction.
Realizing auxiliary profiles
The proof must produce full ballots, not just diagrams involving three alternatives. Given any injective baseline and three distinct alternatives , chainFun assigns scores to respectively, and to every other . The resulting function is injective: the designated scores are distinct and less than every residual score, while injectivity on the residual alternatives follows from that of . A baseline is obtained from an equivalence with a finite initial segment of . The theorem exists_chain consequently realizes as a ballot over all of .
Field expansion
Lemma 3.1 (Field expansion). If is unanimous and satisfies IIA, and is weakly decisive for one ordered pair , then, given a third distinct alternative, is decisive for every ordered pair.
Proof. We describe the first expansion in the source, which is representative of the construction. To prove decisiveness for , take an arbitrary profile at which every member of ranks above . Construct with these three-alternative restrictions:
| Voters | Restriction of |
Table 2.
Weak decisiveness gives . Unanimity gives , so transitivity gives . Every voter has the same comparison at and ; IIA transfers the result to . Crucially, the outsiders’ rankings were selected according to . The conclusion is strong pair decisiveness, not merely decisiveness on another polarized profile.
The dual right-expansion construction gives decisiveness for , keeping the second alternative fixed. Once these two pairs are decisive, replace the coalition members’ ballots by while retaining outsiders’ ballots. Transitivity and IIA give strong decisiveness for the original pair as well. The source then repeatedly applies these left and right expansion lemmas, with case distinctions when a target alternative coincides with one of the designated alternatives, to reach every ordered pair. No neutrality assumption is introduced.
The implementation separates weak_expand_left, weak_expand_right, and weak_expand_same, then packages the result as Arrow.Palomar.fieldExpansion.
Group contraction
Lemma 3.2 (Group contraction). A decisive coalition with at least two members contains a strictly smaller nonempty decisive coalition.
Proof. Choose and put and . Both are nonempty proper subsets of . Using three distinct alternatives, construct the profile
| Voters | Restriction of |
Table 3.
All members of rank above , hence . If , transitivity yields . At , precisely the members of favor over , while all outsiders favor over . IIA extends this social comparison to every profile with that polarized comparison pattern. Thus is weakly decisive for and is fully decisive by Lemma 3.1.
In the other case, . At , the members of favor over and all outsiders favor over . IIA makes weakly decisive for ; field expansion again makes it decisive. Completeness of the social ballot supplies the exhaustive case split.
The selected declaration Arrow.Palomar.groupContraction returns , a proof that is nonempty, and a proof that is decisive. Strict containment is used to obtain the strict cardinality decrease.
From contraction to a dictator
Theorem 2.1 uses strong induction on coalition cardinality, starting with . Nonemptiness excludes the zero case. A coalition of cardinality one already gives a decisive singleton; a larger one contracts and invokes the induction hypothesis on a smaller cardinality.
If is decisive, implies . Conversely, if the social ballot ranks above but does not, strict completeness of ’s ballot gives . Decisiveness would then give , contradicting asymmetry. Equal alternatives have neither comparison. This proves the full equivalence (5), not just a one-way implication.
Strategy proofness and monotonicity
The reduction begins with a consequence of strategy-proofness. For an alternative , its lower contour in ballot is the set of alternatives ranked below .
Lemma 4.1 (Outcome monotonicity). Let satisfy (6). Suppose and
Then .
Proof. First suppose only voter changes ballot. If the new outcome is , strategy-proofness at excludes . Therefore , and (8) gives . At the true profile , reporting the old ballot would obtain instead of , contradicting strategy-proofness at .
For the general case, change voters’ ballots one at a time. The electorate is finite, so this sequence reaches . At each intermediate profile, a voter’s ballot is either its original or target ballot, and the same lower-contour preservation holds for the next update. The one-voter argument preserves the outcome throughout. □
These steps are monotone_one_step and monotone in GS/Reduction.lean. The finite update construction uses a list containing all voters.
Lemma 4.2 (Unanimous top choice). If is strategy-proof and onto, and is every voter’s top alternative at , then .
Proof. Onto supplies a profile with . Since is top at , moving from to preserves every comparison in which is above another alternative. Apply Lemma 4.1. □
This is unanimous_of_sp_onto. Onto is used to obtain the starting profile; strategy-proofness transports its choice. It is not an additional unanimity hypothesis in Theorem 2.2.
From pair tests to a strict social order
The top two transformation
For distinct , let put and in the first two positions of every ballot, preserving that voter’s original comparison between them. Its numerical construction assigns the preferred member score 0, the other score 1, and every other alternative score . Thus
The score assignment is injective. The source defines topTwoProfile and proves these properties as topTwo_preserves and topTwo_above_rest. It also proves ; writing the pair in the opposite order does not change the ballot transformation.
Lemma 5.1 (Range of a top two test). For a strategy-proof onto rule, .
Proof. Suppose instead it selects . Promote alone to the top of every ballot while keeping the order among other alternatives. Every voter already ranks above , so this promotion cannot remove any alternative from ’s lower contour. Monotonicity therefore preserves outcome . But the new profile has unanimous top choice , forcing outcome by Lemma 4.2, a contradiction. □
The analogous construction with three designated alternatives gives a three-top profile whose outcome lies among those three. The proof has the same lower-contour argument. Both range claims use onto through unanimous-top choice.
Pairwise comparison and independence
Define
This is beats f P a b. It is irreflexive by definition. Symmetry of the top-two transformation and single-valued choice imply asymmetry. Lemma 5.1 supplies totality: for distinct , exactly one of and holds.
Lemma 5.2 (Pairwise independence). If every voter has the same comparison of at and , then .
Proof. Suppose . In the move from to , remains above all alternatives outside the pair. Its comparison with is also unchanged by hypothesis and (9). Thus its lower contour is preserved, and monotonicity gives . Interchange and for the reverse implication.
This is pairwise_IIA. The residual ballots need not be identical: monotonicity makes their differences irrelevant to this pair test. Onto is not needed for this lemma itself.
Why there are no cycles
Totality and asymmetry alone allow a tournament with cycles. The source establishes transitivity by using one profile that puts three alternatives jointly above the rest.
For distinct , the three-top profile preserves all original comparisons among them. The score of a designated alternative is the number of the other two ranked above it; these scores are in some order. Every other alternative receives . This is an injective ballot, and it preserves each designated pair comparison. The auxiliary lemma predCount_lt verifies the elementary three-score comparison used in the construction.
Lemma 5.3 (Transitivity). If and , then .
Proof. The hypotheses imply and ; asymmetry rules out . Put . Pairwise independence transfers the two hypotheses to . The three-top range lemma gives .
If , move to . This move preserves ’s lower contour: its relation to is unchanged and all alternatives outside the pair are now below it. Monotonicity would give , contrary to . Similarly would force , contrary to . Therefore .
Moving from to preserves ’s lower contour, so the latter profile selects . Hence . Pairwise independence, using the preserved comparisons, transfers this conclusion back to .
This is beats_trans in GS/SWF.lean. Its explicit distinctness binders are sufficient because repeated alternatives are excluded by irreflexivity and asymmetry. Consequently is a strict total order for every profile. This order property is proved before numerical social ranks are introduced.
Predecessor counts and the application of Arrow
Encoding the order as a ballot
For each alternative define
The implementation calls copelandScore, but here it counts predecessors in the already proved strict total order. It does not aggregate voters by a Copeland voting rule, and it does not repair a cyclic relation by scoring it.
Proposition 6.1 (Order representation). For distinct ,
In particular, is injective. Proof. If , transitivity implies . The containment is strict because but . Finiteness gives . Conversely, if this inequality holds, totality excludes , which would give the opposite strict inequality. Hence . For injectivity, any two distinct alternatives are ordered one way or the other and so have distinct predecessor counts.
The strict inequality is proved as copeland_lt_of_beats. The injectivity theorem is copelandScore_injective. The source then defines
This is swfOfSCF f hSP hO. The characterization swfOfSCF_spec states exactly that the social ballot ranks above if and only if . At this point, and only at this point, the construction has the required social-welfare codomain.
The two Arrow axioms
Unanimity of follows directly from a unanimous pair comparison. If every voter ranks above at , then is top in every ballot of . Lemma 4.2 gives , hence and therefore by (13). The code supplies this through beats_of_unanimous and swfOfSCF_unanimous. Its proof uses an intermediate unanimous-top profile and monotonicity to reach the top-two profile, with the same conclusion.
IIA of is Lemma 5.2 translated through (13), and is proved as swfOfSCF_IIA. Equal alternatives are handled separately using irreflexivity. Therefore Theorem 2.1 applies to the actual injective ballot-valued function (14) and yields a voter whose pairwise ranking agrees with at every profile.
Transferring the dictator back to choice
Fix and put . Suppose some is ranked above by . Arrow dictatorship and the social-ranking characterization imply , so
On the other hand, moving from to preserves ’s lower contour. Its comparison with is retained, and all other alternatives are below in the new profile. Monotonicity, starting from , therefore gives
a contradiction. Thus no alternative is above in ’s ballot. Strict completeness gives (7) for every other alternative. This proves Theorem 2.2. No extra onto assumption is imposed on the constructed welfare function, and no restriction to top-two profiles is imposed on the final dictatorship conclusion.
Source structure and verification boundary
Modules and dependency identity
The Arrow proof is organized into Arrow/Basic.lean, Arrow/FieldExpansion.lean, Arrow/GroupContraction.lean, and Arrow/ArrowTheorem.lean. The Gibbard–Satterthwaite repository vendors those same four files. A byte comparison at the two stated pins finds them identical. Its Lake file declares a local Arrow library alongside the GibbardSatterthwaite library; Arrow is not a separate fetched Lake package.
The extension’s dependency chain is GS/Basic.lean, GS/Reduction.lean, GS/SWF.lean, and GS/Main.lean. The first reuses Arrow.Basic; the last imports both GS.SWF and Arrow.ArrowTheorem. Although the README broadly locates the reduction in GS/Reduction.lean, that file proves monotonicity and unanimous-top choice. The social order and rank construction are in GS/SWF.lean; the Arrow axioms, invocation, and dictatorship transfer are in GS/Main.lean. This division follows the source files, not the abbreviated README description.
Both manifests pin Mathlib to
065356127b1dc0016f66b7283ce0ce2c4055aa55.
The remaining manifest packages are Mathlib’s supporting Lean packages. The vendored Arrow copy and the Mathlib dependency have different roles: the former is substantive source developed by the same maintainer; the latter supplies the general finite-set, order, equivalence, and tactic infrastructure.
Challenge and solution separation
Each Challenge.lean is a self-contained statement module importing only Mathlib.Data.Finset.Basic and Mathlib.Data.Fintype.EquivFin. Arrow’s Challenge contains four deliberate statement holes, one per selected theorem; Gibbard–Satterthwaite’s contains one. These are the problems to be compared with the implementations, not proofs of the results.
The GS Challenge defines its own support vocabulary for ballots and profiles, while the implementation reuses Arrow.Basic. Its comparator selects the four choice concepts and the final theorem; it does not separately select every support definition. Arrow’s comparator selects nine definitions and four theorems; WeakDecisive occurs in its statement but is not a separately selected definition.
Each Solution.lean imports the final implementation module. Neither solution imports its Challenge. The selected proved declarations are reached through that implementation import closure. At the inspected pins, a lexical scan of the substantive Arrow and GS modules and both solution wrappers finds no proof placeholders, custom axiom declarations, or unsafe declarations. This scan is a source observation, not a substitute for elaboration or a transitive axiom audit.
The registry configurations permit propext, Quot.sound, and Classical.choice. The source uses classical selection, including choosing a finite enumeration and top alternatives. The paper therefore makes no claim of a constructive or executable decision algorithm extracted from these proofs. The repositories contain axiom-audit scripts, but their presence alone does not establish that a new audit has been run.
Historical checks and present checks
Palomar records historical verification on September 25, 2026, under the stated Lean toolchain. The Arrow record reports verification at 18:26:09 UTC and registration at 19:02:37 UTC, with workflow run 36171797049. The Gibbard–Satterthwaite record reports verification at 20:43:00 UTC and registration at 21:11:21 UTC, with workflow run 36187074973. Both records include comparator configuration, permitted axioms, dependency pins, file hashes, preservation receipts, and independent-kernel tool identities [4, 5].
For this manuscript we retrieved both exact repository snapshots, read the substantive proofs and theorem interfaces, compared the vendored Arrow files, checked manifest and toolchain identities, and matched both Challenge and both Solution SHA-256 hashes against the immutable registry records. We also reviewed the mathematical exposition and bibliographic references independently of the initial drafting pass. We did not execute a fresh Lean build or a fresh kernel/axiom audit in this preparation environment, where Lean and Lake were unavailable. The September 25 verification is historical evidence associated with the pinned artifacts. Compilation of the present LaTeX manuscript, source comparison, and mathematical source review are distinct checks and are not described as fresh formal verification or human peer review.
Attribution and limitations
The source mathematics belongs to Arrow, Gibbard, and Satterthwaite [1, 2, 10]. Earlier machine-checked work includes Nipkow’s Isabelle/HOL development of both theorems [3]. The independent Roos record concerns a three-candidate Fourier-analytic Arrow proof, whereas the inspected Arrow artifact follows decisive coalitions for any finite alternative set with three distinct members [9, 4]. These are differences in proof route and formal statement, not a claim that the current development originated the general theorem.
The pinned repository and registry metadata credit Arthur Freitas Ramos as the author and responsible maintainer of the Lean developments. That source attribution is separate from the three-author byline of this manuscript. Both repositories are BSD-3-Clause; Mathlib is a dependency with its own Apache-2.0 license. The manuscript’s CC BY 4.0 license does not relicense those source artifacts. The bibliography cites and links the existing work; the prose and displayed proofs here are a newly prepared exposition rather than a republication of a supplied journal manuscript.
One source-metadata correction is recorded explicitly. The pinned Gibbard–Satterthwaite metadata cites Satterthwaite’s intended 1975 title with DOI 10.1016/0022-0531(75)90002-6. The publisher identifies that title as 10.1016/0022-0531(75)90050-2, which is the DOI used in our bibliography [10]. This bibliographic correction changes neither the pinned code nor its theorem statements. Likewise, a dated search that found no earlier Gibbard–Satterthwaite entry in Palomar would not establish absence of earlier formalizations elsewhere; we make no such inference.
AI assistance. This manuscript was prepared with GPT-6.1 assistance for exposition, source alignment, and review. The formalization metadata separately records proof-engineering assistance by gpt-6-luna via the Codex CLI. These are distinct provenance claims: the manuscript-generation model is not substituted for the model recorded by the source repositories. AI-assisted review and mechanical proof checking do not establish comprehensive human understanding, source-author endorsement, or independent human peer review.
The verified scope is finite strict-ranking social choice. Broader variants with weak preferences or infinite electorates require different statements and are not supplied by these artifacts. The value of the present development is its explicit proof interface: auxiliary ballots satisfy the domain, coalition contraction terminates by finite cardinality, the strategy-proof reduction really constructs an injective social ballot, and the final conclusions match the declared pairwise and top-choice notions of dictatorship.
References
References
- [1]Kenneth J. Arrow, A difficulty in the concept of social welfare, Journal of Political Economy 58 (1950), no. 4, 328–346, https://doi.org/10.1086/256963.
- [2]Allan Gibbard, Manipulation of voting schemes: A general result, Econometrica 41 (1973), no. 4, 587–601, https://doi.org/10.2307/1914083.
- [3]Tobias Nipkow, Social choice theory in HOL: Arrow and Gibbard–Satterthwaite, Journal of Automated Reasoning 43 (2009), no. 3, 289–304, https://doi.org/10.1007/s10817-009-9147-4.
- [4]Palomar Registry, Arrow’s impossibility theorem (general finite version), 2026, PALOMAR-2026-09-25-000024, version 1. Registered September 25, 2026 https://palomar-registry.org/entry?id=PALOMAR-2026-09-25-000024&version=1.
- [5]———, Gibbard–Satterthwaite theorem (strategy-proof social choice), 2026, PALOMAR-2026-09-25-000028, version 1. Registered September 25, 2026 https://palomar-registry.org/entry?id=PALOMAR-2026-09-25-000028&version=1.
- [6]Dominik Peters, SocialChoiceLean: Gibbard–Satterthwaite in Lean, 2026, Public repository snapshot, July 21, 2026. Consulted as source; not rebuilt for this manuscript https://github.com/DominikPeters/SocialChoiceLean/tree/94a4c650b6a3ef14df801a613c3b46169dbd75d4.
- [7]Arthur Freitas Ramos, Arrow’s impossibility theorem in Lean 4, 2026, Pinned repository snapshot. BSD-3-Clause https://github.com/Arthur742Ramos/arrow-impossibility-lean/tree/4f405d27d0b244574bbee5d3d79bae0c66bda16e.
- [8]———, Gibbard–Satterthwaite theorem in Lean 4, 2026, Pinned repository snapshot. BSD-3-Clause https://github.com/Arthur742Ramos/gibbard-satterthwaite-lean/tree/8398e65a99cd3d5e973c64963c4bab8c0491947c.
- [9]Joris Roos, Arrow’s theorem via Fourier analysis, 2026, Palomar record PALOMAR-2026-09-01-000011, version 1 https://palomar-registry.org/entry?id=PALOMAR-2026-09-01-000011&version=1.
- [10]Mark A. Satterthwaite, Strategy-proofness and Arrow’s conditions: Existence and correspondence theorems for voting procedures and social welfare functions, Journal of Economic Theory 10 (1975), no. 2, 187–217, https://doi.org/10.1016/0022-0531(75)90050-2.