Prädikatenlogik - Micromodels of Software

Größe: px
Ab Seite anzeigen:

Download "Prädikatenlogik - Micromodels of Software"

Transkript

1 Prädikatenlogik - Micromodels of Software Philipp Koch Seminar Logik für Informatiker Universität Paderborn Revision: 30. Mai

2 Inhaltsverzeichnis 1 Motivation 3 2 Modelle Definition eines Modells Modelle von Software Grenzen der Modellüberprüfung Überprüfung von micromodels of software Modellprüfungen in Alloy Alloy Signaturen assertion checking consistency checking Einschränkung der micromodels Zusammenfassung 10 5 Literatur 11 2

3 1 Motivation Prädikatenlogik stellt Aussagen mit Hilfe von Prädikaten und Funktionen formal dar. Auch wenn Syntax und Semantik bekannt sind, stellt sich noch die Frage, wie dieses Konzept praktisch in der Informatik angewandt werden kann. Eine Möglichkeit ist es, mittels der Prädikatenlogik Aussagen über Software zu treffen und zu überprüfen. Ein Programm lässt sich formal als Automat mit Zuständen darstellen. Im folgenden möchte ich darlegen, wie solche Automaten als Modelle betrachtet und für prädikatenlogischen Formeln überprüft werden können. Danach stelle ich ein Konzept vor, um komplexere Softwaremodelle verifizieren zu können. Zum Verständnis dieser Arbeit ist eine Kenntnis von Grundlagen der Prädikatenlogik, insbesondere der Syntax nötig. 2 Modelle 2.1 Definition eines Modells Um prädikatenlogische Formeln überhaupt anwenden zu können, muss vorher definiert sein, welche Werte Variablen annehmen können. Erst so ergibt sich eine Bedeutung der Funktionen und Prädikate. Sei F eine Menge aus Funktionssymbolen und P eine Menge aus Prädikatssymbolen, jedes Symbol mit einer fest definierten Anzahl an Argumenten. Ein Modell für (F, P ) besteht nun aus: 1. Einer nicht-leeren Menge A, den konkreten Werten 2. Für jedes Funktionssymbol ohne Argumente f F ein konkretes Element f M aus A 3. Für fedes f F mit der Anzahl Argumenten n > 0 eine konkrete Funktion f M : A n A 4. Für jedes p P mit der Anzahl von Argumenten n > 0 eine Teilmenge P M A n Ein Modell besteht also aus einem Werteuniversum A, aus dem alle möglichen Variablenbelegungen stammen, aus konstanten Funktionen, die einen bestimmten Wert zurückliefern, aus der Definition, welche Werte die Funktionen zurückliefern, und aus den Mengen, für die ein Prädikat wahr wird. Für ein solches konkretes Modell kann nun für jede prädikatenlogische Formel eine eindeutige Aussage getroffen werden. 2.2 Modelle von Software Mit so definierten Modellen kann man leicht Automaten darstellen. Sei F := {i} und P := {R, S}, wobei i eine Konstate ist, R ein Prädikatensymbol mit zwei 3

4 Argumenten und S ein Prädikatensymbol mit einem Argument. Ein Modell besteht nun aus dem Wertebereich A, und konkreten Interpretationen von i, R und S. Für einen Automaten bedeutet dies: A ist die Menge aller Zustaände i M ist der Startzustand R M ist die Menge aller Zustandsübergänge S M ist die Menge aller akzeptierenden Zuständen Ein so definiertes Modell eines Automaten ist nun konkret, und prädikatenlogische Formeln können eindeutig bezüglich dieses Modells ausgewertet werden. Beispiel Sei A := {a, b, c}, i M := a, R M := {(a, a), (a, b), (b, c), (c, c)}, und S M := {b, c}. Dies ist ein vollständig definierter Automat mit Startzustand, Zustandsübergängen und akzeptierenden Zustände, und gleichzeitig ein Modell der Prädikatenlogik. Nun können Aussagen überprüft werden. Die Formel S(i) sagt aus, dass der Startzustand nicht gleichzeitig ein akzeptierender Zustand des Automaten ist. Für das gegebene Beispiel ist diese Aussage wahr, da a / S. a ist der Startzustand, während nur b und c akzeptierende zustände sind. Die Formel x y S(x) R(x, y) sagt aus, dass es einen Zustand gibt, der kein akzeptierender Zustand ist, und für diesen kein Zustandsübergang zu einem anderen Zustand existiert, also dass es einen Deadlock im Automaten gibt. Für das gegebene Beispiel diese Aussage falsch. Der einzige nicht akzeptierende Zustand des Automaten ist a. Von diesem aus gibt es gleich zwei Zustandsübergänge, (a, b) und (a, c). Daher ist der Automat frei von Deadlocks. 4

5 2.3 Grenzen der Modellüberprüfung Mit dem oben erklärten Prinzip der Überprüfung von Modellen ist es möglich, eine Aussage für jedes einzelne konkrete Modell zu verifizieren. Wenn man aber Überprüfen möchte, ob Software eine bestimmte Eigenschaft erfüllt, dann hat man aber nicht immer ein fertiges Programm, dass sich so testen lässt. Vielmehr ist es auch von Interesse, ob bei gegebenen Anforderungen, die beim Softwareentwurf gestellt werden, bestimmte Eigenschaften immer gelten. Die Anforderungen müssen dabei aber nicht unbedingt so genau definiert sein, dass sich ein konkretes Modell erstellen lässt. Hier scheint model checking nicht benutzbar zu sein, da ein Modell nicht nur einige gegebene Anforderungen definiert, sondern vollständig ist und keinen Spielraum mehr lässt. Folglich könnte das Prinzip der semantischen Folgerung sinnvoller einzusetzen sein. Hier ist die Schwierigkeit aber, dass nicht jedes Problem entscheidbar ist. Da wir aber nach einer Lösung suchen, mit Prädikatenlogik praktisch in der Informatik Probleme zu entscheiden, wäre dieser Ansatz unbefriedigend. Man benötigt also ein entscheidbares Problem, das aber nicht nur für ein, sondern viele Modelle gilt. Folglich versuchen wir, unsere Software möglichst genau mit einer Menge von Modellen zu beschreiben und testen dann, ob diese bestimmten Eigenschaften genügen. Diese Modelle heißen nach Daniel Jackson micromodels of software 2.4 Überprüfung von micromodels of software Greifen wir die Definition von oben für ein Modell eines Automaten auf, mit F := {i} und P := {R, S}. Dies ist noch kein konkretes Modell, da noch der Wertebereich A und die Interpretationen i M, R M und S M fehlen. Da nun aber nicht ein einzelnes Modell überprüft werden soll, sondern viele, können unter Umständen keine Interpretationen angegeben werden. In der Praxis könnte es zum Beispiel sein, dass noch nicht alle Aspekte der Software entworfen wurden oder dass für die Zukunft Erweiterungen oder Änderungen geplant sind. Sei µ die Menge aller möglicher Implementierungen M i einer Software. Für eine Aussage ψ möchte man nun in Bezug auf µ prüfen, ob sie wahr oder falsch ist. assertion checking prüft, ob ψ für alle Implementationen M i µ wahr ist. Ein Beispiel wäre der oben bereits durchgeführte Test von S(i) für alle M i µ, also der Test für jedes einzelne Modell M i, ob der Startzustand kein akzeptierender Zustand ist. Nur wenn der Test für jedes einzelne Modell wahr ist, wird ein wahr zurückgeliefert. consistency checking prüft, ob ψ für mindestens eine Implementation M i µ wahr ist. Ein Beispiel hierfür wäre der Test von x y S(x) R(x, y) für alle M i µ. In diesem Fall wird ein wahr zurückgeliefert, wenn auch nur bei einem einzigen Modell M i ein Deadlock bei einem nicht akzeptierenden Zustand auftritt. Möchten wir diese beiden Beispieltest durchführen, stellt sich die Frage, wie µ 5

6 am besten zu definieren ist. Wenn man für µ die Anzahl aller möglichen Automaten wählt, tritt schnell das Problem auf, dass das gestellte Problem unentscheidbar ist, da eine unendlich große Menge an Automaten überprüft werden muss. Es gibt nun 2 Möglichkeiten, dieses Problem zu umgehen: Entweder kann man µ doch noch weiter konkretisieren, oder man beschränkt die Größe der Modelle. Da der Test für allgemeine Automaten durchgeführt werden soll, kann keine Konkretisierung stattfinden. Es bleibt also die Größenbeschränkung. Diesen Ansatz nutzt das Tool Alloy. Sind alle Modelle in der Größe beschränkt, muss jedoch beachtet werden, dass die Antwort des Tests für größere Modelle gelten kann aber nicht muss. Wird bei der Überprüfung ein falsch zurückgegeben, gab es schon kleine Modelle, für welche die Aussage nicht gilt. Würde die Menge der zu prüfenden Modelle vergrößert, wäre das Ergebnis also das selbe. Bei einem falsch kann also auf jeden Fall geschlossen werden, dass die Softwaremodelle den Anforderungen nicht genügen. Wird bei der der Überprüfung ein wahr zurückgegeben, kann daraus nur geschlossen werden, dass die gewählte Menge an Modellen den Anforderungen genügt. Es kann vermutet werden, dass auch größere Modelle noch einer Überprüfung standhalten, da Probleme oft schon bei kleinen Modellen auftreten, aber eine Sicherheit besteht in diesem Fall nicht. 3 Modellprüfungen in Alloy 3.1 Alloy Alloy ist ein Tool zur Überprüfung von micromodels. Es ist in Java implementiert, bietet eine grafische Benutzeroberfläche und ist frei im Internet erhältlich. Es benutzt den oben geschilderten Ansatz, Modellmengen zu überprüfen und sowohl assertion checking als auch consistency checking sind möglich. Bleiben wir bei den beiden schon benutzten Beispielen und betrachten die Implementierung in Alloy. 3.2 Signaturen Für eine Überprüfung von Modellen muss zunächst µ, die Menge an konkreten Modellen, im Programm abgebildet werden. Für das Modell eines Automaten muss zum Beispiel definiert sein, dass A, i, R und S zu jedem Automaten gehören. In Alloy werden die Anforderungen für µ in einer signature definiert. sig StateMachine { A: set State, i: A, R: A -> A, S: set A} 6

7 Dies ist eine Signatur in Alloy. Mit sig wird eine Signatur eingeleitet, danach folgt der Name, hier StateMachine. Im Körper der Signatur werden A, i, R und S definiert. Die Wertemenge A wird in der Signatur als A: set State abgebildet, also als eine Menge aus Zuständen. Der Anfangszustand i ist ein Wert aus A, also i: A. S ist eine Teilmenge aus A, durch S: set A definiert. Die Zustandsübergänge R, sind immer Übergänge von einem Zustand aus der Menge A zu einem anderen: R: A -> A. Da bisher noch nicht definiert ist, wie ein Zustand State aussieht, muss dies auch noch getan werden. Dafür wird eine weitere Signatur genutzt. sig State { } Diese Signatur enthält in diesem Fall keine interne Struktur. Hier ist auch keine nötig, da in den folgenden Beispielen nur die Beziehungen und die Art der Zustände geprüft werden soll, nicht aber spezielle Eigenschaften. Natürlich liessen sich auch der Aufbau und die Struktur eines Zustandes modellieren und in der Praxis könnte dies auch nötig sein, wenn man darüber Aussagen treffen möchte. Trotzdem ist die Signatur wichtig, damit Alloy hinterher Instanzen der Signatur bilden kann um Zustände für einen Automaten zu erstellen. Mit diesen beiden Signaturen ist nun µ als Menge aller Automaten definiert. Im folgenden muss nun noch der Test einer prädikatenlogischen Formel definiert werden, und die Anzahl der Modelle beschränkt werden, um ein Ergebnis zu erhalten. 3.3 assertion checking Die erste Möglichkeit, eine prädikatenlogische Formel für die Modelle zu überprüfen, ist assertion checking. Wählen wir als Beispiel wieder S(i) und überprüfen, ob diese Eigenschaft für alle Modelle der Signatur StateMachine gilt. assert FinalNotInitial { all M : StateMachine no M.i & M.F } check FinalNotInitial for 3 but 1 Statemachine Dies ist ein möglicher assertion check. Er beginnt mit assert und hat den Namen FinalNotInitial. all M : StateMachine teilt Alloy mit, dass die folgende Bedingung für alle Modelle M des Typs StateMachine überprüft werden soll. Für jedes einzelne Modell wird auf auf die internen Variablen M.i, den Anfangszustand des Modells, und auf M.F, die Menge der akzeptierenden Zustände, zugegriffen. no M.i & M.F verknüpft die beiden als Behauptung, dass kein Zustand gleichzeitig Startzustand und akzeptierender Zustand ist. check FinalNotInitial lässt Alloy nach einem Gegenbeispiel für die vorher aufgestellte Behauptung suchen. Damit nicht die unendlicher Menge aller Au- 7

8 tomaten untersucht wird, ist am Ende noch die Einschränkung for 3 but 1 Statemachine gegeben. Aus den Signaturen werden konkrete Modelle erstellt, mit der Auflage, dass aus keiner Signatur mehr als 3 Elemente erstellt werden. Zusätzlich wird durch but 1 Statemachine die Anzahl der Automaten pro Modell auf 1 beschränkt. Jedes zu prüfende Modell besteht also aus genau einem Automaten, der maximal 3 Zustände hat. Diese Menge ist endlich und kann überprüft werden. In diesem Fall wird Alloy ein Gegenbeispiel für die Behauptung finden, da es durchaus Automaten mit 3 Zuständen gibt, die einen Zustand enthalten, der Startzustand und akzeptierender Zustand ist. Ein solches Gegenbeispiel ist das Modell eines Automaten mit A = {a, b, c}, i M = c, R M = {(a, a)} und S M = {b, c}. Da es in der Praxis auch interessant sein kann, welche Modelle aus µ den gegebenen Bedingungen nicht genügen, und nicht nur die Tatsache, dass es überhaupt Fehler gibt, lässt sich bei Alloy auch einstellen, dass nicht nur ein Gegenbeispiel gesucht wird. Falls vorhanden können auch mehrere oder alle ausgegeben werden. 3.4 consistency checking Die andere Möglichkeit, eine Modellmenge zu überprüfen, ist der consistency check. Dieser überprüft nicht, ob die Aussage für alle Modelle gilt, sondern ob es mindestens eins gibt, das den Anforderungen genügt. Auch hier betrachten wir ein bekanntes Beispiel: x y S(x) R(x, y) Nun wird getestet, ob es ein Modell mit dieser Eigenschaft gibt. Die Modelle werden wieder mit der selben Signatur StateMachine wie zuvor erzeugt. fun AGuidedSimulation(M : StateMachine, s : M.A){ no s.(m.r) not s in M.F } run AGuidedSimulation for 3 but 1 Statemachine Dieser consistency check ist eine Funktion und wird mit fun eingeleitet. Er bekommt 2 Parameter übergeben. Zunächst M, ein Modell des Typs StateMachine und danach s, einen Zustand aus der Menge aller Zustände A des Automaten M. Im folgenden werden 2 Bedingungen überprüft. not s in M.F greift auf M.F, die Menge der akzeptierenden zustände des Modells zu. Der Zustand s wird mit dieser Menge verglichen, und es wird geprüft, ob er kein akzeptierender Zustand 8

9 ist. no s.(m.r) überprüft ob die Menge s.(m.r) leer ist. Die Menge besteht aus allen Zuständen des Automaten, zu denen man über einen Zustandsübergang von s aus gelangen kann. Wenn diese Menge leer ist, und auch die erste Bedingung gilt, ist ein Zustand gefunden, der ein Deadlock ist, aber kein akzeptierender Zustand. Ein Modell mit einem solchen Zustand erfüllt unsere prädikatenlogische Formel. Zuletzt wird mit run AGuidedSimulation die Funktion ausgeführt und ein Positivbeispiel gesucht. Wieder findet durch for 3 but 1 Statemachine eine Beschränkung der Modellmenge statt: Es werden Modelle erstellt, die einen Automaten und maximal 3 Zustände haben. Dieser Beispieltest wird ein positives Ergebnis liefern, da es Automaten mit maximal 3 Zuständen gibt, die einen Deadlock bei einem nicht akzeptierenden Zustand haben. Eine mögliche Rückgabe ist der Automat A = {a, b, c}, i M = b, R M = {(a, b)} und S M = {c}. Der Deadlock-Zustand ist hier der Zustand b. Er ist Anfangszustand, aber kein Zustandsübergang führt aus ihm heraus. Auch hier ist es möglich, Alloy mehrere positiv getestete Modelle ausgeben zu lassen. 3.5 Einschränkung der micromodels In den beiden Beispielen wurde die Menge aller Automaten überprüft, mit der einzigen Einschränkung der Größe. Es lassen sich aber auch andere Einschränkungen definieren. Signaturen seien wieder StateMachine und State. assert NoTrans { all M : StateMachine with M all x, y, z: A z in y.r && y in x.r => not z in x.r } check NoTrans for 3 but 1 Statemachine Seien x, y und z Zustände eines Automaten. Dieser assertion check prüft, ob für alle Modelle gilt, dass wenn es die Zustandsübergänge (x, y) und (y, z) gibt, nicht der Übergang (x, z) existiert. Das with M dient hier nur der verkürzten Schreibweise, damit im folgenden beispielsweise A anstatt M.A benutzt werden kann. Bei dieser Eingabe findet Alloy schnell das Gegenbeispiel mit dem Zustandsübergang (x, x). Wenn man nun nicht nur diese triviale Lösung haben möchte, kann man Zustandsübergänge von einem Zustand auf sich selbst ausschliessen. Dies ist eine weiter Möglichkeit, neben der Größe die micromodells einzuschränken: Beschränkung durch Fakten. Die Aussage x R(x, x) 9

10 kann wie folgt in Alloy abgebildet werden: fact NoLoop { all M : StateMachine, w : M.A not w in w.(m.r) } Nun werden nur Modelle betrachtet, für die das Fakt wahr ist, dass w nicht in der Menge der Zustände liegt, zu denen man über einen Zustandsübergang von w aus gelangen kann. Jetzt findet Alloy ein komplexeres Modell als Gegenbeispiel. 4 Zusammenfassung Zusammendfassend lässt sich sagen, dass das normale model checking für konkrete Modelle von Software ideal ist, aber schnell an seine Grenzen stößt. Die Überprüfung mit micromodels ist für nicht vollständig definierte Software oder Programmgruppen geeignet. Mit Alloy hat man ein Tool, dass sehr effizient micromodells überprüfen kann, allerdings auch nicht auf unendliche Mengen an Modellen angewandt werden kann. Dafür ist es sehr praxistauglich und bietet durch die Ausgabe der Positiv- oder Negativbeispiele im Gegensatz zu einem einfachen model check grosse Vorteile. 10

11 5 Literatur M. Huth and M. Ryan: Logic in Computer Science. Cambridge University Press, 2nd Edition, 2004 G. Goos: Vorlesungen über Informatik, Band 1. Springer-Verlag, 3. Auflage,

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Mai 2006. Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Hauptseminar: Nichtrelationale Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln Mai 2006 Was ist eine Datenbank? Erweiterung relationaler um eine Deduktionskomponente Diese

Mehr

Klausur Formale Systeme Fakultät für Informatik WS 2009/2010

Klausur Formale Systeme Fakultät für Informatik WS 2009/2010 Klausur Formale Systeme Fakultät für Informatik WS 2009/2010 Prof. Dr. Bernhard Beckert 18. Februar 2010 Name: Mustermann Vorname: Peter Matrikel-Nr.: 0000000 Klausur-ID: 0000 A1 (15) A2 (10) A3 (10) A4

Mehr

Beschreibungslogiken. Daniel Schradick 1schradi@informatik.uni-hamburg.de

Beschreibungslogiken. Daniel Schradick 1schradi@informatik.uni-hamburg.de Beschreibungslogiken Daniel Schradick 1schradi@informatik.uni-hamburg.de Was sind Beschreibungslogiken? Definition: Formalisms that represent knowledge of some problem domain (the world ) by first defining

Mehr

Formale Methoden II. Gerhard Jäger. SS 2008 Universität Bielefeld. Teil 8, 11. Juni 2008. Formale Methoden II p.1/30

Formale Methoden II. Gerhard Jäger. SS 2008 Universität Bielefeld. Teil 8, 11. Juni 2008. Formale Methoden II p.1/30 Formale Methoden II SS 2008 Universität Bielefeld Teil 8, 11. Juni 2008 Gerhard Jäger Formale Methoden II p.1/30 Beispiele Anmerkung: wenn der Wahrheitswert einer Formel in einem Modell nicht von der Belegungsfunktion

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 9: Prädikatenlogik schulz@eprover.org Rückblick 2 Rückblick: Vor- und Nachteile von Aussagenlogik Aussagenlogik ist deklarativ: Syntaxelemente entsprechen

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik - das Quiz zur Vorlesung Teil I - Grundzüge der Logik In der Logik geht es um... (A) die Formen korrekten Folgerns (B) die Unterscheidung von wahr und falsch (C) das Finden von

Mehr

Semantik von Formeln und Sequenzen

Semantik von Formeln und Sequenzen Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt

Mehr

Vorlesung. Funktionen/Abbildungen 1

Vorlesung. Funktionen/Abbildungen 1 Vorlesung Funktionen/Abbildungen 1 1 Grundlagen Hinweis: In dieser Vorlesung werden Funktionen und Abbildungen synonym verwendet. In der Schule wird eine Funktion häufig als eindeutige Zuordnung definiert.

Mehr

9. Übung Formale Grundlagen der Informatik

9. Übung Formale Grundlagen der Informatik Institut für Informatik Sommersemester 2001 Universität Zürich 9. Übung Formale Grundlagen der Informatik Norbert E. Fuchs (fuchs@ifi.unizh.ch) Reinhard Riedl (riedl@ifi.unizh.ch) Nadine Korolnik (korolnik@ifi.unizh.ch)

Mehr

Zusammenhänge präzisieren im Modell

Zusammenhänge präzisieren im Modell Zusammenhänge präzisieren im Modell Dr. Roland Poellinger Munich Center for Mathematical Philosophy Begriffsfeld Logik 1 Mathematik und Logik Die Mathematik basiert auf logisch gültigen Folgerungsschritten

Mehr

2. Vorlesung. Slide 40

2. Vorlesung. Slide 40 2. Vorlesung Slide 40 Knobelaufgabe Was tut dieses Programm? Informell Formal Wie stellt man dies sicher? knobel(a,b) { Wenn a = 0 dann return b sonst { solange b 0 wenn a > b dann { a := a - b sonst b

Mehr

Übungen zu Modellierung verteilter Systeme

Übungen zu Modellierung verteilter Systeme Technische Universität München SoSe 2014 Institut für Informatik Lösungsblatt 1 PD Dr.habil. B. Schätz Ausgabe: 17. April 2014 M. Gleirscher, D. Marmsoler Besprechung: 24. April 2014 Übungen zu Modellierung

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 3: Alphabete (und Relationen, Funktionen, Aussagenlogik) Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Oktober 2008 1/18 Überblick Alphabete ASCII Unicode

Mehr

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich Herbrand-Strukturen und Herbrand-Modelle Sei F eine Aussage in Skolemform. Dann heißt jede zu F passende Struktur A =(U A, I A )eineherbrand-struktur für F, falls folgendes gilt: 1 U A = D(F ), 2 für jedes

Mehr

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x

Mehr

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende

Mehr

5 Logische Programmierung

5 Logische Programmierung 5 Logische Programmierung Logik wird als Programmiersprache benutzt Der logische Ansatz zu Programmierung ist (sowie der funktionale) deklarativ; Programme können mit Hilfe zweier abstrakten, maschinen-unabhängigen

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Einheit 1 Mathematische Methodik 1. Problemlösen 2. Beweistechniken 3. Wichtige Grundbegriffe Methodik des Problemlösens Klärung der Voraussetzungen Welche Begriffe sind zum Verständnis

Mehr

Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik. Seminar Entscheidungsverfahren für logische Theorien. Endliche Modelle.

Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik. Seminar Entscheidungsverfahren für logische Theorien. Endliche Modelle. Universität Koblenz-Landau, Abteilung Koblenz FB 4 Informatik Seminar Entscheidungsverfahren für logische Theorien Tobias Hebel Koblenz, am 18.02.2005 Inhaltsverzeichnis 1 Einleitung... 3 2 Grundlagen...

Mehr

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise:

Beispiel. Bsp.: Betrachte Schlussweise in: (3) folgt aus (1) und (2), siehe z.b. Resolutionsregel. was ist mit folgender Schlußweise: Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 5.4 Prädikatenlogik mit Gleichheit Resolution 192 Beispiel Bsp.: Betrachte Schlussweise in: 1 Wenn es regnet, dann wird die Straße nass. R N

Mehr

FOSD-Treffen 2012 Struktur- und Constraintbasierte Konfiguration

FOSD-Treffen 2012 Struktur- und Constraintbasierte Konfiguration FOSD-Treffen 2012 Struktur- und Constraintbasierte Konfiguration Uwe Lesta 22. März 2012 Übersicht Produktkonfiguration Konfigurationsarten Produkt- und Konfigurationswissen Aufbau des Produktkonfigurators

Mehr

Prolog basiert auf Prädikatenlogik

Prolog basiert auf Prädikatenlogik Software-Technologie Software-Systeme sind sehr komplex. Im Idealfall erfolgt die Programmierung problemorientiert, während die notwendige Übertragung in ausführbare Programme automatisch erfolgt. Prolog-Philosophie:

Mehr

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt - 17 - Die Frage ist hier also: Für welche x R gilt x = x + 1? Das ist eine quadratische Gleichung für x. Es gilt x = x + 1 x x 3 = 0, und man kann quadratische Ergänzung machen:... ( ) ( ) x x + = 3 +

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Woche 10 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Satz Sei G = (V, Σ, R, S) eine kontextfreie

Mehr

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies Kapitel 7 Dr. Jérôme Kunegis Logische Kalküle WeST Web Science & Technologies Lernziele Grundideen des Domain-Relationenkalküls (DRK) und des Tupel-Relationenkalküls (TRK) Relationale Datenbank als Formelmenge

Mehr

Logik für Informatiker

Logik für Informatiker Logik für Informatiker 2. Aussagenlogik Teil 3 30.04.2012 Viorica Sofronie-Stokkermans Universität Koblenz-Landau e-mail: sofronie@uni-koblenz.de 1 Letztes Mal Aussagenlogik Syntax: welche Formeln? Semantik:

Mehr

5.1 Drei wichtige Beweistechniken... 55 5.2 Erklärungen zu den Beweistechniken... 56

5.1 Drei wichtige Beweistechniken... 55 5.2 Erklärungen zu den Beweistechniken... 56 5 Beweistechniken Übersicht 5.1 Drei wichtige Beweistechniken................................. 55 5. Erklärungen zu den Beweistechniken............................ 56 Dieses Kapitel ist den drei wichtigsten

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Informatik A ( Frank Hoffmann)

Informatik A ( Frank Hoffmann) Teillösungen zum 1. Aufgabenblatt zur Vorlesung Informatik A ( Frank Hoffmann) 1. Improvisieren Stellen Sie die Zahl 6 dar durch einen Ausdruck, der genau dreimal die Ziffer i enthält und ansonsten neben

Mehr

Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction

Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction Seminar über Software Model Checking Vortrag zum Thema Predicate Abstraction Robert Mattmüller Betreuer: Prof. Dr. Stefan Leue Wintersemester 2003/2004 1. Dezember 2003 1 Software Model Checking Predicate

Mehr

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur Signatur Formeln Am Beispiel der Aussagenlogik erklären wir schrittweise wichtige Elemente eines logischen Systems. Zunächst benötigt ein logisches System ein Vokabular, d.h. eine Menge von Namen, die

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 7: Einführung Aussagenlogik schulz@eprover.org Logisches Schließen 2 gold +1000, 1 per step, Beispiel: Jage den Wumpus Performance measure death 1000 10

Mehr

Mathematische Maschinen

Mathematische Maschinen Mathematische Maschinen Ziel: Entwicklung eines allgemeinen Schemas zur Beschreibung von (mathematischen) Maschinen zur Ausführung von Algorithmen (hier: (partiellen) Berechnungsverfahren). Mathematische

Mehr

Answer Set Programming

Answer Set Programming Answer Set Programming mit Answer Set Prolog (A-Prolog) Wangler Thomas Logikprogrammierung Institut für Computerlinguistik Universität Heidelberg Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis

Mehr

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg,

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg, Nikos Canterakis Lehrstuhl für Mustererkennung, Universität Freiburg, Literatur Richard Hartle and Andrew Zisserman. Multiple View Geometr in computer vision, Cambridge Universit Press, 2 nd Ed., 23. O.D.

Mehr

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)

Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes) Prädikatenlogik Man kann den natürlichsprachlichen Satz Die Sonne scheint. in der Prädikatenlogik beispielsweise als logisches Atom scheint(sonne) darstellen. In der Sprache der Prädikatenlogik werden

Mehr

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de Diskrete Strukturen und Logik WiSe 2007/08 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Diskrete Strukturen und Logik Gesamtübersicht Organisatorisches Einführung Logik & Mengenlehre

Mehr

Logik für Informatiker

Logik für Informatiker Vorlesung Logik für Informatiker 3. Aussagenlogik Einführung: Logisches Schließen im Allgemeinen Bernhard Beckert Universität Koblenz-Landau Sommersemester 2006 Logik für Informatiker, SS 06 p.1 Beispiel:

Mehr

Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung;

Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung; Mehr Prolog Prolog bietet mehr an, z.b.: Prädikate zum Testen und Manipulieren der Struktur der Terme; Mehr meta-logische Prädikate z.b. zum Testen des Zustands der Ableitung; Mehr extra-logische Prädikate,

Mehr

Logische Programmierung

Logische Programmierung Logische Programmierung B-82 Deklaratives Programmieren in Prädikatenlogik: Problem beschreiben statt Algorithmus implementieren (idealisiert). Grundlagen: Relationen bzw. Prädikate (statt Funktionen);

Mehr

Fixpunktsemantik logischer Programme Pascal Hitzler Juli 1997 Kurzuberblick im Rahmen der Vorlesung Einfuhrung in Prolog von T. Cornell im Sommersemester 1997 an der Universitat Tubingen. Beweise sind

Mehr

Temporale Logiken: CTL und LTL

Temporale Logiken: CTL und LTL Westfälische Wilhelms-Universität Münster usarbeitung Temporale Logiken: CTL und LTL im Rahmen des Seminars Formale Spezifikation im WS 2005/06 Thorsten Bruns Themensteller: Prof. Dr. Herbert Kuchen Betreuer:

Mehr

Nichtmonotones Schließen

Nichtmonotones Schließen Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen klassischer Aussagenlogik: Entscheidungstabellen, -bäume, -diagramme Wissensrepräsentation und -verarbeitung durch

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Wissensbasierte Systeme/ Expertensysteme. Teil 2

Wissensbasierte Systeme/ Expertensysteme. Teil 2 Wissensbasierte Systeme/ Expertensysteme Teil 2 BiTS, Sommersemester 2004 Dr. Stefan Kooths KOOTHS BiTS: Wissensbasierte Systeme/Expertensysteme Teil 2 1 Gliederung 1. Einführung und Einordnung 2. Entscheidungsunterstützung(ssysteme)

Mehr

Gibt es verschiedene Arten unendlich? Dieter Wolke

Gibt es verschiedene Arten unendlich? Dieter Wolke Gibt es verschiedene Arten unendlich? Dieter Wolke 1 Zuerst zum Gebrauch des Wortes unendlich Es wird in der Mathematik in zwei unterschiedlichen Bedeutungen benutzt Erstens im Zusammenhang mit Funktionen

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at

Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache

Mehr

Einführung in die Fuzzy Logic

Einführung in die Fuzzy Logic Einführung in die Fuzzy Logic Entwickelt von L. Zadeh in den 60er Jahren Benutzt unscharfe (fuzzy) Begriffe und linguistische Variablen Im Gegensatz zur Booleschen Logik {0,} wird das ganze Intervall [0,]

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

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

Wissensbasierte Systeme

Wissensbasierte Systeme WBS4 Slide 1 Wissensbasierte Systeme Vorlesung 4 vom 03.11.2004 Sebastian Iwanowski FH Wedel WBS4 Slide 2 Wissensbasierte Systeme 1. Motivation 2. Prinzipien und Anwendungen 3. Logische Grundlagen 4. Suchstrategien

Mehr

Klausur für Studiengänge INF und IST

Klausur für Studiengänge INF und IST Familienname: Matrikelnummer: Studiengang: (bitte ankreuzen) INF IST MED Vorname: Email-Adresse: Immatrikulationsjahr: Klausur für Studiengänge INF und IST sowie Leistungsschein für Studiengang Medieninformatik

Mehr

Absolute Stetigkeit von Maßen

Absolute Stetigkeit von Maßen Absolute Stetigkeit von Maßen Definition. Seien µ und ν Maße auf (X, Ω). Dann heißt ν absolut stetig bezüglich µ (kurz ν µ ), wenn für alle A Ω mit µ(a) = 0 auch gilt dass ν(a) = 0. Lemma. Sei ν ein endliches

Mehr

Grammatiken. Einführung

Grammatiken. Einführung Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische

Mehr

3. Zusammenhang. 22 Andreas Gathmann

3. Zusammenhang. 22 Andreas Gathmann 22 Andreas Gathmann 3. Zusammenhang Eine der anschaulichsten Eigenschaften eines topologischen Raumes ist wahrscheinlich, ob er zusammenhängend ist oder aus mehreren Teilen besteht. Wir wollen dieses Konzept

Mehr

Einführung in Petri-Netze

Einführung in Petri-Netze Einführung in Petri-Netze Modellierung und Analysen von Workflows Vertretung: Stephan Mennicke, Reaktive Systeme SS 2012 Organisatorisches In der 24. KW (11.06. 17.06.): Vorlesung am Dienstag, 15:00 Uhr

Mehr

7. Formale Sprachen und Grammatiken

7. Formale Sprachen und Grammatiken 7. Formale Sprachen und Grammatiken Computer verwenden zur Verarbeitung von Daten und Informationen künstliche, formale Sprachen (Maschinenspr., Assemblerspachen, Programmierspr., Datenbankspr., Wissensrepräsentationsspr.,...)

Mehr

Wissensbasierte Systeme 5. Constraint Satisfaction Probleme

Wissensbasierte Systeme 5. Constraint Satisfaction Probleme Wissensbasierte Systeme 5. Constraint Satisfaction Probleme Michael Beetz Vorlesung Wissensbasierte Systeme 1 Inhalt 5.1 Begriffe 5.2 Constraint Satisfaction in Linienbildern 5.3 Beispielanwendungen 5.4

Mehr

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 6 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Satz 1 Seien F, G Boolesche Ausdrücke

Mehr

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen.

I. Aussagenlogik. Aussagenlogik untersucht Verknüpfungen wie und, oder, nicht, wenn... dann zwischen atomaren und komplexen Sätzen. I. Aussagenlogik 2.1 Syntax Aussagenlogik untersucht Verknüpfungen wie "und", "oder", "nicht", "wenn... dann" zwischen atomaren und komplexen Sätzen. Sätze selbst sind entweder wahr oder falsch. Ansonsten

Mehr

Was bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion

Was bisher geschah. Aufgaben: Diagnose, Entscheidungsunterstützung Aufbau Komponenten und Funktion Was bisher geschah Daten, Information, Wissen explizites und implizites Wissen Wissensrepräsentation und -verarbeitung: Wissensbasis Kontextwissen Problemdarstellung fallspezifisches Wissen repräsentiert

Mehr

Laufzeitverifikation

Laufzeitverifikation Laufzeitverifikation Martin Möser Seminar Fehlertolerante und Selbstheilende Systeme: Verifikation und Validierung autonomer Systeme Martin Möser - 1 Einführung / Motivation Autonome Systeme Komplexes

Mehr

Wissensrepräsentation und -verarbeitung in Logiken. bereinigt Pränex Skolem ( -Eliminierung) Klausel (Menge von Klauseln, Notation ohne Quantoren)

Wissensrepräsentation und -verarbeitung in Logiken. bereinigt Pränex Skolem ( -Eliminierung) Klausel (Menge von Klauseln, Notation ohne Quantoren) Was bisher geschah Wissensrepräsentation und -verarbeitung in Logiken klassische Aussagenlogik klassische Prädikatenlogik: Wiederholung Syntax, Semantik Normalformen: bereinigt Pränex Skolem ( -Eliminierung)

Mehr

Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag

Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag Mark Brörkens Universität Oldenburg, Fachbereich Informatik Email: Mark.Broerkens@informatik.uni-oldenburg.de Einleitung Programmieren mit Vertrag

Mehr

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

Mehr

Einführung in PROLOG. Christian Stocker

Einführung in PROLOG. Christian Stocker Einführung in PROLOG Christian Stocker Inhalt Was ist PROLOG? Der PROLOG- Interpreter Welcher Interpreter? SWI-Prolog Syntax Einführung Fakten, Regeln, Anfragen Operatoren Rekursion Listen Cut Funktionsweise

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 0: Organisatorisches & Einführung schulz@eprover.org Software Systems Engineering Kurzvorstellung Studium der Informatik in Kaiserslautern Promotion an

Mehr

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik

Mehr

Scheinaufgabe im Fach Web Engineering

Scheinaufgabe im Fach Web Engineering Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Verteilte Systeme Scheinaufgabe im Fach Web Engineering Thomas Thüm 07. August 2006 Matrikel: 171046 Lehrveranstaltung: Web

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Logik-Programme. Eine Tatsachenklausel ist eine einelementige positive Klausel, d.h. sie hat

Logik-Programme. Eine Tatsachenklausel ist eine einelementige positive Klausel, d.h. sie hat Logik-Programme Definition: Eine Tatsachenklausel ist eine einelementige positive Klausel, d.h. sie hat die Form {P }. Eine Prozedurklausel ist eine Klausel der Form {P, Q 1, Q 2,..., Q k } mit k 1. P

Mehr

Kapitel DB:III. III. Konzeptueller Datenbankentwurf

Kapitel DB:III. III. Konzeptueller Datenbankentwurf Kapitel DB:III III. Konzeptueller Datenbankentwurf Einführung in das Entity-Relationship-Modell ER-Konzepte und ihre Semantik Charakterisierung von Beziehungstypen Existenzabhängige Entity-Typen Abstraktionskonzepte

Mehr

SQL: statische Integrität

SQL: statische Integrität SQL: statische Integrität.1 SQL: statische Integrität Im allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen erfüllen. Integritätsbedingungen

Mehr

2. Die Darstellung von Algorithmen

2. Die Darstellung von Algorithmen 2. Die Darstellung von Algorithmen Aus den Einführungsbeispielen und Übungsaufgaben ist erkennbar, dass zur Darstellung von Algorithmen Grundelemente notwendig sind. Neben der Notation einzelner elementarer

Mehr

Whitebox-Tests: Allgemeines

Whitebox-Tests: Allgemeines -Tests: Allgemeines Andere Bezeichnungen Logic driven, Strukturelles Der Tester entwickelt Testfälle aus einer Betrachtung der Ablauflogik des Programms unter Berücksichtigung der Spezifikation Intuitiv

Mehr

Ersetzbarkeit, Client-Server Beziehungen

Ersetzbarkeit, Client-Server Beziehungen Ersetzbarkeit, Client-Server Beziehungen 182.132 VL Objektorientierte Programmierung Raimund Kirner Mitwirkung an Folienerstellung: Peter Puschner, basieren auf den Folien von Franz Puntigam, TU Wien Überblick

Mehr

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

Mehr

Mathematik für Informatiker I Mitschrift zur Vorlesung vom 14.12.2004

Mathematik für Informatiker I Mitschrift zur Vorlesung vom 14.12.2004 Mathematik für Informatiker I Mitschrift zur Vorlesung vom 14.12.2004 In der letzten Vorlesung haben wir gesehen, wie man die einzelnen Zahlenbereiche aufbaut. Uns fehlen nur noch die reellen Zahlen (siehe

Mehr

Haskell zur Constraint-Programmierung HaL8

Haskell zur Constraint-Programmierung HaL8 Haskell zur Constraint-Programmierung HaL8 Alexander Bau 2. Mai 2013 Wir benutzen eine Teilmenge von Haskell zur Spezifikation von Constraint- Systemen über Haskell-Datentypen. Ein Constraint-Compiler

Mehr

Wortproblem für kontextfreie Grammatiken

Wortproblem für kontextfreie Grammatiken Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Sprechen wir über Zahlen (Karl-Heinz Wolff)

Sprechen wir über Zahlen (Karl-Heinz Wolff) Sprechen wir über Zahlen (Karl-Heinz Wolff) Die Überschrift ist insoweit irreführend, als der Autor ja schreibt und nicht mit dem Leser spricht. Was Mathematik im allgemeinen und Zahlen im besonderen betrifft,

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

Mehr

Kapitel DB:V (Fortsetzung)

Kapitel DB:V (Fortsetzung) Kapitel DB:V (Fortsetzung) V. Grundlagen relationaler Anfragesprachen Anfragen und Änderungen Relationale Algebra Anfragekalküle Relationaler Tupelkalkül Relationaler Domänenkalkül DB:V-67 Relational Algebra

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

Erfüllbarkeit und Allgemeingültigkeit

Erfüllbarkeit und Allgemeingültigkeit Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.3 Aussagenlogik Erfüllbarkeit 44 Erfüllbarkeit und Allgemeingültigkeit Def.: eine Formel ϕ heißt erfüllbar, wennesein I gibt, so dass I = ϕ

Mehr

Gliederung. Programmierparadigmen. Sprachmittel in SCHEME. Objekte: Motivation. Objekte in Scheme

Gliederung. Programmierparadigmen. Sprachmittel in SCHEME. Objekte: Motivation. Objekte in Scheme Gliederung Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Einführung Sprachmittel Sommer 2011, 20. Juni 2011,

Mehr

fsq Ein Abfragesystem für syntaktisch annotierte Baumbanken

fsq Ein Abfragesystem für syntaktisch annotierte Baumbanken fsq Ein Abfragesystem für syntaktisch annotierte Baumbanken SFB 441, Universität Tübingen Syntaktisch annotierte Baumbanken Ursprünglich: Morphosyntaktische Tags (POS) Anreicherung mit syntaktischen Informationen

Mehr

Grenzwertanalyse. Domain-Testing. Ronny Schwierzinski, Bernd Rabe, Anna Bartwicki

Grenzwertanalyse. Domain-Testing. Ronny Schwierzinski, Bernd Rabe, Anna Bartwicki Grenzwertanalyse und Domain-Testing Ronny Schwierzinski, Bernd Rabe, Anna Bartwicki Überblick Einleitung Äquivalenzklassen Grenzwertanalyse Domain-Testing (Bereichstest) Invariant Boundaries Pfadbereichstest

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 27. Aussagenlogik: Logisches Schliessen und Resolution Malte Helmert Universität Basel 28. April 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26.

Mehr

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls 4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Projektive Moduln. Lemma/Definition 1.1. Folgende Aussagen für einen R-Modul P sind äquivalent: (i) P erfüllt folgende Liftungseigenschaft:

Projektive Moduln. Lemma/Definition 1.1. Folgende Aussagen für einen R-Modul P sind äquivalent: (i) P erfüllt folgende Liftungseigenschaft: Seminar Summen von Quadraten und K-Theorie Projektive Moduln Im Folgenden sei R ein assoziativer Ring mit Eins, nicht notwendigerweise kommutativ. R-Modul ist im Folgenden stets ein Rechts-R-Modul. Ein

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik für die Studiengänge Ingenieur-Informatik berufsbegleitendes Studium Lehramt Informatik (Sekundar- und Berufsschule) http://theo.cs.uni-magdeburg.de/lehre04s/ Lehrbeauftragter:

Mehr