2
Einführung Ziel des Model Checkings ist die Überprüfung einer Systembeschreibung auf die Erfüllung von Anforderungen mittels einer Software. Die automatische Überprüfung erledigt der Model Checker. Zu untersuchende Systeme können mit Hilfe von Zustandsübergangssystemen modelliert werden. Diese lassen sich übersichtlich als Graphen darstellen (Abb. 1). Zustandsübergangssysteme bestehen aus folgenden Komponenten: Zustände (im Beispiel s0, s1, s2) Transitionen zwischen den Zuständen (Pfeile) Zustandsaussagen (im Beispiel p, q, r) Durch Ausführung des Systems entsteht ein Berechnungsbaum, der alle möglichen unendlichen Abläufe des Systems darstellt (Abb. 2). Abläufe werden Pfade genannt. Beim Model Checking müssen Anforderungen an das System formuliert werden. Hierfür werden temporale Logiken genutzt. Diese sind eine Erweiterung der Aussagenlogik um temporale Operatoren. Sie ermöglichen zeitliche Einschränkungen der Gültigkeit von Aussagen (z.B. „immer“ oder „manchmal“). Temporale Logik ist eine spezielle modale Logik (Verwendung von Modaloperatoren zum Ausdruck von Modalitäten). Es existieren die folgenden temporalen Logiken: LTL - Linear-time Temporal Logic (~1960) CTL - Computation Tree Logic (~1980) CTL* (1986) Im folgenden Abschnitt wird CTL vorgestellt. CTL – Computation Tree Logic Eigenschaften von CTL: die Zeit wird als Baum aufgefasst Verzweigung in unterschiedliche Versionen der Zukunft (Pfade) Aussagen können auf bestimmte Pfade beschränkt werden CTL-Formeln beziehen sich auf einen Zustand s im Modell M. Für eine Formel φ überprüft der Model Checker die Erfüllbarkeitsrelation M ,s ² Meist wird der Model Checker zur Beantwortung der Frage eingesetzt, ob alle Zustände des Modells eine bestimmte Anforderung (=CTL- Formel) erfüllen. Die Antwort ist entweder positiv oder negativ. Bei einem negativen Ergebnis wird derjenige Systemdurchlauf ausgegeben, welcher die Anforderung verletzt hat. Aufbau von CTL-Formeln CTL-Formeln bestehen aus den folgenden Elementen Konstanten true und false atomare Zustandsaussagen boolesche Operatoren (not, and, or, Implikation) zusammengesetzte Operatoren, bestehend aus Pfadquantoren und Temporaloperatoren Syntax der CTL-Formeln φ in Backus-Naur-Form: http://www.se.uni-hannover.de Stand: 27.07.2006 Abb. 1: Zustandsübergangssystem Abb. 2: Berechnungsbaum (computation tree) Kurz & Gut Model Checking I - CTL von Florian Heyer

Model Checking I - CTL - se.uni- · PDF fileEinführung Ziel des Model Checkings ist die Überprüfung einer Systembeschreibung auf die Erfüllung von Anforderungen mittels einer Software

  • Upload
    dodang

  • View
    220

  • Download
    5

Embed Size (px)

Citation preview

Page 1: Model Checking I - CTL - se.uni- · PDF fileEinführung Ziel des Model Checkings ist die Überprüfung einer Systembeschreibung auf die Erfüllung von Anforderungen mittels einer Software

EinführungZiel des Model Checkings ist die Überprüfung einer Systembeschreibung auf die Erfüllung von Anforderungen mittels einer Software. Die automatische Überprüfung erledigt der Model Checker. Zu untersuchende Systeme können mit Hilfe von Zustandsübergangssystemen modelliert werden. Diese lassen sich übersichtlich als Graphen darstellen (Abb. 1). Zustandsübergangssysteme bestehen aus folgenden Komponenten:● Zustände (im Beispiel s0, s1, s2)● Transitionen zwischen den Zuständen (Pfeile)● Zustandsaussagen (im Beispiel p, q, r)Durch Ausführung des Systems entsteht ein Berechnungsbaum, der alle möglichen unendlichen Abläufe des Systems darstellt (Abb. 2). Abläufe werden Pfade genannt.Beim Model Checking müssen Anforderungen an das System formuliert werden. Hierfür werden temporale Logiken genutzt. Diese sind eine Erweiterung der Aussagenlogik um temporale Operatoren. Sie ermöglichen zeitliche Einschränkungen der Gültigkeit von Aussagen

(z.B. „immer“ oder „manchmal“). Temporale Logik ist eine spezielle modale Logik (Verwendung von Modaloperatoren zum Ausdruck von Modalitäten).Es existieren die folgenden temporalen Logiken:● LTL - Linear-time Temporal Logic (~1960)● CTL - Computation Tree Logic (~1980)● CTL* (1986)Im folgenden Abschnitt wird CTL vorgestellt.

CTL – Computation Tree LogicEigenschaften von CTL:● die Zeit wird als Baum aufgefasst● Verzweigung in unterschiedliche Versionen

der Zukunft (Pfade)● Aussagen können auf bestimmte Pfade

beschränkt werdenCTL-Formeln beziehen sich auf einen Zustand s im Modell M. Für eine Formel φ überprüft der Model Checker die ErfüllbarkeitsrelationM ,s²

Meist wird der Model Checker zur Beantwortung der Frage eingesetzt, ob alle Zustände des Modells eine bestimmte Anforderung (=CTL-Formel) erfüllen. Die Antwort ist entweder positiv oder negativ. Bei einem negativen Ergebnis wird derjenige Systemdurchlauf ausgegeben, welcher die Anforderung verletzt hat.

Aufbau von CTL-Formeln

CTL-Formeln bestehen aus den folgenden Elementen● Konstanten true und false● atomare Zustandsaussagen● boolesche Operatoren (not, and, or,

Implikation)● zusammengesetzte Operatoren, bestehend

aus Pfadquantoren und TemporaloperatorenSyntax der CTL-Formeln φ in Backus-Naur-Form:

http://www.se.uni-hannover.de Stand: 27.07.2006

Abb. 1: Zustandsübergangssystem

Abb. 2: Berechnungsbaum (computation tree)

Kurz & Gut

Model Checking I - CTLvon Florian Heyer

Page 2: Model Checking I - CTL - se.uni- · PDF fileEinführung Ziel des Model Checkings ist die Überprüfung einer Systembeschreibung auf die Erfüllung von Anforderungen mittels einer Software

Kurz & Gut: Model Checking I – CTL von Florian Heyer

φ ::= | T | p | (¬φ) | (φ φ) | (φ φ) | (φ → φ) | ⊥ ∧ ∨

<compositeOp>

<compositeOp> ::= A<temporalOp> | E<temporalOp>

<temporalOp> ::= X φ | F φ | G φ | [φ U φ]

Bedeutung der Operatoren

Zusammengesetzte Operatoren (Elemente der Klasse <compositeOp>) bestehen aus Paaren von Pfadquantor und Temporaloperator:Pfadquantoren● A - All: Aussage gilt für alle in Zustand s beginnenden

Pfade

● E - Exists: Aussage gilt für mindestens einen Pfad, der in Zustand s beginnt

Temporaloperatoren (bezogen auf die Zukunft)● unär

- X – neXt: Aussage gilt im nächsten Zustand

- F – Future: Aussage gilt in Zustand in der Zukunft

- G – Global: Aussage gilt für kompletten Pfad

● binär

- U – Until: Aussage1 gilt für alle Zustände bis Aussage2 gilt und Aussage2 wird gelten

Es ergeben sich somit die folgenden acht zusammengesetzten Operatoren (Kombination aller Pfadquantoren mit allen Temporaloperatoren):

Operator BedeutungAX φ gilt gdw. in jedem nächsten Zustand φ giltAF φ gilt gdw. man immer einen Zustand erreicht,

der φ erfülltAG φ gilt gdw. in allen Pfaden φ gilt

A[φ U ψ] gilt gdw. immer φ bis zum ersten Auftreten von ψ gilt

EX φ gilt gdw. in (mind.) einem nächsten Zustand φ gilt

EF φ gilt gdw. in (mind.) einem der folgenden Zustände φ gilt

EG φ gilt gdw. es (mind.) einen Pfad gibt, so dass φ entlang des ganzen Pfades gilt

E[φ U ψ] gilt gdw. es einen Pfad gibt, für den gilt: bis zum ersten Auftreten von ψ gilt φ

Der Model CheckerImplementierung der Erfüllbarkeitsrelation

Die Erfüllbarkeitsrelation kann leicht fallweise und rekursiv definiert werden: Für jedes Element der CTL-Formeln kann die Erfüllbarkeit aus der

Erfüllbarkeit der enthaltenen Terme ermittelt werden.

Semantische Äquivalenz von CTL-Formeln

Zwei CTL-Formeln sind dann äquivalent, wenn ein beliebiger Zustand aus einem beliebigen Modell, der die eine Formel erfüllt, auch die andere Formel erfüllt. Dies ermöglicht die Ersetzung von Ausdrücken durch äquivalente Ausdrücke. Auf diese Weise kann die Menge der zusammengesetzten Operatoren auf eine Untermenge beschränkt werden, mit denen die restlichen Operatoren ausdrückbar sind. Ein Beispiel für eine solche adäquate Menge ist AF, EU, EX.Dies erleichtert die Implementierung des Model Checkers, da eine adäquate Menge von Operatoren ausgesucht werden kann, deren Implementierung einfach ist.

Algorithmen für die Verifikation

Markierungsalgorithmus (labelling algorithm)● Eingabe: ein Modell M und eine CTL-Formel

φ● Ausgabe: alle Zustände in M, die φ erfüllen● Effizienz nach Optimierung: Aufwand ist linear

zur Größe von Formel und ModellSymbolisches Model Checking● verwendet OBDD (ordered binary decision

diagrams)

Anwendungen

Siehe Quelle [2].

Bewertung Model CheckingVorteile Nachteile

● wird durch vielfältige Tools gut unterstützt

● wird in der Praxis eingesetzt

● ist aktuelles Lehr- und Forschungsthema

● Abstraktion des realen Systems in ein formales Modell ist schwierig

● CTL-Formeln höchst komplex

● state explosion problem

http://www.se.uni-hannover.de Stand: 27.07.2006

Literatur:[1] Michael Huth, Mark Ryan: „Logic in Computer Science

- Modelling and Reasoning about Systems“, Cambridge University Press, 2004.

[2] Liste von Applikationen zum Thema Model Checking:http://www.pst.ifi.lmu.de/lehre/SS06/modelcheck/mc-list.html