Had it not already been clear to anyone following Richard Heck's work that he is one of the foremost Frege scholars of our time, it would have become hard to deny after the publication of his second book on Frege, only a year after his celebrated Frege's Theorem (Oxford: Oxford University Press, 2011). There is equal cause for celebration regarding Reading Frege's Grundgesetze. One hundred and ten years after the famous and devastating letter in which Russell informs Frege about the paradox now bearing Russell's name, Heck reminds us that there is much to learn from Grundgesetze still. Indeed, Heck's book is a sustained and forceful argument that Grundgesetze is "as Frege himself expected it to be, his greatest achievement" (p. 24).

The book is a welcome collection of Heck's seminal articles on Frege's Grundgesetze, some in revised and expanded form, and it also contains much new material. The volume does not read like a collection of essays however; rather, it coalesces into a sustained, book-length analysis of the first two parts of Grundgesetze. It investigates Frege's philosophy of logic and mathematics rigorously and meticulously. Heck focuses on Frege's positive contributions, his formal and philosophical development of the mature version of his logic, the concept-script, and the derivation of the basic principles of arithmetic within that system. As Heck demonstrates, however, there is much more to Frege's mathematical investigation of arithmetic than "merely" a derivation of Peano's axioms from Frege's basic laws of logic. More on that later.

Grundgesetze, as mentioned, was to be Frege's magnum opus. It was to provide rigorous, gapless proofs that arithmetic was just logic further developed, that arithmetic was indeed entirely reducible to pure logic: the unshakable demonstration of Frege's Logicism. Instead, the system of concept-script in which Frege carries out this reduction famously turned out to be inconsistent, due to Frege's inclusion of Basic Law V. Basic Law V states that the value-ranges of two functions are identical if and only if these functions have the same values for all arguments. The special case is that of concepts (for Frege, concepts are functions from objects to truth-values; the extension of a concept is its value-range), for which Basic Law V essentially specifies: two concepts have the same extension if and only if they are coextensional. But of course this trivial sounding principle leads to Russell's Paradox and thus causes the concept-script to collapse into inconsistency.

One of the great values of Heck's book lies in its careful analysis of Frege's formal proofs. His detailed investigation allows the reader to discover how much proverbial gold is hidden in Frege's proofs that is not essentially affected by the inconsistency of Basic Law V. From Frege's formal development, Heck distills insights into Frege's philosophy of logic and mathematics that are not to be gained from just reading the prose, since Frege is rarely forthcoming about the significance of the theorems he proves (a fact that itself only becomes salient through Heck's examination). A proper appreciation of Frege's achievements has been hindered by the dismissal of Grundgesetze owing to Russell's Paradox, but the task is also made formidable by Frege's idiosyncratic notation in which he presents concept-script. Concept-script, as Heck himself puts it, is easy to read, but hard to learn to read. Heck is one of only about a handful of scholars in the world fluent in concept-script. He presents Frege's system and proofs in modern notation, so that anyone familiar with modern logic will be able to follow without the arduousness of learning Frege's formalism.

The book contains eleven chapters, plus a preface and four short appendices. As mentioned above, much of the material is new: almost all of chapter 1, §§4.5, 5.2, and 6.8, chapters 9 and 10, and most of chapter 11 (see p. xiii).

Chapter 1 is a brilliant introduction, an exciting read for Frege beginners and experts alike. The remaining chapters contain Heck's detailed examination and are grouped into two parts: The Logic Behind Frege's Logicism and The Mathematics Behind Frege's Logicism. The two parts are thus quite analogous to parts I and II of Grundgesetze ("Exposition of the concept-script" and "Proofs of the basic laws of cardinal number"). There is no third part on real analysis in Heck's book. Part III of Grundgesetze (volume II) starts with a Grundlagen-style philosophical discussion of competing theories of analysis, and breaks off after only the beginnings of Frege's formal development of real analysis. He does not even get to the definition of 'real number'. A full account of real and presumably complex analysis must have been planned for a third volume of Grundgesetze, which Frege, after the discovery of the paradox, never published. But Heck not only excludes the formal developments of part III of Grundgesetze because there's so little of it, but also suggests that Frege's account of real analysis is just not as philosophically interesting as his account of arithmetic (§1.3). The exciting material hides in part II of Grundgesetze, as Heck uncovers for his readers. But first things first.

The four chapters of part I contain the material from three important and influential articles: "Frege and Semantics", "Grundgesetze der Arithmetik I §10", and "Grundgesetze der Arithmetik I §§29-32", rearranged to a shape closer to that of an original manuscript containing all three and heavily expanded and rewritten. Together, these chapters present Heck's account of Frege's logic and the philosophy thereof. They contain Heck's influential attack on the widespread view (defended, e.g., by Warren Goldfarb, Thomas Ricketts, and Joan Weiner) that Frege, essentially, had no semantics. Despite plenty of occurrences of "truth" and "reference" ("Bedeutung") in his mature work (after 1891), so the view goes, Frege made no significant use of these notions and had no meta-theoretical perspective.

Heck's claim is certainly not that Frege developed a formal semantic theory. But not having developed formal semantics does not mean lacking semantics or not putting semantic notions to use in philosophical arguments. Heck argues that truth and reference play a crucial role in Frege's philosophy of logic and in his logicist project. This role, according to Heck, is to justify that Frege's system is indeed a system of logic: that his basic laws are true, and logically so, and that the rules of inference preserve truth, and indeed logical truth. In the course of his careful argument spanning the four chapters of part I, Heck argues for surprising and tantalizing claims: that Frege's famous regress argument regarding truth is not incompatible with a substantial theory of truth; that Frege anticipates some aspects of Tarski's work on truth and quantification, but also offers an interesting alternative (Heck formally outlines this "Fregean Theory of Truth" in an appendix); that Frege, in the notorious §§10 and 31 of volume I of Grundgesetze, is not primarily concerned with attempting a consistency proof for his system (it is, of course, a side-effect that Frege was well aware of -- or would have been a side effect, had Frege's argument been capable of succeeding); that the goal of §10 was not giving a definition of the True and the False, but that this was merely a means to the true end; and more.

§§29-32 of volume I of Grundgesetze contain Frege's argument that every well-formed concept-script expression refers. (It is an inductive proof over the complexity of expressions; Heck suggests (p. 73) that it is probably the first such proof in history.) Importantly, these include expressions referring to Frege's second-level function, which takes first-level functions to value-ranges: 'ἐ', where 'ε' is the first-order bound variable. In §9, Frege specifies that an identity statement featuring two value-range expressions, 'ἐΦ(ε) = ἀΨ(α)', is always to have the same reference as the corresponding generality, '∀x (Φ(x) ≡ Ψ(x))'. Heck does not merely consider this a metalinguistic formulation of Basic Law V (which is the biconditional between the two statements). Rather, dubbing it the "Initial Stipulation", he argues that Frege uses this semantic principle to justify Basic Law V. In §10, Frege observes that the Initial Stipulation does not fix the reference of 'ἐΦ(ε)', but only of identity statements that feature such expressions on both sides, and goes on to prove as much by what is often called his "permutation argument". (Heck observes that the function Frege defines is not actually required to be a permutation, but merely a one-to-one function into the domain (p. 83).)

Heck notes that Frege's discussion in §10 is quite analogous to that of the so-called Caesar Problem raised in his Die Grundlagen der Arithmetik (1884), §67. There, the question was, can we determine purely on the basis of (a metalinguistic "version" of) Hume's Principle that Julius Caesar is not a number? The answer is "no", which led Frege to jettison the attempt of providing a foundation for arithmetic by taking Hume's Principle as fundamental. (Hume's Principle states that two concepts have the same cardinal number if and only if there exists a bijection between them.) Rather, Frege defines the cardinal number of a concept explicitly (in Grundlagen, as an extension; in Grundgesetze, as a value-range), derives Hume's Principle from this definition, and only then proves the axioms of arithmetic from Hume's Principle. (More on this below.) But if the Initial Stipulation fails to fix the reference of 'ἐΦ(ε)' just like (the metalinguistic version of) Hume's Principle failed to fix the reference of "the number of F", then how do we answer the Caesar Problem for value-ranges?

Heck argues that this question is addressed by Frege in §10, and that he answers it only partially, but sufficiently, for his purpose in Grundgesetze. The answer is this: the only other objects in the concept-script of Grundgesetze are truth-values. By stipulating which value-ranges the True and the False are, the identity conditions for all objects of Grundgesetze are determined by the Initial Stipulations. Heck thus argues for the controversial claim that the domain of the concept-script in Grundgesetze is restricted, while the orthodoxy is that Frege meant it to be universal. (Heck is not alone in arguing for this claim, however: Patricia Blanchette in her Frege's Conception of Logic (Oxford: Oxford University Press, 2012) argues the same from a different angle.) The solution to the Caesar Problem for value-ranges hence is: Julius Caesar is not in the domain of Grundgesetze, so there are no identity statements between Caesar and any value-range; if Caesar (or anything else) was introduced into the domain, then it will have to be stipulated what value any function (including ' ... = ἐΦ(ε)') will have for Caesar as argument.

Fixing the reference of all expressions was thus the main goal of these sections, according to Heck. Defining the truth-values in §10, as mentioned, was not a goal, but merely a means to this end. Heck shows where exactly Frege's argument for the referentiality of all concept-script expression fails. Had Frege's argument succeeded, however, it would indeed have had the consistency of his system as a corollary, since there's at least once sentence, namely '¬∀x x=x', that is false given Frege's semantic stipulations. But this, according to Heck, was a side-show for Frege. More important was that the referentiality argument would have entailed that Basic Law V is true. It would also have served as the best argument Frege had for the claim that Basic Law V is a logical truth, or so Heck argues.

The revised and expanded material in part I alone would suffice to recommend Heck's book to anyone with interest in Frege's work, or indeed with an interest in the philosophy of mathematics.

Likewise, part II alone would suffice for such a recommendation. (So let Heck's book be doubly recommended in this way.) The six chapters of the second part present careful analyses of the formal proofs Frege gives in part II of Grundgesetze. It starts out with chapter 6, a heavily modified version of his 1993 landmark article "The Development of Arithmetic in Frege's Grundgesetze der Arithmetik". By carefully examining Frege's proofs, Heck was the first to prove Michael Dummett's claim that, after deriving Hume's Principle from Basic Law V, Frege made no essential use of value-ranges in his development of arithmetic (Frege: Philosophy of Mathematics, London: Duckworth, 1991, p. 123). (This was far from obvious: Frege made extensive use of value-ranges in every proof in part II of Grundgesetze, and every non-primitive function is defined in terms of value-ranges.)

The remaining five chapters follow suit: Heck extracts from Frege's formal development the astounding things Frege shows but does not tell his readers about in the prose parts, and explains their significance for Frege's philosophy of mathematics -- or indeed develops Frege's philosophy of mathematics from what is contained in Frege's proofs. Highlights include the little known fact that Frege, like Dedekind before him, proves that the basic principles of arithmetic characterize the natural numbers up to isomorphism. This is the topic of chapter 7, which further shows that Frege derived from Hume's Principle not only Peano's axioms for arithmetic, but also a set of statements that we should consider Frege's basic laws of arithmetic -- which, taken as axioms, are equivalent to Peano's and for which Frege proves the aforementioned isomorphism theorem. Chapter 8 investigates Frege's theorems regarding finite collections and how the properties of such collections relate to counting. Chapter 9 looks at Frege's proof that every subset of a countable set is countable and shows that Frege proves, as a lemma, a generalized version of the least number principle. Chapter 10 is about Frege's incomplete development of addition, which includes a definition of cardinal addition, the uniqueness of sum (if it exists), but not a proof of its existence. Heck also explains the absence of the latter proof.

Chapter 11 contains further exciting surprises. Heck analyzes Frege's proofs regarding the relations between Frege's own notion of infinity and Dedekind's. A collection is Dedekind-infinite if and only if it can be bijected into a proper sub-collection of itself. Frege's notion of infinity, on the other hand, is similar to Cantor's: define 'finite' with recourse to the finite cardinals -- for Frege, cardinal numbers standing in the ancestral of the predecessor-relation to Zero -- and define 'infinite' as 'not finite'. Frege proves that every Dedekind-infinite collection is also infinite in his sense. Heck's analysis yields that Frege also makes steps towards proving the converse, but this direction is not provable without an axiom of countable choice (or some equivalent principle). Heck argues that Frege must have hit upon this principle in his proof-attempts. Not having anything like it in his system, and, moreover, not considering it a logical principle, Frege aborts the proof. It's a surprising claim, but Heck's careful analysis makes it seem not implausible.

Heck's book is a page-turner, if ever there was one in this type of literature. His development of Frege's philosophy of logic and mathematics through the analysis of his proofs and close examination of what Frege proves and what he does not, and cannot, prove is nothing short of thrilling. Heck's insightful analysis and careful arguments leave little for the reviewer to complain about.

Minor quarrels can of course always be picked. One such occasion arises in chapter 1, regarding a remark Heck first confines to a footnote (p. 5 fn. 13), but picks up again on page 9. He suggests, against the usual understanding, that the definition of 'cardinal number' in Grundgesetze might not actually differ from his earlier definition in Grundlagen. In Grundlagen, Frege defines the cardinal number of the concept F as the extension of the concept equinumerous with the concept F. So, in modern terms, a cardinal number is a class of concepts all of which have the same cardinality. In Grundgesetze, cardinal numbers are value-ranges: the cardinal number of F here is defined as the value-range of the function: ξ is a value-range of a function equinumerous with F. (If value-ranges were classes, cardinal numbers would now be classes of classes, rather than classes of concepts.)

Heck draws attention to the puzzling footnote in Grundlagen §68 in which Frege states that he thinks that instead of "extension of the concept" he could just have said "concept" in the definition of cardinal number. Heck takes this to indicate, in view of the discussion of the concept horse in his "Concept and Object" (1892), that Frege considers "the concept" and "the extension of the concept" as interchangeable since both refer to the same (the concept's extension). Thus, since extensions are but a special kind of value-range, Heck concludes that "numbers are still defined as extensions in Grundgesetze, and indeed as the very same extensions as in Die Grundlagen" (p. 9). On both definitions, cardinal numbers turn out to be classes of equinumerous classes according to Heck.

This is not quite right and, moreover, potentially problematic. First, it is of course true that extensions, for Frege, are a special kind of value-range. Concepts are functions whose values are always truth-values, and Frege identifies the extension of a concept with its value-range. But, as Roy Cook recently pointed out (in his review of Blanchette's Frege's Conception of Logic, Philosophia Mathematica 22 (2014): 108-120), in Grundgesetze, all functions, not just concepts, have numbers. Even if Heck is right about the interchangeability of "the concept" and "the extension of the concept" in the Grundlagen definition of cardinal number, the Grundgesetze numbers would still be different: they are indeed extensions (since they are value-ranges of a concept), but they may also contain value-ranges of functions that are not concepts, just so long as they map equinumerous collections of objects to the True. Concepts are certainly the main target, but Frege's definition is more general than that.

Second, as Matthias Schirn argues ("Frege's Objects of a Quite Special Kind", Erkenntnis 32 (1990): 27-60, here: p. 28f), there may be a problem looming with understanding Frege as suggesting that 'the concept horse' refers to the extension of said concept. If, generally, 'the concept F' referred to the extension of F, the expression 'the extension of the concept F', in turn, would have to be said to refer to the extension of the extension of F. But this is nonsense: extensions do not have extensions. Put syntactically, 'the extension of . . . ' is a name of a second-level function mapping first-level functions to objects. Filling the argument-place with the name of an object does not yield a well-formed expression. If Schirn is correct, then we should be wary of taking 'the concept F' and 'the extension of the concept F' as co-referential and interchangeable. (Also note the lurking regress if we ask for an explanation of the phrase 'the concept F' occurring in 'the extension of the concept F'.)

The jury on this is, of course, still out. We should note, however, that nothing hangs on this in what follows in Heck's book. Be it one way or the other, none of Heck's arguments even mentions, much less depends on, this claim. This is why I called it a minor quarrel: not because the question is not highly interesting, but because it concerns a claim that is inconsequential for the remainder of Heck's arguments.

Heck's Reading Frege's Grundgesetze is a masterpiece. Its detailed analysis and precision should serve as a model for Frege scholarship (and indeed any scholarship). The insights Heck gains from his analyses are groundbreaking. His exegesis is profound and will fuel discussions for years to come. No Frege scholar, budding or established, and no philosopher of mathematics can afford to miss this book.