This is a stub. I am having exams right now and do not have the time to write the full article. I'll update (not any time soon) after I've resolved the problems in this article.
The original post was supposed to be part of my "Meditations in Ontology" sequence (I planned on starting the sequence next year at earliest, probably later). I'll probably write a few other stubs to address the recent discussion about existence and truth.
I have learned neither computability theory nor information theory; if I make a mistake somewhere, please correct me.
For the purposes of this post it is sufficient to understand an object as "anything".
Two systems are structurally equivalent if they are composed of the same components.
Two systems are functionally equivalent if they have the same domain, the same range and the same image for all inputs.
Two structurally equivalent systems are functionally equivalent, yet two systems can be functionally equivalent and structurally similar. Sometimes, the semantic content of a concept refers to its function (e.g a clock). At other times, the semantic content might refer to its structure (e.g an atom). Yet still, some concepts may be defined according to both form and structure (e.g a gold watch).
When we say that one object simulates another object , we say that (or a specific output of (if is a computational system) is a perfect fidelity model of . That is, in all ontologies (or said output of ) and are indistinguishable and interchangeable.
A Note on Computation
The output of a computation has no inherent meaning. There is no global semantic content to the output of a given computation. When I run a program, the stream of binary code sent to the output devices have no meaning. Only after they have passed the output device, and have been translated from binary to a language I understand, can I "read" the information therein. If I thought in binary, perhaps my monitor would just display the binary stream directly.
For a given computational process, the semantic content of the output is defined relative to an observer that would read that output and gain information from it. The output may need to be interpreted to the observer.
An observer is an agent who "reads" (an interpretation of) the output of a computation and extracts information from it.
It is important to note that the observer of a computation is external to that computation. Whatever observes a simulation is not itself inside the simulation (it maybe represented in the simulation, but it is not part of the simulation itself).
Furthermore, it should be noted that there is a set of correct interpretations for each output given and observer pair. Whenever we say "interpretation", we refer to a member of this set.
For a given output, we might imagine how different agents may understand the output of it was interpreted into their language.
Let be the set of all agents.
is the meaning of V to α. The domain of "" is the set of all objects.
According to our definition of simulation, a computational system simulates an object if a given output of is a perfect fidelity model of .
is a given output of . Let be the input to such that simulates .
locally simulates for if and only if .
That is has the same meaning as to .
globally simulates (or just " simulates ") if and only if
That is has the same meaning as to all agents.
The output of becomes the input to the program which then translates into whatever language the agent uses and them "runs" it on the agent's own processor.
Information Theoretic Ontology
Axiom of Computability
The universe is computable. This means that it is possible to simulate this universe on an infinite state universal Turing machine with unbounded processing power. This simulation does not need to be physically realisable, and only needs to be logically realisable. We shall refer to this Turing machine which simulates the Universe as the God Turing machine (abbreviated ).
is capable of simulating every other Turing machine. As for whether can simulate itself, I think it should be able to. If it is possible without breaking the Turing machine model, can simulate itself. If it's not, I'll fix that when I'm stronger.
From this axiom, we shall concern ourselves only with computable (not necessarily physically so—if physical infeasibility is the only reason why something cannot be computed, then it is computable) ontologies.
If we accept the above axiom, then some interesting results follow. Two Turing machines may run programs that are structurally dissimilar (different binary representations), but functionally equivalent. As the programs are functionally equivalent, the Turing machines are for all intents and purposes running the same program.
The Kolmogorov complexity of an object is the length of the shortest program that would produce that object is output.
The information content of an object is that shortest program that produces the object and output.
We shall denote the information content of an object as . The Kolmogorov complexity of |.
'' represents the reference Turing machine (we shall denote using '').
represents the length of .
For a given object , and a given Turing machine , the -program-equivalence class of is the set of all programs which when run on