Reduktionssysteme und Termersetzungssysteme Untersuchung von Berechnungen mittels Reduktionsregeln Simplifikation von: Datenstrukturen / Termen usw. Erkennen von gleichen Objekten durch Normalisierung Auswertungen in Programmiersprachen durch eine operationale Semantik mit kleinen Schritten Beispiele: Vergleich von arithmetischen Polynomen mittels: Darstellung als Summe von Produkten Kürzen von Brüchen Deduktion, SS 10, F olien Reduktion 01, Seite 0, 17. Juni2010
Wichtige Fragestellungen bei Reduktionssystemen Kommt es auf die Reihenfolge der Anwendung der Regeln an, oder nicht? Terminiert die Reduktion? Ist das Ergebnis eindeutig? D.h. hat man den Begriff einer Normalform? Beispiele: Normalform eines Polynoms als Summe von Produkten ist eindeutig, die Berechnung terminiert Auswertung Boolescher Ausdrücke ohne Variablen ist eindeutig operationale Semantik: Auswertung terminiert nicht immer. Bei Determinismus: Ergebnis eindeutig. Deduktion, SS 10, F olien Reduktion 01, Seite 1, 17. Juni2010
Spezialfall: Termersetzungssysteme Alle Regeln sind von der Form s t wobei s, t Terme (der Prädikatenlogik erster Stufe sind. Deduktion, SS 10, F olien Reduktion 01, Seite 2, 17. Juni2010
Vervollständigung: Operation auf Reduktionssystemen Abänderung durch Verändern bzw. Hinzufügen von Regeln z.b. um eine eindeutige Normalform zu erhalten! Die Abänderung muss die Semantik erhalten meist definiert durch eine Äquivalenzrelation Deduktion, SS 10, F olien Reduktion 01, Seite 3, 17. Juni2010
Beispiel: Verknüpfungen: Gruppenaxiome Gleichheits-Axiome: E : x 1 = x x x 1 = 1 (x y) z = x (y z) Deduktion, SS 10, F olien Reduktion 01, Seite 4, 17. Juni2010
Beispiel: Verknüpfungen: Gruppenaxiome: Vervollständigung Vervollständigung R als Termersetzungssystem (nach Methode von Knuth-Bendix) x 1 x 1 x x x x 1 1 x 1 x 1 1 1 1 (x 1 ) 1 x (x y) 1 y 1 x 1 (x y) z x (y z) x (x 1 y) y x 1 (x y) y Deduktion, SS 10, F olien Reduktion 01, Seite 5, 17. Juni2010
Beispiel: Gruppenaxiome R terminiert und produziert Normalformen von Termen. s = E t gdw. s = t ((a b) 1 a) a) b (((b 1 a 1 ) a) a) b (((b 1 (a 1 a)) a) b ((b 1 1) a) b (b 1 a) b b 1 (a b)) Rechnen in der freien Gruppe Deduktion, SS 10, F olien Reduktion 01, Seite 6, 17. Juni2010
Gruppenaxiome Intuitiver ist es Klammern wegzuzlassen (wg. Assoziativität) und dann zu vervollständigen. Problem: automatische Vervollständigung ist dann einiges komplizierter: Denn Assoziativität muss berücksichtigt werden. unendlich viele Reduktionsregeln?? Deduktion, SS 10, F olien Reduktion 01, Seite 7, 17. Juni2010
Beispiel Spezifikation und abstrakte Datentypen Listen über natürlichen Zahlen true, false : not : and : BOOL BOOL BOOL BOOL, BOOL BOOL not(true) = false not(false) = true not(not(x)) = x and(true, x) = x and(false, x) = false and(x, true) = x and(x, false) = false Deduktion, SS 10, F olien Reduktion 01, Seite 8, 17. Juni2010
Beispiel Spezifikation: Zahlen 0 : NAT s : NAT NAT + NAT, NAT NAT NAT, NAT BOOL x + 0 = x x + s(y) = s(x + y) 0 x = true s(x) 0 = false s(x) s(y) = x y (Zahlen i sind dargestellt als s i (0) ) Deduktion, SS 10, F olien Reduktion 01, Seite 9, 17. Juni2010
Beispiel Spezifikation: Listen nil : LIST. : NAT, LIST LIST app : LIST, LIST LIST if : BOOL, LIST, LIST LIST app(nil, q 1 ) = q 1 app(x.q 0, q 1 ) = x.app(q 0, q 1 ) if(true, x, y) = x if(false, x, y) = y ( Listen sind als a 1.a 2.... a n.nil dargestellt) Deduktion, SS 10, F olien Reduktion 01, Seite 10, 17. Juni2010
Beispiel Spezifikation von Quicksort qsort(nil) = nil qsort(x.nil) = x.nil qsort(x.y.q) = split(x, y.q, nil, nil) split(x, nil, q 1, q 2 ) = app(qsort(q 1 ), x.qsort(q 2 )) split(x, y.q 1, q 2, q 3 ) = if(y x, split(x, q 1, y.q 2.q 3 ), split(x, q 1, q 2, y.q 3 )) Als Regelsystem ist das ein Sortier- Programm Z.B. gilt: qsort(5.2.1.nil) 1.2.5.nil (Das Beispiel ist Verifun-geeignet) Deduktion, SS 10, F olien Reduktion 01, Seite 11, 17. Juni2010
Beispiel: Aussagenlogik Operatoren (Konjunktion) und + ( XOR) x y x y x y x y + x + y x y x y + y + 1 x x + 1 x + 0 x x + x 0 x 1 x x x x x 0 0 x (y + z) x y + x z wobei + und assoziativ und kommutativ sind, Deduktion, SS 10, F olien Reduktion 01, Seite 12, 17. Juni2010
R ist Regelsystem zum Herstellen einer Polynomdarstellung: Summe von Produkten. Es gilt: f ist allgemeingültig gdw. f = 1 f ist unerfüllbar gdw. f = 0
Beispiel: disjunktive Normalform ( (x)) x (x y) x y (x y) x y x (y z) (x y) (x z) (x y) z (x y) (y z) x (y z) (x y) (x z) Herbei sind, assoziativ und kommutativ. nicht eindeutige Normalformen Terminierung? Deduktion, SS 10, F olien Reduktion 01, Seite 14, 17. Juni2010
Beispiel: Kaffeebohnenprobleme Wort aus weißen und schwarzen Kaffeebohnen Kaffeebohnen 1 Die Spielregeln des ersten Spiels sind: sw s ws s ss w Deduktion, SS 10, F olien Reduktion 01, Seite 15, 17. Juni2010
Beispiel: Kaffeebohnenproblem 1 Reduktionssequenz: wwsswwss wwsswss wwwwss wwwsss wwss wss ss w Richtig gespielt: eine weiße Bohne übrig, (wg. Parität) andere Ergebnisse aus nur weißen Bohnen sind möglich. Deduktion, SS 10, F olien Reduktion 01, Seite 16, 17. Juni2010
Kaffebohnenbeispiel 2 sw s ws s ss w ww w Ergebnis ist jetzt eindeutig. Ergebnis unabhängig ist von der Reihenfolge der Regelanwendungen Nachweis durch Betrachtung von Überlappungen: wss kann ss bzw. ww sein Terminierung gilt. Deduktion, SS 10, F olien Reduktion 01, Seite 17, 17. Juni2010
Kaffebohnenbeispiel 3 Wie 2, aber die Anzahl der Bohnen kann zwischendurch ansteigen: sw wwws ws s ss wwww ww w Deduktion, SS 10, F olien Reduktion 01, Seite 18, 17. Juni2010
Kaffebohnenbeispiel 4 Bohnen sind Multimenge Regeln gelten für Multimengen hat: sw s ss w ww w Auch hier: Ergebnis unabhängig von der Reihenfolge. Deduktion, SS 10, F olien Reduktion 01, Seite 19, 17. Juni2010
Beispiel: Lambdakalkül λ-terme λx.x λx.(λy.(x y)) λx.(λy.x) λx.λy.λz(xz)(yz) ist die Identität I Anwendung (ist bekannt als K-Kombinator mit (K x) y x ) (ist bekannt als S-Kombinator mit ((S x) y) z (x z)(y z) Reduktion: Einsetzen von aktuellen Parametern für formale Parameter: (λx.(λy.x)a)b ((λy.a)b) a (λx.x x)2 2 2 4 Deduktion, SS 10, F olien Reduktion 01, Seite 20, 17. Juni2010
Grundlagen: Relationen, Reduktion, Konfluenz, Erinnerung. und Terminierung Eine binäre Relation R auf einer Menge M heißt reflexiv : x M : xrx. transitiv : x, y, z M : xry yrz xrz. symmetrisch : x, y M : xry yrx. antisymmetrisch : x, y M : xry yrx x = y asymmetrisch : x, y M : xry (yrx) irreflexiv : x M : xrx linear(total) : x, y M : xry x = y yrx Eine reflexive, transitive Relation heißt Präordnung (Quasi-Ordnung). Eine lineare reflexive Ordnung heißt lineare Ordnung (totale Ordnung). Deduktion, SS 10, F olien Reduktion 01, Seite 21, 17. Juni2010
Eine partielle Ordnung ist definiert als eine Relation auf M, die reflexiv, transitiv und antisymmetrisch ist. Der strikte Anteil {(x, y) x y}, bezeichnet mit < Quasi-Ordnungen definieren eine Äquivalenzrelation mittels x y gdw. x y und y x. partielle Ordnung auf den Äquivalenzklassen: [x] [y] gdw x y.
Grundlagen: Relationen Sei (M, R) eine partielle Ordnung und sei N M. 1. a N heißt größtes Element von N, wenn es größer als alle anderen Elemente von N ist : ( x N : xra). 2. a N heißt kleinstes Element von N, wenn es kleiner als alle anderen Elemente ist : x N : arx. 3. a heißt maximal, wenn es kein echt größeres Element gibt. 4. a heißt minimal, wenn es kein echt kleineres Element gibt. 5. obere Schranken von N: ub(n) := {x M y N : yrx}. Deduktion, SS 10, F olien Reduktion 01, Seite 23, 17. Juni2010
6. untere Schranken von N: lb(n) := {x M y N : xry}. 7. minimale Elemente in ub(n): lub(n) 8. maximale Elemente in lb(n): glb(n)
Wortproblem Sei E eine Menge und eine Äquivalenzrelation auf E. Dann ist das Wortproblem zu (E, ) gegeben durch: Eingabe: u, v E Frage: Gilt u v? Erweiterte Frage: Gibt es einen Entscheidungs-Algorithmus zu u v? Deduktion, SS 10, F olien Reduktion 01, Seite 25, 17. Juni2010
Grundlagen: Reduktion (E, ) nennt man ein abstraktes Reduktionssystem: wenn E eine Menge und zweistellige Relation auf E ist Bezeichnungen: x 0 y gdw. x = y x i+1 y gdw. y.x i y y y x + y gdw. i > 0 : x i y x y gdw. i 0 : x i y x y gdw. x y oder y x Die Relationen +,, i sind analog zu +,, i definiert. Deduktion, SS 10, F olien Reduktion 01, Seite 26, 17. Juni2010
Grundlagen: Reduktion a ist reduzibel, falls es ein b gibt mit a b, sonst ist a irreduzibel. b ist eine Normalform zu a, falls a b und b irreduzibel ist. Hat a genau eine Normalform, so wird sie mit a bezeichnet. a, b heißen zusammenführbar (konfluent), falls es ein c gibt mit a c und b c. a b. Deduktion, SS 10, F olien Reduktion 01, Seite 27, 17. Juni2010
Wortproblem und Reduktion Lösung des Wortproblems zu (E, ) mittels Reduktionssystem (E, ) mit den Eigenschaften: Jedes u E hat genau eine Normalform u. u v gdw. u = v. Das ist eine Lösung des Wortproblems, falls effektiv ist. I.a.nimmt man = Deduktion, SS 10, F olien Reduktion 01, Seite 28, 17. Juni2010