As I have already commented, the outcome of the Polymath experiment differed in one important respect from what I had envisaged: though it was larger than most mathematical collaborations, it could not really be described as massive. However, I haven’t given up all hope of a much larger collaboration, and in this post I want to think about ways that that might be achieved.
First, let me say what I think is the main rather general reason for the failure of Polymath1 to be genuinely massive. I had hoped that it would be possible for many people to make small contributions, but what I had not properly thought through was the fact that even to make a small contribution one must understand the big picture. Or so it seems: that is a question I would like to consider here.
One thing that is undeniable is that it was necessary to have a good grasp of the big picture to contribute to Polymath1. But was that an essential aspect of any large mathematical collaboration, or was it just a consequence of the particular way that Polymath1 was organized? To make this question more precise, I would like to make a comparison with the production of open-source software (which was of course one of the inspirations for the Polymath idea). There, it seems, it is possible to have a large-scale collaboration in which many of the collaborators work on very small bits of code that get absorbed into a much larger piece of software. Now it has often struck me that producing an elaborate mathematical proof is rather like producing a complex piece of software (not that I have any experience of the latter): in both cases there is a clearly defined goal (in one case, to prove a theorem, and in the other, to produce a program that will perform a certain task); in both cases this is achieved by means of a sequence of strings written in a formal language (steps of the proof, or lines of code) that have to obey certain rules; in both cases the main product often splits into smaller parts (lemmas, subroutines) that can be treated as black boxes, and so on.
This makes me want to ask what it is that the producers of open software do that we did not manage to do. I may not have the right answer to this question, but I do have a suggestion. Again, I have to admit that there is a lot I do not know about how open software is produced — for example, is there some big-picture planning stage before people start actually writing code, and if so, how is it organized? I’d be interested to hear from anyone who can answer this kind of question, and my suggestions may well need to be refined in the light of the answers.
Here, though, is my preliminary diagnosis. What I think we did that made it hard for all but a few people to contribute was to work on something that was not the final document: instead, we used blog comments in order to produce a high-level plan, which gradually became more detailed and precise. The comments were more like a conversation, and once an idea was digested by the participants one could leave the relevant comment behind and move on. Of course, some of the ideas made it into the eventual proof, but by that time they had been discussed in several other comments and their outer form had often been substantially modified.
Now it might seem as though we could not have done otherwise: it looks like a pretty essential feature of solving an unsolved mathematical problem that one does not know in advance what that proof will look like; and it also seems as though the best way to find out is to start with high-level thoughts and lower the level only when a thought seems to be promising. I do not want to deny any of that. What I would like to suggest is that we change what we think of as the “final document”. The obvious notion of “final document” is a write-up of the argument that eventually works, but there is a different notion that might serve as a better model for Polymath projects. I’m not quite sure what the best name for it is, but a first attempt is “proof-discovery tree”.
I am not going to discuss what the best implementation would be, because I do not know enough about what wiki-like facilities are out there, but the basic idea would be to produce an online document that thoroughly investigated all reasonable approaches to the main problem and arranged them in a natural hierarchical way. If, say, this was done on a wiki, then the main page would have links to subsidiary pages that would discuss very general ideas. (In the case of DHJ(3), one of these would have been the idea that we started with, namely, to model a proof on the triangle-removal approach to the corners problem.) Each of these general pages would naturally throw up several questions, and there would be links from these questions to pages at the next level of the tree, one page devoted to each question. A big priority in all these lower-level pages would be to make them as self-contained as possible, so that one could treat the whole process recursively: in theory you could go to a lower-level page and treat it just as you would the main problem, proposing general approaches to it, asking questions connected with those approaches, and so on. Of course, some of these lower-level questions might not be very interesting in isolation, but if you wanted to understand the motivation for them then all you would have to do is go up a level or two to see how they arose.
What would determine when a branch of this tree of web pages ended? It would be when a question was definitively answered. This definitive answer could well propagate up a few levels in the tree: for example, it might be a counterexample to a conjecture one level up, which might itself be so obviously necessary for the success of an approach outlined one level up still that that approach could be definitively labelled as not working (in which case one would put a note to that effect, but leave the lower parts of the tree that explained why it didn’t work), and so on. A complete proof-discovery tree could then be defined as one where all its branches had definitive endings, though it seems highly unlikely that this would ever be achieved for a problem such as DHJ. A successful proof-discovery tree could perhaps be defined recursively as follows: at the top level, one would have a precise approach to the problem, with links to subproblems that be sufficient, if solved, to solve the main problem, and each of these subproblems would have successful proof-discovery trees. The base case would simply be a question with a definitive answer.
In general a proof-discovery tree would have far more information than just a proof of a theorem: it would contain explorations of many other related ideas, and they would be organized in such a way that even if the tree was not a successful one, the document would make it easy to see what ideas had been considered and either rejected or temporarily abandoned. Such a document would be similar to the long sequence of comments that resulted from Polymath1, but with two differences, one major and one minor. The minor difference is that not everything in those comments would be worth including in a proof discovery tree. The major difference is that the logical structure of the mathematical ideas would be far more apparent. This would be a huge advantage for anybody who wanted to contribute to the project: they could simply follow a branch that interested them until they got to the end, and at that point they would attempt to make a contribution. Or if they preferred they could jump straight to a fairly deep point in the tree and think about a subproblem in isolation.
How might this all work in practice? I think it could be done in a way that is not too different from the way Polymath1 was organized, but there would be a change of emphasis. Instead of the blog conversation being seen as primary and the wiki being an add-on, the more codified proof-discovery tree would be the main focus of attention. However, there would still be a blog conversation. A typical contribution to the collaboration might be the creation of a new page of the proof-discovery tree and a brief explanation on the blog of what one had done and why. But it might be a minor edit to the proof-discovery tree (perhaps to make some page easier to understand), in which case a blog comment would not always be necessary — though for more elaborate edits it probably would be.
Why bother with the blog comments at all? Well, the linear structure of Polymath1 had definite advantages as well as disadvantages. The main advantage was that it was easy to find out what had been done recently. It was also good to have personal contact with other participants and to keep track of who had said what. And it would almost certainly be useful to be able to make blog comments that did not obviously fit into a proof-discovery tree.
My hopes for Polymath1 before it started were that it would be possible to make contributions without much effort. My reason for believing in this possibility was that, as Michael Nielsen elegantly put it, the solution to a problem arises as a result of an aggregation of small insights. I hoped that it would be possible to break the process of discovery down into sufficiently small steps that each one was fairly easy.
To some extent, that is what happened, but a serious problem with the idea was that, as I have already mentioned, having a small insight often depends on a rather deep understanding of the problem at hand. (If nothing else, this understanding helps one recognise which ideas are likely to be helpful.) A second problem is that a small idea can often depend on some other rather large ideas. For instance, “Mimic the proof of Theorem X” could be a small idea in the sense of being an idea that one can think of quickly and express in just six words, but quite a big idea in another sense if the proof of Theorem X has many stages, some quite technically complicated.
If we were to organize a Polymath project in the way that I am suggesting, then these two difficulties could be alleviated to some extent. We would value very highly the formulation of precise questions with yes/no answers, because such questions can be considered in isolation. Somebody adding such a question to the proof-discovery tree would be expected to explain it very carefully, and to present it as though it were the main question. This would be quite a lot of work, but the payoff would be that others would find it much easier to contribute. And in any case that kind of work could also be done collaboratively. Also, if somebody proposed a high-level approach such as “Mimic the proof of Theorem X,” the expectation would be that they, or others, would add links to detailed explanations of what Theorem X was and how it was proved.
If Polymath1 had been organized this way, then my initial contribution would have been to add to the top-level page (the main content of which would be a description of the density Hales-Jewett theorem), “Approach 1: mimic the triangle-removal approach to the corners theorem.” This would have been a link to an article explaining that idea in more detail. On the more detailed page there would have been the definition I gave of the tripartite graph in which triangles corresponded to combinatorial lines. There would also have been a link to a page explaining the triangle-removal proof of the corners theorem (on which there would have been a link to a page explaining the statement and proof of Szemerédi’s regularity lemma). And there would have been an enumeration of the definitions and proof steps associated with the proof of the corners theorem for which analogues were needed. These would have been hyperlinked to pages discussing them in more detail. One of these pages would, for example, have been a link to a page with the following subproblem: is there a usable analogue of Szemerédi’s regularity lemma for subgraphs of the tripartite graph where you join two sets if they are disjoint? And so on.
I have slightly oversimplified matters, because the logical structure of a proof-discovery tree would not always be as clear-cut as the above account would suggest. For example, if somebody proposes a variant of a question on the grounds that it might illuminate that question, then how does such a proposal fit into a proof-discovery tree? Here, I would envisage sticking to the tree structure, but making clear that one was not talking about formal logical implication. For instance, if a node of the tree was concerned with trying to prove Statement A, then Approach 1 might be, “Prove Statement B first, and then modify the argument to give a proof of Statement A.” There would be no guarantee that this approach would succeed, even if one managed to prove Statement B, but one could still have a link to a page all about Statement B. If the Statement B node ended up as a successful one, then one would go back to the Approach 1 node and follow a different subtree that was devoted to the question of how to modify the (now known) proof of Statement B. That subtree would be connected to Statement A in a more precise logical way.
My ultimate fantasy is that it might be possible to solve a problem without anybody taking a global view: everybody would concentrate on local questions, and at some point the proof-discovery tree would become a successful one. Success would be a purely formal property that one could verify automatically. How? Well, each time you had a node of the tree at the top of a successful tree, you would go to its parent node and make a note to the effect that one of the ingredients needed for that node to be successful had now been supplied. If it was the last ingredient then you would iterate this process, and if the top node became successful then you would be done.
I should explain further what I mean by “global view”. In one sense the initial, very general nodes of the tree would constitute global views of the problem. But that is not what I am talking about. These nodes would still be local when considered as part of the proof-discovery tree: it might be possible to understand that a certain general approach was worth trying but have only a very limited appreciation of how that idea could play out. So what I mean by “global view” here is a good understanding of a large part of the tree rather than merely an understanding the vertices that happened to be near the root.
If some fantasy like this became a reality, so that in an essential way the problem was solved by a collective super-brain and not by the combined global understanding of a handful of individual brains, then the problems about credit would be even more interesting. An ultimately successful Polymath project would be one in which nobody had done anything very impressive (just as a neuron doesn’t have deep thoughts) and yet the collective achievement was a notable one. Why would anybody want to contribute to such a project? I’m not sure, but I’m also not sure why so many people are prepared to give so much of their time to the open software movement. Perhaps it might be for some strange reason like wanting to know the solution to an interesting mathematics problem.