Aussagenlogik

Aussagenlogik / Propositional-Logik

Proposition = Aussage

Wahrheitswerte wahr / falsch

Aussagenvariablen können wahr / falsch sein

Junktoren elementare Operatoren (Siehe unten)

Quantoren keine

Operationen

Sind Funktionen und beschreiben Operatoren-Symbole auf semantischer Ebene.

¬\neg Negation

\wedge Konjunktion

\vee Disjunktion

≢,⇎\not\equiv, \not\Leftrightarrow Antivalenz, XOR

,\equiv, \Leftrightarrow Äquivalenz, ¬\neg XOR, iff

Beispiel:

Immer wenn du hüpfst, dann hüpfe ich auch. Sonst nicht .

,\supset, \Rightarrow Implikation

Beispiel:

Immer wenn du hüpfst, dann hüpfe ich auch. Sonst vielleicht aber auch.

Beispiel:

Wenn / Falls ich ins Kino gehe, dann esse ich dort immer Popkorn.

(Gleiche Aussage wie) Ich gehe nur dann ins Kino, wenn ich dort Popkorn esse.

Das liegt daran, dass ich nicht im Kino sein kann ohne Popkorn zu essen.

\uparrow Negierte Konjunktion, nand

\downarrow Negierte Disjunktion, nor

Funktionale Vollständigkeit

Eine Menge von Funktionen mit denen alle Funktionen (einer Funktions-Klasse) ausgedrückt werden können.

Beispiele:

{not, and}, {nand}, {nor}, {not, or}, {not, implies}, {implies, false}

Induktive Definition

Allgemeiner Vorgang zur induktiven Definition unendlicher Mengen:

U\mathcal{U}Universum, Menge aller relevanten Elemente

M0U\mathcal{M}_{0} \subseteq \mathcal{U}Menge von Grundelementen

f1:Un1U,f2:Un2U f_{1}: \mathcal{U}^{n_{1}} \mapsto \mathcal{U}, ~~f_{2}: \mathcal{U}^{n_{2}} \mapsto \mathcal{U} Konstruktionsfunktionen

  1. Stufenweise Konstruktion der MengeM\mathcal{M}

    Mi+1=Mi{f1(x1,,xn1)x1,,xn1Mi}{f2(x1,,xn2)x1,,xn2Mi} \begin{aligned}\mathcal{M}_{i+1}=\mathcal{M}_{i} \cup &\left\{f_{1}\left(x_{1}, \ldots, x_{n_{1}}\right) \mid x_{1}, \ldots, x_{n_{1}} \in \mathcal{M}_{i}\right\} \\& \cup\left\{f_{2}\left(x_{1}, \ldots, x_{n_{2}}\right) \mid x_{1}, \ldots, x_{n_{2}} \in \mathcal{M}_{i}\right\} \\& \cup \cdots\end{aligned} 

    M=limiMi=i0Mi \mathcal{M}=\lim _{i \rightarrow \infty} \mathcal{M}_{i}=\bigcup_{i \geq 0} \mathcal{M}_{i} 

  1. Induktive Definition der MengeM\mathcal{M}

    M\mathcal{M} ist die kleinste Menge für die gilt:

    • M0M\mathcal{M}_{0} \subseteq \mathcal{M}
    • Wenn x1,,xn1Mx_{1}, \ldots, x_{n_{1}} \in \mathcal{M} , dann f1(x1,,xn1)M f_{1}\left(x_{1}, \ldots, x_{n_{1}}\right) \in \mathcal{M} 
    • Wenn x1,,xn1Mx_{1}, \ldots, x_{n_{1}} \in \mathcal{M} , dann f2(x1,,xn1)M f_{2}\left(x_{1}, \ldots, x_{n_{1}}\right) \in \mathcal{M} 
    • \dots

Beispiele:

Induktive Definition der Syntax in der Aussagenlogik

U\mathcal{U} Menge aller Zeichenketten (aus Variablen, Operatoren, Klammern)

V:={A,B,C,...A0,A1,...,,}\mathcal{V} := \{A, B, C, ... A_0, A_1, ..., \top, \bot\} Aussagenlogische Variablen als Grundelemente

Konstruktionsfunktionen:

f¬(F)=¬Ff(F,G)=(FGn)f(F,G)=(FnGn)f(F,G)=(FGn) \begin{array}{l}f_{\neg}(F)= \neg F \\f_{\wedge}(F, G)= \left(F \wedge G_{n}\right) \\f_{\uparrow}(F, G)=\left( F_{n} \uparrow G_{n}\right) \\\vdots \\f_{\subset}(F, G)=\left( F \subset G_{n}\right)\end{array} 

Induktive Definition der MengeA\mathcal{A}

Die Menge A\mathcal{A} der aussagenlogischen Formeln Fi\textsf{F}_i ist die kleinste für die gilt:

  1. VA\mathcal{V} \sube \mathcal{A}(eine Variable ist eine gültige Formel)
  1. {,}A\{\top, \bot\} \sube \mathcal{A}
  1. Wenn FA\textsf{F} \in \mathcal{A} dann auch ¬FA\neg \textsf{F} \in \mathcal{A}
  1. Wenn F,GA\textsf{F,G} \in \mathcal{A} dann auch (FG)A(\textsf{F} *\textsf{G}) \in \mathcal{A}

    wobei :={,,,,,≢,,} *:=\{\wedge, \vee, \uparrow, \downarrow, \equiv, \not\equiv, \sub, \supset\} 

Semantik

Die Semantik ist eine Funktion die Zeichenkette \mapsto Bedeutung.

I:VBI: \mathcal{V} \mapsto \mathbb{B} Wahrheitsbelegung / Interpretation (für einzelne Variablen )

Mit Wahrheitswerten B={1,0}\mathbb{B} = \{1,0\}

I={II:VB}\mathcal{I}=\{I \mid I: \mathcal{V} \mapsto \mathbb{B}\} Menge aller Interpretationen

Semantik von Formeln (Auswertung)

Wahrheits-Wert einer Formel mit der Belegung / Interpretation II festgelegt durch die Funktion:

val:I×AB \textsf{val: } \mathcal{I} \times \mathcal{A} \mapsto \mathbb{B} 

val(I,A)=valI(A)\textsf{val}(I, A) = \textsf{val}_I(A)

Für jede Operation auf der syntaktischen Ebene gibt es auch eine auf der semantischen Ebene (Metaebene):

valI(A)=I(A) fu¨AVvalI()=1 und val I()=0 ; valI(¬F)=notvalI(F)valI((FG))=valI(F)valI(G) \begin{aligned} &\operatorname{val}_{I}(A)=I(A) \text { für } A \in \mathcal{V}\\ &\operatorname{val}_{I}(\top)=1 \text { und val }_{I}(\perp)=0 \text { ; }\\ &\operatorname{val}_{I}(\neg F)=\operatorname{not} \operatorname{val}_{I}(F)\\ &\operatorname{val}_{I}((F * G))=\operatorname{val}_{I}(F) \circledast \operatorname{val}_{I}(G)\\ \end{aligned} 

wobei \circledast die logische Funktion zum Operator * ist.

Beispiele

Beispiele für \circledast : Ausdrücken von Semantik in der Aussagenlogik. (Alles darunter bezieht sich nur auf Aussagenlogik).

Semantische Äquivalenz

Semantik == ist durch \equiv ausdrückbar.

F=GF = G sind semantisch äquivalent wenn valI(F)=valI(G)\textsf{val}_I(F) = \textsf{val}_I(G) gültig ist.

Logische Konsequenz

Die Semantik \models ist durch \supset ausdrückbar

F1,,Fn,GF_{1}, \ldots, F_{n} \models, G genau dann wenn F1(F2(FnG)) F_{1} \supset\left(F_{2} \supset \cdots\left(F_{n} \supset G\right) \cdots\right) 

Und weil A(BC)=(AB)CA \supset(B \supset C)=(A \wedge B) \supset C folgt daraus die äquivalenz mit (F1...Fn)G(F_1 \wedge ... \wedge F_n) \supset G .

Anwendungen:

  • "Falls in der Wahrheitsbelegung II alle Prämissen wahr sind, dann ist auch die Konklusion wahr in II ." (Kriterium für die Gültigkeit von Inferenzregeln)
  • "Die Formel GG ist eine logische Konsequenz der Formeln F1,...,FnF_1,...,F_n "

F\models F ist eine Abkürzug dafür, dass FF gültig ist. Man muss es quasi alstrueF\text{true} \models Flesen.

Eigenschaften von Formeln

gültig wenn für alle Wahrheitsb. immer valI(F)=1\textsf{val}_I(F) = 1

Immer wahr

erfüllbar wenn für mindestens eine Wahrheitsb. valI(F)=1\textsf{val}_I(F) = 1

Mind. bei 1 Fall wahr

widerlegbar wenn für mindestens eine Wahrheitsb. valI(F)=0\textsf{val}_I(F) = 0

Mind. bei 1 Fall falsch

unerfüllbar wenn für alle Wahrheitsb. immer valI(F)=0\textsf{val}_I(F) = 0

Immer falsch

Bool'sche Algebra

In der boolschen Algebra gelten die Eigenschaften: Assoziativität, Kommutativität, Idempotenz,...

Beispiele für boolsche Algebra:

B, and, or, not, 0,1 \langle\mathbb{B}, \text { and, or}, \text { not, } 0,1\rangle 

2M,,,,,M \left\langle 2^{M}, \cap, \cup,^{-}, \emptyset, M\right\rangle (2M2^Msteht für alle möglichen Mengen)

DNF / KNF

Manche meinen mit DNF / KNF die maximale Form bei der alle Variablen von der Funktion vorkommen müssen - in dieser LVA ist nicht diese gemeint.

Anwendung

Von der Funktion ff zur dazugehörigen Formel.

Defintion

b=(b1,,bn)Bn\vec{b}=\left(b_{1}, \ldots, b_{n}\right) \in \mathbb{B}^{n} sind Tupel mit bool'schen Werten.

Wir haben eine Funktion f:BnBf:\mathbb{B}^n \mapsto \mathbb{B} mit Argumenten AiA_i die durch Interpretation Ib(Ai)=biI_{\vec{b}} (A_i) = b_i belegt werden.

Alsof(Ai)=bBf(A_i) = b \in \mathbb B

Konjunkte / Disjunkte einer Menge von Variablen:

{F,G,H,}=FGH \bigwedge\{F, G, H, \ldots\}=F \wedge G \wedge H \wedge \cdots 

{F,G,H,}=FGH\\\bigvee \{F, G, H, \ldots\}=F \vee G \vee H \vee \cdots

Wobei{}=\bigwedge\{\}=\topund{}=\bigvee\{\}=\perp

DNF: Disjunktionen von Konjunktionen von Literalen (= Variablen oder ihre negierte Form)

Charakteristisches Konjunkt für b=(b1,,bn)Bn\vec{b}=\left(b_{1}, \ldots, b_{n}\right) \in \mathbb{B}^{n} :

Kb={Aibi=1,i=1..n}{¬Aibi=0,i=1..n} K_{\vec{b}}=\bigwedge\left\{\textcolor{pink}{A_{i}} \mid b_{i}=\textcolor{pink}1,~ i=1 . . n\right\} \wedge \bigwedge\left\{\textcolor{pink}{\neg A_{i}} \mid b_{i}=\textcolor{pink}0,~i=1 . . n\right\} 

WobeiAiA_idie Variablen sind die als Argumente der Funktion dienen.

Beispiel:

Ib:A11,A20,A31,A41valIbˉ(Kb)=1 I_{\vec{b}}: A_{1} \mapsto 1, A_{2} \mapsto 0, A_{3} \mapsto 1, A_{4} \mapsto 1 \quad \Longrightarrow \quad \operatorname{val}_{I_{\bar{b}}}\left(K_{\vec{b}}\right)=1 

b=(1,0,1,1)Kb=A1¬A2A3A4 \vec{b}=(1,0,1,1) \quad \Longrightarrow \quad K_{\vec{b}}=A_{1} \wedge \neg A_{2} \wedge A_{3} \wedge A_{4} 

Für Wahrheitsbelegung IbI_b hat KbK_{\vec{b}} den Wert 11 und sonst 00 .

Die Konjunkte werden disjunktiv verbunden.

DNFf={Kbf(b)=1,bBn} \operatorname{DNF}_{f}=\bigvee\left\{K_{\vec{b}} \mid f(\vec{b})=1, \vec{b} \in \mathbb{B}^{n}\right\} 

Dadurch repräsentiert die DNF die Funktion f.

bBn:valb(DNFf)=f(b) \forall \vec{b} \in \mathbb{B}^{n}: \text{val}_{\vec{b}}\left(\mathrm{DNF}_{f}\right)=f(\vec{b}) 

DNF: Konjunktionen von Disjunktionen von Literalen

Charakteristisches Disjunkt für b=(b1,,bn)Bn\vec{b}=\left(b_{1}, \ldots, b_{n}\right) \in \mathbb{B}^{n} :

Db={Aibi=0,i=1..n}{¬Aibi=1,i=1..n} D_{\vec{b}}=\bigvee \left\{\textcolor{pink}{A_{i}} \mid b_{i}=\textcolor{pink}0,~ i=1 . . n\right\} \vee \bigvee \left\{\textcolor{pink}{\neg A_{i}} \mid b_{i}=\textcolor{pink}1,~ i=1 . . n\right\} 

WobeiAiA_idie Variablen sind die als Argumente der Funktion dienen.

Beispiel:

Ib:A11,A20,A31,A41valIbˉ(Db)=0 I_{\vec{b}}: A_{1} \mapsto 1, A_{2} \mapsto 0, A_{3} \mapsto 1, A_{4} \mapsto 1 \quad \Longrightarrow \quad \operatorname{val}_{I_{\bar{b}}}\left(D_{\vec{b}}\right)=0 

b=(1,0,1,1)Db=¬A1A2¬A3¬A4 \vec{b}=(1,0,1,1) \quad \Longrightarrow \quad D_{\vec{b}}=\neg A_{1} \vee A_{2} \vee \neg A_{3} \vee \neg A_{4} 

Für Wahrheitsbelegung IbI_b hat DbD_{\vec{b}} den Wert 00 und sonst 11 .

Die Konjunkte werden disjunktiv verbunden.

KNFf={Dbf(b)=0,bBn} \operatorname{KNF}_{f}=\bigwedge\left\{D_{\vec{b}} \mid f(\vec{b})=0, \vec{b} \in \mathbb{B}^{n}\right\} 

Dadurch repräsentiert die DNF die Funktion f.

bBn:valb(KNFf)=f(b) \forall \vec{b} \in \mathbb{B}^{n}: \text{val}_{\vec{b}}\left(\mathrm{KNF}_{f}\right)=f(\vec{b}) 

Laufzeiten

von einer beliebigen Formel zu DNF / KNF kommen:

Beide exponentielle obere Schranke für Laufzeit

  1. Semantische Methode (Siehe oben) -übersichtlicher, einfacher, aberimmerexponentielle Laufzeit2Anz.Variablen2^{Anz. Variablen}weil für jedes element vonb\vec{b}ein Konj. / Disjunkt gebildet werden muss.
  1. Algebraische Methode (Algebraisch umformen / kürzen bis man erwünschte Form erreicht) - durchschnittlich effizienter, aber obere Schranke wie semantische Methode

Normalformen

Formeln unter gewissen Einschränkungen. - An der Semantik ändert sich nichts.

Normalformen sind meistens nicht eindeutig.

Beispiele

Andere Einschränkungen auch möglich für Normalformen, zb nur Nand-Operator \uparrow erlaubt. (Operator muss funktional vollständig sein)

SAT-Problem

P Problemklasse, die sich polynomiell lösen lässt.

NP Problemklasse, die sich polynomiell verifizieren lässt.

NP-vollständig Problemklasse, auf die sich alle NP-Probleme reduzieren lassen.

Erfüllbarkeitsproblem / Satisfiability / SAT (NP-vollständig)

Wir haben eine Formel FF und wollen wissen ob sie erfüllbar ist.

Wir wollen wissen ob II:valI(F)=1\exists\space I \in \mathcal{I}: \textsf{val}_I(F) = 1

Aussagenlogische Frage übersetzt zu (Un)Erfüllbarkeitsproblem:

Ggu¨ltig⟺¬Gunerfu¨llbarGwiderlegbar⟺¬Gerfu¨llbarG=Hgu¨ltig⟺G≢Hunerfu¨llbarF1,…,Fn⊨G⟺F1∧⋯∧Fn∧¬Gunerfu¨llbar\begin{aligned}G \text { gültig } & \Longleftrightarrow \neg G \text { unerfüllbar } \\G \text { widerlegbar } & \Longleftrightarrow \neg G\text { erfüllbar } \\G=H \space \text{gültig} & \Longleftrightarrow G \not \equiv H \text { unerfüllbar } \\F_{1}, \ldots, F_{n} \models G & \Longleftrightarrow F_{1} \wedge \cdots \wedge F_{n} \wedge \neg G \text { unerfüllbar }\end{aligned}Ggu¨ltigGwiderlegbarG=Hgu¨ltigF1​,…,Fn​⊨G​⟺¬Gunerfu¨llbar⟺¬Gerfu¨llbar⟺G≡Hunerfu¨llbar⟺F1​∧⋯∧Fn​∧¬Gunerfu¨llbar​

SAT lösen:

  1. Wahrheitstafel (ineffizient)
  1. DNF (ineffizient, Probleme meistens fast in KNF Form)
  1. SAT-Solver

SAT-Solver

Mögliche Resultate:

a) "SAT" II:valI(F)=1\exists\space I \in \mathcal{I}: \textsf{val}_I(F) = 1 (Formel ist erfüllbar)

b) "UNSAT" ∄II:valI(F)=1\not\exists\space I \in \mathcal{I}: \textsf{val}_I(F) = 1 (Formel ist unerfüllbar)

Dualität

Dualität ≠ Negation

Duale Funktionen

Zwei n-stellige Funktionen ff und gg heißen dual zueinander, wenn gilt:

notf(x1,,xn)=g(notx1,,notxn) \operatorname{not} f\left(x_{1}, \ldots, x_{n}\right)=g\left(\operatorname{not} x_{1}, \ldots, \operatorname{not} x_{n}\right) 

Beispiel: and und or bei gespiegelten Wahrheitsbelegungen

DeMorgan Gesetz: not(x and y) = (not x) or (not y)

xyx and yx or y1111100101010000 \begin{array}{cc|cc}x & y & x \text { and } y & x \text { or } y \\\hline 1 & 1 & 1 & 1 \\1 & 0 & 0 & 1 \\0 & 1 & 0 & 1 \\0 & 0 & 0 & 0\end{array} 

xyx or yx and y0000011010101111 \begin{array}{cc|cc}x & y & x \text { or } y & x \text { and } y \\\hline 0 & 0 & 0 & 0 \\0 & 1 & 1 & 0 \\1 & 0 & 1 & 0 \\1 & 1 & 1 & 1\end{array} 

Duale Operatoren

Operatoren (semantisch) sind dual wenn ihre Funktionen dual sind.

Duale Formeln

Formel F[A1,,An]F\left[A_{1}, \ldots, A_{n}\right] und G[A1,,An]G\left[A_{1}, \ldots, A_{n}\right] sind dual zu einander wenn gilt:

¬F[A1,,An]=G[¬A1,,¬An] \neg F\left[A_{1}, \ldots, A_{n}\right]=G\left[\neg A_{1}, \ldots, \neg A_{n}\right] 

Quasi wenn überall in der Formel die Operatoren mit ihrem Dual ausgetauscht werden - aber eine Formel kann zu mehreren anderen dual sein.

Beispiel:

¬(((AB)≢¬(BC))⊅((A)B)) \neg(((A \wedge B) \not \equiv \neg(B \uparrow C)) \not \supset((A \wedge \top) \vee B))  ist dual zu

¬(((AB)¬(BC))((A)B)) \neg(((A \vee B) \equiv \neg(B \downarrow C)) \subset((A \vee \perp) \wedge B)) 

Aussagenlogische Modellierung

deklarativ-statisch, nicht prozedural-dynamisch

++ deklarativ (man sagt welchen Zustand man sich unter welchen Bedingungen wünscht)

++ modular

- Erraten von Parametern oft notwendig (siehe Simpsons bsp)

- Große Zahl an Variablen und Formeln

- Frame Problem: Bei jeder Aktion muss auch definiert werden, was sich nicht ändert.

- unintuitiv - menschen denken bei Modellieren nicht an statischen Bedingungen