Proseminar Logik für Informatiker Thema: Prädikatenlogik (1.Teil) Sebastian Ernst Inhaltsverzeichnis 1. Warum eine mächtigere Sprache? 1.1. 1.2. Einleitung Definitionen 2. Prädikatenlogik als formale Sprache 2.1. 2.2. 2.3. 2.4. Terme Formeln Freie und gebundene Variablen Substitution 3. Beweisidee der Prädikatenlogik 3.1. Natural deduction rules 3.1.1 Beweisregeln für Gleichheit 3.1.2 Beweisregeln für All-Quantoren 3.1.3 Beweisregeln für Existenz-Quantoren 3.2. Äquivalenz der Quantoren 4. Schlussfolgerung 5. Literaturangabe 2 Sebastian Ernst 1. Warum eine mächtigere Sprache? 1.1. Einleitung Wir benötigen für die Konstruktion von bestimmten Aussagen Symbole oder Mechanismen, die einer natürlichen Sprache eher entsprechen als wir es mit Hilfe der Aussagenlogik formulieren können. Mit Hilfe der Aussagenlogik können wir mit Elementen wie „nicht“, „und“, „oder“ sowie „wenn…dann“ grundlegende Ausdrücke formulieren. Da es sich bei der natürlichen Sprache aber um eine viel mächtigere Sprache handelt, in der wir auch Ausdrücke formulieren wollen bei denen wir alle Elemente, eine Auswahl oder ähnliches darstellen möchten, benötigen wir neue, mächtigere Möglichkeiten. Um die Aussagenlogik erweitern zu können ist eine mächtigere Sprache von Nöten, der Anlass für den Entwurf der Prädikatenlogik. Stellen wir uns vor wir möchten folgende Sätze formulieren, wie: Alle Schachtarbeiter sind älter als einige Gefreite. Einige Vögel können nicht fliegen. Was können wir verwenden um Ausdrücke zu formulieren, wie beispielsweise „alle“ oder „einige“. In der Aussagenlogik beschreiben wir einen Ausdruck als Ganzes, allerdings wollen wir in diesen Sätzen die einzelnen Elemente beschreiben und diese wiederum miteinander in Beziehung setzen. Was sagt der erste Satz eigentlich aus, gehen wir ins Detail. Wie haben die Aussagen „jemand ist ein Schachtarbeiter“, „jemand ist ein Gefreiter“ sowie „jemand ist älter als jemand anderes“. Um ausdrücken zu können, dass jemand ein Schachtarbeiter oder ein Gefreiter ist, benötigen wir Prädikate. Diese Prädikate erlauben uns ein Element einer bestimmten Menge zuzuordnen. In unserem ersten Satz würden wir dann für „jemand ist ein Schachtarbeiter“ … S(Fritz) bzw. „jemand ist ein Gefreiter … G(Heiaar) schreiben. Hierbei bezeichnet der Buchstabe S bzw. G vor der Klammer, welches man als Prädikatensymbol bezeichnen kann, die Zugehörigkeit des in der Klammer befindlichen Elementes. Wir können nun formulieren das „Fritz älter als Heiaar ist“… Ä(Fritz ,Heiaar). Da wir uns in unseren Beispielsätzen nicht auf ein exaktes Element, sondern auf eine Menge von Elementen beziehen möchten, brauchen wir Individuenvariablen. Also ersetzen wir „Fritz“ und „Heiaar“ einfach durch Individuenvariabeln, welche uns erlauben beliebige Atome der Art S oder G herzustellen. Gehen wir nun dazu über Prädikate, Prädikatensymbole und deren Beziehung zueinander mathematisch zu definieren. 3 Sebastian Ernst 1.2. Definitionen der Symbole Neben den Prädikaten benötigen wir noch mehr Symbole um Prädikatenlogik als eine formale Sprache definieren zu können. Unsere Sprache besteht aus folgenden Symbolen: 1. Individuenvariablen: x, y, z, . . . , x1, x2, . . . 2. Individuenkonstanten: a, b, Fritz, Heiaar, . . . , a1, a2, . . . 3. Funktionssymbole beliebiger Anzahl an Stellen: f, g, h, . . . , f1, f2, . . . 4. Prädikatssymbole beliebiger Anzahl an Stellen: P, Q, R, . . . , P1, P2, . . . 5. Junktoren: ∧ (und), ∨ (oder), ¬ (nicht) 6. Quantoren: ∀ (Allquantor – „für alle“), ∃ (Existenzquantor – „es gibt“) 7. Hilfszeichen: (, ), , (Komma) Mit Hilfe dieses Zeichensatzes sind wir in der Lage unseren Beispielsatz vollständig zu formulieren. Hierfür müssen wir jedoch erst die Prädikate definieren. Bsp.: S(x): x ist ein Schachtarbeiter G(x): x ist ein Gefreiter Ä(x ,y): x ist älter als y Wobei x und y hier Variablen sind. Variablen sind Platzhalter für jegliche Arten von beliebigen Werten. In unseren Fall wäre x für S(x) ein beliebiger Name für einen Schachtarbeiter. Schließlich möchten wir zum Ausdruck bringen, dass es „für alle“ Schachtarbeiter „einige“ Gefreiten gibt, die jünger sind als sie. Hierfür benutzen wir die Quantoren. Die Einführung von Quantoren zeigen nun die Erweiterung des Zeichensatzes der Aussagenlogik auf. Mittels dieser Quantoren können wir nun die Ausdrücken aus dem Beispiel formulieren: ∀x( S ( x) → (∃y (G ( y ) ∧ Ä ( x, y )))) Gelesen als: „Für alle x gilt, wenn x ein Schachtarbeiter ist, dann gibt es ein y für das gilt, y ist ein Gefreiter und x ist älter als y“ Aufgrund der Tatsache, dass es sich um eine Erweiterung der Aussagelogik handelt, gelten alle Definitionen, Interferenzregeln, Theoreme, algebraischen Umformungsregeln etc. somit auch in der Prädikatenlogik. 4 Sebastian Ernst 2. Prädikatenlogik als formale Sprache Das prädikatenlogische Vokabular besteht aus zwei Mengen. Eine Menge von Prädikatensymbolen P und eine Menge von Funktionssymbolen F sowie den Konstanten C, die wir als 0-stellige Funktionen betrachten können und deshalb in die Menge der Funktionssymbole integrieren. Variablen dienen als Platzhalter für konkrete Werte oder Objekte. Die Menge der zugrunde liegenden möglichen Werte bzw. Objekten für eine Variable x heißt Universum U. 2.1. Terme Die Klasse der Terme wird induktiv definiert durch die folgenden drei Schritte. (1) Jede Individuenvariable ist ein Term. (2) Jede Individuenkonstante ist ein Term. (3) Sind t1, . . . , tn Terme und f eine n-stellige Funktion, so ist auch f(t1, . . . , tn) ein Term. In Backus Naur Form (BNF): t ::= x | c | f (t ,..., t ) wobei x eine Variable ist, c ∈ C und f ∈ F C – Konstanten F – Funktionen 2.2. Formeln Die Klasse der prädikatenlogischen Formeln wird induktiv definiert durch die folgenden vier Schritte. (1) Sind t1,…, tn Terme und P eine n-stelliges Prädikatssymbol, so ist P(t1,…, tn) eine Formel. (2) Ist α eine Formel, so ist auch (¬α ) eine Formel. (3) Falls α und β Formeln sind, so sind auch (α ∧ β) und (α ∨ β) Formeln. (4) Falls α eine Formel ist und x eine Individuenvariable, so sind auch ( ∀ xα) und ( ∃ xα) Formeln. In BNF: α ::= P(t1, t 2,..., tn) | (¬α ) | (α ∧ α ) | (α ∨ α ) | (α → α ) | (∀xα ) | (∃xα ) Die Argumente von Prädikaten sind immer Terme. 5 Sebastian Ernst Zur Klammereinsparung ist es sinnvoll, Bindungsregeln festzulegen. Bindungsregeln: 1.) ∀ , ∃ und ¬ binden stärker als ∧ . 2.) ∧ bindet stärker als ∨ . 3.) Binäre Operatoren gleicher Stärke werden als links geklammert angesehen. Bsp.: (( A ∧ B) ∧ C ) ∧ D) ⇔ A ∧ B ∧ C ∧ D Dabei ist zu beachten, dass in (4) der Definition der Formeln die Klammerung quantifizierter Formeln auch den Bindungsbereich der Variablen kennzeichnet. So ist es sinnvoll, in einer Formel ∀xP( x) ∨ Q( x) trotz Bindungsregeln die Klammerung (∀xP( x)) ∨ Q( x) beizubehalten, um Missverständnissen vorzubeugen. 2.3. Freie und gebundene Variablen Für die späteren Definitionen ist es sinnvoll, unterscheiden zu können, ob Variablen im Bindungsbereich eines Quantors in einer Formel vorkommen oder nicht. Wir führen daher die Begriffe gebundene und freie Variable ein. Wir sind in der Lage einen Syntaxbaum in der gleichen Weise wie bei der Aussagenlogik zu zeichnen, allerdings mit ein paar zusätzlichen Informationen. - die Quantoren ∀x α oder ∃y α werden als Knoten gezeichnet und haben ähnlich der Negation einen Teilbaum - Prädikate P (t1, t 2,..., tn) haben das Prädikatensymbol, hier P , als Knoten und n-viele Teilbäume (t1, t 2,..., tn ) Beispiel: (∀x( P( x) ∧ Q( x))) → (¬P( x) ∨ Q( y )) 6 Sebastian Ernst Definition: Sei α eine prädikatenlogische Formel. Dann ist x frei in α, wenn x ein Blatt im Syntaxbaum von α ist, und es keinen Knoten ∀x oder ∃x im Pfad von x zur Wurzel gibt. Andernfalls heißt x gebunden. Für Ausdrücke ∀x α oder ∃x α sagen wir, dass α den Gültigkeitsbereich von ∀x bzw. ∃x ist. Das heißt, jedes Vorkommen von x in α ist gebunden, wenn es im Gültigkeitsbaum von ∀x oder ∃x liegt. Sonst ist x frei. Eine Variable x kann in α sowohl gebunden als auch frei vorkommen. Betrachte unsere folgende Formel: ∀x( P( x) ∧ Q( x)) → (¬P ( x) ∨ P( y )) Man sieht, dass beide Vorkommen von x in der linken Teilformel durch ∀x gebunden sind. Das Vorkommen von x in der rechten Teilformel ist jedoch frei. Dies ist eine wichtige Unterscheidung, insbesondere im Bezug auf Substitutionen, die im nächsten Punkt näher betrachtet werden. 7 Sebastian Ernst 2.4. Substitution Da es sich bei Variablen um Platzhalter handelt, müssen wir diese auch durch konkrete Werte und insbesondere durch andere Terme ersetzen können. Die Termsetzung wird Substitution genannt. Substituiert werden können bzw. dürfen nur freie Vorkommen eine Variablen x in α . Eine durch einen Quantor gebundene Variable muss unverändert bleiben, da diese unspezifiziert bzw. alle Werte des zugrunde liegenden Universums repräsentiert. Definition: Sei x eine Variable, t ein Term und α eine Formel, so ist α [t / x] definiert als die Formel, die man erhält, wenn man alle freien Vorkommen von x in α durch t ersetzt. Substitutionen können allerdings unerwünschte Seiteneffekte hervorrufen. So könnte beispielsweise bei einer Substitution α [t / x] der Term t eine Variable y enthalten, wobei freie Vorkommen von x in α im Gültigkeitsbereich von ∀x oder ∃x liegt. Dadurch würde die Variable y, die eventuell einem konkreten Kontext unterlag, durch einen Quantor gebunden werden. Die Kontext-Spezifikation eines konkreten Wertes für y würde dadurch überschrieben, da y nun für unspezifizierte bzw. alle möglichen Werte stehen würde. Solche unerwünschten Effekte sollten auf jeden Fall vermieden werden. Schauen wir uns folgendes Beispiel an um diesen Seiteneffekt besser zu verdeutlichen. C ( x ) ∧ ∀y ( M ( y ) ∧ S ( x ) → ¬G ( y )) Dies soll nichts weiter bedeuten als: „Ist x ein Chef, dann gilt für alle y, ist y ein Mitarbeiter und der Chef ist sauer, dann gibt es keine Gehaltserhöhung“ Sei nun t = b( y ) (bedeutet b ist befördert worden) so würden die beiden Vorkommen von y in t durch die Substitution α [t / x] durch den Allquantor gebunden. C (b( y )) ∧ ∀y ( M ( y ) ∧ S (b( y )) → ¬G ( y )) Was bedeuten würde, dass alle zum Chef beförderten Leute sauer wären und das ist offentsichtlich falsch. Definition: Gegeben sei ein Term t, eine Variable x und eine Formel α . Wir sagen „t ist frei für x in α“ wenn kein freies Vorkommen von x in α im Gültigkeitsbereich von ∀y oder ∃y für eine Variable y in t liegt. 8 Sebastian Ernst Bemerkung: Gibt es in einer Formel α kein freies Vorkommen einer Variablen x, so ist bei der Substitution α [t / x] trivialerweise t frei für x in α, da nichts substituiert werden kann. α [t / x] ist somit wieder einfach α. Also wäre für: C ( x ) ∧ ∀y ( M ( y ) ∧ S ( x ) → ¬G ( y )) α [t / x] bei t = b( y ) „t nicht frei für x in α“. Eine Lösung dieses Problems wäre eine geeignete Umbenennung der Variablen, bevor die Substitution ausgeführt wird. Für unseres Beispiel würde dies bedeuten: C ( x ) ∧ ∀y ( M ( y ) ∧ S ( x ) → ¬G ( y )) Bennnen wir die Variable y in z um: C ( x ) ∧ ∀z ( M ( z ) ∧ S ( x ) → ¬G ( z )) Durch die Substitution α [t / x] bei t = b( y ) ist t nun frei für x in α. C (b( y )) ∧ ∀z ( M ( z ) ∧ S (b( y )) → ¬G ( z )) Das t nun frei für x in α ist, wird b(y) nach der Substitution nicht mehr an den Allquantor gebunden. 9 Sebastian Ernst 3. Beweisidee der Prädikatenlogik Wie in der Aussagenlogik gibt es das gleiche syntaktische Beweissystem der natürlichen Deduktion auch für die Prädikatenlogik. Das bedeutet, dass alle Beweise, die für die Aussagenlogik formuliert worden sind auch für die Prädikatenlogik weiterhin gelten. Das Beweissystem wird lediglich erweitert um sie auch allgemein für alle logischen Formeln der Prädikatenlogik anwenden zu können. 3.1. Natürliche Deduktionsregeln Die zusätzlichen Regeln für unser neues Beweissystem unterscheiden sich in 2 Grundformen, die Einführungsregeln (=i) und die Eliminierungsregeln (=e). Diese Grundformen gelten sowohl für Gleichheit als auch für alle Quantoren. 3.1.1 Beweisregeln für Gleichheit Diese Gleichheit drückt weder die syntaktische noch die intentionale Gleichheit aus. Wenn wir von Gleichheit im Sinne unserer Deduktion reden, sprechen wir davon, dass die Formeln oder Terme zum gleichen Wert ausgewertet werden. Folglich ist trivialerweise jeder Term t gleich mit sich selbst. Formal ausgedrückt bedeutet das: t = t =i (a) Da wir wissen, dass ein Term t mit sich selbst gleich ist, versuchen wir im nächsten Schritt eine Substitution zu erreichen von zwei unterschiedliche Termen t1 und t2, von denen wir wissen, dass sie zum gleichem Wert ausgewertet werden. Nehmen wir an es handelt sich dabei um die Ausdrücke y*(w+2) für t1 und y*w + y*2 für t2 (wir gehen davon aus, dass sie zum gleichen Werte ausgwertet werden können). Folglich gilt in diesem Fall: z ≥ y * ( w + 2) impliziert z ≥ y * w + y * 2 und umgekehrt. Drücken wir nun dieses Substitutionsprinzip als eine Regel =e aus: t1 = t 2 α [t1 / x] = e. α [t 2 / x] Unser α beschreibt die Formel, die man erhält nachdem man einmal für die Substitution im Zähler und im Nenner erhält. Diese Formel soll zeigen, dass wir eine Gleichheit erreichen können, bei Formeln, die zum gleichen Wert ausgwertet werden. Selbstverständlich gilt auch in diesem Fall, dass t frei für x in α sein muss. 10 Sebastian Ernst Um näher auf die Gleichheit einzugehen versuchen wir nun die Grundlagen jeglicher extentionaler Gleichheit aufzuzeigen. Dazu benötigen wir zunächst eine Beweisgrundlage. Hierzu soll uns folgender Beweis dienen: ( x + 1) = (1 + x) ( x + 1 > 1) → ( x + 1 > 0) (1 + x > 1) → (1 + x > 0) 1 2 3 Prämisse Prämisse =e 1,2 benutzen. Dieses Symbol drückt die Im folgenden werden wir das Symbol symbolische Folgerung aus. Mit diesen Grundlagen versuchen wir nun folgende Formel zu beweisen: Übernehmen wir unsere vorangegangenen Aussagen können wir für t1 als (x+1), t2 als (1+x) und schließlich α als ( x > 1) → ( x > 0) festlegen. Wir benutzen den Namen =e dann, wenn es das wiedergibt, was die Regel mit den Daten macht: Es eliminiert die Gleichheit in t1=t2 durch Ersetzen aller t1 in α [t1 / x] mit t2. Dies klingt nach dem Substitutionsprinzip, unter der Annahme, dass t1 ist gleich t2. Zusammen mit der =i Regel können wir folgende Ausdrücke beweisen: t1 = t2 t2 = t1 t1 = t2, t2 = t3 (b) t1 = t3 (c) Beweis für (b): Prämisse 1 t1 = t2 =i 2 t1 = t1 =e 1,2 3 t2 = t1 α ist hierbei t1 = x. Beweis für (c): Prämisse 1 t2 = t3 Prämisse 2 t1 = t2 =e 1,2 3 t1 = t3 Nachdem wir nun (a), (b), (c) bewiesen haben, haben wir nun die Grundlagen der extentionalen Gleichheit erfüllt – Reflexivität (a), Symmetrie (b) und schließlich Transitivität (c). 11 Sebastian Ernst 3.1.2 Beweisregeln für All-Quantoren Die Regel für die Allquantoren-Einführung laute: α ∀xi ∀xα Diese Interferrenzregel besagt, wenn ein Ausdruck α für ein bestimmtes, also willkürliches x bewiesen werden kann, dann können wir daraus folgern, das α für alle möglichen Werte von x gilt, und somit den ∀ -Quantor einführen. Die Regel für die Allquantoren-Eliminierung laute: ∀xα ∀xe α [t / x] Das bedeutet: Wenn ∀xα wahr ist, dann kann man x in α durch irgendeinen Term t ersetzen (natürlich nur unter der Bedingung, dass t für x frei in ist α ist) und folgern, dass α [t / x] ebenfalls wahr ist. Wir wissen bereits, dass α [t / x] gelöst werden kann, indem wir alle freien Vorkommen von x in α mit t ersetzen. Man kann sich den Term t als eine Art konkrete Instanz von x vorstellen. Wenn α für alle x wahr ist, so sollte das auch für jeden Term t der Fall sein. Damit kann die Betrachtung von ∀xe abgeschlossen werden und wir gehen nun zu ∀xi über. Für diesen Beweis benötigen wir eine so genannte Beweisbox, da dieser Beweis ein wenig komplizierter zu handhaben ist. Das Prinzip dieses Beweises kennen wir aus der Mathematik unter „Es gibt ein x für das gilt...“. Wir können mittels der Beweisbox unseren Beweis wie folgt schreiben: Die Variable x0 steht für einen unspezifizierten Wert aus dem Universum. Indem wir also α für einen willkürlichen Term x0 beweisen, können wir daraus ∀xα schlussfolgern. Die Box gibt den Gültigkeitsbereich von x0 an. Der Term x0 darf nicht außerhalb dieser Box erscheinen, da die Korrektheit der ∀i -Regel sonst nicht gewährleistet wäre. 12 Sebastian Ernst Beispiel: Zu zeigen gilt es: ∀x ( P( x) → Q( x)), ∀x P( x) ∀x Q( x) 3.1.3 Beweisregeln für Existenz-Quantoren Die Regel für die Existenzquantoren-Eliminierung laute: α [t / x] ∃xi ∃xα Angenommen, dies sei korrekt: Die Formel bedeutet, dass wir ∃xα herleiten können, wenn α [t / x] für mindestens einen Term t existiert (vorrausgesetz: t ist frei x in α). Etwas einfacher ausgedrückt, bedeutet dies nicht weiter als dass wir eine Beispiel finden wollen, wo die Formel gilt und haben somit den Beweis für die Existenz abgeschlossen. Die ∃ -Eliminierungsregel impliziert eine Fallunterscheidung über alle Elemente aus dem Universum. Dies wird durch die Substitution α [ x 0 / x] symbolisiert, in der x0 eine Generalisierung der zu testendenWerte darstellt. Die Argumentation ist nun, wenn wir wissen, dass ein Wert existiert sodass α gilt, und wenn wir durch Substitution eines Wertes x0 eine Formel ψ erhalten, so haben wir damit ψ bewiesen, wenn es nicht mehr auf der Wahl von x0 basiert. 13 Sebastian Ernst Beispiel: ∀x( P ( x) → Q( x)), ∃xP( x) ∃xQ(x) Die Formel ∃xQ(x) in Zeile 6 entspricht der erhaltenen Formel ψ in der ∃ -Eliminierungsregel. Sie enthält kein Vorkommen von x0, so wie es in der Regel gefordert ist. Die Boxen, die den Gültigkeitsbereich der Generalisierungen für einen Wert aus dem Universum demonstrieren, können auch ineinander verschachtelt sein, wie das nächste Beispiel zeigt. Beispiel: Es soll nun ∃xP( x), ∀x∀y ( P( x) → Q( y )) 14 ∀yQ( y ) beweisen Sebastian Ernst 3.2. Äquivalenz der Quantoren Hierbei verwenden wir das Zeichen -||- , als Ausdruck dafür das: ψ α und α ψ gilt. Einige von diesen Äquivalenzen sollen nun beispielhaft durch natürliche Deduktion hergeleitet und somit bewiesen werden. 15 Sebastian Ernst Beweis von Theorem 1 (a) Das Theorem bedeutet wörtlich ausgedrückt, dass wenn eine Formel für nicht alle x gilt, so gibt es ein x für die sie nicht gilt oder umgekehrt ausgedrückt, gibt es ein x für das die Formel nicht gilt, so gilt die Formel nicht für alle x. Um das Theorem zu beweisen, muss sowohl die Hin als auch die Rückrichtung gezeigt werden. Es folgt nun zuerst die Richtung: ¬∀xφ ∃x¬φ Der Beweis für die Rückrichtung ∃x¬φ ¬∀xφ Sieht wie folgt aus: 16 Sebastian Ernst Der Beweis von Theorem 3 (b) Die Formel wörtlich ausgedrückt bedeutet dieses Theorem, haben wir ein x für das eine Formel gilt oder für eine andere Formel gilt, so gibt es ein x das für mindestens eine von beiden Formeln gilt. Umgekehrt aus gedrückt bedeute dies, haben wir ein x, welches für mindestens eine der beiden Formeln gilt, so gibt es ein x, das für die eine Formel gilt oder für die andere (oder beide). Hinrichtung: (∃xφ ) ∨ (∃xψ ) ∃x(φ ∨ ψ ) gezeigt: Der Beweis für die Rückrichtung sieht wie folgt aus: ∃x(φ ∨ ψ ) (∃xφ ) ∨ (∃xψ ) 17 Sebastian Ernst 4. Schlussfolgerung Die syntaktischen Grundlagen des Bausatzes für die Prädikatenlogik sind nun gegeben und es kann nun zum semantischen Teil der Prädikatenlogik übergegangen werden. Weiterhin wurden die natürlichen Deduktionsregeln für die Prädikatenlogik durchgesprochen und an einigen Beispielen schon praktisch verwendet. Die Prädikatenlogik, dessen Gundlage die Aussagenlogik ist, ist wiederum Grundlage für die temporal Logik und andere weiterführenden logische Sprachen. 5. Literaturangabe Zur Verwendung dieser Ausarbeitung wurde folgendes Buch verwendet: Michael Huth, Mark Ryan: Logic in Computer Science: Modelling and reasoning about systems Cambridge University Press, 2000 18