Category Archives: Math

Set Theory Jottings 32. Forcing: The Basic Lemmas

Prev TOC Next

Here are the key facts about forcing, as we’ve defined it. As before, φ is a closed formula in ℒ(PA+G).

Extension Lemma:
If p*φ and qp, then q*φ.
Truth Lemma:
If A is generic, then A*φ iff (ℕ,A)⊧φ.
Empty Condition Lemma:
If φ belongs to ℒ(PA) (no G’s), then ∅⊩*φ iff ℕ⊧φ.
Definability Lemma:
The relation p*φ is implicitly definable, and hence hyperarithmetic. (Of course, the pairs (p,φ) have to be suitably coded.) Also, forcing for φ of complexity depth ≤d is arithmetic, for every d.
Existence Lemma:
There exists a generic set satisfying any given condition p0.

The proofs of the first three lemmas amount to turning the “complexity induction” crank, with an occasional wrinkle. I repeat the inductive clauses for convenience.

  • p* s=t ↔ ℕ⊧s=t, where s and t are closed terms in ℒ(PA).
  • p* G(n) ↔ p(n)=1.
  • p* α∨β ↔ p*α or p*β.
  • p* ¬φ ↔ there is no qp with q*φ.
  • p*xφ(x) ↔ for some n∈ℕ, p*φ(n).

Start with the Extension Lemma. Suppose qp. Atomic sentences come in two varieties, s=t and G(n), and clauses (1) and (2) of the definition of ⊩* dispose of both cases immediately. For ¬φ, “no extension of p does foo” implies “no extension of q does foo” because all extensions of q are extensions of p. Clause (3) makes short work of the case α∨β, and clause (5) of the case ∃xφ(x).

Clause (4) and the Extension Lemma make a nice couple. Clause (4) says that p*¬φ is equivalent to “no extension of p strongly forces φ’’, while the Extension Lemma says that p*φ is equivalent to “every extension of p strongly forces φ’’. If some but not all extensions of p strongly force φ, then p strongly forces neither φ nor its negation. Contrast this with the definition of a generic set.

The Extension Lemma also tells us that we cannot have both A*φ and A*¬φ, for any subset A (generic or not). Proof: if not, then we have p1*φ and p2*¬φ for conditions p1 and p2 both satisfied by A. But p1 and p2 have a common extension, say q, so we would have q*φ and q*¬φ. As we’ve seen, this can’t happen.

Now combine the previous paragraph with the definition of generic, and we have the important fact:

For a generic A, A*¬φ iff not A*φ.

This makes the proof of Truth Lemma entirely routine. For the negation case:

A*¬φ ⇔ not A*φ ⇔ not (ℕ,A)⊧φ ⇔ (ℕ,A)⊧¬φ

with the middle ⇔ being the inductive hypothesis. The other cases are handled in the same manner.

Next, the Empty Condition Lemma. The only case not utterly trivial is negation. The key is an “all or nothing” property for φ in ℒ(PA): either all conditions strongly force φ, or no conditions strongly force φ. Given this, the induction is routine. The proof of the all or nothing property is itself an induction. Only negation calls for attention. Observe that if all conditions strongly force φ, then no conditions strongly force ¬φ, and if no conditions strongly force φ, then all conditions strongly force ¬φ. So the all or nothing property for φ entails it for ¬φ.

The Definability Lemma: The clauses of the definition of ⊩* lend themselves to an implicit definition of the class {〈⌜p⌝,⌜φ⌝〉: p*φ}. Here 〈,〉 is a recursive pairing function and ⌜p⌝ is the code for the condition as described in post 30 (length plus binary). It’s completely analogous to the implicit definition for truth we gave in post 29 (using the predicate letter T): we add a new predicate forces and write out the clauses in the augmented language. We can also write a definition forcesd in ℒ(PA) of forcing for all closed φ in ℒ(PA)+G of depth (or degree) less than or equal to d. Here you first inductively define forcesd+1 in terms of forcesd. Then you repeatedly expand things out. So, expanding all occurrence of  forcesd in forcesd+1 leaves you with a definition using only forcesd−1, and so on down. See the Logic Notes for more details (the definition of trued).

Finally, the Existence Lemma. Enumerate all the closed formulas of ℒ(PA)+G, say {φn:n=1,2,…}. We define a sequence of conditions p0p1p2≤… so that for each n>0, either pn*φn or pn*¬φn. This is easy: p0 is given to us. For pn+1, either pn*¬φn+1 or not (pn*¬φn+1); in the latter case, some extension qpn strongly forces φn+1. In the first case let pn+1=pn, in the second let pn+1 be the first extension of pn that strongly forces φn+1. (For “first”, we can use any definable linear ordering of the conditions; the easiest is just to order them by their codes.) Now let A=⋃pn, a set satisfying all the conditions. (Fill out the bitstring for A with trailing 0’s in case the pn’s have an upper bound in length—but this can’t happen, see next paragraph.) Obviously A is generic and satisfies p0.

If the pn’s did have an upper length bound, then our construction would give a generic finite set A. Say all elements of A are less than n0, so (ℕ,A)⊧∀n[G(n)→n<n0]. By the Truth Lemma, some p*n[G(n)→n<n0]. Now extend p to a q with a 1 in a spot after n0, i.e., q(n1)=1 with n1>n0. By the Extension Lemma q*n[G(n)→n<n0]. Now use the Existence Lemma with p0=q, constructing a generic set Bq. By the Truth Lemma applied to B, (ℕ,B)⊧∀n[G(n)→n<n0]. So all elements of B are less than n0, but n1 is an element of B, contradiction.

This is a typical use of the lemmas. Exercise: adapt the argument to show that any generic set contains and omits an infinite number of primes.

Prev TOC Next

Leave a comment

Filed under Logic, Set Theory

Set Theory Jottings 31. Forcing: Intuition and Basic Definitions

Prev TOC Next

We start by giving a rough idea of Cohen’s notion of a generic set (in the PA setting); Feferman’s and Addison’s sets are generic. A generic set is patternless or random1; it has no special properties. For example, the set of primes is not generic, nor is any set containing the set of primes—that’s a discernable pattern, even though it doesn’t determine the whole set. Likewise, if a set contains no primes then it’s not generic. The “least specific” thing we can say about G⊆ℕ, vis-a-vis primes, is that it contains an infinite number and omits an infinite number. So this should be true for any “generic” set. Perhaps you can already see how a generic set will be “slippery”, eluding various kinds of definability.

A generic G⊆ℕ can’t literally have no properties. For example, either 0∈G or 0∉G, and likewise for any other number n. A condition is a consistent conjunction of a finite number of statements, each either nG or nG for some n∈ℕ. (For example, 0∈G ∧ 17∈G ∧ 221∉G. This is the “formula” definition of condition. “Consistent” just means we don’t have both nG and nG in the same condition.) Suppose G satisfies a condition p. Cohen’s methods enable us to say exactly which statements about G should hold, given that G is “generic” and satisfies p. Cohen used the (initially vague) notion of “generic” to inspire the notion of “forcing”: if p forces φ, then φ holds for all generic G satisfying p.

The motivation runs from genericity to forcing, but the formal treatment takes the reverse route: first an inductive definition of forcing, then a definition of generic set in terms of forcing, and finally some lemmas justifying the initial intuition.

Now let’s nail down a few details. First, a matter of terminology. Shortly after Cohen’s forcing appeared, Feferman introduced a variation he called weak forcing. The one-way implication mentioned above becomes an equivalence for weak forcing: p weakly forces φ if and only if φ holds for all generic G satisfying p. For this reason, most authors nowadays just say “forcing” for “weak forcing”. Cohen’s version is, naturally, called “strong forcing”. The notation ⊩* is used for strong forcing, ⊩ for weak forcing. I will follow this convention. We’ll define (weak) forcing in a later post. (The strong/weak distinction is independent of the ZF/PA difference.) As it happens, the most natural treatment first defines strong forcing, proves theorems about it, and then defines weak forcing as a derived concept.

We let ℒ(PA+G) be the language of PA augmented with one new unary predicate G. We write (ℕ,A) for the structure consisting of the standard model (ℕ,0,1,+,·,<) of PA, plus A⊆ℕ interpreting G. We let p,q,r stand for conditions. For our present purposes, conditions as finite bitstrings works better than the “formula” notion. Some notations: pq and qp mean that q extends (or equals) p. Ap means that p is an initial segment of A (regarding A as an infinite bitstring). We let ∅ stand for the empty condition (i.e., the null string).

One difference between the bitstring and formula notions: if Ap1,p2, then with the bitstring notion, either p1p2 or p2p1. With the formula notion, we are assured only that p1 and p2 have a common extension q satisfied by A. We will avoid using this special fact about the bitstring notion, to keep certain arguments more general.

We’ll write p*φ to mean that p strongly forces φ; here φ is a closed formula in ℒ(PA+G). The definition of p*φ is inductive, as I mentioned. A key aspect of the definition: ∃ is regarded as basic, with ∀ just an abbreviation. Likewise, ∨ is basic with ∧ an abbreviation.

  1. p* s=t ↔ ℕ⊧s=t, where s and t are closed terms in ℒ(PA).
  2. p* G(n) ↔ p(n)=1.
  3. p* α∨β ↔ p*α or p*β.
  4. p* ¬φ ↔ there is no qp with q*φ.
  5. p*xφ(x) ↔ for some n∈ℕ, p*φ(n).

In (2) and (5), we are being a bit sloppy about the distinction between n∈ℕ and the numeral representing it in ℒ(PA).

Let’s talk about clause (4), the definition of p*¬φ. Cohen originally put everything into prenex normal form. Dana Scott later suggested clause (4), simplifying the development. What is the intuitive justification for (4)? We want to have p*φ precisely when (ℕ,A)⊧φ for all “generic” Ap. Obviously we don’t want to have p*¬φ and q*φ for some qp. On the other hand, if no extension qp strongly forces φ, this indicates we will always find generic sets satisfying an extension q and also satisfying ¬φ, no matter how q extends p.

Imagine going through the elements of ℕ in increasing order, choosing which to put into A. Suppose at some point that Ap. After that, we will never be able to assure the truth of φ; only when we’ve gone through “all of ℕ’’ will we find out if φ is true. That suggests that φ is somehow “specific”, that we have to choose “carefully” infinitely often if we want φ to end up true. For example, suppose φ says “G contains only finitely many primes”. This is more specific than its negation, since if n0 is the largest prime in A, then we have to vigilantly exclude every single prime greater than n0. So all generic A’s will contain infinitely many primes (and likewise omit infinitely many).

To put it another way: if Ap and p extends as far as the last prime in A, then this fact about p tells us an infinite number of facts about A. Namely, exactly which primes belong to it. But if A contains an infinite number of primes, then for any finite initial segment of A, we can say nothing about the primes past it. That seems more “generic” than the alternative.

Clause (4) captures this intuition. Suppose A contains infinitely many primes. If we claim of a condition that “It’s got all the primes of A!”, then our claim will be falsified by some extension. ∅⊩*¬φ says that there is no condition q with q*φ. Because of clause (5), it’s a short step from q*A has only finitely many primes” to q* “I’ve got all the primes of A!”. But we’ve just seen that that can’t happen.

The last few paragraphs make the heuristic case for clause (4). Ultimately these clauses justify themselves by the formal development based on them.

The following trivial consequence of clause (4) is important: we cannot have both p*φ and p*¬φ.

Now we are ready to define “generic” formally.

A⊆ℕ is generic iff for every closed formula φ in ℒ(PA+G), there is a condition p with Ap and either p*φ or p*¬φ.

Intuitive justification: either (ℕ,A)⊧φ or (ℕ,A)⊧¬φ. Either way, the truth of φ or its negation should depend on only a finite amount of information about A, namely a condition p (plus the fact that A is “generic”). So we should have either p*φ or p*¬φ.

This suggests a slight extension of the ⊩* notation. Write A*φ to mean that there exists a p with Ap and p*φ. With this notation, we have

A⊆ℕ is generic iff for every closed formula φ in ℒ(PA+G), either A*φ or A*¬φ.

[1] But we will avoid the word “random” from now on, since there is a different notion of algorithmically random.

Prev TOC Next

Leave a comment

Filed under Set Theory

Set Theory Jottings 30. Definability Tools

Prev TOC Next

We will need some familiarity with the the “definability powers” of Peano arithmetic. Without giving an exhaustive treatment, here are some of the highlights.

Recursive Tupling Functions

We have a 1–1 correspondence ℕ×ℕ→ℕ. Lots of them! We’ll pick one in a moment; we’ll denote it by

(x,y)↦〈x,y

Here (x,y)∈ℕ×ℕ is an ordered pair, and 〈x,y〉∈ℕ is the number coding it.

We want 〈·,·〉 to be arithmetically definable. The following formula does the trick:

x,y〉= ½(x+y)(x+y+1)+y

It’s easy to see where it comes from. If you list the lattice points in ℕ×ℕ by “cross diagonals” (i.e., (0,0), (1,0), (0,1), (1,1), …), then the predecessors of (x,y) consist of a triangle, plus a “tail” lying along the diagonal. Count them up! You get the above formula. So 〈·,·〉 is not just arithmetic, but recursive.

You can iterate this to get recursive k-tupling correspondences ℕk→ℕ for every k. For example,

x,y,z〉= 〈〈x,y〉, z

The tupling functions allow us to translate formulas like this:

x1x2y1y2

into this:

xy

Using the tupling functions, we can extend the notions of arithmetic and hyperarithmetic to n-ary relations and functions. For relations this is obvious. For a function, we look at its graph: f() is arithmetic (respectively hyperarithmetic) if the relation f()=y is.

Our definition of ℒ2(PA) allowed quantification over set variables. Sometimes there are technical advantages to using function variables instead. These can be “translated away” in a mechanical fashion. Admittedly the details can get a little hairy; for example, try expressing ∀x f(g(x))=g(f(x)) using the relations φf(x,y) ≡ f(x)=y and φg(x,y) ≡ g(x)=y. I will use both freely in ℒ2(PA).

Recursion

Recursion is a basic tool. Here’s the simplest form. Suppose we have a function f:ℕ→ℕ, and let a be any number. Define F by

F(0) = a
F(n+1) = f(F(n))

If f is arithmetic (or hyperarithmetic), does that make F arithmetic (hyperarithmetic)? Here are two ways we can write a formula for F(x)=y, provided we can quantify over arbitrary finite sequences a0,…,ax:

F(x)=y (∃a0,…,ax)[
a0=a
∧ (∀z<x)(az+1=f(az))
y=ax]

and

F(x)=y (∀a0,…,ax)[
a0=a
∧ (∀z<x)(az+1=f(az))
y=ax]

So we have a choice of ∃ or ∀, good news for the hyperarithmetic case. We’ll see soon how to handle arbitrary finite sequences in PA.

More complicated forms of recursion? No problem. For example, say f(x,ȳ,z) is a function of n+2 variables and g(ȳ) of n variables. Define

F(0,ȳ) = g(ȳ)
F(n+1,ȳ) = f(F(n,ȳ),ȳ,n)

So we’re allowing the new value to depend on a bunch of parameters ȳ, on the argument n, and of course on the previous value F(n,ȳ). This scheme is called primitive recursion. It’s handled the same way as the simpler case.

With this in our toolbox, we can define any so-called primitive recursive function. That’s any function you get by starting with a few very basic ones (projection, constant functions, successor) and applying composition and primitive recursion as many times as you like. So-called “course of values” recursions, where the new value depends on all values previously computed, also are available, since we can code the list of previous values using the finite sequence technique (see below). Sets and relations can be coded via functions taking the values 0 and 1; then we can use such relations in boolean conditionals (or more generally “definition by cases”) when defining new functions.

Loosely speaking, primitive recursive functions coincide with the computable functions where you can “clearly see” that the computations always terminate. To get the full panoply of recursive functions, we add the so-called μ-operator. This defines a partial function y, like so:

μy(φ(y,)) = the least y such that φ(y,)
undefined if there is no such y

It’s easy to express this in the language of PA:

μy(φ(y,))=u ≡ φ(u,)∧(∀z<u)¬φ(z,)

Any function defined by applying the μ-operator to a primitive recursive relation is a partial recursive function. If a partial recursive function just happens to be total, it’s a recursive function. But we can’t (computably) tell in general if a partial recursive function is total—that’s the Halting Problem on steroids.

The “sequence trick” (see below) and the μ-operator together tell us that any partial recursive function is arithmetic. (That is, its graph is an arithmetic relation.) But these techniques go beyond this: if f and g are arithmetic or hyperarithmetic, then so is the F defined by the primitive recursion scheme or the μ-operator, even if f and g are horribly, hideously uncomputable.

Finite Sequences

As we’ve just seen, we need a way to code finite sequences of arbitrary length as single numbers. Gödel gave one technique: code (r1,…,rk) as p1r1···pkrk, where pi is the i-th prime. But this works only once we have a definition of exponentiation, and of the function ipi. Both these yield easily to recursion, but that requires a coding of finite sequences!

Gödel broke the vicious circle with the Chinese remainder theorem. This says that given any sequence of positive integers d1,…,dk, all pairwise coprime, and any sequence r1,…,rk with 0≤ri<di for i=1,…,k, there is an a such that a%di=ri for all i. Here % is the remainder function. We call the di’s divisors and the ri’s remainders.

The Chinese remainder theorem is actually stronger: it says that there is a unique such a satisfying 0≤a<d1···dk. Although we won’t need the stronger version, it falls right out of the easiest proof of the theorem. Let d=d1···dk. Write [d] for the set {0,…,d−1}, likewise for [di]. We have a mapping [d]→[d1]×…×[dk] defined by a↦(a%d1,…,a%dk). The mapping is injective because the di’s are pairwise coprime: if a%di=a′ %di for all i, then di|(aa′) for all i and so d|(aa′). Since the domain and codomain both have d elements, the mapping is surjective. qed.

So if we are given a finite sequence (r1,…,rk), we just have to find divisors di such that they are pairwise coprime and ri<di for all i. The sequence of divisors has to be “orderly”, in the sense that if we had to specify all the di’s individually, we wouldn’t have gained anything. Gödel chose the arithmetic progression di=bi+1, for a suitable b. It turns out that b works if it is a sufficiently large multiple of k!.

How do we use this to handle a quantifier like ∃(r1,…,rk)? Answer: first we define

β(a,b,i) = a%(bi+1)

Formally representing the remainder function is a piece of cake. Then

∃(r1,…,rk)…ri

is equivalent to

ba…β(a,b,i)…

I’ve been a bit sloppy with notation. The ∃ba causes no hiccups. I did not write ∃(r1,…,rk)φ(r1,…,rk). That would suggest a concrete list of k variables. But we want the subscript i in ri to be variable as well. Gödel’s β function makes that possible. We’ll see an example next.

Bitstrings

Forcing in arithmetic uses bitstrings. First, we will regard a subset A⊆ℕ as an infinite bitstring, or equivalently, a function A:ℕ→{0,1}. Second, finite bitstrings will play the role of conditions: if p is a condition (i.e., finite bitstring) and an initial segment of A matches p, then we say A satisfies p. If the condition q extends p (or equals it), we write pq.

Suppose we have a sequence p0p1≤…, defined inductively, starting with an arbitrary condition p0=c. In other words, we have a function f:ℕ×CC, where C is the set of conditions, and for all n∈ℕ, pn+1=f(n,pn). Let A=⋃pn; if the pn’s stop growing at some point (i.e., for some n0, we have pn=pn0 for all nn0), then we make the rest of A all 0’s after that (i.e., nA for all n past the end of pn0). Question: if f is arithmetic, or implicitly defined, or hyperarithmetic, can we say the same for A?

First, how do we code conditions? Using binary notation doesn’t quite do the trick: consider 0001 vs. 01, for example. Pairing a binary number with its length works: 〈k,b〉 where k is the length of the bitstring, and b is the bitstring in binary, padded out with leading 0’s if necessary.

A sketch of the formula ψS that represents xS:

ψS(x)≡ (∃ p0,…,pl)[
p0=c
∧ (∀n<l)[pn+1=f(n,pn)]
xpl]

Let’s look at the individual pieces:

  • (∃ p0,…,pl): we make use of Gödel’s β function. Also, all the pn’s are conditions; we have to make this explicit. I omit details.
  • p0=c: c will be a constant, incorporated into our formula.
  • pn+1=f(n,pn): see below.
  • xpl: i.e., bit x in pl is 1. This translates into a statement about the size of a remainder: b has a 1 in position x iff b=2x+1·q+r with 2xr<2x+1.

Now, how about pn+1=f(n,pn), or in general, w=f(u,v)? If f is an arithmetic function, defined by a formula φ(w,u,v), then we just transcribe φ into our definition ψS(x) for A. So if f is arithmetic, then so is A. (Because of c, we have a definition of A for each initial condition c, with A satisfying c.)

Next, say f is implicitly defined, say by φF; F is a new function symbol added to ℒ(PA). (So φF is a closed formula of ℒ(PA+F).) Transcribing φF into the sketch above gives us a “paired” implicit definition. That is, {(f,A)} is definable by a closed formula in ℒ(PA+F+S), where we’ve added two new symbols. As you can imagine, it’s easy to combine f and A into a single function (or set), but that’s not the same as having an implicit definition for A by itself.

Finally, if f is hyperarithmetic, then so is A. We transcribe the Σ11 or the Π11 formula for f into the sketch, getting a formula ψ(x) in ℒ2(PA). The function (or set) quantifier can be migrated to the front, using basic facts of logic. So we have a Σ11 and a Π11 formula defining A.

Summary: if f is arithmetic, so is A; if f is hyperarithmetic, so is A; but if f is implicitly defined, then the best we can do is a paired implicit definition of A with f.

Prev TOC Next

Leave a comment

Filed under Logic, Peano Arithmetic

Set Theory Jottings 29. Definability

Prev TOC Next

Three Kinds of Definability

A⊆ℕ is arithmetic if there is a formula φ(x) in ℒ(PA) such that

For all n [nA if and only if ℕ⊧φ(n)]

Tarski’s undefinability theorem says that truth in ℕ is not arithmetic: the set of Gödel numbers of sentences of ℒ(PA) that hold in ℕ is not an arithmetic set. Using the Quine bracket notation where ⌜ψ⌝ is the Gödel number of ψ, we can say: there is no φ(x)∈ℒ(PA) such that for all closed ψ∈ℒ(PA),

ℕ⊧ψ if and only if ℕ⊧φ(⌜ψ⌝)

On the other hand, Tarski gave a recursive definition of satisfaction for first-order logic: if ℒ is a language and M is a structure for ℒ, then M⊧φ∧ψ if and only if M⊧φ and M⊧ψ, etc. We can formalize this for Peano arithmetic by adding a new predicate letter, say T, to ℒ(PA). I’ll write ℒ(PA+T) for this language. We can now express Tarski’s recursive definition this way:

T(⌜ψ⌝) ↔
⌜ψ⌝ = ⌜s=t⌝ ∧ s and t are closed terms with equal values
∨ ⌜ψ⌝ = ⌜¬α⌝ ∧ ¬T(⌜α⌝)
∨ ⌜ψ⌝ = ⌜α∧β⌝ ∧ T(⌜α⌝) ∧ T(⌜β⌝)
∨ ⌜ψ⌝ = ⌜∃x φ(x)⌝ ∧ ∃n T(⌜φ(n)⌝)

This is the outline of a sentence in ℒ(PA+T). With a large but bounded amount of work, it can be translated completely into the formal language. I will only hint at why this is true—a convincing explanation would take many pages. You can find that in many textbooks, and my  Logic Notes also have a bit to say. Anyway: one can show that Peano arithmetic can represent any recursive function. It follows that PA can handle all purely syntactical matters. For example, “n is a Gödel number”; or “n is the Gödel number of a formula of the form α∧β, and k is the Gödel number of α and l is the Gödel number of β’’; or “s is the Gödel number of a closed term whose value is v.”

Say A⊆ℕ. (ℕ,+,·,<,A) (or (ℕ,A) for short) is a structure for ℒ(PA+T), if we interpret T(n) as meaning nA. Then our sentence holds in (ℕ,A) precisely when A is the set of Gödel numbers of true sentences ψ of ℒ(PA).

I generalize. Write ℒ(PA+S) for ℒ(PA) augmented with a new predicate letter S. (ℕ,A) is a structure for ℒ(PA+S), using A to interpret S. Say we have a class 𝒜 of subsets of ℕ, and a closed formula ψS in ℒ(PA+S). Suppose that

For all A⊆ℕ [A∈𝒜 if and only if (ℕ,A)⊧ψS]

Then we say that 𝒜 is an arithmetic class.

For example, consider the formula

ψS ≡ ∀x (S(x)→S(x·x))

In other words, (ℕ,A)⊧ψS means that A is closed under squaring. The class 𝒜 determined by ψS contains many sets: the set of all squares, the set of all powers of a prime p, the set of numbers whose prime factors all belong to a fixed set of primes, etc.

If {A} is an arithmetic class, then we say that A is implicitly definable by the formula ψS defining its singleton class. So truth in ℕ is implicitly definable.

Observe that any arithmetic set is implicitly definable: just let ψS be ∀x[S(x)↔φ(x)], where φ(x) is the formula in ℒ(PA) defining the arithmetic set.

The class of arithmetic sets enjoys some nice properties: it is closed under intersection, union, and complement. This falls out just from using the logical connectives. The existential quantifier gives us another operation, projection. Let 〈y,z〉 be a recursive pairing function, that is, a recursive bijection from ℕ×ℕ to ℕ. If A is defined by φ(x), then the formula ∃y φ(〈y,z〉) defines the projection of the relation 〈y,z〉∈A onto its second coordinate. (If this relation is a function, then the projection is its range. Likewise, if the relation is a partial function, we can project on the first coordinate to find its domain.)

The class of arithmetic sets is precisely the smallest class of subsets of ℕ closed under intersection, union, complement, projection, and containing the singletons {0} and {1} and the graphs of the addition and multiplication operations. (Take a moment to see why this is true.)

As we will see later, the class of implicitly definable sets is less tidy. For one thing, it’s not closed under intersection.

We recover some of the nice features by passing to a yet more inclusive class, the hyperarithmetic sets. First we expand our language to so-called second-order arithmetic: instead of adding a new predicate letter, we allow variables ranging over subsets of ℕ. Quantification is allowed. I will use capital letters for subsets and lowercase for numbers1. I’ll write S(x) and xS to mean the same thing; you can decide which is vernacular. I’ll write ℒ2(PA) for second-order arithmetic.

Suppose A is implicitly definable via a formula ψS in ℒ(PA+S). Then A is definable in ℒ2(PA) in two ways, existentially:

S SxS)

and universally:

S SxS)

since in both forms, the clause “ψS’’ guarantees that S is the set A. Note that each formula has a sole free number variable, x.

A formula in ℒ2(PA) is called a Σ11 formula if it has an existential set quantifier out in front, no universal set quantifiers, and as many number quantifiers as your heart desires. Likewise, a Π11 has a universal set quantifier out front, no existential set quantifiers, and as many number quantifiers as needed. Thus:

Σ11: S ψ(S,x)
Π11: S ψ(S,x)

where ψ(S,x) can contain number quantifiers in abundance, but no other set quantifiers.

A set is hyperarithmetic or Δ11 if it possesses both a Σ11 and a Π11 definition. (That is, Σ11 and a Π11 formulas with one free number variable, but no other free variables.)

An example: the set of even numbers, arithmetically defined by a formula φ(x)∈ℒ(PA), implicitly defined by a formula Φ(S)∈ℒ(PA+S), and hyperarithmetically defined by formulas α(u)∈Π11 and ε(u)∈Σ11.

Arithmetic definition: φ(x) ≡ ∃y (y+y=x)

Implicit definition: Φ(S) ≡ ∀x (S(x)↔∃y(y+y=x))

Π11 definition: α(u) ≡ ∀S [∀x(S(x)↔∃y(y+y=x))→S(u)]

Σ11 definition: ε(u) ≡ ∃S [∀x(S(x)↔∃y(y+y=x))∧S(u)]

The pattern is clear:

Arithmetic definition: φ(x) ≡ ∃y (y+y=x)

Implicit definition: Φ(S) ≡ ∀x (S(x)↔φ(x))

Π11 definition: α(u) ≡ ∀S [Φ(S)→S(u)]

Σ11 definition: ε(u) ≡ ∃S [Φ(S)∧S(u)]

We see from this that every arithmetic set is implicitly definable, and every implicitly definable set is hyperarithmetic.

The set of Gödel numbers of true sentences in ℒ(PA) provides an example of an implicitly definable set that is not arithmetic, as we’ve just seen. Feferman’s theorem provides an example of a hyperarithmetic set that is not implicitly definable.

[1] So this is a two-sorted first-order language. Alternately, add predicates set and number, and treat ∃X… as vernacular for ∃x(set(x) ∧ …), etc.

Prev TOC Next

3 Comments

Filed under Logic, Peano Arithmetic

Set Theory Jottings 28. Forcing Roadmap

Prev TOC Next

Cohen introduced forcing in 1963 to prove the independence of the continuum hypothesis from ZFC. The next few years witnessed simplifications, other applications, and other perspectives. Despite the simplifications, forcing in set theory comes encrusted with technicalities.

In set theory, the basic forcing concepts occur entangled with the cumulative hierarchy, the level-by-level build-up of the universe of sets from the empty set. This makes for a messy situation. The most “barnacle-free” setting for forcing is Peano arithmetic. Only three levels demand attention:

  1. Numbers.
  2. Sets of numbers.
  3. Classes of sets of numbers. (I use the word ‘class’ just for smoothness; these are bona fide sets in ZF, not proper classes.)

Both in ZF and in the cases treated here, forcing deals with definability. Gödel had shown that if all sets are constructible (V=L), then AC and GCH hold. So Cohen started off by trying to show the relative consistency of VL. As we’ve seen, constructibility is all about definability.

We’ll look at four kinds of definability for Peano arithmetic (or really three):

  • Arithmetic sets of numbers. A set is arithmetic if it can be defined by a formula of ℒ(PA).
  • Implicitly definable sets of numbers. A set is implicitly definable if it can be defined by a formula in the language of PA augmented by a predicate symbol (say S) standing for the set. I’ll write ℒ(PA+S) for the augmented language.
  • Arithmetic classes of sets of numbers. A class is arithmetic if it can be defined by a formula of ℒ(PA+S). Implicit definability is the special case where a singleton {A} is an arithmetic class.
  • Hyperarithmetic sets of numbers (aka Δ11 subsets). A set is hyperarithmetic if it can be defined by a certain kind of formula in the second-order language of PA, denoted by ℒ2(PA).

Using forcing, Feferman showed the existence of a hyperarithmetic set that is not implicitly definable, and Addison showed that the class of arithmetic sets is not an arithmetic class.

Our roadmap:

  1. We define the four kinds of definability.
  2. In the context of PA, we offer intuition for the notions generic set and forcing.
  3. We proceed with the formal development, and prove the Feferman and Addison theorems.
  4. We generalize the notions of forcing and generic sets.
  5. We turn to ZF set theory.

Prev TOC Next

Leave a comment

Filed under Set Theory

Set Theory Jottings 27. V=L Implies GCH

Prev TOC Next

Now we turn to the proof that GCH holds in L. Reflection principles again come to the rescue. First note that the cardinality of Lα equals the cardinality of α for infinite α. (Just observe that the number of formulas with parameters from Lα is #Lα. So #Lα+1=#Lα. The rest is routine transfinite induction.)

Let’s just look at CH; this gives the flavor. Now, ω∈Lω+1, so the question is, how high up do we have to go in the constructible hierarchy to get all the constructible subsets of ω? Answer: no higher than Lω1, where ω1 is the first uncountable cardinal. Given this, CH holds in L: 𝒫L(ω)⊆Lω1 and #Lω1=#ω1=ℵ1, so #𝒫L(ω)≤ℵ1. The reverse inequality holds because #𝒫L(ω)>ℵ0 and ℵ1 is the next larger cardinal after ℵ0. (Remember that we have AC in L, so all cardinals are comparable. Also, these cardinality computations are done in L. For example, 𝒫L(ω) is uncountable in L; we don’t care about its cardinality according to V.)

Cohen is worth quoting (with a couple of tiny changes):

Let us attempt to give some intuitive justification for why all sets of integers are constructible by countable ordinals. If x⊆ω, xLα, then one can ask what are the essential properties of α which imply that xLα. Now x is determined by the truth values of the countably many statements “nx’’. For each n we can think of this as imposing one condition on α. Thus it is not unreasonable that these countably many conditions, if they can be satisfied by any α, can also be satisfied by a countable α. The mechanism for making this precise will be furnished by the Löwenheim-Skolem theorem which allows us to construct smaller sets having the same properties as larger sets.

Here’s the argument. Let x be a constructible subset of ω, belonging to Lβ. Recall from post 23 that the relation y=Lβ is definable (in fact Δ1ZF). In other words, there is a formula Λ(u,y) that says that u is an ordinal and y is the set Lu.

We now apply the reflection principle from post 25:

If K is a countable set containing a transitive subset K0, and Φ is a finite set of closed formulas in ℒK(ZF) (so allowing parameters from K), then there is a countable transitive set NK0 reflecting all the formulas in Φ. In reflecting the formulas of Φ, the parameters from K are replaced with images under an ∈-isomorphism F; this ∈-isomorphism is the identity on K0.

Our set K is ω ∪ {ω,x,β,Lβ}. K0=ω. Our formulas Φ are:

Λ(β,Lβ)
x⊆ω
xLβ

Let’s examine N along with the map F sending K into N. F is the identity on ω. So it’s also the identiy on x: F(x)⊆ω because “x⊆ω’’ is reflected, and nxF(n)∈F(x) ⇔ nF(x). We also have

NxF(Lβ) (reflection)
LxF(Lβ) (absoluteness)
N⊧Λ(F(β),F(Lβ)) (reflection)
L⊧Λ(F(β),F(Lβ)) (absoluteness)

In other words, N reflects xLβ, so x is in F(Lβ) according to N. But by absoluteness of ∈, x really is in F(Lβ). Likewise, β constructs Lβ, so by reflection F(β) constructs F(Lβ) in N. But by absoluteness of Λ(u,y), F(β) really does construct F(Lβ). (When I say “really” I mean according to L, although it’s also true according to V.)

So xF(Lβ)=LF(β). Since F(β) is an ordinal contained in the countable transitive set N, it’s countable. We’ve now shown that x is constructed by the countable ordinal F(β), as claimed.

Again I quote Cohen (editing to match our notation):

One should compare the above proof with the intuitive motivation. The “collapsing” of the set K by the isomorphism F means that we have extracted from the ordinal β all the lower ordinals which played a role in the formation of x in Lβ, and then discarded the other lower ordinals. The result is a much smaller ordinal F(β) which also constructs x.

For the full GCH, we need an extension of the reflection principle. Instead of a countable K, we have to allow K to have arbitrary cardinality, with the reflecting MK having the same cardinality. The proof of this is not difficult, and the proof that V=L implies GCH is pretty much the same.

Next up: Forcing!

Prev TOC Next

Leave a comment

Filed under Set Theory

Set Theory Jottings 26. Relative Consistency of V=L

Prev TOC Next

Let’s put it all together. Recall that Gödel proved three main results about L: Continue reading

Leave a comment

Filed under Set Theory

Set Theory Jottings 25. Mostowski Collapsing Lemma

Prev TOC Next

The Collapse of the Tacoma Bridge

Continue reading

Leave a comment

Filed under Set Theory

Set Theory Jottings 24. Reflection Principles

Prev TOC Next

Mount Hood Reflected in Mirror Lake (Public Domain)

Continue reading

Leave a comment

Filed under Set Theory

Set Theory Jottings 23. Absoluteness of Constructibility

Prev TOC Next

Now we turn to the absolutness of the notion of constructibility. There is a formula Λ(x) which says that x is constructible, and which holds in L iff it holds in V. Λ(x) is not Δ0, nor is it absolute over all transitive classes, so some subtleties come into play. (It is absolute between models of ZF.) Continue reading

Leave a comment

Filed under Set Theory