Model Checking mit SPIN

Ähnliche Dokumente
LTL und Spin. Stefan Radomski

Übungen Logik und formale Methoden Temporale Logik

Model Checking mit Büchi Automaten

Model Checking. Grundlagen und Motivation. Alex Salnikow

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

Werkzeuggestützte Softwareprüfungen: Model Checking I - CTL. Vortrag von Florian Heyer

MODEL CHECKING 3 TEMPORALE LOGIKEN

Formale Verifikation von Software. 10. Juli 2013

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

MODEL CHECKING 2 - AUTOMATEN

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

Model Checking. H. Peter Gumm. Philipps-Universität Marburg Sommersemester 2008

2.1 Lineare Temporallogiken: LTL

CTL Model Checking SE Systementwurf CTL Model Checking Alexander Grafe 1

Computergestützte Modellierung und Verifikation

Model Checking. H. Peter Gumm. Philipps-Universität Marburg Sommersemester 2007

Aussagenlogische Testspezifikation

Aussagenlogik. Spezifikation und Verifikation Kapitel 1. LTL und CTL Syntax & Semantik. Aussagenlogik: Syntax. Aussagenlogik: Syntax (Alternative)

Formale Verifikation von Software. 8. Juli 2015

Lineare Temporale Logik

Automaten, Spiele und Logik

a b b a Alphabet und Wörter - Zusammengefasst Formale Grundlagen der Informatik 1 Kapitel 2 Endliche Automaten und reguläre Sprachen

Thomas Schirrmann Nebenläufigkeit. Nebenläufigkeit. Vortrag Thomas Schirrmann. Seminar Systementwurf Dozentin Daniela Weinberg

Kurzeinführung in SAL

Zusammenfassung des Stoffes zur Vorlesung Formale Systeme

Kapitel 2: Algorithmen für CTL und LTL

Modellierungsbeispiel Geräte

Modellierung verteilter Systeme

Aussagenlogik. Motivation Syntax Semantik Erfüllbarkeit SAT-Solver Kompaktheit Beweiskalküle

Grundlagen der theoretischen Informatik

1. Einführung in Temporallogik CTL

Endliche Automaten Jörg Roth 101

3. Klausur Einführung in die Theoretische Informatik Seite 1 von Welches der folgenden klassischen Probleme der Informatik ist entscheidbar?

Bisher. Wiederholung NFA Modellierung durch NFA Kripke-Struktur

Logik für Informatiker

Logik für Informatiker

Vorsemesterkurs Informatik

Modellierung und Validierung von Datenschutzanforderungen in Prozessmodellen

Tutorium Prolog für Linguisten 8

Grundlagen der Künstlichen Intelligenz

Vorsemesterkurs Informatik

Vorsemesterkurs Informatik

Sequenzgenerierung aus Klassifikationsbäumen

Model Checking I. Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg

Syntax der Prädikatenlogik: Komplexe Formeln

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat

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

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

Klausur Formale Systeme Fakultät für Informatik WS 2015/2016

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

Klausur Formale Systeme Fakultät für Informatik SS 2018

Logik in der Informatik

KV Software Engineering Übungsaufgaben SS 2005

Können Computer programmieren? Bernd Finkbeiner, Universität des Saarlandes

Abschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften

LTL- Erfüllbarkeitsprüfung für inkrementelle Entwicklung von Geschäftsprozessen

Automatentheorie und Logik

Logik für Informatiker

Logik. Vorlesung im Wintersemester 2010

Satz 1.18 (Kompaktheitssatz der Aussagenlogik)

Grundlagen des expliziten Model Checkings

Logik. Gabriele Kern-Isberner LS 1 Information Engineering. TU Dortmund Wintersemester 2014/15 WS 2014/15

Was bisher geschah Modellierung in Logiken: klassische Prädikatenlogik FOL(Σ, X) Spezialfall klassische Aussagenlogik AL(P)

Lineare Temporale Logik

Übung zur Vorlesung Theoretische Information. Produktautomat

13 Formale Spezifikation von Anforderungen

1.1 Motivation. Theorie der Informatik. Theorie der Informatik. 1.1 Motivation. 1.2 Syntax. 1.3 Semantik. 1.4 Formeleigenschaften. 1.

Erfüllbarkeit von Formelmengen

Transkript:

Model Checking mit SPIN Sabine Bauer 15.08.2005

2 Gliederung 1. Teil: Grundlagen des Model Checking - Abgrenzung zur deduktiven Verifikation - Das Model Checking-Problem - Kripke-Struktur - LTL - Arbeitsweise eines Model Checkers 2. Teil: Der Model Checker SPIN - Einführung in SPIN - Promela - in LTL, Promela und als Automat - Suchalgorithmus

1. Teil: Grundlagen des Model Checking

4 Abgrenzung zur deduktiven Verifikation Deduktive Verifikation - Formalisierung eines terminierenden Programms durch Vor- und Nachbedingungen, sowie Zusicherungen Model Checking - Beschreibung eines für den Endlosbetrieb konzipierten Computersystems durch temporallogische Formeln wie z.b. Jede Anfrage wird irgendwann beantwortet oder Niemals sind zwei Prozesse gleichzeitig in ihrem kritischen Abschnitt

Das Model Checking-Problem Programm Programm als Kripke-Struktur in LTL Model Checker vollautom.verifikationstool Nein + Fehlerhinweis Ja 5

Kripke-Struktur M = (S, S 0, R, L) start close washing Start start close washing Klappe öffnen S 1 Fertig S 2 Waschen start close washing S 0 Klappe schließen Klappe schließen Start S 3 start close washing 6

an das System Forderungen an alle Pfade: Sicherheitsbedingung: Ein unerwünschter Zustand darf nie erreicht werden! Lebendigkeitsbedingung: Ein erwünschter Zustand muss irgendwann erreicht werden! Die werden in LTL formuliert! 7

Linear Temporal Logic (LTL) Es gibt die folgenden vier grundlegenden Operatoren: Xp Fp Gp puq p gilt im nächsten Zustand p gilt irgendwann einmal p gilt immer Falls es einen Zustand gibt, in dem q gilt, dann muss in jedem vorherigen Zustand p erfüllt sein LTL baut auf der Aussagenlogik auf! 8

Kripke-Struktur: start close washing S 0 Klappe öffnen Klappe schließen Start start close washing S 1 LTL - Beispiele Klappe schließen Start Fertig S 2 start close washing Waschen in LTL: S 3 start close washing F washing G (washing X close) G ( (start close washing)) X (start close) 9

Kripke Struktur: start close washing S 0 Klappe öffnen Klappe schließen Start start close washing S 1 LTL - Beispiele Klappe schließen Start Fertig S 2 start close washing Waschen in LTL: Wie bekommt man die nicht zutreffenden?? S 3 start close washing F washing G (washing X close) G ( (start close washing)) X (start close) 10

11 Arbeitsweise eines Model Checkers Nötig: Automaten auf unendlichen Wörtern (Büchi - Automaten) (1) Fasse die Kripke-Struktur M als Automaten A M auf (2) Wandle die LTL-Formel ϕ in einen Automaten A um ϕ (3) Bilde den den Durchschnitt der Automaten von A M und A ϕ (4) Akzeptierte Sprache leer M erfüllt ϕ Akzeptierte Sprache nicht leer Durchschnitt enthält die Pfade von M, die ϕ verletzen

2. Teil: Der Model Checker SPIN

Simple Promela Interpreter (SPIN) Validation von Softwaremodellen Beschreibung der Softwaremodelle durch Promela (Process/Protocol Meta Language) - C ähnliche Syntax Angabe der zu erfüllenden Eigenschaften in LTL Haupteinsatzgebiet: Analyse von Kommunikationsprotokollen Entwickelt von Gerard Holzmann, Bell Laboratories 13

SPIN Programm Programm in Promela Programm als Kripke Struktur in LTL Model Checker vollautom.verifikationstool SPIN Nein + Fehlerhinweis Ja 14

SPIN Programm Programm in Promela Programm als Kripke Struktur in LTL Model Checker vollautom.verifikationstool SPIN Nein + Fehlerhinweis Ja 15

Promela - Beispiel mtype = { P, C }; mtype turn = P; active proctype producer() { do :: (turn == P) -> printf( Produce\n ); turn = C od } active proctype consumer() { do :: (turn == C) -> printf( Consume\n ); turn = P od } 16

SPIN Programm Programm in Promela Programm als Kripke Struktur in LTL Model Checker vollautom.verifikationstool SPIN Nein + Fehlerhinweis Ja 17

18 nach LTL Häufig benutzte LTL-Formeln: [] p <> p // immer p // irgendwann einmal p p <> q // wenn p, dann irgendwann q p q U r // wenn p, dann q bis r auftritt [] <> p <> [] p // immer irgendwann p // irgendwann immer p

SPIN Programm Programm in Promela Programm als Kripke Struktur in LTL Model Checker vollautom.verifikationstool SPIN Nein + Fehlerhinweis Ja 19

SPIN Programm Programm in Promela Programm als Kripke Struktur in Promela in LTL als Büchi-Automat SPIN Durchschnittsbildung Nein + Fehlerhinweis Ja 20

SPIN Programm Programm in Promela Programm als Kripke Struktur in Promela in LTL als Büchi-Automat SPIN Durchschnittsbildung Nein + Fehlerhinweis Ja 21

LTL nach Promela never { /* <> [] p */ T0_init: if :: (p) -> goto accept_s4 :: (1) -> goto T0_init fi; accept_s4: if :: (p) -> goto accept_s4 fi } 22

SPIN Programm Programm in Promela Programm als Kripke Struktur in Promela in LTL als Büchi-Automat SPIN Durchschnittsbildung Nein + Fehlerhinweis Ja 23

24 LTL/Promela nach Automat Büchi-Automat für <> [] p: true p p S 0 S 1 Büchi-Automat für [] <> p: true p p S 0 true S 1

SPIN Programm Programm in Promela Programm als Kripke Struktur in Promela in LTL als Büchi-Automat SPIN Durchschnittsbildung Nein + Fehlerhinweis Ja 25

26 Suchalgorithmus Büchi-Automat akzeptiert, wenn ein Endzustand unendlich oft durchlaufen wird Daher Suche ob 1. Endzustand vom Startzustand aus erreicht werden kann und 2. Endzustand von sich selbst aus erreichbar ist. 1. + 2. erfüllt Automat enthält die Pfade, die ϕ verletzen Andernfalls M erfüllt ϕ

Geschachtelte Tiefensuche p S 0 q S 1 S 3 q Akzeptiert nicht Akzeptiert S 2 p 27

Zusammenfassung Vorteile: Automatisierung des Verifikationsprozesses Im Fehlerfall werden direkt die verletzten Eigenschaften ermittelt Nachteile: System darf nur eine endliche Menge an Zuständen haben Mögliches Auftreten einer Zustandsexplosion Allgemein: SPIN ist auf dem Gebiet des Model Checking Marktführer 2001 bekam SPIN den Software System Award verliehen 28

Quellen Holzmann, Gerard J.: The Spin Model Checker, Boston, 2003 Tretow, Annekatrin: Seminar Logik in der Informatik, Model Checking Grundlagen, Uni Koblenz, 2004 Ciesinski, Frank: SPIN / PROMELA, Modelchecker und Spezifikationssprache, Uni Bonn, 2004 http://www-i7.informatik.rwth- aachen.de/d/teaching/ws0304/modelchk/divx- PDF.html http://www.lib.uni-bonn.de/informatik.html http://www.software-kompetenz.de 29