0% found this document useful (0 votes)
40 views

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

Uploaded by

lets play
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views

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

Uploaded by

lets play
Copyright
© © All Rights Reserved
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

You might also like