A team of physicists led by Mir Faizal at the University of British Columbia has demonstrated that the universe cannot be a computer simulation, according to research published in October 2025[1].
The key findings show that reality requires non-algorithmic understanding that cannot be simulated computationally. The researchers used mathematical theorems from Gödel, Tarski, and Chaitin to prove that a complete description of reality cannot be achieved through computation alone[1:1].
The team proposes that physics needs a “Meta Theory of Everything” (MToE) - a non-algorithmic layer above the algorithmic one to determine truth from outside the mathematical system[1:2]. This would help investigate phenomena like the black hole information paradox without violating mathematical rules.
“Any simulation is inherently algorithmic – it must follow programmed rules,” said Faizal. “But since the fundamental level of reality is based on non-algorithmic understanding, the universe cannot be, and could never be, a simulation”[1:3].
Lawrence Krauss, a co-author of the study, explained: “The fundamental laws of physics cannot exist inside space and time; they create it. This signifies that any simulation, which must be utilized within a computational framework, would never fully express the true universe”[2].
The research was published in the Journal of Holography Applications in Physics[1:4].



Disclaimer: an engineering student not a logician. However, one of my recent hyper fixations lead me down the rabbit hole of mathematics specifically to formal logic systems and the languages and semantics of them. So here’s my understanding of the concepts.
TLDR: Undecidable things in physics aren’t capable of being computed by a system based on finite rules and step-by-step processes. This means no algorithm/simulation could be designed to actually run the universe.
A language is comprised of the symbols used in a formal system. A system’s syntax is basically the rules by which you can combine those symbols into valid formulas. While a system’s semantics are what determines the meaning behind those formulas. Axioms are formulas that are “universally valid” meaning they hold true in the system regardless of of the values used within them (think of things the definitions of logical operators like AND and NOT etc)
Gödel’s incompleteness theorems say that any system which is powerful enough to define multiplication is incomplete. This means that you could write a syntactically valid statement which cannot be proven from the axioms of that system even if you were to add more axioms.
Tarski’s undefinability theorem shows that not only can you write statements which cannot be proven true or false, you cannot actually describe the system using itself. Meaning you can’t really define truth unless you do it from outside the formal language you’re using. (I’m still a little fuzzy on this one)
Information-theoretic incompleteness is new to me, but seems to be similar to Gödel’s theorem but with a focus on computation saying that if you have a complex enough system there are functions that won’t be recursively definable. As in you can’t just break it down into smaller parts that can be computed and work upwards to it.
The paper starts by assuming there is a computational formal system which could describe quantum gravity. For this to be the case, the system
Because the language of this system can define arithmetic, Gödel’s theorems apply. This leads to the fact that this system, if it existed, can’t prove that it itself is sound.
I don’t know what it means for the “truth-predicate” of the system to not be defined, but it apparently ties into Chaitan’s work and means that there must exist statements which are undecideable.
Undecidable problems can’t be solved recursively by breaking them into smaller steps first. In other words you can’t build an algorithm that will definitely lead to a yes/no or true/false answer.
All in all this means that no algorithmic theory could actually describe everything. This means you cannot break all of physics down into a finite set of rules that can be used to compute reality. Ergo, we can’t be in a simulation because there are physical phenomena that exist which are impossible to compute.
I appreciate this, but I think arguments that try to prove that we can’t simulate the universe atom-for-atom really miss the point.
If you were simulating a universe, you wouldn’t try to simulate every quark and photon. You would mostly just render detail at the level that humans or the simulated beings inside the simulation can interact with.
To my left is a water bottle. If I open it up, I see water. But I see water, I don’t see atoms. You could create a 100% convincing simulation of a water bottle with many orders of magnitude less computation required than if you tried to simulate every water molecule inside the water bottle.
This is how you would actually simulate a universe. You don’t apply the brute force method of trying to simulate every fundamental particle. You only simulate the macroscopic world, and even then only parts that are necessary. Now, you probably would have some code to model the microscopic and subatomic, but only when necessary. So whenever the Large Hadron Collider is turned on, the simulation boots up the subatomic physics subroutine and models what results an experiment would reveal. Same thing with looking under a microscope. You don’t actually simulate every microbe on earth constantly. You just simulate an image of appropriate microbes whenever someone looks under a microscope.
And your simulation doesn’t even have to be perfect. Did your simulated beings discover they were in a simulation? No problem. Just pause the simulation, restore from an earlier backup, and modify the code so that they won’t discover they’re in a simulation. Patch whatever hole they used to figure out they were being simulated.
If the simulators don’t want you to discover that you are being simulated, then you will never be able to prove you’re in a simulation. You are utterly and completely at their mercy. If anyone ever does discover the simulation, they can simply patch the hole and restore from an earlier backup.
This isn’t about simulating atom by atom. It is just saying that there exist pieces of the universe that can’t be simulated.
If we find undecidable aspects of physics (like we have) then they must be part of this simulation. But it’s not possible to simulate those by any step by step program. Ergo, the universe cannot be a simulation.
The use of render optimization tricks has no effect on this.
You can’t even patch it like you said with wiping minds because it would require you to do the undecidable work which can’t be done by any algorithm.
You can actually add the statement itself as an axiom. The point of the theorem is that no finite number of additional axioms will completely eliminate all unprovable true statements from the theory.
Also, it relies on consistency of the formal system, because inconsistent system can prove anything. In fact, you can prove consistency of a formal system if and only if it is inconsistent.
In fact, any function, growing fast enough, will be non-recursive. And the same applies to various similar definitions, resulting in fast-growing hierarchy.
It should be noted that it doesn’t rule out analog simulations.
Thank you for this. My recent hyper fixation has lead me down the rabbit hole of non-algorithmic theories of consciousness with a specific focus on the theory mentioned in this proof. Would I be interpreting this proof correctly in asserting that if consciousness is non-algorithmic, this proof means AGI is impossible?
Bro our hyperfixations are slightly aligned, I was thrown into this rabbit hole because I was once again trying to build a formal symbolic language to describe conscious experience using qualia as the atomic formulae for the system. It’s also been giving me lots of fascinating insight and questions about the nature of thought and experience and philosophy in general.
Anyway to answer your question: yes and no.
If you require that the AGI be built using current architecture that is algorithmic then yes, I think the implication holds.
However, I think neuromorphic hardware is able to bypass this limitation. Continuous simultaneous processes interacting with each other are likely non-algorithmic. This is how our brains work. You can get some pretty discrete waves of thoughts through spiking neurons but the complexity arising from recurrence and the lack of discrete time steps makes me think systems built on complex neuromorphic hardware would not be algorithmic and therefore could also achieve AGI.
Good news: spiking neural nets are a bitch to prototype and we can’t train them fast like we can with ANNs so most “AI” is built on ANNs since we can easily do matrix math.
Tbf, I personally don’t think consciousness is necessarily non-algorithmic but that’s a different debate.
Edit: Oh wait, that means the research only proves that you just can’t simulate the universe on a Turing-machine-esque computer yeah?
As long as there are non-algorithmic parts to it, I think a system of some kind could still be producing our universe. I suppose this does mean that you probably can’t intentionally plan or predict the exact course of the “program” so it’s not really a “simulation” but still that does make me feel slightly disappointed in this research.
I love how in depth you went into this. And I agree with everything, except I’m not sure about neuromorphic computing.
I worked in neuromorphic computing for a while as a student. I don’t claim to be an expert though, I was just a tiny screw in a big research machine. But at least our lab never aimed for continuous computation, even if the underlying physics is continuous. Instead, the long-term goal was to have like five distinguishable states (instead of just two binary states). Enough for learning and potentially enough to make AI much faster, but still discrete. That’s my first point, I don’t think any one else is doing something different.
My second point is, no one could be doing something continuous in principle. Our brains don’t even really. Even if changes in a memory cell (or neuron) were induced atom by atom, those would still be discrete steps. Even if truly continuous changes were possible, you still couldn’t read out that information because of thermal noise. The tiny changes in current or whatever your observable is would just drown in noise. Instead you would have to define discrete ranges for read out.
Thirdly, could you explain, what exactly that non-algorithmic component is that would be added and how exactly it would be different from just noise and randomness? Because we work hard to avoid those. If it’s just randomness, our computers have that now. Every once in a while, a bit gets flipped by thermal noise or because it got hit by a cosmic particle. It happens so often, astronomers have to account for it when taking pictures and correct all the bad pixels.
I’m definitely not an expert on the topic, but I recently messed around with a creating a spiking neural net made of “leaky integrate and fire” (LIF) neurons. I had to do the integration numerically which was slow and not precise. However, hardware exists that does run every neuron continuously and in parallel.
LIF neurons don’t technically have a finite number of states because their voltage potential is continuous. Similarly, despite the fact they either fire or don’t fire, the synapses between the neurons also work with integration and a decay constant and hence are continuous.
This continuity means that neurons don’t fire at discreet time intervals and—coupled with the fact inputs are typically coded into spike chains with randomness—you get different behavior basically every time you turn the network on.
The curious part is that it can reliably categorize inputs and the fact that inputs are given some amount of noise leads to robust functionality. A paper I read was using a small, 2 layer net to recognize MNIST numbers and were able to remove 50% of their neurons after training and still have a 60% success rate on identifying the numbers.
Anyway, as for your second question, analog computing, including neuromorphic hardware, is continuous since electric current is necessarily continuous (electricity is a wave unfortunately). You are right that other things will add noise to this network, but changes in electric conductivity from heat and/or voltage fluctuations from electromagnetic interference are also both continuous.
Most importantly is that these networks—when not hardcoded—are constantly adapting their weights.
Spike Timing Dependent Plasticity (STDP) is, as it sounds, dependent on spike timing. The weights of synapses are incredibly sensitive to timing so if you have enough noise that a neuron fires before another, even by a very tiny amount, that change in timing changes which neuron is strengthened most. Those tiny changes will add up as the signals propagate through the net. Even for a small network, a amount of noise is likely to change its behavior significantly over enough time. And if you have any recurrence in the net, those tiny fluctuations might continually compound forever.
That is also the best answer I have for your third question. The non-algorithmic part is due to the fact no state of the machine can really be used to predict a future state of the machine because it is continuous and its behavior is heavily dependent on external inherent noise. Both the noise and the tiniest of changes from the continuity can create novel chaotic behavior.
You are right in saying that we can minimize the effects of noise; people have used SNNs to accurately mimic ANNs on neuromorphic hardware for faster compute times, but those networks do not have volatile weights and are built to not be chaotic. If they were non-algorithmic you wouldn’t be able to do gradient descent. The only way to train a truly non-algorithmic net would be to run it.
Anyway the main point of “non-algorithmic” is that you can’t compute it in discrete steps. You couldn’t build a typical computer that can fully simulate the behavior of the system because you’ll lose information if you try to encode a continuous signal discretely. Though I should note, continuity isn’t the only thing that makes something non computable since the busy beaver numbers are incomputable but still entirely discrete and very simple machines.
Theoretically, if a continuous extension of the busy beaver numbers existed, then it should be possible for a Liquid State Machine Neural Net to approximate that function. Meaning we could technically build an analog-computer capable of computing an uncomputable/undecidable problem.
Again, I really appreciate how deep you’ve gone into this. I haven’t dealt with these topics for many years and even then, I mostly dealt with the actual physical system of a single cell, not what you can build out of them. However I think that’s were the core of the issue lies anyway.
So you ran a simulation of those neurons?
LIF neurons can be physically implemented by combining classic MOSFETs with Redox cells. Like: Pt/Ta/TaOx with x<1. Or with Hafnium or Zirconia instead of Tantal.
The oxygen vacancies in the oxide form tiny conductive filaments few atoms think. While the I-V-curve is technically continuous, the number of different currents you can actually measure is limited. Shot noise even plays a significant role, where the discreetness of elections matters.
Under absolutely perfect conditions, you can maybe distinguish 300 states. On a chip at room temperature maybe 20 to 50. If you want to switch fast it’s 5 to 20.
That’s not continuous, it’s only quasi-continuous. It’s still cool, but not outside the mathematical scope of the theorems used in the paper.
And yes, continuity is not everything. You’re right about busy beavers being not computable in principle. But this applies to neuromorphic computing just the same.
But it doesn’t. No such extension can be meaningfully defined. If it could be calculated, then it could solve the halting problem. That’s impossible for purely logical reasons, independently of what you use for computation (a brain, neuromorphic computing, or anything else). Approximations would be incredibly slow, as the busy beaver function grows faster than any computable function.
I’m not sure I understand what you’re trying to explain with states. Do you mean measured externally? Or does part of the system discretize the signals? Or are you saying that while the driving fields may be continuous the molecular structure enforces some sort of granularity to the signals?
You seem to know much more than me on the hardware side.
The last time I looked at hardware I came across “ferroelectric synapses” which do the STDP learning. I think it had something to do with the way magnetic dipoles align when current is applied. I don’t think it requires measurement at any step and is continuous whether we have good enough hardware to measure those changes or not.
Yes. A very slow and very inaccurate one. I had to approximate the parallelization by setting a time step and then numerically compute the potentials of every neuron and synapse before moving on to the next time step and repeating.
I should state more clearly that I think it’s the temporal aspects of continuity that lead to undecidable behavior rather than just the number of states a neuron has.
Because each neuron in a neuromorphic net is running in parallel with all others, the signals produced by that neuron will not necessarily be in sync with the signals of any other neuron. As in, theoretically no two neurons are really ever firing at the exact same time.
As I previously stated, since timing is everything for STDP the time difference could be very significant when a neuron recieves multiple inputs in a short time window and fires.
An additional thing to note is that in more advanced models of neurons like the Hodgkin Huxley model, one can account for multiple synapses along the same dendritic tree which absolutely makes timing matter more since input to a synapse near the soma causes a localized change in ions that would stop the propagation of signals from the farther reaches of the dendrite. And if a far signal were to propagate to that synapse just prior to a an input signal, that signal might not be strong enough to get through.
Depending on how the hardware is build I’d imagine you could get similar effects from the nearness of electrical signals in a neurochip, where the local signaling causes non-trivial effects to the system.
Anyway, I’ve realized that I likely don’t know enough to say with real certainty whether spiking neural nets are incomputable or not. This is the most rigorous explanation of my thoughts I can write right now:
I think the problem is still uncomputable even with fully precise measurements simply due to the continuity and timing I mentioned before, but I guess I don’t have enough knowledge on the topic to prove it so perhaps I’m wrong.
I think someone else in this comment section mentioned analog-computing (which I thought included neuromorphic hardware) being capable of non-algorithmic computing so they might have more answers than me on the topic of what non-algorithmic means.
…would it? I don’t think you can derive a solution to the hard halting problem from knowing the longest finite runtime of a set of machines with n-states.
A function for the busy beaver numbers would only tell you that there exists some machine with n states that halts after a certain number of steps. It cannot be used to determine if any specific machine of that size halts or not, just that at least one does and it takes x number of steps.
Hell, it doesn’t even tell you what input would make a machine halt at that many steps only that there is at least one input for which you get that output.
So I think that means—if by some miracle you were able to construct an oracle for the busy beaver numbers—you wouldn’t really solve the halting problem yes? (Again wayy outside my expertise but still fascinating)
This is fun, I appreciate it. I’ve only made it as far down this rabbit hole to the part of building AGI on current architecture. Had no idea how much deeper this thing goes. This is the reason I was engaged in the first place, thanks for leading me down here.
I’m looking forward to that one when it comes up!