Lambda-Kalkül
Hauptstudium Mathematik und Informatik
WS 2008/09
Vorlesung: Mo 14-16 Uhr, Oettingenstr. 67, Oe .15, Mi 10-12 Uhr, Oe 0.41, Andreas Abel
Übung: Mi 10-12 Uhr, Oettingenstr. 67, Oe 0.41, im
zweiwöchigen Wechsel mit Vorlesung
Schein: ja (50% Übungspunkte + mündl. Prüfung)
SWS: 3 Vorlesung + 1 Übung
Aktuelles
- Mündliche Prüfung findet statt am Donnerstag, 26.02.2009, in meinem Büro, Raum D1.11.
- 10.20 Uhr Matthias Benkard
- 10.40 Uhr Julien Oster
- 11.00 Uhr Christoph Senjak
- 11.20 Uhr Remigios Woidanowski
- 11.40 Uhr Michael Mayer
- Zusammenfassung des für die mündliche
Prüfung relevanten Stoffes.
- Übung am 14. Januar 2009 ausnahmsweise im Z1.09.
- Abgabe Blatt 3 am Montag, 1. Dezember 2008.
- Erste Übung: Mittwoch, 22.10.2008, 10-12 Uhr, im Raum Takla-Makan (Z11 im CIP-Pool)
- Erste Vorlesung: Montag, 13.10.2008
Datum |
Stoff |
Material |
13.10. VL
| Überblick über Themen des Lambda-Kalküls
|
|
Im Schnelldurchlauf:
Lambda-Terme, Reduktion,
Normalform, Divergenz, Konfluenz, Auswertungsstrategien,
Gleichheit und
Extensionalität, Böhm's Theorem, Modelle,
Getypter Kalkül, Anwendungen von Typsystemen.
| 15.10. VL
| Terme als Bäume, Substitution
|
|
Formale Definition der λ-Terme als Bäume, deren Höhe und Größe. Freie und gebundene Variablen. Substitution.
| 20.10. VL
| α-Äquivalenz, lokal-namenlose Repr"asentation
|
|
Variablenumbenennung, α-Äquivalenz, Barendregt'sche Variablenkonvention. Lokal-namenlose Repr"asentation
| 22.10. Ü
| Implementation, Regel-Induktion
| Übungsblatt 1
|
Implementierung von benamster und namenloser abstrakter Syntax in SML.
| 27.10. VL
| Relationen und Hüllen, β-Reduktion
|
|
Definition der kompatiblen und transitiven Hülle durch Regeln. Beweis der Korrektheit der transitiven Hülle durch Regelinduktion. Schrittweises Bilden der kompatibel-symmetrisch-transitiv-reflexiven Hülle. Definition der β-Reduktion. Redex und Redukt.
| 29.10. VL
| Programmieren im λ-Kalkül
|
|
Repräsentation von Wahrheitswerten (Bits), Paaren, natürlichen Zahlen. Vorgängerfunktion und primitive Rekursion durch Übersetzung der entsprechenden LOOP-Programme. Fixpunktkombinatoren.
| 03.11. VL
| Lambda-Definierbarkeit und lokale Konfluenz
|
|
Induktive Charakterisierung der Klasse der totalen berechenbaren (μ-rekursiven) Funktionen. Repräsentation von Komposition, primitiver und μ-Rekursion im λ-Kalkül.
Jede μ-rekursive Funktion ist λ-definierbar.
Begriffe: Diamanteigenschaft impliziert Konfluenz impliziert
lokale Konfluenz. β-Reduktion ist lokal konfluent, hat
jedoch Diamanteigenschaft nicht.
Standardbeispiel für lokal
konfluent, aber nicht konfluent.
| 05.11. Ü
| Programmieren im λ-Kalkül, lokale Konfluenz
| Übungsblatt 2
|
| 10.11. VL
| Konfluenz
| Abgabe Üb. 1
|
Bbeispiel für lokal konfluent, aber nicht konfluent: δ t t
→ ε (Klop's Doktorarbeit, 1980).
Parallele 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 β.
| 12.11. VL
| Standardisierung
|
|
Normalform. Induktive Def. der β-Normalformen. (Schwache) Kopf-Reduktion und -Normalform, Standardreduktion.
| 17.11. VL
| Standardiserung, Schwache Normalisierung, Äußere Reduktion
|
|
Beweis der Standardisierung, Korrektheit und Vollständigkeit der (schwachen) Kopf-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.
| 19.11. Ü
| Konfluenz, (Schwache) Kopf-Normalform, Standardisierung
| Übungsblatt 3
| 24.11. VL
| Konfluenz von βη
|
|
η 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.
| 26.11. VL
| Beweis der η-Aufschiebung
|
| 01.12. VL
| Beweis der η-Aufschiebung. Starke Normalisierung.
|
|
Wohlfundierte bzw. stark Normalisierende Relationen, maximale Reduktionslängen.
| 03.12. Ü
| η-Aufschiebung, starke Normalisierung
| Übungsblatt 4
| 08.12. VL
| Starke Normalisierung.
|
|
Newman's Lemma: Starke Normalisierung + lokale Konfluenz = Konfluenz.
| 10.12. VL
| Starke Normalisierung.
|
|
bschluss von sn unter Subtermbildung. Induktive Charakterisierung SN von stark βη-normalisierenden Termen. Beweis von snβη ≤ snβ ≤ SN ≤ snβη.
| 15.12. VL
| Böhm's Theorem
|
|
Böhms Theorem und Beweis.
| 17.12. Ü
|
| Übungsblatt 5
| 22.12. VL
| Böhm's Theorem
|
|
Beweis fertig.
| 12.01. VL
| Typinferenz
|
|
Typinferenz für einfach getypte Terme à la Church und à la Curry.
| 14.01. Ü
|
| Übungsblatt 6
| 19.01. VL
| Typerhaltung unter Reduktion. Schwache Normalisierung.
|
|
Inversion der Typherleitung. Satz von der Typerhaltung unter Reduktion (subject reduction theorem). Ein kombinatorischer Beweis der schwachen Normalisierung des einfach getypten λ-Kalküs. Hereditäre Substitutionen.
| 21.01. VL
| Starke Normalisierung des einfach getypten Kalküls
| LFM'04 Artikel
|
Syntaktischer Beweis der starken Normalisierung.
| 26.01. VL
| Modelle des einfach getypten Kalküls
|
|
Modelbegriff. Mengentheoretisches Modell. Einführung ins bereichstheoretische Modell.
| 28.01. Ü
| Beweisterme, Normalisierung mittels Modell
| Übungsblatt 7
|
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 23 13:57:11 CET 2009
|
|
|