tinytheorems - about groups - rings - modules - models atom/rss

Exploration 2: Types

.

The goal of this exploration is to show how properties are expressed in model theory, and how we can derive the compactness theorem using such properties.


Currently we consider models to be some unordered jumble of elements that give meaning to constants, functions, and relations in a language LL.

But sometimes it’s useful to talk about a specific subset of those elements. For instance, if we have a model of the theory of integers, we might want to single out the elements of the model that signify prime integers.

Typically we do this by defining some formulas that fully describe said elements. In the prime number example, we might have ϕ(p)¬xy.x2y2x×y=p\phi(p)\equiv\lnot\exists x y\ldotp x\ge 2\land y\ge 2\land x\times y=p “a number is prime if there is no product of two integers 2\ge 2 equal to it”. Then every element aa in our model that satisfies ϕ(p)\phi(p) are the prime numbers.

In general, given ATA\models T we can write a set of formulas tpA(xˉ)tp_A(\bar{x}) consistent with the given theory TT, called a type over TT. This type singles out some subset of elements aˉA\bar{a}\subseteq A by saying that aˉ\bar{a} realizes tpAtp_A.

Recall that theories are made up of sentences, which are formulas without parameters. Intuitively, a type over TT is a parameterized theory, with the additional condition that it must be consistent with some existing theory TT (in the above case, the theory of integers). Types can also be unparameterized (if the set of parameters is empty) but typically they are parameterized.

In this section, we show how to compare two types.

Every element of a model has its own type. If we consider a single element aa of a model AA of some theory TT, we can define the type of aa over TT as every formula ϕ(x)\phi(x) (with one free variable xx) where ϕ(a)\phi(a) is true in AA. This type is guaranteed to include aa, so every element of a model has its own type tp(a)tp(a).

Sometimes a type is a superset of another type. For example, anything that is true about the set of prime numbers is true about the prime integer 55 in particular. That means the set of formulas true about the integer 55, tp(5)tp(5), contains the set of formulas true about the prime numbers, tpprimetp_{prime}. We say tp(5)tp(5) is stronger than tpprimetp_{prime}, or tpprimetp_{prime} is weaker than tp(5)tp(5), because tpprimetp(5)tp_{prime}\subseteq tp(5). So we have a partial ordering of types based on inclusion.

By definition of tp(5)tp(5), there aren’t any more formulas true about 55 that aren’t already in tp(5)tp(5). Much like theories can be complete (having ϕ\phi or ¬ϕ\lnot\phi for every sentence ϕ\phi in the language), tp(5)tp(5) is a complete type (having ϕ(xˉ)\phi(\bar{x}) or ¬ϕ(xˉ)\lnot\phi(\bar{x}) for every formula ϕ(xˉ)\phi(\bar{x}) in the language). Complete types are by definition the strongest types. We can’t add any more formulas ϕ(xˉ)\phi(\bar{x}) to it without making it inconsistent with the given theory.

In this section, we define the model of a theory by its strongest types.

Now let’s model the theory of integers with this concept of strongest types (complete types).

Getting the strongest types

The first step is to find all of the strongest types. Let’s start from an example type, like tpprimetp_{prime}, which encodes all facts about the prime numbers. Given such a type, we’d like to get all types stronger than it, such as tp(5)tp(5). Define a set containing tpprimetp_{prime} as well as every type stronger than tpprimetp_{prime}. We call this set a principal filter over tptp. In our case, the principal filter on tpprimetp_{prime} includes tpprimetp_{prime}, tp(5)tp(5), tp(3)tp(3), in fact all the tp(prime number)tp(\text{prime number}), and in fact every type that singles out any subset of the prime numbers.

The principal filter on complete types like tp(5)tp(5) contains only itself, {tp(5)}\{tp(5)\}. When a non-empty filter, like {tp(5)}\{tp(5)\}, can’t be extended with additional stronger types without making two types inconsistent with each other, we call it an ultrafilter, meaning it’s a filter that already contains all the strongest types.

We care about ultrafilters because while a filter might contain types that conflict (are inconsistent with each other), an ultrafilter necessarily cannot have conflicting types. By taking all the ultrafilters of the theory, we essentially have access to all the strongest types that don’t conflict with each other.

Showing that there is an ultrafilter for every filter

Since the set of all types is typically infinite, to take all the ultrafilters in the space of types requires applying the Axiom of Choice (in the form of Zorn’s Lemma).

To this end we prove the Ultrafilter lemma: every filter FF is contained in some ultrafilter. Proof:

This lemma shows that we can extend any filter to an ultrafilter.

Getting every ultrafilter via finite subsets of the theory

Next, we require that every finite subset of TT to have a model. Sound familiar? It’s the same requirement as the Compactness Theorem, which we are essentially proving by constructing a model of an arbitrary theory.

Now create a filter FF containing each finite subset of TT as a type. Extend this filter with every type that is stronger than some type already in FF, so that the resulting filter F+F^+ contains all the strongest types (complete types) consistent with TT. This might add types that are inconsistent with each other, so we use the Ultrafilter lemma to take the ultrafilter UU of F+F^+ to ensure that all types within UU agree on every formula ϕ\phi in the language.

Defining a model via an ultrafilter of types

Then, every complete 1-type (single-parameter type) p(x)p(x) in the ultrafilter UU defines some element apa_p in our model AA, so that apa_p realizes p(x)p(x) in our model.

Since our domain are elements that correspond to a type, we can identify every term in the language with a type in order to construct our model. In particular, we identify every term tt with the complete 1-type in UU containing ϕ(x)x=t\phi(x)\equiv x=t. The ultrafilter UU ensures that we can’t have two complete 1-types that disagree on what element tt is equal to, so this is well-defined.

This gives an interpretation to all the constant symbols (when tt is some constant cc) and implicitly requires us to lift all the function symbols to operate on our elements apa_p. This is well-defined, because our complete types in UU define the outcome of every possible f(xˉ)f(\bar{x}) via formulas like ϕ(y)y=f(xˉ)\phi(y)\equiv y=f(\bar{x}). We lift all the relation symbols similarly.

Because this construction is based on complete types consistent with TT, the resulting elements apa_p are defined so that every sentence in TT is true.

In the end we have essentially proved the compactness theorem again — we constructed a model for TT directly by treating finite subsets of TT as types.

< Back to category Exploration 2: Types (permalink)
Exploration 1: The canonical model of a theory Exploration 3: Homomorphism preservation theorems