Model Checking I - fileInhaltModel Checking Computational Tree LogicModel Checking mit NuSMV 1...

22
Inhalt Model Checking Computational Tree Logic Model Checking mit NuSMV Model Checking I Matthias Meitner Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg Meitner, Spisländer FAU Erlangen-Nürnberg Model Checking I 1 / 22

Transcript of Model Checking I - fileInhaltModel Checking Computational Tree LogicModel Checking mit NuSMV 1...

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