Upload
vuongliem
View
238
Download
0
Embed Size (px)
Citation preview
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Model Checking I
Matthias Meitner Marc Spisländer
Lehrstuhl für Software EngineeringFriedrich-Alexander-Universität Erlangen-Nürnberg
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 1 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
1 Inhalt
2 Model Checking
3 Computational Tree LogicSyntax von CTLInterpretation von CTLZusammenfassung
4 Model Checking mit NuSMV
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 2 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Model Checking
Ziel
Fehlerentdeckung in der Systemspezifikation
Vorgehensweise
1 Modellierung des Systems durch endlichesZustandstransitionssystem
2 Formulierung der Anforderungen, die das System erfüllen muss,durch logische Formeln
3 Automatisches Beweisen, dass das System die Anforderungerfüllt oder nicht erfüllt
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 3 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Model Checking im Praktikum
Werkzeug
NuSMV http://nusmv.irst.itc.it
Formalismus
Computational Tree Logic (CTL)
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 4 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Computational Tree LogicIdee
Betrachte Modell eines Systems:
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 5 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Computational Tree LogicIdee
Frage
Gibt es einen Übergangspfad aus demStartzustand in den Zustand C?
Formal
Ist die CTL-Formel S |= EF (a = 1∧ b = 1)wahr?
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 6 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Atomare CTL-Formeln
Definition
Sei AP eine endliche Menge von atomaren Aussagen. Falls A ∈ AP,dann ist A eine CTL-Formel.
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 7 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Zusammengesetzte CTL-Formeln
Definition
Falls F1 und F2 CTL-Formeln sind, dann sind folgende Wörterebenfalls CTL-Formeln:
¬F1
F1 ∧ F2
AX F1
EX F1
A[F1 U F2]
E[F1 U F2]
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 8 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Interpretation der CTL-Formeln
CTL-Formeln werden durch CTL-Strukturen interpretiert.
Definition
Eine CTL-Struktur ist ein Tripel (S, R, P), mit
S endliche Zustandsmenge
R ⊆ S× S totale Übergangsrelation
P : S→ 2AP ordnet jedem Zustand z ∈ S alle in z wahren Aussagenzu.
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 9 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Atomare CTL-Formeln
Definition
A ∈ AP ist wahr im Zustand s ∈ S, genau dann wenn A ∈ P(s).Schreibweise: s |= A.
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 10 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Zusammengesetzte CTL-Formeln
Definition
Für s ∈ S und CTL-Formeln F1 und F2 definiert man:
s |= ¬F1 gdw. F1 in s nicht wahr ist
s |= F1 ∧ F2 gdw. F1 und F2 in s wahr sind
s |= AX F1 gdw. F1 in allen direkten Nachfolgern von s wahr ist
s |= EX F1 gdw. F1 in einem direkten Nachfolger von s wahr ist
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 11 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Zusammengesetzte CTL-Formeln
Definition
s |= A[F1 U F2] gdw. für alle Pfade (z0 = s, z1, z2, . . .) gilt:
Es existiert ein i ≥ 0 mit zi |= F2 und zj |= F1 für alle j < i.
Definition
s |= E[F1 U F2] gdw. es einen Pfad (z0 = s, z1, z2, . . .) gibt, für dengilt:
Es existiert ein i ≥ 0 mit zi |= F2 und zj |= F1 für alle j < i.
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 12 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Abkürzungen für CTL-Formeln
AF F A[True U F]F ist unvermeidbar
EF F E[True U F]F ist möglich
AG F ¬EF¬FAuf allen Pfaden, die im aktuellen Zustand starten, ist Fin jedem Zustand des Pfades wahr.
EG F ¬AF¬FEs existiert ein Pfad, der im aktuellen Zustand startet,so dass F in jedem Zustand des Pfades wahr ist.
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 13 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Grafische Veranschaulichung der CTL-Formeln
EG F EX F EF F E[F1 U F2]
AG F AX F AF F A[F1 U F2]
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 14 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Das Model-Checking-Problem
Gegeben
CTL-Struktur, Zustand s und CTL-Formel F.
Gesucht
Gilt s |= F?
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 15 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Model Checking mit NuSMV
NuSMV erlaubt:
die Formulierung einer CTL-Struktur
die Simulation von Zustandsübergängen in der CTL-Struktur
Model Checking (Lebendigkeit, Deadlocks, . . . )
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 16 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Das NuSMV-Modell
Das NuSMV-Modell besteht aus benannten Modulen; eins davonmuss main heißen.
Innerhalb von Modulen kann man Variablen deklarieren, ihneneinen Initialwert zuweisen und ihren Wert im sog. nächstenSchritt definieren.
Variablen haben endlichen Wertebereich
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 17 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Das NuSMV-ModellDer Zustandsraum von CTL-Strukturen
Module werden instanziiert.
Alle Modulinstanzen zusammen definieren den Zustandsraumeiner CTL-Struktur, wie z. B.:
S = Wxa ×Wya ×Wxb . . .
wobei Wxa der Wertebereich der Variablen x in der Modulinstanza ist.
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 18 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Das NuSMV-ModellDie Übergangsrelation von CTL-Strukturen
Die Instanziierungsart der Module definiert die Übergangsrelationder CTL-Struktur.
Zwei Arten von Modulinstanziierungen:
synchron Der nächste Zustand wird definiert, indem alleVariablen aller Modulinstanzen auf ihren Wert imnächsten Schritt gesetzt werden.
asynchron Der nächste Zustand wird definiert, indem alleVariablen genau einer Instanz auf ihren Wert imnächsten Schritt gesetzt werden.
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 19 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Beispiel
1 MODULE mainVAR
3 semaphore: {red, red_yellow, green, yellow};INIT
5 semaphore = red;ASSIGN
7 next(semaphore) :=case
9 semaphore = red : red_yellow;semaphore = red_yellow : green;
11 semaphore = green : yellow;semaphore = yellow : red;
13 esac;
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 20 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Model Checking mit NuSMVSpezifikation von Anforderungen
1 SPEC AG((semaphore = green −> AF semaphore = red) &
3 (semaphore = red −> AF semaphore = green));
5 SPEC AG AF semaphore = green;
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 21 / 22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV
Wichtige NuSMV-Befehle
NuSMV im interaktiven Modus starten:
NuSMV -int Modellname
Übersicht über alle Befehle:
help
Beschreibung eines Befehls:
befehl -h
Initialisierung des System für die Verifikation:
go
Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 22 / 22