Model Checking I

Werbung
Kurz & Gut
Model Checking I - CTL
von Florian Heyer
Einführung
(z.B. „immer“ oder „manchmal“). Temporale Logik
ist eine spezielle modale Logik (Verwendung von
Modaloperatoren zum Ausdruck von
Modalitäten).
Ziel des Model Checkings ist die Überprüfung
einer Systembeschreibung auf die Erfüllung von
Anforderungen mittels einer Software. Die
Es existieren die folgenden temporalen Logiken:
automatische Überprüfung erledigt der Model
Checker. Zu untersuchende Systeme können mit ● LTL - Linear-time Temporal Logic (~1960)
Hilfe von Zustandsübergangssystemen modelliert
● CTL - Computation Tree Logic (~1980)
werden. Diese lassen sich übersichtlich als
● CTL* (1986)
Graphen darstellen (Abb. 1).
Zustandsübergangssysteme bestehen aus
Im folgenden Abschnitt wird CTL vorgestellt.
folgenden Komponenten:
CTL – Computation Tree Logic
●
Zustände (im Beispiel s0, s1, s2)
●
Transitionen zwischen den Zuständen (Pfeile) Eigenschaften von CTL:
Zustandsaussagen (im Beispiel p, q, r)
● die Zeit wird als Baum aufgefasst
●
Durch Ausführung
des Systems
entsteht ein
Berechnungsbaum,
der alle möglichen
unendlichen Abläufe
des Systems
darstellt (Abb. 2).
Abläufe werden
Abb. 1:
Pfade genannt.
Zustandsübergangssystem
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
●
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 (=CTLFormel) 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
Abb. 2: Berechnungsbaum (computation tree)
http://www.se.uni-hannover.de
●
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:
Stand: 27.07.2006
Kurz & Gut: Model Checking I – CTL
φ ::= ⊥ | 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
Bedeutung
AX φ
gilt gdw. in jedem nächsten Zustand φ gilt
AF φ
gilt gdw. man immer einen Zustand erreicht,
der φ erfüllt
AG φ
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
von Florian Heyer
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 Modell
Symbolisches Model Checking
●
verwendet OBDD (ordered binary decision
diagrams)
Anwendungen
Siehe Quelle [2].
Bewertung Model Checking
Vorteile
EF φ
gilt gdw. in (mind.) einem der folgenden
Zustände φ gilt
●
wird durch vielfältige
Tools gut unterstützt
EG φ
gilt gdw. es (mind.) einen Pfad gibt, so dass φ
entlang des ganzen Pfades gilt
●
gilt gdw. es einen Pfad gibt, für den gilt: bis
zum ersten Auftreten von ψ gilt φ
●
E[φ U ψ]
Der Model Checker
Implementierung der Erfüllbarkeitsrelation
Nachteile
●
wird in der Praxis
eingesetzt
Abstraktion des realen
Systems in ein formales
Modell ist schwierig
●
ist aktuelles Lehr- und
Forschungsthema
CTL-Formeln höchst
komplex
●
state explosion problem
Literatur:
[1] Michael Huth, Mark Ryan: „Logic in Computer Science
- Modelling and Reasoning about Systems“,
Cambridge University Press, 2004.
Die Erfüllbarkeitsrelation kann leicht fallweise und
rekursiv definiert werden: Für jedes Element der
[2] Liste von Applikationen zum Thema Model Checking:
http://www.pst.ifi.lmu.de/lehre/SS06/modelcheck/mcCTL-Formeln kann die Erfüllbarkeit aus der
list.html
http://www.se.uni-hannover.de
Stand: 27.07.2006
Herunterladen