Formale Spezifikationund Induktion

Größe: px
Ab Seite anzeigen:

Download "Formale Spezifikationund Induktion"

Transkript

1 Formale Spezifikationund Induktion 91

2 Was ist ein SW-System mathematisch? 1. Sicht: Operational Ein SW-System ist ein Automat mit Zustand, Zustandsübergängen und mit Abläufen. 2. Sicht: Algebraisch Ein SW-System ist eine Algebra = Datenstruktur, d. h. ein System von Daten und Operationen. 92

3 Was ist spezieller? Einen Automaten kann man als spezielle Algebra auffassen: Zustand = Element einer Datenstruktur Algebra! Sorten = State, Input, Output mit Operationen Anfangszustände: isinitial: State Bool Zustandsübergangsfunktion (oder auch Relation): exec: Input State (State Output Bool) Z. B. Zustand eines Programms: Programm + Programmzähler + Speicherbelegung Theoretisch: Algebraische Sicht genügt Praktisch: Automatensicht hat viele Spezialeigenschaften (u.a. ist eine Idee von Zeit damit verbunden). Deshalb Codierung oft nicht die beste Idee. 93

4 SW-Beschreibungsformalismen SW-System ist Datentyp: Modellorientierte Spezifikation (Z, VDM): Alle Datentypen sind mit Mengenlehre gebildet (Tupel und Mengen z. B. für UML-Klassendiagramme) Algebraische Spezifikation SW-System ist Menge von Abläufen: Algorithmische Spezifikation, z. B. Programmiersprachen Programme über algebraischen/modellorientierten Datentypen Automaten, Harel/UML Statecharts, Abstract State Machines (ASMs) Eignung hängt von den Zielen ab (Was will ich beschreiben? Was beweisen?) 94

5 Spezifikation Ziel: Ein bestimmter Datentyp (Algebra) soll spezifiziert werden. Fragen: 1. Was für Operationen brauche ich? 2. Welche Axiome brauche ich? 3. Welche Datentypen kann ich überhaupt spezifizieren? 4. Kann ich alle wahren Aussagen über dem Datentyp auch beweisen? Zunächst: Fragen speziell für die natürlichen Zahlen 95

6 Natürliche Zahlen: Die Peano-Axiome Es gibt eine ausgezeichnete Zahl 0 IN. Jede Zahl n IN hat einen Nachfolger succ(n) IN. Zu zwei Zahlen gibt es Summe m+n und Produkt m n Axiom 1: 0 ist kein Nachfolger. Axiom 2: Die Nachfolgerfunktion ist injektiv. Axiom 3: m+0 = m, m + succ(n) = succ(m+n) Axiom 4: m 0 = 0, m succ(n) = m n+m Axiom 5: IN ist die kleinste Menge M mit: 0 M und wenn n M, dann succ(n) M Aus dem letzten Axiom folgt das Induktionsprinzip: Wenn ϕ(0) gilt, und sich ϕ von n auf n+1 vererbt, dann ist ϕ für alle n wahr Begründung: M := {n : ϕ(n)} ist mindestens so groß wie IN. 96

7 Natürliche Zahlen: Mit PL nicht spezifizierbar! Satz (Charakterisierung der natürlichen Zahlen) Die Peano-Axiome charakterisieren ein Modell (eben die natürlichen Zahlen) bis auf Isomorphie (= Umbenennung). Beachte dabei: Peano-Axiom 5 ist kein prädikatenlogisches Axiom! Aber: Satz von Skolem Es gibt keine Menge Ax-Nat von prädikatenlogischen Formeln, die als einziges Modell (modulo Umbenennung) nur die natürlichen Zahlen hat. Beweisbar mit Vollständigkeitssatz Intuition: Prädikatenlogische Axiome können nicht ausdrücken, dass es neben den echten natürlichen Zahlen keine weiteren Zahlen gibt. 97

8 Natürliche Zahlen: Ein schwächeres Ziel Wir wissen schon: Jede Axiomenmenge hat auch andere Modelle als IN mit zusätzlichen Elementen. Wir versuchen es schwächer: Suche Axiomenmenge, mit der alle über IN wahren Formeln bewiesen werden können (dass sie auch über anderen Modellen gelten, könnte uns ja egal sein). Die Axiomenmenge sollte entscheidbar sein, d. h. es gibt Programm, das immer terminiert und sagt: ja, ist Axiom oder nein, ist kein Axiom. Sonst Triviallösung: Nehme als Axiome sämtliche wahren Aussagen. Zum Beispiel: Nehme Induktionsschema zu den Axiomen dazu: ϕ 0 n ( n. ϕ ϕ n +1 n ) n. ϕ; (: für jedes ϕ For(Σ,X) :) Die Formel ϕ(n) mit freier Variable n beschreibt die Menge {n : IN = ϕ(n)}. Das Induktionsschema für ϕ entspricht Peano-Axiom 5 für diese Menge 98

9 Natürliche Zahlen: Unvollständigkeit Problem: Alle Formeln (abzählbar viele) beschreiben nicht alle Mengen (überabzählbar viele)! Es gilt leider: Gödelscher Unvollständigkeitssatz Es gibt keine entscheidbare Menge von Formeln über (0, succ, +, ), die die ersten 4 Peano-Axiome und n 0 n. n = succ(m) enthält oder impliziert, mit der sich alle in IN wahren Aussagen ableiten lassen (insbesondere ist das Induktionsschema auch unvollständig). Der Trick zum Beweis ist das Lügnerparadoxon ( ich lüge jetzt ) in Form einer Formel, die sagt: Ich bin nicht beweisbar. Indem man die Formeln durchnumeriert (z.b. ASCII-Codierung), wird das Ich durch Meine Nummer ausdrückbar. 99

10 Natürliche Zahlen: Unvollständigkeit Intuition: Leider findet man auch keine gute Axiomenmenge, mit der die wahren Aussagen herleitbar sind Alle wahren Aussagen könnte man als Axiome trivialerweise nehmen. Die Menge der wahren Aussagen ist also nicht entscheidbar. Wahre Aussagen für die natürlichen Zahlen zu beweisen, ist kreativ. Verursachte ziemlich viel Wirbel in den 30er Jahren: Die Idee, Mathematik auf ganz einfachen Grundlagen aufzubauen (Hilbert sches Programm) zu definieren, war gescheitert Heute: Komplizierte Mengenlehre (Zermelo-Fränkel, Gödel-Bernays) als Grundlage für Mathematik. 100

11 Problem: Prädikatenlogik reicht nicht Problem: Prädikatenlogik kann nicht ausdrücken, dass es ausser den Zahlen 0,1,2 (= die aus 0 und +1 gebildeten Terme 0,0+1,0+1+1,...) keine weiteren Elemente gibt. Dasselbe Problem gibt es auch für andere Datentypen: Alle ganzen Zahlen sind mit 0, +1, 1 gebildet Alle Listen sind die aus [] und + gebildeten Terme: [], a + [], a + b + [],... Bei Listen: Terme dürfen Elementvariablen enthalten Alle (endlichen) Graphen bekommt man aus dem leeren, durch Addieren von Knoten addnode und Kanten addedge Alle Arrays bekommt man durch: mkarray(n) (erzeugt Array der Grösse n) put(a,i,d) (schreibt an Position i das Datum d) 101

12 Generiertheitsklauseln: Syntax Deshalb Idee: Wir definieren ein Spezialaxiom, genannt Generiertheitsklausel, das aussagt: Die Daten eines Datentyps sind genau die mit bestimmten Konstruktoren gebildeten Terme. Syntax s generated by C ist Termerzeugtheitsklausel ( Gen(Σ)) s S, C = {f 1,...,f n } OP, die Konstruktoren f i haben die Ergebnissorte s (Konstanten sind als Konstruktoren erlaubt) für wenigstens ein f i sind alle Argumentsorten ungleich s (sonst gibt es keine Konstruktorterme!) Ein Konstruktorterm t hat die Sorte s, ist mit Konstruktoren aus C gebildet und enthält nur Variablen anderer Sorten, ist also aus T s ((S,C),X \X s ). 102

13 Generiertheitsklauseln: Semantik Idee: Jedes Element der generierten Sorte ist der Wert eines Konstruktorterms, wenn man die (Parameter)-Variablen geeignet belegt. Semantik A = s generated by C : für jedes a A s gibt es ein v und t T s ((S,C),X \X s ) mit a = [[t]] A,v. Beispiel: Zur Liste [2,5] gibt es den Konstruktorterm a+b+[]. Mit einer Belegung v der Variablen a,b als v(a) = 2 und v(b) = 5 gilt: [[a+b+[]]] A,v = [2,5]. 103

14 Basisspezifikation Basisspezifikation Eine Spezifikation SP = (Σ, Ax, Gen) ist ein Tripel mit: Σ = (S, OP ) Ax For(Σ, X) endlich Gen Gen(Σ) endlich Modell A ist Modell von SP (A = SP, A Mod(SP )) A = SP : A Alg(Σ), A = Gen und A = Ax. Gültigkeit SP = ϕ : für alle A in Mod(SP ): A = ϕ 104

15 Konsistenz und Monomorphie Definition Eine Spezifikation ist konsistent : Axiome nicht widersprüchlich Kein Beweis von false möglich Es gibt ein Modell A der Spezifikation Das muss sein! Definition Eine Spezifikation ist monomorph : Axiome legen Verhalten eindeutig fest Je zwei Modelle sind bis auf Umbenennung (Isomorphie) gleich Sollte für Datentypen wie natürliche Zahlen etc. so sein (die Axiome sollten ja nicht versehentlich auch reelle Zahlen erlauben). Für Systembeschreibungen oft nicht erforderlich bzw. wünschenswert. Man will ja gerade Details offenlassen. 105

16 Minimale Spez. der natürlichen Zahlen in KIV specification sorts nat; constants 0 : nat; functions. +1 : nat nat; induction nat generated by 0, +1; variables m, n : nat; axioms 0 n +1; m n m +1 n +1; end specification ist konsistent und mononorph 106

17 Spez. der natürlichen Zahlen mit Add. und Mult. specification sorts nat; constants 0 : nat; functions. +1 : nat nat;. +. : nat nat nat;.. : nat nat nat; induction nat generated by 0, +1; variables m, n : nat; axioms 0 n +1; m n m +1 n +1; m + 0 = m; m + n +1 = (m + n) +1; m 0 = 0; m (n +1) = m * n + m; end specification ist konsistent und mononorph 107

18 Minimale Spez. der Listen in KIV specification sorts elem; list; constants [] : list; functions. +. : elem list list; induction list generated by [], +; variables a, b : elem; x, y : list; axioms [] a + x; a b x y a + x b + y; end specification ist konsistent und mononorph,wenn die Trägermenge für die Elemente vorgegeben ist ( monomorph modulo Parameter ) 108

19 Kalkül mit struktureller Induktion Strukturelle Induktion Sorte s erzeugt von Konstruktoren c, f Jedes Element der Trägermenge ist darstellbar als Konstruktorterm f(f(...f(c))) Induktionsformeln: ϕ(c) ( x. ϕ(x) ϕ(f(x))) x. ϕ(x) Induktionsregel: ϕ(c) ϕ(x) ϕ(f(x)) Γ ϕ = y. Γ, y = free(γ )\{x} Ableitung Wenn man aus der Spezifikation SP durch Anwendung von Sequenzenkalkül + Induktions-Regel die Formel ϕ ableiten kann, dann schreibt man SP IND ϕ. 109

20 Kalkül mit struktureller Induktion: Korrektheit und Unvollständigkeit Satz (Korrektheit) Es gilt SP IND ϕ SP = ϕ Satz (Unvollständigkeit) Es gibt Spezifikationen und Theoreme mit SP = ϕ, die aber mit Induktion nicht beweisbar sind (SP IND ϕ). 110

21 Wie schlimm ist Unvollständigkeit? Der Kalkül mit der Induktions-Regel ist fast vollständig : Wenn SP = ϕ, dann gibt es eine Erweiterung SP von SP um neue rekursiv definierte Hilfsfunktionen, so dass SP IND ϕ gilt. Praktisch gesehen: Mit den zusätzlichen Symbolen in SP wird eine passend (verallgemeinerte) Induktionshypothese für den Beweis von ϕ ausdrückbar. Beachte: Mit der Generiertheitsklausel ist die Induktionsregel auch auf Formeln mit den Hilfsfunktionen anwendbar (die Menge der möglichen Ind. hypothesen wächst!) SP ist je nach ϕ verschieden (kein uniformes SP ). In jedem SP gibt es neue Formeln ψ, die wahr aber nicht ableitbar sind. Kreativitität also für Verallgemeinerung und passende Hilfsfunktionen. 111

22 Strukturierte Spezifikation: Freie Datentypen 112

23 Wie spezifiziert man Datentypen? Vorgehen: Schritt 1: Definiere benötigte Sorten Schritt 2: Datentypen auf Rechnern sind generiert Definiere Konstruktoren und Generiertheitsklauseln Schritt 3(?): Definiere weitere Operationen und ihre Axiome Problem: Wie geeignete, richtige Axiome finden? Formal richtig : Sie sollten für den gewünschten Datentyp stimmen (keine Inkonsistenz!), und sollten ihn möglichst eindeutig charakterisieren. 113

24 Freie und nichtfreie Datentypen nat nat???? by???? by integer???? by set???? by set???? by stack???? by bintree???? by graph???? by list???? by 114

25 Freie und nichtfreie Datentypen Beobachtung: Manche Datentypen sind frei (erzeugt): Zwei verschiedene Konstruktorterme repräsentieren auch immer zwei verschiedene Elemente. nat 0, +1 nat 0,1,+ integer 0, +1, 1 set, ins set, {.}, stack empty, push bintree mkleaf, mkbranch graph, +node, +edge list [], + 114

26 Freie und nichtfreie Datentypen Beobachtung: Manche Datentypen sind frei (erzeugt): Zwei verschiedene Konstruktorterme repräsentieren auch immer zwei verschiedene Elemente. nat freely generated by 0, +1 nat generated by 0,1,+ 0+0 = 0 integer generated by 0,+1, = 0 set generated by, ins ins(a,ins(a, )) = ins(a, ) set generated by, {.}, {a} {a} = {a} stack freely generated by empty, push bintree freely generated by mkleaf, mkbranch graph generated by, +node, +edge +node n +node n list freely generated by [], + = +node n 114

27 Axiome für freie Datentypen Beispiel: Konstante c, einstellige Funktion f, zweistellige Funktion g Verschiedenheit der Konstruktoren c, f und g: c f(x), f(x) g(y,z), c g(x,y) Injektivität der Konstruktoren: f(x) = f(y) x = y, g(x,y) = g(u,v) x = u y = v Satz: Die Spezifikation mit diesen Axiomen ist monomorph und konsistent, sie charakterisiert also genau einen Datentyp. KIV: Schreibe freely generated by, Axiome werden generiert. 115

28 Freie Erzeugtheitsklauseln Freie Erzeugtheitsklauseln A = S freely generated by C : A = S generated by C Für 2 Konstruktorterme t,t T s ((S,C),X \X s ) mit s S gilt nur dann [[t]] A,v = [[t ]] A,v wenn sie mit den exakt gleichen Konstruktoren gebildet sind, und die Variablen an gleichen Positionen gleich belegt sind. Beispiel Listen: [[[]]] A,v, [[a + []]] A,v, [[a + b + []]] A,v sind auf jeden Fall verschiedene Listen (egal wie die Belegungen v, v, v sind) [[a + []]] A,v = [[b + []]] A,v gdw. wenn v(a) = v (b). 116

29 Natürliche Zahlen als freier Datentyp Beispiel: Die natürlichen Zahlen Nat3 = specification sorts nat; constants 0 : nat; functions +1 : nat nat; variables n : nat; induction nat freely generated by 0, +1; end specification Neu: Axiome jetzt generiert. 117

30 Listen als freier Datentyp Beispiel: Listen als freier Datentyp List2 = specification sorts list, elem; functions [] : list;. +. : elem list list; variables a, b: elem; l, l 1, l 2 : list; induction list freely generated by [], +; end specification 118

31 Generierte Axiome für Listen Generierte Axiome Spezifikation generiert: [] a+l, a+l 1 = b+l 2 a = b l 1 = l 2 Induktionsregel für die Sorte list y. Γ,Γ a+l l Γ a+l l Γ [] l [] l y = free(γ )\{l} 119

32 Datentyp-Definion (Motivation) Häufige Situation: Freie Erzeugbarkeit mit Konstruktoren c Selektoren, die aus c(x 1,...x n ) die x i selektieren Testprädikate ist mit Konstruktor c gebildet Ordnung: ist Unterterm von Größenfunktion: Anzahl nichtkonstanter Konstruktoren Eigenes Syntaxkonstrukt data specification vermeidet unnötige Schreibarbeit. In KIV typischerweise nie freely generated, sondern gleich data specification 120

33 Data Specification (Beispiel 1) Beispiel 1: Wochentage Weekday2 = data specification weekday = Mon Tue Wed Thu Fri Sat Sun; variables w : weekday; end data specification Generierte Axiome: Die Konstanten sind paarweise verschieden: Mon Tue, Mon Wed, Mon Thu, Mon Fri,... Induktionsregel: Γ Mon w Mon w... Γ Sun w Sun w Γ Beweis durch Fallunterscheidung nach dem Tag Verallgemeinerung: Aufzählungstypen 121

34 Data Specification (Beispiel 2) Beispiel 2: Paare Pair = data specification using Elem1, Elem2; pair = mkpair (..1 : elem1;..2 : elem2 ) variables p : pair; end data specification Generierte Axiome: mkpair(a, b).1 = a; mkpair(a, b).2 = b Induktionsregel: Γ mkpair(a,b) p mkpair(a,b) p Γ Expandiert Variable p zu mkpair(a, b) Verallgemeinerung: Tupel 122

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

Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen

Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen Was bisher geschah Formale Methoden in der Informatik Wiederholung klassische Logik Konkrete Datentypen (algebraische Strukturen) Abstrakte Datentypen Syntax: Signatur Semantik: Axiome (FOL-Formeln, meist

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

Funktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation

Funktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation Grundlagen der Programm- und Systementwicklung Funktionale Programmierung Teil 2 Methodik: Spezifikation, Implementierung, Verifikation Technische Universität München Institut für Informatik Software &

Mehr

2. Universelle Algebra

2. Universelle Algebra 2. Universelle Algebra Die Theorie der universellen Algebra verallgemeinert die Theorien der klassischen Algebren. Obwohl ursprünglich nur eine Sorte betrachtet wurde, werden wir hier gleich den mehrsortigen

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

Praktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen

Praktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen Rev. 1152 1 [23] Praktische Informatik 3: Einführung in die Funktionale Programmierung Vorlesung vom 10.11.2010: Rekursive Datentypen Christoph Lüth & Dennis Walter Universität Bremen Wintersemester 2010/11

Mehr

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):

Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell): Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

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

Formale Methoden im Software Engineering

Formale Methoden im Software Engineering Formale Methoden im Software Engineering Eine praktische Einführung Dominik Haneberg, Florian Nafz, Bogdan Tofan 1 Organisatorisches Vorlesung: Mittwoch 12:15 Uhr - 13:45 Uhr (1058 N) Versuche: (Raum 3017

Mehr

Entwicklung eines korrekten Übersetzers

Entwicklung eines korrekten Übersetzers Entwicklung eines korrekten Übersetzers für eine funktionale Programmiersprache im Theorembeweiser Coq Thomas Strathmann 14.01.2011 Gliederung 1 Einleitung

Mehr

Kontrakte, Abstrakte Datentypen und Verfeinerung

Kontrakte, Abstrakte Datentypen und Verfeinerung Kontrakte, Abstrakte Datentypen und Verfeinerung 229 Kontrakte 230 Vor- und Nachbedingungen, Kontrakte Ein Kontrakt für eine Prozedur p (oder auch für eine Methode) besteht (mindestens) aus einer Vorbedingung

Mehr

6 Datenstrukturen und abstrakte Datentypen. Datenstrukturen = Werkzeuge für die Buchhaltung

6 Datenstrukturen und abstrakte Datentypen. Datenstrukturen = Werkzeuge für die Buchhaltung Überblick 6 Datenstrukturen und abstrakte Datentypen 6.1 Datenstrukturen - alt und neu 6.2 Abstrakte Datentypen: Grundlagen 6.3 ADTs für Paare und Listen in Scheme 6.4 Stack und First-In-First-Out Queue

Mehr

Grundlegende Datentypen

Grundlegende Datentypen Foliensatz 4 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 50 Grundlegende Datentypen TU Ilmenau Seite 2 / 50 Atomare Datentypen

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

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2 1 2 Notation für Wörter Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg w a is die Anzahl der Vorkommen von a in w Beispiel: abba

Mehr

Binärbäume als weiteres Beispiel für abstrakte Datentypen in PVS mit in Knoten gespeicherten Werten vom Typ T:

Binärbäume als weiteres Beispiel für abstrakte Datentypen in PVS mit in Knoten gespeicherten Werten vom Typ T: Binäre Bäume Binärbäume als weiteres Beispiel für abstrakte Datentypen in PVS mit in Knoten gespeicherten Werten vom Typ T: BinTree [T: TYPE]: DATATYPE empty: empty? node (key: T, left:bibtree, right:bibtree):

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

Diskrete Mathematik für Informatiker

Diskrete Mathematik für Informatiker Diskrete Mathematik für Informatiker Markus Lohrey Universität Siegen Wintersemester 2014/2015 Lohrey (Universität Siegen) Diskrete Mathematik Wintersem. 2014/2015 1 / 344 Organisatorisches zur Vorlesung

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

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN. Abzählbarkeit, Injektivität, Sürjektivität und Bijektivität

TECHNISCHE UNIVERSITÄT MÜNCHEN. Abzählbarkeit, Injektivität, Sürjektivität und Bijektivität TECHNISCHE UNIVERSITÄT MÜNCHEN Zentrum Mathematik Prof. Dr. Friedrich Roesler Ralf Franken, PhD Max Lein Lineare Algebra 1 WS 26/7 en Blatt 4 13.11.26 Abzählbarkeit, Injektivität, Sürjektivität und Bijektivität

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

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Beispiele: (Funktionen auf Listen) (3) Bemerkungen: Die Datenstrukturen der Paare (2) Die Datenstrukturen der Paare

Beispiele: (Funktionen auf Listen) (3) Bemerkungen: Die Datenstrukturen der Paare (2) Die Datenstrukturen der Paare Beispiele: (Funktionen auf Listen) (3) Bemerkungen: 5. Zusammenhängen der Elemente einer Liste von Listen: concat :: [[a]] -> [a] concat xl = if null xl then [] else append (head xl) ( concat (tail xl))

Mehr

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

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

Foundations of Systems Development

Foundations of Systems Development Foundations of Systems Development Vergleich und Zusammenfassung Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer WS 2007/08 2 Ziele Wichtige Aspekte von algebraischen Spezikationen

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 8: kontextfreie Grammatiken Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/37 Überblick Kontextfreie Grammatiken

Mehr

Ergänzungen zur Analysis I

Ergänzungen zur Analysis I 537. Ergänzungsstunde Logik, Mengen Ergänzungen zur Analysis I Die Behauptungen in Satz 0.2 über die Verknüpfung von Mengen werden auf die entsprechenden Regelnfür die Verknüpfung von Aussagen zurückgeführt.

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

Algebraische Kurven. Vorlesung 26. Die Schnittmultiplizität

Algebraische Kurven. Vorlesung 26. Die Schnittmultiplizität Prof. Dr. H. Brenner Osnabrück SS 2012 Algebraische Kurven Vorlesung 26 Die Schnittmultiplizität Es seien zwei ebene algebraische Kurven C,D A 2 K gegeben, die keine Komponente gemeinsam haben. Dann besteht

Mehr

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

Mehr

klar. Um die zweite Bedingung zu zeigen, betrachte u i U i mit u i = 0. Das mittlere -Zeichen liefert s

klar. Um die zweite Bedingung zu zeigen, betrachte u i U i mit u i = 0. Das mittlere -Zeichen liefert s Nachtrag zur allgemeinen Vektorraum-Theorie. 1.5.15. Direkte Summen. Sei V ein Vektorraum, seien U 1,..., U t Unterräume, wir schreiben V = U 1 U 2 U t = t i=1 U i falls die folgenden beiden Bedingungen

Mehr

5. Aussagenlogik und Schaltalgebra

5. Aussagenlogik und Schaltalgebra 5. Aussagenlogik und Schaltalgebra Aussageformen und Aussagenlogik Boolesche Terme und Boolesche Funktionen Boolesche Algebra Schaltalgebra Schaltnetze und Schaltwerke R. Der 1 Aussagen Information oft

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 12: Termersetzungssysteme schulz@eprover.org Reduktionssysteme Definition: Reduktionssystem Ein Reduktionssystem ist ein Tupel (A, ) Dabei gilt: A ist eine

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

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

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

Fragen für die Klausuren

Fragen für die Klausuren Fragen für die Klausuren Vom Quellcode zum ausführbaren Programm Was ist ein Quellcode? Ist der Quellcode von einem Programm auf unterschiedlichen Rechner gleich? Nennen Sie drei Programmiersprachen. Was

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

Algorithmen und Programmierung

Algorithmen und Programmierung Algorithmen und Programmierung Kapitel 5 Formale Algorithmenmodelle A&P (WS 14/15): 05 Formale Algorithmenmodelle 1 Überblick Motivation Formale Algorithmenmodelle Registermaschine Abstrakte Maschinen

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 Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 11: Abstrakte Reduktionssysteme schulz@eprover.org Reduktionssysteme Definition: Reduktionssystem Ein Reduktionssystem ist ein Tupel (A, ) Dabei gilt: A

Mehr

Program = Logic + Control

Program = Logic + Control Program = Logic + Control Prozedurale/imperative Sprachen: Abläufe formulieren Computer führt aus von-neumann-maschine Idee von deklarativen/logischen/funktionalen Programmiersprachen: Zusammenhänge formulieren

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

Gleichungen und Ungleichungen

Gleichungen und Ungleichungen Gleichungen Ungleichungen. Lineare Gleichungen Sei die Gleichung ax = b gegeben, wobei x die Unbekannte ist a, b reelle Zahlen sind. Diese Gleichung hat als Lösung die einzige reelle Zahl x = b, falls

Mehr

Kapitel 5: Applikative Programmierung

Kapitel 5: Applikative Programmierung Kapitel 5: Applikative Programmierung In der applikativen Programmierung wird ein Programm als eine mathematische Funktion von Eingabe-in Ausgabewerte betrachtet. Das Ausführen eines Programms besteht

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

Universität Paderborn Die Universität der Informationsgesellschaft. Validierung und Verifikation (inkl. Testen, Model-Checking, Theorem Proving)

Universität Paderborn Die Universität der Informationsgesellschaft. Validierung und Verifikation (inkl. Testen, Model-Checking, Theorem Proving) Universität Paderborn Die Universität der Informationsgesellschaft Analyse, Entwurf und Implementierung zuverlässiger Software und (inkl., Model-Checking, Theorem Proving) Torsten Bresser torbre@uni-paderborn.de

Mehr

Aufgaben Theoretische Informatik

Aufgaben Theoretische Informatik Aufgaben Theoretische Informatik Elmar Eder 26. Dezember 2015 Lösungen der Aufgaben bitte abgeben auf dem Abgabesystem von Dominik Kaaser auf https://ti.cosy.sbg.ac.at/ als ASCII- oder UTF-8-Dateien mit

Mehr

Prädikatenlogik - Micromodels of Software

Prädikatenlogik - Micromodels of Software Prädikatenlogik - Micromodels of Software Philipp Koch Seminar Logik für Informatiker Universität Paderborn Revision: 30. Mai 2005 1 Inhaltsverzeichnis 1 Motivation 3 2 Modelle 3 2.1 Definition eines Modells.......................

Mehr

Überblick über dieses Kapitel Grundlagen der Programmierung Kapitel 12: Information und Repräsentation

Überblick über dieses Kapitel Grundlagen der Programmierung Kapitel 12: Information und Repräsentation Überblick über dieses Kapitel Grundlagen der Programmierung Dr. Christian Herzog Technische Universität München Wintersemester 2007/2008 Kapitel 12: Information und Repräsentation! Repräsentation, Information,!

Mehr

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer:

Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binäre Suchbäume (binary search trees, kurz: bst) Datenstruktur zum Speichern einer endlichen Menge M von Zahlen. Genauer: Binärbaum T mit n := M Knoten Jeder Knoten v von T ist mit einer Zahl m v M markiert.

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

Verträge für die funktionale Programmierung Design und Implementierung

Verträge für die funktionale Programmierung Design und Implementierung 1 Verträge für die funktionale Programmierung Design und Implementierung RALF HINZE Institut für Informatik III, Universität Bonn Römerstraße 164, 53117 Bonn, Germany Email: ralf@informatik.uni-bonn.de

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

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

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

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

Programmierung und Modellierung

Programmierung und Modellierung Programmierung und Modellierung Terme, Suchbäume und Pattern Matching Martin Wirsing in Zusammenarbeit mit Moritz Hammer SS 2009 2 Inhalt Kap. 7 Benutzerdefinierte Datentypen 7. Binärer Suchbaum 8. Anwendung:

Mehr

Generische Record-Kombinatoren mit statischer Typprüfung

Generische Record-Kombinatoren mit statischer Typprüfung System Generische mit statischer Typprüfung Brandenburgische Technische Universität Cottbus Lehrstuhl Programmiersprachen und Compilerbau Lehrstuhlkolloquium am 13. Januar 2010 Überblick System System

Mehr

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema 2x 4 + x 3 + x + 3 div x 2 + x 1 = 2x 2 x + 3 (2x 4 + 2x 3 2x 2 ) x 3 + 2x 2 + x + 3 ( x

Mehr

1. Teilklausur. Modul "OOPM Vorlesung/Übung" 16.12.2008. Gruppe A

1. Teilklausur. Modul OOPM Vorlesung/Übung 16.12.2008. Gruppe A Objektorientierte Programmierung und Modellierung WS 2008/2009 Institut für Informatik Prof. Dr. Ralf Lämmel Dr. Manfred Jackel 1. Teilklausur Modul "OOPM Vorlesung/Übung" 16.12.2008 Gruppe A Name Vorname

Mehr

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm Studienanforderungen Studiengang Maschinenbau Programmieren Begleitende Übungen zu Veranstaltungen Umsetzen des Algorithmus in ein lauffähiges Programm Studiengang Bauingenieurwesen Programmieren Begleitende

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

SWP Prüfungsvorbereitung

SWP Prüfungsvorbereitung 20. Juni 2011 1 Grammatiken 2 LL(1) 3 EXP 4 Datentypen 5 LP Grammatiken Angabe Erstellen Sie First- und Follow-Mengen aller Non-Terminale der folgenden Grammatik. S a S S B y B A C A A b b A x A ɛ C c

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 6: Induktives Vorgehen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische

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

3. Sätze und Formeln

3. Sätze und Formeln Klaus Mainzer, Die Berechnung der Welt. Von der Weltformel zu Big Data, München 2014 29.07.14 (Verlag C.H. Beck, mit zahlreichen farbigen Abbildungen, geb. 24,95, S.352) (empfohlene Zitierweise: Detlef

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Datentypen: Enum, Array, Struct, Union

Datentypen: Enum, Array, Struct, Union Datentypen: Enum, Array, Struct, Union C-Kurs 2013, 2. Tutorium Freitagsrunde http://wiki.freitagsrunde.org 10. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

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

Formale Methoden: Ein Überblick

Formale Methoden: Ein Überblick Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 1 Formale Methoden: Ein Überblick Heinrich Rust Lehrstuhl für Software-Systemtechnik BTU Cottbus 2004-09-16

Mehr

Zur Definition von Definition Albert J. J. Anglberger, Peter Brössel

Zur Definition von Definition Albert J. J. Anglberger, Peter Brössel Zur Definition von Definition Albert J. J. Anglberger, Peter Brössel Zusammenfassung Wir werden in dieser Arbeit zwei neue Definitionsvorschläge von Definition entwickeln, die folgende Eigenschaften aufweisen:

Mehr

Formale Methoden III - Tutorium

Formale Methoden III - Tutorium Formale Methoden III - Tutorium Daniel Jettka 19.06.06 Inhaltsverzeichnis 1. Logische Eigenschaften von Merkmalsstrukturen 1. Logische Eigenschaften von MS Ausgangspunkt: Unterscheidung von: Linguistische

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

Foundations of System Development

Foundations of System Development Foundations of System Development Martin Wirsing in cooperation with Axel Rauschmayer WS 05/06 Vergleich am Beispiel der Uhr: Maude und TLA 2 1. Uhr in TLA TLA spezifiziert die Menge aller möglichen (unendlichen)

Mehr

Binäre lineare Optimierung mit K*BMDs p.1/42

Binäre lineare Optimierung mit K*BMDs p.1/42 Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre

Mehr

Beispiel 11.2. Wenn p ein Polynom vom Grad größer gleich 1 ist, ist q : C Ĉ definiert durch q (z) =

Beispiel 11.2. Wenn p ein Polynom vom Grad größer gleich 1 ist, ist q : C Ĉ definiert durch q (z) = Funktionentheorie, Woche Funktionen und Polstellen. Meromorphe Funktionen Definition.. Sei U C offen und sei f : U gilt, nennt man f meromorph auf U: Ĉ eine Funktion. Wenn folgendes. P := f hat keine Häufungspunkte;.

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term

Mehr

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

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

Analysis 1. Delio Mugnolo. delio.mugnolo@uni-ulm.de. (Version von 18. Dezember 2012)

Analysis 1. Delio Mugnolo. delio.mugnolo@uni-ulm.de. (Version von 18. Dezember 2012) Analysis 1 Delio Mugnolo delio.mugnolo@uni-ulm.de (Version von 18. Dezember 2012) 2 Dies ist das Skript zur Vorlesung Analysis 1, welche ich im Sommersemester 2012 an der Universität Ulm gehalten habe.

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

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

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

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

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

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

Kapitel MK:IV. IV. Modellieren mit Constraints

Kapitel MK:IV. IV. Modellieren mit Constraints Kapitel MK:IV IV. Modellieren mit Constraints Einführung und frühe Systeme Konsistenz I Binarization Generate-and-Test Backtracking-basierte Verfahren Konsistenz II Konsistenzanalyse Weitere Analyseverfahren

Mehr

Übungsaufgaben mit Computer-Algebra-Software Mathematik

Übungsaufgaben mit Computer-Algebra-Software Mathematik Übungsaufgaben mit Computer-Algebra-Software Mathematik machen, statt nachmachen Uta Priss ZeLL, Ostfalia Dezember, 2015 Meine Lehrerfahrung mit Mathe Vor 5 Jahren neuer Kurs: Mathematik für Informatiker

Mehr

Mathematik für Studierende der Biologie und des Lehramtes Chemie Wintersemester 2013/14. Auswahl vorausgesetzter Vorkenntnisse

Mathematik für Studierende der Biologie und des Lehramtes Chemie Wintersemester 2013/14. Auswahl vorausgesetzter Vorkenntnisse UNIVERSITÄT DES SAARLANDES FACHRICHTUNG 6.1 MATHEMATIK Dipl.-Math. Kevin Everard Mathematik für Studierende der Biologie und des Lehramtes Chemie Wintersemester 2013/14 Auswahl vorausgesetzter Vorkenntnisse

Mehr

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract:

Spezifikation der zulässigen Parameter. Bemerkungen: Bemerkungen: (2) Design by Contract: Spezifikation der zulässigen Parameter Bemerkungen: Bei jeder (partiellen) Funktion muss man sich überlegen und dokumentieren, welche aktuellen Parameter bei einer Anwendung zulässig sein sollen. Der Anwender

Mehr

Ausarbeitung des Interpreter Referats

Ausarbeitung des Interpreter Referats Ausarbeitung des Interpreter Referats Gliederung 1. Programmiersprache 1.2. Syntax 1.2.1. Konkrete Syntax 1.2.2. Abstrakter Syntax Baum (Abstrakte Syntax) 2. Parser 2.1. Syntaktische Struktur einer Sprache

Mehr

2.4.3 Zustandsgraphen

2.4.3 Zustandsgraphen 2.4.3 Zustandsgraphen Folie 2-1+45 Paradigma der Zustandsmodellierung Zustandsmodellierung betrachtet ein System als Zustandsautomaten beschreibt die Zerlegung in Zustände und Zustandsübergänge orientiert

Mehr