1.1 Transitionssysteme Produkte von Transitionssystemen Kripkestrukturen Verifikation und Model-Checking...

Ähnliche Dokumente
1 Transitionssysteme und Verifikation Transitionssysteme Produkte von Transitionssystemen Kripkestrukturen...

Einführung in LTL unter MAUDE. Maschine!es Beweisen Einführung in LTL Seit# 1

Modellierung & Analyse

C.3 Funktionen und Prozeduren

Vorsemesterkurs Informatik

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Syntax von LOOP-Programmen

Theoretische Informatik

Resolutionsalgorithmus

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Logic in a Nutshell. Christian Liguda

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Informatik I Übung, Woche 40

Mathematik für Informatiker I

Vorlesung Programmieren

Einführung in die Programmierung Wintersemester 2011/12

Zusammenfassung des Stoffes zur Vorlesung Formale Systeme

Sin-Funktion vgl. Cos-Funktion

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009

3. Anweisungen und Kontrollstrukturen

Grundlagen der Programmierung Prof. H. Mössenböck. 4. Schleifen

Einführung in die Programmierung mit VBA

Werkzeuge zur Programmentwicklung

Beispiel Aussagenlogik nach Schöning: Logik...

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit

Die Folgerungsbeziehung

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Theoretische Informatik SS 03 Übung 3

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Theorie der Informatik

Excel VBA. Teil Zusammenfassung! Was wir können sollten! V

2.5 Programmstrukturen Entscheidung / Alternative

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

6. Iteration (Schleifenanweisungen)

Einführung in die Theoretische Informatik

Foundations of Systems Development

Kapitel 4. Induktive Definitionen und Beweise

Kapitel 5: Abstrakte Algorithmen und Sprachkonzepte. Elementare Schritte

Kurs 1612 Konzepte imperativer Programmierung Musterlösung zur Nachklausur am

Programmieren I. Kapitel 5. Kontrollfluss

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Einführung in die Informatik Algorithms

Kapitel 4: (Einige) Andere Logiken

Motivation. Motivation

Programmieren für Wirtschaftswissenschaftler SS 2015

VBA-Programmierung: Zusammenfassung

Mutual Exclusion und Synchronisation. Peter Puschner Institut für Technische Informatik

LOOP-Programme: Syntaktische Komponenten

Bisher. Wiederholung NFA Modellierung durch NFA Kripke-Struktur

Einführung in die Informatik 1

Formale Systeme. Prof. P.H. Schmitt. Winter 2007/2008. Fakultät für Informatik Universität Karlsruhe (TH) Voraussetzungen

Klausur Formale Systeme Fakultät für Informatik WS 2009/2010. Prof. Dr. Bernhard Beckert. 18. Februar 2010

Theoretische Informatik SS 03 Übung 4

TI-Basic. Programme und Funktionen

KOP / FBS - Programmierung

Statt (r s) schreiben wir in Zukunft meistens rs, gelegentlich auch (r; s).

1 Transitionssysteme. 1.1 Motivation: Model-Checking

Informatik 1 ( ) D-MAVT F2010. Logik, Schleifen. Yves Brise Übungsstunde 4

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise)

Imperative vs. Funktionale Programmierung

Formale Systeme. Organisatorisches. Prof. Dr. Bernhard Beckert, WS 2016/ KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft

Endlicher Automat (EA)

OpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009

C- Kurs 04 Anweisungen

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

JAVA-Datentypen und deren Wertebereich

JavaScript und PHP-Merkhilfe

Thomas Behr. 17. November 2011

Schleifen in C/C++/Java

Einstieg in die Informatik mit Java

Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten.

Technische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 2. Mai HA-Lösung. TA-Lösung

Theoretische Informatik. Reguläre Sprachen und Automaten

Formale Grundlagen 2008W. Vorlesung im 2008S Institut für Algebra Johannes Kepler Universität Linz

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Klausur Nichtsequentielle Programmierung. Nachname: Bachelor Magister. Vorname: Master Lehramt

Unabhängigkeit KAPITEL 4

JAVA - Methoden

Was bisher geschah. Modellierung von Aussagen durch Logiken. Modellierung von Daten durch Mengen

Mengen. Eigenschaften. Spezielle Mengen (1) Prominente Mengen. ! Mengenzugehörigkeit

Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines

XCTL-Projekt Software-Sanierung Projektseminar

Vorlesung Methoden des Software Engineering. Martin Wirsing. Einheit C.3,

JAVA - Methoden - Rekursion

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Grundbegriffe der Informatik

Softwarelösungen: Versuch 4

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

Satz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2

Computer & GNU/Linux Einführung Teil 4

Formale Systeme. Organisatorisches. Prof. Dr. Bernhard Beckert, WS 2016/ KIT Die Forschungsuniversita t in der Helmholtz-Gemeinschaft

David Harel, Dexter Kozen, Jerzy Tiuryn. Dynamic Logic. The MIT Press, 2000.

Deadlocks. System hat nur begrenzte Ressourcen (Ressourcentypen) Hauptspeicher Externer Speicher Drucker File

5. Elementare Befehle und Struktogramme

Prädikate sind Funktionen. Prädikatenlogik. Quantoren. n stellige Prädikate. n stellige Prädikate:

Binary Decision Diagrams (Einführung)

Überführung regulärer Ausdrücke in endliche Automaten

Programmieren lernen mit Groovy Rekursion Rekursion und Iteration

Kontrollstrukturen MySQL Funktionen. MySQL 4, 5. Kapitel 20a: PHP Teil 2. Marcel Noe

Arten der Synchronisation. Koordination nebenläufiger Prozesse. Koordinierung. Reihenschaltung. Einseitige Synchronisation

Transkript:

Transitionssysteme und Verifikation 3. Transitionssysteme.................................. 3. Produkte von Transitionssystemen......................... 9.3 Automaten und reguläre Sprachen......................... 3.4 Kripkestrukturen................................... 9.4. Verifikation und Model-Checking...................... 9.4. Transitionssysteme in Form von Kripke-Strukturen.............4.3 Kripke-Strukturen von Programmen.................... 5.4.4 Wechselseitiger Ausschluss.......................... 7.5 Temporale Logik................................... 3.5. Syntax und Semantik von LTL-Formeln.................. 34.5. Syntax und Semantik von CTL- und CTL -Formeln........... 37.5.3 Faire Kripke-Struktur............................ 4.5.4 CTL-Model-Checking............................ 4 Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite

men und Problemen bei Petrinetzen ist bei Esparza und Nie zu finden. Definition.3 5.44 (Kripke-Struktur ) 5.6 Kripke-Strukturen Eine Kripke-Struktur M := (S, S0, R, ES ) besteht aus a) einer b) einer c) einer Wir kommen nun zu Analyseverfahren, die auf Transitionssy beliebigen Systemen anwendbar sind, also nicht speziell nu endlichen Zustandsmenge S, Wegen ihrer Wurzeln in der Logik heißen sie Kripkenetze. Dabei werden weniger die Aktionsfolgen als vielmehr die Eig der Zusta nde betrachtet. Solche Eigenschaften werden dur Menge S0 S von Anfangszust a nden, Aussagen in den Zusta nden beschrieben. Im Gegensatz zu pitel betrachteten Transitionsetikettenfunktion haben w linkstotalen (Transitions-)Relation R S S und Zustandsetikettenfunktion. d) einer Zustandsetikettenfunktion ES : S5.4 Sei P(AP Definition T S =),(S,die A, tr,jedem S 0, S F ) Zuein Transitions ne Zustandsetikettenfunktion ist eineatomaren Abbildung ES : S P stand s eine Menge ES (s) AP von aussagenlogischen bei AP eine Menge von atomaren Aussagen ist. Formeln zuordnet (die in diesem Zustand gelten). s0! utet: s S s S : (s, s ) R Kaffee_einfüllen Tee_einfüllen s4 {α } s Tee Kaffee " s5 " s Formale Grundlagen der Informatik II {α, α } Kap : Transitionssysteme und Verifikation (Teil ) s3 {α, α3 } Seite

Zuweisung: C(l, v e, l ) pc = l pc = l v = e same(v \{v}) Hintereinanderausführung:? C(l, (P ; l : P ) 7, l ) C(l, P, l ) C(l, P, l ) (l, P, (l, P, l Anfangswert x =,y =. l : x := y; l = =. : y := y ; l 3 S 0 (x = y = pc = l ) Beispiel.8 auf Seite 8 Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 3

Schleifen-Anweisung: C(l, while b do l : P endwhile, l ) (pc = l pc = l b same(v )) (pc = l pc = l b same(v )) C(l, P, l) (l b b l : P l ) Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 4

Skip: C(l, skip, l ) pc = l pc = l same(v ) Bedingte Anweisung: C(l, if b then l : P else l : P endif, l ) (pc = l pc = l b same(v )) (pc = l pc = l b same(v )) C(l, P, l ) C(l, P, l ) b l : P (l b l : P l ) Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 5

P L = cobegin l : P L l... l n : P L n l n; coend C(l, P L, l ) (pc = l pc = l... pc n = l n pc = ) Initialisierung (pc = pc = l... pc n = l n pc = l n i= (pc i = )) Termination ( n i= (C(l i, P i, l i ) same(v \V i) same(p C\{pc i }))) Transition von P i Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 6

await-anweisung: C(l, await(b),l ) (pc i = l pc i = l b same(v i)) (pc i = l pc i = l b same(v i )) await b warte bis b gilt! b = false b = true busy waiting b (l b l ) Beispielprogramm für wechselseitigen Ausschluss P = m : cobegin P 0 P coend Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 7

========================= Parallele Programme oder Prozesse können zum konsistenten Schreiben auf gemeinsame Daten einen kritischen Abschnitt enthalten, der nicht überlappend ausgeführt werden darf. Dies kommt im nicht-kritischen Abschnitt nicht vor. Die Programme sollen dabei (für den Fall zweier Prozesse P und Q) folgende Eigenschaften erfüllen: A) Die Befehlszähler von P und Q sind nie gleichzeitig in ihren kritischen Abschnitten. Markierungs-Invarianz B) Meldet der Prozess P oder Q den Wunsch zum Eintritt in den kritischen Abschnitt an (wantp = True oder wantq = True), so kann er nach einer gewissen endlichen Zeit tatsächlich in seinen kritischen Abschnitt eintreten. Lebendigkeits-Invarianz liveness property safety property Es gilt immer... Es gilt später einmal... Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 8

a'gemeines Programm-Schema Initialisierung m : cobegin P Q coend wobei P : l 0 : while True do Q: l : while True do p i : non-critical section; q i : non-critical section; Eintrittsprotokoll Eintrittsprotokoll p j : critical section; q j : critical section; Austrittsprotokoll : Austrittsprotokoll endwhile l0 endwhile l Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite 9

s0 FF p p p5 s p s6 p3 s0 q 5 s4 TF p 3 TF p 5 TF p5 q3 q s6 33 q 3 FT 5 Formale Grundlagen der Informatik II s9 35 s9 q3 wantp = wantq = F alse : boolean, last = last = : integer, m : cobegin P Q coend wobei l0 : while True do [ p0 : non-critical section; ] p : wantp := T rue; p : last := ; p3 :await wait(wantq = F alse last = ); [ p4 : critical section; ] p5 : wantp := F alse; endwhile l0 5 s3 FT p (pi, qj, Zustand die q5 p3 5 p q3 s8 P: s5 q3 p s5 q p 3 s q 53 FT q q p3 q3 q5 p q s 33 q q s7 s 8 p 3 p3 p q s3 s4 FT TF q s FF p3 s7 j, last = n, wantp, wantq = ) lautet. p5 : Transitionssysteme und Verifikation (Teil ) Kap Seite 0

Formale Grundlagen der Informatik II Kap : Transitionssysteme und Verifikation (Teil ) Seite