In particular, it was not clear to me why exhibiting a set which obeys the axioms of PA shows that ZFC proves Con(PA) but exhibiting a class (all sets) which obeys ZFC does not prove that ZFC proves Con(ZFC). You actually have to get into the weeds of how to formalize the "model implies consistent" argument to see why a model has to be a set.
Anyway, I'm spending my winter break looking at Smullyan and Fitting, so I will hopefully ask fewer basic set theory questions in the future.
]]>As many people have explained, ZF proves that PA has a model. More precisely, ZF proves that there is a set omega and a function S:omega --> omega such that S obeys the first 4 Peano axioms and such that, if X is a subset of omega containing 0 and closed under S then X=omega. I am fine with how to prove all of this.
We therefore have the following meta-theorem. If phi is any property then ZF proves the statement "If phi(0) and if, for all k in omega, phi(k) implies phi(k+1), then phi(n) holds for all n in omega.".
Now, we would like to establish that ZF proves Con(PA). That means we need to chose a Godel encoding of statements and proofs in PA, and show that the following is a theorem of ZF "For any statement T of PA, and any proof P, if P is a proof of T, then T is not "0 \neq 0.".". The obviously plan of proof is to prove, by induction on the length of P, the more precise statement: "For any statement T of PA, and any proof P, if P is a proof of T, then P is true of omega."
But this seems to run directly into the problem that truth is not definable! http://planetmath.org/encyclopedia/TarskisResultOnTheUndefinabilityOfTruth.html
I even run into a problem dealing with the axioms of PA. For any property phi, I can prove that the following is a theorem of ZF "If phi(0) and if, for k in omega, phi(k) implies phi(Sk), then phi(n) for all n in omega." But I can't even see how to express in ZF the statement: "For every property phi, if phi(0) and if, for k in omega, phi(k) implies phi(Sk), then phi(n) for all n in omega." Again, I seem to need a truth predicate.
I'm sure there is a standard way around this, but what is it? And is that question sophisticated enough to ask on MO?
]]>