Beweistheorie für Aussagenlogik

Transcription

Beweistheorie für Aussagenlogik
Aussagenlogik
Beweistheorie
Michael Leuschel
Softwaretechnik und Programmiersprachen
05/11/2012
Lecture 4
Wiederholung
n 
n 
Wff’s: atomic propositions, ¬, ∧, ∨, →
Interpretations:
n 
n 
n 
n 
n 
n 
propositions Ê {true,false}
wff’s Ê {true,false} by truth-tables
Models
Satisfiable wff, tautology, contradiction
all wff’s
Logical equivalence ≡
satisfiable
Logical consequence ⇒
05/11/2012
tautologies
Erläuterungen
n 
Notationen:
n 
n 
n 
Unterschied zwischen ⇔ und ≡
n 
n 
n 
p ⇔ q ist eine erfüllbare Formel
p ≡ q ist keine Formel (und ist falsch)
Unterschied zwischen → und ⇒
n 
n 
n 
α ⇔ β steht für (α → β) ∧ (β → α)
α ← β steht für (β → α)
p → ¬p ist eine erfüllbare Formel
p ⇒ ¬p ist keine Formel (und ist falsch)
→, ⇔ sind Junktoren ≡, ⇒ sind math.
(Meta-)Aussagen über Formeln
05/11/2012
Bedeutung
n 
Bedeutung einer logischen Theorie S:
alle Formeln Li so dass S ⇒ Li
n 
n 
n 
S = Wissen über alle möglichen Zustände der Welt
Li = Aussagen die in allen möglichen Zuständen wahr sind
S = Beschreibung unserer Überzeugungen
Li = alle Sachen die wir dann auch glauben müssen
S = logisches Programm für ein Problem
Lösungen sind in den Li’s eingebettet
05/11/2012
Berechnung der Logischen
Folgen
n 
S⇒L
n 
Alle Interpretationen vi ausprobieren
n 
n 
n 
?
Ist vi ein Modell von S (truth tables) ?
Wenn ja, prüfen dass vi auch ein Modell von L ist
Wenn alle Modelle von S auch Modelle von L
sind: OK, wir haben S ⇒ L.
05/11/2012
lecture3.prolog/truth_values.pl
Logic Teaser (adapted)
n 
Knights: always tell the truth, Knaves: always lie
Three persons: knights or knaves
n 
A says: “B is a knave or C is a knave”
n 
B says “A is a knight”
n 
Theory ⇒ A ∧ B ?
05/11/2012
A ⇔ ¬B ∨ ¬C
B⇔A
A
B
C
¬B ∨ ¬C
Theory
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
lecture3.prolog/truth_values.pl
Logic Teaser solution
n 
Knights: always tell the truth, Knaves: always lie
Three persons: knights or knaves
n 
A says: “B is a knave or C is a knave”
n 
B says “A is a knight”
n 
{A ⇔ ¬B ∨ ¬C,
B ⇔ A}
⇒
A∧B
05/11/2012
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
False
True
True
False
False
False
False
True
False
True
False
False
False
False
True
True
False
False
False
False
False
True
False
False
Berechnung II
n 
S⇒L
n 
n 
n 
Alle Interpretation ausprobieren
Aufwändig L
Prädikatenlogik:
n 
n 
?
unendliche Interpretationen L, unendliche viele
Interpretationen L
Wie machen wir das ohne alle Interpetationen
auszuprobieren ?
05/11/2012
Recap: What is a logic ?
1. Language of expressions/formulas
P
2. Proof Theory
Axioms = things which are true
Inference Rules to derive new theorems from existing
ones (truth preserving inference)
3. Model Theory P
Mapping from formulas to “real” objects
05/11/2012
Refutationsbeweis (Beweis
durch Widerspruch)
n 
Theorem: S ⇒ L gdw S ∧ ¬L ein Widerspruch
n 
Idee: Beweis für S ⇒ L:
n 
n 
n 
Wir starten von S ∧ ¬L
Regeln anwenden die Widersprüche beibehalten
Wir versuchen einen “offensichtlichen”
Widerspruch zu finden
n 
n 
n 
n 
p∧¬p
true → false
false
“Reductio ad absurdum”
05/11/2012
Widerspruchsbeweis (cont’d)
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
05/11/2012
S = {A ⇔ ¬B ∨ ¬C, B ⇔ A}
Resolution
n 
Resolvent
From p ∨ α and ¬p ∨ β derive α ∨ β
n 
n 
n 
p ist eine atomare Aussage
α, β beliebige Formeln (auch leer)
Anm: Disjunktion ist assoziativ und
kommutativ:
n 
s ∨ (¬t ∨ r) ≡ (s ∨ ¬t) ∨ r ≡ ¬t ∨ (s ∨ r)
Resolution Beispiele
n 
Aus p ∨ α und ¬p ∨ β entsteht α ∨ β
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
n 
From p ∨ α and ¬p ∨ β derive α ∨ β
n 
If both α and β are empty:
n 
n 
n 
n 
Theorems:
n 
n 
→ 
→ 
→ 
p and ¬p hold
we have found a contradiction
Denoted by o (empty formula, false)
{p ∨ α, ¬p ∨ β} ⇒ α ∨ β
If S ∪ {p ∨ α, ¬p ∨ β} is inconsistent if-and-only-if
S ∪ {p ∨ α, ¬p ∨ β, α ∨ β} is inconsistent
resolution is “inconsistency preserving”
We can use it for “proof by refutation”!
Notation: {F1,F2,…,Fn} shorthand for F1 ∧ F2 ∧ …∧ Fn
05/11/2012
/* Prolog example */
p.
q.
A Proof by Refutation
?- p,q.
{p, q} ⇒ p ∧ q ?
1. Add negation of p
n 
{p, q, ¬(p ∧ q)}
2. No disjunction:
⇒ Resolution cannot be applied
⇒ Transform into equivalent wff with ∨
n 
{p, q, ¬p ∨ ¬q}
n 
∧ q 3. Resolve p and ¬p ∨ ¬q n 
{p, q, ¬p ∨ ¬q , ¬q}
n 
{p, q, ¬p ∨ ¬q , ¬q, false}
05/11/2012
4. Resolve q and ¬q Yes: {p, q} ⇒ p ∧ q
Konjunktive Normalform (KNF)
n 
n 
Literal = p oder ¬p mit p atomare Aussage
(p: positives, ¬p: negatives Literal)
Klausel= Disjunktion von Literalen
n 
n 
n 
n 
n 
Bsp: ¬p ∨ q,
wet ∨ ¬rains ∨ ¬outside
Horn Klausel wenn maximal 1 positives Literal
Anfrage (Denial) wenn kein positives Literal
KNF: Konjunktion von Klauseln (manchmal
als Menge dargestellt)
Gut für Resolution!
05/11/2012
Prolog & KNF
n 
n 
Anmerkung: ¬p ∨ q ≡ p → q
Prolog
n 
n 
wet :- rains, outside.
Dies steht für die logische Formel:
wet ← rains ∧ outside
n 
Diese ist logisch äquivalent zu
wet ∨ ¬rains ∨ ¬outside
n 
05/11/2012
Every Prolog rule can be viewed as a Horn clause!
Converting formulas into CNF
n 
Eliminate Implications:
n 
For this you just have to replace
n 
n 
(α → β) by (¬α ∨ β)
Move negations down to the atomic
propositions:
n 
For this you have to replace:
n 
n 
n 
05/11/2012
1.(¬ (α ∧ β) by (¬α ∨ ¬β)
2.(¬(α ∨ β) by (¬α ∧ ¬β)
3.¬ ¬ α by α
Converting formulas into CNF
n 
n 
Move the disjunctions (∨) down to the literals:
For this you should replace
n  α ∨ (β ∧γ)
by (α ∨ β) ∧(α ∨ γ)
n 
n 
n 
05/11/2012
The following, more general rewrite can also be applied:
n  α ∨ (β1 ∧ β2 ∧... ∧βn) by (α ∨ β1) ∧(α ∨ β2) ... (α ∨ βn)
Note that ∧is associative, meaning that ((α ∧ β) ∧γ) is
logically equivalent to (α ∧ (β ∧ γ)). One therefore often
writes (α ∧ β ∧ γ). The same holds for ∨.
This also means that we can replace, e.g,
n  (β1 ∧ β2 ∧... ∧ βn) ∨ α
by (β1 ∨ α) ∧(β2 ∨ α) ... (βn ∨ α)
Converting formulas into CNF
n 
Eliminate the conjunctions:
n 
n 
n 
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:
n 
Remove extra literals which occur more than once in a
clause.
n 
n 
Remove the clauses that contain a proposition and its
negation.
n 
05/11/2012
For example (p ∨ ¬q ∨ p) can be simplified into (p ∨ ¬q).
For example (p ∨ ¬p ∨ q) can be removed (the clause is always
true and does not add any information).
Exercise: Do our logic teaser by resolution
n 
n 
n 
n 
05/11/2012
Theorie:
(A ⇔ ¬B ∨ ¬C) ∧ (B ⇔ A)
Query (negiert):
¬(A ∧ B ∧ ¬C)
Exercise: Do our logic teaser by resolution
n 
n 
n 
n 
n 
n 
n 
n 
n 
n 
05/11/2012
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}
c CanonicalCNFFormat
p cnf 3 6
-1 -2 -3 0
120
130
1 -2 0
-1 2 0
-1 -2 3 0
Gantõ’s Ax
n 
n 
One day Tokusan told his student
Gantõ, “I have two monks who have
been here for many years. Go and
examine them.”
Gantõ picked up an ax, saying, “If you
say a word I will cut off your heads; and
if you do not say a word, I will also cut
off your heads.”
05/11/2012
Quelle: D. Hofstadter;Gödel, Escher, Bach.
See also http://en.wikipedia.org/wiki/Ganto's_Ax
Gantõ’s Ax Continued
n 
n 
G = {cut_head ← say_word,
cut_head ← ¬ say_word}
G ⇒ {cut_head} ?
n 
n 
n 
n 
n 
n 
1. cut_head ∨ say_word
2. cut_head ∨ ¬say_word
3. ¬cut_head
4. cut_head (by resolving 1,2)
5. o (by resolving 3,4)
Yes: G ⇒ {cut_head}
05/11/2012
Gantõ’s Ax Finished
n 
n 
n 
Both monks continued their meditation as if
he had not spoken. Gantõ dropped the ax
and said, “you are true Zen students.”
He returned to Tokusan and related the
incident. “I see your side well,” Tokusan
agreed, “but tell me, how is their side?”
“Tõzan may admit them,” replied Gantõ, “but
they should not be admitted under Tokusan.”
05/11/2012
Was haben wir gelernt ?
n 
n 
n 
Widerspruchsbeweis
Resolution
Konjuktive Normalform
05/11/2012