Kapitel 1.3 Normalformen aussagenlogischer Formeln und die Darstellbarkeit Boolescher Funktionen durch aussagenlogische Formeln Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 1 / 29 Übersicht 1.3.1 Normalformen al. Formeln 1.3.2 Darstellungssatz und Basen der Booleschen Funktionen 1.3.3 Normalformsatz: Disjunktive Normalform 1.3.4 Dualitätsprinzip und Konjunktive Normalform Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 2 / 29 1.3.1 Normalformen al. Formeln Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 3 / 29 Boolesche Formeln, Literale und Klauseln Eine Boolesche Formel ist eine aussagenlogische Formel, in der die Junktoren → und ↔ nicht vorkommen. Ein Literal λ ist eine Aussagenvariable (λ ≡ A) oder eine negierte Aussagenvariable (λ ≡ ¬A). Eine ∨-Klausel δ ist eine endliche Disjunktion von Literalen (δ ≡ λ1 ∨ · · · ∨ λn , n ≥ 1). Eine ∧-Klausel κ ist eine endliche Konjunktion von Literalen (κ ≡ λ1 ∧ · · · ∧ λn , n ≥ 1). NOTATION: � • i=1,...,n ψi :≡ ψ1 ∨ · · · ∨ ψn Mathematische Logik (WS 2011/12) • � i=1,...,n Kapitel 1.3: Normalformen ψi :≡ ψ1 ∧ · · · ∧ ψn 4 / 29 Disjunktive und konjunktive Normalformen Eine Boolesche Formel ϕ ist in disjunktiver Normalform (DNF), wenn ϕ die endliche Disjunktion von ∧-Klauseln ist: ϕ ≡ κ1 ∨ · · · ∨ κm (m ≥ 1). Eine Boolesche Formel ϕ ist in konjunktiver Normalform (KNF), wenn ϕ die endliche Konjunktion von ∨-Klauseln ist: ϕ ≡ δ1 ∨ · · · ∨ δm (m ≥ 1). Disjunktive Normalform: ϕ ≡ � Konjunktive Normalform: ϕ ≡ Mathematische Logik (WS 2011/12) i=1,...,m � κi ≡ i=1,...,m δi ≡ � Kapitel 1.3: Normalformen i=1,...,m � � i=1,...,m j=1,...,ni � j=1,...,ni λi,j λi,j 5 / 29 Beipiele Die al. Formel ϕ ≡ (A ∧ ¬B ∧ C ) ∨ ¬C ∨ (A ∧ A ∧ ¬D) ist in disjunktiver Normalform. Sie enthält die 3 ∧-Klauseln � � � A ∧ ¬B ∧ C (bestehend aus den 3 Literalen A, ¬B, C ) ¬C (bestehend aus dem Literal ¬C ) A ∧ A ∧ ¬D (bestehend aus den 3 Literalen A, A, ¬D) Die al. Formel ψ ≡ (A ∨ ¬B ∨ C ) ∧ ¬C ∧ (A ∨ A ∨ ¬D) ist in konjunktiver Normalform. Sie enthält die 3 ∨-Klauseln � � � A ∨ ¬B ∨ C (bestehend aus den 3 Literalen A, ¬B, C ) ¬C (bestehend aus dem Literal ¬C ) A ∨ A ∨ ¬D (bestehend aus den 3 Literalen A, A, ¬D) Die al. Formeln ¬(A ∨ B) und (A ∨ (B ∧ C )) ∧ D sind Boolesche Formeln aber weder in DNF noch in KNF. Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 6 / 29 1.3.2 Darstellungssatz und Basen der Booleschen Funktionen Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 7 / 29 Darstellungssatz DARSTELLUNGSSATZ. Zu jeder n-stelligen Booleschen Funktion f kann man effektiv eine Boolesche Formel ϕ in disjunktiver Normalform angeben, sodass V (ϕ) = {A0 , . . . , An−1 } und ϕ die Funktion f darstellt (d.h. fϕ = f gilt). ZUR ERINNERUNG: fϕ (B(A0 ), . . . , B(An−1 )) = B(ϕ) Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 8 / 29 Beweis des Darstellungssatzes Die Formel ϕ ist wie folgt definiert: Für jede Eingabekombination �x = (x0 , . . . , xn−1 ) ∈ {0, 1}n definiere die ∧-Klausel κ�x :≡ λ(0,x0 ) ∧ · · · ∧ λ(n−1,xn−1 ) wobei λ(i,xi ) = � Ai ¬Ai falls xi = 1 falls xi = 0. NB: Die Klausel κ�x ist so gewählt, dass diese genau von der Belegung B�x mit B�x (Ai ) = xi wahr gemacht wird! Setze ϕ :≡ Mathematische Logik (WS 2011/12) � {� x ∈{0,1}n :f (� x )=1} Kapitel 1.3: Normalformen κ�x 9 / 29 Beweis des Darstellungssatzes (Fortsetzung) Korrektheit von ϕ: Zu zeigen ist, dass f = fϕ gilt. Da f und fϕ Boolesche Funktionen sind, genügt es f (�x ) = 1 ⇔ fϕ (�x ) = 1 für alle �x = (x0 , . . . , xn−1 ) ∈ {0, 1}n zu zeigen. “⇒” f (�x ) = 1 ⇒ κ�x ist ∧-Klausel von ϕ ⇒ B�x (ϕ) = B�x (κ�x ) = 1 für die oben eingeführte Belegung B�x mit B�x (Ai ) = xi ⇒ fϕ (�x ) = 1 Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 10 / 29 Beweis des Darstellungssatzes (Abschluss) “⇐” fϕ (�x ) = 1 ⇒ B�x (ϕ) = 1 für die Belegung B�x (Ai ) = xi � ⇒ ϕ enthält eine ∧-Klausel κ(x0� ,...,xn−1 ) � mit B�x (κ(x0� ,...,xn−1 )) = 1 (da ϕ Disjunktion solcher Klauseln) ⇒ ϕ enthält die ∧-Klausel κ�x � (da B�x (κ(x0� ,...,xn−1 )) = 1 g.d.w. xi� = xi für i < n) ⇒ f (�x ) = 1 (nach Definition von ϕ) Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 11 / 29 Beispiel zum Darstellungssatz Die EXOR-Funktion ist durch folgende Wertetabelle bestimmt, wobei wir in der letzten Spalte noch die zu den entsprechenden Eingaben (x0 , x1 ) gehörenden ∧-Klauseln angeben: x0 x1 EXOR(x0 , x1 ) zugehörige ∧-Klausel 0 0 0 ¬A0 ∧ ¬A1 0 1 1 ¬A0 ∧ A1 1 0 1 A0 ∧ ¬A1 1 1 0 A0 ∧ A1 Die EXOR-Funktion wird also von der Formel ϕEXOR ≡ (¬A0 ∧ A1 ) ∨ (A0 ∧ ¬A1 ) (in DNF) dargestellt. Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 12 / 29 Folgerungen aus dem Darstellungssatz: Basissatz Unter einer (endlichen) Basis der Booleschen Funktionen verstehen wir eine Menge {f1 , . . . , fk } von Booleschen Funktionen, sodass sich jede Boolesche Funktion f explizit über den Funktionen f1 , . . . , fk definieren lässt. Eine Basis M ist minimal, wenn keine echte Teilmenge von M eine Basis ist. Offensichtlich gilt für Basen: 1. Basenlemma. Sind M und M � endliche Mengen Boolescher Funktion, sodass M eine Basis ist und M eine Teilmenge von M � ist, so ist auch M � eine Basis. 2. Basenlemma. Sind M und M � endliche Mengen Boolescher Funktion, sodass M eine Basis ist und sich jede Funktion f ∈ M explizit über den Funktionen aus M � definieren lässt, so ist auch M � eine Basis. Wir wollen nun zeigen, dass die Menge der Booleschen Funktionen f∗ , die den Junktoren ∗ = ¬, ∨, ∧, →, ↔ der Aussagelogik entsprechen (s. Kapitel 1.0 für die Definition von f∗ ), eine Basis bilden. Dabei schreiben wir von nun an (wie üblich) kurz ∗ anstelle von f∗ . Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 13 / 29 Folgerungen aus dem Darstellungssatz: Basissatz 1. BASISSATZ. Die Booleschen Funktionen {¬, ∨, ∧} bilden eine Basis der Booleschen Funktionen. BEWEIS. Nach dem Darstellungssatz wird jede Boolesche Funktion von einer Booleschen Formel dargestellt. Es genügt daher zu zeigen, dass sich für jede Boolesche Formel ϕ mit V (ϕ) ⊆ {A0 , . . . , An−1 } die dargestellte n-st. Boolesche Funktion fϕ,n mit Hilfe der Funktionen ¬, ∨ und ∧ darstellen lässt. Wir zeigen dies durch Induktion nach dem Aufbau von ϕ (wobei �x = (x0 , . . . , xn−1 ) sei): 1 ϕ ≡ Ai : fϕ,n (�x ) = xi = ∨(xi , xi ) 2 ϕ ≡ ¬ψ: Dann gilt fϕ,n = ¬(fψ,n ), d.h. fϕ,n (�x ) = ¬(fψ,n (�x )). fϕ,n ist also explizit über {¬, fψ,n } definierbar. Da nach I.V. fψ,n explizit über {¬, ∨, ∧} definierbar ist, folgt hieraus, dass fϕ,n ebenfalls über {¬, ∨, ∧} explizit definierbar ist. 3 ϕ ≡ ψ0 ∨ ψ1 oder ϕ ≡ ψ0 ∧ ψ1 : Dann gilt fϕ,n = ∨(fψ0 ,n , fψ1 ,n ) bzw. fϕ,n = ∧(fψ0 ,n , fψ1 ,n ). Die Behauptung folgt also wiederum aus der I.V. Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 14 / 29 Folgerungen aus dem Darstellungssatz: Basissatz (Forts.) Aus dem 1. Basissatz folgt mit dem 1. Basenlemma, dass {¬, ∨, ∧, →, ↔} ebenfalls eine Basis ist. Auf der anderen Seite kann der 1. Basissatz wie folgt verschärft werden: 2. BASISSATZ. Folgende Mengen sind Basen der Booleschen Funktionen: (i) {¬, ∨} (ii) {¬, ∧} (iii) {NOR} (iv) {NAND} Hierbei sind die NOR-Funktion (not or - nicht oder) und die NAND-Funktion (not and - nicht und) definiert durch NOR(x0 , x1 ) = ¬(∨(x0 , x1 )) NAND(x0 , x1 ) = ¬(∧(x0 , x1 )) Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 15 / 29 Folgerungen aus dem Darstellungssatz: Basissatz (Forts.) BEWEISIDEE FÜR DEN 2. BASISSATZ. Da {¬, ∨, ∧} eine Basis ist, ist nach dem 2. Basenlemma jede Menge {f0 , . . . , fk }, die erlaubt die Funktionen ¬, ∨, ∧ explizit zu definieren, ebenfalls eine Basis. Zum Beispiel genügt es zum Beweis von (i) daher zu zeigen, dass sich ∧ mit Hilfe von ¬ und ∨ definieren lässt, was nach DeMorgan wie folgt möglich ist: ∧(x0 , x1 ) = ¬(∨(¬(x0 ), ¬(x1 ))) Beweis der anderen Teile: Übung! BEMERKUNG. Die Basen in dem 2. Basissatz sind minimal. Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 16 / 29 1.3.3 Normalformsatz: Disjunktive Normalform Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 17 / 29 Der Normalformsatz für die disjunktive Normalform Eine weitere direkte Folgerung aus dem Darstellungssatz ist: NORMALFORMSATZ (DNF). Zu jeder al. Formel ϕ kann man effektiv eine äquivalente Formel ϕDNF in disjunktiver Normalform angeben, sodass V (ϕ) = V (ϕDNF ) gilt. BEWEISIDEE: Ersetzt man in äquivalenten Formeln ψ und ψ � mit V (ψ) ∪ V (ψ � ) = {B0 , . . . , Bn−1 } die paarweise verschiedenen Variablen Bi durch paarweise verschiedene Variablen Ci , so erhält man wiederum äquivalente Formeln (Übung!). Wir können daher o.B.d.A. annehmen, dass V (ϕ) = {A0 , . . . , An−1 } gilt. Es genügt dann die Wertetabelle von fϕ zu bestimmen und als ϕDNF die zugehörige Formel ϕfϕ in DNF aus dem Darstellungssatz zu wählen. Es gilt dann fϕ = fϕDNF und daher ϕ äq ϕDNF . Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 18 / 29 Normalformsatz: alternativer Beweis Der Normalformsatz lässt sich auch direkt ohne Rückgriff auf den Darstellungssatz beweisen (s. Skript für Details): Hierzu überführt man eine al. Formel ϕ zunächst in eine äquivalente Boolesche Formel ϕb (mit derselben Variablenmenge), indem man (induktiv) alle Teilformeln ψ → ψ � und ψ ↔ ψ � mit Hilfe der Äquivalenzen ψ → ψ � äq ¬(ψ) ∨ ψ � ψ ↔ ψ � äq (¬(ψ) ∨ ψ � ) ∧ (¬(ψ � ) ∨ ψ) eliminiert. NB: Nach der Ersetzungsregel ist das Ergebnis dieser Ersetzungen äquivalent zur Ausgangsformel ϕ! Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 19 / 29 Normalformsatz: alternativer Beweis (Fortsetzung) Durch Anwendung der DeMorganschen Regeln und des Gesetzes der doppelten Negation ¬(ψ ∨ ψ � ) äq ¬ψ ∧ ¬ψ � ¬(ψ ∧ ψ � ) äq ¬ψ ∨ ¬ψ � ¬¬ψ äq ψ überführt man dann die Boolesche Formel ϕb in eine äquivalente Boolesche Formel ϕn (mit derselben Variablenmenge), in der das Negationszeichen nur vor Variablen vorkommt. Schließlich eliminiert man in ϕn Vorkommen von ∧ von höherem Rang als Vorkommen von ∨ mit Hilfe der Distributivgesetze ψ ∧ (χ ∨ δ) äq (ψ ∧ χ) ∨ (ψ ∧ δ) (ψ ∨ χ) ∧ δ äq (ψ ∧ δ) ∨ (χ ∧ δ) und erhält so (eventuell nach Anwendung der Assoziativität von ∨ und ∧) die gewünschte zu ϕ äquivalente Formel ϕDNF in disjunktiver Normalform. Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 20 / 29 Normalformsatz - alternativer Beweis: Beispiel Sei ϕ ≡ (A ∨ (B ∧ C )) → ¬(B ∧ ¬A) Überführung von ϕ in ϕb : ϕb ≡ ¬(A ∨ (B ∧ C )) ∨ ¬(B ∧ ¬A) Überführung von ϕb in ϕn : ϕb äq äq (¬A ∧ ¬(B ∧ C )) ∨ (¬B ∨ ¬¬A) (¬A ∧ (¬B ∨ ¬C )) ∨ (¬B ∨ A) ≡ ϕn Überführung von ϕn in ϕDNF : ϕn äq äq ((¬A ∧ ¬B) ∨ (¬A ∧ ¬C )) ∨ (¬B ∨ A) (¬A ∧ ¬B) ∨ (¬A ∧ ¬C ) ∨ ¬B ∨ A ≡ ϕDNF Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen (Distributivität) (Assoziativität) 21 / 29 1.3.4 Dualitätsprinzip und Konjunktive Normalform Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 22 / 29 Konjunktive Normalform Die für die Disjunktive Normalform erzielten Ergebnisse lassen sich ähnlich für die Konjunktive Normalform zeigen: DARSTELLUNGSSATZ (KNF). Zu jeder n-stelligen Booleschen Funktion f kann man effektiv eine Boolesche Formel ϕ in konjunktiver Normalform angeben, sodass V (ϕ) = {A0 , . . . , An−1 } und ϕ die Funktion f darstellt (d.h. fϕ = f gilt). NORMALFORMSATZ (KNF). Zu jeder al. Formel ϕ kann man effektiv eine äquivalente Formel ϕKNF in konjunktiver Normalform angeben, sodass V (ϕ) = V (ϕKNF ) gilt. Da der Normalformsatz (KNF) aus dem Darstellungssatz (KNF) wie der Normalformsatz aus dem Darstellungssatz folgt, genügt es den Darstellungssatz (KNF) zu beweisen. Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 23 / 29 Darstellungssatz (KNF): Beweisidee Zu einer Booleschen Funktion f (x0 , . . . , xn−1 ) erhält man die darstellende Formel ϕ in KNF wie folgt: Für jede Eingabekombination �x = (x0 , . . . , xn−1 ) ∈ {0, 1}n definiere die ∨-Klausel δ�x :≡ λd(0,x0 ) ∨ · · · ∨ λd(n−1,xn−1 ) wobei λd(i,xi ) = � Ai ¬Ai falls xi = 0 falls xi = 1. NB. Für eine Belegung B von {A0 , . . . , An−1 } gilt also B(δ�x ) = 1 genau dann, wenn �x �= (B(A0 ), . . . , B(An−1 )). Setze ϕ :≡ � x {� x ∈{0,1}n :f (� x )=0} δ� Wir üblerlassen den Nachweis von f = fϕ als Übung. Man kann dies entweder direkt (wie im Falle der DNF) zeigen oder das Dualitätsprinzip verwenden, das wir (nach einem Beipiel) als nächstes betrachten. Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 24 / 29 Darstellungssatz (KNF): Beispiel Die EXOR-Funktion ist durch folgende Wertetabelle bestimmt: x0 x1 EXOR(x0 , x1 ) zugehörige ∨-Klausel δ(x0 ,x1 ) 0 0 0 A0 ∨ A1 0 1 1 A0 ∨ ¬A1 1 0 1 ¬A0 ∨ A1 1 1 0 ¬A0 ∨ ¬A1 Sie wird also von der KNF-Formel ϕEXOR ≡ (A0 ∨ A1 ) ∧ (¬A0 ∨ ¬A1 ) dargestellt. Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 25 / 29 Alternative Konstruktion der KNF: Dualitätsprinzip Eine Formel ϕ kann man auch wie folgt in KNF überführen: Überführe die Negation ¬ϕ von ϕ in Disjunktive Normalform: (¬ϕ)DNF Vertausche in (¬ϕ)DNF die Junktoren ∨ und ∧ und ersetze jedes Literal durch das duale Literal (d.h. A durch ¬A und ¬A durch A). Die so erhaltene Formel ist in KNF und äquivalent zu ϕ Die Korrektheit dieser Konstruktion ergibt sich aus dem allgemeineren Dualitätsprinzip: D(ϕ) entstehe aus ϕ durch Vertauschung von ∨ und ∧. (D(ϕ) nennt man die zu ϕ duale Formel) N(ϕ) entstehe aus ϕ, indem vor jede nichtnegierte Aussagenvariable das Negationszeichen geschrieben wird und bei jeder negierten Aussagenvariable das Negationszeichen gestrichen wird. Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 26 / 29 Dualitätsprinzip: Dualitätssatz DUALITÄTSSATZ. (a) ¬ϕ äq D(N(ϕ)) (b) ϕ äq ψ ⇔ D(ϕ) äq D(ψ) Den Dualitätssatz zeigt man durch Induktion nach dem Formelaufbau unter Verwendung der DeMorganschen Gesetze und des Gesetzes der doppelten Verneinung (sowie der Ersetzungsregel): Übung! Wir demonstrieren die Beweisidee nur anhand eines Beispiels: Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 27 / 29 Dualitätsprinzip: Beispiel Für ϕ :≡ A0 ∨ ¬(A1 ∧ ¬A2 ) ist N(ϕ) ≡ ¬A0 ∨ ¬(¬A1 ∧ A2 ) D(N(ϕ)) ≡ ¬A0 ∧ ¬(¬A1 ∨ A2 ) und es gilt ¬ϕ ≡ äq äq äq ≡ ¬(A0 ∨ ¬(A1 ∧ ¬A2 )) ¬(A0 ∨ (¬A1 ∨ ¬¬A2 )) (DeMorgan) ¬(A0 ∨ (¬A1 ∨ A2 )) (Doppelte Verneinung) ¬A0 ∧ ¬(¬A1 ∨ A2 ) (De Morgan) D(N(ϕ)) Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 28 / 29 Eigenschaften der DNF und KNF Für Formeln in DNF lässt sich die Erfüllbarkeit sehr leicht überprüfen, während sich für Formeln in KNF die Allgemeingültigkeit sehr leicht überprüfen lässt. Sei ϕ in DNF: ϕ ist genau dann erfüllbar, wenn es zumindest eine ∧-Klausel von ϕ gibt, in der keine Variable sowohl unnegiert als auch negiert vorkommt. Sei ϕ in KNF: ϕ ist genau dann allgemeingültig, wenn in jeder ∨-Klausel von ϕ zumindest eine Variable sowohl unnegiert als auch negiert vorkommt. Die Frage, ob auch die dualen Aussagen gelten, also insbesondere, ob sich für eine Formel ϕ in KNF “schnell” überprüfen lässt, ob diese erfüllbar ist, ist eines der bedeutendsten offenen Probleme der Mathematik (eines der Millenniumsprobleme; s. nächster Abschnitt). NB: Eine naheliegende Lösung, nämlich die KNF-Formel ϕ zunächst in eine äquivalente Formel ϕ� in DNF zu überführen und dann obiges schnelles Verfahren zur Überprüfung der Erfüllbarkeit von Formeln in DNF anzuwenden, funktioniert nicht: Die Überführung in DNF kann (durch Anwendung der Distributivgesetze) die Formel ϕ exponentiell aufblähen, sodass das Verfahren insgesamt exponentiell gemessen in der Länge von ϕ (also sehr langsam) ist. Mathematische Logik (WS 2011/12) Kapitel 1.3: Normalformen 29 / 29