TU Ilmenau, Fakultät IA Institut TI, FG Komplexitätstheorie und Effiziente Algorithmen Priv.-Doz. Dr.rer.nat.habil. K.-H. Niggl http://www.tu-ilmenau.de/fakia/akkt.html K Polynomialzeit im Kontext funktionaler Programmierung Übungsblatt 2, SS07 Aufgabe 1 (Denotationale und operationale Semantik für konkrete Terme) Geben Sie geschlossene Terme tmult und texp des Typs ι → ι → ι an und beweisen Sie dafür (durch geeignete Induktionen) folgende Eigenschaften: N : [[tmult]] m n = m · n (b) ∀m, n ∈ N : [[texp ]] m n −→∗ 2m+n (a) ∀m, n ∈ Aufgabe 2 (Äquivalenz und gebundene Umbenennung) Zeigen Sie (für beliebige Terme r und Umgebungen ϕ): (a) Sind t, t0 äquivalente Terme des Typs σ, so gilt [[r[t/xσ ]]]ϕ = [[r[t0 /xσ ]]]ϕ . (b) Ist r0 eine gebundene Umbenennung von r, so gilt [[r0 ]]ϕ = [[r]]ϕ . Aufgabe 3 (Verträglichkeit von → mit Substitution) Zeigen Sie: Aus ~s −→ ~s 0 folgt t[~s/~x] −→∗ t[~s 0 /~x]. Aufgabe 4 (Church-Numerale und erweiterte Polynome) Für einen beliebigen Typ σ und f σ→σ , xσ sei f n x := f (. . . (f x) . . .) mit n Vorkommen von f . Inσ := λf σ→σ λxσ . f n x ◦σ := λf σ→σ g σ→σ λxσ . f (gx) Im einfach getypten λ-Kalkül, d.h. in T ohne die Konstanten 0, S, Rσ , kann man die natürlichen Zahlen n als Church-Numerale n des Typs nat := (ι → ι) → ι → ι einführen: n := λf ι→ι λxι . f n x N N Eine Funktion f : k → heißt λ-definierbar, falls es einen geschlossenen λ-Term tf des Typs nat → nat → . . . → nat → nat ((k+1)–mal nat) gibt, so daß für alle n1 , . . . , nk ∈ gilt: N tf n1 . . . nk −→∗ f (n1 , . . . , nk ) Zeigen Sie: σ f ) (I σ f ) −→∗ λxσ . f m+n x (a) ◦σ (Im n σ I σ −→∗ I σ (b) ◦σ→σ Im n m·n (c) Die folgenden Funktionen sind λ-definierbar: Addition, Multiplikation, alle konstanten Funktionen Cal , alle Projektionen Πni und die Fallunterscheidung cases. (d) Die λ-definierbaren Funktionen sind abgeschlossen unter Einsetzung. 2 Polynomialzeit im Kontext funktionaler Programmierung Übungsblatt 2, SS07 Hinweis: Durch Analyse der Struktur normaler λ-Terme kann man zeigen, daß dies genau die λ-definierbaren Funkionen sind. Diese Funktionen bezeichnet man als die erweiterten Polynome. Aufgabe 5 (Die Struktur geschlossener, normaler λ-Terme) τm , wobei r, r , . . . r Ein normaler λ-Term ist von der Gestalt λxσ .r oder y τ1 →···→τm →σ r1τ1 . . . rm 1 m (m ≥ 0) ebenfalls normale λ-Terme sind. Wir sagen τ kommt strikt links in σ vor, in Zeichen τ ⊂l σ, falls σ = σ1 → σ2 und (τ ⊆l σ1 oder τ ⊂l σ2 ), wobei ⊆l für ⊂l oder = steht. Zeigen Sie: (a) Für alle normalen λ-Terme tσ und alle xτ ∈ Var(t) gilt: τ ⊂l σ oder τ ⊆l ρ für ein y ρ ∈ FV(t) (b) Jeder geschlossene, normale λ-Term tnat ist ein Church-Numeral. Hinweis: (a) zeigt man durch Induktion über den Aufbau normaler λ-Terme. (b) folgt aus (a), wobei man beachte, daß Church-Numerale n bis auf 1 normal sind, denn 1 −→η λf nat→nat .f . Man identifiziert daher 1 mit dem normalen λ-Term λf nat→nat .f .