Lambda-Kalkül
Hauptstudium Mathematik und Informatik
WS 2006/07
Vorlesung: Mo 14-16 Uhr, Oettingenstr. 67, Oe 1.35, Fr 12-14 Uhr, Oe 1.35, Andreas Abel
Übung: Fr 12-14 Uhr, Oettingenstr. 67, Oe 1.35, im
zweiwöchigen Wechsel mit Vorlesung
Schein: ja (50% Übungspunkte + mündl. Prüfung)
SWS: 3 Vorlesung + 1 Übung
Aktuelles
- Zusammenfassungen des für die mündliche
Prüfung relevanten Stoffes.
- Skript zum Polymorphismus.
- Letzte Vorlesung am Donnerstag, 08.02.2007, 14-16 Uhr, Raum D1.02 (hinter der Küche).
Datum |
Stoff |
Material |
16.10. VL
| Überblick über Themen des Lambda-Kalküls
|
|
Im Schnelldurchlauf:
Lambda-Terme,
Lambda-Definierbarkeit, Reduktion,
Normalform, Divergenz, Konfluenz, Auswertungsstrategien,
Gleichheit und
Extensionalität, Böhm's Theorem, Modelle,
Getypter Kalkül, Anwendungen von Typsystemen.
Theorem (Böhm): Gegeben zwei verschiedene, geschlossene
βη-Normalformen t und t' und zwei beliebige
Terme r und r'. Dann gibt es Terme s1 ... sn, so dass
((t s1) ... sn) = r und
((t' s1) ... sn) = r'.
Konsequenz: Ungleiche Normalformen können also durch ein
geeignetes Experiment s1...sn unterschieden werden.
Es kann keine Gleichung zwischen verschiedenen, geschlossenen
βη-Normalformen t, t' zur Theorie hinzugefügt werden, ohne sie
inkonsistent zu machen.
| 20.10. VL
| α-Äquivalenz, Substitution, β-Äquivalenz
|
|
Formale Definition der λ-Terme als Bäume, deren Höhe und Größe. Freie und gebundene Variablen, Variablenumbenennung, α-Äquivalenz, Barendregt'sche Variablenkonvention. Substitution und β-Äquivalenz.
| 23.10. VL
| Strukturelle Induktion, kongruente Hülle, β-Reduktion
|
|
Strukturelle Induktion am Beispiel eines Lemmas über Substitution. Definition der kongruenten und transitiven Hülle durch Regeln. Beweis der Korrektheit der transitiven Hülle durch Regelinduktion. Schrittweises Bilden der kongruent-symmetrisch-transitiv-reflexiven Hülle. Definition der β-Reduktion. Redex und Redukt.
| 27.10. Ü
| Church-Ziffern, Regel-Induktion
| Übungsblatt 1
|
Es wurden Präsenzaufgaben selbständig erarbeitet, präsentiert, und diskutiert:
Definition von Tupeln (Paaren) und Projektionen im Lambda-Kalkül, Addition auf Church-Ziffern, Fibonacci-Funktion im Lambda-Kalkül. Ausserdem eine Aufgabe zur Regelinduktion.
| 30.10. VL
| Lokale Konfluenz
|
|
Begriffe: Diamanteigenschaft impliziert Konfluenz impliziert
lokale Konfluenz. β-Reduktion ist lokal konfluent, hat
jedoch Diamanteigenschaft nicht. Standardbeispiel für lokal
konfluent, aber nicht konfluent. Weiteres Beispiel: δ t t
→ ε (Klop's Doktorarbeit, 1980). Parallele Reduktion.
| 03.11. VL
| Konfluenz
| Abgabe Üb. 1
|
Eigenschaften der parallelen Reduktion: Einbettung der Ein-Schritt-Reduktion, Einbettung in Mehr-Schritt-Reduktion, Abschluss unter Substitution. Vollständige Entwicklung. Jede parallele Reduktion lässt sich zur vollst. Entwicklung "verlägern"; daraus folgt die Diamanteigenschaft der par. Red. und die Konfluenz von β.
Normalform. Induktive Def. der $\beta$-Normalformen.
Standard- und Turing'scher Fixpunktkombinator.
| 06.11. VL
| Lambda-Definierbarkeit
|
|
Induktive Charakterisierung der Klasse der totalen berechenbaren (μ-rekursiven) Funktionen. Repräsentation von Komposition, primitiver und μ-Rekursion im λ-Kalkül.
Jede μ-rekursive Funktion ist λ-definierbar.
| 10.11. Ü
| Rekursion, Konfluenz
| Übungsblatt 2
| 13.11. VL
| Standardisierung
|
|
(Schwache) Kopf-Reduktion und -Normalform, Standardreduktion, Beweis der Standardisierung, Korrektheit und Vollständigkeit der (schwachen) Kopf-Reduktion.
| 17.11. VL
| Schwache Normalisierung, Äußere Reduktion, η-Reduktion
|
|
Durch Einschränkung der rechten Seite der Standardreduktionsrelation auf β-Normalformen erhält man eine induktive Charakterisierung von schwach β-normalisierenden Termen. Die äußere Reduktion (leftmost-outermost reduction) ist eine deterministische Reduktionsstrategie, die schwach normalisierende Terme in ihre Normalform überführt. η-Reduktion ist eine Optimierung, die überflüssige λ-Abstraktionen entfernt. Sie ist konfluent und stark normalisierend.
| 20.11. VL
| Konfluenz von βη, Beginn η-Aufschiebung
|
|
η kommuntiert mit β, nach dem Lemma von Hindley und Rosen ist βη-Reduktion damit konfluent. Ein Term hat genau dann eine βη-Normalform, wenn er eine β-Normalform hat. Die schwierige Richtung &arrow; wird durch η-Aufschiebung bewiesen: In einer βη-Reduktionsfolge kann man die η-Schritte nach hinten verschieben. Dies bestätigt formal die Klassifikation der η-Reduktion als bloße Optimierung.
| 24.11. Ü
| (Schwache) Kopf-Normalform, Standardisierung, η-Normalisierung
| Übungsblatt 3
| 27.11. VL
| Beweis der η-Aufschiebung
|
| 01.12. VL
| Starke Normalisierung, Newman's Lemma
|
|
Wohlfundierte bzw. stark Normalisierende Relationen, maximale Reduktionslängen. Newman's Lemma: Starke Normalisierung + lokale Konfluenz = Konfluenz.
| 04.12. VL
| SN, Böhm's Theorem
|
|
Abschluss von sn unter Subtermbildung. Induktive Charakterisierung SN von stark βη-normalisierenden Termen. Beweis von snβη ≤ snβ ≤ SN ≤ snβη. Kontexte (Terme mit Löchern). Böhms Theorem und Vorüberlegungen zum Beweis.
| 08.12. Ü
| η-Aufschiebung, starke Normalisierung
| Übungsblatt 4
| 11.12. VL
| Beweis von Böhm's Theorem. Einfache Typen
|
| 15.12. VL
| Eigenschaften des einfach getypten Lambda-Kalküls
|
|
Der Typisierungskalkül hat folgende Eigenschaften:
weakening, strengthening, substitution, subject reduction.
| 18.12. VL
| Normalisierung durch Auswertung (F. Barral)
|
| 22.12. Ü
| Einfach getypter Lambda-Kalkuel
| Übungsblatt 5
| Weihnachtsferien
| 08.01. VL
| Beweisterme für intuitionistische Aussagenlogik (IPL)
|
|
Einführung in die intuitionistische/konstruktive Logik,
Disjunktionseigenschaft, Brouwer-Heyting-Kolmogorov-Interpretation von
Aussagen als Menge ihrer Beweise. Beweisterme für IPL
(intuitionistic propositional logic) als λ-Terme. Kalkül
des natürlichen Schließens.
| 12.01. VL
| Normale Beweise, bidirectional type checking
|
|
Durch die Einführung von 2 Modi im Beweiskalkül, Synthese von Ziel-Aussagen und Analyse von hypothetischen Aussagen (=Annahmen), erhält man einen Kalkül für normale Beweise, d.h. Beweise ohne Umwege (Redexe). Aus diesem bidirektionalen Kalkül gewinnt man durch Analogieschluss einen bidirektionalen Algorithmus zur Typprüfung (bidirectional type checking).
| 15.01. VL
| Modelle des einfach getypten λ
|
|
Kurzer Überblick über Modelle des einfach getypten Lambda-Kalküs; Mengentheoretisches Modell mit vollem Funktionsraum, Bereichsmodell, Termmodelle (modulo β oder β&eta), geschlossene Termmodelle, Turing-/Registermaschinen, partiell-rekursive Funktionen. Axiomatisierung von Modellen.
| 19.01. Ü
| Konstruktive Logik, Modelle
| Übungsblatt 6
| 22.01. VL
| Mengentheoretisches Modell, Einführung Bereichstheorie
|
| 26.01. VL
| Vollständige partielle Ordnungen (CPOs)
|
| 29.01. VL
| Polymorphismus
|
|
System F (Curry-Stil). Imprädikative Kodierungen von Datentypen.
| 02.02. Ü
| System F
| Übungsblatt 7
| 05.02. VL
| Typinferenz und let-Polymorphismus
|
|
Wir zeigen Korrektheit und Vollständigkeit von Typinferenz für den einfach getypten Lambda-Kalkül und beschreiben eine Algorithmus für ML-Typinferenz (let-Polymorphismus).
| 08.02. VL
| Unentscheidbarkeit von Typprünfung in System F
|
|
Joe Wells reduzierte 1994 das type-checking-Problem für System F auf das Semi-Unifikationsproblem. Dieses ist unentscheidbar (Kfoury, Tiurin, Urzyczyn 1993).
|
Inhalt
Der Lambda-Kalkül ist eine minimale funktionale Programmiersprache.
Er verfügt nur über Variablen, Funktionsbildung durch
Variablenabstraktion, und Funktionsanwendung. Dennoch ist er
Turing-mächtig; alle berechenbaren Funktionen sind in ihm
darstellbar. Die Theorie des Lambda-Kalküls als mathematischer
Struktur ist reichhaltig und bietet überraschende Resultate. In der
Informatik bildet der Lambda-Kalkül die Grundlage der funktionalen
Programmiersprachen und bietet den optimalen Rahmen zum Studium von
Variablenbehandlung, Auswertungsstrategien, Typsystemen,
Polymorphismus, Termination.
In der Vorlesung behandeln wir unter anderem die Syntax des
Lambda-Kalküls, Programmieren im Lambda-Kalkül,
Auswertungsstrategien, Boehm's Theorem und Modelle des
Lambda-Kalküls. Dann erweitern wir den Lambda-Kalkül um Typen,
Polymorphismus, und diskutieren seine Verwendung als Notationssystem
für mathematische Beweise.
Literatur
- The Lambda Calculus: Its Syntax and Semantics, Second revised
edition, Henk Barendregt, North Holland, 1984
- Types and Programming Languages, Benjamin C. Pierce, MIT Press, 2002
- Lambda Calculi with Types, Henk Barendregt, im Handbook of Logic
in Computer Science, Band 2, Oxford University Press, 1993
WWW-Ressourcen
|
Andreas Abel
Last modified: Mon Feb 19 11:53:28 CET 2007
|
|
|