I think I might be going to regret this. I’ve just realized that there are over 25 “Big Books” on math logic on my shelves that could reasonably warrant a mention in the planned chapter in the Teach Yourself Logic Study Guide. So no promises to get everything finished quickly! Still, the chronologically next entry writes itself pretty easily. So let’s get it out of the way.
Joseph R. Shoenfield’s Mathematical Logic (Addison-Wesley, 1967: pp. 334) has, over the years, also been much recommended and much used: it is officially intended as ‘a text for a first-year [maths] graduate course’. This is hard going, a significant jump up in level from Mendelson, though often the added difficulty in mode of presentation seems to me not to be necessary. The book can probably only be recommended to hard-core mathmos who already know a fair amount and can cherry-pick their way through the book. It does have heaps of hard exercises, and some interesting technical results are in fact buried there. But whatever the virtues of the book, they certainly don’t include approachability or elegance or student-friendliness in the early chapters.
In a bit more detail, Chs. 1–4 cover first order logic, including the completeness theorem. It has to be said that the logical system chosen is rebarbative. The primitives are $latex \neg$, $latex \lor$, $latex \exists$, and $latex =$. Leaving aside the identity axioms, the axioms are the instances of excluded middle and instances of $latex \varphi(\tau) \to \exists\xi\varphi(\xi)$, and then there are five rules of inference. So this neither has the cleanness of a Hilbert system not the naturalness of a natural deduction system. Nothing is said to motivate this horrible choice as against others.
Ch. 5 is an introduction to some model theory getting as far as the Ryll-Nardjewski theorem. But this will done far too rapidly for most readers (unless you are using it as a terse revision course).
Chs. 6–8 cover the theory of recursive functions and formal arithmetic. Schoenfield defines the recursive functions as those got from an initial class by composition and regular minimization. As elsewhere, ideas are presented in a take-it-or-leave-it spirit, and no real motivation for the choice of definition is given (and e.g. the definition of the primitive recursive functions is relegated to the exercises). Unusually for a textbook at this sort of level, the discussion of recursion theory in Ch. 8 goes far enough to cover a Gödelian ‘Dialectica’-style proof of the consistency of arithmetic, though the presentation is not particularly accessible.
Ch. 9 on set theory is perhaps the book’s real original raison d’être. It is a quarter of the whole text and was (if I recall right) the first extended textbook presentation of Cohen’s independence results via forcing, from four years previously. The treatment also touches on large cardinals. This was surely an admirable achievement in its time: but it is equally surely not now the place to start with set theory in general or forcing in particular, given the availability of later presentations. [Or at least, that was my first thought, based on memory: but I’m inclined to go back and revise judgement at least on the set theory chapter.]
Summary verdict Now only for very selective dipping into by already-well-informed enthusiasts.