We give an introduction into the history of proof assistants, recent formalization projects, and describe typical challenges when formalizing mathematics.
We demonstrate how to use prove theorems in Lean, in the process learning the most common tactics and how to write idiomatic Lean code.
Before the seminar, we will assist in installing Lean and mathlib from 2.30pm in Room 107 Greg Hjorth.Machine learning for theorem proving has classically focused on lemma selection and guidance of automated reasoning processes, where statistical methods help navigate large formal libraries and search spaces. More recent work has expanded this perspective toward coming up with useful conjectures or even theory exploration, refocusing the attention from supervised tasks on given statements to proposing useful new ones. In the second half of the talk I will turn to our most recent results on automating large parts of the formalization process, combining modern LLMs with proof automation. I will discuss the direct use of multiple collaborating LLMs, providing them with effective formalization incentives, and ways such approaches can be supervised towards a particular mathematical goal.
Formalising mathematics demands paying attention to things typically taken for granted, and this includes ensuring lemmas that apply to a additive group or a ring naturally apply to a field, with minimal friction. In traditional mathematics this would be as short as to note a field is an additive group in its operations, but to treat the field as an additive group, the field properties are implicitly forgotten. In Lean 4, this is done via the type-class system, such that when one states there is a field 'instance', this also comes with the appropriate instances that build up to the field. Conversely, if for example one defines and proves a field instance on the reals, it will automatically come with the associated substructures and operations. This talk describes how the type class system has been used to build up algebraic structures in Lean 4 and mathlib, assuming minimal previous knowledge of Lean.