[EM] Introducing Pivot

Kristofer Munsterhjelm km_elmet at t-online.de
Wed Dec 12 12:20:28 PST 2018

On 2018-11-30 16:00, Carl Schroedl wrote:
> Hello Election Methods List!
> Greetings from Madison, Wisconsin, USA. I’m Carl Schroedl. By day I’m a
> professional software engineer. By night I volunteer on the Pivot Libre
> open source project. The project has produced an open source library
> called Tideman for calculating Ranked Pairs election results and an open
> source web app called Pivot that lets people execute ad-hoc Ranked Pairs
> elections via their web browser. I invite you to try it out here:
> https://pivot.vote
> If you don't want to create an account, you can simulate elections with
> textual ballots here:
> https://pivot.vote/open/try
> It’s seeing more usage than we thought. While most usages are
> non-governmental, a committee in the municipal legislature of Madison
> used it to nominate an interim legislator. Since the city of Madison is
> currently reevaluating its fundamentals through a Task Force on
> Government Structure, I’m hoping this app encourages the adoption of
> alternative voting systems. We already have a lot of tests to ensure our
> system is correct, but in light of this success, we’d like to further
> increase our confidence.
> I know we’re not the first people to verify the correctness of their
> electronic voting system, and I doubt we’ll be the last. How would list
> members recommend we proceed? Julien Boudry (https://condorcet.vote) and
> I were considering creating a repository of machine-readable test
> ballots with expected election outcomes so that multiple projects could
> run the same tests. Does such a resource exist? If not, would anyone be
> interested in collaborating?

For something as simple as a voting method, it might be possible to
formally prove the code correct. Such a proof would be better than any
collection of tests, as it would show the method correct for every
possible ballot. However, I don't know enough about formal verification,
so I couldn't tell you how to actually do it.

Beyond that, a collection of tests would be a good idea. I don't know of
any such colection. Articles that show that methods fail certain
criteria may contain ballot sets to demonstrate the failure, e.g.
shows an example where Borda fails IPDA, and so (implicitly) contains a
test election along with the outcome that Borda should give that test

I could probably adjust my program
(https://github.com/kristomu/quadelect) to output elections that
distinguish between different methods. Creating tests to exercise
methods would be tougher, as we'd have to know how one may design the
methods incorrectly. Perhaps the best approach would be to take many
implementations that have already been written and test them on random
elections to see when they give different results.

I'd like to make a test set, but I've recently found myself rather short
on spare time, so I don't think I could contribute much, at least not at
the moment.

More information about the Election-Methods mailing list