Lack of Free Will Demonstrated in Ruby


I have an argument against free will called The Two-lever Argument. There are many definitions of free will, so we should start with one before proceeding:

free will
The ability to have willfully chosen otherwise for any previous decision.

The Two-lever Argument says that there are only two ways to influence future events (and thus have free will): 1) by controlling a previous state of the universe, or 2) by controlling how that state transitions to the next.

To illustrate this stepping through time instant by instant, here are 25 lines of code that start one instant after the big bang and then check the two requirements for free will for each one:

Screen Shot 2014-12-27 at 12.51.53 AM

Here’s what it looks like when executed:


All the universe’s instants work this way, including the one that just passed…and the one about to come…

It may seem overly simplistic to model the levers of choice in such a way, but that is precisely the point. The burden is on the the believer in free will to provide the variable to add to this code to grant humans authorship in the process.

The most common answer to that is simply:

Well, we don’t know what the mechanism for free will is yet, so we can’t add it to the code yet. All I know is that we have free will, so it must be in the part of physics that we don’t yet understand.

This is the God of the Gaps argument. Anything people want to be true, or already believe is true, gets stuffed into the part of the universe that science doesn’t yet understand. That’s no longer an option available to the intelligent and educated.

When confronted with a mechanistic universe where outcomes are functions of previous states of the universe, we have no intelligible lever even imaginable to science that would grant us authorship, and it is ridiculously unscientific to grasp into the void of ignorance and call that a solution.

In short, I’m not saying this shows that free will cannot exist. I’m saying that this demonstrates quite clearly that there’s no reason for us to believe that it does.

To debate the argument rather than the code, please refer to the argument itself.


  1. Here’s the code without comments.
  2. The laws of the universe include randomness, but randomness merely prevents things from being completely predictable. Randomness grants no measure of control to humans.
  3. It’s possible to this using a far more compact program. It was lengthened on purpose in order to transparently illustrate the free-will-granting possibilities for each instant.
  4. Here’s an evolutionary explanation for why we *experience* free will.
  5. Here’s an essay on why free will matters, and why it’s not depressing that we don’t have it.

- Subscribe via RSS
- Follow on Twitter
- Collaborate on Github

Have an opinion on this? You can reply via Twitter, send me an email, or leave a comment below.