Die Olchies und die Aussagenlogik

| Back to Overview

Es fängt so easy an und am Ende kommen Herbrand-Strukturen 😭

Terminologie

Zwei Dinge sind wichtig:

WortBedeutung
SyntaxFormale Regeln für die Ausdrücke (Formeln). Es geht hier nicht um Inhalt oder Interpretationen. Bei uns Zeichenketten.
SemantikWenn man die Formel Interpretiert ergibt sich daraus eine Semantik. Hier kommt also das was man eigentlich Ausdrücken möchte ins Spiel.
Tautologie (Allgemeingültig)Eine Formel die immer wahr ist.
LiteralEine Variable oder eine Negation einer Variable.

Syntax der Aussagenlogik

Noch sehr simple kennen alle.

Grundlegende Symbole sind:

  • ¬\neg (Negation)
  • \land (Und, Konjunktion) 2-Stellig
  • \lor (Oder, Disjunktion) 2-Stellig
  • \to (Implikation) 2-Stellig
  • 00 (Falsch, Falsum)
  • 11 (Wahr, Verum)

Nun kann man die eigentlich beliebig zusammen Würfeln. Bei den 2-Stelligen Junktoren klammern und dann wars das auch schon für die Syntax.

Semantik der Aussagenlogik

Das wichtigste in Malo sind vermutlich die Interpretationen meist mit I\mathfrak{I}. Sie ist in der Aussagenlogik eine simple Funktion. Sie ordnet jeder Variable einen Wahrheitswert zu. Also I:Var{0,1}\mathfrak{I}: \text{Var} \to \{0,1\}.

Bsp. φ=¬x1x2\varphi = \lnot x_1 \lor x_2.
Sei I\mathfrak{I} Interpretation. I(x1)=1\mathfrak{I}(x_1) = 1 und I(x2)=1\mathfrak{I}(x_2) = 1.

Nun nehmen wir die Interpretation und wenden sie auf die Formel an.

I(φ)=[ ⁣[φ] ⁣]I=max((11),1)=1\mathfrak{I}(\varphi) = [\![ \varphi ]\!]^\mathfrak{I} = \max ((1-1), 1) = 1

Ich werde von nun an die [ ⁣[φ] ⁣]I=[φ]I[\![ \varphi ]\!]^\mathfrak{I} = [ \varphi]^\mathfrak{I} schreiben, sofern das nicht verwirrend ist mit normalen eckigen Klammern.

Logische äquivalenz: φψ\varphi \equiv \psi gdw. [φ]I=[ψ]I[\varphi]^\mathfrak{I} = [\psi]^\mathfrak{I}

So jetzt ein paar Sachen abklappern:

  • Elimination von Doppelten Negationen: ¬¬φ=φ\lnot \lnot \varphi = \varphi
  • De Morgansche'sche Gesetze
  • Distributivgesetz
  • Kontraposition
  • Absorption
  • Idempotenz von \lor und \land
  • Kommutativität
  • Assoziativität

Trivial

Boolesche Funktionen: Logisch f:{0,1}n{0,1}f: \{0,1\}^n \to \{0,1\}. BnB^n ist die Menge aller Booleschen Funktionen mit nn Variablen. Bn=22n|B^n| = 2^{2^n}. Es ist relativ einfach zu sehen, dass jede Boolesche Funktion durch eine Formel darstellbar ist und umgekehrt.

Normalformen: Hier noch einfach

  • KNF: Konjunktive Normalform i=1nj=1milij\bigwedge_{i=1}^n \bigvee_{j=1}^{m_i} l_{ij} wobei lijl_{ij} Literal ist.
  • DNF: Disjunktive Normalform i=1nj=1milij\bigvee_{i=1}^n \bigwedge_{j=1}^{m_i} l_{ij} wobei lijl_{ij} Literal ist.

Genauso hatten wir Funktional Vollständige Mengen bereits genug.

Eine Menge ΩB\Omega \subseteq B von Booleschen Funktionen ist funktional vollständig, wenn jede Boolesche Funktion durch Ω\Omega darstellbar ist. Macht es einfach so wie immer.

Horn Formeln

Eine Horn Formel ist eine Formel in KNF, die in jeder Disjunktion nur aus höchstens einem positiven Literal besteht. Geschrieben werden sie entweder in KNF oder in Implikationen(schöner) schreiben, da:

  • ¬X1¬X2X3X1X2    X3\lnot X_1 \lor \lnot X_2 \lor X_3 \equiv X_1 \land X_2 \implies X_3
  • ¬X1¬X2¬X3X1X2X3    0\lnot X_1 \lor \lnot X_2 \lor \lnot X_3 \equiv X_1 \land X_2 \land X_3 \implies 0

Eine Hornformel kann mit dem Markierungsalgorithmus in polynomieller Zeit auf Erfüllbarkeit getestet werden.

Gegeben Formel: φ=(XY    Z)(X    Z)(1    X)(Y    0)\varphi = (X \land Y \implies Z) ∧ (X \implies Z) ∧ (1 \implies X) ∧ (Y \implies 0)

  1. Wir markieren XX, da 1    X1 \implies X. Also M={X}M=\{X\}.

  2. Durch X    ZX \implies Z wird ZZ markiert. M={X,Z}M=\{X,Z\}.

  3. Kann nichts mehr markiert werden. Also ist die Formel erfüllbar. Wenn es noch eine Formel z.B. Z    0Z \implies 0 gäbe, wäre die Formel nicht erfüllbar.

  4. MM gibt an welche Variablen wahr seien müssen. Der Rest ist falsch. Somit ist ein Modell fertig

Der Markierungsalgorithmus findet immer das kleinste Modell. Das ist wichtig, wenn man die Äquivalenz zu einer Horn Formel testen soll.

TODO: Aufgaben