In computerüberprüfbaren Beweisen sehen manche die Zukunft der Mathematik. Darüber, auf welchen formalen Grundlagen man Computerbeweise aufbauen sollte, gab es in den letzten Wochen einige hitzige Debatten.

An möglichen Grundlagen für die Mathematik und insbesondere für formale Theorembeweiser gibt es neben der von den meisten Mathematikern verwendeten Mengenlehre („set theory“) noch verschiedene Arten von Typentheorien: „simple type theory“, „dependent type theory“ und „homotopy type theory“. Letztere, auch als univalente Grundlagen bezeichnet, wurde vor allem von Wladimir Wojewodski propagiert, der leider vor drei Jahren verstorben ist.

Die jüngste Debatte war durch einen schon vor über einem Jahr von Kevin Buzzard gehaltenen Vortrag „The Future of Mathematics“ ausgelöst worden.

In diesem Vortrag hatte er vertreten, dass der auf „dependent type theory“ beruhende Beweisassistent Lean als einziger in der Lage sei, alle Mathematik zu formalisieren.

Große Aufmerksamkeit bekam dieser Vortrag durch eine am 19. November auf mathoverflow gestellte, bisher 17000 mal gelesene Frage What makes dependent type theory more suitable than set theory for proof assistants?. In der Diskussion dazu wird recht deutlich, dass auf Typentheorie basierende Beweiser bisher mehr leisten als auf Mengenlehre beruhende, und dass mit den univalenten Grundlagen bisher wenig umgesetzt wurde (während in Coq, was auf ähnlichen Grundlagen beruht, aber auch ein paar mit univalenten Grundlagen nicht mögliche Dinge kann, schon viel an Algebra implementiert wurde bis hin zum Satz von Feit-Thompson mit seinem ursprünglich 254 Seiten langen Beweis).

Die mit Abstand meisten Upvotes erhielt die Antwort von Andrej Bauer. Ein Auszug daraus:

Mathematicians omit a great deal of information in their writings, and are quite willing to sacrifice formal correctness for succinctness. The reader is expected to fill in the missing details, and to rectify the imprecisions. The proof assistant is expected to do the same. To illustrate this point, consider the following snippet of mathematical text:

– Let U and V be vector spaces and f\colon U \to V a linear map. Then f(2 \cdot x + y) = 2 \cdot f(x) + f(y) for all x and y.

Did you understand it? Of course. But you might be quite surprised to learn how much guesswork and correction your brain carried out:

* The field of scalars is not specified, but this does not prevent you from understanding the text. You simply assumed that there is some underlying field of scalars K. You might find out more about K. in subsequent text. (K. is an existential variable(https://coq.inria.fr/refman/language/extensions/evars.html).)

* Strictly speaking “f : U \to V“ does not make sense because U and V are not sets, but structures U= (|U|, 0_U, {+}_U, {-}_U, {\cdot}_U) and V = (|V|, 0_V, {+}_V, {-}_V, {\cdot}_V). Of course, you correctly surmised that f is a map between the *carriers*, i.e., f : |U| \to |V|. (You inserted an implicit coercion(https://coq.inria.fr/distrib/current/refman/addendum/implicit-coercions.html) from a vector space to its carrier.)

* What do x and y range over? For f(x) and f(y) to make sense, it must be the case that x\in |U| and y \in |U|. (You inferred(https://en.wikipedia.org/wiki/Type_inference) the domain of x and y.)

* In the equation, + on the left-hand side means +_{U}, and + on the right-hand side {+}_V, and similarly for scalar multiplication. (You reconstructed the implicit arguments(https://coq.inria.fr/refman/language/extensions/implicit-arguments.html) of +.)

* The symbol 2 normally denotes a natural number, as every child knows, but clearly it is meant to denote the scalar 1_K +_K 1_K. (You interpreed “2“ in the notation scope(https://coq.inria.fr/refman/user-extensions/syntax-extensions.html#notation-scopes) appropriate for the situation at hand.)

The vernacular V must support these techniques, and many more, so that they can be implemented in the elaborator. It cannot be anything as simple as ZFC with first-order logic and definitional extensions, or bare Martin-Löf type theory. You may consider the development of $V$ to be outside of scope of mathematics and logic, but then do not complain when computer scientist fashion it after their technology.

I have never seen any serious proposals for a vernacular based on set theory. Or to put it another way, as soon as we start expanding and transforming set theory to fit the requirements for $V$, we end up with a theoretical framework that looks a lot like type theory. (You may entertain yourself by thinking how set theory could be used to detect that f : U \to V above does not make sense unless we insert coercions – for if everthying is a set then so are U and V, in which case f : U \to V *does* make sense.)

Möglicherweise als Reaktion auf diese Debatte hat Peter Scholze nun in Buzzards Blog eine Formalisierung seines nach eigener Aussage bisher wichtigsten Theorems vorgeschlagen, einem Satz aus seiner Arbeit mit Dustin Clausen über kondensierte Mathematik:

Let 0\textless p^\prime\textless p\leq 1 be real numbers, let S be a profinite set, and let V be a p-Banach space. Let \mathcal M_{p'}(S) be the space of p’-measures on S. Then
\mathrm{Ext}^i_{\mathrm{Cond}(\mathrm{Ab})}(\mathcal M_{p'}(S),V)=0
for i\geq 1

Im verlinkten Blog erklärt er, worum es geht und warum er diesen Satz wichtig findet. Grob gesagt geht es um eine Algebraisierung der Analysis, wie in jenem Blog erklärt wird. Andere Konzepte aus Scholzes Arbeit wie die perfektoiden Räume waren bereits in Lean formalisiert worden. Mit dieser neuen Herausforderung soll nun wohl endgültig die Rangordnung zwischen den verschiedenen Theorembeweisern geklärt werden:-)

Nachtrag: Zu den grundsätzlicheren Fragen siehe die Diskussion zu Michael Harris‘ Artikel The inevitable questions about automated theorem proving.

Kommentare (6)

  1. #1 rolak
    23. Dezember 2020

    moin Thilo, ist ‘≨’ (oben nur ein halbes ‘gleich’) nur ein explizites ‘mit Abstand kleiner’ oder gibt es einen realen Unterschied zum (imho ebenfalls ‘≠’ implizierenden) ‘<‘?

  2. #2 Thilo
    23. Dezember 2020

    Das war nur ein TeXnisches Problem. Das Kleiner-Zeichen wurde als Teil eines HTML-Symbol interpretiert, deshalb so.

  3. #3 rolak
    23. Dezember 2020

    TeXnisches (..) interpretiert

    Allerdings, allerdings nur das, was als Quelltext dahergeschwommen kam – und da steht gemäß Seitenquelle ‘\lneq’, nicht ‘\textless’. Oder meintest Du, der WP-input-Verwurster hat das ‘<‘ automagisch ge-\lneq-t oder kann WP-LaTeX etwa kein \textless? schaumerma
    0\textless p^\prime\textless p\leq 1

  4. #4 Thilo
    23. Dezember 2020

    Ja, funktioniert.

  5. #6 rolak
    19. Juni 2021

    nature:: Mathematicians Welcome [absichtlich gekürzt 😎]

    Schönen Dank, nicht nur wg der dort erwähnten Reverenz daran (LTE ist mehr als 4G-Surfen), sondern hauptsächlich wg des Ausblicks in (von mir) ungeahnte Nutzen der Anwendung.