Computation Tree Logic

Aus testwiki
Zur Navigation springen Zur Suche springen
Datei:Computational Tree Logic Example.png
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 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

Minimale Grammatik

Sei AP eine Menge von atomaren Aussagen (Behauptungen), dann ist jedes Element pAP eine CTL-Formel. Sind ϕ und ψ Formeln, dann auch ¬ϕ, ϕψ, EXϕ, EGϕ und ϕEUψ. 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

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:
    • Aϕauf allen Pfaden folgt ϕ (englisch: All)
    • Eϕauf mindestens einem Pfad folgt ϕ (englisch: Exists)
  • Pfad-spezifische Operatoren:
    • Xϕunmittelbar folgt ϕ (englisch: neXt state)
    • Fϕirgendwann folgt ϕ (englisch: some Future state oder Finally)
    • Gϕauf dem folgenden Pfad folgt in jedem Zustand ϕ (englisch: Globally)
    • ϕUψϕ folgt bis zum Erreichen des Zustands ψ (englisch: Until)
    • ϕWψϕ 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:

  • EXϕin (mind.) einem nächsten Zustand gilt ϕ
  • EFϕin (mind.) einem der folgenden Zustände gilt ϕ
  • EGϕes gibt (mind.) einen Pfad, so dass ϕ entlang des ganzen Pfades gilt
  • E[ϕUψ]es gibt einen Pfad, für den gilt: bis zum ersten Auftreten von ψ gilt ϕ
  • AXϕin jedem nächsten Zustand gilt ϕ
  • AFϕman erreicht immer einen Zustand, in dem ϕ gilt
  • AGϕauf allen Pfaden gilt in jedem Zustand ϕ
  • A[ϕUψ]es gilt immer ϕ bis zum ersten Auftreten von ψ

Semantik

CTL Formeln werden über Transitionssysteme definiert. Für eine gegebene Folge von Zuständen des Systems T(s0)=s0,s1, (beginnend in Zustand s0) sind die Operatoren formal wie folgt definiert, dabei steht T(s0)ϕ für T(s0) erfüllt ϕ:

  • T(s0)¬ϕT(s0)⊭ϕ
  • T(s0)ϕψT(s0)ϕ oder T(s0)ψ
  • T(s0)EXϕT(s1)ϕ
  • T(s0)EGϕi:T(si)ϕ
  • T(s0)ϕEUψk:T(sk)ψi<k:T(si)ϕ

Die oben genannten Umformungen erlauben es, Formeln ineinander umzuwandeln.

  • ¬AϕE¬ϕ
  • ¬AFϕEG¬ϕ
  • ¬EFϕAG¬ϕ
  • ¬AXϕEX¬ϕ
  • AGϕϕAXAGϕ
  • EGϕϕEXEGϕ
  • AFϕϕAXAFϕ
  • EFϕϕEXEFϕ
  • A[ϕUψ]ψ(ϕAXA[ϕUψ])
  • E[ϕUψ]ψ(ϕEXE[ϕUψ])

Literatur

  • 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