-
Notifications
You must be signed in to change notification settings - Fork 10
Description
As UPPAAL has grown over the years, it has come to support many more analysis methods. While we initially only had symbolic model checking, this is no longer the case. Furthermore, the Venn Diagram of the models that support symbolic model checking, and the models that support, for instance, SMC, is not a perfect circle.
A user that is explicitly creating a model for SMC should not receive warnings about it not working with classical analysis methods. Therefore, the analysis methods that a TA aims to support should be a part of the document describing it. I propose simply having the <nta> tag at the beginning have optional attributes such as classical="false", which allows the user to disable any warnings and errors related to classical model checking. Otherwise, it should default to true.
Specifically, this would mostly involve killing of the feature checker, since we move that responsibility onto the user. This will increase the usability significantly, because instead of the tab you want to use getting greyed out without knowing why, you will specify what methods you want to use, and if you create a model to which that method isn't applicable, UPPAAL will tell you what you're doing wrong.
Summary for model categories in UTAP (draft):
-
is_timed: plain timed automata with simple clocks and integer variables, all kinds of synchronisations, which do not use:- Dynamical expressions over simple
clockrate (derivative).
UPPAAL accepts but abstracts away the following features:
- Dynamical expressions over
hybrid clockrates (derivatives) ashybrid clockvairables are removed (abstracted away). - Branching edges become non-deterministic edges and probabilistic weights are ignored (abstracted away).
- Exponential delay rates on locations (abstracted away).
- Floating point variables (
double) and operations (abstracted away). - Uncontrollable edges become simple edges (game information is abstracted away).
- Dynamical expressions over simple
-
is_stopwatch: same asis_timed, but can have clock rate (derivate) expressions which stop the clock, e.g.x'==0(andx'==1, which is default and can be omitted). -
is_hybrid: same asis_stopwatch, but can have arbitrary clock rate (derivative) expressions. Such models cannot have:- Handshake synchronizations (too complicated to determine on-the-fly when synchronizations are available).
- Guards over dynamical clock variables (non-const derivatives) with non-urgent edges (use
ASAP!synchronization to make edge urgent, which is declaraed asurgent broadcast ASAP;).
-
is_stochastic: same asis_hybrid, but can have branching edges and exponential delay rates on locations. Such models cannot have:- Handshake synchronizations (resulting probability distributions become too complicated to be specified and analysed).
- Guards over dynamical clock variables (non-const derivatives) with non-urgent edges.
-
is_game: same asis_timedbut allows more than one player, has non-controllable edges.