In the past I had the thought: “probably there is no way to simulate reality that is more efficient than reality itself”. That is, no procedure implementable in physical reality is faster than reality at the task of, given a physical state, computing the state after t physical ticks. This was motivated by intuitions about the efficiency of computational implementation in reality, but it seems like we can prove it by diagonalization (similarly to how we can prove two systems cannot perfectly predict each other), because the machine could in particular predict itself.
Indeed, suppose you have a machine M that calculates physical states faster than reality. Modify into M’, which first uses M to calculate physical states, and then takes some bits from that physical state, does some non-identity operation to them (for example, negates them) and outputs them. Then, feed the physical description of M’, its environment and this input itself to M’, and suppose those privileged bits of the physical state are so that they perfectly correspond to the outputs of M’ in-simulation. This is a contradiction, because M’ will simulate everything up until simulated-M’ finishing its computation, and then output something different from simulated-M’.
It seems like the relevant notion of “faster” here is causality, not time.
Wait, the input needs to contain the whole information in the input, plus some more (M’ and the environment), which should be straightforwardly impossible information-theoretically? Unless somehow the input is a hash which generates both a copy of itself and the description of M’ and the environment. But then would something already contradictory happen when M decodes the hash? I think not necessarily. But maybe getting the hash (having fixed the operation performed by M in advance) is already impossible, because we need to calculate what the hash would produce when being run that operation on. But this seems possible through some fix-point design, or just a very big brute-force trial and error (given reality has finite complexity). Wait, but whatever M generates from the hash won’t contain more information than the system hash+M contained (at time 0), and the generated thing contains hash+M+E information. So it’s not possible unless the environment is nothing (that is, the whole isolated environment initial state is the machine which is performing operations on the hash? but that’s trivially always the case right?...). I’m not clear on this.
In any event it seems like the paradox could truly reside here, in the assumption that something could carry semantically all the information about its physical instantiation (and that does resonate with the efficiency intuition above), and we don’t even need to worry about calculating the laws of physics, just encoding information of static physical states.
Other things to think about:
What do we mean by “given a physical state, compute the state after t physical ticks?”. Do I give you a whole universe, or a part of the universe completely isolated from the rest so that the rest doesn’t enter the calculations? (that seems impossible) What do t physical ticks mean? Allegedly they should be fixed by our theory. What if the ticks are continuous and so infinitely expensive to calculate any non-zero length of time? What about relativity messing up simultaneity? (probably in all of these there are already contradictions without even needing to the calculation, similarly to the thing above)
If the complexity of the universe never bottoms out, that is after atoms there’s particles, then quarks, then fields, then etc. ad infinitum (this had a philosophical name I don’t remember now), then it’s immediately true.
In the past I had the thought: “probably there is no way to simulate reality that is more efficient than reality itself”. That is, no procedure implementable in physical reality is faster than reality at the task of, given a physical state, computing the state after t physical ticks. This was motivated by intuitions about the efficiency of computational implementation in reality, but it seems like we can prove it by diagonalization (similarly to how we can prove two systems cannot perfectly predict each other), because the machine could in particular predict itself.
Indeed, suppose you have a machine M that calculates physical states faster than reality. Modify into M’, which first uses M to calculate physical states, and then takes some bits from that physical state, does some non-identity operation to them (for example, negates them) and outputs them. Then, feed the physical description of M’, its environment and this input itself to M’, and suppose those privileged bits of the physical state are so that they perfectly correspond to the outputs of M’ in-simulation. This is a contradiction, because M’ will simulate everything up until simulated-M’ finishing its computation, and then output something different from simulated-M’.
It seems like the relevant notion of “faster” here is causality, not time.
Wait, the input needs to contain the whole information in the input, plus some more (M’ and the environment), which should be straightforwardly impossible information-theoretically? Unless somehow the input is a hash which generates both a copy of itself and the description of M’ and the environment. But then would something already contradictory happen when M decodes the hash? I think not necessarily. But maybe getting the hash (having fixed the operation performed by M in advance) is already impossible, because we need to calculate what the hash would produce when being run that operation on. But this seems possible through some fix-point design, or just a very big brute-force trial and error (given reality has finite complexity). Wait, but whatever M generates from the hash won’t contain more information than the system hash+M contained (at time 0), and the generated thing contains hash+M+E information. So it’s not possible unless the environment is nothing (that is, the whole isolated environment initial state is the machine which is performing operations on the hash? but that’s trivially always the case right?...). I’m not clear on this.
In any event it seems like the paradox could truly reside here, in the assumption that something could carry semantically all the information about its physical instantiation (and that does resonate with the efficiency intuition above), and we don’t even need to worry about calculating the laws of physics, just encoding information of static physical states.
Other things to think about:
What do we mean by “given a physical state, compute the state after t physical ticks?”. Do I give you a whole universe, or a part of the universe completely isolated from the rest so that the rest doesn’t enter the calculations? (that seems impossible) What do t physical ticks mean? Allegedly they should be fixed by our theory. What if the ticks are continuous and so infinitely expensive to calculate any non-zero length of time? What about relativity messing up simultaneity? (probably in all of these there are already contradictions without even needing to the calculation, similarly to the thing above)
If the complexity of the universe never bottoms out, that is after atoms there’s particles, then quarks, then fields, then etc. ad infinitum (this had a philosophical name I don’t remember now), then it’s immediately true.
How does this interact with that “infinite computation” thing?