What Is Gödel's Incompleteness Theorem in Simple Terms?

Is there a true statement about numbers that no proof can ever reach? Gödel found one, and building it is really just one very clever trick of self-reference. Here's how it works, without the heavy notation.

By Petrus Sheya

July 19, 2026 · 5 min read

Is there a true statement about numbers that no proof will ever reach?

Sounds like a trick question. Mathematics is supposed to be the one place where every true thing has a proof, given enough patience. Just grind through the logic, symbol by symbol, and eventually you get there.

Kurt Gödel showed that isn't true. In 1931, he proved that any formal system strong enough to describe basic arithmetic contains statements that are true but impossible to prove inside that system. Not hard to prove. Not unproven yet. Impossible, forever, no matter how the system gets patched.

That sounds like magic. It isn't. It's one very precise trick, and once you see the trick, the whole theorem falls into place.


Meet the robot that checks every proof

Imagine a robot with one job: generate every possible string of mathematical symbols, in order of length, and check each one to see if it's a valid proof of something. Short strings first, then longer ones, forever.

Whenever the robot finds a valid proof of some statement, it writes that statement on a big whiteboard: proved. Give the robot enough time, and it will eventually write down every statement that has a proof. That's what we mean by a "formal system", a fixed set of starting rules, plus a robot mechanically grinding through them.

Here's the question Gödel asked: will the robot eventually prove every true statement about numbers? To answer that, a statement first needs a way to talk about the robot itself, including statements about proofs. And for that, we need a strange little tool: turning sentences into numbers.


Can a sentence become a number?

Here's the move that makes everything else possible. We'll use a tiny alphabet: 0 for zero, S for "the next number after" (so S0 means one, SS0 means two), plus +, =, and parentheses.

Take any string built from that alphabet, like 0=0 or S0=S0, and give each symbol its own code number. Then use those codes as exponents on the first few primes, 2,3,5,7,11...2, 3, 5, 7, 11..., and multiply everything together.

Go¨del number=2c1×3c2×5c3×\text{Gödel number} = 2^{c_1} \times 3^{c_2} \times 5^{c_3} \times \cdots

Why primes? Because prime factorization is unique. Every number breaks down into its prime factors in exactly one way, so this single, ordinary number can always be taken apart again to recover the exact sequence of symbols it came from. No two different formulas ever produce the same number.

Pick a formula below and watch it fold into one number.

Pick a formula. Hover a symbol to see the prime power it turns into.

021=34051multiply every term together...
Symbols3
Godel number810

Notice how fast that number grows, even for a formula this short. That's fine, the size doesn't matter. What matters is that every formula, and every proof, can be represented as an ordinary number, and numbers are exactly what arithmetic already knows how to talk about. A statement about numbers can now be a statement about formulas. Including statements about itself.


Can a sentence talk about itself?

...and here's where it gets interesting. If formulas are numbers, a formula can have some other formula's number plugged into it, the same way you'd plug x=3x=3 into x+1x+1. Nothing stops you from plugging a formula's own number into itself.

Watch this construction happen step by step.

Step through the construction. Watch the loop close on the last step.

encodesubstituteP(x)?

Start with P(x): "the robot will never check off the sentence numbered x."

StageThe open sentence

Follow the loop all the way around. We start with a sentence about "the robot will never check off the sentence numbered xx." We find that sentence's own number. We plug the number back into the blank. And the resulting sentence ends up talking about its own Gödel number, the one that belongs to itself.

Call this finished sentence GG. In plain English, GG says: "the robot will never check off this very sentence." It's the same move as "this sentence is false", except instead of truth, it's built entirely out of provability and arithmetic, precise enough to survive being nothing but a statement about numbers.


So does the robot ever prove G?

Now for the payoff. Suppose the robot does eventually check off GG. That means the robot has proved a statement that says "the robot will never check off this statement." A robot that proves its own failure like that is broken, it's proving something false. So if we trust the robot to only prove true things (that's what "consistent" means), the robot can never check off GG.

But wait. That's exactly what GG claims: "the robot will never check off this sentence." We just showed that's true. So GG is a true statement, sitting right there, and the robot will search forever without ever reaching it.

Press play and watch the robot work through longer and longer proofs. Ordinary statements light up sooner or later. G never does.

0=0unresolved1+1=2unresolvedS0+S0=SS0unresolved∃x(x+x=SS0)unresolveda long theoremunresolveda harder theoremunresolvedGnever proved
Proofs checked0
Statements proved0 / 6
Is G proved?No

Let it run. Ordinary statements get checked off sooner or later, some quick, some agonizingly slow. GG never lights up, no matter how long the search runs. Not because the robot is slow. Because GG was built, on purpose, to sit outside the reach of any proof this system can produce.


Can we just patch the gap?

Reasonable question. If GG is the problem, why not just add GG as a new starting rule, hand it directly to the robot, and move on?

You can. Watch what happens.

Each ring is a bigger system. Every ring keeps exactly one gap, no matter how many rings you add.

S0
SystemS0
Holes patched0
Holes remaining1

Add GG as an axiom and you get a new, stronger system. Run the exact same trick on this new system, the one from the last two sections, and it builds a brand new sentence, G1G_1, true but unprovable in the new system. Patch that one, and G2G_2 appears. The construction doesn't care how many rules you add. As long as the system is strong enough for basic arithmetic and consistent enough to trust, it can always build one more sentence about itself that it can't reach.

That's the incompleteness in Gödel's incompleteness theorem. It isn't a temporary gap waiting to be filled. It's structural.


The short version

Any formal system strong enough for arithmetic can encode its own sentences as numbers, using nothing but prime factorization. That trick lets us build a sentence that talks about its own provability, the same way "this sentence is false" talks about its own truth. Gödel's sentence GG says "the robot running this system will never check me off", and if the system is consistent, that has to be true, so the robot never does. Add GG as a new rule and the same trick builds another one just like it. Forever.

Mathematics isn't broken. It's just bigger than any single, fixed set of rules can ever capture.