Dominance Axioms

Pareto

pref_voting.dominance_axioms.has_pareto_violation(edata, vm, verbose=False, strong_Pareto=False)[source]

Returns True if some winner according to vm is Pareto dominated (there is a candidate that is unanimously preferred to the winner).

If strong_Pareto is True, then a candidate A is dominated if there is a candidate B such that some voter prefers B to A and no voter prefers A to B.

Parameters:
  • edata (Profile, ProfileWithTies) – the election data.

  • vm (VotingMethod) – A voting method to test.

  • verbose (bool, default=False) – If a violation is found, display the violation.

Returns:

Returns True if there is a violation and False otherwise.

Return type:

Result of the test (bool)

pref_voting.dominance_axioms.find_all_pareto_violations(edata, vm, verbose=False, strong_Pareto=False)[source]

Returns all Pareto-dominated winners.

If strong_Pareto is True, then a candidate A is dominated if there is a candidate B such that some voter prefers B to A and no voter prefers A to B.

Parameters:
  • edata (Profile, ProfileWithTies) – the election data.

  • vm (VotingMethod) – A voting method to test.

  • verbose (bool, default=False) – If a violation is found, display the violation.

Returns:

A list of tuples of candidates (w, c) where w is a winner according to vm and Pareto dominated by c (and the empty list if there are none).

Return type:

pareto_dominated_winners

Condorcet Winner

pref_voting.dominance_axioms.has_condorcet_winner_violation(edata, vm, verbose=False)[source]

Returns True if there is a Condorcet winner in edata (a candidate that is majority preferred to every other candidate) that is not the unique winner according to vm.

Parameters:
Returns:

Returns True if there is a violation and False otherwise.

Return type:

Result of the test (bool)

pref_voting.dominance_axioms.find_condorcet_winner_violation(edata, vm, verbose=False)[source]

Returns the Condorcet winner that is not the unique winner according to vm.

Parameters:
Returns:

Returns True if there is a violation and False otherwise.

Return type:

Result of the test (bool)

Condorcet Loser

pref_voting.dominance_axioms.has_condorcet_loser_violation(edata, vm, verbose=False)[source]

Returns True if there is a winner according to vm that is a Condorcet loser (a candidate that loses head-to-head to every other candidate).

Parameters:
Returns:

Returns True if there is a violation and False otherwise.

Return type:

Result of the test (bool)

pref_voting.dominance_axioms.find_condorcet_loser_violation(edata, vm, verbose=False)[source]

Returns the Condorcet loser (a candidate that loses head-to-head to every other candidate) who is a winner according to vm.

Parameters:
Returns:

Returns True if there is a violation and False otherwise.

Return type:

Result of the test (bool)

Smith Criterion

pref_voting.dominance_axioms.has_smith_violation(edata, vm, verbose=False)[source]

Returns True if there is a winner according to vm that is not in the Smith set (the smallest set of candidates such that every candidate in the set is majority preferred to every candidate outside the set).

Parameters:
Returns:

Returns True if there is a violation and False otherwise.

Return type:

Result of the test (bool)

pref_voting.dominance_axioms.find_all_smith_violations(edata, vm, verbose=False)[source]

Returns the winners according to vm that are not in the Smith set (the smallest set of candidates such that every candidate in the set is majority preferred to every candidate outside the set).

Parameters:
Returns:

Returns True if there is a violation and False otherwise.

Return type:

Result of the test (bool)

Schwartz Criterion

pref_voting.dominance_axioms.has_schwartz_violation(edata, vm, verbose=False)[source]

Returns True if there is a winner according to vm that is not in the Schwartz set (the set of all candidates x such that if y can reach x in the transitive closer of the majority relation, then x can reach y in the transitive closer of the majority relation.).

Parameters:
Returns:

Returns True if there is a violation and False otherwise.

Return type:

Result of the test (bool)

pref_voting.dominance_axioms.find_all_schwartz_violations(edata, vm, verbose=False)[source]

Returns the winners according to vm that are not in the Schwartz set (the set of all candidates x such that if y can reach x in the transitive closer of the majority relation, then x can reach y in the transitive closer of the majority relation).

Parameters:
Returns:

Returns True if there is a violation and False otherwise.

Return type:

Result of the test (bool)