TChecker

TChecker is a model-checking tool for real-timed systems developped
at LaBRI by Frédéric Herbreteau, Gerald Point and Thanh-Tung Tran.

Features

TChecker has been designed as a platform for the experimentation of
verification algorithms for real-time systems. It provides a
collection of libraries (data structures, algorithms, etc.) to ease
the implementation of verification algorithms. Systems are modeled
as a network of timed automata with synchronous and asynchronous
actions, discrete variables over finite domains and dense-time
clocks. Supported inputs include UPPAAL bytecode (version 4.0.X) and
C++ (using TChecker libraries).

Specifications are written directly in the model as an observer.
Model-checking is thus reduced to the emptiness problem for timed
automata. TChecker implements emptiness and Büchi emptiness
algorithms. Emptiness algorithms feature UPPAAL-like algorithm and
dynamic bound algorithms using non-convex abstractions[2,4,5].
Algorithms for Büchi emptiness include Couvreur's algorithm combined
with Strongly non-Zeno construction, and guessing zone graph based
algorithms[1,3,6,7,8].

As an experimentation platform, TChecker does not only outputs an
answer to an emptiness query but various statistics, as well as zone
graphs, reachable states and spanning trees computed by the various
algorithms.

We have added a loop with action busy on state retry
that is missing in the publication above. Without this loop, the
system cannot exit the collision mode. Our model has 9 stations.
Bigger or smaller instances are obtained by modifying the value
of constant N. All other constants (L for lambda and S for sigma)
have been set accordingly to the publication above.

Since TChecker only supports resets of clocks to zero, we have
replaces every reset like x:=y by x:=0.
This involved duplicating states and transitions. Our model has
10 processes. Bigger or smaller instances are obtained by
modifying the value of constant N. All other constants (TTRT,
SA, TD) have been set accordingly to the publication above.

Our model has 7 processes. Bigger or smaller instances are
obtained by modifying the value of constant N. We have set
constants k (Delta in the publication) and K (Lambda in the
publication) to 10 which seems standard in timed automata
benchmarks.