Todd Wilson suggested there are many different issues in contrasting CT to ST. He admits he was partly "mystified" by Lawvere's earlier post, which said the same thing and actually advanced the discussion by specifically laying out several different threads. And when I asked Wilson which issues he wanted to discuss he mistook my meaning, and thought I was asking him to explain how there are different issues. This kind of repeatedly starting from scratch is not helpful, though it is regrettably common in the "debate" over ST and CT. Finally though, he gets to some specifics.
Here is a list of eight possible uses to which CT and ST may be put:
1. Offering an axiomatic foundation upon which all of mathematics may be developed, with a view towards
a. establishing or making manifest its consistency b. providing a standard of rigor c. providing a common framework for the cooperation between different mathematical domains
Work going back to Osius and Mitchell and others in the 1970s shows that CT can accomplish 1a and 1b in pretty much the same way that ST does, if you want to do it that way. Perhaps the best comprehensive citation now is to Johnstone TOPOS THEORY and its chapter on topos theory and set theory. See also Mac Lane and Moerdijk SHEAVES IN GEOMETRY AND LOGIC and their chapter on topoi and logic. Simpson on the FOM list likes to call this "slavish imitation" of set theory, thus agreeing that CT can do what ST does. It can also accomplish 1a and 1b in its own terms, if you like that. 1c is definitively answered in mathematical practice. Category theory has been the leading common framework for linking domains for half a century. ST is not a candidate on any practical level.
2. Acting as a language in which certain mathematical ideas can be expressed, so that
a. better use can be made of them (in applying them to specific instances, seeing connections between them, highlighting their more important features, etc.) b. they can be communicated more effectively to other mathematicians c. they better please our aesthetic sense
Again, in practice, category theory is the leading framework for 2a and 2b. No one proposes using ZF on that level. As to 2c, anyone may vote as they please. I make no citations on these because they are perfectly obvious. If any result can "speak for itself" surely the categorical methods in topology, geometry, analysis, and arithmetic, can for themselves.
3. Providing models for specific phenomena (physical or computational), with a view towards
a. informally illuminating their properties and connections b. predicting the outcomes of experiments involving them
As to physical phenomena, the principled foundations of math don't seem to bear very directly on them as practiced today. Who could seriously argue that Hawking's or Witten's work is "actually" founded on ZF versus the category of sets? On the level of methods, people do propose categorical methods for quantum gravity, quantum groups, and so on. I don't believe anyone is seriously exploring ZF for the same role. People who believe practice would advance better, if foundations were brought closer to practice so that the whole structure of math was more harmonious, will probably favor category theory. Computational phenomena bring us back to the issue that started the thread. Here I think serious discussion is warrented because there is a lot to know. I'm no computer expert but I will reply to:
Turning to more specific topics, several respondents to my original post realized that my discussion of Cartesian products was a bit muddled, and that my suggestion of an "unordered product" was incoherent. Colin McLarty answered my question about the technical work involved in dealing with the a/the distinction by suggesting that "nothing is involved if we introduce a product operator". However, if we have a category with many non-trivial isomorphisms, then the task of introducing a product operator does involve something: making some arbitrary choices.
No. Look at it this way: If I say in a computer program "x=0" am I making an "arbitrary choice" of how to represent 0 by a set? We know that in CT or ST there are alternative representations of 0. But the computer does not occupy itself with those. It has its internal representation of 0 as a data value (perhaps several) and uses that (or, one of them). Similarly, suppose I have a product operator. That is actually, one binary operator on objects _x_ with object values, and two binary operators on objects p0_,_ and p1_,_ with arrow values. When implementing these I give the machine a way of internally representing these as data values, and the machine uses those representations. Of course, in implementing the categorical product, as in implementing integer arithmetic or anything else, the programmer makes many more or less "arbitrary" choices of details of how the machine will handle them. That has nothing to do with non-identity isomorphisms, and nothing to do with ST versus CT. In principle, or for foundations, the issue here is the difference between choices and operators. There is a huge logical literature on it and it is uncontroversial. best, Colin