Fact-checked by Grok 2 weeks ago

Computation tree logic

Computation tree logic (CTL) is a propositional branching-time that extends propositional logic with temporal operators to specify and verify properties of concurrent systems modeled as state-transition graphs, where time is represented as a tree of possible computations branching into multiple futures. Introduced by Edmund M. Clarke and E. Allen Emerson in 1981, CTL enables the expression of both universal (inevitable) and existential (possible) behaviors over these branching structures, distinguishing it from linear-time logics like LTL that consider only single execution paths. CTL's syntax includes atomic propositions from a set AP, boolean connectives (¬, , ), and modal operators combining path quantifiers—A (for all paths) and E (there exists a path)—with temporal operators such as X (next state), F (eventually), G (always), and U (until). For example, the formula AF p asserts that on all paths from the current state, proposition p will eventually hold, while EF p states that there exists at least one path where p eventually holds. Semantics are defined over Kripke structures M = (S, R, L), where S is a finite set of states, R ⊆ S × S the transition relation, and L: S → 2^{AP} labels states with propositions; a structure satisfies a CTL formula if the initial state meets the formula's conditions along its computation tree. The logic's significance lies in its role in , an automated verification technique where a system's state space is exhaustively explored to confirm if it satisfies CTL specifications, with algorithms achieving linear in the model size and formula length—specifically O(|f| · (|S| + |R|)) for a formula f and structure with |S| states and |R| transitions. This efficiency, first demonstrated in Clarke, , and Sistla's 1983 work (extended to journal in ), made CTL practical for verifying hardware circuits, communication protocols, and software systems, contributing to the 2007 for Clarke, , and Joseph Sifakis for pioneering model checking. CTL has influenced extensions like CTL* (combining branching and linear aspects) and tools such as NuSMV, which support industrial-scale verification by generating counterexamples for when properties fail.

Introduction

Overview and Definition

Computation Tree Logic (CTL) is a propositional branching-time designed to specify and reason about properties of reactive and concurrent systems. It enables the expression of behaviors over possible execution paths in non-deterministic environments, distinguishing it from linear-time logics by accounting for branching structures in system computations. In CTL, computation trees represent the unfolding of all possible execution paths originating from an initial state, where each node corresponds to a system state and branches reflect non-deterministic choices or interleavings of concurrent processes. This captures the full spectrum of potential system evolutions, allowing properties to be asserted about entire sets of paths rather than single traces. The name "Computation Tree Logic" reflects its foundational reliance on these computation trees to model non-deterministic behaviors in concurrent systems, as introduced in the seminal work by Clarke and Emerson. At its core, CTL formulas combine path quantifiers—such as A (for all paths) and E (for some path)—with temporal modalities, including X (next state), F (eventually), G (globally), and U (until), to describe universal or existential properties along branches.

Role in Formal Verification

Computation tree logic (CTL) plays a central role in by enabling the specification of safety and liveness properties for both and software systems modeled as finite-state systems. Safety properties, such as in concurrent processes, can be expressed using the universally quantified always operator (), ensuring that undesirable states are never reached along any computation path. Liveness properties, like eventual response in reactive systems, are captured with operators such as (always eventually), guaranteeing progress toward desired outcomes in all possible futures. This makes CTL particularly suited for verifying systems where nondeterminism leads to branching behaviors, such as in concurrent protocols or controllers. One key advantage of CTL in is its expressive power for describing branching-time properties, which naturally models the multiple possible execution paths in nondeterministic systems, unlike linear-time logics that assume a single path. for CTL s against finite-state models is decidable and can be performed in time linear in the size of the model (number of states and transitions) and the , specifically O(|Φ| · (|S| + |R|)), where |Φ| is the size, |S| the number of states, and |R| the number of transitions. This polynomial-time supports scalable automated verification, often producing counterexamples or witnessing paths to aid debugging when properties fail. CTL integrates seamlessly with symbolic model checking tools such as and its successor NuSMV, which use binary decision diagrams (BDDs) to handle large state spaces efficiently for verifying concurrent systems. These tools automate the checking of CTL specifications on designs, enabling exhaustive exploration without . In practice, CTL has significantly impacted design by verifying behaviors, verification through properties like freedom in protocols, and reactive , where it ensures reliability in safety-critical applications such as fault-tolerant voting systems. Its adoption contributed to the 2007 ACM for advancing model checking techniques. Despite these strengths, CTL has limitations as a specification language, particularly for linear-time properties that unfold along a single execution trace, where it is less intuitive and expressive compared to (LTL), as CTL requires path quantifiers that can complicate simple sequential assertions. This can lead to more verbose or less natural formulations for properties like response times in sequential protocols, often favoring or extensions like CTL* for such cases.

Historical Development

Origins in Temporal Logic

Computation tree logic (CTL) traces its origins to the development of temporal logics in the late 1970s, which sought to formalize properties of computer programs over time. In 1977, Amir Pnueli introduced linear temporal logic (LTL) as a tool for specifying and verifying the behavior of non-terminating programs, particularly reactive systems that engage in infinite computations. Pnueli's framework emphasized ongoing behaviors rather than finite input-output relations, using operators to express temporal relations such as "always" and "eventually" along a single execution path. This innovation marked a foundational shift in program verification, enabling the description of safety and liveness properties in concurrent settings. However, LTL's linear-time semantics, which assumes a single, deterministic of states, proved limiting for modeling non-deterministic concurrent programs where multiple execution paths from points. Such systems, common in , generate tree-like structures of possible computations, reflecting the inherent of future states due to non-determinism. Early motivations for extending thus centered on capturing these branching possibilities to verify properties across all or some potential paths in infinite computations. To address these shortcomings, researchers began exploring branching-time temporal logics in the early , with Pnueli's LTL serving as a key precursor that highlighted the need for path quantifiers to distinguish universal and existential claims over tree-structured models. This evolution paved the way for logics like CTL, which incorporated quantifiers over paths to explicitly handle the non-deterministic, tree-like nature of computations in concurrent programs.

Key Milestones and Contributors

Computation Tree Logic (CTL) was first introduced in 1981 by Edmund M. Clarke and E. Allen Emerson in their seminal paper "Design and Synthesis of Synchronization Skeletons Using Branching Time ," where they proposed CTL as a branching-time for specifying and synthesizing synchronization properties in concurrent systems. In 1986, Clarke, Emerson, and A. Prasad Sistla expanded on this foundation in "Automatic Verification of Finite-State Concurrent Systems Using Specifications," developing an efficient model-checking algorithm for CTL and proving that the problem is , which established CTL as a cornerstone for automatic verification of finite-state systems. Key contributors to CTL's development include Edmund M. Clarke, E. Allen Emerson, and Joseph Sifakis, whose pioneering work on —encompassing CTL's theoretical and practical advancements—earned them the 2007 ACM A.M. for transforming model checking into a widely adopted . During the , Kenneth L. McMillan advanced CTL through the integration of symbolic using Decision Diagrams (BDDs), as detailed in his 1990 paper "Symbolic Model Checking: 10^20 States and Beyond" (co-authored with Jerry R. Burch and David L. Dill), which enabled efficient of systems with enormous spaces by representing transition relations symbolically rather than explicitly. Post-2000 developments have extended CTL to handle probabilistic and real-time aspects, with Probabilistic CTL (PCTL) seeing algorithmic improvements for model checking Markov decision processes, as in the 2003 survey "Model Checking for Probability and Time: From Theory to Practice," which bridged CTL's branching structure with probabilistic quantification for stochastic systems. Similarly, Timed CTL (TCTL) has been extended with strategic operators in works like the 2023 paper "Strategic Timed Computation Tree Logic," incorporating game-theoretic elements for verifying real-time systems under adversarial conditions. More recent advances include robust CTL (rCTL) in 2024, which introduces multi-valued semantics to quantify specification violations for enhanced verification robustness. As of 2025, CTL remains relevant in and applications, such as inferring temporal properties from system models and providing explainability for AI planning techniques like (MCTS), as demonstrated in the 2023 study "Inferring Properties in Computation Tree Logic," which develops counterexample-guided algorithms to automatically generate concise CTL specifications from finite-state models, and 2024-2025 works on CTL-based explainers for MCTS in sequential planning.

Syntax

Formula Construction

Atomic propositions serve as the foundational elements in the construction of Computation Tree Logic (CTL) formulas, where each atomic proposition p from a finite set AP of atomic propositions denotes a basic state label indicating the presence or absence of a specific property in a model state. CTL formulas are built recursively, distinguishing between state formulas, which are interpreted over individual states, and path formulas, which are interpreted over infinite paths emanating from those states. State formulas are formed starting from atomic propositions and applying boolean negation (\neg), conjunction (\land), and the path quantifiers A (universal, "for all paths") and E (existential, "there exists a path") to path formulas. Path formulas are constructed from state formulas using the next operator X (applied to a state formula) and the until operator U (between two state formulas). Disjunction (\lor) and other boolean connectives such as implication (\rightarrow) and equivalence (\leftrightarrow) can be derived from negation and conjunction using standard logical equivalences. This recursive structure ensures that every temporal operator in CTL is immediately preceded by a path quantifier, enforcing the logic's branching-time nature. CTL formulas are typically closed, meaning they contain no free variables and thus evaluate to true or false with respect to a model without additional bindings. State formulas represent properties of states and serve as the primary specifications in CTL, while path formulas act as intermediates scoped by the quantifiers A and E. The absence of free variables in atomic propositions propagates through the recursive construction, yielding well-formed, interpretable formulas suitable for formal verification. The syntax of CTL is formally defined by the following context-free grammar in Backus-Naur Form (BNF), where p \in AP:
state formula φ ::= p | ¬φ | φ₁ ∧ φ₂ | A ψ | E ψ
path formula ψ ::= φ | X φ | φ₁ U φ₂
This grammar captures the core operators, with derived forms such as eventually (F \phi \equiv \top U \phi), always (G \phi \equiv \neg (\top U \neg \phi)), and their universal/existential variants expressible through these primitives.

Operators and Quantifiers

Computation tree logic (CTL) employs a set of operators that combine path quantifiers with temporal modalities and classical logical connectives to form well-structured formulas. These operators enable the expression of properties over branching computation paths in transition systems. The syntax distinguishes between state formulas, which are evaluated at individual states, and path formulas, which describe properties along paths emanating from a state. The quantifiers are A and E, which are unary operators applied to formulas. The quantifier A asserts that a holds for all computation paths starting from the current , while E asserts that there exists at least one such where the holds. These quantifiers bind formulas to form formulas, ensuring that temporal modalities are always scoped by a path quantifier in CTL syntax. Temporal operators in CTL include both primitive and derived forms, all of which operate on state subformulas. The primitive unary operator X (next) applies to a state formula to specify a property in the immediate successor state along a path. The primitive binary operator U (until) takes two state formulas \phi and \psi, expressing that \phi holds along a path until \psi becomes true. Derived unary temporal operators include F (eventually), defined syntactically as \top U \phi where \top is the constant true, and G (globally), defined as \neg F \neg \phi. The derived binary operator R (release), the dual of until, is defined as \neg (\neg \phi U \neg \psi). These temporal operators form path formulas when combined appropriately, such as \phi U \psi, which must then be quantified by A or E to yield a state formula. Logical operators provide the boolean structure for CTL formulas and include the unary negation \neg and the binary conjunction \wedge and disjunction \vee. Derived binary operators include implication \rightarrow, defined as \neg \phi \vee \psi, and equivalence \leftrightarrow, defined as (\phi \rightarrow \psi) \wedge (\psi \rightarrow \phi). Atomic propositions and the constants \top and \bot serve as base state formulas. These operators apply to state formulas to build more complex ones. Operator binding in CTL enforces that path quantifiers immediately precede temporal operators, as in the state formula AGp, where A binds to the unary G applied to the atomic proposition p. In contrast, p U q is a path formula requiring quantification, such as E(p U q), to form a state formula. This binding rule prevents ambiguous nesting and maintains the alternation between path quantifiers and temporal modalities. Unary operators like X, G, F, and \neg take a single operand, while binary operators such as U, R, \wedge, and \vee take two.

Minimal Operator Sets

In Computation Tree Logic (CTL), a minimal operator set consists of the path quantifiers E (exists) and A (for all), along with the temporal operators X (next) and U (until), which, together with standard Boolean connectives, form a complete basis capable of expressing all CTL formulas. This set is sufficient because the universal quantifier A can be derived from the existential E via duality (A \phi \equiv \neg E \neg \phi), allowing an even more compact basis of \{E, X, U\} with negation. To demonstrate completeness, other common temporal operators can be derived from these primitives. For instance, the eventually operator F \phi is defined as E(\top U \phi), where \top denotes true; the always operator G \phi follows as \neg E F \neg \phi or equivalently A(\neg \phi R \bot); and the release operator \phi R \psi is \neg E(\neg \phi U \neg \psi). These equivalences ensure that operators like AF, EG, and AX—frequently used in specifications—can be reduced to the core set without loss of expressiveness. Alternative minimal bases exist, such as \{E, X, U, \neg\}, which explicitly includes negation to handle duals, or sets relying solely on existential operators with derived universals. Another variant is \{\neg, \lor, EX, EU, EG\}, where EG (exists globally) aids in expressing infinite path properties directly. The identification of these minimal sets traces back to the foundational development of CTL, where efficiency in specification and verification was a key concern from the outset. In practice, adopting a minimal basis simplifies the implementation of model checkers by reducing the number of semantic rules and fixed-point computations needed, thereby lowering computational overhead in tools like NuSMV or SPIN.

Semantics

Kripke Structures and Models

In computation tree logic (CTL), the semantic models are provided by Kripke structures, which represent the state space of concurrent systems as labeled systems. A Kripke structure over a set AP of atomic propositions is defined as a M = (S, S_0, R, L), where S is a finite, nonempty set of states; S_0 \subseteq S is a nonempty set of designated initial states; R \subseteq S \times S is a relation that is total, meaning every state has at least one successor (i.e., \forall s \in S: \exists s' \in S such that (s, s') \in R); and L: S \to 2^{AP} is a labeling function that assigns to each state the set of atomic propositions that hold in it. This structure captures the branching nature of computations in nondeterministic systems, where multiple possible futures arise from each state. The computations in a Kripke structure are represented by paths, which are infinite sequences of states. Formally, a path \pi of M is an infinite sequence \pi = s_0 s_1 s_2 \dots such that s_0 \in S_0 and (s_i, s_{i+1}) \in R for all i \geq 0. Finite paths are the initial segments of such infinite paths, serving as prefixes up to some length k \geq 0. Paths may include "stutters," where consecutive states are identical (s_i = s_{i+1}), reflecting possible idle or repeated behaviors in the system; however, stutter-free paths, which prohibit such repetitions, are sometimes considered in analyses to simplify equivalence checks without altering the expressive power of CTL. To emphasize the branching-time aspect of CTL, the Kripke structure can be unfolded into computation trees starting from the initial states. A computation tree for M from an initial state s_0 \in S_0 is the infinite tree obtained by iteratively expanding successors according to R, where the root is s_0 and each node at depth i branches to the possible next states, labeled by L. Each infinite path in this tree corresponds to a full computation path in M, providing a tree-like model of all possible execution traces from s_0. This unfolding abstracts away cycles in the structure, focusing on the tree of futures as the basis for evaluating branching-time properties.

Satisfaction and Evaluation

The satisfaction of a Computation Tree Logic (CTL) formula is defined with respect to a Kripke structure M and either a state s in M or a path \pi in M. The relation M, s \models \phi holds if state s satisfies the state formula \phi in M, while M, \pi \models \psi holds if path \pi satisfies the path subformula \psi in M. The satisfaction relation for state formulas is defined inductively as follows. For an atomic proposition p, M, s \models p if and only if p \in L(s), where L(s) is the set of atomic propositions labeling state s. For negation, M, s \models \neg \phi if and only if M, s \not\models \phi. For conjunction, M, s \models \phi \wedge \psi if and only if M, s \models \phi and M, s \models \psi. For the universal next operator, M, s \models AX \phi if and only if for every successor state s' such that (s, s') \in R, it holds that M, s' \models \phi, where R is the transition relation of M. For the existential next operator, M, s \models EX \phi if and only if there exists a successor state s' such that (s, s') \in R and M, s' \models \phi. For the universal until operator, M, s \models \phi \, AU \, \psi if and only if every infinite path \pi starting from s satisfies M, \pi \models \phi \, U \, \psi. For the existential until operator, M, s \models \phi \, EU \, \psi if and only if there exists an infinite path \pi starting from s such that M, \pi \models \phi \, U \, \psi. Path satisfaction is defined for the temporal operators underlying the path quantifiers. Let \pi = \pi{{grok:render&&&type=render_inline_citation&&&citation_id=0&&&citation_type=wikipedia}}, \pi{{grok:render&&&type=render_inline_citation&&&citation_id=1&&&citation_type=wikipedia}}, \pi{{grok:render&&&type=render_inline_citation&&&citation_id=2&&&citation_type=wikipedia}}, \dots be an infinite path with \pi{{grok:render&&&type=render_inline_citation&&&citation_id=0&&&citation_type=wikipedia}} = s. Then M, \pi \models X \phi if and only if M, \pi{{grok:render&&&type=render_inline_citation&&&citation_id=1&&&citation_type=wikipedia}} \models \phi. For the until operator, M, \pi \models \phi \, U \, \psi if and only if there exists some k \geq 0 such that M, \pi \models \psi and for all $0 \leq i < k, M, \pi \models \phi. A Kripke structure M satisfies a state formula \phi, written M \models \phi, if and only if M, s \models \phi for every initial state s \in S_0, where S_0 is the set of initial states in M. This ensures that the property expressed by \phi holds from all possible starting points of the system.

Semantic Equivalences

In Computation Tree Logic (CTL), semantic equivalences arise from the interplay between path quantifiers (A for "all paths" and E for "exists path") and temporal operators, enabling formula simplifications and transformations while preserving satisfaction in Kripke structures. These equivalences are fundamental for reducing the complexity of model checking and optimizing formula representations. Key dualities express negations of path formulas in terms of existential ones and , leveraging De Morgan-like laws adapted to branching-time semantics:
  • \neg A \psi \equiv E \neg \psi
  • \neg EX \phi \equiv AX \neg \phi
  • \neg AF \phi \equiv AG \neg \phi
  • \neg A(\phi \, U \, \psi) \equiv E(\neg \psi \, R \, \neg \phi)
These hold because negation inverts the quantification over s: a state satisfies A \psi if all paths satisfy the path formula \psi, so its negation requires an existing path where \neg \psi holds. Similar reasoning applies to the other operators, where U (until) dualizes with R (). Derived operators in CTL are defined using the primitive ones (EX, EU, etc.), allowing concise expression of common temporal properties. For instance:
  • F \phi \equiv E(\top \, U \, \phi) (eventually \phi on some path)
  • G \phi \equiv \neg E F \neg \phi (always \phi on all paths)
  • A(\phi \, R \, \psi) \equiv \neg E(\neg \phi \, U \, \neg \psi) (release: \phi holds on all paths until \psi releases it)
The release operator R captures "persistence until release," dual to until, and is essential for specifying safety properties without explicit negation. These definitions ensure that derived operators are semantically equivalent to their expansions, facilitating in verification tools. A distinctive semantic property of CTL is its flatness, which prohibits nesting of temporal operators without intervening path quantifiers. For example, A(G F p) is a valid CTL formula (all paths eventually cycle through p), but A G (F p) is not, as it nests G and F under a single quantifier. This restriction ensures that every temporal subformula is "guarded" by A or E, limiting expressiveness compared to CTL* but enabling efficient algorithms. The flatness arises directly from the syntax-semantics coupling, where unguarded nesting would require path quantifiers at multiple levels. CTL formulas are preserved under bisimulation equivalence: if two Kripke structures are bisimilar, they satisfy exactly the same CTL formulas. Bisimulation relates states that mimic each other's transitions and labelings, ensuring that branching behaviors are indistinguishable. This invariance makes CTL suitable for techniques in , where simplified models bisimilar to the original preserve property satisfaction. simplifications in CTL follow classical propositional logic, including (\phi \land \phi \equiv \phi, \phi \lor \phi \equiv \phi) and absorption laws (\phi \land (\phi \lor \psi) \equiv \phi, \phi \lor (\phi \land \psi) \equiv \phi). These apply to atomic propositions and can propagate through temporal operators via the equivalences above, aiding in formula before .

Model Checking

Algorithms for CTL

Model checking for Computation Tree Logic (CTL) involves verifying whether a given Kripke structure satisfies a by computing the set of states that satisfy each subformula. The foundational algorithm, introduced by Clarke, Emerson, and Sistla, employs a bottom-up labelled approach, where satisfying states for atomic propositions are initially identified, and then iteratively computed for increasingly complex subformulas until the entire is evaluated. This method leverages the tree-like structure of , propagating satisfaction labels through the state graph in a single pass over the formula's syntax tree. CTL operators are characterized using fixed-point equations, enabling efficient of satisfying sets. For instance, "always" operator AGφ, meaning φ holds globally on all paths from a , is the greatest fixed point of the λZ. (φ ∧ AX Z), where AX Z denotes states whose all successors satisfy Z. Similarly, the existential "sometimes" operator EFφ, indicating a path exists where φ eventually holds, is the least fixed point of λZ. (φ ∨ EX Z), with EX Z representing states with at least one successor in Z. These characterizations exploit the μ-calculus foundations of CTL, allowing iterative approximation: starting from the full set for greatest fixed points and the for least fixed points, refining until convergence. Recursive procedures handle basic operators directly. For the universal next AXφ, satisfaction is checked by verifying that all successor states satisfy φ, computed via a simple graph traversal. The existential until EU(ψ, φ), requiring a path where ψ holds until φ, uses an iterative breadth-first search starting from states satisfying φ, expanding backwards through states satisfying ψ until the fixed point is reached, akin to reachability computation in the graph. Boolean connectives and path quantifiers are then combined recursively from these base cases. To address the state explosion problem in large Kripke structures, symbolic implementations represent sets of states and transition relations implicitly using Binary Decision Diagrams (BDDs). Pioneered by Burch, Clarke, and McMillan, this approach replaces explicit enumeration with BDD operations for fixed-point iterations, such as image computations for EX and predecessor computations for AX, enabling verification of systems with over 10^20 states. BDDs maintain canonical representations, allowing efficient manipulation via without storing individual states. These algorithms are sound and complete with respect to CTL semantics, as the fixed-point computations precisely capture the inductive definitions of satisfaction in Kripke structures. Termination is guaranteed for finite-state models, since the state space is finite and fixed-point iterations are monotonic, converging in at most |S| + 1 steps where |S| is the number of states.

Computational Complexity

The model checking problem for computation tree logic (CTL) over finite Kripke structures is . This means it is solvable in polynomial time, but no faster is known unless = NC. The combined , considering both the model size (|S| + |R|, where |S| is the number of states and |R| the number of transitions) and formula size (|\phi|), is O((|S| + |R|) \cdot |\phi|). For specific CTL operators, complexities vary based on the labeling algorithm's fixpoint computations. The next-time operators AX (all paths) and EX (exists path) require O(|R|) time, as they involve a single pass over the transition relation to compute predecessor states. Path quantifiers with unary temporal operators, such as (all paths eventually), (all paths always), EF (exists path eventually), and (exists path always), run in O(|S| + |R|) time using breadth-first or depth-first search-like iterations for fixpoint approximation. The until operators (all paths until) and (exists path until) also require O(|S| + |R|) time, using iterative fixed-point computations equivalent to reachability analysis in the . Space complexity for CTL model checking is O(|S|) in on-the-fly algorithms that label states incrementally without storing the full computation table, making it efficient for explicit-state representations. However, the state explosion problem—where |S| grows exponentially with the input program size—leads to exponential space and time in practice for concurrent systems. Optimizations mitigate this: partial order reduction prunes independent transitions to explore fewer states, often reducing effective |S| by orders of magnitude in asynchronous models; exploitation identifies equivalent states under permutations, further compressing the state space; and symbolic methods using binary decision diagrams (BDDs) represent sets implicitly, achieving polynomial time and space for many scalable verification tasks. Inherent limitations arise in extensions: CTL* model checking is PSPACE-complete, as it combines branching and linear aspects requiring exponential space for path exploration. In comparison, linear temporal logic (LTL) model checking is also PSPACE-complete, highlighting CTL's relative efficiency for branching-time properties.

Examples and Applications

Illustrative Examples

To illustrate the syntax and semantics of Computation Tree Logic (CTL), consider simple examples using small Kripke structures. These examples demonstrate how path quantifiers (A for all paths, E for some path) combine with temporal operators to express and liveness properties in concurrent systems. Each example includes a basic Kripke structure with 3-5 states, labeled by atomic propositions, and traces satisfying paths to clarify evaluation. Example 1: AG p for mutual exclusion in a two-process system.
Consider a simple two-process protocol modeled as a Kripke structure with four states:
  • s_0: initial state (no process in , labeled \neg cs_1 \land \neg cs_2).
  • s_1: process 1 in (cs_1 \land \neg cs_2).
  • s_2: process 2 in (\neg cs_1 \land cs_2).
  • s_3: both attempting entry but serialized (\neg cs_1 \land \neg cs_2, transient).
Transitions: s_0 \to s_1, s_0 \to s_2, s_0 \to s_3, s_1 \to s_0, s_2 \to s_0, s_3 \to s_1 or s_3 \to s_2. No state satisfies cs_1 \land cs_2. The CTL formula \text{[AG](/page/AG)} \, \neg (cs_1 \land cs_2) (all paths globally, neither process is in the simultaneously) holds at s_0, as every computation path from s_0 avoids states where both propositions are true, ensuring the safety property of . Example 2: AG (request \to AF grant) for liveness in a request-grant protocol.
For a request-grant protocol, model the system with three states:
  • s_0: idle (labeled \neg \text{request} \land \neg \text{grant}).
  • s_1: request issued (\text{request} \land \neg \text{grant}).
  • s_2: grant acknowledged (\neg \text{request} \land \text{grant}).
Transitions: s_0 \to s_1, s_1 \to s_2, s_2 \to s_0. The formula \text{[AG](/page/AG)} \, (\text{request} \to \text{[AF](/page/List_of_nonlinear_partial_differential_equations)} \, \text{grant}) (in all paths, if a request is made, grant eventually holds on all paths from that point) is satisfied at s_0, as from s_1, all paths reach s_2 eventually, ensuring liveness that every request leads to a grant in any execution. Example 3: A(p U q) for safety properties like "p holds until q" on all paths.
In a resource allocation system, use a Kripke structure with three states:
  • s_0: safe allocation (p \land \neg q).
  • s_1: continued safe use (p \land \neg q).
  • s_2: release or error (\neg p \land q).
Transitions: s_0 \to s_1, s_1 \to s_2, s_0 \to s_2 (direct release). Here, p represents "resource not over-allocated," and q represents "released or reset." The formula \text{A}(p \, \text{U} \, q) (on all paths, p holds until q becomes true) evaluates to true at s_0, as every path from s_0 maintains p invariantly until reaching a q-labeled state, enforcing a safety property that prevents violation (e.g., overflow) before resolution. A common pitfall in CTL is misinterpreting its branching-time semantics as linear time, leading to confusion where universal path quantification (A) is overlooked in favor of single-trace assumptions, as branching allows multiple futures from a state unlike linear logics that assume deterministic paths.

Practical Uses in Verification

Computation Tree Logic (CTL) has been extensively applied in hardware verification, particularly for detecting concurrency bugs in complex chip designs. IBM's RuleBase tool, developed by the Haifa Research Laboratory, integrates CTL model checking to specify and verify temporal properties in hardware descriptions written in languages like VHDL and Verilog, enabling the identification of subtle race conditions and deadlocks in multiprocessor systems. This approach has been deployed in industrial settings to analyze designs at the IBM server division, where CTL formulas express branching-time behaviors such as "in all possible executions, a request eventually leads to a response without interference." In software model checking, extensions to tools like have incorporated CTL-like properties to verify concurrent protocols, adapting (LTL) specifications to capture branching nondeterminism. For instance, in analyzing the —a classic concurrency benchmark—'s Promela models combined with temporal assertions detect and violations, with CTL-inspired patterns ensuring that from any state, there exists a where all philosophers eventually eat. These extensions facilitate protocol verification in distributed systems, such as communication stacks, by translating CTL operators into 's never claims for automated counterexample generation. A notable case study involves the verification of the PCIe (Peripheral Component Interconnect Express) protocol using CTL in the NuSMV model checker, which successfully detected potential deadlocks in transaction layer interactions. Engineers modeled the protocol's state machines in SMV format and specified properties like AG(EF(acknowledge)) to ensure liveness across all computation paths, revealing deadlock scenarios in retry mechanisms under high contention. This application demonstrated NuSMV's efficacy in industrial protocol analysis, reducing verification time from simulation-based methods while confirming compliance with PCIe specifications. As of 2025, CTL finds modern applications in for controllers, where DeepCTL leverages to accelerate branching-time satisfiability checking, verifying properties like inevitable safety convergence in agents. In automotive systems, CTL supports compliance by formalizing requirements for electronic control units, such as ensuring that fault-tolerant paths always lead to hazard avoidance in autonomous driving software. These uses extend CTL to hybrid models integrating with temporal verification. Despite these advances, scalability remains a key challenge in CTL model checking for large systems, as state-space explosion limits analysis to models with up to millions of states without techniques. Hybrid approaches combining CTL with probabilistic logics, such as CTL or PCTL extensions, address uncertainty in environments but introduce additional computational overhead in parameter synthesis and .

Relations to Other Logics

Comparison with Linear Temporal Logic

Computation Tree Logic (CTL) and (LTL) represent two fundamental approaches to specifying temporal properties in , differing primarily in their treatment of time. CTL is a branching-time logic that models time as a tree-like structure, incorporating path quantifiers such as \mathsf{A} (for all paths) and \mathsf{E} (exists a path) to handle nondeterminism and concurrency explicitly. In contrast, LTL is a linear-time logic that assumes a single, linear sequence of states per computation , without explicit path quantifiers, making it suitable for properties along individual execution traces. This distinction allows CTL to express properties over multiple possible futures, such as "on all paths, eventually there exists a path where p holds," while LTL focuses on universal or existential quantification implicit over linear paths. Regarding expressiveness, CTL and LTL are incomparable: each can express properties that the other cannot. For instance, the CTL formula \mathsf{AG} (\mathsf{EF} p \to \mathsf{EF} q) captures that whenever p is reachable on some path, q is also reachable, a property involving branching that LTL cannot express due to its linear structure. Conversely, LTL can express the fairness condition "if p holds infinitely often along a path, then q holds infinitely often," formalized as \mathsf{GF} p \to \mathsf{GF} q, which CTL cannot capture because its path quantifiers must pair with every temporal operator, preventing conditional reasoning over path-specific frequencies without branching. Both logics are proper subsets of CTL*, the more expressive logic that combines unrestricted path formulas (like LTL) with state formulas and path quantifiers. Model checking for CTL and LTL also differs significantly in . CTL model checking over Kripke structures is , allowing efficient via labeling algorithms that propagate subformula satisfaction in linear time relative to the structure size. This makes CTL particularly advantageous for tree-like or highly branching systems, such as concurrent programs with nondeterminism. In comparison, LTL model checking is , primarily due to the exponential blowup in constructing Büchi automata from LTL formulas, which requires exploring the formula's state space during . As a result, CTL often scales better for properties requiring path quantification in large state spaces. A key semantic relation exists between the logics: the fragment of CTL consisting of formulas where all path quantifiers are \mathsf{A} and every temporal operator is immediately preceded by a quantifier corresponds exactly to LTL formulas under . Removing path quantifiers from such CTL formulas yields equivalent LTL formulas, though not all CTL formulas translate this way due to existential paths. This equivalence enables translating simple universal CTL properties to LTL for linear-time tools. In practice, the choice between CTL and LTL depends on the system's nature. CTL is preferred for concurrent or nondeterministic systems, where branching captures interleavings and choices effectively, as in hardware verification. LTL suits sequential or reactive systems with predictable linear flows, such as software protocols assuming a single execution trace.

Connections to Other Temporal Logics

Computation Tree Logic (CTL) can be viewed as a proper fragment of the , a fixed-point extension of basic that incorporates least and greatest fixed-point operators to express recursive properties. The μ-calculus subsumes CTL by allowing the encoding of CTL's path quantifiers and temporal operators through fixed-point definitions, but it offers greater expressiveness for capturing infinite behaviors and coinductive properties that CTL cannot directly represent without alternation depth restrictions. This embedding enables the use of μ-calculus model-checking algorithms for CTL formulas, though the μ-calculus's full power introduces higher computational overhead for non-CTL properties. CTL extends Hennessy-Milner Logic (HML), the foundational modal logic for characterizing bisimulation equivalence in labeled transition systems, by incorporating path quantifiers and temporal operators to reason about branching-time structures and infinite execution paths. While HML focuses on finite-depth properties through basic modal operators like possibility (◇) and necessity (□), CTL builds upon this by adding existential (E) and universal (A) quantifiers over computation paths, enabling the specification of liveness and safety properties in reactive systems. This extension preserves HML's ability to distinguish bisimilar states while expanding its scope to infinite behaviors, as demonstrated in logics that combine HML with "until" operators to approximate CTL expressiveness. Hybrid logics enhance CTL by integrating nominals—propositional atoms true at exactly one state—and binders (such as @), allowing explicit referencing of specific states within branching-time models. Adding nominals to CTL enables more precise formulations of properties involving state identities, such as "from state i, there exists a path satisfying φ until state j," which standard CTL cannot express without indirect path descriptions. These extensions maintain CTL's branching-time semantics but increase expressivity for applications in spatial and epistemic reasoning, though they introduce challenges in due to the added quantification over states. Alternating-time Temporal Logic (ATL) generalizes CTL to multi-agent systems by replacing CTL's existential (E) and universal (A) path quantifiers with strategic modalities that quantify over coalitions of agents' choices in concurrent game structures. Building directly on CTL's branching-time framework, ATL interprets formulas over games where agents alternate moves, allowing specifications like "coalition C has a strategy to achieve φ regardless of opponents' actions." This makes ATL suitable for verifying strategic properties in distributed systems, extending CTL's single-player perspective to multi-player interactions while preserving decidable model checking via game-theoretic reductions. CTL is embeddable in the modal μ-calculus through a computable translation that preserves satisfiability, facilitating the use of μ-calculus tools for CTL verification, but this comes at the cost of increased complexity for certain decision problems. While CTL model checking is P-complete, the embedding into μ-calculus—whose satisfiability is EXPTIME-complete—can lead to exponential blowups in formula size for expressive CTL fragments like CTL*, highlighting trade-offs in decidability and succinctness. These embeddings underscore CTL's position within the broader hierarchy of fixed-point logics, where μ-calculus provides a decidable superset but requires careful optimization to match CTL's efficiency for practical verification tasks.

Extensions

CTL* and Branching Extensions

CTL* (Computation Tree Logic star) is a powerful branching-time that generalizes CTL by allowing arbitrary (LTL) formulas over , combined with the existential (E) and universal (A) path quantifiers from CTL. Introduced by and Halpern, CTL* enables the specification of complex properties that require nesting path quantifiers and full LTL expressiveness on individual , such as "there exists a path along which proposition p holds infinitely often," expressed as \E \G \F p. This formulation combines the branching structure of computation trees with unrestricted temporal reasoning on , making it suitable for verifying intricate concurrent system behaviors where CTL's syntactic restrictions limit expressiveness. The syntax of CTL* distinguishes between state formulas and path formulas. State formulas \phi are defined inductively as atomic propositions p, \true, \false, negations \neg \phi, conjunctions \phi_1 \wedge \phi_2, disjunctions \phi_1 \vee \phi_2, or path quantifiers \A \psi and \E \psi applied to path formulas \psi. Path formulas \psi include state formulas \phi, negations \neg \psi, conjunctions \psi_1 \wedge \psi_2, disjunctions \psi_1 \vee \psi_2, next \X \psi, until \psi_1 \U \psi_2, release \psi_1 \R \psi_2, eventually \F \psi \equiv \true \U \psi, and always \G \psi \equiv \false \R \psi. Semantics are defined over Kripke structures, where \A \psi holds at a state if \psi holds on all paths starting from that state, and \E \psi if on some path; path operators like \U and \X follow standard LTL interpretations along the path. In terms of expressiveness, CTL forms a proper syntactic fragment of CTL*, where path subformulas immediately following \A or \E must contain exactly one temporal operator not in the scope of another path quantifier, limiting nesting. LTL is also embedded in CTL* by universally quantifying paths (replacing LTL's implicit universal path quantification with \A). This establishes a strict : LTL \subsetneq CTL \subsetneq CTL*, allowing CTL* to express properties like "on all paths, there is a point after which on every path p holds," as \A \F \G p, which cannot be captured in CTL or LTL alone. Model checking for CTL* is computationally more demanding than for CTL: while CTL model checking is PTIME-complete, CTL* model checking (with both model and as input) is , reflecting the added complexity of handling arbitrary LTL path formulas and nested quantifiers. Algorithms typically reduce CTL* to automata constructions over the , but the exponential blowup in size arises from LTL subformula . Other syntactic extensions of CTL incorporate past-time operators to enable bidirectional temporal reasoning in branching-time settings. These include "yesterday" (\Y \psi, holding if \psi held in the previous state on the path) and "since" (\psi_1 \S \psi_2, holding if \psi_2 held in some past state and \psi_1 held in all states since then until now). Such extensions, applicable to CTL* by integrating them into path formulas, allow specifications referencing historical path behaviors, like "since the last occurrence of p, all paths have satisfied q," enhancing expressiveness for systems with reversible or history-dependent properties without altering the branching structure.

Variants for Fairness and Probability

To address fairness in concurrent systems, Fair Computation Tree Logic (FCTL), introduced by Emerson and Lei in 1985, extends CTL by incorporating explicit fairness constraints that filter computation paths prior to applying the path quantifiers A (all paths) and E (some path). Fairness in FCTL is typically defined through two conditions: justice (weak fairness), which requires that if an action is enabled infinitely often along a path, it must be executed infinitely often; and compassion (strong fairness), which strengthens this by ensuring that for every pair of enabling and execution conditions, if the enabling holds infinitely often, the execution must also hold infinitely often. These conditions, often expressed using linear-time operators like GF (globally infinitely often), restrict the universal and existential quantifiers to only fair paths, allowing FCTL formulas such as A_f \phi (where \phi is a path formula) to hold if \phi is true on all fair paths from the current state. This extension maintains the computational complexity of CTL model checking at the P-complete level for basic fairness, enabling efficient verification of liveness properties in fair transition systems without enumerating all paths. Probabilistic Computation Tree Logic (PCTL), introduced by Hansson and Jonsson in 1994, further extends CTL to model probabilistic behaviors in systems, replacing the path quantifiers A and E with probabilistic operators P_{\sim p} (where \sim p denotes probability at least p, at most p, or exactly p), evaluated over Markov decision processes (MDPs) or discrete-time Markov chains. In PCTL syntax, formulas like P_{\geq 0.9} [F \phi] assert that the probability of eventually reaching a satisfying \phi is at least 0.9, with path operators (next X, until U, eventually F, globally G) nested within the probabilistic quantifier. Model checking PCTL on finite MDPs remains polynomial-time, typically linear in the formula size and polynomial in the model size, using value iteration or to compute probabilities over end components and attractors. This efficiency supports applications in verifying reliability properties of systems, such as communication protocols or randomized algorithms, where outcomes depend on probabilistic choices. Recent variants of CTL incorporate quantitative measures for weighted paths, extending fairness and probability to handle uncertainty in AI reliability assessments. For instance, Quantitative Computation Tree Logic (QCTL) uses generalized possibility measures to quantify satisfaction degrees over multi-valued transition systems, allowing model checking of weighted path properties like expected reliability in fuzzy environments. Such extensions, building on possibilistic semantics, enable polynomial-time algorithms for verifying AI system robustness against weighted uncertainties, as demonstrated in recent work on multi-valued decision processes for temporal properties in unreliable networks. These developments, active as of , facilitate applications in by quantifying path weights for probabilistic fairness in learning-based controllers.

References

  1. [1]
    Design and synthesis of synchronization skeletons using branching ...
    Jun 9, 2005 · We have shown that it is possible to automatically synthesize the synchronization skeleton of a concurrent program from a Temporal Logic specification.
  2. [2]
    [PDF] ACM 2007 Turing Award Edmund Clarke, Allen Emerson ... - [Verimag]
    Another widely used logic is CTL (Computation Tree Logic). [8] (cf. [18]) Its basic temporal modalities are A (for all fu- tures) or E (for some future) ...
  3. [3]
    None
    ### Summary of Computation Tree Logic (CTL) from the Paper
  4. [4]
    Automatic verification of finite-state concurrent systems using ...
    Automatic verification of finite-state concurrent systems using temporal logic specifications. Editor: Susan L. Graham. Susan L. Graham. Search about this ...
  5. [5]
    [PDF] Computation Tree Logic - Brandeis CS 112
    CTL is an important branching temporal logic that is sufficiently expressive for the formulation of an important set of system properties. It was originally ...
  6. [6]
    [PDF] Computation Tree Logic for formal verification - l'IRISA
    We will use the branching temporal logic CTL whose temporal operators allow the expression of properties of some or all computations that start in a state.
  7. [7]
    [PDF] Branching vs. Linear Time: Final Showdown* - Rice University
    Dec 14, 2002 · In spite of the phenomenal success of CTL-based model checking, CTL suffers from several fundamental limitations as a temporal property- ...
  8. [8]
    [PDF] Lecture Notes on CTL model checking
    Theorem 4 (Complexity). The CTL model checking problem is linear in the size of the state space K = (W,r,v) and in the size of the formula φ in the sense that ...
  9. [9]
    SMV Model Checker Free Download
    Cadence SMV is a symbolic model checking tool that allows you to formally verify temporal logic properties of finite state systems, such as computer hardware ...
  10. [10]
    Overview - NuSMV
    NuSMV is a software tool for the formal verification of finite state systems. It has been developed jointly by FBK-IRST and by Carnegie Mellon University.
  11. [11]
    The temporal logic of programs | IEEE Conference Publication
    The temporal logic of programs ; Article #: ; Date of Conference: 31 October 1977 - 02 November 1977 ; Date Added to IEEE Xplore: 18 July 2008.
  12. [12]
    [PDF] The Rise and Fall of LTL - Rice University
    From dynamic logic back to temporal logic: The dynamic-logic view is clearly branching; what is the analog for temporal logic? • Emerson & Clarke, 1980: ...
  13. [13]
    Temporal Logic - Stanford Encyclopedia of Philosophy
    Nov 29, 1999 · Broadly construed, Temporal Logic covers all formal approaches to representing and reasoning about time and temporal information.Missing: Amir | Show results with:Amir
  14. [14]
    E. Allen Emerson - A.M. Turing Award Laureate
    Together with Edmund Clarke and Joseph Sifakis, for their role in developing Model-Checking into a highly effective verification technology that is widely ...
  15. [15]
    [PDF] Symbolic Model Checking: 1020 States and Beyond
    We then show how our new Mu-Calculus model checking algorithm can be used to de- rive efficient decision procedures for CTL model checking, satisfiability of ...
  16. [16]
    [PDF] Model checking for probability and time: from theory to practice
    Probabilistic model checking draws on conventional model checking, since it relies on reachability analysis of the un- derlying transition system, but must also ...
  17. [17]
    [2310.13778] Inferring Properties in Computation Tree Logic - arXiv
    Oct 20, 2023 · We consider the problem of automatically inferring specifications in the branching-time logic, Computation Tree Logic (CTL), from a given system.Missing: developments 2020-2025
  18. [18]
    [PDF] CTL: Overview
    We define a minimal syntax first. Later we define additional operators with the help of the minimal syntax. ¬φ1, φ1 _ φ2,
  19. [19]
    [PDF] Temporal Logic + CTL Model Checking - ISEC
    Apr 29, 2024 · Minimal set of operators for CTL. 107. ▫ All CTL formulas can be transformed to use only the operators: ▫ ¬, ∨, EX, EU, EG. ▫ MC ...<|control11|><|separator|>
  20. [20]
    Principles of Model Checking - MIT Press
    Apr 25, 2008 · A comprehensive introduction to the foundations of model checking, a fully automated technique for finding flaws in hardware and software.Missing: Kripke | Show results with:Kripke
  21. [21]
    [PDF] Principles of Model Checking
    Page 1. Principles of Model Checking. Christel Baier and Joost-Pieter Katoen. Principles of Model Checking. Baier and Katoen. Page 2. Principles of Model ...
  22. [22]
    Automatic verification of finite-state concurrent systems using ...
    We give an efficient procedure for verifying that a finite-state concurrent system meets a specification expressed in a (propositional, branching-time).
  23. [23]
    [PDF] Automatic Verification of Finite State Concurrent Systems Using ...
    Ahstract:We give an cfticicnt procedure for verifying that a t%ute state concurrent systcm meets a specification expressed in a (propositional) branching-.
  24. [24]
    [PDF] The Complexity of Temporal Logic Model Checking
    Temporal logic model checking is a method for reasoning about time and timing of events, used for program verification, and is historically for finite Kripke ...
  25. [25]
    [PDF] Lecture Notes on Computation Tree Logic
    Apr 9, 2024 · CTL has the advantage of having a pretty simple model checking algorithm, and it describes an incomparable set of properties from LTL. Learning ...
  26. [26]
    [PDF] Computation Tree Logic
    Computation tree logic (CTL) is a branching-time logic that includes the propositional connectives as well as temporal connectives AX, EX, AU, EU, AG, EG, ...
  27. [27]
    [PDF] From L ¨owenheim to Pnueli, from Pnueli to PSL and SVA
    • always not (CS1 and CS2): mutual exclusion. (safety). • always (Request implies eventually Grant): liveness. • always (Request implies (Request until Grant)):.
  28. [28]
    [PDF] Lecture Notes on Branching-Time Properties
    Today we will discuss Computation Tree Logic (CTL), another temporal logic that is suited to the goals described above. CTL formulas describe properties that ...
  29. [29]
    [PDF] syntax and semantics Example: mutual exclusion A model checking ...
    Sep 16, 2004 · Next, we shall study Computation Tree Logic (CTL) which is a type of temporal logic using branching and discrete time. Page 7. Model Checking.
  30. [30]
    [PDF] On Branching versus Linear Time Temporal Logic
    The differences between and appropriateness of branching versus linear time temporal logic for reasoning about concurrent programs are studied. These issues ...
  31. [31]
    RuleBase: an industry-oriented formal verification tool
    RuleBase Formal Verification Tool: User's Manual, IBM Science and Technology, Haifa Research Laboratory, contact: beer@vnet.ibm.com. Google Scholar. [16]. R ...
  32. [32]
    RuleBase: Model checking at IBM | Request PDF - ResearchGate
    Aug 7, 2025 · Tools based on model checking [15] were successful in finding subtle bugs in real-life designs [16, 6] and are currently in use by the hardware ...
  33. [33]
    [PDF] Program Model Checking: A Practitioner's Guide
    Mar 1, 2008 · Linear Temporal Logic (LTL) is a language to express properties that hold for paths throughout the state space. The SPIN model checker allows ...
  34. [34]
    [PDF] Spin Model Checker, The: Primer and Reference Manual - CIn UFPE
    Sep 4, 2003 · SPIN is the world's most popular, and arguably one of the world's most powerful, tools for detecting software defects.
  35. [35]
    A Project on Formal Property Verification of PCIe Protocol Layers to ...
    Jun 1, 2025 · Chapter 6: Results and Analysis - Presents the outcomes of the verification process,. including compliance verification and deadlock analysis.Missing: NuSMV CTL
  36. [36]
    [PDF] NuSMV 2.3 Tutorial
    While the model checking process can be used to check for deadlocks, it is best to avoid the problem when possible by using a restricted description style. The ...Missing: PCIe | Show results with:PCIe
  37. [37]
    DeepCTL: Neural Branching-Time CTL Satisfiability Checking via ...
    Sep 12, 2025 · This work bridges neural efficiency with temporal logic reasoning, opening new avenues for applying deep learning to formal verification.Missing: controllers | Show results with:controllers
  38. [38]
    (User-friendly) formal requirements verification in the context of ...
    This paper proposes an approach for requirements formal verification where formal methods, languages, and tools are only minimally exposed to the user.
  39. [39]
    Model checking of spacecraft operational designs: a scalability ...
    Apr 15, 2025 · In this paper, we systematically examine the scalability of model checking for verifying behavioral models that arise within early space-system design phases.
  40. [40]
    Parallel parameter synthesis algorithm for hybrid CTL - ScienceDirect
    Jan 1, 2020 · CTL is a well-known branching temporal logic with many uses in model checking and computer systems verification. Its hybrid extension allows ...
  41. [41]
    [PDF] Branching vs. Linear Time: Semantical Perspective Version 1.2 *
    The LTL formula F Gp is not expressible in. CTL, while the CTL formula AF AGp is not expressible in LTL. ... Sometimes and not never revisited: On branching ...Missing: expressiveness | Show results with:expressiveness
  42. [42]
    [PDF] Hoare Logic and Model Checking LTL and CTL: a perspective
    May 24, 2017 · Equivalent properties are expressed by shorter LTL formulae (if they exist). In fact, formulae may be exponentially shorter in LTL than ...
  43. [43]
    CTL∗ and ECTL∗ as fragments of the modal μ-calculus
    As a consequence the embedding of ECTL∗ turns out to be computable in linear time, while the embedding of CTL∗ is doubly exponential in the worst case.
  44. [44]
    (PDF) The modal μ-calculus: A survey - ResearchGate
    The modal μ-calculus is an extension of modal logic with two operators μ and ν, which give the least and greatest fixpoints of monotone operators on powersets.Missing: seminal | Show results with:seminal
  45. [45]
    [PDF] The mu-calculus and model-checking - LaBRI
    Fact 23 (Embedding of program logics) Every formula of CTL, PDL, ... extended with fixpoints is decidable, and the complexity is the same as for the mu-calculus.
  46. [46]
    [PDF] Three Logics for Branching Bisimulation*
    The three logics are: an extension of HML with "until", another HML extension with backward modalities, and CTL* without next-time over all paths.
  47. [47]
    [PDF] Action versus state based logics for transition systems - Research
    It is proved that it has essentially the same power as CTL *, a temporal logic interpreted over Kripke structures. The relationship between the two logics is ...
  48. [48]
    Three Logics for Branching Bisimulation. - ResearchGate
    The second one is another extension of Hennessy-Milner Logic, which exploits the power of backward modalities. The third logic is CTL * without the next-time ...
  49. [49]
    Model checking for hybrid branching-time logics - ScienceDirect.com
    We consider hybridisations of the full branching time logic ⁎ CTL ⁎ and its prominent fragments CTL, CTL + and FCTL + through the addition of nominals, ...
  50. [50]
    [PDF] On the Hybrid Extension of CTL and CTL+ | Semantic Scholar
    The paper studies the expressivity, relative succinctness and complexity of satisfiability for hybrid extensions of the branching-time logics CTL and CTL + ...
  51. [51]
    [PDF] Symbolic Model Checking of Hybrid CTL - IS MUNI
    Hybrid logics extend modal and temporal logics with a mechanism for referencing individual states of a model. Technically this is done by adding nominals and ...
  52. [52]
    Alternating-time temporal logic | Journal of the ACM
    ... CTL extends with few modifications to ATL. Over structures with weak-fairness constraints, ATL model checking requires the solution of 1-pair Rabin games ...
  53. [53]
    [PDF] Alternating-Time Temporal Logic - UPenn CIS
    Abstract. Temporal logic comes in two varieties:linear-time temporal logicassumes implicit universal quantification over all paths that are generated by the ...
  54. [54]
    [PDF] Alternating-time Temporal Logics with Irrevocable Strategies
    Atl is an extension of the. Computational Tree Logic ctl [2], one of the most successful temporal logics in computer science. The main semantic assumption ...
  55. [55]
    [PDF] The mu-calculus and Model Checking - HAL
    Dec 6, 2019 · Fact 23 (Embedding of program logics) Every formula of CTL, PDL, or CTL∗ can be translated into an equivalent mu-calculus formula.
  56. [56]
    [PDF] Decomposition Theorems and Model-Checking for the Modal µ ...
    Among others, propositional dynamic logic (PDL), linear time logic (LTL) and the full branching time logic (CTL*) have embeddings into Lµ.
  57. [57]
    [PDF] Decision Procedures and Expressiveness in the Temporal Logic of ...
    In this paper we consider the computation tree logic (CTL) proposed by. Clarke and Emerson [5] which extends the unified branching time logic (UB) of. Ben-Ari ...
  58. [58]
    A branching time logic with past operators - ScienceDirect.com
    An expressive branching time logic is introduced. Its power allows us to describe the local structure of the underlying graph of the computation.
  59. [59]
  60. [60]
    [PDF] Introduction to Formal Methods Chapter 06: Fair CTL Model Checking
    May 18, 2020 · A path is fair iff it visits every Fi infinitely often. Fair CTL model checking restricts the path quantifiers to fair paths: Mf , si |= Aφ iff ...Missing: 1985 | Show results with:1985<|separator|>
  61. [61]
    A methodology for designing proof rules for fair parallel programs
    We propose a methodology for designing sound and complete proof systems for proving progress properties of parallel programs under various fairness ...
  62. [62]
    [PDF] Polynomial-Time Verification of PCTL Properties of MDPs with ...
    Complexity of PCTL model-checking for CMDPs. 1. The problem of verifying if a CMDP MC of size R satisfies a PCTL formula φ without U≤k is in PTIME.
  63. [63]
    (PDF) Model Checking Computation Tree Logic Over Multi-Valued ...
    Aug 7, 2025 · 111–122, 1997. [2]. Y. M. Li and Z. Y. Ma, “Quantitative computation tree logic. model checking based on generalized possibility measures,”.
  64. [64]
    [PDF] Possibilistic Computation Tree Logic: Decidability and Complete ...
    Oct 27, 2025 · PoCTL is a possibility measure extension of classical CTL. Both the possi- bilistic and probabilistic CTL solve certain uncertainty of errors or ...Missing: post- | Show results with:post-