In 1931, a 25-year-old Austrian logician named Kurt Gödel published a paper that fundamentally changed our understanding of mathematics, computing, and the limits of mechanical reasoning. His work is considered one of the most important intellectual achievements of the 20th century. It’s also notoriously difficult to explain.
Most treatments of Gödel’s Incompleteness Theorems fall into two traps: they either drown readers in formal logic notation, making the core insight invisible behind symbolic machinery, or they wave their hands at “unprovable truths” without explaining how Gödel actually constructed them. The result is that most people come away thinking Gödel proved “math is broken” or “some things are unknowable” - both wrong.
But there’s another way to explain Gödel - through the vernacular logic of Jamaican patois, the rhythm of reggae, and the pedagogical principle of building intuition before formalism. The song “Wagwan” does something remarkable: it walks through Gödel’s entire argument, from the liar’s paradox to the incompleteness theorems, in a way that makes the logic feel obvious rather than mysterious.
This essay will teach Gödel’s theorem by teaching the song - unpacking each stanza to reveal the mathematical machinery underneath, the historical context that made it revolutionary, and its profound implications for computing and artificial intelligence.
Thesis: Gödel’s genius wasn’t just proving unprovable truths exist - it was inventing a code that let mathematical statements talk about themselves. Once you understand the encoding mechanism, everything else follows with inexorable logic.
Act I: The Paradox That Nobody Took Seriously
Wagwan
Consider dis sentence ya
Dis yah statement is false
So... it true?
If a true, dat mean it false
But if a false, den it haffi be true
Yuh see it?
Just by talkin 'bout itself
It mash up reason like it twis' back pon itself
A real paradox, bredda
So if it nah true, and it nah false
Wha it really be?What This Means: The Liar’s Paradox
The song opens with the liar’s paradox, one of the oldest logical puzzles in Western philosophy. The statement “This statement is false” creates a contradiction:
If the statement is true, then what it says is correct - meaning it must be false
If the statement is false, then what it says is incorrect - meaning it must be true
The logic loops infinitely. The statement cannot be consistently assigned a truth value.
Why Nobody Cared (Until Gödel)
The liar’s paradox dates back to at least the 6th century BCE. Epimenides of Crete allegedly said “All Cretans are liars” - creating a similar self-referential loop. Medieval logicians played with it. Bertrand Russell even used a version (Russell’s Paradox) to break naive set theory in 1901.
But here’s the key: everyone treated it as a flaw in language, not a flaw in logic itself.
The reasoning went like this: Natural language is messy, ambiguous, and allows nonsensical constructions. Mathematics, by contrast, is precise. Mathematical statements are about numbers and equations, not about themselves. So whatever weirdness exists in “This statement is false” is just linguistic trickery - it can’t touch the solid foundation of arithmetic.
The Critical Question
“So if it nah true, and it nah false / Wha it really be?”
This is not a rhetorical question. This is the question that drove early 20th-century mathematics. If we can construct paradoxical sentences in language, and mathematics is supposed to be the language of ultimate precision, then:
Can we make mathematics paradox-proof?
Can we build a formal system so rigorous that self-referential nonsense is impossible?
Can we prove that mathematics will never contradict itself?
Enter David Hilbert.
Interlude: Hilbert’s Dream (1900-1930)
Mi know it might sound like some fool-fool brain game
But round di early 1900s
One man name Kurt Gödel
Tek it serious—an' change di whole maths gameThe Crisis of Foundations
In 1900, David Hilbert - the most influential mathematician of his era - presented 23 unsolved problems that would define mathematics for the century. His second problem asked: Can we prove that arithmetic is consistent?
This wasn’t academic navel-gazing. Mathematics had been shaken by the discovery of paradoxes in set theory. Russell’s Paradox showed that naive set theory (the idea that any property defines a set) leads to contradictions. If the foundations of mathematics contained hidden contradictions, then everything built on them was suspect.
Hilbert’s response was the Formalist Program: rebuild mathematics as a purely mechanical symbol game.
The Formalist Vision
Hilbert’s plan had three components:
Axiomatization: Start with a small list of obviously true statements (axioms)
Mechanical rules: Define precise rules for deriving new statements from old ones
Completeness: Every true mathematical statement should be provable using these axioms and rules
Consistency: The system should never prove both a statement and its negation
If successful, mathematics would be:
Complete: Every truth is provable
Consistent: No contradictions exist
Decidable: There’s an algorithm to determine if any statement is true or false
At a 1930 conference in Königsberg, Hilbert famously declared: “Wir müssen wissen, wir werden wissen” (”We must know, we will know”).
At that same conference, a shy 24-year-old announced a result that would make Hilbert’s optimism tragically premature.
Act II: The Genius Discovers the Code
Him discovery
It show seh math have limits, yuh zee it
A proof now, dat a just a solid argument
Fi show why one number statement haffi be true
But fi build dem kinda argument
Yuh start wid some base—called axioms
Dem a di rule dem
Dat nuh need no more proof
Dem jus' stand firmWhat Gödel Was Working On
Kurt Gödel’s doctoral dissertation (1929) proved the completeness of first-order logic - showing that every logically valid statement in predicate logic can be proven. This sounds like it supports Hilbert’s dream.
But Gödel noticed something. First-order logic is too weak to express interesting mathematics. To do real arithmetic (addition, multiplication, basic properties of numbers), you need a stronger system.
So Gödel asked: What happens when we try to axiomatize arithmetic itself?
Understanding Axioms and Proofs
The song nails this:
Everything inna math
From di likkle one-two-three
To di biggest theory dem
All start from axiom dem
So if a statement bout numbers true
Yuh shoulda be able fi prove it
Using dem axiomsAxioms are the starting assumptions - statements accepted without proof:
Example: “For any number n, n + 0 = n”
Example: “If n = m and m = k, then n = k”
Proofs are chains of logical deduction from axioms:
Each step follows from previous steps by a rule of inference
The final statement is what you’ve proven
The Hilbert Assumption: Every true statement about numbers should be reachable by some chain of deductions from the axioms.
The Historical Confidence
From Ancient Greece till now
Mathematician been using dat method
Fi prove or disprove everything
Clean and neat, no doubtThis isn’t hyperbole. For 2,000+ years, the axiomatic method worked flawlessly:
Euclidean geometry: all from 5 axioms
Number theory: Euclid proved infinitely many primes using pure deduction
The method seemed universal
But when Gödel step inna di scene
Di math world did a wobble
Paradoxes start show up
An people start fretGödel was about to show that confidence was misplaced.
Act III: The Encoding - How Math Learns to Talk About Itself
Big name mathematicians
Did want fi prove seh math cyaan go wrong
But Gödel
Him never too sure
Matter of fact—him doubt if math
Even di right tool fi ask di big questionThe Core Problem
Remember the liar’s paradox? It works because language can reference itself. “This statement is false” talks about its own truth value.
But mathematical statements are about numbers:
“2 + 2 = 4”
“There are infinitely many primes”
“Every even number greater than 2 is the sum of two primes” (Goldbach’s conjecture)
None of these statements talk about themselves. They talk about numbers.
The barrier: How do you make a mathematical statement say “This statement is not provable” when mathematical statements can only talk about numbers?
The Genius Move: Gödel Numbering
Words
Dem easy fi tangle up pon demself
But numbers
Dem usually straight—true or false
Still... Gödel get one idea
Him turn equations into numbers—code dem
So now, yuh can write one big statement
An represent it with just one number
Crazy, right?This is the entire game. Everything else is just working out the consequences.
Gödel invented a way to encode formulas as numbers. Here’s how:
Step 1: Assign each symbol a number
Imagine you have a formal system for arithmetic with these symbols:
“0” → 1
“S” (successor function, means “add 1”) → 2
“+” → 3
“×” → 4
“=” → 5
“¬” (not) → 6
“∧” (and) → 7
“∨” (or) → 8
“∃” (there exists) → 9
“(” → 10
“)” → 11
“x” (variable) → 12
“y” (variable) → 13
Step 2: Encode formulas using prime factorization
Take the formula: 0 = 0
In symbols: 0, =, 0
Their symbol numbers: 1, 5, 1
Now encode as: 2¹ × 3⁵ × 5¹ = 2 × 243 × 5 = 2,430
The number 2,430 is the formula “0 = 0” encoded as a number.
Step 3: Encode proofs as sequences
A proof is just a list of formulas (each step in the argument). If:
Formula 1 has Gödel number: 2,430
Formula 2 has Gödel number: 8,195
Formula 3 has Gödel number: 1,024
Then the proof has Gödel number: 2²,⁴³⁰ × 3⁸,¹⁹⁵ × 5¹,⁰²⁴
This is an astronomical number, but it’s still just a number.
The Revolutionary Consequence
By doing dat, math start chat 'bout itself
Math get self-awareNow we can make statements about formulas and proofs using arithmetic.
Want to say “Formula F is provable”? That becomes: “There exists a number n such that n is the Gödel number of a valid proof of F”
This is a statement about numbers (does such an n exist?), but it means something about provability.
The barrier is broken. Mathematics can now talk about its own proofs.
Act IV: Constructing the Unprovable Truth
And him write
Dis statement cyaan be proved
As one equationBuilding the Gödel Sentence
Gödel now constructs a formula G that says (when decoded): “The formula with Gödel number g is not provable”
The twist: g is G’s own Gödel number.
So G says: “This formula is not provable.”
Let’s call our formal system F (say, Peano Arithmetic - the standard axioms for arithmetic).
The Logical Trap Snaps Shut
Now, dis different from di sentence we start wid
Cah math nuh play
It must be true or false
So which one it be?Here’s where we return to the liar’s paradox logic, but now in mathematics:
Case 1: Suppose F proves G
If F proves G, then G is a theorem of F
But G says “This statement is not provable in F”
So F has proven something false
Therefore F is inconsistent (it proves false things)
Case 2: Suppose F does not prove G
If F cannot prove G, then what G says is correct
G says “This statement is not provable”
And indeed, it’s not provable
Therefore G is true, but unprovable in F
If it false—dat mean it can be proved
But if it can be proved—den it true
But wait… if it true
An still cyaan prove it
Dat mean it true, but unprovableThe Conclusion
If we assume F is consistent (doesn’t prove false things), then:
G is true but cannot be proven in F.
This is Gödel’s First Incompleteness Theorem:
In any consistent formal system F that is strong enough to express basic arithmetic, there exist statements that are true but unprovable within F.
Madness
But genius same wayAct V: The Implications Cascade
Dis shake up di whole foundation
Math cyaan hold every truth
Some truth always ago hide
Just outta reachWhat Gödel Actually Proved (Technical Version)
First Incompleteness Theorem: If F is a consistent, effectively axiomatized formal system capable of expressing basic arithmetic (Robinson arithmetic or stronger), then F is incomplete - there exists a sentence expressible in F that cannot be proven or disproven in F.
Second Incompleteness Theorem: No such system F can prove its own consistency.
This second theorem is the real killer for Hilbert’s Program. Hilbert wanted to prove that mathematics is consistent. Gödel showed that any proof of consistency must use assumptions stronger than the system itself.
The Infinite Regress
Even if yuh try patch di gap
By adding more axioms
Guess wha?
More unprovable truth ago pop up
No matter how much yuh add
Unprovable truth still deh deh
It's Gödel pon top a Gödel
All di way downYou might think: “Fine, G is unprovable. Let’s just add G as a new axiom!”
But now you have a new system F’. And Gödel’s construction works on F’ too. There’s a new statement G’ that’s true but unprovable in F’.
Add G’ as an axiom? Now you have F’‘. And there’s a G’‘ unprovable in F’‘.
It never ends. You can’t reach completeness by adding axioms one at a time.
The Psychological Impact
It mash up plenty dreams
Of one perfect math world
Where every question get answer
Some mathematicians accept it
Some fight it
Some even try ignore di hole
Wha open up under demThe reaction was mixed:
John von Neumann (one of the greatest mathematicians of the century) immediately grasped the implications and basically stopped working on foundational logic - he saw it was a dead end.
Bertrand Russell was reportedly depressed by the result. His life’s work (Principia Mathematica) was an attempt to ground all mathematics in logic, and Gödel showed it couldn’t be completed.
David Hilbert never fully accepted the result. He continued working on proof theory, though his program was fundamentally undermined.
Many working mathematicians simply ignored it. They weren’t trying to prove everything, just specific theorems. Gödel’s result didn’t affect day-to-day mathematical practice.
But truth
More and more problems
Start show demself unprovable
People start worry
If dem whole career based pon smokeOver time, more independence results appeared:
The Continuum Hypothesis (1963, Paul Cohen) - unprovable in standard set theory
The Axiom of Choice - independent of ZF set theory
Various problems in group theory, topology, analysis
Unprovability became a normal feature of advanced mathematics.
Act VI: From Proofs to Programs - The Birth of Computer Science
But still, Gödel's work
Never just close doors
It open new one
Unprovable truths
Light di path fi early computersAlan Turing and the Halting Problem (1936)
Five years after Gödel’s theorem, Alan Turing was working on Hilbert’s Entscheidungsproblem (decision problem): Is there an algorithm that can determine whether any given mathematical statement is true or false?
Turing invented the Turing Machine - an abstract model of computation - to formalize what “algorithm” means. He then proved that certain problems are undecidable - no algorithm can solve them.
The most famous: The Halting Problem
Question: Given a program P and an input I, will P eventually halt (finish), or will it run forever?
Turing’s Proof (using Gödel’s diagonal method):
Assume there’s a program H that solves the halting problem
Build a new program D that:
Takes a program P as input
Runs H to check if P halts on itself
If H says “P halts”, then D loops forever
If H says “P loops”, then D halts
Now run D on itself
Contradiction: D halts if and only if D doesn’t halt
This is structurally identical to Gödel’s proof. The statement “This program doesn’t halt” creates the same logical trap as “This statement is not provable.”
The Deep Connection: Computation Is Proof
Gödel showed: Not all true statements are provable Turing showed: Not all computational questions are decidable
These are the same result in different domains:
A formal proof is a mechanical process (checking if each step follows from axioms)
A computer program is a mechanical process
Both are limited by the same fundamental boundaries
The Church-Turing Thesis: Anything computable by any mechanical process can be computed by a Turing Machine.
The Gödel-Turing Connection: The limits of proof and the limits of computation are deeply intertwined.
Act VII: Modern Implications - AI, Verification, and the Limits of Machines
An even today
Some genius still out deh
Try spot di truths
Yuh cyaan proveFormal Verification: Living with Gödel’s Limits
Modern software verification tools (Coq, Lean, Isabelle) are used to prove that programs are correct. They check that code matches its specification using formal logic.
But Gödel’s Second Incompleteness Theorem means: No verification system can prove its own soundness.
In practice, this means:
We build verification systems in layers
Each layer trusts the layer below
The bottom layer (the “trusted computing base”) is assumed correct
We can never eliminate all assumptions
Example: Proving an operating system kernel is secure requires:
A formal specification of security
A proof that the code matches the spec
A verified compiler to translate the code
A verified proof checker
Trust in the hardware
Trust in the physics
You can push uncertainty down the stack, but you can’t eliminate it.
The Halting Problem in Practice
Every developer has encountered Gödel’s limits without knowing it:
Problem: “Will this code have an infinite loop?”
If the halting problem were solvable, your IDE could always tell you. But it’s not. So we have:
Linters that catch some infinite loops (the obvious ones)
Timeout mechanisms (practical workarounds)
Testing and monitoring (empirical approaches)
We can’t solve the general problem, so we solve specific cases and build safety nets.
Large Language Models and Gödelian Blind Spots
Current AI systems like GPT-4, Claude, and others are essentially sophisticated pattern matchers. They’re trained on vast amounts of text and learn to predict what comes next.
From a Gödelian perspective:
An LLM is a finite formal system (it has a fixed architecture and weight set)
It can only generate outputs based on patterns in its training data
It has fundamental blind spots - problems it cannot solve because they require reasoning beyond pattern matching
Example blind spots:
Novel mathematical proofs that require insights not in training data
Causal reasoning (why X causes Y, not just that X correlates with Y)
True logical deduction vs. plausible-sounding argument
Self-verification (an LLM can’t reliably check its own correctness)
So yeah, some certainty get lost
But thanks to Gödel
We find beauty inna di unknown
Right inna di heart
Of truth itselfThe Lucas-Penrose Argument (and Why It Fails)
Some philosophers (John Lucas, Roger Penrose) have argued: “Humans can see that the Gödel sentence is true, but a machine running that formal system cannot. Therefore, human minds are not machines.”
The problem with this argument:
We might be inconsistent machines - If our “internal formal system” is inconsistent, we could “prove” anything, including false Gödel sentences
We might not know our own axioms - Maybe we operate on axioms we’re not consciously aware of, so we can’t construct our own Gödel sentence
We might use different axioms - When we recognize a Gödel sentence as true, we’re stepping outside the system and using meta-mathematical reasoning (essentially adopting stronger axioms)
Machines can do meta-reasoning too. We just build a stronger formal system that can prove what the weaker one couldn’t.
The real lesson: Gödel’s theorems apply equally to humans and machines. Both are limited by the formal systems they operate within.
Act VIII: What Gödel Does NOT Mean (Common Misconceptions)
Misconception 1: “Math is broken”
Some mathematicians accept it
Some fight it
Some even try ignore di hole
Wha open up under demThe truth: Mathematics works fine. 99.99% of mathematical practice is unaffected by Gödel’s theorems.
Calculus still works
Number theory still works
We can still prove new theorems
What changed is our philosophical understanding of what formal systems can do. We lost the dream of a single, complete foundation. We didn’t lose the ability to do mathematics.
Misconception 2: “Everything is undecidable”
Only some statements are undecidable in some formal systems. Most mathematical questions have clear answers.
Decidable: “Is 127 a prime number?” (Yes) Decidable: “Does this polynomial have integer solutions?” (Sometimes yes, sometimes no - but we can determine which) Undecidable: “Is this arbitrary program going to halt?” (General case)
Misconception 3: “Gödel proved objective truth doesn’t exist”
This is the postmodern misuse of Gödel, famously critiqued in Sokal and Bricmont’s Fashionable Nonsense.
Gödel showed: Formal provability ≠ Truth
There are truths (like the Gödel sentence) that exceed what a particular formal system can prove. This doesn’t mean truth is subjective or relative. It means formal systems are incomplete, not that truth is unknowable.
Gödel was a Platonist - he believed mathematical truths exist objectively, independent of our ability to prove them.
Misconception 4: “Humans are fundamentally different from machines”
As discussed, the Lucas-Penrose argument fails. Gödel’s theorems limit any sufficiently powerful formal system, biological or silicon.
Conclusion: The Code That Changed Everything
Him build a code fi numbers talk 'bout numbers
Fi math start reason wid itself
An' den... boom
Him write a ting weh seh
This statement cyaan be proved
If it false—den it get proved
But if it get proved—den it cyaan false
So it haffi be true
But still... unprovable
Dat mash up di whole idea seh math can hold all truth
Cause no matter how much yuh add
New truths always a hide outta reach
It deep
It paradox
It Gödel
All di way downThe Central Insight
Gödel’s genius was recognizing that encoding is everything.
By turning formulas into numbers, he:
Enabled mathematics to talk about itself
Imported the liar’s paradox into arithmetic
Revealed inherent limits in formal reasoning
Laid the groundwork for computability theory
Showed that truth transcends proof
Why the Song Works
“Wagwan” succeeds as an explanation because it follows Gödel’s own method:
Concrete before abstract: Start with a simple paradox everyone can grasp Build the machinery: Show how encoding works Apply the machinery: Construct the Gödel sentence Work out the consequences: Incompleteness, undecidability, limits
The reggae rhythm reinforces the logical flow. Each stanza is a step in the argument. The repetition (”It’s Gödel pon top a Gödel / All di way down”) mirrors the infinite regress of unprovability.
Lessons for AI Education
This approach - teaching through vernacular, rhythm, and intuition before formalism - is exactly what’s needed for AI literacy:
Start where learners are: Don’t assume mathematical sophistication
Build intuition first: Make the logic feel obvious before introducing notation
Use analogies and encoding: Show how complex ideas can be encoded in simpler domains
Connect to real applications: Show why these abstract ideas matter for software, AI, verification
Your “Learn AI by Doing AI” philosophy applies here: Learn Gödel by Encoding Gödel.
Have students actually implement Gödel numbering in Python. Let them encode formulas, build the Gödel sentence, see the self-reference emerge. The abstraction becomes concrete.
Final Thoughts
Gödel didn’t destroy mathematics. He revealed its true nature - richer and stranger than Hilbert imagined.
So yeah, some certainty get lost
But thanks to Gödel
We find beauty inna di unknown
Right inna di heart
Of truth itselfThe unprovable truths aren’t a bug. They’re a feature of any system powerful enough to be interesting.
In mathematics, we map the boundaries. In computing, we work within the limits. In AI, we build systems that approximate intelligence while accepting they’ll have blind spots.
And sometimes, the clearest explanation comes not from a textbook, but from a reggae song that teaches you to see the paradox, understand the code, and appreciate the beauty in what we can never fully prove.
Wagwan, Gödel.
<iframe data-testid=”embed-iframe” style=”border-radius:12px” src=”
width=”100%” height=”352” frameBorder=”0” allowfullscreen=”“ allow=”autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture” loading=”lazy”></iframe>




