The truthteller sentence is the sentence “this sentence is true”. The sigma_n and pi_n truthteller sentences are expressible in set theory (and PA) for n>0. For sigma_1, pi_2, sigma_3, and so on, the truthteller sentence is false. On the other hand, for pi_1, sigma_2, pi_3, and so on, the truthteller sentence is true.
What determines the truth is the last quantifier. If the last quantifier is an existential, then the truthteller sentence is false, otherwise it is true. Here is a quick sketch of the proof we came up with tonight, though I don’t really expect it to be intelligible to anyone else.
The form of the delta_0 part of the truthteller sentence depends on the last quantifier, because the delta_0 truth predicate is delta_1 and must be put in the form that starts with the same quantifier.
The first case is when the last quantifier is an existential. Rewrite it in form “there exists (w, a_0, …, a_m)”, where w is the witness given as parameter to the delta_0 truth predicate, and a_0 to a_m are the auxiliary sets needed by the delta_0 truth predicate and other machinery (such as the machinery that gets the godel number of the truthteller sentence).
Since the w is smaller than the tuple (w, a_0, …, a_m), the recursion eventually bottoms out when the delta_0 part of the formula is given invalid auxiliary sets. In that situation the formula is false, because the delta_0 part of the formula is in the form “the auxiliary sets have the correct shape AND something”.
In the second case, with foralls at the end, it’s similar, except that bottoming out at incorrect auxiliary sets results in truth, because the delta_0 part of the formula is in the form “the auxiliary sets are correct IMPLIES something”.
Note that this proof depends on the axiom of regularity, and might not hold if there are sets which aren’t well-founded.
To get a better understanding of the details of self-reference in mathematical logic, if you know how to code, I’d recommend looking at quines, and programming one yourself in your favorite language.
When made rigorous, sentences like “this sentence is unprovable” essentially translate to the sentence S = “the sentence output by the program P is unprovable”, where P happens to be a quine which outputs S. So if you understand quines, then you already understand the basic idea behind self-referential statements in logic.
It will probably help at first to simply take for granted that peano arithmetic is capable of talking about computer programs and their outputs. The specific details of how peano arithmetic can do this will sometimes be important, but you can get pretty far without knowing them.
I also don’t think it’s actually important to learn godel numbering specifically. If you understand how sentences can be encoded as ASCII which can be encoded as numbers, then you already understand the important part. Nonetheless, I will still refer to numeric encoding of a sentence as its “godel number”, because that is the standard word for it.
A truth predicate for PA would be any sentence T(x) in PA with one free variable x which, when x is substituted for the godel number of some other sentence S, is true if and only if S is true. In other words, for any sentence S, if n is its godel number, then (T(n) <-> S).
The paradoxes of self-reference come from combining self-reference, negation, and truth predicates. Tarski’s proof of the undefinability of truth makes essential use of all three. But any two of these on their own are fine: self-reference with negation are combined just fine in PA, and self-reference with truth predicates (but without negation) can also be combined just fine in PA, using sigma_n or pi_n formulas in the arithmetical hierarchy (where n>0).
Going back to Curry’s paradox, let’s assume we have a truth predicate T. Then curry’s sentence is the sentence S = (T(p) → Santa), where p is a quine which outputs the godel number of S. Note that (T(p) → Santa) is the same as (~T(p) OR Santa), so we can see that Curry’s paradox combines self-reference, negation, and a truth predicate.