Talk: 17:00–17:45 (English)
Recursive Definitions in Lean
The logic underlying the Lean programming language and theorem prover does not know recursive functions, yet Lean users can define functions recursively. In this session we’ll get to look at how Lean translates the user’s specification into something that the logic understands, whether by structural recursion, well-founded recursion or the brand-new partial fixpoint strategy. We’ll also see how this affects compiled code (namely not at all), and the difference between partial and unsafe.
This session will likely contain high amounts of improvised live-coding and benefit greatly from your questions, suggestions and discussions.
(This spontaneous talk is based on the talk given at Leaning in 2025.)
The material presented can be found at https://github.com/nomeata/lean-bobkonf-2025.
Joachim Breitner
Ever since Joachim has found beauty and elegance in Functional Programming, he’s been working with and on functional programming languages, in particular Haskell.
He’s also always been fascinated by Interactive Theorem Proving and his academic persona used Isabelle and Coq for formalize mathematics and verify programs.
These two interests find their natural synthesis in the Lean programming language, and Joachim joined the Lean FRO to work on the Lean compiler itself.
Besides such serious nerdery, you’ll find Joachim dancing Swing and Tango (in particular when traveling to conferences, so talk to him if you want to join), paragliding and unapologetically making bad puns.
