Skip to content

Analysis method dependent warnings and errors #10

@RasmusRendal

Description

@RasmusRendal

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 clock rate (derivative).

    UPPAAL accepts but abstracts away the following features:

    • Dynamical expressions over hybrid clock rates (derivatives) as hybrid clock vairables 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).
  • is_stopwatch: same as is_timed, but can have clock rate (derivate) expressions which stop the clock, e.g. x'==0 (and x'==1, which is default and can be omitted).

  • is_hybrid: same as is_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 as urgent broadcast ASAP;).
  • is_stochastic: same as is_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 as is_timed but allows more than one player, has non-controllable edges.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions