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.

1 / 2 / Auf einer Seite lesen

Kommentare (4)

  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.