Consider the current situation of your computer. You are viewing this post in a web explorer. There are a couple of other tabs opened in your explorer. You are maybe listening to music with Spotify. Tens of other processes are working behind your screen.
What is the current status of your computer? One can say that the current state of your computer is defined by all of the memories in it, such as your computer’s RAM, hard disk, CPU cache, and even register file in CPU. If we copy this data on the other computer with the same config, we expect that it shows the same behavior as your computer.
Now that we know what the current state of a computer is, let’s think about what conditions have brought this state on our computer since the startup? Programs and inputs to the programs. First, let’s consider programs.
When you push the start button of your computer, it starts executing a set of deterministic instructions which are stored in the instruction section of your memory. Each clock cycle CPU executes the instruction which a specific register called Program Counter (PC) points to. In that clock cycle, 2 scenarios can happen depending on that instruction type. If the instruction type is Branch or Jump, PC jumps to another instruction that can be everywhere in your instruction memory. Otherwise, your PC points to the next instruction. Jump instructions change the PC without any condition, yet, Branch instructions only jump when a specific condition is held. Those conditions are completely dependent on the inputs to the computer.
What are the inputs to the computer? Mouse, keyboard, CD-ROM, Internet, storage devices such as hard disc, USB flash drives, etc. are the answers that come to our mind for this question. For the sake of simplicity, consider that your computer is not connected to the internet and no CD-ROM or USB flash driver is connected to your computer.
That being said, if we start two computers with the exact same configuration and inputs, we can expect them to have the same state at any moment. Nothing has played a rule in the current state except the deterministic instructions and inputs. In other words, this is not the computer that specifies its state, it is the programmer that imposes the state.
Now let’s map this idea to a human. The computer instruction memory is mapped to the brain. What is our brain? What we have learned, our memory, what we do, etc. are the result of the neurons in our brain. Our brain consists of around 86 billion neurons. Each neuron affects its neighbors with electrical spikes through the Axon terminals. Neighbors are affected by receiving the electrical spikes through the dendrite. The electrical spike strength is specified by a function of the aggregated received signals from neighbors. The impact strength of a neuron’s terminal on the neighbor’s dendrite is determined by the strength of that connection. The learning process is not by increasing the number of neurons in the brain. Instead, it is the result of the connection strength change between the neurons. What we learn, our memory, what we do, etc. come from the specific connections between the neurons.
With these in mind, we can map programs to the connections between neurons. How about inputs? They are what we sense from our five feelings, that are sight, hearing, taste, smell, and touch. Once again, Nothing has played any rule in the current state except the deterministic connections and feelings. If we believe that humanity works similarly to computers, we must confess that there is not anything named Freewill in us.
In short, all of this post is trying to arise one question in our mind, has the current state of one person resulted from the pre-determined programs or not. If we consider the similarity of a human mind and a computer, Freewill has no meaning. What do you think?