*What do you with six mathematicians, spread across the world, who all want to solve the same problem but have never all been in the same room? If that problem involves computational or experimental mathematics, one great answer is Collaborate@ICERM.

ICERM is the Institute for Computational and Experimental Research in Mathematics, associated with Brown University in Providence, RI. It is the newest of the eight NSF-funded Mathematical Institutes, and like many of the others it runs semester-length thematic programs and large workshops throughout the year. However, ICERM also has a program for small groups to apply for funding to meet at the Institute to collaborate on projects that are in line with the Institute’s mission, which is “to support and broaden the relationship between mathematics and computation and, specifically, to expand the use of computational and experimental methods in mathematics, to support theoretical advances related to computation, and to address problems posed by the existence and use of the computer through mathematical tools, research and innovation.” Collaborate@ICERM takes applications from groups of 3–6 people to meet at ICERM during the summer or over winter break. The American Institute of Mathematics has a similar program in SQuaREs.

My collaborator Chris Rasmussen and I found ourselves in the above-described situation.[ii] We had started working on a project in 2012, one component of which forced us to write code to solve the equation x+y=1, where x and y are S-units in a number field K. In simple terms, S is a set that contains some primes of K, and the S-units are just the elements of K generated by these primes, their inverses, and the units of the field. So the {2,3}-units of the rational numbers are just the set of positive and negative fractions that only involve powers of 2 and 3. In this world, (1/3, 2/3) is a solution to the equation. By Alan Baker’s work, it turns out that there are only finitely many solutions for any given K and S, and their size can be bounded, a fact that leads to may interesting finiteness results in number theory. Often, enumerative problems rely on actually finding all of the solutions for a given number field, a problem referred to as “solving the S-unit equation”. This is a difficult computational problem, involving work of Baker and Wustholz, Smart, De Weger, and many others. In our project, Chris and I wrote code in SageMath (also known as Sage) to solve the S-unit equation in the fields we needed, which meant that we didn’t need to implement all parts of the general method. We wanted to generalize our code and incorporate it into future distributions of Sage so that others did not have to repeat our suffering. I led a group at a Sage Days workshop in 2014 to start this implementation. The group, Alejandra Alvarado, Christelle Vincent, McKenzie West and I, made some progress, but didn’t get to the most difficult parts of the generalization. We planned to work on it after the workshop but made no progress–it was nobody’s primary focus and we were all spread out across the country. In spring 2016, Chris and I heard about the Collaborate@ICERM program and put in an application. We had just heard that our proposal was accepted when Christelle came into contact with Angelos Koutsianas, a recent PhD from Warwick who had also needed to solve some special cases of the S-unit equation for his thesis project. He also had Sage code that did a big part, but not all, of the general method. Talking to Angelos, we realized that between the two projects there was a complete implementation—we just needed to bring it all together! We were luckily able to add Angelos to the ICERM group, and he was luckily available for the week we’d chosen in January.

So that’s how it happened that the six of us came to Providence in early January, all having worked on this same difficult problem but never having been in the same room before. First of all, it was a joy to meet Angelos, who had been working mostly on his own on essentially the same problem as Chris and I, and so had dealt with many of the same confusions and difficulties that we had faced. How great to meet someone who has shared the same extremely obscure forms of suffering! We often found ourselves laughing out loud at a shared aggravation with a strangely phrased passage of a source paper. And it was wonderful to work with everybody else again—I love this group! We all bring different skills to the work, and everybody has something very important to contribute. This project would not have been as successful if any one of us had been missing. And, given that we came from Oregon, Illinois, Vermont, Connecticut, Pennsylvania, and the Netherlands/Greece, this never would have happened without the support of ICERM.

So this whole blog post is in some ways a giant thank you to ICERM. They did everything possible to support us, beginning with an application process in which we were helped directly both by the previous director Jill Pipher and the current director Brendan Hassett. The staff at ICERM are extremely helpful and the facilities are world-class. ICERM gave us offices and let us use the entire space for the week our collaboration, as well as installing Sage on the computers for us. ICERM has great technological resources at its disposal, as befits an institute focused on computation and experimentation. They arranged for us to go out to a “conference dinner”. On top of it all, the place is beautiful. ICERM takes up the top two floors of a building beside the river in downtown Providence. Three walls of the lecture hall and some walls in other parts of the facility are enormous floor to ceiling windows looking out over the town. I gave an introductory talk to the group in this lecture hall and it felt like I was in a movie or something.

In the end we didn’t need advanced computing resources as much as we just needed to be in the same room. After we all got reacquainted with the project, we brainstormed tasks and made a wall of post-it notes to organize our efforts. Then everybody chose projects from the wall and we got started. Of course things didn’t go entirely as planned—several days of work in translating some code into a lower-level language in hopes of speeding it up actually ended up slowing it down (!!). There were annoying bugs, like an inexplicable clash of data types that had to be fixed in every tiny part of the code. We worked hard all week, hoping to have a complete working function by 4:30 on Friday, when our friend and expert in the field Bjorn Poonen was planning to stop by and see our progress. When Bjorn arrived we were really close, but hadn’t quite assembled everything. We were tired and hungry and bummed that we didn’t have anything to show, but victory was too close to give up, so we went back to work. Two hours later we were done. We chose a field, and a set of primes, hit enter, and it worked! Bjorn had been hanging out working on an index for his book, so we even got to show off our function. Victory! Celebration!! Then we all headed out for pretzels and beer.

This collaboration was a tremendously positive experience for me, and we produced something that will be useful for a lot of other people. A victory all around. However, it did bring up the question of how much the rest of the mathematical world (like, say, a tenure committee) will care that we created this implementation. We are very proud of our work, and I will list the code as a product on my CV, but will it “count” in the same way that a paper would? I have talked to several computational mathematicians who have been frustrated that their computational and implementation work is not measurable in the same way that other mathematical work might be. Our group decided to look into journals that publish articles on interesting and substantial implementations. There seem to be a few possibilities, but it is hard to find a good fit for work like this. (Which brings me to something I plan to write about next time—what journals are out there for work that is a little different from the norm, or that are especially friendly for early career people?) Whether we find a venue to publish the code or not, we should be submitting it soon for review to be eventually incorporated into SageMath. So I’ll just make a pitch right here—check upcoming Sage releases for the awesome function solve_S_unit_equation(K, S)!! Um, just don’t make S too big, or you might be waiting a while. I mean it works, but come on, we’re not miracle workers.

What experiences have you had collaborating at an institute? Are there any other programs that you would suggest for collaborations like this? Let us know in the comments!

[*] A note on the title: Okay, I guess a second institute-mania post is starting a dangerous trend. Now I will have to try to visit all the math institutes and come up with some kind of mania theme. For MSRI I will have to do some crossword style title, and who knows where that will lead…

[ii] Long paragraph about how we got there follows—feel free to skip on if you just want to hear about how awesome ICERM is.