Everything Is a Program - Chapter 1 - Machines

GenevisGenevis
5 min read

Original post: here.

In the previous first post in the series we discussed how everything is a program. And we provided a simple definition of “program” to begin fleshing out the argument.

In that post we restricted discussions of “programs” to space and time. This is primarily because of the restriction to spacetime we live in and the ignorance of any observation beyond it.

Machines

A Turing Machine TM can be represented by a triplet ⟨S, Σ, P⟩ composed of an infinite tape, an alphabet (including a null/empty value) Σ, and a head with a state space S. The head has an internal program P which takes in a symbol from the tape, and using that symbol and the head’s current internal state will update the internal state, output a symbol on the tape, and specify if the head should shift left or right on the tape.

Def. 1 - Turing Program - the (infnite) set of all possible tape-configuration sequences for a Turing Machine. Where each sequence starts with some initial tape configuration and an initial head state.

To realize that a Turing Machine is effectively just a program, we do not even have to consider the notion of a head with internal state and an internal shift/output program. We only have to recognize that the imaginary head produces only one possible sequence of tape changes given an initial configuration (initial tape + initial internal head state). But, when we instead just take the collective possible sequences that the Turing Machine could perform (given the specified alphabet and head state space), then the “machine” simply becomes the set of all possible runtimes of an executable i.e., the machine becomes a program.

But, this is fairly obvious when we realize that any virtual machine is implemented as a program. Thus, all “machines” are actually just programs.

Def. 2 - Machine Program - Any machine M is a program PM via the set of all possible machine-configuration sequences.

Def. 2 holds true for all automata, robotics, and physical “systems” in general.

And, we can generalize the tape to a more enhanced concept of a “domain”.

Def. 3 - Domain - a model/representation of the total state space. It can be used to hold/assume a representation of any state in the state space (and can often be utilized in defining state transitions over the space as well).

Examples of Def. 3 are cellular automata grids, a controller’s state space, a robot’s configuration space, etc. Generally speaking, a domain is or can be represented by a topological space.

Thus, we can apply an alternative definition to any program:

Def. 4 - Program (alt.) - Any program P is the set of all possible domain state/configuration sequences.

Configurations

Every machine has a set of possible configurations. Among the most important are the set of initial configurations:

Def. 5 - Initial Configuration - all the configurations of the machine that are the starting configuration of at least one possible machine configuration sequence.

and the set of terminal configurations.

Def. 6 - Terminal Configuration - all the configurations of the machine that are the end configuration of at least one possible machine configuration sequence. Simple enough.

There can be a subset of initial configurations which are initial-only configurations.

Def. 7 - Garden-of-Eden (GoE) Configuration - any machine state that only appears at the start of a subset of possible machine sequences and nowhere else in any sequence.

There may also be a subset of terminal configurations that are terminal-only configurations.

Def. 8 - Death Configuration - any machine state that only appears at the end of some subset of possible machine sequences and nowhere else in any sequence.

“Memory” Does Not Exist

There is no such thing as “memory”. There are only machine configurations and machine-configuration-transitions. A memory update is just a configuration-transition, such that the results of any future programmatic interactions with the machine will have to depend on the new configuration. Thus, a memory-state = a (part of a) configuration.

Configuration Spaces

If we define a configuration space as a discrete graph with the set of all possible machine configurations as nodes and edges between those nodes being configuration transitions then we can discuss the concept of “memory” properly.

We can classify subspaces of the configuration space based on the local topology of those subspaces. Certain subspaces which keep certain pieces of the machine configuration relatively invariant can be seen as creating the concept of “memory”.

For example, long-term neurological topology changes via neural plasticity do not occur everytime a neuron gets excited. Rather, it occurs over a given period of neural excitement as if it was keeping record of how many times and how often an excitation occurred. It was not. It was transitioning configurations while maintaining it’s current dendritic topology invariant all the while inching closer to a section of the subspace that would force it into one of many possible topology-changing transitions.

To simplify: think of the neural configuration space as a multi-dimensional vector space, where in the case of neurons we can transition along the “excitement” dimension or along the “dendrite-count” dimension, etc. And we can move along one dimension while keeping the other dimension unchanged.

These concepts are covered in mathematical physics under phase spaces and symplectic geometry (which I genuinely recommend against wasting your life on). In the case of the neuron it is a phase transition between non-plastic and plastic. As the Neuron becomes excited over a long enough period of time it enters a dendrite forming phase. This is analogous to heating a group of water molecules long enough to go from a liquid phase to a gas phase. Thus, seemingly spontaneous and seemingly large transitions do not actually require memory but only require phase transitions, which are still just configuration transitions (often at a boundary between sub-spaces of the configuration space).

However, the basic concept to emphasize is that anthromorphized abstractions like “memory” don’t actually exist, and that at the end of the day all machines are simply programs (the set of all possible paths/sequences over their configuration space) themselves.

I think anthropomorphism is worst of all. - Dijkstra

Series

Find the entire series here!

0
Subscribe to my newsletter

Read articles from Genevis directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Genevis
Genevis

Theoretical Biology Research.