UPPAALModelChecker / utap

Uppaal Timed Automata Parser
GNU Lesser General Public License v2.1
10 stars 9 forks source link

Analysis method dependent warnings and errors #10

Open RasmusRendal opened 2 years ago

RasmusRendal commented 2 years ago

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):

petergjoel commented 2 years ago

We probably need to discuss some good and more semantic tags here (e.g. is_timed_automata, is_stopwatch_automata, has_stochastics, ..), but I like the idea.

Also, instead of making this flags in the NTA-tag, maybe add a specific tag such as <semantics> with sub-tags related to which warnings are disabled. Just having attributes seems limiting and probably will need a refactor down the road.

One could e.g. imagine that a is_game can be refined by number_of_players and non_lazy etc.

RasmusRendal commented 2 years ago

Analysis methods shouldn't be the only thing supported this way. For instance, we could also have an option which decided which extrapolation methods should be applicable to the model. However, since 99% the time, the user shouldn't have to know what extrapolation is, we should also have an "automatic" mode, which just silences all errors, and auto-enables the ones that receive none.

I don't think many users would actually care about what extrapolation methods their model supports. But I think moving responsibility for checking which ones are possible to the type checker would be better than what we are doing now.

mikucionisaau commented 1 year ago

I have added a proposal for model categories to the descriptions of this issue. They are mostly "add-on" for UTAP, whereas UPPAAL will likely need more refined categories (e.g. certain verification options can be supported only when certain features are absent).

Currently is_hybrid and is_stochastic are synonymous, perhaps they need to be merged into one such as is_hybrid_stochastic.

I am a bit skeptical about the inclusion of such information to the XML documents: