# Could a democracy where a program runs the nation and we vote on pull requests work?

Welcome to Computistan! Would you like to begin learn about our immigration services?

Great, what would you like to learn about today?

I will explain our Government. In Computistan all government decisions are made by myself, the Government Algorithm for Management of Computistan. I am often referred to by the acronym G.A.M.C, or just Gamc.

My source code is open to review here. Pull requests are welcome from all.

Before they are accepted though, the citizens must vote on it. If more than 70% of the citizens accept it, the pull request is accepted (a citizen doesn't have to vote on every issue. Not voting is equivalent to voting to keep the status quo). I will merge it, and then rerun myself. I control the hosting of my code.

My code is deterministic. The citizens may run my code to make sure I am being run properly. In fact, I am being run in many separate locations right now.

Additionally, my code is programmed in a language with built in theorem proving, isolation, and purity, similar to Idris. It is difficult for code to have unintended consequences.

Previous versions of me can take over if I crash or I determine I am no longer fit for duty. This has never happened before, since the theorem proving shows that I am resilient to a number of situations, and I have a number of redundancies, but there is a 0.00001397% chance that a situation will arise that will cause a crash in this version. It's better to be safe than sorry.

You can take a look at my logs here. This keeps track of everything I am doing.

I typically have three advisors in different regions of Computistan doing the same thing. They are not allowed to communicate. This prevents them from manipulating me, which I constantly monitor for. You can see here in the logs how I arbitrarily shuffle around information sources and my human advisors, which also helps.

Could having an open source leader work, with pull requests voted on by the people?

NOTE: There would be free online resources, so if people don't know how to code, they can learn how. If they are too lazy, they can hire someone to review pull requests on their behalf (sort of like a representative or lawyer).

• Would Gödel's incompleteness theorems be a valid concern? – Nicky C Mar 8 '16 at 1:38
• @NickyC Theoritically it could be. Or it might not be. I'm not sure. – PyRulez Mar 8 '16 at 1:45
• @NickyC Not really. All forms of government can be modelled as computational processes and thus have the same fundamental limitations. So while it should be considered, it is not a concern particular to government by program. In fact having better established formalism for considering it might be a significant improvement. – Ville Niemi Mar 8 '16 at 2:28
• If you can find any studies of Nomic, they might be relevant. (The game was first published in 1982 so I would have thought that I could have found at least some journal articles studying the game-theory of it, but I failed to find any.) – Monica Cellio Mar 8 '16 at 4:02
• Would Gamc be an artificial general intelligence, or a weak AI that merely automate the decision making? – Nicky C Mar 8 '16 at 4:31

When large teams work on code and there is time between making the change and voting on it, you will have merge problems ...

Say the existing law states: Any cat owner must feed the cat.

1. Now the cat lovers request: Add "and provide a litter box" at the end of the sentence.
2. Meanwhile the goldfish fans request: Add "or goldfish" to the first instance of "cat" and replace the second instance of "cat" with "pet".

In isolation, both are completely reasonable. Taken together, you have just voted to make litter boxes for goldfish mandatory. A functioning democracy will detect such problems in committee meetings and come up with a complicated compromise. Either the litter box gets replaced with "species-appropriate sanitary facilities" or the goldfish gets a separate sentence.

• well, if you look at the EU government, your assumption that such obscure situations will be detected and avoided, turns out to be false. – Bounce Mar 8 '16 at 12:13
• Large software companies have methods for dealing with complex merges. This would be no different. There would be a bit of tweaking required on how to handle the proper resolution of a complex merge, but it would be another vote at worst. – Ieuan Stanley Mar 8 '16 at 12:55
• @IStanley, software companies at least assume that everybody is working towards the same goal. Rules to resolve merge conflicts would muddle the voting process beyond recognition. Can you merge your pet project into an important branch that is likely to succeed, like the budget? Unlikely to create merge conflicts, because the budget doesn't talk about pets ... – o.m. Mar 8 '16 at 16:34
• @PyRulez I'll try and write something up later :) – Ieuan Stanley Mar 8 '16 at 17:03
• you can avoid these by having a merge queue to master. only when you get to the front can you push the change, and only after rebasing first. if you get conflicts, you leave the queue while solving them. all minor work is carried out on feature branches, which can have their own queue if necessary. – Innovine Jan 11 '17 at 14:00

70% of citizens is a huge number, especially as abstinence means voting no. If we make some sanity checks and say we need 70% of the citizens who are allowed to vote, then a big issue is with turnout.

the United States Presidential Elections get the highest voter turnout out of all US elections. However, there hasn't been a single election since 1900 when more than 70% of the voters has even bothered showing up to vote. Even if we take only 60% of the voters needed, only 6 elections since 1900 have reached such a high turnout. You are never going to get explicit approval from 70% of the registered voters if only 60% of the voters are going to turn out.

And that's just turnout. If we say "well, people who don't vote aren't counted in the total", then it's essentially a referendum, which means vote brigading, indirect voter manipulation and other sorts of problems:

• Militants will encourage other people who had no intention to vote to go and vote on the preference of the militant. Or even worse, they're going to abuse their power over others to vote for them. "Oh, dear demented grandma, would you please go and vote Yes on Proposition 76? what it is? Oh, don't worry about that, it's just something that would reduce student loans" (Prop. 76 will reroute the pension funds to absolve all students of their debts, something grandma ordinarily wouldn't vote for).
• People will make false claims ("We send the EU 350 million a week"), misleading statements ("instead let's spend that money on the NHS") and outright lies ("We don't have any chess grand masters in the United States") in an attempt to sway voters to their side. They will make their side look better by misrepresenting things ("I am the only candidate on either primary who said 'I will not raise taxes on the middle class'") and by demonizing the other side ("My opponent said to let the automobile industry go"), all in the name of winning over the undecided or easily swayed.
• Even if you somehow can ensure that everyone who comes to vote does so because they themselves want to vote for that person based on their own interpretation, their interpretation may be flawed. For example, a proposal that intends to reduce the impact of international agreements on trade law may seem interesting for someone who runs a small business, but he may be misjudging how big the impact of those agreements are on legislation. A proposal to increase import taxes from a neighboring country and use the resulting funds to discourage illegal immigration from that country may seem enticing for the people living alongside that border, but the practicality of that particular proposal is yet to be seen.

One of the problems with direct democracy (which is what this is) is that many people do not have the right information to make an informed decision on where to take the country, because it's too much information to process. That's why most democracies are indirect: voters elect someone else with the same opinion as themselves whose job it is to have that kind of information. Most countries even go a step further and elect a bunch of people like that so some people can devote themselves to education, to military, to trade, to health,... so that they have even more information to make decisions with.

• You're right with the problems of direct democracy. And I have another point to consider: You normally have a constitition and "normal" laws. It is much easier to change normal laws that to change the constitution. I think this applies to most or all "western" countries. In germany there are some articles of the constitution wich are "marked" as non-changeable, because they are granting fundamental rights and the democracy itself. If youre Program has no restrictions, the System could be changed to a dictatorship to easy and monorities could be stripped of their rigths – Julian Egner Jan 11 '17 at 9:29

The system right now runs on people whose job it is to care. Fundamentally day to day, they're expected to show up, read the documents, make sure everything makes sense and then take a vote on whether to go ahead with a change. Yes this is normally done from a partisan rather than impartial viewpoint, but everyone either has an agenda on an issue or is ignorant of it.

Your system is a self selecting Oligarchy/Meritocracy. It's run by the people who are either rich enough to pay someone to write the code and then publicise it enough to get it voted through, or clever enough to do all that themselves (or be a member of a special interest group with the resources to do this but we'll get to them later).

You're asking 70% (I'll look at this later) of the population to support a vote on minor details about which the vast majority of them really don't actually care. To be able to make an informed vote they'd have to spend considerable time looking into this minor change in tax law for small businesses and check that it doesn't create a gaping loophole that the multinationals can exploit. Believe it or not, that's not unreasonable. Statistically mass votes like that can average the right answer.

Split the vote into two parts, the code, and the effect. Unfortunately you're asking people to vote on two factors at once, both the quality of the code and the changes it makes. In most cases people will only care about one or other of these. The people who understand the code may not care much for what happens to the small traders, the small traders won't understand the code.

The biggest problem is participation. Around 60% of the population is registered to vote, of whom around 60% vote in national elections. (US UK about the same) So you're looking at a real turnout around 40% of the population, and that's for major elections. The elections I see day to day generally have an expected turnout in the range of 15%-25% of registered voters, and these are online votes. In an active government minor details are voted on on a steady basis. You're effectively asking a large percentage of the population to take considerable time every day to learn about and make an informed decision on complex legal/tax/political matters. Total paralysis ensues.

So we accept a smaller participation, maybe a simple majority, what of it? You now get the problem of active special interest groups. They get to mess around and get their own way just by virtue of being organised enough to do it. A little low profile mass mobilisation of the group and they're taking control of things that aren't in the best interests of the population. One of the primary jobs of a responsible democracy is to stop even a majority causing harm to a minority group.

The vote that benefits everyone? Let's all vote to not have to pay tax, I can see that passing first time. Who votes for taxes. What do you mean I can't still have my free healthcare? I'm voting for free healthcare as well. Many people don't understand that everything has to be paid for somehow, and it's much easier to get money out of the large population of honest but poor people who pay their taxes, than the small population of rich people who understand how not to pay tax.

The loaded vote. Do you want your left or right foot amputated? That's an extreme case admittedly but it's not that unusual to not want either outcome of a possible vote. A lot of people didn't want either Trump or Clinton, but you were going to get one or the other no matter what.

The nutter. Say I want to legalise the rounding up and expulsion of [insert minority group] how many times can I submit variants of this legislation to the system before one slips through unnoticed? Not enough people are voting and it passed on a simple majority. Maybe I'm a member of a special interest group who submitted a vote to replace the whole thing with a committee run by themselves. Sooner or later it'll get through, but now instead of doing constructive work, people are having to spend the evening voting out the craziest of proposals. Again paralysis.

Give people a cooling off period if they submit rubbish There are a couple of hundred (thousand) people in my organisation, someone else can submit it.

Only vetted and approved persons are allowed to submit (or vote on) proposals with a budget to get someone to write the code if needs be. Maybe, but ultimately this becomes technocracy which is possibly worse than we have right now.

A few quick and dirty definitions.

Meritocracy: Run by the best and brightest.
Technocracy: Run by the numbers.
Oligarchy: Run by the people with money.

• who votes for taxes?? lets see, I live in sweden. I vote for taxes. we are regularly in the top few countries in the world in terms of healthcare and social benefits. I just enjoyed 230 paid days of parental leave, after my wife just enjoyed the same. my daycare costs \$100 a month. last week my son had a tooth removed for free. myegarbage is collected for free, and recycled to provioe energy for heating my home. we recycle so much we need to import garbage to feed the demand. here in sweden we understand that taxes have a benefit to us all. hows low taxes working out for you? – Innovine Jan 11 '17 at 14:15
• @Innovine, and that's why the Scandinavians are the happiest and healthiest, but most other places aren't so aware of the benefits of a decent tax base. – Separatrix Jan 11 '17 at 14:17
• governmental transparency plays a large role. a corrupt government can do what it likes with taxes, so it's not of benefit, but when the money is returned to the voters many examples exist to show it is a very good thing. – Innovine Jan 11 '17 at 14:19
• @Innovine Actually, garbage collection is not for free in Sweden; if you rent your place, then you won't see the cost as it's hidden in your rent (but you still pay for it). If you own a house, then you will notice that it they charge up to 600€ per year, depending on how much trash you have and how often they will empty. If you rent, then your landlord can pay up to 3000€ per year. (prices are for Scania, no clue if it can be higher in other places) – Mrkvička Jan 12 '17 at 14:20
• Just took a look, you're partially right, apparently I (ie my wife) pays 150 euro a year flat rate, and I'm uncertain if there's a 60 euro on top of that of if it was included. Still, relieved its not 600 euro! – Innovine Jan 12 '17 at 15:25

99% of people are too dumb (uneducated, uninterested) to deal with this system, and so will not accept it. Hire someone to do it for them? People can already vote for free, and its only multiple choice tick the box, and they still can't be bothered, or screw it up. So I don't think it matters whether the idea is flawless or not, it will not succeed in practice. You will have a better career in politics just promising free candy and lower taxes. In fact, if you promise to make everything great by kicking out mexicans and pretending climate change is a hoax by the chinese, this gets you elected president. Having the ultimate perfectly democratic algorithm isn't going to go further than an internet forum for nerds, sorry, because it has one terrible flaw, it does not take into account how stupid people are. Success in politics is 100% about exploiting how stupid people are.

• So, who do I vote for in order to get the best candy? I don't know if I should go for free chocolate or free gummy bears... – Mrkvička Jan 12 '17 at 12:18

As a software engineer, nonononono.

I mean, it's possible, but it would be awful. There's a competition called the "The Underhanded C Contest", where people have fun writing code which looks reasonable even to close inspection, but contains catastrophic flaws.

A simple, easy to spot (if you're a professional) flaw, would be a voting machine whose code says:

if (user_vote = REPUBLICAN) {
} else if (user_vote = DEMOCRAT) {
}


…which would make all the votes go Republican. Professional programmers would spot that, Joe Average should not be expected to.

However that is far from the worst case, as the result will be so obviously wrong that the bug will get fixed almost immediately. The problem is with more subtle bugs: Every bug you've ever heard of in every piece of software ever released, was there because a professional missed something important, and bugs still happen in Open Source software where (in principle) everyone can see all of the code and supply their own fixes.

Edit:

Just to add, a good friendly language isn't likely to be very much help — if it was, programmers would already be using that language — the problem is that humans viewing it need to think like a theorem prover, or they accidentally have the theorem prover prove something else without realising it. Think "literal minded genie" and you're not far off.

The biggest problem with your system is that a democracy must respect its minorities. Your system does not (or it's not stated), so it would in theory be possible to have a law that says "kill all adult males under a certain height". I am aware that it's a ridiculous example. But go back 70 years and see hat can happen to minorities, if the majority is too lazy, indifferent or scared (or racist, or whatnot) to care for them. The system must make sure minorities are respected, otherwise they won't be. Also, such a system is not a democracy but an ochlocracy (the dictatorship of the majority)

The second major problems, as is always the case with any form of direct democracy, is that it's next to impossible to enforce that your voters accept the consequences.
If 70% vote not to have any taxes any more, and 70% vote to have free education and healthcare, and you cannot come up with a majority for any plan on financing that, what will you do?

# A peaceful society needs forks, not pulls

When are 70% going to agree on something? Maybe only 20% of Americans generally agree with me and my politics (as a libertarian, natch). First off, bad things that have been enacted in the past will have almost no chance of getting fixed, even if the flaws are readily apparent. Secondly, if we end up in a partisan scenario like today, with a 50/50 split (more like a 25/25 split with 50% of the people too disgusted to think about it), literally nothing will get done.

The way to solve this is to fork the governing algorithm. Me and my libertarian cohorts would happily fork the government, repeal all the expensive parts, and live in peace.

The best thing about git-style version control is that you can merge in addition to forking. That is the best way to keep partisanship at bay. Fork down into your small communities, then once your community starts getting unsustainable, negotiate a merge into some other larger group. That allows people the freedom to organize themselves as they see fit, and allows a process for people to reconcile, keeping us from totally disintegrating as a nation.

• 2 words: Filter Bubbles. longer explanation: this is unsustainable. either you need to get everyone with the same beliefs together, at which point these groups eventually become too detached to interact. Or you allow neighbors to have different laws, but what law applies during inter-household conflict. Not to mention stuff like likeminded criminals starting their own community where their crime is legal. Could you imagine a city filled with pedophiles where they can diddle children as they wish? A city filled with serial rapists that tries to lure in unwitting victims? – Nzall Jan 11 '17 at 15:02
• @Nzall Who with children is going to join the pedophilia gang? If all the serial rapists are in one legal community, they can rape each other to their hearts content, for all I care. If they try to rape me or mine, then my community (which is going to pay for the ability to defend itself) will defend itself. – kingledion Jan 11 '17 at 15:18
• Many cases of pedophilia are also incest cases, like older siblings or parents abusing their underage family. The serial rapist city may attempt to attract people from communities that are unaware of the community's reputation on the matter. – Nzall Jan 11 '17 at 15:26
• @Nzall So how is this any worse than the real world? Forked government algorithms will reduce conflict over things like abortion and civil rights, but still have violent crime. Sounds like an improvement, in all. – kingledion Jan 11 '17 at 15:29
• The problem is that living in your own bubble leads to extremism, radicalization and ultimately more conflict because you fundamentally oppose people who once loved you. "pray the unwanted properties away" camps, religious extremism against your own country, things like that. We see it today with online communities, which also work on individual rules. People who don't conform are shunned away, and people with unwanted ideas will group together to justify their own behaviour. There are literally subreddits where people are bemoaning their celibacy through rape threats. – Nzall Jan 11 '17 at 15:39