This document provides an overview of Computational Tree Logic (CTL), a branching time temporal logic used in formal methods to verify correctness properties of systems through model checking. CTL is more expressive than linear-time logic (LTL) as it permits quantification over multiple paths of execution. CTL formulas are evaluated over a tree of all possible executions represented as a Kripke structure. CTL distinguishes between path quantifiers "E" (exists) and "A" (for all) combined with temporal operators like X (next), F (future), G (globally), U (until) to express properties along some or all paths. Examples are provided to demonstrate CTL formulas for properties like a condition holding globally or
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
42 views23 pages
Formal Methods in Software Engineering
This document provides an overview of Computational Tree Logic (CTL), a branching time temporal logic used in formal methods to verify correctness properties of systems through model checking. CTL is more expressive than linear-time logic (LTL) as it permits quantification over multiple paths of execution. CTL formulas are evaluated over a tree of all possible executions represented as a Kripke structure. CTL distinguishes between path quantifiers "E" (exists) and "A" (for all) combined with temporal operators like X (next), F (future), G (globally), U (until) to express properties along some or all paths. Examples are provided to demonstrate CTL formulas for properties like a condition holding globally or
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23
Formal Methods in Software Engineering
Lecture 08 Computational Tree Logic (CTL)
CTL is a branching time temporal logic.
Like LTL, it is also used in formal methods to verify
correctness properties of a system by model checking tools.
CTL is more expressive than LTL and permits quantification
over path CTL
Each state may have an accessibility relation with the
immediate next state by a transition which reflects the system behavior in terms of time.
Properties expressed over a tree of all possible executions
LTL Vs CTL
LTL (linear-time logic)
Describes properties of individual executions. Semantics defined as a set of executions.
CTL (computation tree logic)
Describes properties of a computation tree: formulas can reason about many executions at once. (CTL belongs to the family of branching-time logics.) Semantics defined in terms of states. Transition Graph (Labelled States)
Kripke Structure
Infinite Computation Tree
CTL Operators
In CTL, each temporal connective is a pair of symbols.
The first symbol in a pair is one of the E and A.
E means along at least one path, and A means along all paths. CTL operators
CTL operators are used with logical operators in the same
way as with other logics, these operators are: ,
The operators X, F, G and U cannot appear without an E or
an A in CTL.
CTL basic operators:
AX and EX, AG and EG, AF and EF, AU and EU CTL Example
Let’s see an example system, how system flows in
branching time temporal logic We assume p = black ball q = red ball A formula p appears globally on all paths A formula p appears eventually on all paths A formula p appears in the state on all paths A formula p appears on all paths until q appears A formula p appears globally on any path A formula p appears eventually on any path A formula p appears on the next state of any path A formula p appears on any path until q appears CTL formulas Equivalence CTL Syntax
The syntax of CTL is defined by considering a set of
propositional variables (P), logical operators, and temporal operators.
The set of CTL formulas is formally defined inductively over
propositional variables as follows
Where p Є P Kripke Structure CTL Semantics CTL Semantics CTL Semantics Thanks