계산 트리 논리(CTL)는 분기 시간 논리로서, 그 시간의 모델은 미래가 결정되지 않은 나무와 같은 구조라는 것을 의미한다. 미래에는 다른 경로가 있는데, 그 중 어느 것이든 실현되는 실제 경로가 될 수 있다.소프트웨어 또는 하드웨어 아티팩트의 공식 검증에 사용되며, 일반적으로 모델 체커로 알려진 소프트웨어 응용 프로그램에 의해, 주어진 아티팩트가 안전성 또는 강도 속성을 가지고 있는지 여부를 결정한다.예를 들어, CTL은 일부 초기 조건이 충족될 때(예: 모든 프로그램 변수가 양수 또는 2차로를 가로지르는 고속도로에서 차량이 없음) 프로그램의 모든 가능한 실행은 바람직하지 않은 조건(예를 들어, 고속도로에서 충돌하는 차량 0 또는 2대로 나누기)을 회피하도록 지정할 수 있다.이 예에서 안전 속성은 초기 조건을 만족하는 프로그램 상태에서 가능한 모든 전환을 탐구하고 그러한 모든 실행이 속성을 만족하는지 확인하는 모델 검사기로 검증될 수 있다.계산 트리 논리는 선형 시간 논리(LTL)를 포함하는 시간 로직의 클래스에 속한다.CTL에서만 표현할 수 있는 속성과 LTL에서만 표현할 수 있는 속성이 있지만, 두 로직에서 모두 표현할 수 있는 속성은 CTL*로도 표현할 수 있다.
여기서 은(는) 일련의 원자 공식에 걸쳐 있다.예를 들어 { , , , , mbox{\ 등의 모든 커넥티브를 사용할 필요는 없다.은(는) 전체 연결기 집합으로 구성되며, 다른 연결기 집합은 이를 사용하여 정의할 수 있다.
은(는) '모든 경로와 함께'(불가침)를 의미한다.
은(는) '하나 이상의 경로(존재)'를 의미한다(가급적).
예를 들어, 다음은 잘 형성된 CTL 공식이다.
)
다음은 제대로 형성된 CTL 공식은 아니다.
이 문자열의 문제는 이(가) 또는과(와) 쌍을 이룰 때만 발생할 수 있다는 점이다
CTL은 시스템의 상태에 대한 진술을 하기 위해 원자 제안을 그것의 구성 요소로 사용한다.그런 다음 이러한 명제는 논리연산자와 시간 연산자를 사용하여 공식으로 결합된다.
연산자
논리 연산자
논리 연산자는 보통 ones, ∨, ∧, ⇒, ⇔.이러한 연산자와 함께 CTL 공식도 참 및 거짓 부울 상수를 사용할 수 있다.
시간 연산자
시간 연산자는 다음과 같다.
경로에 대한 정량자
A φ – All: φ은 현재 상태에서 시작하는 모든 경로를 유지하여야 한다.
E φ – 존재함: holds이 유지되는 현재 상태에서 시작하는 경로가 하나 이상 있음.
경로별 정량자
Xφ – Next: φ은 다음 상태를 유지해야 한다(이 연산자는 X 대신N으로 표시되기도 한다).
Gφ – Global: φ은 이후의 모든 경로를 고수해야 한다.
Fφ – 마지막으로: eventually은 결국 (뒤의 어느 경로에서) 버텨야 한다.
φUψ – φ은 적어도 어떤 위치에서 ψ이 버틸 때까지 버텨야 한다.향후 ψ이 검증될 것임을 시사한 것이다.
φWψ – 약자: ψ은 ψ이 버틸 때까지 버텨야 한다.U와의 차이점은 ψ이 영원히 검증될 것이라는 보장이 없다는 점이다.W 연산자를 "만약에"라고 부르기도 한다.
CTL*에서는 시간 연산자를 자유롭게 혼합할 수 있다.CTL에서 운영자는 항상 하나의 경로 운영자에 이어 상태 운영자로 분류되어야 한다.아래 예제를 참조하십시오.CTL*은 CTL보다 확실히 더 표현력이 뛰어나다.
최소 연산자 집합
CTL에는 최소한의 연산자 집합이 있다.모든 CTL 공식은 이러한 연산자만 사용하도록 변환할 수 있다.이것은 모델 확인에 유용하다.최소한의 연산자 집합은 다음과 같다: {true, ∨, ¬, EG, EU, EX}.
시간 연산자에 사용되는 변환의 일부는 다음과 같다.
EFφ == E[trueU(properties)] (Fφ == [trueU(properties)] 때문에 )
AXφ == ¬EX(¬φ)
AGφ == ¬EF(¬) == = E[trueU(()]
AFφ == A[trueUφ] == ¬EG(¬φ)
A[φUψ] == ¬(E[(¬ψ))U¬(φ∨)] ∨ EG(¬¬) )
CTL의 의미론
정의
CTL 공식은 전이 시스템을 통해 해석된다.A transition system is a triple , where is a set of states, is a transition relation, assumed to be serial, i.e. every state has at least one successor, and 은 주(州)에 제안 문자를 할당하는 레이블 지정 기능이다. M=( ,→) 화살표,을(를) 변환 모델로 사용
^David, Amélie; Laroussinie, Francois; Markey, Nicolas (2016). Desharnais, Josée; Jagadeesan, Radha (eds.). "On the Expressiveness of QCTL". 27th International Conference on Concurrency Theory (CONCUR 2016). Leibniz International Proceedings in Informatics (LIPIcs). Dagstuhl, Germany: Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik. 59: 28:1–28:15. doi:10.4230/LIPIcs.CONCUR.2016.28. ISBN978-3-95977-017-0.
^Hossain, Akash; Laroussinie, François (2019). Gamper, Johann; Pinchinat, Sophie; Sciavicco, Guido (eds.). "From Quantified CTL to QBF". 26th International Symposium on Temporal Representation and Reasoning (TIME 2019). Leibniz International Proceedings in Informatics (LIPIcs). Dagstuhl, Germany: Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik. 147: 11:1–11:20. doi:10.4230/LIPIcs.TIME.2019.11. ISBN978-3-95977-127-6.
Michael Huth; Mark Ryan (2004). Logic in Computer Science (Second Edition). Cambridge University Press. p. 207. ISBN978-0-521-54310-1.
Emerson, E. A.; Halpern, J. Y. (1985). "Decision procedures and expressiveness in the temporal logic of branching time". Journal of Computer and System Sciences. 30 (1): 1–24. doi:10.1016/0022-0000(85)90001-7.
Clarke, E. M.; Emerson, E. A. & Sistla, A. P. (1986). "Automatic verification of finite-state concurrent systems using temporal logic specifications". ACM Transactions on Programming Languages and Systems. 8 (2): 244–263. doi:10.1145/5397.5399.
Emerson, E. A. (1990). "Temporal and modal logic". In Jan van Leeuwen (ed.). Handbook of Theoretical Computer Science, vol. B. MIT Press. pp. 955–1072. ISBN978-0-262-22039-2.