Informatik/Logik und Logikprogrammierung.md
2021-05-04 14:18:51 +02:00

33 KiB
Raw Blame History

Logik

Die Logik

  • versucht, gültige Argumentationen von ungültigen zu unterscheiden,
  • hat Anwendungen in der Informatik,
  • formalisiert die zu untersuchenden Aussagen und
  • beschränkt sich auf einen wohldefinierten Teil der möglichen Aussagen => es gibt verschiedene "Logiken", z.B. "Aussagen-" und "Prädikatenlogik"
    • daneben:
      • temporale Logiken (Mastervorlesung "Verifikation")
      • modale Logiken
      • epistemische Logiken
      • ...

Syllogismen

Aristoteles (384-322 v.Chr.) untersuchte das Wesen der Argumentation und des logischen Schließens mit dem Ziel, korrekte von inkorrekten Argumenten zu unterscheiden. Verschiedene Werke, u.a. Analytica priora, Analytica posteriora.

Aristoteles nennt die logischen Schlußfolgerungen Syllogismen (griechisch: "Zusammenrechnung").

Ein Syllogismus ist eine Aussage, in der bestimmte Dinge [die Prämissen] behauptet werden und in der etwas anderes [die Konsequenz], unumgänglich aus dem Behaupteten folgt. Mit dem letzten Satz meine ich, dass die Prämissen die Konsequenz zum Resultat haben, und damit meine ich, dass keine weitere Prämisse erforderlich ist, um die Konsequenz unumgänglich zu machen.

Beispiele

Wenn alle Menschen sterblich sind und
Sokrates ein Mensch ist,
dann ist Sokrates sterblich.
Wenn eine Zahl gerade und größer als zwei ist,
dann ist sie keine Primzahl.
Wenn die Leitzinsen hoch sind,
dann sind die Börsianer unzufrieden.

Aristoteles identifizierte einige zulässige Syllogismen, die Scholastiker fügten weitere hinzu:

(Barbara)

Alle Dackel sind Hunde                  Alle P sind M
Alle Hunde sind Tiere                   Alle M sind S
Dann sind alle Dackel Tiere             Alle P sind S

(Cesare)

Keine Blume ist ein Tier                Kein P ist M
Alle Hunde sind Tiere                   Alle S sind M
Dann ist keine Blume ein Hund           Kein P ist S

(Darapti)

Alle Delfine leben im Meer              Alle M sind P
Alle Delfine sind Säugetiere            Alle M sind S
Dann leben einige Säugetiere im Meer    Einige S sind P

Kalküle

Gottfried Wilhelm Leibniz (1646-1716) wollte korrekte von inkorrekten Argumentationsketten unterscheiden. Hierzu sollte ein Kalkül entwickelt werden, in dem alle korrekten Argumentationsketten ermöglicht sind (und keine inkorrekten).

David Hilbert (1862-1943) entwickelte solche Kalküle. Diese "Hilbertkalküle" sind sehr verschieden von üblichen Argumentationsmustern.

Gerhard Gentzen (1909-1945) entwickelte Kalküle des "natürlichen Schließens", die übliche Argumentationsmuster formalisieren.

Die Aussagenlogik

George Boole (1815 - 1864) entwickelte einen Kalkül zum Rechnen mit atomare Aussagen, die entweder wahr oder falsch sein können.

Verknüpfung durch Operatoren(und, oder, nicht, wenn-dann... ).

Die Prädikatenlogik (Ende des 19. Jahrhunderts)

Gottlob Frege (1848-1925), Giuseppe Peano (1858-1932) und Bertrand Russell (1872-1970)entwickelten die Logik zur Grundlage der Mathematik, als formale Basis für die Vermeidung von Widersprüchen. Entwicklung der Prädikatenlogik, die erlaubt:

  • Beziehungen zwischen "Objekten" zu beschreiben
  • existentielle Aussagen zu treffen: "es gibt ein x, so dass... "
  • universelle Aussage zu treffen: "für jedes x gilt, dass... "

Logik in der Informatik

Claude Shannon (1916 - 2001) benutzt die Aussagenlogik 1937, um elektromechanische Schaltkreise zu beschreiben und zu optimieren.

Allen Newell (1927-1992), Herbert Simon (1916-2001) und Alan Robinson (1930-2016) entwickelten 1950-1960 die ersten Systeme für die Automatisierung des logischen Schließens als Werkzeug der Künstlichen Intelligenz.

  • Schaltkreisentwurf: Schaltkreise lassen sich durch logische Formeln darstellen -> Entwurf und Optimierung von Schaltungen
  • Modellierung und Spezifikation: Eindeutige Beschreibung von komplexen Systemen
  • Verifikation: Beweisen, dass ein Programm das gewünschte Verhalten zeigt
  • Datenbanken: Formulierung von Anfragen an Datenbanken -> Abfragesprache SQL (Structured Query Language)
  • (klassische) Künstliche Intelligenz:
    • Planung
    • Mensch-Maschine Kommunikation
    • Theorembeweiser: Der Computer beweist mathematische Sätze -> automatischer Beweis von wichtigen Sätzen im Bereich der Booleschen Algebren
  • Logische Programmiersprachen

Außerdem: Logik ist ein Paradebeispiel für Syntax und formale Semantik

Edsger W. Dijkstra (1920-2002): Informatik = VLSAL (Very large scale application of logics)

Die Logik

  • versucht, gültige Argumentationen von ungültigen zu unterscheiden,
  • hat Anwendungen in der Informatik,
  • formalisiert die zu untersuchenden Aussagen

Probleme mit natürlicher Sprache

  1. Problem: Zuordnung von Wahrheitswerten zu natürlichsprachigen Aussagen ist problematisch.
    • Beispiele:
      • Ich habe nur ein bißchen getrunken.
      • Sie hat sich in Rauch aufgelöst.
      • Das gibt es doch nicht!
      • Rache ist süß.
  2. Problem: Natürliche Sprache ist oft schwer verständlich.
    • Beispiel: Auszug aus der "Analytica Priora" von Aristoteles
    • Die Aussage: Wenn der Mittelbegriff sich universell auf Ober- oder Untersatz bezieht, muss ein bestimmter negativer Syllogismus resultieren, immer wenn der Mittelbegriff sich universell auf den Obersatz bezieht, sei es positiv oder negativ, und besonders wenn er sich auf den Untersatz bezieht und umgekehrt zur universellen Aussage.
    • Der Beweis: Denn wenn M zu keinem N gehört, aber zu einem O, ist es notwendig, dass N zu einem O nicht gehört. Denn da die negative Aussage umsetzbar ist, wird N zu keinem M gehören: Aber es war erlaubt, dass M zu einem O gehört: Deshalb wird N zu einem O nicht gehören: Denn das Ergebnis wird durch die erste Figur erreicht. Noch einmal: Wenn M zu allen N gehört, aber nicht zu einem O, ist es notwendig, dass N nichtzu einem O gehört: Denn wenn N zu allen O gehört und M auch alle N-Eigenschaften zugeschrieben werden, muss M zu allen O gehören: Aber wir haben angenommen, dass M zu einem O nicht gehört. Und wenn M zu allen N gehört, aber nicht zu allen O, können wir folgern, dass N nicht zu allen O gehört: Der Beweis ist der gleiche wie der obige. Aber wenn M alle O-Eigenschaften zugeschrieben werden, aber nicht alle N-Eigenschaften, wird es keinen Syllogismus geben.
  3. Problem:Natürliche Sprache ist mehrdeutig.
    • Beispiel: "Ich sah den Mann auf dem Berg mit dem Fernrohr."
      • (((Ich sah den Mann) auf dem Berg) mit dem Fernrohr)
      • ((Ich sah (den Mann auf dem Berg)) mit dem Fernrohr)
      • ((Ich sah den Mann) (auf dem Berg mit dem Fernrohr))
      • (Ich sah ((den Mann auf dem Berg) mit dem Fernrohr))
      • (Ich sah (den Mann (auf dem Berg mit dem Fernrohr)))
  4. Problem:Natürliche Sprache hängt von Kontext ab.
Die Beatles sind Musiker
Paul McCartney ist ein Beatle
Paul McCartney ist ein Musiker
Die Beatles sind vier
Paul McCartney ist ein Beatle
Paul McCartney ist vier

Kapitel 1: Aussagenlogik

Beispiel

Ein Gerät besteht aus einem Bauteil A, einem Bauteil B und einem roten Licht. Folgendes ist bekannt:

  1. Bauteil A oder Bauteil B (oder beide) sind kaputt.
  2. Wenn Bauteil A kaputt ist, dann ist auch Bauteil B kaputt.
  3. Wenn Bauteil B kaputt ist und das rote Licht leuchtet, dann ist Bauteil A nicht kaputt.
  4. Das rote Licht leuchtet.

Zur Formalisierung verwenden wir folgende Abkürzungen:

  • RL (rotes Licht leuchtet),
  • AK (Bauteil A kaputt),
  • BK (Bauteil B kaputt),
  • \vee (oder),
  • \rightarrow (wenn, dann),
  • \wedge (und) und
  • \lnot (nicht).

Damit können wir unser Wissen kompakter hinschreiben:

  1. AK \vee BK
  2. AK \rightarrow BK
  3. (BK \wedge RL)\rightarrow \lnot AK
  4. RL

Aus den vier Aussagen lassen sich weitere Aussagen neue Aussagen bilden 5. Falls AK gilt, so folgt aus AK\rightarrow BK, dass BK gilt. 6. Falls BK gilt, so gilt natürlich BK. 7. Da AK \vee BK gilt, folgt aus (5) und (6), dass BK in jedem Fall gilt. 8. Es gilt auch RL. 9. Also gilt BK\wedge RL (aus (7) und (8)). 10. Es gilt auch (BK \wedge RL)\rightarrow\lnot AK. 11. Also gilt \lnot AK (aus (9) und (10)).

Damit sind wir überzeugt, dass das Bauteil A heil ist.

Den Beweis, dass das Teil A heil ist, werden wir als "Beweisbaum" formalisieren:

In der Aussagenlogik gehen wir von "Aussagen" aus, denen wir (zumindest prinzipiell) Wahrheitswerte zuordnen können.

Beispiele

  • Die Summe von 3 und 4 ist 7.
  • Jana reagierte aggressiv auf Martins Behauptungen.
  • Jede gerade natürliche Zahl>2 ist Summe zweier Primzahlen.
  • Alle Marsmenschen mögen Pizza mit Pepperoni.
  • Albert Camus était un écrivain français.
  • In theory, practically everything is possible.

Für diese Aussagen verwenden wir dieatomaren Formeln p,q,r bzw. p_0,p_1,...

Die Aussagen werden durch "Operatoren" verbunden. Beispiele

  • ... und...
  • ... oder...
  • nicht...
  • wenn... dann...
  • entweder... oder... , aber nicht beide.
  • mehr als die Hälfte der Aussagen ... gilt.

Für solche zusammengesetzten Aussagen verwenden wir \varphi,\psi usw.

Durch die Wahl der erlaubten Operatoren erhält man unterschiedliche "Logiken".

Da der Wahrheitswert einer zusammengesetzten Aussage nur vom Wahrheitswert der Teilaussagen abhängen soll, sind Operatoren wie "weil" oder "obwohl" nicht zulässig.

Syntax der Aussagenlogik

Eine atomare Formel hat die Form p_i (wobei i\in\mathbb{N}=\{0,1,...\}). Formeln werden durch folgenden induktiven Prozess definiert:

  1. Alle atomaren Formeln und \bot sind Formeln.
  2. Falls \varphi und \psi Formeln sind, sind auch $(\varphi\wedge\psi),(\varphi\wedge\psi)$(\varphi \rightarrow\psi)und $\lnot\varphi$Formeln.
  3. Nichts ist Formel, was sich nicht mittels der obigen Regeln erzeugen läßt.

Beispielformel: \lnot((\lnot p_4 \vee p_1)\wedge\bot)

Bezeichnungen:

  • Falsum: \bot
  • Konjunktion: \wedge
  • Disjunktion: \vee
  • Implikation: \rightarrow
  • Negation: \lnot

Abkürzungen p,q,r... statt p_0,p_1,p_2...

(\bigvee_{i=1}^n \varphi_i statt (...((\varphi_1\vee\varphi_2)\vee\varphi_3)\vee...\vee\varphi_n)

(\bigwedge_{i=1}^n \varphi_i) statt (...((\varphi_1\wedge\varphi_2)\wedge\varphi_3)\wedge...\wedge\varphi_n)

(\varphi \leftrightarrow \psi) statt ((\varphi\rightarrow\psi)\wedge(\psi\rightarrow\varphi))

Präzedenz der Operatoren:

  • \leftrightarrow bindet am schwächsten
  • \rightarrow...
  • \vee...
  • \wedge...
  • \lnot bindet am stärksten

Es gilt also z.B.: (\alpha\leftrightarrow\beta\vee\lnot\gamma\rightarrow\sigma\wedge\lnot\eta) = (\alpha\leftrightarrow ((\beta\vee\lnot\gamma)\rightarrow(\sigma\wedge\lnot\eta)))

Dennoch: Zu viele Klammern schaden i.A. nicht.

Natürliches Schließen

Ein (mathematischer) Beweis zeigt, wie die Behauptung aus den Voraussetzungen folgt.
Analog zeigt ein "Beweisbaum" (= "Herleitung" = "Deduktion"), wie eine Formel der Aussagenlogik aus Voraussetzungen (ebenfalls Formeln der Aussagenlogik) folgt.
Diese "Deduktionen" sind Bäume, deren Knoten mit Formeln beschriftet sind:

  • an der Wurzel steht die Behauptung (= Konklusion \varphi)
  • an den Blättern stehen Voraussetzungen (= Hypothesen oder Annahmen aus \Gamma)
  • an den inneren Knoten stehen "Teilergebnisse" und "Begründungen"

Konstruktion von Deduktionen

Aus der Annahme der Aussage \varphi folgt \varphi unmittelbar: eine triviale Deduktion

\varphi mit Hypothesen \{\varphi\} und Konklusion \varphi.

Folgend werden wir

  • überlegen, wie aus "einfachen mathematischen Beweisen" umfangreichere entstehen können und
  • parallel dazudefinieren, wie aus einfachen Deduktionen umfangreichere konstruiert werden können.

Konjunktion

Konjunktionseinführung in math. Beweisen

Ein mathematischer Beweis einer Aussage "\varphi und $\psi$" sieht üblicherweise so aus:

  • "Zunächst zeige ich \varphi: ... (hier steckt die eigentliche Arbeit)
  • Jetzt zeige ich \psi: ... (nochmehr eigentliche Arbeit)
  • Also haben wir "\varphi und $\psi$" gezeigt. qed"

Konjunktionseinführung (ausführlich)

Ist D eine Deduktion von \varphi mit Hypothesen aus \Gamma und ist E eine Deduktion von \psi mit Hypothesen aus \Gamma, so ergibt sich die folgende Deduktion von \varphi\wedge\psi mit Hypothesen aus \Gamma:

Kurzform: \frac{\varphi\quad\psi}{\varphi\wedge\psi} (\wedge I)

Konjunktionselimination (ausführlich)

Ist D eine Deduktion von \varphi\wedge\psi mit Hypothesen aus \Gamma, so ergeben sich die folgenden Deduktionen von \varphi bzw. von \psi mit Hypothesen aus \Gamma:

Kurzform: \frac{\varphi\wedge\psi}{\varphi} (\wedge E_1) \quad\quad \frac{\varphi\wedge\psi}{\psi} (\wedge E_2)

Beispiel

Wir zeigen \varphi\wedge\psi unter der Hypothese \psi\wedge\varphi:...

Dies ist eine Deduktion mit Konklusion \varphi\wedge\psi und Hypothese \psi\wedge\varphi (zweimal verwendet).

Implikation

Implikationseinführung in math. Beweisen

Ein mathematischer Beweis einer Aussage "Aus \varphi folgt $\psi$" sieht üblicherweise so aus:

  • "Angenommen, \varphi gilt.
  • Dann ... (hier steckt die eigentliche Arbeit).
  • Damit gilt \psi.
  • Also haben wir gezeigt, dass \psi aus \varphi folgt. qed"

Die Aussage \varphi ist also eine "temporäre Hypothese".

Implikationseinführung (ausführlich)

Ist D eine Deduktion von \psi mit Hypothesen aus \Gamma\cup\{\varphi\}, so ergibt sich die folgende Deduktion von \varphi\rightarrow\psi mit Hypothesen aus \Gamma:

Kurzform

[\varphi]
\vdots
\frac{\psi}{\varphi\rightarrow\psi} (\rightarrow I)

Beispiel: ... Dies ist eine Deduktion von \varphi\rightarrow\varphi ohne Hypothesen.

Implikationselimination in math. Beweisen

Ein mathematischer Beweis einer Aussage "\psi gilt" über eine Hilfsaussage sieht so aus:

  • "Zunächst zeigen wir, dass \varphi gilt: ...
  • Dann beweisen wir, dass \psi aus \varphi folgt: ...
  • Also haben wir \psi gezeigt. qed"

Implikationselimination oder modus ponens (ausführlich)

Ist D eine Deduktion von \varphi mit Hypothesen aus \Gamma und ist E eine Deduktion von \varphi\rightarrow\psi mit Hypothesen aus \Gamma, so ergibt sich die folgende Deduktion von \psi mit Hypothesen aus \Gamma:

Kurzform: \frac{\varphi\quad \varphi\rightarrow\psi}{\psi} (\rightarrow E)

Beispiel

Bemerkung: die Indizes 1, 2 und 3 machen deutlich, welche Hypothese bei welcher Regelanwendung gestrichen wurde. Deduktionen können recht groß werden.

Diese Deduktion hat keine Hypothesen!

Disjunktion

Disjunktionselimination oder Fallunterscheidung in math. Beweisen

Ein mathematischer Beweis einer Aussage "\sigma gilt" mittels Fallunterscheidung sieht üblicherweise so aus:

  • "Zunächst zeigen wir, dass \varphi\vee\psi gilt: ...
  • Gilt \varphi, so gilt \sigma, denn ...
  • Gilt \psi, so gilt ebenfalls \sigma, denn ...
  • Also haben wir gezeigt, dass \sigma gilt. qed"

Die Aussagen \varphi und \psi sind also wieder "temporäre Hypothesen".

Disjunktionselimination oder Fallunterscheidung (ausführlich)

Ist D eine Deduktion von \varphi\vee\psi mit Hypothesen aus \Gamma, ist E eine Deduktion von \sigma mit Hypothesen aus $\Gamma\cup{\varphi}$und ist F eine Deduktion von \sigma mit Hypothesen aus \Gamma\cup\{\psi\}, so ergibt sich die folgende Deduktion von \sigma mit Hypothesen aus \Gamma:

Disjunktionselimination Kurzform:

\quad [\psi] \quad[\varphi]
\quad \vdots \quad\vdots
\frac{\varphi\vee\psi \quad\sigma \quad\sigma}{\sigma} (\vee E)

Disjunktionseinführung (Kurzform)

\frac{\varphi}{\varphi\vee\psi} (\vee I_1) \quad \frac{\psi}{\varphi\vee\psi} (\vee I_2)

Negation

Negationseinführung in math. Beweisen

Ein mathematischer Beweis einer Aussage "\varphi gilt nicht" sieht so aus:

  • "Angenommen,$\varphi$gilt.
  • Dann folgt 0=1, denn .... Mit anderen Worten, dies führt zu einem Widerspruch.
  • Also haben wir gezeigt, dass \varphi nicht gilt. qed"

Die Aussage \varphi ist also wieder eine "temporäre Hypothese".

Negationseinführung (ausführlich)

Ist D eine Deduktion von \bot mit Hypothesen aus \Gamma\cup\{\varphi\}, so ergibt sich die folgende Deduktion von \lnot\varphi mit Hypothesen aus \Gamma:

Kurzform:

[\varphi]
\vdots
\frac{\bot}{\lnot\varphi} (\lnot I)

Negationselimination (ausführlich)

Ist D eine Deduktion von \lnot\varphi mit Hypothesen aus \Gamma und ist E eine Deduktion von \varphi mit Hypothesen aus \gamma, so ergibt sich die folgende Deduktion von \bot mit Hypothesen aus \Gamma:

Kurzform: \frac{\lnot\varphi \quad \varphi}{\bot} (\lnot E)

Falsum

Hat man "$0=1$" bewiesen, so ist man bereit, alles zu glauben: ex falso sequitur quodlibet

ausführlich: Ist D eine Deduktion von \bot mit Hypothesen aus \Gamma, so ergibt sich die folgende Deduktion von \varphi mit Hypothesen aus \Gamma:

Kurzform: \frac{\bot}{\varphi} (\bot)

math. Widerspruchsbeweis

Ein indirekter Beweis einer Aussage "\varphi gilt" sieht üblicherweise so aus:

  • "Angenommen, \varphi gilt nicht, d.h. \lnot\varphi gilt.
  • Dann folgt 0=1, d.h. ein Widerspruch.
  • Also haben wir gezeigt, dass \varphi gilt. qed"

Die Aussage \lnot\varphi ist also wieder eine "temporäre Hypothese".

reductio ad absurdum (ausführlich)

Ist D eine Deduktion von \bot mit Hypothesen aus \Gamma\cup\{\lnot\varphi\}, so ergibt sich die folgende Deduktion von \varphi mit Hypothesen aus \Gamma:

Kurzform:

[\lnot\varphi]
\vdots
\frac{\bot}{\varphi} (raa)

Regeln des natürlichen Schließens

Definition

Für eine Formelmenge \Gamma und eine Formel \varphi schreiben wir \Gamma\Vdash\varphi wenn es eine Deduktion gibt mit Hypothesen aus \Gamma und Konklusion \varphi. Wir sagen "\varphi ist eine syntaktische Folgerung von $\Gamma$".

Eine Formel \varphi ist ein Theorem, wenn \varnothing\Vdash\varphi gilt.

Bemerkung

\Gamma\Vdash\varphi sagt (zunächst) nichts über den Inhalt der Formeln in \Gamma\cup\{\varphi\} aus, sondern nur über die Tatsache, dass \varphi mithilfe des natürlichen Schließens aus den Formeln aus \Gamma hergeleitet werden kann.

Ebenso sagt "\varphi ist Theorem" nur, dass \varphi abgeleitet werden kann, über "Wahrheit" sagt dieser Begriff (zunächst) nichts aus.

Satz

Für alle Formeln \varphi und \psi gilt \{\lnot(\varphi\vee\psi)\}\Vdash\lnot\varphi\wedge\lnot\psi.

Beweis: Wir geben eine Deduktion an...

  • ${\lnot\varphi\wedge\lnot\psi}\Vdash\lnot(\varphi\vee\psi)$
  • ${\lnot\varphi\vee\lnot\psi}\Vdash\lnot(\varphi\wedge\psi)$
  • ${\varphi\vee\psi} \Vdash \psi\vee\varphi$

Satz

Für jede Formel \varphi ist \lnot\lnot\varphi\rightarrow\varphi ein Theorem.

Beweis: Wir geben eine Deduktion mit Konklusion \lnot\lnot\varphi\rightarrow\varphi ohne Hypothesen an...

Satz

Für jede Formel \varphi ist \varphi\vee\lnot\varphi ein Theorem.

Beweis: Wir geben eine Deduktion mit Konklusion \varphi\vee\lnot\varphi ohne Hypothesen an...

Bemerkung: Man kann beweisen, dass jede Deduktion der letzten beiden Theoreme die Regel (raa) verwendet, sie also nicht "intuitionistisch" gelten.

Satz

\{\lnot(\varphi\wedge\psi)\}\Vdash\lnot\varphi\vee\lnot\psi

Semantik

Formeln sollen Verknüpfungen von Aussagen widerspiegeln, wir haben dies zur Motivation der einzelnen Regeln des natürlichen Schließens genutzt. Aber die Begriffe „syntaktische Folgerung“ und „Theorem“ sind rein syntaktisch definiert.

Erst die jetzt zu definierende „Semantik“ gibt den Formeln „Bedeutung“.

Idee der Semantik: wenn man jeder atomaren Formel p_i einen Wahrheitswertzuordnet, so kann man den Wahrheitswert jeder Formel berechnen.

Es gibt verschiedene Möglichkeiten, Wahrheitswerte zu definieren:

  • zweiwertige oder Boolesche Logik B=\{0,1\}: Wahrheitswerte „wahr“=1 und „falsch“= 0
  • dreiwertige Kleene-Logik K_3=\{0,\frac{1}{2},1\}: zusätzlicher Wahrheitswert „unbekannt“=\frac{1}{2}
  • Fuzzy-Logik F=[0,1]: Wahrheitswerte sind „Grad der Überzeugtheit“
  • unendliche Boolesche Algebra $B_R$= Menge der Teilmengen von \mathbb{R}; A\subseteq\mathbb{R} ist „Menge der Menschen, die Aussage für wahr halten“
  • Heyting-Algebra $H_R$= Menge der offenen Teilmengen von \mathbb{R}
    • Erinnerung: A\subseteq\mathbb{R} offen, wenn \forall a\in A\exists\epsilon >0:(a-\epsilon,a+\epsilon)\subseteq A, d.h., wenn A abzählbare Vereinigung von offenen Intervallen (x,y) ist.

Beispiele:

  • offen: (0,1), \mathbb{R}_{>0}, \mathbb{R}\backslash\{0\}, \mathbb{R}\backslash\mathbb{N}
  • nicht offen: [1,2), \mathbb{R}_{\geq 0}, \mathbb{Q}, \mathbb{N}, \{\frac{1}{n} | n\in\mathbb{N}\}, \mathbb{R}\backslash\mathbb{Q}

Sei W eine Menge von Wahrheitswerten.\ Eine W-Belegungist eine Abbildung B:V\rightarrow W, wobei V\subseteq\{p_0 ,p_1 ,...\} eine Menge atomarer Formeln ist.

Die W-Belegung B:V\rightarrow W paßt zur Formel \phi, falls alle atomaren Formeln aus \phi zu V gehören.

Sei nun B eine W-Belegung. Was ist der Wahrheitswert der Formel p_0\vee p_1 unter der Belegung B?

Zur Beantwortung dieser Frage benötigen wir eine Funktion \vee_W :W\times W\rightarrow W (analog für \wedge,\rightarrow,\lnot).

Wahrheitswertebereiche

Definition: Sei W eine Menge und R\subseteq W\times W eine binäre Relation.

  • R ist reflexiv, wenn (a,a)\in R für alle a\in W gilt.
  • R ist antisymmetrisch, wenn (a,b),(b,a)\in R impliziert, dass a=b gilt (für alle a,b\in W).
  • R ist transitive, wenn (a,b),(b,c)\in R impliziert, dass (a,c)\in R gilt (für alle a,b,c\in W).
  • R ist eine Ordnungsrelation, wenn R reflexiv, antisymmetrisch und transitiv ist. In diesem Fall heißt das Paar (W,R) eine partiell geordnete Menge.

Beispiel

  1. Sei \leq übliche Ordnung auf $\mathbb{R}$und W\subseteq\mathbb{R}. Dann ist (W,\leq) partiell geordnete Menge.
  2. Sei X eine Menge und W\subseteq P(X). Dann ist (W,\subseteq) partiell geordnete Menge.
  3. Sei W=P(\sum ) und \leq_p die Relation „es gibt Polynomialzeitreduktion“ (vgl. „Automaten, Sprachen und Komplexität“). Diese Relation ist reflexiv, transitiv, aber nicht antisymmetrisch (denn 3-SAT\leq_p HC und HC\leq_p 3-SAT).

Definition: Sei (W,\leq) partiell geordnete Menge, M\subseteq W und a\in W.

  • a ist obere Schranke von M, wenn m\leq a für alle m\in M gilt.
  • a ist kleinste obere Schranke oder Supremum von M, wenn a obere Schranke von M ist und wenn a\leq b für alle oberen Schranken b von M gilt. Wir schreiben in diesem Fall a=sup \ M.
  • a ist untere Schranke von M, wenn a\leq m für alle m\in M gilt.
  • a ist größte untere Schranke oder Infimum von M, wenn a untere Schranke von M ist und wenn b\leq a für alle unteren Schranken b von M gilt. Wir schreiben in diesem Fall a=inf\ M.

Beispiel

  1. betrachte (W,\leq) mit W=\mathbb{R} und \leq übliche Ordnung auf \mathbb{R}.
    • Dann gelten sup[0,1] = sup(0,1) =1.
    • sup\ W existiert nicht (denn W hat keine obere Schranke).
  2. betrachte (W,\subseteq) mit X Menge und W =P(X).
    • sup\ M=\bigcup_{A\in M} A für alle M\subseteq W
  3. betrachte (W,\subseteq) mit W=\{\{0\},\{1\},\{0,1,2\},\{0,1,3\}\}.
    • sup\{\{0\},\{0,1,2\}\}=\{0,1,2\}
    • \{0,1,2\} und \{0,1,3\} sind die oberen Schranken von M=\{\{0\},\{1\}\}, aber M hat kein Supremum

Definition: Ein (vollständiger) Verband ist eine partiell geordnete Menge (W,\leq), in der jede Menge M\subseteq W ein Supremum sup\ M und ein Infimum inf\ M hat. In einem Verband (W,\leq) definieren wir:

  • 0_W = inf\ W und 1_W= sup\ W
  • a\wedge_W b= inf\{a,b\} und a\vee_W b= sup\{a,b\} für a,b\in W

Bemerkung: In jedem Verband (W,\leq) gelten 0_W= sup\ \varnothing und 1_W= inf\ \varnothing (denn jedes Element von W ist obere und untere Schranke von \varnothing).

Definition: Ein Wahrheitswertebereich ist ein Tupel (W,\leq,\rightarrow W,\lnot W), wobei (W,\leq) ein Verband und \rightarrow W:W^2 \rightarrow W und \lnot W:W\rightarrow W Funktionen sind.

Beispiel

  • Der Boolesche Wahrheitswertebereich B ist definiert durch die Grundmenge B=\{0,1\}, die natürliche Ordnung \leq und die Funktionen \lnot_B (a) = 1-a, \rightarrow_B(a,b) = max(b, 1 -a). Hier gelten:

    • 0_B=0, 1_B= 1,
    • a\wedge_B b= min(a,b), a\vee_B b= max(a,b)
  • Der Kleenesche Wahrheitswertebereich K_3 ist definiert durch die Grundmenge K_3=\{0,\frac{1}{2},1\} mit der natürlichen Ordnung \leq und durch die Funktionen \lnot_{K_3} (a) = 1 -a , \rightarrow_{K_3} (a,b) = max(b, 1-a). Hier gelten:

    • \lnot_{K_3} = 0, 1_{K_3} = 1
    • a\wedge_{K_3} b= min(a,b), a\vee_{K_3} b= max(a,b)
  • Der Wahrheitswertebereich F der Fuzzy-Logik ist definiert durch die Grundmenge F=[0,1]\subseteq\mathbb{R} mit der natürlichen Ordnung \leq und durch die Funktionen \lnot_F (a) = 1-a, \rightarrow_F (a,b) = max(b, 1-a). Hier gelten:

    • 0_F= 0, 1_F= 1
    • a\wedge_F b= min(a,b), a\vee_F b= max(a,b)
  • Der Boolesche Wahrheitswertebereich B_R ist definiert durch die Grundmenge B_R=\{A|A\subseteq \mathbb{R}\} mit der Ordnung \subseteq und durch die Funktionen \lnot_{B_R} (A) =\mathbb{R}\backslash A, \rightarrow_{B_R} (A,B) = B\cup\mathbb{R}\backslash A. Hier gelten:

    • 0_{B_R}=\varnothing, 1_{B_R}=\mathbb{R}
    • A\wedge_{B_R} B=A\cap B, A\vee_{B_R} B=A\cup B
  • Der Heytingsche Wahrheitswertebereich H_R ist definiert durch die Grundmenge HR=\{A\subseteq\mathbb{R} | \text{A ist offen}\}, die Ordnung \subseteq und durch die Funktionen \lnot_{H_R} (A) = Inneres(\mathbb{R}\backslash A), \rightarrow_{H_R} (A,B) =Inneres(B\cup \mathbb{R}\backslash A). Hier gelten:

    • 0_{H_R}=\varnothing, 1_{H_R}=\mathbb{R}
    • A\wedge_{H_R} B= A\cap B, A\vee_{H_R} B=A\cup B
    • Erinnerung: Inneres(A) =\{a\in A|\exists \epsilon > 0 : (a-\epsilon,a+\epsilon)\subseteq A\}
    • Beispiele: Inneres((0,1))=(0,1)=Inneres([0,1]),Inneres(N)=\varnothing,Inneres(\mathbb{R}_{\geq 0}) = \mathbb{R}_{> 0}

Sei W ein Wahrheitswertebereich und B eine W-Belegung. Induktiv über den Formelaufbau definieren wir den Wahrheitswert \hat{B}(\phi)\in W jeder zu B passenden Formel \phi:

  • \hat{B}(\bot) = 0_W
  • \hat{B}(p) = B(p) falls p eine atomare Formel ist
  • \hat{B}((\phi\wedge \psi )) = \hat{B}(\phi)\wedge_W \hat{B}(\psi )
  • \hat{B}((\phi\vee \psi )) = \hat{B}(\phi)\vee_W \hat{B}(\psi )
  • \hat{B}((\phi\rightarrow \psi )) = \rightarrow W(\hat{B}(\phi),\hat{B}(\psi ))
  • \hat{B}(\lnot\phi) = \lnot W(\hat{B}(\phi))

Wir schreiben im folgenden B(\phi) anstatt \hat{B}(\phi).

Beispiel: Betrachte die Formel \phi= ((p\wedge q)\rightarrow (q\wedge p)).

  • Für eine beliebige B-Belegung B:\{p,q\}\rightarrow B gilt B((p\wedge q)\rightarrow (q\wedge p)) = max(B(q\wedge p), 1 -B(p\wedge q)) = max(min(B(q),B(p)), 1 -min(B(p),B(q))) = 1 = 1_B
  • Für die $K_3$-Belegung B:\{p,q\}\rightarrow K_3 mit $B(p) =B(q) = \frac{1}{2}$} gilt B((p\wedge q)\rightarrow (q\wedge p)) = max(B(q\wedge p), 1 -B(p\wedge q))= max(min(B(q),B(p)), 1 -min(B(p),B(q))) = \frac{1}{2} \not= 1_{K_3}
  • analog gibt es eine F-Belegung B:\{p,q\}\rightarrow F, so dass B((p\wedge q)\rightarrow (q\wedge p)) \not = 1_F gilt.
  • Für eine beliebigeHR-Belegung B:\{p,q\}\rightarrow H_R gilt B((p\wedge q)\rightarrow (q\wedge p)) = Inneres(B(q\wedge p)\cup \mathbb{R}\backslash B(p\wedge q)) = Inneres((B(q)\cap B(p))\cup \mathbb{R}\backslash (B(p)\cap B(q))) = Inneres(\mathbb{R}) = \mathbb{R} = 1_{H_R}

Folgerung und Tautologie

Sei W ein Wahrheitswertebereich. Eine Formel \phi heißt eine W-Folgerung der Formelmenge \Gamma, falls für jede W-Belegung B, die zu allen Formeln aus \Gamma \cup\{\phi\} paßt, gilt: inf\{B(\gamma )|\gamma \in \Gamma \}\leq B(\phi)

Wir schreiben \Gamma \Vdash W\phi, falls \phi eine W-Folgerung von \Gamma ist.

Bemerkung: Im Gegensatz zur Beziehung \Gamma \vdash \phi, d.h. zur syntaktischen Folgerung, ist \Gamma \Vdash W \phi eine semantische Beziehung.

Eine W-Tautologie ist eine Formel \phi mit \varnothing \Vdash W\phi, d.h. B(\phi) = 1_W für alle passenden W-Belegungen B (denn inf\{\hat{B}(\gamma )|\gamma \in \varnothing \}= inf \varnothing = 1_W).

Wahrheitstafel für den Booleschen Wahrheitswertebereich B:

RL AK BK AK\vee BK AK\rightarrow BK (BK\wedge RL)\rightarrow\lnot AK RL \lnot AK
0 0 0 0 1 1 0 1
0 0 1 1 1 1 0 1
0 1 0 1 0 1 0 0
0 1 1 1 1 1 0 0
1 0 0 0 1 1 1 1
1 0 1 1 1 1 1 1
1 1 0 1 0 1 1 0
1 1 1 1 1 0 1 0

Wir erhalten also ${(AK\vee BK),(AK\rightarrow BK), ((BK\wedge RL)\rightarrow \lnot AK),RL} \Vdash_B \lnot AK$ und können damit sagen:

„Wenn die Aussagen „Bauteil A oder Bauteil B ist kaputt“ und „daraus, dass Bauteil A kaputt ist, folgt, dass Bauteil B kaputt ist“ und... wahr sind, ... dann kann man die Folgerung ziehen: die Aussage „das Bauteil A ist heil“ ist wahr.“

Erinnerung aus der ersten Vorlesung: \{(AK\vee BK),(AK\rightarrow BK), ((BK\wedge RL)\rightarrow \lnot AK),RL\} \vdash \lnot AK

Beispiel Sei \phi beliebige Formel mit atomaren Formeln in V.

  • Sei B:V\rightarrow B eine B-Belegung. Dann gilt

    B(\lnot\lnot\phi\rightarrow\phi) = \rightarrow B(\lnot B\lnot B(B(\phi)),B(\phi)) = max(B(\phi), 1 -( 1 -( 1 -B(\phi)))) = max(B(\phi), 1 -B(\phi)) = 1 = 1_B.

    Also ist \lnot\lnot\phi\rightarrow\phi eine B-Tautologie (gilt ebenso für den Wahrheitswertebereich B_R).

  • Sei B:V\rightarrow H_R eine $H_R$-Belegung mit B(\phi) =R\backslash\{0\}. Dann gelten

    • B(\lnot\phi) = Inneres(\mathbb{R}\backslash B(\phi)) = Inneres(\{0\}) =\varnothing
    • B(\lnot\lnot\phi) = Inneres(\mathbb{R}\backslash B(\lnot\phi)) = Inneres(\mathbb{R}) = \mathbb{R}
    • B(\lnot\lnot\phi\rightarrow\phi) = \rightarrow_{H_R} (B(\lnot\lnot\phi),B(\phi)) = \rightarrow_{H_R} (\mathbb{R},\mathbb{R}\backslash \{0\}) = Inneres(\mathbb{R}\backslash\{0\}\cup\mathbb{R}\backslash\mathbb{R}) = \mathbb{R}\backslash\{0\}\not =\mathbb{R}= 1_{H_R}

    Also ist \lnot\lnot\phi\rightarrow\phi keine $H_R$-Tautologie (gilt ebenso für die Wahrheitswertebereiche K_3 und F).

  • Sei B:V\rightarrow B eine B-Belegung. Dann gilt

    B(\phi\vee\lnot\phi) = max(B(\phi), 1 -B(\phi)) = 1 = 1_B.

    Also ist \phi\vee\lnot\phi eine B-Tautologie (gilt ebenso für den Wahrheitswertebereich B_R).

  • Sei B:V\rightarrow H_R eine $H_R$-Belegung mit B(\phi)=\mathbb{R}\backslash\{0\}. Dann gilt B(\phi\vee\lnot\phi) = B(\phi)\cup B(\lnot\phi) = \mathbb{R}\backslash\{0\}\cup \varnothing \not= 1_{H_R}.

    Also ist \phi\vee\lnot\phi keine $H_R$-Tautologie (gilt ebenso für die Wahrheitswertebereiche K_3 und F).

  • Sei B:V\rightarrow B eine B-Belegung. Dann gilt

    B(\lnot\phi\rightarrow\bot) = \rightarrow_B(B(\lnot\phi),B(\bot)) = max(0,1-B(\lnot \phi)) = 1 -( 1 -B(\phi)) =B(\phi)$.

    Also haben wir \{\lnot\phi\rightarrow\bot\}\Vdash B\phi und \{\phi\}\Vdash B\lnot \phi\rightarrow\bot.

    • Ebenso erhält man:
      • \{\lnot\phi\rightarrow\bot\}\Vdash_{K_3} \phi
      • \{\phi\}\Vdash_{K_3} \lnot\phi\rightarrow\bot
      • \{\lnot\phi\rightarrow\bot\}\Vdash_F\phi
      • \{\phi\}\Vdash F\lnot\phi\rightarrow\bot
  • Sei B:D\rightarrow H_R eine $H_R$-Belegung mit B(\phi) =\mathbb{R}\backslash\{0\}. Dann gilt B(\lnot\phi\rightarrow\bot) = Inneres(B(\bot )\cup \mathbb{R}\backslash B(\lnot\phi))= Inneres(\varnothing \cup \mathbb{R}\backslash\varnothing)= \mathbb{R} \not\supseteq B(\phi).

    also \{\lnot\phi\rightarrow\bot\}\not\Vdash_{H_R} \phi.

    Es gilt aber \{\phi\}\Vdash_{H_R}\lnot \phi\rightarrow\bot.

Zusammenfassung der Beispiele

B B_R K_3 F H_R
\varnothing\Vdash_W\lnot\lnot\phi\rightarrow\phi \varnothing\vdash \lnot\lnot\phi\rightarrow\phi
\varnothing\Vdash_W\phi\vee\lnot\phi \varnothing\vdash\phi\vee\lnot\phi
\{\lnot\phi\rightarrow\bot\}\Vdash_W\phi \{\lnot\phi\rightarrow\bot\}\vdash\phi
\{\phi\}\Vdash_W\lnot\phi\rightarrow\bot \{\phi\}\vdash\lnot\phi\rightarrow\bot
  • in Spalte W:W-Folgerung gilt
  • - in Spalte W:W-Folgerung gilt nicht

Überblick: Wir haben definiert

  • \Gamma\vdash\phi syntaktische Folgerung
    • Theorem („hypothesenlos ableitbar“)
  • \Gamma\Vdash_W \phi (semantische) W-Folgerung
    • W-Tautologie („wird immer zu 1Wausgewertet“)

Frage: Was ist die Beziehung zwischen diesen Begriffen, insbes. zwischen „Theorem“ und „W-Tautologie“? Da z.B. B-Folgerung $\not =K_3$-Folgerung, hängt die Anwort von W ab.