Unterlagen zur Veranstaltung Algorithmen, Komplexität, Formale Sprachen WS 2005//06. Prof. Dr. R. Reischuk Institut für Theoretische Informatik

Größe: px
Ab Seite anzeigen:

Download "Unterlagen zur Veranstaltung Algorithmen, Komplexität, Formale Sprachen WS 2005//06. Prof. Dr. R. Reischuk Institut für Theoretische Informatik"

Transkript

1 Unterlagen zur Veranstaltung Algorithmen, Komplexität, Formale Sprachen Universität zu Lübeck WS 2005//06 Prof. Dr. R. Reischuk Institut für Theoretische Informatik Oktober

2 2 AKF, UzL WS2004/05 Empfohlene Lehrbücher N. Cutland, Computability, Cambridge University Press 1980 C. Smith, A Recursive Introduction to the Theory of Computation, Springer 1994 H. Rogers, Theory of Recursive Functions and Effective Computability, McGraw-Hill 1967 J. Hopcroft, R. Motwani, J. Ullman, Introduction to Automata Theory, Languages and Computation, Addison Wesley, 2. Edition 2001, deutsche Übersetzung: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie, Addison Wesley 1994 A. Aho, J. Hopcroft, J. Ullman, Design and Analysis of Computer Algorithms, Addison Wesley 1978 J. Kleinberg, E. Tardos, Algorithm Design, Addison Wesley, 2005 T. Cormen, C. Leiserson, R. Rivest, Introduction to Algorithms, MIT Press 1990 T. Ottmann, P. Widmayer, Algorithmen und Datenstrukturen, Spektrum 2002 R. Reischuk, Komplexitätstheorie Band I: Grundlagen, Teubner 1998 M. Garey, D. Johnson, Computers and Intractability, Freeman, 1979 C. Papadimitriou, Computational Complexity, Addison Wesley 1994

3 R. Reischuk, ITCS 3 1 Berechenbarkeit 1.1 Notation IN = {0, 1, 2,... } die Menge der natürlichen Zahlen, IN n = IN... IN die Menge der n-tupel X = x 1,..., x n über den natürlichen Zahlen, Σ = {σ 1, σ 2,...} eine Menge von Symbolen, im folgenden Alphabet genannt, Σ die Menge der endlichen Worte a 1 a 2... a n über dem Alphabet Σ, n IN, a i Σ, Σ + Σ ohne das leere Wort λ der Länge 0, Φ S die Nachfolgerfunktion IN IN, x x + 1, Φ P die Vorgängerfunktion IN IN, 0 0, x + 1 x, Φ Z die Nullfunktion IN IN, x 0, Uj n die j-te Projektionsfunktion, 1 j n, IN n IN, x 1,..., x n x j sign die Signumfunktion 0 0, x > 0 1. Definition 1.1 Sind A, B zwei Mengen, so heißt eine Teilmenge R A B eine Relation. Eine Relation heißt (partielle) Funktion von A nach B, falls es für alle a A höchstens ein b B gibt mit (a, b) R. Statt (a, b) R schreibt man auch f(a) = b, wobei f als Symbol für die partielle Funktion dient. Falls für a ein b existiert, so daß (a, b) R, so nennt man f an der Stelle a definiert (oder auch konvergent, Notation f(a) ). Andernfalls ist f nicht definiert an der Stelle a (oder auch divergent, Notation f(a) ). Damit können wir die folgenden Mengen definieren: Definitionsbereich: dom(f) := {a f(a) }, Wertebereich: ran(f) := {b a A mit f(a) = b}. Eine Funktion f : A B mit dom(f) = A heißt total. Ist A = A 1 A 2... A n n -faches kartesisches Produkt, so ist f eine n -stellige Funktion. ein Eine Teilmenge P A nennt man auch Prädikat. Die Funktion χ P : A {0, 1}, definiert durch { 1, falls a P, χ P (a) := 0, falls a / P, heißt die charakteristische Funktion von P. Wir betrachten im Folgenden zunächst nur Funktionen IN n IN.

4 4 AKF, UzL WS2004/ Prädikatenlogik Die Aussagenlogik benutzt nur atomare Prädikate, die durch Boolesche Operatoren verknüpft werden können. Bei der Frage der Erfüllbarkeit einer solchen Formel haben wir die atomaren Prädikate als Boolesche Variable interpretiert. Die Prädikatenlogik 1. Stufe, eine Verallgemeinerung der Aussagenlogik, verwendet zusätzlich Variable, die Werte aus einem beliebigen Universum U (z.b. IN oder IR ) annehmen können und über die quantifiziert werden kann. Zusätzlich können wir Funktionen über U verwenden. Definition 1.2 Syntax Gegeben sei ein ein Alphabet Σ, welches in die folgenden paarweise disjunkten Mengen von Symbolen (auch Zeichen genannt) unterteilt ist: eine Menge V = { u, v, w, x, y,... } von Variablen, eine Menge F = { f, g, h,... } von Funktionssymbolen, eine Menge Π = { P, Q, R,... } von Prädikatssymbolen, Konnektoren,,, Quantoren,, Hilfszeichen (, ), [, ]. Eine Signatur ist eine Abbildung α : F Π IN, die den Funktions- und Prädikatssymbolen des Alphabets Σ eine Stelligkeit (die Anzahl der Argumente) zuordnet. Für n IN bezeichnet F n := { f F α(f) = n } die Menge der n -stelligen Funktionszeichen und Π n := { p Π α(p) = n } die Menge der n -stelligen Prädikatszeichen. Ein nullstelliges Prädikatszeichen p Π 0 heißt auch Aussagenvariable, während nullstellige Funktionssymbole Konstanten genannt werden, die wir mit a, b, c,... bezeichnen. Die Menge T der Terme über V F ist induktiv definiert durch: Jedes Element aus V F 0 ist ein Term. Für f F n mit n 1 und Terme t 1,..., t n ist auch f(t 1,..., t n ) ein Term. Für p Π n und Terme t 1,..., t n heißt p(t 1,..., t n ) atomare Formel oder Atom. Die Menge der prädikatenlogische Formeln über Σ, PF Σ konstruiert: wird induktiv wie folgt Jede atomare Formel p gehört zu PF Σ. Die Variablen, die in p vorkommen, heißen freie Variablen.

5 R. Reischuk, ITCS 5 Sind F, G prädikatenlogische Formeln und x eine Variable, dann sind auch (F G), (F G), ( F ) sowie ( x F ) und ( x F ) Formeln. Ist G =... (Q x H)... eine prädikatenlogische Formel mit einer quantifizierten Teilformel (Q x H), wobei Q {, }, dann heißt der Bereich von H, der verbleibt, wenn Subformeln der Gestalt (Q x H ) aus H entfernt werden, der Bindungsbereich von Qx. Eine Variable x heißt gebunden, wenn sie im Bindungsbereich eines Quantors liegt, andernfalls frei. Eine prädikatenlogische Formel ohne freie Variable heißt geschlossen. Betrachten wir beispielsweise die Formel x[ F (x) (( yg(y)) ( z H(x, y, z))) ], so ist die einzig freie Variable das 2. Auftreten von y in der Teilformel H. Definition 1.3 Semantik Eine Struktur ist ein Paar A = ( U A, I A ), wobei U A eine beliebige nichtleere Menge ist, die die Grundmenge von A oder das Universum genannt wird. I A beschreibt eine Abbildung (Interpretation) definiert auf einer Teilmenge V Π F V Π F, die jedem k -stelligen Prädikatssymbol p Π ein k -stelliges Prädikat p A = I A (p) über U A, jedem k -stelligen Funktionssymbol f F eine k -stellige Funktion f A = I A (f) auf U A und jeder Variablen x V ein Element x A = I A (x) aus der Grundmenge U A zuordnet. Sei F eine Formel und A eine zu F passende Struktur. Für jeden Term t, der in F vorkommt, ist der Wert A(t) von t in der Struktur A wie folgt definiert: Falls t eine Variable ist, so sei A(t) := x A. Falls t die Form t = f(t 1,..., t k ) hat mit Termen t 1,..., t k und einem k -stelliges Funktionssymbol f, so ist A(t) := f A (A(t 1 ),..., A(t k )). Damit können wir den Wahrheitswert A(F ) von F unter der Struktur A wie folgt definieren: Falls F die Form F = p(t 1,..., t k ) hat für Terme t 1,..., t k und p ein k -stelliges Funktionssymbol, so ist A(F ) := { 1 falls p A (A(t 1 ),..., A(t k )) = 1, 0 sonst.

6 6 AKF, UzL WS2004/05 Falls F die Form G, (G H) oder (G H) besitzt, so verfahren wir analog zur Semantik der Aussagenlogik. Falls F = x G, so sei A(F ) := { 1 falls für alle a UA gilt: A(G [x:=a] ) = 1, 0 sonst,. wobei G [x:=a] aus G entsteht, indem alle Vorkommnisse von x im Bindungsbereich von x durch die Konstante a ersetzt werden. Falls F = x G, so sei A(F ) = { 1 falls es ein a UA gibt mit: A(G [x:=a] ) = 1, 0 sonst.. Kommt eine Variable x nicht frei in der Formel G vor, so macht eine Quantifizierung x G oder x G offensichtlich keinen Sinn. Man kann das Problem des Bindungsbereichs eines Quantors dadurch entschärfen, daß verlangt wird, daß alle Vorkommnisse von x in G frei sind, mit anderen Worten, x darf innerhalb von G an keiner Stelle bereits durch Quantoren gebunden sein. Dies kann gegebenenfalls durch Umbennung der Variablen erreicht werden. Formeln, bei denen jedes Variablensymbol höchstens einmal mit einem Quantor kombiniert wird, sind leichter lesbar. Eine besonders einfache Darstellung ist die Pränex-Normalform, bei der alle Quantoren am Anfang der Formel stehen. Allerdings würden diese Einschränkungen die Definition der Menge aller prädikatenlogischer Formeln verkomplizieren. Beispiel 1.1 Äquivalenzen in der Prädikatenlogik Es seien F und G beliebige prädikatenlogische Formeln. Dann sind unter anderem folgende Umformungen zulässig. 1. Alle für die Aussagenlogik bewiesenen Äquivalenzen gelten auch in der Prädikatenlogik. 2. ( x F ) x ( F ) ( x F ) x ( F ) 3. Falls x in G nicht frei vorkommt, gelten die Umformungen: ( x F ) G x (F G) ( x F ) G x (F G) ( x F ) G x (F G) ( x F ) G x (F G)

7 R. Reischuk, ITCS 7 4. ( x F ) ( x G) x (F G) ( x F ) ( x G) x (F G) 5. x ( y F ) y ( x F ) x ( y F ) y ( x F ) Quantoren haben höhere Priorität als die Booleschen Operatoren, so daß man oftmals auf Klammern verzichten kann. Bei gleichen Quantoren, die aufeinanerfolgen, wird auch die verkürzte Schreibweise Q x y z F anstelle von Q x Q y Q z F = Q x (Q y (Q z F )) verwendet. Folgende Transformationen sind im allgemeinen nicht korrekt: ( x F ) ( x G) x (F G) x ( y F ) y ( x F ) Von Interesse sind auch Einschränkungen sowie Erweiterungen dieses prädikatenlogischen Formalismus. Die Monadische Prädikatenlogik verwendet nur 1-stellige Prädikatssymbole und keinerler Funktionssymbole. Die Prädikatenlogik der 2. Stufe erlaubt eine Quantifizierung auch über Prädikatsund Funktionssymbole. 1.3 LOOP- und WHILE-Programme Definition 1.4 Die Programmiersprache LOOP: Die Syntax der Programmiersprache LOOP ist gegeben durch: Variablen: x 1, x 2, x 3,..., Symbole: 0, Φ S, Φ P, :=, ;, (, ), loop, do, od, Wertzuweisungen: < Variable > := 0 / < Variable > / Φ S (< Variable >) / Φ P (< Variable >), Programme: < Wertzuweisung > / < Programm >; < Programm > / loop < Variable > do < Programm > od. Das Programm loop x do Π od bewirkt, daß Π so oft ausgeführt wird, wie der Wert der Variable x vor Beginn des Programmes angibt (d.h. spätere Änderungen von x innerhalb von Π haben keinen Einfluß). LOOP-Programme terminieren für jede Eingabe.

8 8 AKF, UzL WS2004/05 LOOP n bezeichne die Menge aller LOOP-Programme, bei denen nur Variablen mit Indizes kleiner oder gleich n auftreten. Ist Π ein LOOP-Programm aus LOOP n, so bezeichne Φ Π i (x 1,..., x n ) die n -stellige Funktion, die dem Argument x 1,..., x n den Wert der Variablen x i zuordnet, den x i in Π bei Eingabe x 1,..., x n nach Beendigung des Programmes besitzt. Definition 1.5 Eine n-stellige Funktion f : IN n IN heißt LOOP-berechenbar, wenn es ein Programm Π LOOP m mit m n gibt, so daß für alle x 1,..., x n gilt: f(x 1,..., x n ) = Φ Π 1 (x 1,..., x n, 0,..., 0). }{{} m n Die Variablen x m+1,..., x m dienen dem Programm Π als Hilfsvariablen zur Berechnung von f, welche mit 0 initialisiert sind. Wird die Funktion f durch Π berechnet, so auch ihre m -stellige Erweiterung f definiert durch f(x 1,..., x m ) := Φ Π 1 (x 1,..., x m ). Beispiele für LOOP-berechenbare Funktionen sind die Addition zweier natürlicher Zahlen, die Subtraktion, Multiplikation, die ganzzahlige Division, Exponentialfunktionen, das Prädikat ist Primzahl und noch viele weitere Funktionen. Erstaunlicherweise ist es gar nicht einfach, eine totale Funktion auf den natürlichen Zahlen zu finden, die in diesem Sinne nicht berechenbar ist. Dennoch reicht diese Begriffsbildung nicht aus, um alle Funktionen, die durch Maschinen berechnet werden können, zu charakterisieren, und zwar zunächst auf einem ganz simplen Grund. Bekanntermaßen haben manche Programme die in der Regel unerwünschte Eigenschaft, nicht zu terminieren. Definition 1.6 Die Programmiersprache WHILE: Ihre Syntax unterscheidet sich von der der LOOP-Sprache im wesentlichen dadurch, daß anstelle einer LOOP-Schleife folgende Konstruktion von Programmen möglich ist: while < Variable > 0 do < Programm > od. Das Programm while x 0 do Π od führt Π so lange aus, bis die Variable x den Wert 0 erhalten hat. Man beachte, daß es vorkommen kann, daß ein WHILE-Programm Π für bestimmte Eingaben X nicht terminiert. In diesem Fall sind die Ergebnisfunktionen Φ Π j (X) nicht definiert.

9 R. Reischuk, ITCS 9 Definition 1.7 Eine n -stellige partielle Funktion f : IN n IN heißt WHILE-berechenbar, wenn ein Programm Π WHILE m, m n, existiert, so daß für alle x 1,..., x n, für die f definiert ist, f(x 1,..., x n ) = Φ Π 1 (x 1,..., x n, 0,..., 0) }{{} m n und für die x 1,..., x n, für die f x 1,..., x n nicht terminiert. nicht definiert ist, das Programm Π auf Eingabe Man kann jede LOOP-Schleife durch eine WHILE-Schleife ersetzen und zwar so, daß sich das Ein-Ausgabe-Verhalten des Programmes nicht ändert (eine leichte Programmierübung). Andererseits kann man leicht WHILE-Programme angeben, die nicht terminieren. Somit gilt: Lemma 1.1 Die Menge der LOOP-berechenbaren Funktionen ist eine echte Teilmenge der Menge der WHILE-berechenbaren Funktionen. Daß es jedoch auch totale Funktionen gibt, die nicht LOOP-berechenbar sind, werden wir später noch sehen. 1.4 Rekursion und primitive Rekursion Definition 1.8 Das Kompositionsschema erzeugt aus einer m -stelligen Funktion g und m n -stelligen Funktionen f 1,..., f m eine n -stellige Funktion f durch f(x) := g(f 1 (X),..., f m (X)) für X IN n. Dabei ist f an der Stelle X genau dann definiert, wenn alle f i (X) definiert sind und g für das Argument f 1 (X),..., f n (X) definiert ist. Sind g und die f i totale Funktionen, so gilt dies offensichtlich auch für f. Definition 1.9 Das Rekursionsschema (Schema der primitiven Rekursion) erzeugt aus einer n -stelligen Funktion g und einer (n + 2) -stelligen Funktion h eine (n + 1) -stellige Funktion f durch f(x, 0) := g(x), f(x, y + 1) := h(x, y, f(x, y)) für X IN n, y IN. f(x, y + 1) ist genau dann definiert, wenn f(x, y) definiert ist sowie h an der Stelle (X, y, f(x, y)).

10 10 AKF, UzL WS2004/05 Allgemeiner kann man eine simultane Rekursion für Funktionen f 1,..., f m mit Hilfe von Funktionen g i und (n + m + 1) -stelligen Funktionen h i, i [1..m], betrachten: f i (X, 0) := g i (X), f i (X, y + 1) := h i (X, y, f 1 (X, y),..., f m (X, y)) für i [1..m]. Mit Hilfe von Bijektionen zwischen IN n und IN läßt sich zeigen, daß die simultane Rekursion auf die primitive Rekursion zurückgeführt werden kann. Definition 1.10 Die Menge PR der primitiv-rekursiven Funktionen besteht aus den Funktionen, die sich aus der Menge der Ausgangsfunktionen Φ S, Φ P, Φ Z, Uj n durch endlich viele Anwendungen des Kompositions- und des Rekursionsschemas erzeugen lassen. Da die Ausgangsfunktionen total sind, ist jede primitiv-rekursive Funktion total. Die oben genannten arithmetischen und viele weitere Funktionen sind primitiv-rekursiv. Beispiel ) Addition: Die durch Komposition von Elementarfunktionen erzeugte 3-stellige Funktion h 1 (x 1, x 2, x 3 ) = Φ S (U 3 3 (x 1, x 2, x 3 )) = x ist nach Definition primitiv-rekursiv. Dann können wir die Addition durch das folgende primitive Rekursionsschema erzeugen: ADD(x, 0) = U 1 1 (x) ADD(x, y + 1) = h 1 (x, y, ADD(x, y)) 2.) Multiplikation: Durch Komposition erhalten wir eine Funktion h 2, welche dann die Grundlage für eine primitive Rekursion bildet: h 2 (x 1, x 2, x 3 ) = ADD(U1 3 (x 1, x 1, x 3 ), U3 3 (x 1, x 2, x 3 )) = x 1 + x 3 MUL(x, 0) = Φ Z (x) MUL(x, y + 1) = h 2 (x, y, MUL(x, y)) 3.) Vorgänger-Funktion Φ P 4.) positive Substraktion ( ) Φ P (0) = 0 = Φ Z Φ P (y + 1) = U1 2 (y, Φ P (y)) SUB(x, 0) = U 1 1 (x) SUB(x, y + 1) = Φ P (U 3 3 (x, y, SUB(x, y))

11 R. Reischuk, ITCS 11 5.) Absolutbetrag x y = ADD(SUB(x, y), SUB(y, x)) = (x y) + (y x) 6.) Signum Funktion sign(x) = x Φ P (x) 7.) Identität ɛ(x, y) = sign( x y ) Ungleichheit ɛ(x, y) = sign( x y ) 8.) Summe F (x 1,..., x n, y) := z y f(x 1,..., x n, z) F (x 1,..., x n, y + 1) = f(x 1,..., x n, y + 1) + F (x 1,..., x n, y) Analog lassen sich Produkte darstellen. 9.) beschränkte Minimalisierung = ADD ( f(u1 n+2 (x 1,..., y, F (x 1,..., y)),..., Un n+2 (x 1,..., y, F (x 1,..., y))), Φ S (Un+1 n+2 (x 1,..., y, F (x 1,..., y)))), Un+2 n+2 (x 1,..., y, F (x 1,..., y)) ) { min{i y g(x1,..., x f(x 1,..., x n, y) = n, i) = 0} falls i existiert, y + 1 sonst. = i [ɛ(0, g(x 1,..., x n, i))] ɛ(0, g(x 1,..., x n, j)) i y j<i + (y + 1) ɛ(0, g(x 1,..., x n, j)) j y Definition 1.11 Ein Prädikat P über IN heißt primitiv-rekursiv, wenn seine charakteristische Funktion χ P primitiv-rekursiv ist. Beispiel für ein solches Prädikat ist die Primzahleigenschaft. Definition 1.12 Das µ Schema, angewandt auf eine (n + 1) -stellige partielle Funktion h, erzeugt eine n -stellige partielle Funktion f auf folgende Weise: für X IN n und z IN sei h(x, y) ist definiert für alle y z, f(x) = z h(x, y) > 0 für alle y < z und h(x, z) = 0. Der Funktionswert von f an der Stelle X ist somit das kleinste y, so daß (X, y) eine Nullstelle von h ist; dafür wird die folgende Notation mit Hilfe des µ -Operators benutzt:. f(x) = (µy) [h(x, y) = 0].

12 12 AKF, UzL WS2004/05 Definition 1.13 Die Menge R der partiell-rekursiven Funktionen besteht aus den Funktionen, die sich aus der Menge der Ausgangsfunktionen Φ S, Φ P, Φ Z, Uj n durch endlich viele Anwendungen von Kompositions-, Rekursions- und µ -Schema bilden lassen. Die totalen partiell-rekursiven Funktionen heißen rekursive Funktionen und werden mit R 0 bezeichnet. Durch das µ Schema können auch nichttotale Funktionen erzeugt werden, z.b. die nirgends definierte Funktion, wenn man für h eine Funktion ohne Nullstellen wählt etwa h(x, y) = Φ S (y), so daß aus der Definition unmittelbar folgt: Lemma 1.2 PR R 0 R. Ob die Menge R auch totale Funktionen enthält, die nicht primitiv-rekursiv sind, werden wir noch untersuchen. Auf Grund der Definition von R darf der µ Operator beliebig endlich oft angewandt werden, um neue partiell-rekursive Funktionen zu erzeugen. Man kann jedoch zeigen, daß eine einmalige Anwendung bereits hinreichend ist. Genauer, kann man ganz R mit Hilfe zweier primitiv-rekursiver Funktionen und einem µ Operator erzeugen. Den Beweis können wir an dieser Stelle mit unseren bislang erarbeiteten technischen Hilfsmitteln noch nicht ausführen, wir werden ihn später führen. Theorem 1.3 (Kleensche Normalform) Für jedes n gibt es 2 primitiv-rekursive (n + 2) -stellige Funktionen Ψ n, Υ n, so daß man zu jeder n -stelligen partiell-rekursiven Funktion f eine Zahl e, einen Programm-Index von f, finden kann mit der Eigenschaft f(x) = Ψ n( e, X, (µy) [Υ n (e, X, y) = 0] ). 1.5 Vergleich von Programm- und Rekursionsschemata Theorem 1.4 Die Menge LOOP der LOOP-berechenbaren Funktionen und die Menge PR der primitiv-rekursiven Funktionen sind identisch. Beweis: Per Induktion über den Aufbau der Programme bzw. der Rekursionsschemata: Bei den primitiv-rekursiven Funktionen sei PR 0 die Menge der Ausgangsfunktionen, und für k = 0, 1,... sei PR k+1 die Menge der Funktionen, die sich aus denen in PR k durch einmalige Anwendung des Kompositions- oder Rekursionsschemas bilden lassen. Es gilt: PR 0 PR 1 PR 2... PR. Für LOOP-Programme Π definieren wir ein Maß, die Länge l(π), folgendermaßen:

13 R. Reischuk, ITCS 13 l(π) := 1, falls Π eine Wertzuweisung ist; l(π 1 ; Π 2 ) := l(π 1 ) + l(π 2 ) ; l( loop x do Π od) := l(π) + 1. l(π) entspricht in etwa der Anzahl der Programmzeilen, wenn man LOOP-Programme in geeigneter Weise notiert. 1.) Primitiv-rekursiv = LOOP-berechenbar: Durch Induktion über k zeigen wir, daß es zu jeder Funktion f aus PR k Programm gibt, das f berechnet: ein LOOP- Induktionsanfang für k = 0 : Man sieht leicht, daß die Ausgangsfunktionen LOOPberechenbar sind. Induktionsschritt: Die Behauptung gelte für PR k. i) Falls eine Funktion f PR k+1 mit Hilfe des Kompositionsschemas erzeugt worden ist, etwa f(x) = g(f 1 (X),..., f m (X)) mit g, f 1,..., f m PR k, so stellt das folgende ein LOOP-Programm zur Berechnung von f dar. Dabei bezeichne < z i := f i (X) > ein LOOP-Programm Π i zur Berechnung von f i, welches am Schluß der Variablen z i das Ergebnis zuweist. Die z i sind dabei neue Variable, die ansonsten in den Π j nicht vorkommen. Außerdem ist darauf zu achten, daß die Werte der Variablen in X nicht in den Π j verändert werden, gegebenenfalls durch Verwendung zusätzlicher Hilfsvariablen. < z 1 := f 1 (X) >. < z m := f m (X) >; < x 1 := g(z 1,..., z m ) >. ii) Entsteht f durch Anwendung des Rekursionsschemas f(x, 0) = g(x) f(x, y + 1) = h(x, y, f(x, y)) aus Funktionen g, h PR k, so leistet das folgende Programm das Gewünschte, wobei u, z neue Variable sind, die ansonsten in den Programmen für g und h nicht verändert werden: u := 0; < z := g(x) >; loop y do < z := h(x, u, z) > ; u := Φ S (u) od ; x 1 := z

14 14 AKF, UzL WS2004/05 Man sieht die Korrektheit leicht mit Hilfe der folgenden Invarianten: für alle i 0 gilt: in der der LOOP-Schleife hat die Variable z nach i -maligem Durchlauf des Rumpfes den Wert f(x, i). 2.) LOOP-berechenbar = primitiv-rekursiv: Durch Induktion über k soll nun gezeigt werden, daß alle durch Programme Π mit Länge l(π) k berechneten Funktionen primitiv-rekursiv sind. Sei Π LOOP n und Φ Π 1 (X) die von Π berechnete n -stellige Funktion. Wir zeigen die stärkere Aussage, daß für jedes j [1..n] die Funktion Φ Π j (X) primitiv-rekursiv ist. Induktionsanfang für k = 1 : Offensichtlich werden durch Wertzuweisungen nur primitivrekursive Funktionen berechnet. Induktionsschritt: Die Behauptung gelte für k. Jedes Programm Π der Länge k + 1 wird auf eine der folgenden beiden Arten generiert: i) Π = Π 1 ; Π 2 mit l(π i ) k : Die Funktionen Φ Π i j sind nach Annahme primitiv-rekursiv. Die Funktionen Φ Π j lassen sich dann in einfacher Weise durch das folgende Kompositionsschema darstellen: Φ Π j (X) = Φ Π 2 j (Φ Π 1 1 (X),..., Φ Π 1 n (X)). ii) Π = loop y do Π od mit l(π ) k : Wir können annehmen, daß die LOOP-Variable y nicht im Schleifenrumpf Π vorkommt, ohne dadurch die Berechenbarkeit durch LOOP-Programme einzuschränken. Nach Voraussetzung sind die Funktionen Φ Π j primitiv-rekursiv. Die Funktionen Φ Π j für die Variablen X = x 1,..., x n in Π lassen sich dann durch das folgende simultane Rekursionsschema erzeugen: Φ Π j (X, 0) = U n j (X), Φ Π j (X, y + 1) = Φ Π j (Φ Π 1 (X, y),..., Φ Π n (X, y)), wobei wir aus Gründen der Lesbarkeit in der zweiten Zeile auf die Spezifikation der Projektionsfunktionen verzichten. Wie bereits bemerkt, läßt sich dies Schema durch eine geeignete Kodierung auf den Fall der primitiven Rekursion zurückführen. Theorem 1.5 Die Menge WHILE der WHILE-berechenbaren Funktionen und die Menge R der partiell-rekursiven Funktionen stimmen überein. Beweis: Ähnlich wie oben mit den folgenden Ergänzungen:

15 R. Reischuk, ITCS 15 1.) Das µ Schema liefert wieder eine WHILE-berechenbare Funktion: Sei h partiell-rekursiv und WHILE-berechenbar und die Funktion f definiert durch Dann berechnet das Programm y := 0; < z := h(x, y) >; f(x) = (µy) [h(x, y) = 0]. while z 0 do y := Φ S (y) ; < z := h(x, y) > od x 1 := y die Funktion f(x), wobei y, z neue Variablen sind. Das Programm terminiert genau dann, wenn f(x) definiert ist. Somit ist f WHILE-berechenbar. 2.) Durch Anwendung der WHILE-Konstruktion werden wieder partiell-rekursive Funktionen berechnet: Die im Programm Π WHILE n berechneten Funktionen Φ Π j (X) für die Variablen x j für j [1..n] seien partiell-rekursiv. Betrachte nun ein Programm Π = while x i 0 do Π od. Analog wie oben definiert das simultane Rekursionsschema ψ j (X, 0) = U n j (X), ψ j (X, y + 1) = Φ Π j (ψ 1 (X, y),..., ψ n (X, y)) partiell-rekursive Funktionen ψ j, wobei ψ j (X, y) der Wert der Variablen x j ist, falls der Rumpf Π ausgehend von der Anfangsbelegung X genau y -mal durchlaufen wird. Die Funktion ζ i, definiert durch ζ i (X) = (µy) [ψ i (X, y) = 0], gibt die minimale Anzahl Iterationen von Π an, bis x i den Wert 0 erhält, falls dies innerhalb von endlich vielen Schritten passiert. Also besitzen die von Π berechneten Funktionen Φ Π j (X) mit Hilfe der partiell-rekursiven Funktionen ψ j und ζ i die partiell-rekursive Darstellung Φ Π j (X) = ψ j (X, ζ i (X)). Wir wollen jetzt zeigen, daß es totale Funktionen in R gibt, die nicht primitiv-rekursiv sind, d.h. PR R 0, oder in der Sprache der Programm-Berechenbarkeit ausgedrückt: Theorem 1.6 Es gibt totale WHILE-berechenbare Funktionen, die nicht LOOP-berechenbar sind.

16 16 AKF, UzL WS2004/05 Beweis: Es sei f(n) die größte Zahl, die von einem LOOP-Programm der Länge höchstens n auf Eingabe X = 0 als Wert von x 1 ausgegeben wird. Diese Funktion ist total und wächst streng monoton, wie man sich leicht überlegt. Den Nachweis, daß f WHILEberechenbar ist, werden wir später noch führen. Wir beweisen indirekt durch Widerspruch, daß f nicht LOOP-berechenbar ist. Andernfalls wäre auch die Funktion g(n) := f(2n) LOOP-berechenbar, etwa durch ein Programm Π 0 der Länge k. Betrachte das Programm Π h = x 1 := Φ S (x 1 ) ;... ; x 1 := Φ S (x 1 ) ; Π 0 }{{} (h+1) mal der Länge h + k + 1, das bei Eingabe X = 0 den Wert g(h + 1) = f(2h + 2) berechnet. Wählt man h = k + 1, so ist Π h ein LOOP-Programm der Länge höchstens 2h, das die Zahl f(2h + 2) > f(2h) berechnet. Dies ist jedoch nach Definition von f nicht möglich; also muß unsere Annahme, daß f LOOP-berechenbar ist, falsch sein. Ein konkretes Beispiel einer rekursiven Funktion, die nicht durch das primitive Rekursionsschema erzeugt werden kann, ist die Ackermann-Funktion: A(0, y) := y + 1, A(x + 1, 0) := A(x, 1), A(x + 1, y + 1) := A(x, A(x + 1, y)). Diese Funktion wird durch eine geschachtelte Rekursion definiert, die sich zwar mit Hilfe des µ -Operators auflösen läßt, nicht aber in das primitive Rekursionsschema transformiert werden kann. Die Ackermann-Funktion wächst extrem schnell, schneller als jede primitivrekursive Funktion. Sind nun alle Funktionen auf den natürlichen Zahlen WHILE-berechenbar? Es gibt unendlich viele verschiedene Programme, die man, wie wir später noch sehen werden, aufzählen kann. Daher ist die Mächtigkeit der Menge der WHILE-berechenbaren Funktionen abzählbar. Andererseits gibt es überabzählbar viele Funktionen von IN nach IN. Somit ergibt sich die Schlußfolgerung: Theorem 1.7 Es gibt totale Funktionen, die nicht WHILE-berechenbar sind, d.h. die Menge R der partiell-rekursiven Funktionen enthält nicht alle mathematischen Funktionen.

Syntax der Prädikatenlogik: Variablen, Terme. Formeln. Freie und gebundene Variablen, Aussagen. Aufgabe

Syntax der Prädikatenlogik: Variablen, Terme. Formeln. Freie und gebundene Variablen, Aussagen. Aufgabe Syntax der Prädikatenlogik: Variablen, Terme Formeln Eine Variable hat die Form x i mit i = 1, 2, 3.... Ein Prädikatensymbol hat die Form Pi k und ein Funktionssymbol hat die Form fi k mit i = 1, 2, 3...

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

Mehr

Mächtigkeit von WHILE-Programmen

Mächtigkeit von WHILE-Programmen Mächtigkeit von WHILE-Programmen und rekursive Funktionen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 16. November 2010 Berthold Vöcking, Informatik 1 () Vorlesung

Mehr

4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik

4.1 Motivation. Theorie der Informatik. Theorie der Informatik. 4.1 Motivation. 4.2 Syntax der Prädikatenlogik. 4.3 Semantik der Prädikatenlogik Theorie der Informatik 3. März 2014 4. Prädikatenlogik I Theorie der Informatik 4. Prädikatenlogik I 4.1 Motivation Malte Helmert Gabriele Röger 4.2 Syntax der Prädikatenlogik Universität Basel 3. März

Mehr

ALP I Primitiv-Rekursive Funktionen

ALP I Primitiv-Rekursive Funktionen ALP I Primitiv-Rekursive Funktionen WS 2012/2013 Äquivalenz vieler Berechnungsmodelle Effektiv Berechenbare Funktionen Mathematische Modelle Maschinelle Modelle λ-kalkül Kombinatorische Logik Allgemein

Mehr

Die Prädikatenlogik erster Stufe: Syntax und Semantik

Die Prädikatenlogik erster Stufe: Syntax und Semantik Die Prädikatenlogik erster Stufe: Syntax und Semantik 1 Mathematische Strukturen und deren Typen Definition 1.1 Eine Struktur A ist ein 4-Tupel A = (A; (R A i i I); (f A j j J); (c A k k K)) wobei I, J,

Mehr

Relativierte Berechnungen und die arithmetische Hierachie

Relativierte Berechnungen und die arithmetische Hierachie Berechenbarkeit und Komplexität Wintersemester 2010/2011 1 Relativierte Berechnungen und die arithmetische Hierachie Relativierte Berechnungen und Orakel Definition 1 Eine Menge A ist entscheidbar mit

Mehr

Alphabet der Prädikatenlogik

Alphabet der Prädikatenlogik Relationen und Alphabet der Das Alphabet der besteht aus Individuenvariablen Dafür verwenden wir kleine Buchstaben vom Ende des deutschen Alphabets, auch indiziert, z. B. x, y, z, x 1, y 2,.... Individuenkonstanten

Mehr

Normalform. 2.1 Äquivalenz und Folgerung. 2.2 Die pränexe Normalform

Normalform. 2.1 Äquivalenz und Folgerung. 2.2 Die pränexe Normalform 2 Normalformen 2.1 Äquivalenz und Folgerung Definition 2.1 Äquivalenz, Folgerung). Seien ϕ, ψ FO[σ]. a) ϕ und ψ heißen äquivalent kurz: ϕ ψ, bzw. ϕ = ψ), wenn für alle zu ϕ und ψ äquivalent passenden σ-interpretationen

Mehr

Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik

Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik Formale Grundlagen der Informatik 1 Kapitel 19 & Frank Heitmann heitmann@informatik.uni-hamburg.de 23. Juni 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/25 Motivation Die ist eine Erweiterung

Mehr

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 29. November 2007 Turing-mächtige

Mehr

Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen Mächtigkeit von LOOP-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Die Programmiersprache LOOP Syntax Elemente eines LOOP-Programms Variablen

Mehr

Terme. Dann ist auch f(t 1. Terme. Dann ist P (t 1

Terme. Dann ist auch f(t 1. Terme. Dann ist P (t 1 Prädikatenlogik 1. Syntax und Semantik Man kann die Prädikatenlogik unter einem syntaktischen und einem semantischen Gesichtspunkt sehen. Bei der Behandlung syntaktischer Aspekte macht man sich Gedanken

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 17. Syntax & Semantik. Motivation - Beispiel. Motivation - Beispiel

Motivation. Formale Grundlagen der Informatik 1 Kapitel 17. Syntax & Semantik. Motivation - Beispiel. Motivation - Beispiel Motivation Formale Grundlagen der Informatik 1 Kapitel 17 & Frank Heitmann heitmann@informatik.uni-hamburg.de 6. & 7. Juni 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/43 Die ist eine Erweiterung

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik

Mehr

Vorlesung Diskrete Strukturen Abbildungen

Vorlesung Diskrete Strukturen Abbildungen Vorlesung Diskrete Strukturen Abbildungen Bernhard Ganter WS 2009/10 Hashfunktionen Wenn eine Datenbank Millionen von Dokumenten enthält und immer neue dazu kommen, stellt sich folgendes Problem: Bei neuen

Mehr

LOOP-Programme: Syntaktische Komponenten

LOOP-Programme: Syntaktische Komponenten LOOP-Programme: Syntaktische Komponenten LOOP-Programme bestehen aus folgenden Zeichen (syntaktischen Komponenten): Variablen: x 0 x 1 x 2... Konstanten: 0 1 2... Operationssymbole: + Trennsymbole: ; :=

Mehr

Unentscheidbarkeitssätze der Logik

Unentscheidbarkeitssätze der Logik Unentscheidbarkeitssätze der Logik Elmar Eder () Unentscheidbarkeitssätze der Logik 1 / 30 Die Zahlentheorie ist nicht formalisierbar Satz (Kurt Gödel) Zu jedem korrekten formalen System der Zahlentheorie

Mehr

Formale Grundlagen der Informatik 1 Kapitel 17. Syntax & Semantik

Formale Grundlagen der Informatik 1 Kapitel 17. Syntax & Semantik Formale Grundlagen der Informatik 1 Kapitel 17 & Frank Heitmann heitmann@informatik.uni-hamburg.de 6. & 7. Juni 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/43 Motivation Die ist eine Erweiterung

Mehr

Primitiv rekursive Funktionen

Primitiv rekursive Funktionen Primitiv rekursive Funktionen Primitiv rekursive Funktionen Historisch: Die Einführung der primitiven Rekursivität war ein erster (und erfolgloser) Versuch, den Begriff der Berechenbarkeit (oft synonym

Mehr

Typen von Programmiersprachen

Typen von Programmiersprachen Typen von Programmiersprachen Berechenbarkeitstheorie: Formalisierung des intuitiven Berechenbarkeitsbegriffs man kann vier Typen von Programmiersprachen zum Berechnen von Zahlenfunktionen unterscheiden:

Mehr

Primitiv rekursive und µ-rekursive Funktionen

Primitiv rekursive und µ-rekursive Funktionen Primitiv rekursive und µ-rekursive Funktionen Slide 1 Primitiv rekursive und µ-rekursive Funktionen Hans U. Simon (RUB) Email: simon@lmi.rub.de Homepage: http://www.ruhr-uni-bochum.de/lmi Primitiv rekursive

Mehr

Primitiv rekursive und µ-rekursive Funktionen

Primitiv rekursive und µ-rekursive Funktionen Primitiv rekursive und µ-rekursive Funktionen Loop-, While- und Goto-Programme sind vereinfachte imperative Programme und stehen für imperative Programmiersprachen, bei denen Programme als Folgen von Befehlen

Mehr

1.3 Primitiv rekursive und µ-rekursive Funktionen

1.3 Primitiv rekursive und µ-rekursive Funktionen Definition 1.11 Die Klasse der primitiv rekursiven Funktionen (a) Basisfunktionen: (1.) die konstanten Funktionen c (c N) (2.) die Projektionen Π m i (x 1,...,x m ) = x i (1 i m) (3.) die Nachfolgerfunktion

Mehr

GTI. Hannes Diener. 18. Juni. ENC B-0123,

GTI. Hannes Diener. 18. Juni. ENC B-0123, GTI Hannes Diener ENC B-0123, diener@math.uni-siegen.de 18. Juni 1 / 32 Als Literatur zu diesem Thema empfiehlt sich das Buch Theoretische Informatik kurzgefasst von Uwe Schöning (mittlerweile in der 5.

Mehr

Grundlagen der Programmierung (Vorlesung 7)

Grundlagen der Programmierung (Vorlesung 7) Grundlagen der Programmierung (Vorlesung 7) Ralf Möller, FH-Wedel Vorige Vorlesung Boole'sche Logik, Resolution Inhalt dieser Vorlesung Prädikatenlogik erster Stufe Lernziele Syntax, Semantik Entscheidungsprobleme

Mehr

Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen

Rekursive und primitiv rekursive Funktionen. Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen Rekursive und primitiv rekursive Funktionen Ein maschinenunabhängiges formales Berechnungsmodell auf den natürlichen Zahlen IDEE: Definiere eine Klasse von (partiell) berechenbaren Funktionen über N induktiv

Mehr

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 9. Prädikatenlogik Syntax und Semantik der Prädikatenlogik Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Syntax der

Mehr

Unvollständigkeit der Arithmetik

Unvollständigkeit der Arithmetik Unvollständigkeit der Arithmetik Slide 1 Unvollständigkeit der Arithmetik Hans U. Simon (RUB) Email: simon@lmi.rub.de Homepage: http://www.ruhr-uni-bochum.de/lmi Unvollständigkeit der Arithmetik Slide

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 11 15. Juli 2010 Einführung in die Theoretische

Mehr

Kapitel 1.1. Aussagenlogik: Syntax. Mathematische Logik (WS 2011/12) Kapitel 1.1: Aussagenlogik: Syntax 1/ 1

Kapitel 1.1. Aussagenlogik: Syntax. Mathematische Logik (WS 2011/12) Kapitel 1.1: Aussagenlogik: Syntax 1/ 1 Kapitel 1.1 Aussagenlogik: Syntax Mathematische Logik (WS 2011/12) Kapitel 1.1: Aussagenlogik: Syntax 1/ 1 Übersicht 1.1.1 Die Sprache der Aussagenlogik 1.1.2 Explizite vs. implizite Definitionen 1.1.3

Mehr

Kapitel 1. Grundlagen Mengen

Kapitel 1. Grundlagen Mengen Kapitel 1. Grundlagen 1.1. Mengen Georg Cantor 1895 Eine Menge ist die Zusammenfassung bestimmter, wohlunterschiedener Objekte unserer Anschauung oder unseres Denkens, wobei von jedem dieser Objekte eindeutig

Mehr

Berechenbarkeit und Komplexität Vorlesung 11

Berechenbarkeit und Komplexität Vorlesung 11 Berechenbarkeit und Komplexität Vorlesung 11 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 7. Dezember 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 7.

Mehr

Klausur zur Vorlesung Mathematische Logik

Klausur zur Vorlesung Mathematische Logik Universität Heidelberg 13. Februar 2014 Institut für Informatik Prof. Dr. Klaus Ambos-Spies Dipl.-Math. Thorsten Kräling Klausur zur Vorlesung Mathematische Logik Musterlösung Aufgabe 1 (Aussagenlogik

Mehr

Unterlagen zur Veranstaltung Einführung in die INFORMATIK IV Universität zu Lübeck SS 2004

Unterlagen zur Veranstaltung Einführung in die INFORMATIK IV Universität zu Lübeck SS 2004 Unterlagen zur Veranstaltung Einführung in die INFORMATIK IV Universität zu Lübeck SS 2004 Prof. Dr. R. Reischuk Institut für Theoretische Informatik April 2004 2 Informatik IV, UzL SS2004 Empfohlene Lehrbücher

Mehr

Vorlesung Diskrete Strukturen Abbildungen

Vorlesung Diskrete Strukturen Abbildungen Vorlesung Diskrete Strukturen Abbildungen Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2009/10 1 Bernhard Ganter, TU Dresden Modul Einführung in die

Mehr

Logik I. Symbole, Terme, Formeln

Logik I. Symbole, Terme, Formeln Logik I Symbole, Terme, Formeln Wie jede geschriebene Sprache basiert die Prädikatenlogik erster Stufe auf einem Alphabet, welches aus den folgenden Symbolen besteht: (a) Variabeln wie zum Beispiel v 0,v

Mehr

UE GRUNDBEGRIFFE DER MATHEMATISCHEN LOGIK SS 2016

UE GRUNDBEGRIFFE DER MATHEMATISCHEN LOGIK SS 2016 SS 206 VERA FISCHER Die Gesamtnote ergibt sich je zur Hälfte aus der Teilnote Kreuzerlliste und der Teilnote Zwischentest, gerundet auf freundlichen Weise. Für eine positive Benotung müssen beide Teilnoten

Mehr

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP Programme Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität 13. November 2006 Turing-mächtige

Mehr

Nichtklassische Logiken

Nichtklassische Logiken Nichtklassische Logiken Peter H. Schmitt pschmitt@ira.uka.de UNIVERSITÄT KARLSRUHE Sommersemester 2004 P. H. Schmitt: Nichtklassische Logiken p.1 Inhalt Wiederholung P. H. Schmitt: Nichtklassische Logiken

Mehr

Theoretische Informatik II

Theoretische Informatik II Theoretische Informatik II Einheit 4.2 Rekursive Funktionen 1. Primitiv- und µ-rekursive Funktionen 2. Analyse und Programmierung 3. Äquivalenz zu Turingmaschinen Berechenbarkeit auf N ohne Maschinenmodelle

Mehr

Aufgabe - Fortsetzung

Aufgabe - Fortsetzung Aufgabe - Fortsetzung NF: Nicht-Formel F: Formel A: Aussage x :( y : Q(x, y) R(x, y)) z :(Q(z, x) R(y, z)) y :(R(x, y) Q(x, z)) x :( P(x) P(f (a))) P(x) x : P(x) x y :((P(y) Q(x, y)) P(x)) x x : Q(x, x)

Mehr

Syntax von LOOP-Programmen

Syntax von LOOP-Programmen LOOP-Berechenbarkeit Syntax von LOOP-Programmen Definition LOOP-Programme bestehen aus: Variablen: x 0, x 1, x 2, x 3,... Konstanten: 0, 1, 2, 3,... Trennsymbolen:; und := Operationen: + und Befehlen:

Mehr

ALP I Rekursive Funktionen

ALP I Rekursive Funktionen ALP I Rekursive Funktionen SS 2011 Äquivalenz vieler Berechnungsmodelle Effektiv Berechenbare Funktionen Mathematische Modelle Maschinelle Modelle Text λ-kalkül Kombinatorische Logik Allgemein rekursive

Mehr

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 9. Prädikatenlogik Syntax und Semantik der Prädikatenlogik Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Syntax der

Mehr

Universität Heidelberg 12. April 2018 Institut für Informatik Klaus Ambos-Spies Nadine Losert. 2. Klausur zur Vorlesung Mathematische Logik

Universität Heidelberg 12. April 2018 Institut für Informatik Klaus Ambos-Spies Nadine Losert. 2. Klausur zur Vorlesung Mathematische Logik Universität Heidelberg 12. April 2018 Institut für Informatik Klaus Ambos-Spies Nadine Losert 2. Klausur zur Vorlesung Mathematische Logik Es können maximal 48 Punkte erworben werden. Die Klausur ist bestanden,

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2011/12 Die Registermaschine (random access machine, RAM) 0 I 0 1 I 1 2 I 2 m I m Programm

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 8 18. Juli 2011 Einführung in die Theoretische Informatik

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik. Motivation - Beispiel. Motivation - Beispiel

Motivation. Formale Grundlagen der Informatik 1 Kapitel 19. Syntax & Semantik. Motivation - Beispiel. Motivation - Beispiel Motivation Formale Grundlagen der Informatik 1 Kapitel 19 & Die ist eine Erweiterung der Aussagenlogik. Sie hat eine größere Ausdrucksstärke und erlaub eine feinere Differenzierung. Ferner sind Beziehungen/Relationen

Mehr

Funktionale Programmierung ALP I. µ-rekursive Funktionen WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Funktionale Programmierung ALP I. µ-rekursive Funktionen WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda ALP I µ-rekursive Funktionen WS 2012/2013 Primitiv-rekursive Funktionen Jede primitiv-rekursive Funktion ist Loop-berechenbar. Das bedeutet, dass jede PR-Funktion in der Loop-Programmiersprache formuliert

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 15. primitive Rekursion und µ-rekursion Malte Helmert Gabriele Röger Universität Basel 22. April 2015 Überblick: Vorlesung Vorlesungsteile I. Logik II. Automatentheorie und formale

Mehr

Berechenbarkeits- und Komplexitätstheorie

Berechenbarkeits- und Komplexitätstheorie Berechenbarkeits- und Komplexitätstheorie Verschiedene Berechenbarkeitsbegriffe, Entscheidbarkeit von Sprachen, Wachstumsordnungen und Komplexitätsklassen Inhaltsübersicht und Literatur Verschiedene Berechenbarkeitsbegriffe:

Mehr

1 Aussagenlogik. 1.1 Aussagen. 15 ist eine Primzahl. 3 < 8 x < 15 (hängt von x ab, keine Aussage) Aussage = Behauptung Beispiele: Es regnet.

1 Aussagenlogik. 1.1 Aussagen. 15 ist eine Primzahl. 3 < 8 x < 15 (hängt von x ab, keine Aussage) Aussage = Behauptung Beispiele: Es regnet. Grundlagen der Mathematik für Informatiker 1 1 Aussagenlogik 1.1 Aussagen Aussage = Behauptung Beispiele: Es regnet. Die Straße ist naß. 15 ist eine Primzahl. 3 < 8 x < 15 (hängt von x ab, keine Aussage)

Mehr

Theorie der Informatik Einleitung. Theorie der Informatik Basisfunktionen und Einsetzung Primitive Rekursion. 14.

Theorie der Informatik Einleitung. Theorie der Informatik Basisfunktionen und Einsetzung Primitive Rekursion. 14. Theorie der Informatik 16. April 2014 14. primitive Rekursion und µ-rekursion Theorie der Informatik 14. primitive Rekursion und µ-rekursion 14.1 Einleitung 14.2 Basisfunktionen und Einsetzung Malte Helmert

Mehr

8 Der Kompaktheitssatz und der Satz von Löwenheim und Skolem

8 Der Kompaktheitssatz und der Satz von Löwenheim und Skolem 8 Der Kompaktheitssatz und der Satz von Löwenheim und Skolem 8.1 Der Kompaktheitssatz Kompaktheitssatz Endlichkeitssatz Der Kompaktheitssatz ist auch unter dem Namen Endlichkeitssatz bekannt. Unter Verwendung

Mehr

Seminar Mathematische Logik L-Strukturen und Syntax der Prädikatenlogik

Seminar Mathematische Logik L-Strukturen und Syntax der Prädikatenlogik Seminar Mathematische Logik L-Strukturen und Syntax der Prädikatenlogik Linda Raabe 7. März 2012 1 L-Strukturen Definition 1.1 (Struktur) Eine Struktur A ist eine nichtleere Trägermenge A zusammen mit

Mehr

Institut für Analysis WiSe 2018/2019 Prof. Dr. Dirk Hundertmark Dr. Markus Lange. Analysis 1. Aufgabenzettel 4

Institut für Analysis WiSe 2018/2019 Prof. Dr. Dirk Hundertmark Dr. Markus Lange. Analysis 1. Aufgabenzettel 4 Institut für Analysis WiSe 2018/2019 Prof. Dr. Dirk Hundertmark 08.11.2018 Dr. Markus Lange Analysis 1 Aufgabenzettel 4 Abgabe bis 14. November 2018, 19:00 Uhr Erinnerung: Die Anmeldung für den Übungsschein

Mehr

1 Syntax und Semantik der Logik erster Stufe

1 Syntax und Semantik der Logik erster Stufe 1 Syntax und Semantik der Logik erster Stufe Die Logik erster Stufe Prädikatenlogik) besitzt eine Syntax, die festlegt, welche Zeichenketten Formeln der Logik erster Stufe sind, und eine Semantik, die

Mehr

Jeder Aussage p kann ein Wahrheitswert W(p) {0, 1} zugeordnet werden. Beispiele: W(Es regnet.) =? (je nach Lage der Dinge) W(Die Straße ist naß.) =?

Jeder Aussage p kann ein Wahrheitswert W(p) {0, 1} zugeordnet werden. Beispiele: W(Es regnet.) =? (je nach Lage der Dinge) W(Die Straße ist naß.) =? Grundlagen der Mathematik für Informatiker 1 Grundlagen der Mathematik für Informatiker 2 1 Aussagenlogik 1.1 Aussagen Aussage = Behauptung Beispiele: Es regnet. Die Straße ist naß. 15 ist eine Primzahl.

Mehr

Kapitel 1. Grundlagen

Kapitel 1. Grundlagen Kapitel 1. Grundlagen 1.1. Mengen Georg Cantor 1895 Eine Menge ist die Zusammenfassung bestimmter, wohlunterschiedener Objekte unserer Anschauung oder unseres Denkens, wobei von jedem dieser Objekte eindeutig

Mehr

Injektiv, Surjektiv, Bijektiv

Injektiv, Surjektiv, Bijektiv Injektiv, Surjektiv, Bijektiv Aufgabe 1. Geben Sie einen ausführlichen Beweis für folgende Aussage: Wenn f A B surjektiv ist und R A A A eine reflexive Relation auf A ist, dann ist R B = {( f(x), f(y)

Mehr

Primitive Rekursion. Basisfunktionen: Konstante Funktion: const 3 3 (1,1, pr 1,3(g,h) (1,1)) Projektion: proj 3 (1,1, pr. Komposition: comp 3,2

Primitive Rekursion. Basisfunktionen: Konstante Funktion: const 3 3 (1,1, pr 1,3(g,h) (1,1)) Projektion: proj 3 (1,1, pr. Komposition: comp 3,2 Primitive Rekursion Basisfunktionen: Konstante Funktion: const Stelligkeit. Wert des Ergebnisses. Unabhängig von den Parametern. const (,, pr,(g,h) (,)) Stelligkeit. Projektion: proj Gibt die Komponente

Mehr

Anmerkungen zu Mengen und Abbildungen

Anmerkungen zu Mengen und Abbildungen Anmerkungen zu Mengen und Abbildungen Kartesisches Produkt von n Mengen und n-stellige Relationen Sind M 1, M,, M n nichtleere Mengen, so ist ihr kartesisches Produkt erklärt als Menge aller geordneter

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Prof. Meer, Dr. Gengler Aufgabenblatt 12 Besprechung in KW 03 / Abgabe in KW 04 Heften Sie unbedingt alle Blätter Ihrer Lösung zusammen und geben Sie oben auf dem ersten Blatt Ihren

Mehr

Berechenbarkeit und Komplexität Vorlesung 10

Berechenbarkeit und Komplexität Vorlesung 10 Berechenbarkeit und Komplexität Vorlesung 10 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 27. November 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 27.

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 18: Logik Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/35 Überblick Formeln in Prädikatenlogik erster Stufe Theorien und

Mehr

Einführung in die Berechenbarkeitstheorie

Einführung in die Berechenbarkeitstheorie Einführung in die Berechenbarkeitstheorie Timo Kötzing 4. November 2013 1 Einleitung Dieses Dokument bietet eine kurze Einführung in die Grundlagen der Berechenbarkeitstheorie (für eine Ausführliche Behandlung

Mehr

Mächtigkeit von WHILE-Programmen

Mächtigkeit von WHILE-Programmen Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 1 / 23 Turingmaschine (TM) M = (Q, Σ, Γ, B, q 0, q, δ) Unendliches Band... 0 c

Mehr

1 Aussagenlogik. 1.1 Aussagen. 15 ist eine Primzahl. 3 < 8 x < 15 (hängt von x ab, keine Aussage) Aussage = Behauptung Beispiele: Es regnet.

1 Aussagenlogik. 1.1 Aussagen. 15 ist eine Primzahl. 3 < 8 x < 15 (hängt von x ab, keine Aussage) Aussage = Behauptung Beispiele: Es regnet. Grundlagen der Mathematik für Informatiker 1 1 Aussagenlogik 1.1 Aussagen Aussage = Behauptung Beispiele: Es regnet. Die Straße ist naß. 15 ist eine Primzahl. 3 < 8 x < 15 (hängt von x ab, keine Aussage)

Mehr

Einführung in die Logik

Einführung in die Logik Einführung in die Logik Klaus Madlener und Roland Meyer 24. April 2013 Inhaltsverzeichnis 1 Aussagenlogik 1 1.1 Syntax................................. 1 1.2 Semantik............................... 3 1.3

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit Die Programmiersprache LOOP (i) Syntaktische Komponenten: Variable: x 0, x 1, x 2,... Konstanten: 0, 1, 2,... Trennsymbole: ; := Operationszeichen: + Schlüsselwörter: LOOP DO END (ii) LOOP-Programme: Wertzuweisungen:

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 13. LOOP-, WHILE- und GOTO-Berechenbarkeit Malte Helmert Gabriele Röger Universität Basel 9. April 2014 Überblick: Vorlesung Vorlesungsteile I. Logik II. Automatentheorie und formale

Mehr

Formale Logik. PD Dr. Markus Junker Abteilung für Mathematische Logik Universität Freiburg. Wintersemester 16/17 Sitzung vom 14.

Formale Logik. PD Dr. Markus Junker Abteilung für Mathematische Logik Universität Freiburg. Wintersemester 16/17 Sitzung vom 14. Formale Logik PD Dr. Markus Junker Abteilung für Mathematische Logik Universität Freiburg Wintersemester 16/17 Sitzung vom 14. Dezember 2016 Die formale Sprache der Prädikatenlogik: Zeichen Benutzt werden

Mehr

7. Prädikatenlogik. Aussagenlogik hat wünschenswerte Eigenschaften wie Korrektheit, Vollständigkeit, Entscheidbarkeit.

7. Prädikatenlogik. Aussagenlogik hat wünschenswerte Eigenschaften wie Korrektheit, Vollständigkeit, Entscheidbarkeit. 7. Prädikatenlogik Aussagenlogik hat wünschenswerte Eigenschaften wie Korrektheit, Vollständigkeit, Entscheidbarkeit. Aber: Aussagenlogik ist sehr beschränkt in der Ausdrucksmächtigkeit. Wissen kann nur

Mehr

Kapitel 1.5 und 1.6. Ein adäquater Kalkül der Aussagenlogik

Kapitel 1.5 und 1.6. Ein adäquater Kalkül der Aussagenlogik Kapitel 1.5 und 1.6 Ein adäquater Kalkül der Aussagenlogik Teil 1: Kalküle und Beweisbarkeit und die Korrektheit des Shoenfield-Kalküls Mathematische Logik (WS 2010/11) Kapitel 1.5 und 1.6: Kalküle 1 /

Mehr

THEORETISCHE INFORMATIK UND LOGIK

THEORETISCHE INFORMATIK UND LOGIK THEORETISCHE INFORMATIK UND LOGIK 13. Vorlesung: Prädikatenlogik: Syntax und Semantik Markus Krötzsch Lehrstuhl Wissensbasierte Systeme TU Dresden, 1. Juni 2018 Halbzeit: Zusammenfassung und Ausblick Markus

Mehr

Logik Vorlesung 10: Herbrand-Theorie

Logik Vorlesung 10: Herbrand-Theorie Logik Vorlesung 10: Herbrand-Theorie Andreas Maletti 9. Januar 2015 Überblick Inhalt 1 Motivation und mathematische Grundlagen 2 Aussagenlogik Syntax und Semantik Äquivalenz und Normalformen Weitere Eigenschaften

Mehr

Ausgewählte Kapitel Diskreter Mathematik mit Anwendungen

Ausgewählte Kapitel Diskreter Mathematik mit Anwendungen Wahlpflichtfach Bachelor Informatik 4. Semester Ausgewählte Kapitel Diskreter Mathematik mit Anwendungen Kurt-Ulrich Witt Sommersemester 2011 Kurt-Ulrich Witt Diskrete Mathematik Lektion 4 1/33 Inhaltsverzeichnis

Mehr

Vorsemesterkurs Informatik

Vorsemesterkurs Informatik Vorsemesterkurs Informatik Ronja Düffel WS2018/19 01. Oktober 2018 Theoretische Informatik Wieso, weshalb, warum??!? 1 Modellieren und Formalisieren von Problemen und Lösungen 2 Verifikation (Beweis der

Mehr

Programmieren für Fortgeschrittene

Programmieren für Fortgeschrittene Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme Wintersemester 2011/12 Programmieren für Fortgeschrittene Rekursive Spezifikationen Die folgende

Mehr

Vorsemesterkurs Informatik

Vorsemesterkurs Informatik Vorsemesterkurs Informatik Vorsemesterkurs Informatik Mario Holldack WS2015/16 30. September 2015 Vorsemesterkurs Informatik 1 Einleitung 2 Aussagenlogik 3 Mengen Vorsemesterkurs Informatik > Einleitung

Mehr

Einführung in die mathematische Logik

Einführung in die mathematische Logik Prof. Dr. H. Brenner Osnabrück SS 2014 Einführung in die mathematische Logik Vorlesung 7 Sprachen erster Sufe Die in der letzten Vorlesung erwähnten Konstruktionsmöglichkeiten für Aussagen sind im Wesentlichen

Mehr

Notengebung. Teilnote Kreuzerlliste: 60% 69% 4; 70% 79% 3; 80% 89% 2; 90% 100% 1. Falls Sie weitere Fragen haben, bitte melden Sie sich bei mir.

Notengebung. Teilnote Kreuzerlliste: 60% 69% 4; 70% 79% 3; 80% 89% 2; 90% 100% 1. Falls Sie weitere Fragen haben, bitte melden Sie sich bei mir. Notengebung Die Gesamtnote für die Übung ergibt sich je zur Hälfte aus der Teilnote Kreuzerlliste und der Teilnote Zwischentest, gerundet auf freundliche Weise; für eine positive Benotung müssen beide

Mehr

Was bisher geschah. wahr 0 t 1 falsch 0 f 0 Konjunktion 2 min Disjunktion 2 max Negation 1 x 1 x Implikation 2 Äquivalenz 2 =

Was bisher geschah. wahr 0 t 1 falsch 0 f 0 Konjunktion 2 min Disjunktion 2 max Negation 1 x 1 x Implikation 2 Äquivalenz 2 = Was bisher geschah (Klassische) Aussagenlogik: Aussage Wahrheitswerte 0 (falsch) und 1 (wahr) Junktoren Syntax Semantik Stelligkeit Symbol Wahrheitswertfunktion wahr 0 t 1 falsch 0 f 0 Konjunktion 2 min

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Maximilian Haslbeck Fabian Mitterwallner Georg Moser David Obwaller cbr.uibk.ac.at Zusammenfassung der letzten LVA Definition Eine Registermaschine (RM) R ist

Mehr

Logik Vorlesung 10: Herbrand-Theorie

Logik Vorlesung 10: Herbrand-Theorie Logik Vorlesung 10: Herbrand-Theorie Andreas Maletti 9. Januar 2015 Überblick Inhalt 1 Motivation und mathematische Grundlagen 2 Aussagenlogik Syntax und Semantik Äquivalenz und Normalformen Weitere Eigenschaften

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Übung zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein

Mehr

Grundlagen der Logik

Grundlagen der Logik Grundlagen der Logik Denken Menschen logisch? Selektionsaufgabe nach Watson (1966): Gegeben sind vier Karten von denen jede auf der einen Seite mit einem Buchstaben, auf der anderen Seite mit einer Zahl

Mehr

Syntax. 1 Jedes A AS AL ist eine (atomare) Formel. 2 Ist F eine Formel, so ist auch F eine Formel. 3 Sind F und G Formeln, so sind auch

Syntax. 1 Jedes A AS AL ist eine (atomare) Formel. 2 Ist F eine Formel, so ist auch F eine Formel. 3 Sind F und G Formeln, so sind auch Formale der Informatik 1 Kapitel 15 Folgerbarkeit, Äquivalenzen und Normalformen Frank Heitmann heitmann@informatik.uni-hamburg.de 8. Juni 2015 Syntax Definition (Syntax der Aussagenlogik) Mit AS AL sei

Mehr

Logik und Künstliche Intelligenz

Logik und Künstliche Intelligenz Logik und Künstliche Intelligenz Kurze Zusammenfassung (Stand: 14. Januar 2010) Prof. Dr. V. Stahl Copyright 2007 by Volker Stahl. All rights reserved. V. Stahl Logik und Künstliche Intelligenz Zusammenfassung

Mehr

Logik erster Stufe FO

Logik erster Stufe FO Logik erster Stufe FO Sonderstellung als die Logik für die Grundlegung der Mathematik natürliche Semantik (Tarski) und große Ausdrucksstärke vollständige Beweiskalküle (Gödelscher Vollständigkeitssatz)

Mehr

Automaten, Formale Sprachen und Berechenbarkeit I Wichtige Begriffe

Automaten, Formale Sprachen und Berechenbarkeit I Wichtige Begriffe Automaten, Formale Sprachen und Berechenbarkeit I Wichtige Begriffe Eine partielle Funktion ist eine Relation f A B; für jedes x dom(f) gibt es ein y range(f) mit x f y; wir schreiben statt f A B und x

Mehr

Logik Vorlesung 7: Grundlagen Prädikatenlogik

Logik Vorlesung 7: Grundlagen Prädikatenlogik Logik Vorlesung 7: Grundlagen Prädikatenlogik Andreas Maletti 5. Dezember 2014 Überblick Inhalt 1 Motivation und mathematische Grundlagen 2 Aussagenlogik Syntax und Semantik Äquivalenz und Normalformen

Mehr

SS Juni Übungen zur Vorlesung Logik Blatt 8

SS Juni Übungen zur Vorlesung Logik Blatt 8 SS 2011 08. Juni 2011 Übungen zur Vorlesung Logik Blatt 8 Prof. Dr. Klaus Madlener Abgabe bis 23. Juni 2011 10:00 Uhr 1. Aufgabe: [Terme und Formeln, Übung] Betrachten Sie folgende Ausdrücke: a) 3 + 4

Mehr

WS 2015/16 Diskrete Strukturen Kapitel 2: Grundlagen (Prädikatenlogik)

WS 2015/16 Diskrete Strukturen Kapitel 2: Grundlagen (Prädikatenlogik) WS 2015/16 Diskrete Strukturen Kapitel 2: Grundlagen (Prädikatenlogik) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15

Mehr

Logische und funktionale Programmierung

Logische und funktionale Programmierung Logische und funktionale Programmierung Vorlesung 2: Prädikatenkalkül erster Stufe Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. Oktober 2016 1/38 DIE INTERPRETATION

Mehr