EconCSLib.SocialChoice.Voting.ProfileSurgery #
Reusable profile-modification constructions for strict voting profiles.
The main construction is zProfile P Q R, the Muller-Satterthwaite splice:
alternatives in R are ranked above alternatives outside R; inside R the
ballot follows P, and outside R it follows Q.
noncomputable def
SocialChoice.Voting.zBallot
{A : Type u_2}
[Fintype A]
(P Q : LinearOrder A)
(R : Set A)
[(a : A) → Decidable (a ∈ R)]
:
Splice two ballots across a set of alternatives.
Equations
Instances For
noncomputable def
SocialChoice.Voting.zProfile
{N : Type u_1}
{A : Type u_2}
[Fintype N]
[Fintype A]
(P Q : Profile N A)
(R : Set A)
[(a : A) → Decidable (a ∈ R)]
:
Profile N A
Pointwise profile splice.
Equations
- SocialChoice.Voting.zProfile P Q R = { pref := fun (i : N) => SocialChoice.Voting.zBallot (P.pref i) (Q.pref i) R }