„Computation Tree Logic“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
Aka (Diskussion | Beiträge) K Tippfehler entfernt, Links optimiert, Kleinkram |
Aka (Diskussion | Beiträge) K →Temporale Operatoren: Leerzeichen |
||
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Datei:Computational Tree Logic Example.png| |
[[Datei:Computational Tree Logic Example.png|mini|hochkant=1.25|CTL-Formeln visualisiert]] |
||
Die '''Computation Tree Logic''' (kurz CTL) ist eine [[Temporale Logik]], deren Modell der Zeit eine baumartige Struktur hat. Die zeitliche Änderung von Zuständen und deren Eigenschaften wird durch Pfade innerhalb dieser Baumstruktur modelliert. Hierbei hat die Zukunft mehrere Pfade, wobei nicht festgelegt ist, welche letztendlich realisiert werden. Demnach können Aussagen über die mögliche Entwicklungen getroffen werden. |
Die '''Computation Tree Logic''' (kurz CTL) ist eine [[Temporale Logik]], deren Modell der Zeit eine baumartige Struktur hat. Die zeitliche Änderung von Zuständen und deren Eigenschaften wird durch Pfade innerhalb dieser Baumstruktur modelliert. Hierbei hat die Zukunft mehrere Pfade, wobei nicht festgelegt ist, welche letztendlich realisiert werden. Demnach können Aussagen über die mögliche Entwicklungen getroffen werden. |
||
Zeile 5: | Zeile 5: | ||
Die CTL wird zur [[Verifizierung|Verifikation]] von Hard- und Software verwendet, üblicherweise von [[Model Checking|Model Checkern]]. |
Die CTL wird zur [[Verifizierung|Verifikation]] von Hard- und Software verwendet, üblicherweise von [[Model Checking|Model Checkern]]. |
||
Zu der Familie der temporalen Logiken gehört auch die [[Lineare temporale Logik|Linear temporale Logik]] (LTL), wobei hier nur eine Zukunft möglich ist. Eine Verallgemeinerung der beiden Logiken wird |
Zu der Familie der temporalen Logiken gehört auch die [[Lineare temporale Logik|Linear temporale Logik]] (LTL), wobei hier nur eine Zukunft möglich ist. Eine Verallgemeinerung der beiden Logiken wird als CTL* bezeichnet. |
||
== Syntax == |
== Syntax == |
||
=== Minimale Grammatik === |
=== Minimale Grammatik === |
||
Sei <math>AP</math> eine Menge von [[Aussage (Logik)#Einfach – zusammengesetzt|atomaren Aussagen]] (Behauptungen), dann ist jedes Element <math>p \in AP</math> eine CTL-Formel. Sind <math>\phi</math> und <math>\psi</math> Formeln, dann auch <math>\neg\phi</math>, <math>\phi \lor \psi</math>, <math>\text{EX}\phi</math>, <math>\text{EG} \phi</math> und <math>\phi \text{EU} \psi</math>. Dies definiert die minimale [[Formale Grammatik|Grammatik]] von CTL. In der Regel wird diese allerdings um die gängigen [[Boolescher Operator|booleschen Operatoren]] <math>\land</math>, <math>\implies</math>und <math>\Lrarr</math>, sowie einigen weiteren temporalen Operatoren erweitert. |
Sei <math>AP</math> eine Menge von [[Aussage (Logik)#Einfach – zusammengesetzt|atomaren Aussagen]] (Behauptungen), dann ist jedes Element <math>p \in AP</math> eine CTL-Formel. Sind <math>\phi</math> und <math>\psi</math> Formeln, dann auch <math>\neg\phi</math>, <math>\phi \lor \psi</math>, <math>\text{EX}\phi</math>, <math>\text{EG} \phi</math> und <math>\phi \text{EU} \psi</math>. Dies definiert die minimale [[Formale Grammatik|Grammatik]] von CTL. In der Regel wird diese allerdings um die gängigen [[Boolescher Operator|booleschen Operatoren]] <math>\land</math>, <math>\implies</math>und <math>\Lrarr</math>, sowie einigen weiteren temporalen Operatoren erweitert. |
||
Zeile 16: | Zeile 15: | ||
* Pfadoperatoren: |
* Pfadoperatoren: |
||
** <math>A\phi</math> – ''auf allen Pfaden folgt <math>\phi</math>'' |
** <math>A\phi</math> – ''auf allen Pfaden folgt <math>\phi</math>'' (englisch: ''All'') |
||
** <math>E\phi</math> – ''auf mindestens einem Pfad folgt <math>\phi</math>'' |
** <math>E\phi</math> – ''auf mindestens einem Pfad folgt <math>\phi</math>'' (englisch: ''Exists'') |
||
* Pfad-spezifische Operatoren: |
* Pfad-spezifische Operatoren: |
||
** <math>X\phi</math> – ''unmittelbar folgt <math>\phi</math>'' (englisch: ''neXt state'') |
** <math>X\phi</math> – ''unmittelbar folgt <math>\phi</math>'' (englisch: ''neXt state'') |
||
Zeile 27: | Zeile 26: | ||
Pfad und pfad-spezifische Operatoren können miteinander kombiniert werden, sodass sich beispielsweise folgende Formeln ergeben: |
Pfad und pfad-spezifische Operatoren können miteinander kombiniert werden, sodass sich beispielsweise folgende Formeln ergeben: |
||
* <math>EX\phi</math> –''in (mind.) einem nächsten Zustand gilt'' <math>\phi</math> |
* <math>EX\phi</math> – ''in (mind.) einem nächsten Zustand gilt'' <math>\phi</math> |
||
* <math>EF\phi</math> – ''in (mind.) einem der folgenden Zustände gilt'' <math>\phi</math> |
* <math>EF\phi</math> – ''in (mind.) einem der folgenden Zustände gilt'' <math>\phi</math> |
||
* <math>EG\phi</math> – ''es gibt (mind.) einen Pfad, so dass <math>\phi</math> entlang des ganzen Pfades gilt'' |
* <math>EG\phi</math> – ''es gibt (mind.) einen Pfad, so dass <math>\phi</math> entlang des ganzen Pfades gilt'' |
||
Zeile 39: | Zeile 38: | ||
CTL Formeln werden über [[Transitionssystem]]e definiert. Für eine gegebene Folge von Zuständen des Systems <math>T(s_0) = s_0, s_1, \ldots</math> (beginnend in Zustand <math>s_0</math>) sind die Operatoren formal wie folgt definiert, dabei steht <math>T(s_0) \models \phi</math> für <math>T(s_0)</math> erfüllt <math>\phi</math>: |
CTL Formeln werden über [[Transitionssystem]]e definiert. Für eine gegebene Folge von Zuständen des Systems <math>T(s_0) = s_0, s_1, \ldots</math> (beginnend in Zustand <math>s_0</math>) sind die Operatoren formal wie folgt definiert, dabei steht <math>T(s_0) \models \phi</math> für <math>T(s_0)</math> erfüllt <math>\phi</math>: |
||
* <math>T(s_0) \models \neg \phi |
* <math>T(s_0) \models \neg \phi \quad \Lrarr \quad T(s_0) \not\models \phi </math> |
||
* <math>T(s_0) \models \phi \lor \psi |
* <math>T(s_0) \models \phi \lor \psi \quad \Lrarr \quad T(s_0) \models \phi \text{ oder } T(s_0) \models \psi </math> |
||
* <math>T(s_0) \models EX\phi \quad \Lrarr |
* <math>T(s_0) \models EX\phi \quad \Lrarr \quad T(s_1) \models \phi </math> |
||
* <math>T(s_0) \models EG\phi \quad \Lrarr \quad \forall i: T(s_i) \models \phi </math> |
* <math>T(s_0) \models EG\phi \quad \Lrarr \quad \forall i: T(s_i) \models \phi </math> |
||
* <math>T(s_0) \models \phi EU \psi \quad \Lrarr \quad \exists k: T(s_k) \models \psi \land \forall i < k: T(s_i) \models \phi</math> |
* <math>T(s_0) \models \phi EU \psi \quad \Lrarr \quad \exists k: T(s_k) \models \psi \land \forall i < k: T(s_i) \models \phi</math> |
||
Zeile 58: | Zeile 57: | ||
== Literatur == |
== Literatur == |
||
* Clarke, Grumberg, Peled: ''Model Checking''. MIT Press, 2000 |
* Clarke, Grumberg, Peled: ''Model Checking''. MIT Press, 2000, ISBN 0-262-03270-8 |
||
* Rohit Kapur: ''CTL for Test Information of Digital ICS'' |
* Rohit Kapur: ''CTL for Test Information of Digital ICS''. Springer, 2002, ISBN 978-1-4020-7293-2 |
||
* B. Berard, Michel Bidoit, Alain Finkel: ''Systems and Software Verification |
* B. Berard, Michel Bidoit, Alain Finkel: ''Systems and Software Verification. Model-checking Techniques and Tools.'' Springer, 2001, ISBN 3-540-41523-8 |
||
* M. Huth and M. Ryan: ''Logic in Computer Science - Modelling and Reasoning about Systems''. Cambridge, 2004, ISBN 0-521-54310-X |
* M. Huth and M. Ryan: ''Logic in Computer Science - Modelling and Reasoning about Systems''. Cambridge, 2004, ISBN 0-521-54310-X |
||
Aktuelle Version vom 29. November 2020, 20:27 Uhr

Die Computation Tree Logic (kurz CTL) ist eine Temporale Logik, deren Modell der Zeit eine baumartige Struktur hat. Die zeitliche Änderung von Zuständen und deren Eigenschaften wird durch Pfade innerhalb dieser Baumstruktur modelliert. Hierbei hat die Zukunft mehrere Pfade, wobei nicht festgelegt ist, welche letztendlich realisiert werden. Demnach können Aussagen über die mögliche Entwicklungen getroffen werden.
Die CTL wird zur Verifikation von Hard- und Software verwendet, üblicherweise von Model Checkern.
Zu der Familie der temporalen Logiken gehört auch die Linear temporale Logik (LTL), wobei hier nur eine Zukunft möglich ist. Eine Verallgemeinerung der beiden Logiken wird als CTL* bezeichnet.
Syntax
[Bearbeiten | Quelltext bearbeiten]Minimale Grammatik
[Bearbeiten | Quelltext bearbeiten]Sei eine Menge von atomaren Aussagen (Behauptungen), dann ist jedes Element eine CTL-Formel. Sind und Formeln, dann auch , , , und . Dies definiert die minimale Grammatik von CTL. In der Regel wird diese allerdings um die gängigen booleschen Operatoren , und , sowie einigen weiteren temporalen Operatoren erweitert.
Temporale Operatoren
[Bearbeiten | Quelltext bearbeiten]Die Erweiterung der minimalen Grammatik um folgende Operatoren erhöht nicht die Mächtigkeit der Sprache, da alle Operatoren durch Umformungen zurückgeführt werden können.
- Pfadoperatoren:
- – auf allen Pfaden folgt (englisch: All)
- – auf mindestens einem Pfad folgt (englisch: Exists)
- Pfad-spezifische Operatoren:
- – unmittelbar folgt (englisch: neXt state)
- – irgendwann folgt (englisch: some Future state oder Finally)
- – auf dem folgenden Pfad folgt in jedem Zustand (englisch: Globally)
- – folgt bis zum Erreichen des Zustands (englisch: Until)
- – folgt immer oder bis zum Erreichen des Zustands (englisch: Weak Until)
Pfad und pfad-spezifische Operatoren können miteinander kombiniert werden, sodass sich beispielsweise folgende Formeln ergeben:
- – in (mind.) einem nächsten Zustand gilt
- – in (mind.) einem der folgenden Zustände gilt
- – es gibt (mind.) einen Pfad, so dass entlang des ganzen Pfades gilt
- – es gibt einen Pfad, für den gilt: bis zum ersten Auftreten von gilt
- – in jedem nächsten Zustand gilt
- – man erreicht immer einen Zustand, in dem gilt
- – auf allen Pfaden gilt in jedem Zustand
- – es gilt immer bis zum ersten Auftreten von
Semantik
[Bearbeiten | Quelltext bearbeiten]CTL Formeln werden über Transitionssysteme definiert. Für eine gegebene Folge von Zuständen des Systems (beginnend in Zustand ) sind die Operatoren formal wie folgt definiert, dabei steht für erfüllt :
Die oben genannten Umformungen erlauben es, Formeln ineinander umzuwandeln.
Literatur
[Bearbeiten | Quelltext bearbeiten]- Clarke, Grumberg, Peled: Model Checking. MIT Press, 2000, ISBN 0-262-03270-8
- Rohit Kapur: CTL for Test Information of Digital ICS. Springer, 2002, ISBN 978-1-4020-7293-2
- B. Berard, Michel Bidoit, Alain Finkel: Systems and Software Verification. Model-checking Techniques and Tools. Springer, 2001, ISBN 3-540-41523-8
- M. Huth and M. Ryan: Logic in Computer Science - Modelling and Reasoning about Systems. Cambridge, 2004, ISBN 0-521-54310-X