Blog: Forschung

Ich glaube, der Beweis ist falsch

Ob ein mathematischer Beweis korrekt ist oder nicht, lässt sich prinzipiell maschinell überprüfen, weil die zulässigen Argumentationsmöglichkeiten präzise geregelt sind. Im einfachsten Fall müssen dafür aber alle Beweisschritte in einer festen syntaktischen Form angegeben werden, was wiederum für menschliche Leser sehr unangenehm ist: Niemand will sich einen Text in sperriger Sprache durchlesen, in dem der entscheidende argumentative Schritt zwischen einem Wust von anderen Details verschwindet.

Da versierte Leser in der Lage sind, typische argumentative Lücken schnell gedanklich auszufüllen, beschränken sich Beweistexte in der Praxis auf die Details, welche neue Techniken, Tricks und Ideen beinhalten. Die Übermittlung solcher Neuheiten ist dabei ein wichtiges Ziel mathematischer Kommunikation.

In Kombination mit einer immer stärkeren Aufspaltung der Mathematik in Spezialgebiete ergibt sich allerdings die Schwierigkeit, Read more…

Sind Programmfehler unausweichlich?

In jedem größeren Softwareprojekt stellt sich früher oder später die Frage, ob unentdeckte Fehler im Code schlummern und den korrekten Ablauf des eigentlich gewünschten Prozesses in bestimmten Situationen sabotieren. Unter dem Wikipedia-Stichwort Programmfehler findet man hierzu die Aussage, dass als stabil geltende Programme durchaus eine Fehlerdichte von bis zu einem Fehler je 2000 Programmzeilen aufweisen können.

Welche Bedeutung dem Thema zukommt, wird klar, wenn man an die Unfallgefahren in sicherheitskritischen Bereichen und auch die immensen wirtschaftlichen Schäden denkt, die durch Programmfehler entstehen. In der Informatik wird daher über Fehlererkennung und -vermeidung intensiv geforscht und ein großes Sortiment an Lösungsansätzen steht bereits zur Verfügung, wobei man in der Praxis nur eine Verringerung der Fehlerhäufigkeit und keinen hundertprozentigen Schutz erwarten kann. Das liegt auch daran, dass die Fehlerdetektion eine Definition des korrekten Prozessablaufs für alle möglichen Eingabedaten benötigt und diese in vielen Fällen gar nicht präzise vorliegt.

Einen gewissen Sonderfall spielen in dieser Hinsicht Programme der numerischen Mathematik, mit denen Darstellungen von mathematischen Objekten (Zahlen, Mengen, Funktionen, ...) berechnet werden sollen. Da hier sowohl das Ziel als auch der Algorithmus präzise in mathematischer Sprache formulierbar sind, ist die Fehlerfreiheit prinzipiell mit mathematischer Strenge beweisbar. Bei maschineller Prüfung dieses Korrektheitsbeweises und anschließender automatischer Übersetzung des Algorithmus in die gewünschte Programmiersprache, entsteht Programmcode, der frei von syntaktischen und logischen Fehlern ist.

Im Projekt $\mmath$ werden genau solche Compiler entwickelt, wobei sich die zugrunde liegende formale Sprache sehr eng an übliche mathematische Notationen anlehnt. Ausgehend von Grundalgorithmen, deren Korrektheit angenommen wird (analog zu den Axiomen einer Theorie), können dann immer komplexere Algorithmen mit beweisbaren Eigenschaften konstruiert werden.

Eine Absicherung nach unten erhält man ganz im Sinne des axiomatischen Ansatzes von Hilbert dadurch, dass auch die Grundalgorithmen sukkzessive auf immer weniger und möglichst elementare Basisalgorithmen zurückgeführt werden können (Axiomatisches Denken, David Hilbert, Mathematische Annalen, Vol. 78, pp. 405-415, Springer, 1917).

Reine und angewandte Mathematik

Innerhalb der Mathematik spricht man informell und etwas diffus von einem reinen und einem angewandten Zweig, wobei je nach Standpunkt auch etwas deutlicher gefärbte Einteilungen mitschwingen können: So werden Themen der reinen Mathematik von Angehörigen des angewandten Zweigs schon mal als lebensfern, abgedreht und unnötig eingestuft, während angewandte Fragestellungen aus der reinen Perspektive wegen eines geringeren Abstraktionsniveaus oder unpräzisen Begriffsbildungen auch als unmathematisch oder elementar gelten können.

Während solche pointierten Meinungen zum Teil auf die menschliche Eigenart zurückgehen, den eigenen Standpunkt aufwerten zu wollen, so stellt sich doch die Frage, ob sich die beiden Zweige objektiv in ihrer benutzen Arbeitsweise unterscheiden. Read more…