Prepared for Calude, Randomness and Complexity, from Leibniz to Chaitin

ALGORITHMIC INFORMATION THEORY
Some Recollections

Gregory Chaitin, 25 May 2007

Introduction

AIT is a theory that uses the idea of the computer, particularly the size of computer programs, to study the limits of knowledge, in other words, what we can know, and how. This theory can be traced back to Leibniz in 1686, and it features a place in pure mathematics where there is absolutely no structure, none at all, namely the bits of the halting probability Ω.

There are related bodies of work by other people going in other directions, but in my case the emphasis is on using the idea of algorithmic complexity to obtain incompleteness results. I became interested in this as a teenager and have worked on it ever since.

Let me tell you that story. History is extremely complicated, with many different points of view. What will make my account simple is the unity of purpose imposed on a field that is a personal creation, that has a central spine, that pulls a single thread. What did it feel like to do that? In fact, it's not something I did. It's as if the ideas wanted to be expressed through me.

It is an overwhelming experience to feel possessed by promising new ideas. This happened to me as a teenager, and I have spent the rest of my life trying to develop the ideas that flooded my mind then. These ideas were deep enough to merit 45 years of effort, and I feel that more work is still needed. There are many connections with crucial concepts in other fields: physics, biology, philosophy, theology, artificial intelligence... Let me try to remember what happened to me... The history of a person's life, that's just gossip. But the history of a person's ideas, that is real, that is important, that is where you can see creativity at work. That is where you can see new ideas springing into being.

AIT in a Nutshell

Gödel discovered incompleteness in 1931 using a version of the liar paradox, ``This statement is unprovable.'' I was fascinated by Gödel's work. I devoured Nagel and Newman, Gödel's Proof, when it was published in 1958.

I was also fascinated by computers, and by the computer as a mathematical concept. In 1936 Turing derived incompleteness from uncomputability. My work follows in Turing's footsteps, not Gödel's, but adds the idea of looking at the size of computer programs.

For example, let's call a program Q ``elegant'' if no program written in the same language that is smaller than Q produces the same output. Can we prove that individual programs are elegant? In general, no. Any given formal axiomatic system can only enable us to show that finitely many programs are elegant.

It's easy to see that this must be so. Just consider a program P that calculates the output of the first provably elegant program that is larger than P. P runs through all the possible proofs in the formal axiomatic system until it finds the first proof that an individual program Q larger than P is elegant, and then P runs Q and returns Q's output as its (P's) output.

If you assume that only true theorems can be proved in your formal axiomatic system, then P is too small to be able to produce the same output as Q. If P actually succeeds in finding the program Q, then we have a contradiction. Therefore Q is never found, which means that no program that is bigger than P can be proven to be elegant.

So how big is P? Well, it must include a big subroutine for running through all the possible proofs of the formal axiomatic system. The rest of P, the main program, is rather small; P is mostly that big subroutine. That's the key thing, to focus on the number of bits in that subroutine.

So let's define the algorithmic complexity of a formal axiomatic system to be the size in bits of the smallest program for running through all the proofs and producing all the theorems. Then we can state what we just proved like this: You can't prove that a program is elegant if its size is substantially larger than the algorithmic complexity of the formal axiomatic system that you are using.

Instead of saying ``a formal axiomatic system of algorithmic complexity N,'' I'll just say ``N bits of axioms.'' So if you have N bits of axioms, then no program larger than N + c bits in size can be proven to be elegant. That's the result we just proved.

A more sophisticated example is the number I call Ω, which is the halting probability of a computer running a program produced one bit at a time by repeatedly tossing a coin. Because it is a probability, this number has to be between zero and one. Imagine writing it out in binary:

Ω = .011100...

These bits are peculiar, they are irreducible mathematical information. This means that a formal axiomatic system with N bits of axioms can enable you to determine at most N + c bits of Ω. Essentially the only way to determine bits of Ω is to add that information directly to your axioms. Even though Ω is a single well-defined real number (once you fix the programming language), its bits have no structure, no pattern, none at all, they are irredundant, irreducible mathematical information.

In other words, the bits of Ω are mathematical facts that are true for no reason, no reason simpler than themselves.

So that's the basic idea, and those are my two favorite results, but the devil is in the details. You can spend your life on those details, and I did.

Chaitin Research Timeline

Challenges for the Future

Selected Publications by Chaitin

Non-Technical Books

Technical Books

Lecture Notes

Monographs

Collections of Papers