Wahrheitsorakel in Lisp: Eine kuriose Geschichte über Typentheorie, Curry-Howard-Isomorphismus und call/cc

2025-06-14

Dieser Beitrag versucht, ein „Wahrheitsorakel“ in Lisp zu schreiben – ein Programm, das die Wahrheit oder Falschheit beliebiger mathematischer Aussagen bestimmt. Der Autor führt den Curry-Howard-Isomorphismus ein und erklärt, wie logische Beweise Ausdrücken in der typisierten funktionalen Programmierung entsprechen. Mit der Racket-Funktion call/cc (isomorph zum Satz von Peirce) wird versucht, ein Programm zu implementieren, das zum Satz vom ausgeschlossenen Dritten isomorph ist. Unerwartet liefert das Orakel immer „falsch“, bis versucht wird, auf einen unmöglichen Typwert zuzugreifen. Dies offenbart die Unterschiede zwischen klassischer und konstruktiver Logik und den nicht-standardmäßigen Kontrollfluss von call/cc. Schließlich verwendet der Autor die Metapher eines „Pakts mit dem Teufel“, um dieses seltsame Verhalten zu erklären und den zeitreiseähnlichen Mechanismus hinter call/cc aufzuzeigen.

Mehr lesen
Entwicklung