This is the third article in a series called Before I Forget, an exposition for the semi-layman of freaky high-level mathematics. Last time we talked about cardinal numbers: numbers which are used for counting the elements in very large sets. This time I’ll use the compactness theorem to introduce an infinity that you can use in ordinary arithmetic to get ordinary results. Remember limits from calculus? Turns out you don’t need ‘em to do calculus. We’ll see how this time.

This is the first article that will dive into the details of first-order logic. I’m not going to spend the time here to describe first-order logic: it is a deep subject with a rich vocabulary and lots of little nooks and crannys where faulty reasoning can hide. However, I highly recommend that *everyone* learn its principles and how to use it. It will change the way you think; it will endow you with the ability to approach certain situations with extreme precision, and to clear away bullshit that many authors throw at you. See the wikipedia page, including the external links section, if you’d like to know more. It’s not technically required to understand this article, but it is required to grok this article.

### Sexy mathematical models

I will begin by presenting the difference between a model and a set of sentences. Okay, so we have a sentence of first order logic endowed with one extra symbol: S (successor). We will use this to represent the natural numbers. The existence of the number 0 is expressed by the following sentence: ∃x ∀y S(y) ≠ x (there is an x which is not the successor of any number) (remember we’re in the natural numbers, there is no -1). So when we say 0, we really mean to introduce a new variable and that sentence to identify our 0. The important thing is that we can express it though. And now we may represent any natural number using successor and 0. 1 = S(0), 2 = S(S(0)), 3 = S(S(S(0))), etc.

A *model* is a mapping of these first-order logic symbols into “real things” (which are usually objects in set theory, which is just another theory, but pretend it’s real for now—it’s easier that way). So we have a universe of objects, and we might say those objects are in fact the actual ordinals < ω (finite ordinals), and we define S(x) to be the function (x+1) on those ordinals. This would give us a model of the natural numbers which behaves as we expect. We could also model these symbols in a totally “wrong” way, such as the universe being the set {0,1}, and S(x) = 1-x. This doesn’t obey most of the laws we expect the natural numbers to obey.

We have to restrict what kinds of models we can give these things, so that we know we have a model of what we want. So we say that a model models a set of sentences if all those sentences are true in the model. So, for example, we should say that a model of the natural numbers should obey ∃!x ∀y S(y) ≠ x (0 exists, as above) and ∀x ∀y (S(x) = S(y) ⇔ x = y) (the successor function is 1-1; i.e. the successors of different numbers are different). In fact, with these two axioms we are very, very close to having the natural numbers, but we’re not there yet. And we won’t get there, that’s not the goal here (if you’re interested, I have already treated this subject, but that article is extremely technical). So our model where the numbers are our finite ordinals with S(x) = x+1 *models* these two sentences, the {0,1} model does not.

What’s a model for this set of sentences: { ∀x pony(x), ∃x ¬pony(x) } (every object is a pony; there is an object which is not a pony)? There isn’t one, because those two sentences contradict each other. You will not be able to come up with any assignment for the universe and for the *pony* function (predicate, actually) where these sentences will both be true. Generally, a set of contradictory sentences *has no models*, or only *consistent* theories have models.

I will now state the first of Gödel’s theorems I will mention (there will be several more): the completeness theorem. It says that all consistent theores have models. So, taken with the statement in the last paragraph, a theory’s consistency is equivalent to it having a model.

### Constructing infinitesimals

I will now present a trivial-seeming theorem called the “compactness theorem”. Later on we will see that it is not at all trivial, and with its help we can construct some very nifty things. It says: a set of sentences is consistent if and only if every finite subset of them is consistent. Yeah, it’s about infinite sets of sentences (the theorem *is* trivial for finite sets of sentences). So what? Why do we care about an infinite set of sentences being consistent?

Here’s why: take the theory of real numbers, that is first-order logic endowed with +, × and <. Now add a constant symbol, say, *c*. It doesn’t represent anything, it will be assigned by our set of sentences. Then make a set of sentences as follows: first throw in Th(Re), the theory of real numbers, which is *every true sentence about the real numbers*. Then add to it the following infinitely many sentences regarding *c*:

- 0 < c
- c < 1
- c < 1/2
- c < 1/3
- c < 1/4
- …

Call this set of sentences about *c* C. Now let’s prove that every finite subset of Th(Re) ∪ C is consistent. Given a finite set S of sentences from our set, S = R’ ∪ C’, where R’ ⊆ Th(Re) and C’ ⊆ C, both finite (since S is finite). That is, S will be some set R’ of sentences from the set of true statements about the real numbers unioned together with some set C’ of sentences from C, our list of statements about *c*.

To show that it is consistent, we must make a model. So let’s just use the standard model of real numbers. Obviously R’ will be satisfied, since it’s just a set of true sentences about the real numbers. What’s left is to pick *c* so that all the sentences in C’ are satisfied. Well, C’ is finite, so just choose the greatest k where c < 1/k is a sentences mentioned in C’, and pick *c* to be 1/(k+1). This *c* is greater than 0 and less than all the things C’ (but not C as a whole) said it should be less than, so S = R’ ∪ C’ is consistent because we made a model for it.

### The Death of Limits; The Dawn of Infinitesimals

Now we apply the compactness theorem to find that Th(Re) ∪ C is itself consistent! What’s so amazing about that? Well, it’s consistent so it has a model, but it sure as hell isn’t the standard model, because what the hell is *c*? *c* is a number greater than 0 but less than every 1/n for positive integers n. There is no such thing as that in the standard real numbers; you can always find a 1/n smaller than any number you give me. The really cool thing about this is that we used the compactness theorem and constructed a bunch of little models which happened to be all exactly the same except for the choice of *c*, and the compactness theorem gave us a model which is wildly different from any of the ones we gave to it.

We call *c* an *infinitesimal*. Its existence is simply *consistent* with the theory of real numbers, not *proven* by that theory. That is to say, they neither must exist nor can’t exist. But what this means is that you can use infinitesimals in your every-day calculations, because they are consistent with the theory. Just don’t give an answer *as* an infinitesimal, because such things might not exist. But you’re safe if you use them in your intermediate calculations.

Since we threw in the entire theory of real numbers into our statements, any first-order statement which is true about real numbers is also true about infinitesimals. All normal mathematical laws apply, as long as they are expressible in first-order logic. There is something very peculiar about that: we have just *proved*, using the compactness theorem, that “x is an integer” is not a first-order statement (when given the reals, +, ×, and <). Why not? Because if it were, we could say ∀x (x > 0 ⇒ ∃ y (“y is an integer” ∧ 1/y < x)), which is not consistent with the existence of infinitesimals. But we just proved, fully and completely earlier in the article, that infinitesimals *were* consistent with the real numbers, so the only conclusion is that “x is an integer” must not be expressible in first-order logic.

Fun excercise: what sorts of numbers does the existence of a single infinitesimal predict? What happens when you square an infinitesimal? What happens when you divide it into 1? The sine of an infinitesimal? Remeber that *all* first-order statements that are true about the standard reals are true about the reals togehter with infinitesimals.

Another fun exericse: take another theory, like the natural numbers, or even some group theory, and see if you can use a compactness theorem argument similar to the one we used in this article to show the consistency of some nonstandard objects.