| ![]() |
Specifying Timing Properties of Reactive Systems with TLC
Chuchang Liu Mehmet A. Orgun
Department of Computing
Macquarie University
NSW 2109, Australia
E-mail: fcliu,[email protected]
Abstract
Reactive systems usually contain several parallel processes, which are running concurrently. Therefore, it is essential to study and analyse each process based on its local time. Because of the introduction of local clocks, the temporal logic TLC is particularly suitable for the specification of those systems such as reactive systems, where granularity of time is needed. In this paper, we discuss the formal specification of reactive systems based on TLC. We in particular present a method to describe timing properties of reactive systems using TLC. In this logic, a system and its corresponding properties are represented as formulas, and the properties can be therefore directly reasoned about from the specification of the system.
Keywords Temporal logic, clocks, reactive systems, formal specification, local reasoning.
1 Introduction
Temporal logic has been widely used as a formalism for reasoning about time [13], program specification and verification [1, 10, 11], modeling temporal databases [2] and simulation applications [8, 9, 14]. There are also several suggestions for extending the expressive power of temporal logic for specifying timing properties of reactive systems [3]. These attempts can be roughly classified into two approaches { the bounded operator approach and the explicit-clock approach. The first approach introduces one or more time-bounded versions for each temporal operator, such as sometime 3 and always 2. The second approach uses a time variable t as the current time at each state.
For example, when we consider the requirement of a timed response of q to p within at most 2 time units, in the bounded operator approach, it can be specified by the formula
p ! 3<=2q,
Proceedings of the 20th Australasian Computer Science Conference, Sydney, Australia, February 5{7 1997.
while in the explicit-clock approach, it is represented by the formula
(p ^ t = T ) ! 3(q ^ t <= T + 2),
where T is the rigid variable used to record the time at which p is true.
These approaches are all based on linear-time
temporal logics in which all predicates are usually
defined on a global time, for example, the sequence
of natural numbers < ; 1; 2; : : : >.
In some applications, such as distributed computations
[8], ecological modeling [12] and temporal
databases [2], one may find that it is necessary to
consider local time" or provide local clocks; some
events occur at irregular intervals, and it seems
unnatural to force them all onto a prescribed notion
of time. In particular, for reactive systems, it is
essential to study and analyse each process based
on its local time" or its local clock. When considering
the execution of transformational programs,
we find that such an execution can be viewed as
consisting of three consecutive activities: the environment
prepares an input, the program performs
its computation until it terminates and the environment
uses the output generated by the program
[11].
In reactive programming, if a program is not fast enough, it may miss some deadlines or fail to respond to important events. Thus, for a reactive system, it is important to describe the situation in which the program and its environment act concurrently, rather than sequentially. Reactive systems usually contain several parallel processes, which are running concurrently. From the point of view of each process, the rest of the program can be viewed as an environment that continuously interacts with the process. Therefore, for describing such a system naturally, it is necessary to introduce the notion of granularity of time.
Liu and Orgun [7, 8] recently proposed a temporal logic with clocks called TLC, which can be used to deal with granularity of time. In this logic, formulas are allowed to be defined on local clocks which are subsequences of the global clock.