Signal (model checking)

In model checking, a subfield of computer science, a signal or timed state sequence is an extension of the notion of words in a formal language, in which letters are continuously emitted. While a word is traditionally defined as a function from a set of non-negative integers to letters, a signal is a function from a set of real numbers to letters. This allow the use of formalisms similar to the ones of automata theory to deal with continuous signals.

Example
Consider an elevator. What is formally called a letter could be in fact information such as "someone is pressing the button on the 2nd floor", or "the doors are currently open on the third floor". In this case, a signal indicates, at each time, which is the current state of the elevator and its buttons. The signal can then be analyzed using formal methods to check whether a property such that "each time the elevator is called, it arrives in less than three minutes, assuming that no one held the door for more than fifteen seconds" holds. A statement such as this one is usually expressed in metric temporal logic, an extension of linear temporal logic that allows the expression of time constraints.

A signal may be passed to a model, such as a signal automaton, which will decide, given the letters or actions that already occurred, what is the next action that should be performed, in our example, to which floor the elevator must go. Then a program may test this signal and check the above-mentioned property. That is, it will try to generate a signal in which the door is never held open for more than fifteen seconds, and in which a user must wait more than three minutes after calling the elevator.

Definition
Given an alphabet A, a signal $$\gamma$$ is a sequence $$(I_0,a_0),(I_1,a_1),\dots,$$, finite or infinite, such that $$a_i\in A$$, each $$I_i\subseteq\mathbb R_+$$ are pairwise disjoint intervals, $$0\in I_0$$, and $$I_i\cup I_{i+1}$$ is also an interval. Given $$t\in I_i$$ for some $$i$$, $$\gamma(t)$$ represents $$a_i$$.

Properties
Some authors restrict the kind of signals they consider. We list here some standard properties that a signal may or may not satisfy.

Finite variability
Intuitively, a signal is said to be finitely variable, or to have the finite variability property, if during each bounded interval, the letter change a finite number of times. In our previous elevator example, this property would mean that a user may only press a button a finite number of times during a finite time. And similarly, in a finite time, the elevator can only open and close its door a finite number of times.

Formally, a signal is said to have the finite variability property, unless the sequence is infinite and $$\bigcup_i I_i$$ is bounded. Intuitively, the finite variability property states that there is not an infinite number of changes in a finite time. Having the finite variability property is similar to the notion of being non-Zeno for a timed word.

Bounded variability
The notion of bounded variability is a restriction to the notion of finite variability. A signal has the bounded variability property if there exists a lower bound between the beginning of two intervals with the same letter.

Before giving a formal definition, we give an example of signal which is finitely variable but not boundedly variable. Take the alphabet $$A=\{a,b\}$$. Take the interval $$\gamma$$ which sends the reals of the form $$n+\frac{c}n$$ with $$n\in\mathbb N$$ and $$c<n$$ to $$a$$ and every other reals to $$b$$. During each finite time interval, the letter changes a finite number of times. Thus this signal is finitely variable. However, the distance between two successive occurrences of the letter $$a$$ is arbitrarily small. Thus it does not have the bounded variability property.

Let a sequence $$(I_0,a_0),(I_1,a_1),\dots$$. If $$a_i\ne a_{i+1}$$ for each integer $$i$$, then the sequence is said to have the bounded variability property if there exists a real $$r>0$$ such that, for each $$i<j$$ with $$a_i=a_j$$ such that there exists no $$k$$ with $$i<j<k$$ and $$a_i=a_k$$ then the difference between the lower bound of $$I_j$$ and of $$I_i$$ is at least $$r$$. Note that each sequence $$\gamma$$ is equivalent to a sequence $$\gamma'$$ in which two successive letters are distinct. The sequence $$\gamma$$ is said to have the bounded variability property if and only if $$\gamma'$$ has the bounded variability property.

A set of signal is said to has the bounded variability property if the above-mentioned lower bound $$r$$ can be chosen to be the same for each signal of the set.

We know give main reason to consider signals with bounded variabilities. Assume we need to create a system, such as a signal automaton, which need to recall everything which occurred in the last time units. If we know that the signal is boundedly variable, we can compute an upper bound on the number of action which occurred during one time unit. Thus, we can create such a system and ensure that it only requires a finite memory.

For example, for an arbitrary predicate $$e$$, the signal stating whether the statement "$$p$$ holds sometime in the next time unit" holds has the bounded variability property. Indeed, when this statement becomes true, it remains true for a full time unit. Thus the difference between two occurrences where this statement becomes true is greater than a time unit.

Bipartite signal
A signal is said to be bipartite if the sequence of intervals start with a singular interval – i.e. a closed interval whose lower and upper bound are equal, hence a set which is a singleton. And if the sequence alternate between singular intervals and open intervals.

Each signal is equivalent to a bipartite signal. Indeed, any interval which is closed on the left is the union of a singular interval and of an interval open on the left, in this order. And similarly for intervals closed on the right.

A signal automaton reading a bipartite signal has a special form. Its set of locations can be partitioned into locations for singular interval, and locations for open intervals. Each transition goes from a singular location to an open one  and reciprocally.