How Physics Peels Back the Curtain and Reveals the “Source Code” of the Universe (or at Least Its Functional Equivalent): A 21st-Century Reply to David Hume
David Hume and Skepticism About Causation
Yesterday, in my Introduction to Philosophy class, I was teaching David Hume’s critique of causation as causal necessity—as a necessary connection between events (or “connexion,” as David Hume calls it in An Enquiry Concerning Human Understanding), the prior of which we commonly call a “cause” and the latter of which we commonly call an “effect.” According to David Hume, we never see the link or the tie—the nexus (hence the spelling of “connexion”)—between a supposed cause that binds it to its supposed effect, logically necessitating that the one event follows from the other.
But is such radical skepticism about causation, and about our ability to discern the laws of nature from mere observation, justified in light of the ability of modern physicists to reverse-engineer the mathematical underpinnings of the universe, just as a programer reverse-engineers the source code of a video game or computer program?
Computer Programming (a.k.a. “Coding”) and the Concept of “Source Code”
I’ve dabbled a bit in programming (what is sometimes now called “coding”), a skill that comes fairly easily to me given my background as a philosopher, logician, and technical content developer and producer—a skill that made me a good fit for the role of Senior Learning Design Author for logic and philosophy at Aplia (Cengage Learning) where I used variables to randomize online learning materials for logic in an XML-based content-authoring environment (Arbortext Editor).
Given that programming and coding, along with educational content development, educational game development, and video game development in general are among my interests, I’ve dabbled a bit in programming a few of my own educational widgets and very simple video games. Here are a couple of examples, along with the source code for each:
“Graphics Match” Game
“Graphics Match” Game (Port of “Graphics Match” for the TI-99/4A Home Computer from my childhood, a simple but fun and retro slot machine game originally published in the TI-99/4A User’s Reference Guide)
Interactive Logic Venn Diagram for Categorical Propositions
Interactive Number Line for Subtraction
To create each of these programs, and the user experiences of interacting with them, I had to write the source code, defining the variables, equations, functions, inputs and outputs, and control mechanism that would dictate how the program runs.
Like all programs, if I as the programmer have done my job right, the program should run according to plan, deterministically and with no bugs, no unexpected behaviors, and no surprises. And yet, to the player who first encounters one of these programs, such as my port of “Graphics Match” above, the experience is novel, even surprising, causing a pleasing little hit of dopamine every time you receive a jackpot payout in the game.
The experience of playing the game may seem random and unpredictable, but in reality the programmer who developed the source code behind the scenes is the puppet-master pulling the strings and leading you from one step in the game to the next.
The Wizard of Oz: Peeling Back the Curtain to Reveal the Wizard
This wizard-like power harkens back to The Wizard of Oz, in which the protagonists—Dorothy and her companions of fur, straw, and tin—are finally able to peel back the curtain and see the Wizard, thereby revealing the seemingly magical phenomena they’ve been encountering in Oz for what they are, mere phantasms and tricks, seeming to Dorothy as novel, magical, or inexplicable but really being governed by the operations of the Wizard and his mechanisms and apparatus, which themselves are presumably governed by the Oz equivalent of “source code,” like a book of magic tricks with step-by-step instructions for producing each illusion.
Source Code and Reverse-Engineering
Our inability to peel back the curtain to reveal the “source code” of the universe directly is perhaps the main reason that David Hume is such a skeptic about our understanding of causal necessity. As a programmer I have direct access to the source code of my own program. And even if I don’t have direct access to the source code, I can begin to reverse-engineer a program and reconstruct its source code, or at least its logical and functional equivalent, from the operations of the program itself. This is essentially what I did in porting “Graphics Match” from its original TI-BASIC source code to p5.js JavaScript source code: I created a functional equivalent of the game that runs identically to the original game, but with a few of my own updates and modifications for usability on touch screens and mobile devices.
Even if I didn’t have direct access to the original source code, I would have been able to determine the principle mathematical operations of the game: which combinations of slot machine symbols produce which penalties or payouts, which combinations produce a jackpot, the structure of the main game loop, its boundary conditions, and so on. While I might never be fully confident that I’ve exhausted every feature or every possible combination in the game, I can be confident about the mathematical underpinnings of the portion of the game I have been able to reconstruct, even from mere observation and experience, merely by playing the game repeatedly, feeding the game different inputs to see the outcome, and testing its boundary conditions.
Contemporary Physics: Revealing (or Reverse Engineering!) the “Source Code” of the Universe
At least since Pythagoras, philosophers and scientists, the intellectual cousins and descendants of philosophers—from Copernicus, Newton, and Galileo to today’s theoretical physicists and cosmologists—have realized that the universe has mathematical underpinnings. The operations of the universe are not truly random but are, especially in classical physics but also even in quantum physics with its basis in probability—essentially mathematical in nature, and thus are predictable. Peeling back the curtain to reveal the Wizard is exactly what physicists seem to be able to do, in some sense—revealing the mathematical underpinnings of the universe—the universe’s “source code,” by analogy, if you will—along with the mathematical equations, laws of nature (causal laws), and fundamental constants by which the universe operates (again, ether completely deterministically or probabilistically, depending on which interpretation of quantum mechanics eventually wins out).
If it’s possible for a programmer to reverse-engineer a game, whether something as simple as “Graphics Match” or something massively more complex such as World of Warcraft (which, incidentally, had essentially been accomplished by those who operated unsanctioned and unauthorized private “Vanilla” World of Warcraft servers before they were finally shut down by Blizzard Entertainment and before the company itself took up the challenge of recreating the original version of World of Warcraft for what is now known as “World of Warcraft Classic”), then I fail to see why it’s impossible for physicists to reverse engineer the universe to reveal its “source code”—its mathematical and causal underpinnings—in exactly the same way, and in a way that isn’t subject to the kind of skepticism about causal necessity for which David Hume is famously known. Revealing the mathematical underpinnings and operations of the universe is what physicists do, almost by definition in the modern and contemporary sense of “physicist” (the origin of which, again, can be traced at least to Pythagoras).
How Physics Overcomes David Hume’s Skepticism about Causal Necessity
So if this is the entire domain of physics, revealing the mathematical and causal underpinnings of the universe, and if physicists have at least as much certainty about the mathematical equations and relationships they reveal in the course of their activities as physicists a a software engineer has about the reverse-engineered source code for some ported program, it seems that David Hume’s skepticism about causal necessity doesn’t do justice to this ability—of either the computer programmer or the physicist. Even if scientists can never be fully confident that they’ve exhausted or revealed every law of nature—every single line of the universe’s original “source code,” continuing the analogy—it seems that they can, in fact, be fully certain about the mathematical relationships and equations that they have been able to reveal.
Even if we grant that science “progresses” not linearly but via the kinds of paradigm shifts that Thomas Kuhn famously described in The Structure of Scientific Revolutions, it cannot be denied that some mathematical relationships and equations—some bits of reverse engineered “source code” of the universe—do a better job of describing the motion of objects and entities in the universe, and the causal relationship between them, than others. In other words, physicists can provide better or worse mathematical descriptions of the universe—a better or worse “port” of the universe game, still furthering the analogy to programming—regardless of the paradigmatic or theoretical underpinnings of those mathematical descriptions and equations.
Just as the source code for a two different ports of a video game into two very different programming languages will have different lines of code based on the quirks of each language, even if the two ports are functionally equivalent and contain many of the same mathematical underpinnings—i.e., similar variables, functions, and equations—and yield the same outputs from a given set of inputs, two wildly different theories in physics (say, newtonian physics and relativistic physics) can yield functionally equivalent mathematical descriptions and predictions of physical events (i.e. the same inputs and outputs). This tells me Hume’s skepticism about the physicist’s ability to reveal genuine laws of nature, the mathematical underpinnings of causal relationships, is ultimately unjustified.
Conclusion
David Hume may be right that we can never directly peel back the curtain to reveal the original “source code” of the universe—”the mind of God,” as Einstein once called it—or directly perceive the connexion between cause and effect. Physicists, can, however, reverse engineer the workings and operations of the universe, just as a software engineer reverse engineers a computer program to reconstruct it from its visible operations—or to port it to a different programming language. Even if the ontology or the theoretical paradigm of any particular theory of physics is ultimately incorrect, physicists can at least reliably recreate (reveal, discover, invent) the mathematical equations and rules that govern the operations of the universe, at least in part—perhaps only their functional equivalents, but with complete confidence in the logical and mathematical equivalence between the mathematical relationships and equations they’ve discovered and at least some of the corresponding lines in the original “source code” of the universe.