## Section: New Results

### Polychronous automata

Participants : Loïc Besnard, Thierry Gautier, Paul Le Guernic, Jean-Pierre Talpin.

We have defined a model of *polychronous automata* based
on clock relations [13] .
A specificity of this model is that an automaton is submitted to clock constraints:
these finite-state automata define transition systems to express explicit reactions
together with properties, in the form of Boolean formulas over logical time, to constrain their behavior.
This allows one to specify a wide range of control-related configurations, either reactive, or restrictive
with respect to their control environment.
A semantic model is defined for these polychronous automata, that relies on a Boolean algebra of clocks.
Polychronous automata integrate smoothly with data-flow equations in the
polychronous model of computation.

This formal model of automata also supports the recommendations adopted
by the SAE committee on the AADL to implement a timed and synchronous
behavioural annex for the standard (*Logically timed specification in the AADL: a synchronous model of computation and communication (recommendations to the SAE committee on AADL).* L. Besnard, E. Borde, P. Dissaux, T. Gautier, P. Le Guernic, and J.-P. Talpin. Technical Report RT-0446, Inria, 2014.).

A minimal syntactic extension of the Signal language has been defined
to integrate polychronous automata in Polychrony.
We have added a new syntactic category of *process*, called `automaton` .
In such an automaton process, labeled processes represent states,
and generic processes such as `Transition` are used to represent
the automaton features.
Usual equations can be used in these automaton processes
to specify constraints or to define computations.

We have also defined and implemented the refinement of Signal processes as automata.
A given Signal program may be seen as an automaton which contains
one single state and one single transition, labeled by a clock.
This clock is the upper bound of all the clocks of the program
(the *tick* of the program).
The construction of a refined automaton from a Signal program is based
on delayed signals, viewed as state variables (in particular Boolean ones).
A state of the automaton is a Signal program with some valuation
of its state variables.
Transitions are labeled by clocks, which represent the events
that fire these transitions.
The principle of the construction consists in dividing a given state
according to the possible values of a state variable (i.e., *true*
and *false* for Boolean state variables)
in order to get two states, and thus two new Signal programs.
Each one of these two states is obtained using a rewriting of the
starting program.
Moreover, the absence of value for the state variable (which can be
considered as another possible value) is taken into account
in the clocks labelling the transitions.
The construction of the automaton is a hierarchic process.
Thanks to the clock hierarchy, this construction, which would be
expensive in the worst case (the size of the explicit automaton
being an exponential of its number of state variables),
may be heavily simplified.