
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.
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.
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.
Pfad und pfad-spezifische Operatoren können miteinander kombiniert werden, sodass sich beispielsweise folgende Formeln ergeben:
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.