Leaning In! 2025 has come and gone. How did it go?
The inspiration for doing Leaning In! came from the tutorial at BOBKonf 2024 by Joachim Breitner and David Christiansen. The tutorial room was full; in fact, it was overfull and not everyone who wanted to attend could attend. I’d kept my eye on Lean from its earliest days but lost the thread for a long time. The image I had of Lean came from its version 1 and 2 days, when the project was still closely aligned the aims of homotopy type theory. I didn’t know about Lean version 3. So when I opened my eyes and woke up, I was in the current era of Lean (version 4), with a great language, humongous standard library, and pretty sensibile tooling. I was on board right away. As an organizer of Racketfest, I had some experience putting together (small) conferences, so I thought I’d give it a go with Lean.
I announced the conference a few months ago, so there wasn’t all that much time to find speakers and plan. Still, we had 33 people in the room. When I first started planning the workshop, I thought there’d only be 10-12 people. This was my first time organizing a Lean workshop of any sort, so my initial expectations were very modest. I booked a fairly small room at Spielfeld for that. After some encouragement from Joachim, who politely suggested that 10-12 might be a bit too small, I requested a somewhat larger room, for up to 20 people. But as registrations kept coming in, I needed to renegotiate with Spielfeld. Ultimately, they put us in their largest room (a more appropriately sized room exists but had already been booked). The room we were in was somewhat too big, but I’m glad we had the space.
Lean is a delightful mix of program verification and mathematics formalization. That was reflected in the program. We had three talks,
Bringing ISA semantics to Lean and Lean-MLIRby Leo Stefanesco,
Proving correctness of Fast Discrete Fourier transformsby Henning Thielemann, and
Formalizing Possibly Infinite Trees of Bounded Degree, by Lukas Gerlach
that, I’d say, were definitely more in the computer science camp.
With Lean, it’s not so clear at times. Lukas’s talk was motivated by
some applications coming from computer science but the topic makes
sense on its own and could have been taken up by a mathematician. The
opening talk,
Recursive definitions
, by Joachim Breitner, was about the internals of Lean itself, so I
think it doesn’t count as a talk on formalizing mathematics. But it
sort of was, in the sense that it was about the logic in the Lean
kernel. It was computer science-y, but it wasn’t really about
using Lean, but more about better understanding how Lean
works under the hood.
It is clear that mathematics formalization in Lean is very much
ready for research level mathematics. The mathematics library is
very well developed, and Lean is fast enough, with good enough tooling,
to enable mathematicians to do serious stuff. We are light years
past noodling about the Peano axioms or
How do I formalize a group?
. I have a guy feeling that we may be
approaching a point in the near future wher Lean might become a
common way of doing mathematics.
The part of the event that probably didn’t go quite as I had planned was the Proof Clinic in the afternoon. The intention of the proof clinic was to take advantage of the fact that many of us had come to Berlin to meet face-to-face, and there were several experts in the room. Let’s work together! If there’s anything you’re stuck on, let’s talk about it and make some progress, today. Think of it as a sort of micro-unconference (just one hour long) within a workshop.
That sounds good, but I didn’t prepare the attendees well enough. I only started adding topics to the list of potential discussion items in the morning, and I was the only one adding them. Privately, I had a few discussion items in my back pocket, but they were intended just to get the conversation going. My idea was that once we prime the pump, we’ll have all sorts of things to talk about.
That’s not quite what happened. We did, ultimately, discuss a few interesting things but it took a while for us to warm up. Also, doing the proof clinic as a single large group might not have been the best idea. Perhaps we should have split up into groups and tried to work together that way.
I also learned that several attendees don’t use Zulip, so my assumption that Zulip is the one and only way for people to communicate about Lean wasn’t quite right. I could have done better communication with attendees in advance to make sure that we coordinate discussion in Zulip, instead of simply assuming that, of course, everyone is there.
Will there be another edition of Leaning In!
Yes, I think so. It's a lot of work to organize a conference (and there's always more to do, even when you know that there's a lot!). But the community benefits are clear. Stay tuned!