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