Formale Spezifikationund Induktion
|
|
- Erwin Bayer
- vor 6 Jahren
- Abrufe
Transkript
1 Formale Spezifikationund Induktion 1
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 (vgl. auch (zustandslose) API in Java) 2
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. Bsp. 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 3
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. Bsp. 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?) 4
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 5
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 = m, m succ(n) = m n + n 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. 6
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). 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 Beweis mit Endlichkeitssatz: M erfüllbar jedes endl. M M erfüllbar. Betrachte Ax-Nat {c 0, c succ(0),... } Intuition: Prädikatenlogische Axiome können nicht ausdrücken, dass es neben den echten natürlichen Zahlen keine weiteren Zahlen gibt 7
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. Problem beim Finden der Axiomenmenge ist Peano-Axiom 5: IN ist kleinste Menge mit 0 M und n M succ(n) M Versuchen wir Mengen M durch Formeln zu beschreiben: Die Formel ϕ(n) mit freier Variable n beschreibt {n : ϕ(n)} 8
9 Natürliche Zahlen: Versuch der Spezifikation specification peano-ax sorts nat; constants 0 : nat; functions. +1 : nat nat;. +. : nat nat nat;.. : nat nat 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; ϕ 0 n ( n. ϕ ϕ n +1 n ) n. ϕ; (: für jedes ϕ For(Σ,X) :) end specification Unendlich viele Axiome, aber entscheidbar! 9
10 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 peano-ax auch unvollständig). Der Trick zum Beweis ist das Lügnerparadoxon: Es gibt eine Formel, die sagt: Ich bin nicht beweisbar 10
11 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 11
12 Natürliche Zahlen ohne Multiplikation Satz Für Aussagen über natürlichen Zahlen mit 0, +,, <, (aber keine Multiplikation) lässt sich mit dem Entscheidungsverfahren von Nelson und Oppen automatisch entscheiden, ob sie wahr oder falsch sind. Der Aufwand ist allerdings doppelt exponentiell. Intuition: Mal was positives: solange man kein hat, ist keine Kreativität, nur viel Rechenpower erforderlich. Entscheidungsprozeduren gibt es auch für andere einfache Datentypen (und Aussagenlogik!), werden auch verwendet (z.b. SAL, automatische Beweiser, abstrakte Interpretation) Kombination mehrerer Entscheidungsprozeduren und mit zus. Funktionen schwierig (wann was versuchen?) 12
13 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, ,...) 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) 13
14 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 also 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 gebildet und enthält nur Variablen anderer Sorten, ist also aus T s ((S,C), X \ X s ). 14
15 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]. 15
16 Elementare Spezifikation Elementare Spezifikation 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 = ϕ 16
17 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 17
18 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 18
19 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 19
20 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; x y a + x b + y; end specification ist konsistent und mononorph 20
21 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 ϕ. 21
22 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 ϕ 22
23 Ein Beispiel für Unvollständigkeit (1) x from a = die Liste ab dem erstem Vorkommen des Elements a (exklusiv). Falls das Element nicht vorkommt, die leere Liste. specification sorts elem; list; constants [] : list; functions. +. : elem list list;. from. : list elem list; induction list generated by [], +; variables a, b : elem; x, y : list; axioms [] a + x; x y a + x b + y; [] from a = []; (a + x) from a = x; a b (b + x) from a = x from a; end specification 23
24 Ein Beispiel für Unvollständigkeit (2) Die Spezifikation ist monomorph: Sie hat Listen als einziges Modell A. Für die Funktion from gilt das Theorem ϕ (x) := x [] x from a x Es lässt sich ϕ ([]), ϕ (b + []),... beweisen: [] [] [] from a [] b + [] [] (b + []) from a [] b + c + [] [] (b + c + []) from a [] b + c + d + [] [] (b + c + d + []) from a []... Induktionsschluss klappt nicht: x from a x (b + x) from a b + x man muss die Aussage für Induktion verallgemeinern: x [] x from a < x x [] # (x from a) < # x aber: das braucht ein neues Prädikat < (ist Endstück) oder # (Länge) beide können rekursiv definiert werden 24
25 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 Funktionen, 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 Die Induktionsregel wird auf neue Formeln anwendbar 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 25
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
Mehr2. 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
MehrFormale 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
MehrLogik 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:
Mehr2. 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
MehrFormale 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
MehrPraktische 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
Mehr5. 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
MehrWas 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
MehrEntwicklung eines korrekten Übersetzers
Entwicklung eines korrekten Übersetzers für eine funktionale Programmiersprache im Theorembeweiser Coq Thomas Strathmann 14.01.2011 Gliederung 1 Einleitung
MehrDiskrete 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
MehrSWP 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
MehrFragen 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
MehrKontrakte, 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
MehrFunktionale 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 &
MehrProlog 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:
MehrTheoretische 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
MehrTheoretische 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
MehrSatz. 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
MehrGrundbegriffe 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
MehrGrundlagen 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
MehrHaskell 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
MehrBeschreibungslogiken. 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
MehrProgram = 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
MehrPrä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.......................
MehrUniversitä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...
MehrWissensbasierte 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
Mehrx 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 +
MehrVorlesung Analysis I / Lehramt
Vorlesung Analysis I / Lehramt TU Dortmund, Wintersemester 2012/ 13 Winfried Kaballo Die Vorlesung Analysis I für Lehramtsstudiengänge im Wintersemester 2012/13 an der TU Dortmund basiert auf meinem Buch
MehrSemantic Web Technologies I!
www.semantic-web-grundlagen.de Semantic Web Technologies I! Lehrveranstaltung im WS11/12! Dr. Elena Simperl! DP Dr. Sebastian Rudolph! M.Sc. Anees ul Mehdi! www.semantic-web-grundlagen.de Logik Grundlagen!
MehrTheoretische 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
MehrCodierung, 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
MehrGleichungen 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
MehrTerme 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
Mehr6 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
MehrBinä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
Mehr3. 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
Mehr7. 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.,...)
Mehr2.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
MehrWiederholung 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
Mehr5 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
MehrFormale 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
Mehr1. 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
MehrTECHNISCHE 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
MehrZur 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:
MehrGrammatiken. 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
MehrInformationsblatt 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
MehrFormale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK
Formale Systeme Prof. Dr. Bernhard Beckert WS / KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz Association
MehrGrundbegriffe 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
MehrUniversitä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
MehrAlgorithmen 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
MehrFoundations 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
MehrTechnische 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
MehrGrundlegende 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
MehrPrä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,
MehrProgrammieren ++ 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
Mehrklar. 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
MehrTheoretische 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
MehrGrundlagen 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.
MehrKapitel 4. Euklidische Ringe und die Jordansche Normalform. 4.1 Euklidische Ringe
Kapitel 4 Euklidische Ringe und die Jordansche Normalform 4.1 Euklidische Ringe Die Ringe der ganzen Zahlen, Z, sowie Polynomringe über Körpern, K[X], wobei K ein Körper ist, haben die folgenden Gemeinsamheiten:
MehrJava Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
MehrDiskrete 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
Mehrw 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
MehrObjektorientierte 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/
MehrUniversität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5
Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B
MehrDeklarationen 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.
MehrTheoretische 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
Mehr4. 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
MehrI. 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
Mehr2.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
Mehr2.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
MehrBinä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):
MehrTheorie 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
MehrFormale 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
MehrAufgaben 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
MehrGrundlagen 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.
MehrFoundations 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)
MehrKapitel 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
MehrGrundlagen 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
MehrProgrammiersprachen 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
MehrMai 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
Mehr7 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
MehrDatenstruktur 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.
MehrEinfache 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
MehrAusarbeitung 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Ü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,!
MehrJava Einführung Operatoren Kapitel 2 und 3
Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig
MehrÜ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
MehrKapitel 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
MehrCodes und Informationsgehalt
Aufgaben 2 Codes und Informationsgehalt Auf wie viele Dezimalziffern genau können vorzeichenlose ganze Zahlen in einem binären Code der Länge 32 bit dargestellt werden? 2 Codes und Informationsgehalt Auf
MehrGleichungen 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
Mehr1. 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
MehrModallogik (aussagenlogisch)
Kapitel 2 Modallogik (aussagenlogisch) In diesem Abschnitt wird eine Erweiterung der Aussagenlogik um sogenannte Modalitäten behandelt. Damit erlangt man eine größere Aussagekraft der Sprache, allerdings
MehrGibt 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
MehrKapitel 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
MehrAlgebraische 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
MehrPrimzahlzertifikat von Pratt
Primzahlzertifikat von Pratt Daniela Steidl TU München 17. 04. 2008 Primzahltests in der Informatik "Dass das Problem, die Primzahlen von den Zusammengesetzten zu unterscheiden und letztere in ihre Primfaktoren
MehrTeil 1: Digitale Logik
Teil 1: Digitale Logik Inhalt: Boolesche Algebra kombinatorische Logik sequentielle Logik kurzer Exkurs technologische Grundlagen programmierbare logische Bausteine 1 Analoge und digitale Hardware bei
Mehr16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
MehrErfü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