T h eoretisch e In form atik u n d L o g ik S yn tax vs. S em an tik B eh

Werbung
Theoretische Informatik und Logik
Teil II: LOGIK
Bernhard Gramlich
AB Theoretische Informatik und Logik (E185/2)
Institut für Computersprachen, TU Wien
Überblick
Syntax vs. Semantik
Ein einfaches Beispiel: additive Terme
= {T → 0 | ··· | 9 | ( T + T )}
Sei T = L(G) mit G = h{T }, {(, ), +, 0, . . . , 9}, P, T i mit
P
M: T → ω . . . Meaning“, interpretiert T als additive Ausdrücke
”
M(0) = 0, . . . , M(9) = 9
M(( t1 + t2 )) = M(t1 ) + M(t2 ) für t1 , t2 ∈ T
= M((1+2 )) + M(3)
Beispiel. Auswertung von ((1 +2 )+3):
M(((1 +2) +3))
= M(1) + M(2) + M(3)
• Syntax und Semantik von Termen, . . . , Programmiersprachen
• Aussagenlogik
= 1+2+3=6
171
• Prädikatenlogik
170
Beispiel. Auswertung von ((x +2 )+y)
. . . für I(x) = 1, I(v) = 3 für alle v 6= x:
Syntax: T → x | y | z | · · ·
= I(x) + 2 + I(y)
= M(I, x) + M(I, 2) + M(I, y)
Behandlung von Variablen
Semantik: M(x) = 1 oder M(x) = 2 ?
= 1+2+3=6
M(I, ((x +2 )+y )) = M(I, (x+2 )) + M(I, y)
Speicherbelegung I: {x, y, z, . . .} → ω
. . . für J(x) = 5, J(y) = 2, J(v) = 0 sonst:
= M(J, x) + M(J, 2) + M(J, y)
M(J, (( x+2 )+y )) = M(J, ( x+2 )) + M(J, y)
M(I, 0) = 0, . . . , M(I, 9) = 9
= J(x) + 2 + J(y)
ENV . . . Menge aller Speicherbelegungen ( Environments“)
”
Erweiterung der Semantikfunktion: M: ENV × T → ω
M(I, v) = I(v) für v ∈ {x, y, z, . . .}
= 5+2+2=9
173
M(I, ( t1 + t2 )) = M(I, t1 ) + M(I, t2 ) für t1 , t2 ∈ T
172
T →x|y|z
T → 0 | ··· | 9
T = L(G)
Grammatik
t1 , t2 ∈ T
{x, y, z} ⊆ T
{0, . . . 9} ⊆ T
T ist kl. Menge mit:
Induktive Definition
M(I, ( t1 + t2 ))
M(I, x) = I(x), . . .
M(I, 0) = 0, . . .
M: ENV × T → ω
Rek. Auswertung
Grammatik vs. Induktive Definition
T →(T +T )
t1 , t2
∈T ⇒(
t1
+
t2
)∈T:
⇒ ( t1 + t2 ) ∈ T
= M(I, t1 ) + M(I, t2 )
Beachte:
Die verschiedenen Vorkommen von T in ( T + T ) entsprechen
den verschiedenen (metasprachlichen) Variablen t1 und t2 !
statt
t∈T ⇒(t+t)∈T
T ist nicht mehr kontextfrei!
174
Auflösung der Mehrdeutigkeit
F →+E |∗E |ǫ
Im Gegensatz zur Grammatik ist die Sprache E eindeutig;
es gibt eine eindeutige (reguläre) Grammatik für E:
E → 0F | ··· | 9F
Problem:
Ableitungen entsprechen nicht der intendierten Semantik.
Die übliche Prioritätsregel ‘∗ vor +’ soll berücksichtigt werden.
Zwei Möglichkeiten:
1. Prioritätsregel (nur) in die Definition von M einbauen
2. Prioritätsregel gleich in die Definition von E einbauen:
Definition von E hierarchisch gestalten
176
E → 0 | ··· | 9
E = L(G)
Grammatik
{0, . . . 9} ⊆ E
E ist kl. Menge mit:
Induktive Definition
M(e1 + e2 )
M(0) = 0, . . .
M: E → ω
Rek. Auswertung
= M(e1 ) · M(e2 )
M(e1 ∗ e2 )
= M(e1 ) + M(e2 )
e1 , e2 ∈ E
e1 , e2 ∈ E
⇒ e1 + e2 ∈ E
E →E+E
E →E∗E
⇒ e1 ∗ e2 ∈ E
Problem: M ist keine Funktion mehr!
M(3+3 ∗3) = M(3) + M(3∗ 3) = M(3) + M(3) · M(3) = 12
M(3+3 ∗3) = M(3 +3) · M(3) = (M(3) + M(3)) · M(3) = 18
Grund: Grammatik für E ist mehrdeutig; verschiedene Ableitungen
führen zu verschiedenen Werten.
175
H⊆E
E ist kleinste Menge mit:
e1 , e2 ∈ H ⇒ e1 ∗ e2 ∈ H
{0, 1, . . ., 9} ⊆ H
H ist kleinste Menge mit:
Hierarchische Definition von E
e1 , e2 ∈ E ⇒ e1 + e2 ∈ E
ME (e) = MH (e) falls e ∈ H
MH (e1 ∗ e2 ) = MH (e1 ) · MH (e2 )
MH (0) = 0, . . . , MH (9) = 9
Davon lassen sich Definitionen ME und MH ableiten:
ME (e1 + e2 ) = ME (e1 ) + ME (e2 )
= ME (2 ∗3) + ME (4)
Als einzigen Wert von 2∗3 +4 erhält man:
ME (2 ∗3 +4)
= MH (2 ∗3) + MH (4)
= 2 · 3 + 4 = 10
177
Modellstrukturen
P ...
F ...
D ...
Menge von Konstanten
endliche Menge totaler Prädikate
endliche Menge totaler Funktionen
K⊆D
D k → {t, f }
Dk → D
nicht-leere Menge (Gegenstandsbereich/Domäne)
Quadruppel hD, F, P, Ki, wobei:
K ...
Modellstrukturen können als abstrakte Datentypen
aufgefasst werden
178
ist0?(s)
pop(s)
push1(s)
push0(s)
⇐⇒
⇐⇒
=
=
=
s=ε
es gibt ein s′ sodass s = 1s′
es gibt ein s′ sodass s = 0s′
1s
ε
s′
0s
Binäre Stacks:
S = hS, {push0, push1, pop}, {ist0?, ist1?, istleer?}, {ε}i
∗
wobei die Stacks durch Worte aus S = {0, 1} dargestellt werden.
ist1?(s)
⇐⇒
für s = ε
für s = 0s′ oder s = 1s′
istleer?(s)
180
Ganze Zahlen:
Z = hZ, {+, −, ∗}, {<, =}, Zi
wobei Z = {. . ., −2, −1, 0, 1, 2, . . .}
für x ≥ y
für x < y
. . . kleiner“-, bzw. ist-gleich“-Relation
”
”
+, −, ∗ . . . übliche artihmetische Funtktionen
<, =
179
x−y
0
Natürliche Zahlen:
. ∗}, {<, =}, {0, 1}i
N = hω, {+, −,
wobei ω = {0, 1, 2, . . .} und
. y=
x−
(ansonsten wie für Z)
Familie X:
FamX = hDX , FX , PX , KX i
wobei
DX = PersonenX (Menge der Mitglieder der Familie X)
FX = {Vater, Mutter }
PX = {Geschwister, Onkel, weiblich, männlich, = }
KX = {Abdul, Berta, Chris, Dorlan, Ege, . . .}
Funktionen Vater und Mutter müssen total sein.
=⇒
PersonenX unendlich; oder mit Element ‘Unbekannt’, wobei
Vater(Unbekannt) = Mutter(Unbekannt) = Unbekannt
181
Signaturen
Die Signatur zur Modellstruktur D legt das Alphabet einer Sprache
fest, die sich entsprechend auf die Gegenstände in D bezieht.
FS (D), PS (D), KS (D) . . . Funktions-, Prädikaten-, Konst.symbole
FS n (D), PS n (D) . . . n-stellige Symbole
182
Ganze Zahlen:
FS 2 (Z) = {+, −, ∗}, FS n (Z) = {} für n 6= 2
PS 2 (Z) = {<, =}, PS n (Z) = {} für n 6= 2
KS (Z) = {. . . , −2, −1, 0, 1, 2, . . .}
Signatur zur Familie X:
FS 1 (FamX) = {Vater, Mutter},
FS n (FamX) = {} für n > 1,
PS 1 (FamX) = {weiblich, männlich},
PS 2 (FamX) = {Geschwister, Onkel, =},
PS n (FamX) = {} für n > 2.
KS (FamX) = {Abdul, Berta, Chris, Dorlan, Ege, . . .}
184
Natürliche Zahlen:
. ∗}, FS (N) = {} für n 6= 2
FS 2 (N) = {+, −,
n
PS 2 (N) = {<, =}, PS n (N) = {} für n 6= 2
KS (N) = {0, 1}
Binäre Stacks:
FS 1 (S) = {push0, push1, pop}, FS n (S) = {} für n > 1
PS 1 (S) = {ist0?, ist1?, istleer?}, PS n (S) = {} für n > 1
KS (S) = {leer}
183
Terme über Modellstrukturen
Syntax:
Alphabet: neben FS (D) und KS (D) auch
Individuenvariablensymbole IVS : {x, y, z, x1 , . . .}
Hilfssymbole: ( und ) und ,
T (D) ist die kleinste Menge, für die gilt:
(T1) IVS ⊆ T (D)
(T2) KS (D) ⊆ T (D)
(T3) f ′ ( t1 , . . . , tn ) ∈ T (D)
wenn f ′ ∈ FS n (D) und t1 , . . . , tn ∈ T (D)
185
Semantik
ENV (D) . . . Menge aller Abbildungen IVS → D
(Variablenbelegungen, Environments, auch: Interpretationen)
(I, v) = I(v) für v ∈ IVS ;
MT : ENV (D) × T (D) → D ist rekursiv definiert durch
(M1)
MT
(M2) MT (I, c′ ) = c für c′ ∈ KS (D)
(c . . . Konstante zu Konstantensymbol c′ )
(M3) MT (I, f ′ ( t1 , . . . , tn )) = f (MT (I, t1 ), . . . , MT (I, tn ))
(f . . . Funktion zum Funktionssymbol f ′ )
186
Boolesche Ausdrücke über Modellstrukturen
Semantik:
Definition. Die Semantik von BA(D) wird durch die Funktion
MBA : ENV × BA(D) → {t, f } festgelegt:
(MBA1)
(MBA2)
(MBA3)
(MBA4)
MBA (I, p′ (t1 , . . . ,tn )) = p(MT (I, t1 ), . . . , MT (I, tn )),
wobei p das Prädikat zum Symbol p′ ∈ PS n (D) ist.
t falls MBA (I, F ) = f
MBA (I, ¬ F ) =
f falls MBA (I, F ) = t
M (I, ( F ∧ G )) =
BA
t falls MBA (I, F ) = t und MBA (I, G) = t
f sonst
M (I, ( F ∨ G )) =
BA
t falls MBA (I, F ) = t oder MBA (I, G) = t
f sonst
188
Boolesche Ausdrücke über Modellstrukturen
Syntax:
BA(D) ist die kleinste Menge, für die gilt:
(BA1) p′ (t1 , . . . ,tn ) ∈ BA(D), wenn p′ ∈ PS n (D) und
t1 , . . . , tn ∈ T (D);
p′ (t1 , . . . ,tn ) heißt Atomformel;
(BA2) ¬ F ∈ BA(D), wenn F ∈ BA(D);
(BA3) ( F ∧ G ) ∈ BA(D), wenn F, G ∈ BA(D);
187
(BA4) ( F ∨ G ) ∈ BA(D), wenn F, G ∈ BA(D).
Notationsvereinbarungen
• Infixnotation für Terme über Z und N:
( 1 +x) steht für + ( 1 ,x) etc.
• Infixnotation auch für Atomformeln:
(t1 =t2 ) steht für = (t1 ,t2 ) etc.
• t1 >t2 steht für t2 <t1
• t1 6= t2 / t1 ≥t2 steht für ¬ (t1 =t2 ) / ¬ (t1 <t2 ) etc.
• Klammereinsparungen, sofern keine Gefahr der
Mehrdeutigkeit besteht
189
Beispiel Wert von B = y+x6= 0 ∨ x<y über Z in einer
Variablenbelegung I mit I(x) = 4 und I(y) = −2.
M BA4
=
t falls MBA (I, y+x6= 0) = t oder MBA (I, x<y) = t
Erinnerung: B ist ‘offiziell’ ( ¬ = ( + (y,x) , 0 ) ∨ < (x,y) )
MBA (I, B)
=
=
M T 3,M T 2
=
M BA1
M BA2
(−2 + 4 = 0) = (2 = 0) = f

(M (I, y+x) = M (I, 0))
T
T


(MT (I, y) + MT (I, x) = 0)
t falls MBA (I, y+x= 0) = f
Wir bestimmen zunächst MBA (I, y+x6= 0):
MBA (I, y+x6= 0)

MBA (I, y+x= 0)



=
MT 1
Daher erhalten wir MBA (I, B) = t.
190
Beispiel:
Ein ALI-Programm zur Multiplikation zweier positiver Zahlen:
begin
z ← 0;
while (0<y) do begin
z ← (z + x) ;
y ← (y − 1)
end
end
Beachte: Die intendierte Semantik muss erst gerechtfertigt werden!
192
Eine einfache Programmiersprache
ALI . . . Assignment Language für Integers
(Statements/Programme über Z)
Syntax: ALI ist die kleinste Menge, für die gilt:
(AL1) Ist v ∈ IVS und t ∈ T (Z), dann ist v ← t ∈ ALI.
(AL2) Sind α, β ∈ ALI, dann ist begin α; β end ∈ ALI.
(AL3) Ist B ∈ BA(Z) und sind α, β ∈ ALI, dann ist
if B then α else β ∈ ALI.
AL1
= z ← 0 ∈ ALI
191
(AL4) Ist B ∈ BA(Z) und α ∈ ALI, dann ist
while B do α ∈ ALI.
Syntaktische Analyse
AL1
• z ∈ IVS , 0 ∈ T (Z) =⇒
α1
• z ∈ IVS , (z + x) ∈ T (Z) =⇒ α2 = z ← (z + x) ∈ ALI
AL1
• y ∈ IVS , (y − 1) ∈ T (Z) =⇒ α3 = y ← (y − 1) ∈ ALI
AL2
• α2 , α3 ∈ AL =⇒ β = begin α2 ; α3 end ∈ ALI
AL4
• (0<y) ∈ BA(Z), β ∈ ALI =⇒ γ = while (0<y) do β ∈ ALI
AL2
• α1 , γ ∈ ALI =⇒ begin α1 ; γ end ∈ ALI
193
Notationsvereinbarung:
α ; α2 ; . . . ; αn
1
steht für
α1 ; begin α2 ; begin . . . ; αn end end
M AL1
← 0), γ) =
Beachte: Die offizielle Syntax von ALI bleibt unverändert.
(Das erleichtert die syntaktische und semantische Analyse)
Eine Hilfsdefinition:
v
Für I, I ′ ∈ ENV und v ∈ IVS schreibt man I ∼ I ′
wenn I(w) = I ′ (w) für alle w ∈ IVS für die w 6= v.
194
Beispiel: Multiplikationsprogramm
Abkürzungen:
β = begin z ← (z + x); y ← (y − 1) end
γ = while (0<y) do β
Auswertung für I(x) = 3, I(y) = 1, (I(z) beliebig)
M AL2
z ← 0; γ end) =
MAL (MAL (I, z
MAL (I ′ , while (0<y) do β)

MBA (I ′ , (0<y) = (MT (I ′ , 0)<MT (I ′ , y)) = (0<I ′ (y))
= (0<I(y)) = (0<1) = t
MAL (MAL (I ′ , β), while (0<y) do β)

wobei I ′ (z) = MT (I, 0) = 0 und I ′ (v) = I(v) für v 6= z
MAL (I, begin
=
M AL4
=
196
MAL (I


′
, γ)
Semantik von ALI
Die Funktion MAL : ENV × ALI → ENV ist definiert durch:
(MAL1) MAL (I, v ← t) = I ′ , wobei I ′ (v) = MT (I, t) und
v
I ′ (w) = I(w) für alle w ∈ IVS mit w 6= v, d.h. I ′ ∼ I.
(MAL2) MAL (I, begin α; β end) = MAL (MAL (I, α), β)
(MAL3) MAL (I, if B then α else β) =
MAL (I, α) falls MBA (I, B) = t
MAL (I, β) falls MBA (I, B) = f
(MAL4) M
AL (I, while B do α) =
MAL (MAL (I, α), while B do α) für MBA (I, B) = t
I
für MBA (I, B) = f
195
MAL (MAL (MAL (I ′ , z ← z+x), y ← y−1), while (0<y) do β)
MAL (MAL (I ′ , β), while (0<y) do β)
=
M AL2
I ′′ (v) = I ′ (v) für v 6= z
= I ′ (z) + I ′ (x) = 0 + I(x) = 0 + 3 = 3
I ′′ (z) = MT (I ′ , z+x) = MT (I ′ , z) + MT (I ′ , x)
MAL (MAL (I ′′ , y ← y−1), while (0<y) do β)

I ′′′ (y) = MT (I ′′ , y−1) = MT (I ′′ , y) − MT (I ′′ , 1)


= I ′′ (y) − 1 = I ′ (y) − 1 = I(y) − 1 = 1 − 1 = 0
I ′′′ (v) = I ′′ (v) für v 6= y
= (0<I ′′′ (y)) = (0<0) = f
MBA (I ′′′ , (0<y)) = (MT (I ′′′ , 0)<MT (I ′′′ , y))
I ′′′

wobei
MAL (I ′′′ , while (0<y) do β)
wobei
=
M AL1
=
M AL1
=
M AL4
197
Wozu Logik?
Eine literarische Anwort:
Mein teurer Freund ich rat euch drum
Zuerst Collegium Logicum
Da wird der Geist euch wohl dressiert
in spanische Stiefel eingeschnürt,
dass er bedächtiger so fortan
hinschleiche die Gedankenbahn . . .
Goethe, Faust 1. Teil (Studierzimmer)
Was ist mathematische Logik?
• Logik untersucht allgemeine Prinzipien korrekten Schließens
• Mathematische Logik stellt zu diesem Zweck formale
Kalküle bereit und analysiert die Beziehung zwischen Syntax
und Semantik von Aussagen.
• Die Logik hat viele Anwendungen in der Informatik.
• Vor allem aber bietet die (formale) Logik den geeigneten
methodischen Rahmen zur Lösung zahlreicher Probleme der
Informatik.
Motto:
The applied math of computer science is formal logic.“
”
199
Anwendungen der Logik in der Informatik 2
198
Anwendungen der Logik in der Informatik 1
C. Korrektheit von Programmen
– Kalküle für Korrektheitsbeweise (z.B. Hoare-Kalkül)
A. Programmierung
– Logik-nahe Programmiersprachen (PROLOG etc.)
– Lösbarkeits- und Komplexitätsfragen
– Design von (Logik-nahen) Datenformaten
D. Datenbanken
– (partielle) Automatisierung von Korrektheitsbeweisen
– boolean expressions“
”
– Zusicherungen
– Extraktion von Programmen aus Spezifikationen
– Automatische Programmierung
– Datenconstraints
– Aspekte wie: Inkonsistenz, Unvollständigkeit, etc.
– Extraktion von Information aus Datenmengen (WWW)
– Design und Analyse von Abfragesprachen
– dynamisches Verhalten (Temporallogiken, . . . )
B. Spezifikation: Sprachen, Schließen über Spezifikationen
– Soll/Muss-Verhalten (deontische Logik)
201
– Update-Problem“
”
– Datenbanktheorie
– Konsistenz von Spezifikationen
200
Anwendungen der Logik in der Informatik 3
G. Computermathematik:
Anwendungen der Logik in der Informatik 4
– logische Aspekte von Geometrie-Systemen
– Repräsentation matematischer Beweise und Theoreme
– Symbolic Computation, Computeralgebra
– automatisches Beweisen
E. Wissensrepräsentation:
– Design von geeignete Repräsentationssprachen
– Web-Ontologien, Description-Logics
– Schließen mit unsicherer/vager/unvollständiger Information
I. (Deskriptive) Komplexitätstheorie
– Formale Modellierung natürlicher Sprache
– Repräsentation von Modalitäten“ (z.B. Wissen/Glauben)
”
– “revisable reasoning“ (nicht-montone Logiken, . . . )
J. Berechenbarkeitstheorie (Rekursionstheorie)
H. Semantik von Programmiersprachen
– räumliches Schließen
K. Unifikationstheorie
L. Konstruktive Mathematik
F. Hardware
– Spezifkation von Schaltkreisen, Chips etc.
M. Komplexität logischer Probleme und Algorithmen
usw. usw. . . .
205
(b < c) ∨ (d < a) ⇒ Negation äquivalent zu: (b ≥ c) ∧ (d ≥ a)
Viel Redundanz!
Kompakte Formulierung der negierten Bedingung:
• Ende des ersten Intervalls liegt im zweiten: c ≤ b und b ≤ d
• Ende des zweiten Intervalls liegt im ersten: a ≤ d und d ≤ b
• Anfang des ersten Intervalls liegt im zweiten: c ≤ a und a ≤ d
• Anfang des zweiten Intervalls liegt im ersten: a ≤ c und c ≤ b
• Zweites Intervall enthält das erste: c ≤ a und b ≤ d
• Erstes Intervall enthält das zweite: a ≤ c und d ≤ b
if hBedingungi then write Kollision!“
”
Auflistung aller Überlappungsmöglichkeiten:
[a, b], [c, d] . . . Zeitintervalle: von a bis b“, von c bis d“
”
”
Aufgabe: Warnung ausgegeben wenn eine Terminkollision vorliegt:
203
– (Automatische) Verfikation von Hardware
– Schaltkreistheorie
202
if-, case-, while-Bedingungen:
if (x = 0) ∧ (y > 1) then P1 else P2
Vertauschen von then- und else-Zweig
de-Morgan-Regel: ¬(A ∧ B) = ¬A ∨ ¬B
if (x 6= 0) ∨ (y ≤ 1) then P2 else P1
⇐ Zusicherung
⇐ Nachbedingung
⇐ Vorbedingung
Spezifikation von Programmeigenschaften
Assertions: Diagnoseanweisungen in Programmen
Pre- und Postconditions in der Programmverifikation
hx = a ∧ y = b ∧ y ≥ 0i
while y > 0 do [
x ← x − 1;
y ← y − 1;
assert(y ≥ 0);]
hx = a − bi
204
natürliche Sprache“

”

Sokrates ist ein Mensch.
⇒ Sokrates ist sterblich.
Alle Menschen sind sterblich. 
(∀x)M (x) ⊃ S(x)
sp
M (s) ⊃ S(s)
mp
S(s)
Formalisierung: Festlegung der Syntax und Semantik der Logik
M (s) (∀x)M (x) ⊃ S(x)
S(s)
(Modus ponens)
M (s)
Beweistheorie: Untersuchung der Schlussregeln und Beweisformen
(∀x)F[x]
A
A
⊃ B mp
sp
F[t]
B
(Spezialisierung)
Semantische Fragestellungen: Ist eine Aussage unter jeder /
mancher / keiner Interpretation der nicht-logischen Symbole wahr?
Welche Form haben Beispiele (Modelle) bzw. Gegenbeispiele?
Folgt eine Aussage aus anderen?
(2)
(1)
∀x i(x) ◦ x = e
∀x e ◦ x = x
∀x∀y∀z x ◦ (y ◦ z) = (x ◦ y) ◦ z
Gruppentheorie:
(3)
(5) ∀x x ◦ i(x) = e
(6) ∀x i(i(x)) = x
Immer wenn (1), (2) und (3) erfüllt sind, dann gelten auch auch
(4) ∀x x ◦ e = x
Diese logische Konsequenz -Behauptung ist äquivalent zu:
[(1) ∧ (2) ∧ (3)] ⊃ [(4) ∧ (5) ∧ (6)] ist gültig.
Analysis:
f : R → R konvergiert gegen a: Für jedes positive ǫ bleibt für alle
”
hinreichend großen n die Distanz zwischen f (n) und a unter ǫ.“
Formalisiert: ∀ǫ∃x0 ∀x (ǫ > 0 ∧ x ≥ x0 ) ⊃ |f (x) − a| < ǫ
B0
0
S0
0
0
C0
0
1
0
Ai
1
1
0
0
Bi
0
0
0
0
Ci−1
0
1
1
0
Si
1
0
0
0
Ci
Ci
Si
C0
S0
= (Ai ∧ Bi ) ∨ (Ai ∧ Ci−1 ) ∨ (Bi ∧ Ci−1 )
(¬Ai ∧ Bi ∧ Ci−1 ) ∨ (Ai ∧ Bi ∧ Ci−1 )
= (Ai ∧ Bi ∧ ¬Ci−1 ) ∨ (Ai ∧ ¬Bi ∧ Ci−1 )∨
= (Ai 6≡ Bi ) 6≡ Ci−1
= A0 ∧ B0
= (¬A0 ∧ B0 ) ∨ (A0 ∧ ¬B0 ) = A0 6≡ B0
207
A0
0
1
0
1
206
0
0
1
1
Halb-/Volladdierer: S = A + B
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
• Verifikation von Eigenschaften
• Umformung, Vereinfachung, Optimierung
A = An · · · A0 , B = Bn · · · B0 , S = Sn · · · S0
Ci . . . Überträge
0
1
1
1
1
Problemstellungen:
1
0
1
209
• Spezifikation von Schaltkreisen, von boole-schen Funktionen
1
208
Formen und Typen der Logik
• Neben der klassischen Logik sind auch verschiedenste Typen
nicht-klassischer Logiken von Bedeutung:
– intuitionistische Logik (konstruktive Logik)
– mehrwertige Logiken, Fuzzy-Logik
– Modallogiken: Temporallogiken, dynamische Logik, . . .
– ...
t
t
f
t
t
t
OR, Disjunktion
f
t
t
f
t
t
f
t
t
t
t
f
NAND
t
f
f
f
f
f
t
f
f
t
f
f
NOR
t
t
f
f
t
f
t
t
f
6⊂ ≡ 6≡
XOR, exkl. Oder
• Logik wird auf unterschiedlichen Stufen ( Ordnungen“)
”
analysiert:
t
f
f
f
Implikation
212
NEXOR, gdw.
– Aussagenlogik (Logik 0-ter Stufe)
– (Prädikaten)logik 1-ter Stufe
210
– Logiken höherer Ordnung
Aussagenlogik
f
t
∧ ∨ ⊃ ⊂ ↑ ↓ 6⊃
t
t
¬
Logische Konnektive (Junktoren, Operatoren)
sind Funktionen über den Wahrheitwerten:
t
f
f
f
AND, Konjunktion
f
Negation
Logische Kalküle, Beweisprozeduren
Werkzeug zum Beweis (bzw. zur Widerlegung) logischer Aussagen
Keine Bezugnahme auf Bedeutung (Semantik)
Nur syntaktische Manipulation von Formeln (Zeichenketten)
Eigenschaften logischer Kalküle:
Korrektheit: Kalkül beweist nur wahre Aussagen
(widerlegt nur falsche Aussagen).
Vollständigkeit: Jede wahre Aussage ist im Kalkül beweisbar
(jede falsche Aussage ist widerlegbar).
In dieser Vorlesung:
Sequentialkalkül, Tableaux und Resolution für Aussagenlogik
Tableaux und Resolution für Prädikatenlogik
211
Syntax
AV = {A, B, C, . . .} . . . (aussagenlogische) Variable
t, f . . . (aussagenlogische) Konstanten
Definition. Die Menge der aussagenlogischen Formeln AF ist
die kleinste Menge, für die gilt
(AF1) AV ⊆ AF
(AF2) {t, f } ⊆ AF
(AF3) ¬F ∈ AF , wenn F ∈ AF
(AF4) (F ◦′ G) ∈ AF , wenn F, G ∈ AF und
◦′ ∈ {∧, ∨, ⊃, ⊂, ↑, ↓, 6⊃ , 6⊂ , 6≡ , 6≡ }.
AV ∪ {t, f } . . . Atomare Formeln (Atome)
213
Semantik:
INT . . . Variablenbelegungen/Interpretationen: AV → {t, f }
Definition.
Die Semantik aussagenlogischer Formeln ist durch die Funktion
: INT × AF → {t, f } festgelegt:
MAF
(MAF1) MAF (I, A) = I(A), wenn A ∈ AV
(MAF2) MAF (I, t) = t und MAF (I, f ) = f
(F1 ∧ (. . . ∧ Fn ))
Alternative Sichtweise von aussagenlogischen Formeln:
Syntax:
Terme über Datentyp B = h{t, f }, {¬, ∧, ∨, ⊃, . . .}, {}, {t, f }i
217
Satz. F und G sind äquivalent genau dann, wenn F ≡ G gültig ist.
Definition. Zwei Formel F, G ∈ AF heißen äquivalent, wenn
MAF (I, F ) = MAF (I, G) für alle I ∈ INT.
Schreibweise: F ∼ G (s. Def. 3.22 im Skriptum) oder auch F = G.
unerfüllbar, wenn MAF (I, F ) = f für alle I ∈ INT.
widerlegbar, wenn MAF (I, F ) = f für ein I ∈ INT.
(I heißt Gegenbeispiel für F .)
erfüllbar, wenn MAF (I, F ) = t für ein I ∈ INT.
(I heißt Modell von F .)
gültig oder Tautologie, wenn MAF (I, F ) = t für alle I ∈ INT.
Definition. Eine Formel F ∈ AF heißt
215
Dazu die Notationsvereinbarung:
• Infix- statt Prefix-Notation
=⇒
(MAF3) MAF (I, ¬F ) = ¬MAF (I, F )
(MAF4) MAF (I, (F ◦′ G)) = MAF (I, F ) ◦ MAF (I, G),
wobei ◦ die zum Symbol ◦′ gehörende Funktion ist.
Semantik:
MAL entspricht MT über B
steht für
(F1 ∨ (. . . ∨ Fn ))
Eigenschaften von Formeln:
Vergleiche mit MBA !
214
Satz. MAF (I, F ) = MAF (I ′ , F ) für alle I, I ′ ∈ INT mit
I(A) = I ′ (A) für alle A in F (A ∈ AV ).
Notationsvereinbarungen:
• keine Unterstreichungen mehr
F1 ∧ . . . ∧ Fn
steht für
• überflüssige Klammern können weggelassen werden:
F1 ∨ . . . ∨ Fn
Beachte:
Klammereinsparungen sind durch die Semantik gerechtfertigt:
Die Funktionen ∧ und ∨ sind assoziativ.
216
Beispiel. (Gültigkeit, Erfüllbarkeit)
A ⊃ (B ⊃ A) ist gültig und daher auch erfüllbar:
f
t
f
A
t
t
f
f
B
t
f
t
t
t
t
t
t
(B ⊃ A) A ⊃ (B ⊃ A)
t
f
f
f
A B
f
t
t
¬B
f
f
t
f
t
t
t
f
(A ∧ ¬B) ∨ B ist erfüllbar, aber nicht gültig, also auch widerlegbar:
t
t
f
(A ∧ ¬B) (A ∧ ¬B) ∨ B
f
t
218
t
Funktionale Vollständigkeit
Eine Menge von Operatoren heißt funktional vollständig, wenn alle
Funktionen durch sie ausgedrückt werden können.
t
f
f
f
f
f
f
t
t
f
f
A B
f
t
f
t
f
t
f
C
t
f
f
f
t
f
f
f
(B ∧ C)
t
t
t
t
t
t
f
f
t
t
t
t
t
f
t
f
t
t
t
t
t
f
f
f
F
t
t
t
t
t
f
f
f
G
G
t
t
t
(A ∨ B) (A ∨ C)
t
t
219
t
F
A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C) .
{z
} |
{z
}
|
Beispiel. (Distributivgesetz )
h
F · · · Fn
1
A1 · · · An
h
i
. . . Substitution, die alle Ai durch Fi ersetzt.
Formeln, Formelschemata, Substitutionen
σ=
= (A ↑ B) ↑ (A ↑ B)
Satz. Gilt F ≡ G, dann auch F σ ≡ Gσ.
Satz. Ist F eine Tautologie, dann auch F σ.
i
F1 · · · Fn . . . Formel, die aus F entsteht, indem alle A
Fσ = F A
i
1 · · · An
durch Fi ersetzt werden (Instanz von F unter σ).
A∧B
= (A ↑ A) ↑ (B ↑ B)
A∧B
= ¬A ∨ B
= ¬(¬A ∨ ¬B)
A↓B
A↑B
= ¬(A ∨ B)
= ¬A ∨ ¬B
F
h
X∨¬Y ¬X∧Y
A
B
i
221
Beispiel. F = (A ∧ (A ⊃ B)) ⊃ B ist gültig, daher auch
= (X∨¬Y ) ∧ (X∨¬Y ) ⊃ (¬X∧Y ) ⊃ (¬X∧Y )
Das heißt: Formeln können als Schemata aufgefasst werden, wobei
Variablen als Platzhalter für Formeln dienen.
A∨B
Beispiel. {↑} ist funktional vollständig. Etwa:
= A ↑ (B ↑ B)
¬A = A ↑ A
A⊃B
Beispiel. {¬, ∨} ist funktional vollständig. Etwa:
A⊃B
220
Äquiv. Substitution sind Äquiv.-erhaltend
h
A⊃B B
B C
Bσ2
i
und σ2 =
h
¬A∨B B
B C
i
.
Satz. Seien σ1 , σ2 Substitutionen, sodass Aσ1 ≡ Aσ2 für alle in der
Formel F vorkommenden Variablen A gilt. Dann folgt: F σ1 ≡ F σ2 .
Bσ1
(A ⊃ B) ≡ (¬A ∨ B)
| {z } | {z }
Beispiel. Sei F = (A ∧ B) ⊃ C, σ1 =
Da
gilt, erhalten wir
F σ2
(A ∧ (A⊃B)) ⊃ B ≡ (A ∧ (¬A∨B)) ⊃ B
|
{z
} |
{z
}
F σ1
222
Logische Konsequenz und Implikation
Definition. Formel G ist logische Konsequenz der Formeln
F1 , . . . , Fn , geschrieben F1 , . . . , Fn |= G, wenn für alle I gilt:
Wenn MAF (I, Fi ) = t für 1 ≤ i ≤ n, dann gilt MAF (I, G) = t.
Für n = 0 ist |= G gleichbedeutend mit G ist gültig“.
”
Satz. (Deduktionstheorem)
F1 , . . . , Fn |= G gdw. F1 , . . . , Fn−1 |= (Fn ⊃ G).
Folgerung. F1 , . . . , Fn |= G gilt
gdw. F1 ⊃ (F2 ⊃ · · · (Fn ⊃ G) · · ·) gültig ist
gdw. (F1 ∧ · · · ∧ Fn ) ⊃ G gültig ist.
Beispiel. B ist eine logische Konsequenz aus A und A ⊃ B, d.h., es
gilt A, A ⊃ B |= B.
Die Formel A ∧ (A⊃B) ⊃ B ist daher eine Tautologie.
223
A 6⊃ B = A ∧ ¬B
Satz. Zu jeder aussagenlogischen Formel gibt es eine äquivalente in
DNF bzw. in KNF.
A ⊃ B = ¬A ∨ B
A 6⊂ B = ¬A ∧ B
Normalformen
A ⊂ B = A ∨ ¬B
¬(A ∨ B) = ¬A ∧ ¬B
Schritt 2: Schiebe Negationen vor die Variablen.
¬(A ∧ B) = ¬A ∨ ¬B
A∨t=t
A ∨ f = A ¬t = f
Schritt 3: Eliminiere die Konstanten t und f .
A∧f =f
225
¬f = t
Schritt 4: Forme um in DNF/KNF mittels Distributivgesetz.
A∧t=A
¬¬A = A
(A ≡ B) = (A ∧ B) ∨ (¬A ∧ ¬B) (A 6≡ B) = (¬A ∧ B) ∨ (A ∧ ¬B)
A ↓ B = ¬A ∧ ¬B
Definition. A, ¬A Literal, falls A ∈ IVS .
∨ ··· ∨
A ↑ B = ¬A ∨ ¬B
Syntaktische (algebraische) Methode:
Schritt 1: Ersetze alle Operatoren durch ∧, ∨ und ¬.
Seien Li,j Literale.
Disjunktive Normalform (DNF):
∧ ··· ∧
(Lm,1
Lm,nm )
(L1,1 ∧ · · · ∧ L1,n1 ) ∨ · · · ∨ (Lm,1 ∧ · · · ∧ Lm,nm )
∨ ···∨
L1,n1 )
Konjunktive Normalform (KNF, CNF):
(L1,1
implizite Berücksichtigung von Assoz., Kommut., Idempotenz ⇒
Mengenschreibweise:
{{L1,1 , . . ., L1,n1 }, . . ., {Lm,1 , . . ., Lm,nm }}
(Li,1 ∨ · · · ∨ Li,ni ) heißt auch Klausel (engl. clause), eine KNF heißt
auch Klauselnormalform (clause normal form).
224
Beispiel. (A ↑ (B ∨ C)) ⊃ ¬D
Schritt 1: ¬(¬A ∨ ¬(B ∨ C)) ∨ ¬D
Schritt 2: (A ∧ (B ∨ C)) ∨ ¬D
Schritt 3: (A ∧ (B ∨ C)) ∨ ¬D
DNF:
(A ∨ ¬D) ∧ (B ∨ C ∨ ¬D)
(A ∧ B) ∨ (A ∧ C) ∨ ¬D
Schritt 4: Ausdistribuieren
KNF:
226
Semantische Methode (Fortsetzung)
_
A in F
LA
{{A, ¬D}, {B, C, ¬D}}
I∈INT,MAF (I,F )=f
LA =
A
falls I(A) = f
¬A falls I(A) = t
enthält ein Literal LA für jede Variable A in Formel F :
KNF(F ) =
KNF: Enthält Disjunktion DI für jedes I mit MAF (I, F ) = f
(wobei I auf die in F vorkommenden Var. eingeschränkt wird!):
^
DI
DI
DI =
Es gilt: DI ist falsch nur in I, und wahr sonst, d.h.:
MAF (I, DI ) = f und MAF (I ′ , DI ) = t für I ′ 6= I .
KNF(F ) ist falsch in I gdw. KI in KNF(F ) vorkommt. Daher:
MAF (I, KNF(F )) = f gdw. MAF (I, F ) = f .
KNF(F ) ist die eindeutig bestimmte vollständige KNF von F :
jede Disjunktion DI enthält alle Variablen (von F ).
228
Semantische Methode F ∈ AF . . . aussagenlogische Formel
I∈INT,MAF (I,F )=t
DNF: Enthält Konjunktion KI für jedes I mit MAF (I, F ) = t
(wobei I auf die in F vorkommenden Var. eingeschränkt wird!):
_
KI
DNF(F ) =
^
A in F
LA
LA =
A
falls I(A) = t
¬A falls I(A) = f
KI enthält ein Literal LA für jede Variable A in Formel F :
KI =
Es gilt: KI ist wahr nur in I, und falsch sonst, d.h.:
MAF (I, KI ) = t und MAF (I ′ , KI ) = f für I ′ 6= I .
DNF(F ) ist wahr in I gdw. KI in DNF(F ) vorkommt. Daher:
MAF (I, DNF(F )) = t gdw. MAF (I, F ) = t .
f
f
t
t
t
A↑(B∨C)
t
t
t
t
t
f
f
f
f
f
f
t
t
t
¬D
t
t
t
t
t
f
f
f
t
f
t
t
t
t
F
A ∨ ¬B ∨ ¬C ∨ ¬D
¬A ∧ B ∧ ¬C ∧ ¬D
KI bzw. DI
DNF(F ) ist die eindeutig bestimmte vollständige DNF von F :
Jede Konjunktion KI enthält alle Variablen (von F ).
227
f f f f
t f f f
t
f
t
f
t
f
t
t
t
f
t
f
t
f
Beispiel. F = (A ↑ (B ∨ C)) ⊃ ¬D
f tf f
t
t
t
t
t
f
f
t
t
t
t
f
f
A B C D B∨C
f
f
f
f
f
t
t
t
t
t
t
f
t
(11 Konjunktionen)
f
t
t
t
t
f
f
f
f
t
t
t
f
t
f
t
f
t
f
t
f
t
t
t
DNF(F ) = · · · ∨ (¬A ∧ B ∧ ¬C ∧ ¬D) ∨ · · ·
(5 Disjunktionen)
t
f
f
t
t
f
f
t
t
f
f
t t t t
f t t t
KNF(F ) = · · · ∧ (A ∨ ¬B ∨ ¬C ∨ ¬D) ∧ · · ·
229
Eigenschaften von DNFs und KNFs
• Eine DNF ist unerfüllbar, wenn jede Konjunktion eine
Variable A enthält, die sowohl als A als auch als ¬A vorkommt.
• Eine KNF ist gültig, wenn jede Disjunktion eine Variable A
enthält, die sowohl als A als auch als ¬A vorkommt.
• Die Länge einer DNF/KNF kann exponentiell größer sein als
die ursprüngliche Formel.
Ursache bei algebraischer Methode: Elimination von ≡ und 6≡,
Anwenden der Distributivität.
Ursache bei semantischer Methode: Anzahl der möglichen
Interpretationen (vgl. Wahrheitstafel).
230
Herunterladen