Universität Koblenz-Landau FB 4 Informatik Prof. Dr. Viorica Sofronie-Stokkermans 2 Dipl.-Inform. Markus Bender ∗ ∗1 19.06.2013 Übung zur Vorlesung Logik für Informatiker Aufgabenblatt 9 Abgabe bis 24.06.13, 13:00 s.t. Aufgabe 9.1 Sei Σ = (Ω, Π) eine Signatur, wobei Ω = {0/0, s/1, +/2} und Π = {≈/2}. Ferner sei X eine Menge von Variablen x, y ∈ X. Gegeben sind die folgenden Strukturen A1 , A2 und Belegungen β1 , β2 : • A1 = (N, {0A1 , sA1 : N → N, +A1 : N × N → N}, {≈A1 }) mit – 0A1 = 0 ∈ N – sA1 (n1 ) = n1 + 1 ∈ N – +A1 (n1 , n2 ) = n1 + n2 ∈ N • A2 = ({a, b}∗1 , {0A2 , sA2 : {a, b}∗ → {a, b}∗ , +A2 : {a, b}∗ × {a, b}∗ → {a, b}∗ }, {≈A2 }) mit – 0A2 = ∈ {a, b}∗ – sA2 (w) = wa ∈ {a, b}∗ – +A2 (w1 , w2 ) = w1 w2 ∈ {a, b}∗ (Konkatenation) • β1 : X → N, definiert durch β1 (x) = 9, β1 (y) = 103 • β2 : X → {a, b}∗ , definiert durch β2 (x) = abb, β2 (y) = • β3 : X → {a, b}∗ , definiert durch β3 (x) = ab, β3 (y) = a Evaluieren Sie I) A(β)(x + y ≈ y + x), II) A(β)(∀x∀y(x + y ≈ y + x)), für a) A = A1 und β = β1 , b) A = A2 und β = β2 , c) A = A2 und β = β3 . Gehen Sie dabei in klaren und leicht nachvollziehbaren Schritten vor. 1 Die Menge aller Worte über dem Alphabet {a, b} (inklusive des leeren Wortes ) Aufgabe 9.2 Sei Σ = (Ω, Π) eine Signatur, wobei Ω = {f /1, g/2} und Π = {p/1, ≈/2}. Ferner sei X eine Menge von Variablen und x, y ∈ X. Gegeben sind die Struktur A und die Belegung β: • A = (R, {fA : R → R, gA : R × R → R}, {pA , ≈A }) mit – fA (n) = n2 ∈ R – gA (n1 , n2 ) = n1 + n2 ∈ R – pA ⊆ R, n ∈ pA iff n ≥ 0 • β : X → R, definiert durch β(x) = √ 2, β(y) = −1 Evaluieren Sie a) A(β)(g(f (x), f (y))) b) A(β)(∀x p(f (x))) c) A(β)(∀y((f (x) ≈ y) → p(g(x, y)))) d) A(β)(∀x∀y((x ≈ y) → (f (x) ≈ f (y)))) e) A(β)(∀x∀y((f (x) ≈ f (y)) → (x ≈ y))) Aufgabe 9.3 Seien F, G beliebige wohlgeformte Formeln der Prädikatenlogik in denen die Variable x vorkommt. Sei H eine beliebige wohlgeformte Formel der Prädikatenlogik in der x nicht vorkommt. Beweisen oder widerlegen Sie folgende Aussagen: a) ∀x(F ∧ G) ≡ (∀x F ) ∧ (∀x G) b) ∃x(F ∧ G) ≡ (∃x F ) ∧ (∃x G) c) ∀x(F ∧ G) |= (∀x F ) ∨ (∀x G) d) ∃x(F ∧ H) ≡ (∃x F ) ∧ H Aufgabe 9.4 Sei Σ = (Ω, Π) eine Signatur mit Ω = {c/0, g/1, f /2} und sei X eine Menge von Variablen. Seien die folgenden Funktionen auf Termen, wie folgt definiert: Für jeden Term t ∈ TΣ (X): 1 wenn t ∈ X 1 wenn t = c Länge(t) := 1 + Länge(t1 ) wenn t = g(t1 ) 1 + Länge(t ) + Länge(t ) wenn t = f (t , t ) 1 2 1 2 1 wenn t ∈ X 0 wenn t = c Var(t) := Var(t1 ) wenn t = g(t1 ) Var(t ) + Var(t ) wenn t = f (t , t ) 1 2 1 2 Zeigen sie mit Hilfe der Strukturellen Induktion über den Aufbau von TΣ (X), dass für jeden Term t ∈ TΣ (X): Var(t) ≤ Länge(t). Aufgabe 9.5 Die Datei allgroups/aufgaben/blatt09.pl gibt Ihnen ein Beispiel, wie man in Prolog pattern-matching gegen komplexere Zeichenketten verwenden kann. Wir betrachten die Menge Ω = {a/0, b/0, c/0, d/0, e/0, f /1, g/2, h/2, i/3} von Funktionssymbolen und die Menge X = {u, v, w, x, y, z} an Variablen. In der Datei allgroups/aufgaben/blatt09.pl sind bereits die Prologprädikate istKonstante(X) und istVariable(X) vorgegeben, die dann wahr sind, wenn X eine Konstante, respektive eine Variable nach der gegebenen Definition ist. a) Schreiben Sie ein Prologprädikat istTerm(Element), das genau dann wahr ist, wenn das Element Element ein syntaktisch korrekter Term mit den Funktionen in Ω und den Variablen in X ist. b) Schreiben Sie ein Prologprädikat substituiere(Neu,Alt,AlterTerm,NeuerTerm), das alle Vorkommen der Variablen Alt in dem Term AlterTerm durch den Term Neu ersetzt und den neuen Term in der Variable NeuerTerm ausgibt. Dieses Prologprädikat soll die Substitution in der Prädikatenlogik simulieren, achten Sie also entsprechend darauf, die entsprechenden Randbedingungen zu einzuhalten. Verwenden Sie dabei weder Arithmetik, noch builtin-Prologprädikate. ∗1 ∗2 B 225 B 224 [email protected] [email protected] www.uni-koblenz.de/~sofronie www.uni-koblenz.de/~mbender Bitte beachten Sie die Modalitäten zur Abgabe, die Sie unter http://userp.uni-koblenz.de/~mbender/ ss13logic.html einsehen können.