Our world appeared computable, but it isn't, even if P=NP.
Ergo: Long Form Philosophy Lectures
His website also hosts a bunch more work as well as various lecture notes and exercises: https://timroughgarden.org/
Tim's lectures helped me a lot during my PhD when I was getting up to speed on this subject, and some of the more nuanced ways that computer scientists have worked with these broad algorithmic problems.
- The physics of the universe can be completely modeled as computation, and
- It's possible to pose undecidable problems about the way the universe unfolds
This is intrinsic to the idea of undecidability even for Turing machines, e.g. "we equate computation with the functioning of Turing machines, but there are real processes executable in Turing machines that are undecidable".
- You have a piece of software
- That software does in memory compute only
- The software does not touch any peripherals, networking, or any other external source which introduce unpredictability (x)
I'm convinced that somehow this can be solved/proven whether the execution will halt or not.
(x) The second you touch any external peripherals or networking, you're effectively asking the question of "If I phone my friend, will they pick up the phone?" -> to which the only answer is, "They'll pick it up, only if they pick it up/are there". You can't answer that question without trying it.
Am I missing the point? I'm sure you can introduce other edges even in the limited model above, e.g. where a memory stick stops responding or something; but all in if you have reliable kit and don't touch anything external, why can't this be solved?
Do you think that's a kind of tunnel vision? If the only thing you focus on is computation, you'll probably end up seeing computation everywhere - it became a way of seeing the world.
I want to push back a bit on this claim along two dimensions.
Imagine a physical Turing machine built out of atoms, gears, levers, and an electron parked on the read/write head and ask whether that electron ever crosses some fixed plane in space, which it does only when the machine enters its halt configuration. That's now a purely physical question about a trajectory (does this electron ever reach a certain target), yet answering it for the whole family of such machines is literally the halting problem, so there's a physical process that's undecidable.
Your examples about physical processes being undecidable are all basically just this... there examples of using reflections of light, or the flow of liquid, etc... and demonstrating that these physical processes in principle are sufficient to model a universal Turing machine.
And while it's fascinating that certain things you may not have expected can be used to model computation, it's misleading, or rather it's too strong of a claim to believe that there exist actual/real physical processes whose outcomes are undecidable. That's a subtle but very common misinterpretation of what undecidability is.
Undecidability, whether in physics or computer science, only applies to the infinitely broad class of a problem as a whole, it never applies to a specific instance of a problem. So it can never be the case that there's a certain configuration of reflections for which it's undecidable whether a ray of light reaches a target. Nor can it be the case that for a specific lattice of atoms, it's undecidable whether it has a spectral gap or not. It can only be the case that for the problem as a whole where the parameter space is entirely unbounded, there is no single algorithm that can decide if a ray of light reaches a specific target for all possible arbitrary (and infinitely many) configurations. Once you fix a specific system, then the undecidability goes away.
Not claiming that you are necessarily making this misconception, but I often see people misinterpret undecidability to mean that there exists a specific problem, like with specific inputs, where it's somehow impossible to know what the answer will be. Undecidability always requires an infinite family of instances, and it's a statement about the nonexistence of a single algorithm that correctly answers every instance in that family. It says nothing about any particular instance being unknowable/undecidable.
This is very helpful though, thank you.
Feel free to flag this comment if I get an answer. I do want to know.
Tim Roughgarden begins with a deceptively simple question: is there anything computers cannot do? To answer it, he takes us back to 1936, when Alan Turing, a decade before actual computers existed, laid the foundations of computer science as a byproduct of solving an obscure mathematical problem. Turing's paper introduced the theoretical machine that bears his name and proved something startling: there are problems no algorithm can ever solve, no matter how much time or computing power we throw at them. The halting problem, which asks whether a program will eventually stop running, is forever beyond the reach of any computer.
From this foundation, Roughgarden pivots to a more subtle question. Among the problems computers can solve, which ones can they solve quickly? He introduces us to algorithmic shortcuts, clever tricks that let programs avoid examining every possible solution. Your phone's map application builds on Dijkstra's algorithm to find the shortest route without checking every conceivable path. Karatsuba's multiplication method beats the grade-school approach we all learned. These shortcuts seem almost magical, and they raise a natural hope: perhaps such shortcuts exist for every problem.
That hope crashes against the Traveling Salesman Problem. Despite looking nearly identical to shortest-path routing, TSP has resisted every attempt to find a fast algorithm. Roughgarden explains how this puzzle led to the theory of NP-completeness, one of computer science's most surprising discoveries. Thousands of seemingly unrelated problems (scheduling, puzzle-solving, network optimization) turn out to be disguised versions of the same underlying challenge. If anyone finds a fast algorithm for any one of them, all become easy. If any one is truly hard, all are hard.
This brings us to P versus NP, the most important open question in computer science and one of the great unsolved problems in mathematics. Roughgarden traces its history through figures like Hilbert, Gödel, and von Neumann, showing how two separate research traditions, one focused on what algorithms can achieve, the other on their limitations, converged on this single question. The course concludes by examining what the answer might mean for cryptography, artificial intelligence, quantum computing, and our understanding of computation itself. No prior background in computer science or mathematics is required.
You can watch the lectures below, browse the chapter index, or watch on YouTube.

Tim Roughgarden is a Professor in the School of Mathematics at the Institute for Advanced Study. He previously spent seven years on the computer science faculty at Columbia and 15 years at Stanford. His main interests are in the connections between computer science and economics, and in the design, analysis, and limits of algorithms.
He is the author of Twenty Lectures on Algorithmic Game Theory, Beyond the Worst-Case Analysis of Algorithms, and the Algorithms Illuminated series, as well as numerous research articles. His work has been recognized with several major awards in theoretical computer science, including the ACM Grace Murray Hopper Award and the Gödel Prize.
My apologies, and I do appreciate your reply.
It is depressing though, writing feels like it's in part becoming a game of outpacing the latest LLM's idiosyncrasies so we can signal authenticity, which perversely, is achieved through using an LLM enough so that you can become familiar with its flavor of communication.
I actually laughed quite a lot to begin with, GPT models saying things like "...might look like P, but is NP wearing a hat and a lab coat..." and "...is a haunted house disguised as a git repository..."; but alas when you've heard them a million times everywhere it really starts to bite.