Übungen zu "Grundlagen der Logik in der Informatik"

Werbung
Übungen zu ”Grundlagen der Logik in der Informatik” - WS15/16
1/5
Übungen zu ”Grundlagen der Logik in der Informatik” WS15/16
Donnerstag 14:15-15:45, Cauerstraße 7/9, Raum 0.154-115
Freitag 14:15-15:45, Martenstr. 3, Raum 02.134-113
Daniel Hausmann
[email protected]
Friedrich-Alexander-Universität Erlangen
Department Informatik
Lehrstuhl 8
January 12, 2016
Übungen zu ”Grundlagen der Logik in der Informatik” - WS15/16 | Übungsblatt 9 | Aufgabe 1 (Präsenzaufgabe)
2/5
Aufgabe 1 - Variablensubstitution (Prädikatenlogik)
Eine Substitution ist eine Funktion, die Variablen auf Terme abbildet.
Schreibweise: [E1 /x1 , . . . , En /xn ]. Definiere für Formeln φ, Ausdrücke E
und Substitionen σ das Ergebnis φσ bzw. E σ der Anwendung von σ
rekursiv:
xσ = σ(x)
f (E1 , . . . , En )σ = f (E1 σ, . . . , En σ)
f /n ∈ Σ
(E = D)σ = (E σ = Dσ)
(¬φ)σ = ¬(φσ)
(φ ∧ ψ)σ = (φσ ∧ ψσ)
(∀x. φ)σ = ∀y . φσ 0 , wobei σ 0 (x) = y , σ 0 (z) = σ(z) für jedes z 6= x,
und y ∈
/ FV (σ(z)) für alle z ∈ FV (∀x. φ).
Geben Sie entsprechende Gleichungen für (φ ∨ ψ)σ und (∃x. φ)σ an, die
sich aus der Kodierung von φ ∨ ψ als ¬(¬φ ∧ ¬ψ) und von ∃x. φ als
¬(∀x. ¬φ) ergeben.
Übungen zu ”Grundlagen der Logik in der Informatik” - WS15/16 | Wiederholung | Wiederholung aus der Vorlesung
3/5
Unifikation
.
Eine Gleichung E = D ist ein Paar (E , D) von Termen. Ein
Gleichungssystem ist eine Menge von Gleichungen. Eine Substitution σ
.
ist ein Unifikator von E = D, wenn E σ = Dσ. Ein Unifikator eines
Gleichungssystems S ist eine Substitution, die Unifikator aller
Gleichungen in S ist. Das System S ist unifizierbar, wenn es einen
Unifikator hat. Eine Substitution σ1 ist allgemeiner als σ2 , wenn eine
Substitution τ existiert, so dass σ1 τ = σ2 .
Ein Unifikator σ von S ist allgemeinster Unifikator (MGU, most general
unifier) von S (σ = mgu(S)), wenn σ allgemeiner als jeder Unifikator
von S ist.
Übungen zu ”Grundlagen der Logik in der Informatik” - WS15/16 | Wiederholung | Wiederholung aus der Vorlesung
4/5
Unifikationsalgorithmus
Der Algorithmus (ursprünglich Herbrand, später Martelli/Montanari)
besteht in erschöpfender Anwendung der folgenden Umformungsregeln:
(delete) :
.
S ∪ {x = x}
→S
(decomp) :
.
S ∪ {f (E1 , . . . , En ) = f (D1 , . . . , Dn )}
.
.
→ S ∪ {E1 = D1 , . . . , En = Dn }
(conflict) :
.
S ∪ {f (E1 , . . . , En ) = g (D1 , . . . , Dk )}
→⊥
(orient) :
.
S ∪ {E = x}
.
→ S ∪ {x = E }
(für f 6= g )
(E keine Variable)
(occurs)/(elim) :
.
S ∪ {x = E }
(
→
⊥
(x ∈ FV (E ), x 6= E )
.
S[E /x] ∪ {x = E }
(x ∈
/ FV (E ), x ∈ FV (S))
Wenn ⊥ erreicht wird, gibt der Algorithmus ”nicht unifizierbar” aus;
ansonsten berechnet er einen allgemeinsten Unifikator von S.
Übungen zu ”Grundlagen der Logik in der Informatik” - WS15/16 | Übungsblatt 9 | Aufgabe 2 (Präsenzaufgabe)
5/5
Aufgabe 2 - Unifikation
Berechnen Sie mittels des Unifikationsalgorithmus einen allgemeinsten
Unifikator für die folgenden formalen Gleichungen, bzw. zeigen Sie ggf.,
dass die Gleichungen nicht unifizierbar sind.
.
1 plus(plus(x, o), y ) = plus(plus(y , o), plus(o, plus(o, plus(z, o))));
.
2 branch(x, branch(end, end)) = branch(branch(z, y ), branch(x, end)).
Annotieren Sie dabei alle Umformungsschritte explizit mit der jeweils
verwendeten Regel des Unifikationsalgorithmus.
Herunterladen