# Automated search for bijective proofs

In enumerative combinatorics, a bijective proof that $|A_n| = |B_n|$ (where $A_n$ and $B_n$ are finite sets of combinatorial objects of size $n$) is a proof that constructs an explicit bijection between $A_n$ and $B_n$. Bijective proofs are often prized because of their beauty and because of the insight that they often provide. Even if a combinatorial identity has already been proved (e.g., using generating functions), there is often interest in finding a bijective proof.

In spite of the importance of bijective proofs, the process of discovering or constructing a bijective proof seems to be an area that has been relatively untouched by computers. Of course, computers are often enlisted to generate all small examples of $A_n$ and $B_n$, but then the process of searching for a bijection between $A_n$ and $B_n$ is usually done the "old-fashioned" way, by playing around with pencil and paper and using human insight.

It seems to me that the time may be ripe for computers to search directly for bijections. To clarify, I do not (yet) envisage computers autonomously producing full-fledged bijective proofs. What I want computers to do is to search empirically for a combinatorial rule—that says something like, take an element of $A_n$ and do $X$, $Y$, and $Z$ to produce an element of $B_n$—that appears to yield a bijection for small values of $n$.

One reason that such a project has not already been carried out may be that the sheer diversity of combinatorial objects and combinatorial rules may seem daunting. How do we even describe the search space to the computer?

It occurs to me that, now that proof assistants have "come of age," people may have already had to face, and solve (at least partially), the problem of systematically encoding combinatorial objects and rules. This brings me to my question:

Does there exist a robust framework for encoding combinatorial objects and combinatorial rules in a way that would allow a computer to empirically search for bijections? If not, is there something at least close, that could be adapted to this end with a modest amount of effort?

In my opinion, Catalan numbers furnish a good test case. There are many different types of combinatorial objects that are enumerated by the Catalan numbers. As a first "challenge problem," a computer program should be able to discover bijections between different kinds of "Catalan objects" on its own. If this can be done, then there is no shortage of more difficult problems to sink one's teeth into.

• FindStat is probably the closest thing, but this is just Python-based brute-force checking of small cases, not Coq-based generation of proofs or definitions. I'm afraid you're asking for mid-21st Century computer science; bijective proofs can contain pretty much every kind of mathematical reasoning, and I haven't even seen a program generating synthetic proofs of results in triangle geometry so far (an obvious first step). – darij grinberg Dec 8 '17 at 22:41
• And as someone who spent months trying to learn proof assistants and failed to get to a point where I could actually use them in my research, I would not claim they have come of age, unfortunately. – darij grinberg Dec 8 '17 at 22:43
• That said, you might want to talk to Florent Hivert, who has written a proof of the Littlewood-Richardson rule and various other things in ssreflect. – darij grinberg Dec 8 '17 at 22:44
• Okay, this sounds a tad closer to the current frontier, although probably still beyond it. Talk to the FindStat people (Viviane Pons and others). Also, Stephen Wolfram might have some thoughts about it -- after all, his atlas of elementary cellular automata was an attempt at brute-forcing combinatorial transformations (and one of them is related to RSK, as far as I recall). Still, if one isn't careful, I feel that fishing out the relevant stuff from the space of possibilities will be just as hard as finding the bijections by hand. – darij grinberg Dec 9 '17 at 1:38
• I know Tom Denton used machine learning techniques to devise candidate bijections, but this was all specific to the problem he was working on. While not automated, this type of step seems valuable and is possible with current tools. You might want to talk to him about his thoughts on the matter. – Zachary Hamaker Dec 9 '17 at 1:39

As mentioned in the comments, the FindStat project is aiming at what you want. Concerning the size: it contains currently about 1000 'combinatorial statistics', that is maps $s:\mathcal C_n\to \mathbb Z$ on some (graded) set of 'combinatorial' objects $\mathcal C_n$ and about 150 'combinatorial maps' between two collections. What makes FindStat powerful is the (trivial) ability to compose maps. For example, for Catalan objects we obtain about 1.500.000 a priori different statistics.

Let me point out some possible ways of using it, in the spirit of the question.

1. 'automatically producing a bijection mapping one statistic to another' is demonstrated in Two statistics on the permutation group and Combinatorics problem related to Motzkin numbers with prize money I.

2. 'automatically producing conjectures' is achieved by clicking on 'search for distribution' on any of the statistics in the statistics database. The result is a list of statistics that are conjecturally equidistributed with the given statistic, but where a map transforming the first into the second might not be known. A classic is http://findstat.org/St000012.

3. it is easy to write a script that iterates 2. to find a 'partner' for a given pair of equidistributed statistics. An example is given in the comments to https://math.stackexchange.com/questions/2511943/leaf-labelled-unordered-rooted-binary-trees-and-perfect-matchings. Note that this meanwhile has a proof, also (essentially) discovered by FindStat.

4. a different kind of conjectures is provided by the list of 'experimental identities' found when selecting any of the maps at http://findstat.org/MapsDatabase. I am guessing that not all identities at http://findstat.org/Mp00101 are immediately obvious.

5. I am also working on a new package that checks whether a statistic satisfying given constraints can possibly exist. But that's for later...

Does the OEIS count? Three of your papers are listed in https://oeis.org/wiki/Works_Citing_OEIS as having used the help of either OEIS or Superseeker , I presume to help find a (potential?) bijection.

• No. OEIS can help you discover that your combinatorial objects seem to be equinumerous with some other combinatorial objects, but it does not help you find the combinatorial rule that transforms one type of object into the other. – Timothy Chow Dec 10 '17 at 19:53