Logik - Softwaretechnik und Programmiersprachen

Werbung
Logik:!
Michael Leuschel!
!
Softwaretechnik und Programmiersprachen
!
Was ist Logik?!
Contrariwise, if it was so, it might
be; and if it were so, it would be;
but as it isn't, it ain't. That's logic.
Lewis Carroll
Grammar is the logic of speech,
even as logic is the grammar of
reason.
Richard Chenevix Trench
Logik: Wikipedia!
Logik (griechisch ἡ λογική (τέχνη) he logiké téchne „die denkende
[Kunst, Vorgehensweise]“) ist die Lehre des vernünftigen
(Schluss-)Folgerns.
Die Logik untersucht die Gültigkeit von Argumenten hinsichtlich ihrer
Struktur unabhängig vom konkreten Inhalt der eigentlichen
Aussagen. In diesem Sinne spricht man auch von „formaler“ Logik.
Die Logik ist sowohl ein Teilgebiet der Philosophie als auch der
Mathematik und der Informatik.
Seit dem 20. Jahrhundert versteht man unter Logik überwiegend
symbolische Logik. Diese baut auf einer künstlichen Sprache auf und
verwendet streng definierte Schlussregeln. Ein einfaches Beispiel für
ein solches formales System ist die Aussagenlogik. Die symbolische
Logik nennt man auch mathematische Logik oder formale Logik im
engeren Sinn. Die Logik hatte nicht immer eine in diesem Sinn
formale Struktur, sondern befasste sich in der Antike und im
Mittelalter überwiegend mit natürlichsprachlichen Argumenten.
Anfänge der Logik!
Alle Menschen
sind sterblich
Alle Menschen
sind unsterblich
Einige Menschen
sind sterblich
Einige Menschen
sind unsterblich
Aristoteles 384-322 vChr
Warum Logik studieren ?!
— 
Wichtiger Zweig der Mathematik!
◦  Was ist Wahrheit? Was ist ein Beweis ?!
— 
Wissensdarstellung + intelligentes Denken!
◦  Künstliche Intelligenz (A.I.), natürliche Sprache,
semantisches Web, ...!
— 
Überlegungen über Programme!
◦  Verifikation, statische Analyse, Optimierung,…!
Hardware!
—  Universale Vorrichtung der Berrechnung:!
— 
◦  Logische Programmierung, Prolog, …!
Was beinhaltet eine Logik ?!
1. Sprache der Ausdrücke und Formeln!
2. Beweistheorie (proof theory)!
◦  Axiome : unabdingbar wahr, automatisch
Theoreme!
◦  Inferenzregeln : um neue Theoreme von
existierenden abzuleiten (truth preserving
inference)!
3. Modelltheorie (existiert nicht immer)!
◦  Abbildung von Ausdrücken auf “echte” Objekte,
und Verknüpfung mit Aussagen in der “echten”
Welt!
— 
Logik = Studium der korrekten Inferenz/
Schlussfolgerung!
Verschiedene Logiken!
Aussagenlogik (propositional logic)!
—  Prädikatenlogik der ersten Stufe (predicate
logic, first-order logic FOL)!
—  Logik höherer Stufe (HOL)!
—  Temporale Logik - Modallogik!
—  Mehrwertige Logiken, Fuzzy Logik!
—  Nichtmonotone Logiken!
—  Relevanzlogik, lineare Logik!
—  ...!
— 
rains
Aussagenlogik!
rains → carry_umbrella
rains ∨¬ rains
p ∨¬ p
◦  Was ist die Sprache?!
◦  Beweistheorie!
–  Was gibt es an Axiomen ?!
–  Was gibt es an Inferenzregeln?!
◦  Modelltheorie!
–  Wie können wir Formeln mit der realen Welt
verknüpfen?!
Syntax der Aussagenlogik
— 
Junktoren
◦  Und (Konjunktion):
◦  Oder (Disjunktion):
◦  If then (Implikation):
◦  Äquivalenz:
◦  Nicht (Negation):
◦  XOR,NAND, . . .
— 
Aussagen
◦  Bezeichner:
— 
∧
∨
⇒
⇔
¬
p
q
(
)
Andere Zeichen:
◦  Klammern
07/04/2012
rains ...
Präzedenz
1. Negation ¬ höchste Priorität
2. Dann kommen ∧ und ∨
3. Am Ende ⇒ und ⇔
Anstatt
◦  (((¬ p) ∧ (¬ q)) ⇒ ((¬ p) ∨ (¬ q)))
schreiben wir
◦  (¬ p ∧ ¬ q) ⇒ (¬ p ∨ ¬ q)
◦  ¬ p ∧ ¬ q ⇒ ¬ p ∨ ¬ q
10/04/2012
Klausuraufgabe:!
—  Kreuzen
Sie eine richtige Antwort an
falls es eine gibt:!
◦  a) Die Antwort b) ist richtig!
◦  b) Die Antwort c) ist falsch!
◦  c) Es gibt mindestens eine richtige
Antwort!
Interpretation einer Formel!
—  Jede Aussage
bekommt Wert ∈ {T,F}
—  Verknüpfungstabelle:
◦  Formel bekommt einen Wert ∈ {T,F}
basierend auf dem Wert der Argumente
—  Modell
einer Formel :
◦  Interpretation die die Formel wahr macht
Wahrheitstabellen
α
β
¬α
α∧ β
T
T
F
T
T
T
T
T
F
F
F
T
F
F
F
T
T
F
T
T
F
F
F
T
F
F
T
T
07/04/2012
α∨ β α→ β α⇔ β
Übung:
— 
v(p) = T,v(q) = F
— 
v(p ∧ (q ∨ (¬p) )) =
— 
v(p → (p → q )) =
— 
v(p ∨ (¬p)) =
— 
v(p ∧ (¬p)) =
07/04/2012
Übung: Lösung
— 
v(p) = T,v(q) = F
v(p ∧ (q ∨ (¬p) )) F
v(p)
— 
v(p ∧ (q ∨ (¬p) )) = F
— 
v(p → (p → q )) = F
— 
v(p ∨ (¬p)) = T
— 
v(p ∧ (¬p)) = F
v(q ∨ (¬p) )
T
F
v(q)
F
v(¬p) F
v(p)
T
07/04/2012
Übung: Lösung
— 
— 
v(p) = T,v(q) = F
v’(p) = F,v’(q) = F
— 
v(p ∧ (q ∨ (¬p) )) = F
— 
v(p → (p → q )) = F
v’(p → (p → q )) = T
— 
v(p ∧ (q ∨ (¬p) )) F
— 
— 
v(p)
v(p ∨ (¬p)) = T
v’(p ∨ (¬p)) = T
v(q ∨ (¬p) )
T
F
v(q)
F
— 
v(¬p) F
— 
v(p)
T
07/04/2012
v(p ∧ (¬p)) = F
v’(p ∧ (¬p)) = F
Arten von Formeln!
—  Tautologie!
◦  Nur Modelle!
—  Erfüllbare
Formel!
◦  Mindestens ein Modell!
—  Widerspruch:!
◦  Kein Modell!
—  Äquivalenz
von Formeln ? Definition
von Schlussfolgerung?!
Äquivalenz, Logische Folge!
—  A und
B sind äquivalent (A≣B) genau
dann wenn sie die gleichen Modelle
haben!
ist eine Schlussfolgerung von A (A ⊨
B) genau dann wenn alle Modelle von
A auch Modelle von B sind!
—  B
Beweise in Aussagenlogik!
-  Wahrheitstabellen
A ⊨? B
A ≡? B
p
q
A
pq
B
¬p∨q
T
T
T
T
T
F
F
F
F
T
F
T
F
F
T
T
Theorem
—  A
⊨B
gdw
—  Formel (A⇒B) ist eine Tautologie
p
q
A
pq
B
¬p∨q
A⇒B
T
T
T
T
T
T
F
F
F
T
F
T
F
T
T
F
F
T
T
T
Theorem
—  A
⊨B
gdw
—  Formel (A⇒B) ist eine Tautologie
gdw
—  A ⋀ ¬B ist ein Widerspruch
p
q
A
pq
B
¬p∨q
A⇒B
A ⋀ ¬B
T
T
T
T
T
F
T
F
F
F
T
F
F
T
F
T
T
F
F
F
T
T
T
F
Beispiel!
—  What
I cannot create I do not
understand.!
◦  Richard Feynman!
—  ⊨
What I can create I do understand ?!
◦  (¬C ⇒ ¬U) ⊨? (C ⇒ U)!
—  ⊨
What I understand I can create ?!
◦  (¬C ⇒ ¬U) ⊨? (U ⇒ C)!
Logisches Puzzle
Ritter: sagen immer die
Wahrheit
—  Schurken: lügen immer
—  1: A sagt: “B ist ein Schurke
oder C ist ein Schurke”
—  2: B sagt“A ist ein Ritter”
— 
— 
Was sind A & B & C?
07/04/2012
Darstellung in Aussagenlogik!
—  (A_Ritter
⇔ (¬B_Ritter or ¬C_Ritter))
∧
(B_Ritter ⇔ A_Ritter )!
1: A sagt: “B ist ein Schurke
oder C ist ein Schurke”
2: B sagt“A ist ein Ritter”
Puzzle: Wahrheitstabelle
◦  Knights: always tell the truth, Knaves: always lie
◦  Three persons: knights or knaves
◦  A says: “B is a knave or C is a knave”
◦  B says “A is a knight”
Theorie
⊨?
A∧B
A ⇔ ¬B ∨ ¬C
B⇔A
A
B
C
¬B ∨ ¬C
Theorie
A∧B
True
True
True
False
False
True
True
True
False
True
True
False
True
True
False
False
False
True
True
False
True
False
False
False
True
False
False
False
07/04/2012
Puzzle: Wahrheitstabelle
◦  Knights: always tell the truth, Knaves: always lie
◦  Three persons: knights or knaves
◦  A says: “B is a knave or C is a knave”
◦  B says “A is a knight”
A ⇔ ¬B ∨ ¬C
B⇔A
A
B
C
¬B ∨ ¬C
Theory
A∧B
True
True
True
False
False
True
True
True
False
True
True
True
True
False
True
True
False
False
⊨
True
False
False
True
False
False
A∧B
False
True
True
False
False
False
False
True
False
True
False
False
False
False
True
True
False
False
False
False
True
False
False
Theorie
False
07/04/2012
Praktische Anwendungen!
Problem
if(x==null) {
search(x.value)
…
}
Formel
In Aussagenlogik
SAT Solver
Solver=minisat(jni) Bitwidth=5 MaxSeq=3 SkolemDepth=1 Symmetry=20
118805 vars. 2368 primary vars. 293152 clauses. 1462ms.
No instance found. 44ms.
Beweise in Aussagenlogik!
- 
- 
- 
- 
Wahrheitstabellen
Lineare Resolution (Prolog)
DPLL (SAT Solver)
Andere Beweistheorien:
Modus Ponens
(Frege 1879)
Beweis durch Widerspruch
(Reductio ad absurdum)
— 
Theorem:
◦  S ⊨ L gdw
◦  S ∧ ¬L ist ein Widerspruch
— 
Beweis für S ⊨ L:
◦  Wir nehmen an: S ∧ ¬L
◦  Regeln anwenden die Widerspruchsfreiheit
bewaren
◦  Versuchen einen offensichtlichen Widerspruch zu
finden:
–  p ∧ ¬ p
07/04/2012
Reduction ad absurdum
S ⊨ L gdw S ∧ ¬L ist ein Widerspruch
A
B
C
Theory S
L=A∧B
S∧ ¬L
True
True
True
False
True
False
True
True
False
True
True
False
True
False
True
False
False
False
True
False
False
False
False
False
False
True
True
False
False
False
False
True
False
False
False
False
False
False
True
False
False
False
False
False
False
False
False
False
S = A ⇔ ¬B ∨ ¬C & B ⇔ A
07/04/2012
TRUE
FALSE
Konjunktive Normal Form (KNF)
— 
Literal = p oder¬p
wo p eine atomare Aussage ist
(p: positives, ¬p: negatives Literal)
— 
Klausel = Disjunktion von Literalen
◦  Examples: ¬p ∨ q,
— 
wet ∨ ¬rains ∨ ¬outside
KNF: Konjunktion von Klauseln
07/04/2012
Resolution
—  Aus
Klauseln: p ∨ α und ¬p ∨ β
leiten wir neue Klausel ab:
α∨β
◦  p atomare Ausage
◦  α, β beliebige Formel, kann leer sein
◦  Anmerkung: Disjunktion ist assoziativ und
kommutativ:
–  s ∨ (¬t ∨ r) ≡ (s ∨ ¬t) ∨ r ≡ ¬t ∨ (s ∨ r)
Resolution
—  Beispiele:
p∨α
¬p ∨ β
α∨β
p∨q
¬p ∨ r
q∨r
t∨q
s ∨ ¬t ∨ r
q∨s∨r
rains
wet ∨ ¬rains
wet
¬rains ∨ wet
¬ wet
¬ rains
Resolution II
— 
Aus p ∨ α und ¬p ∨ β leite α ∨ β ab
◦  Wenn α und β leer sind:
–  p und¬p gelten
–  wir haben einen Widerspruch gefunden
–  geschrieben als o (leere Klausel, false)
— 
Theoreme:
◦  {p ∨ α, ¬p ∨ β} ⊨ α ∨ β
◦  If S ∪ {p ∨ α, ¬p ∨ β} ist ein Widerspruch gdw
S ∪ {p ∨ α, ¬p ∨ β, α ∨ β} ist ein Widerspruch
→ nützlich für “reduction ad absurdum”!
→  Notation: Menge an
F1 ∧ F2 ∧ …∧ Fn
Klauseln {F1,F2,…,Fn} steht für:
09/04/2012
Ein Beweis durch Widerspruch
und Resolution
{p, q} ⊨ p ∧ q ?
1. Negation von p ∧ q hinzufügen — 
{p, q, ¬(p ∧ q)}
2. Keine Klausel:
⇒ Resolution kann nicht verwendet werden
⇒ Umformen in KNF
— 
{p, q, ¬p ∨ ¬q}
— 
3. Resolution mit p and ¬p ∨ ¬q — 
{p, q, ¬p ∨ ¬q , ¬q}
— 
{p, q, ¬p ∨ ¬q , ¬q, false}
4. Resolution mit q and ¬q Ja: {p, q} ⊨ p ∧ q
09/04/2012
Umformen nach KNF
—  Implikation
und Äquivalenz ersetzen:
–  (α ⇔ β) ersetzen durch (α ⇒ β ∧ β ⇒ α)
–  (α ⇒ β) ersetzen durch (¬α ∨ β)
—  Negation
zu atomaren Aussagen
verschieben:
–  1. ¬ (α ∧ β)
–  2. ¬(α ∨ β)
–  3. ¬ ¬ α
ersetzen durch (¬α ∨ ¬β)
ersetzen durch (¬α ∧ ¬β)
ersetzen durch α
09/04/2012
Umformen nach KNF
— 
— 
Disjunktion (∨) zu Literalen verschieben:
Ersetzen von (“ausmultiplizieren”):
◦  α ∨ (β ∧γ) durch (α ∨ β) ∧(α ∨ γ)
◦  Man kann auch direkt folgendes anwenden:
–  α ∨ (β1 ∧ β2 ∧... ∧βn) by (α ∨ β1) ∧(α ∨ β2) ... (α ∨ βn)
◦  Anmerkung: ∧ist assoziativ (und kommutativ):
((α ∧ β) ∧γ) is äquivalent zu (α ∧ (β ∧ γ)). Das gleiche gilt für ∨.
07/04/2012
Converting formulas into CNF
— 
Eliminate the conjunctions:
◦  Actually, all you have to do is simply write each part of a
conjunction as a seperate wff.
◦  For example (p ∨ q) ∧(q ∨ r) is turned into a set consisting
of two wff's: { (p ∨ q), (q ∨ r) }
— 
Simplify clauses and eliminate redundant clauses:
◦  Remove extra literals which occur more than once in a
clause.
–  For example (p ∨ ¬q ∨ p) can be simplified into (p ∨ ¬q).
◦  Remove the clauses that contain a proposition and its
negation.
–  For example (p ∨ ¬p ∨ q) can be removed (the clause is always
true and does not add any information).
07/04/2012
Beispiel: Smullyan Puzzle
◦  Theorie:
◦  (A ⇔ ¬B ∨ ¬C) ∧ (B ⇔ A)
◦  Query (negiert):
◦  ¬(A ∧ B ∧ ¬C)
09/04/2012
Beispiel: Smullyan Puzzle
◦ 
◦ 
◦ 
◦ 
◦ 
Theorie:
(A ⇔ ¬B ∨ ¬C) ∧ (B ⇔ A)
(A ⇒ ¬B ∨ ¬C) ∧(¬B ∨ ¬C ⇒ A) ∧ (B ⇒ A)∧ (A ⇒ B)
(¬A ∨ ¬B ∨ ¬C) ∧(¬(¬B ∨ ¬C) ∨ A) ∧ (¬B ∨ A)∧ (¬A ∨ B)
(¬A ∨ ¬B ∨ ¬C) ∧((B ∧ C) ∨ A) ∧ (¬B ∨ A)∧ (¬A ∨ B)
◦  (¬A ∨ ¬B ∨ ¬C) ∧(B ∨ A) ∧ (C ∨ A) ∧(¬B ∨ A)∧ (¬A ∨ B)
◦  {¬A ∨ ¬B ∨ ¬C, B ∨ A, C ∨ A, ¬B ∨ A, ¬A ∨ B}
◦  Query (negiert):
◦  ¬(A ∧ B ∧ ¬C)
◦  {¬A ∨ ¬B ∨ C}
09/04/2012
c CanonicalCNFFormat
p cnf 3 6
-1 -2 -3 0
120
130
1 -2 0
-1 2 0
-1 -2 3 0
Zusammenfassung!
—  Logiken!
—  Aussagenlogik:!
◦  Interpretation, Modell!
◦  Äquivalenz, logisches Schließen!
◦  Beweis durch Widerspruch!
◦  KNF und Resolution!
—  Nächster
Schritt: Prädikatenlogik!
Herunterladen