-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better error message for unsupported property in simplification of parametric model #528
Comments
@linusheck could you look into this please? |
"Who is responsible" for simplifying the model is inconsistent: for feasibility and monotonicity, this is done by storm-pars.cpp and cannot be disabled by the user:
For partitioning, it is done by the parameter lifting model checkers and is configurable:
I think we should only have one place where simplification happens, either in storm-pars.cpp (I kind of prefer this) or in the methods themselves. Once it's configurable whether to simplify, I think Storm should throw an error if it is not supported instead of trying to continue with the original model. Returning |
In my view, simplifying the model should be optional as a pre-processing step and not be part of the method. I would also be in favor of simplifying the model in storm-pars. Maybe an even better idea would be to move the simplification to the api. |
I tend to agree with Matthias here, although I think that part of the simplification is actually bringing the model into a normal form -- which is not necessarily a general simplification and it may be rather method-specific. The general question may be: who is responsible for bringing the model into the right form such that it can be supported by an algorithm? |
The simplification is definitely method-specific and it can also be intransparent to the user when simplification is happening and when it isn't. For instance, when monotonicity tells me that the model is monotone at state 25, it's by default referring to the state of the simplified model, which might not be the same when I invoke a different method with default arguments. |
Given your last example, I would be in favor of making the simplification a bit more transparent such that at least some traceability is given. Ideally we decouple a general simplification (which can usually be applied) from the method-specific simplifications (which are needed to obtain a normal form). I am not sure whether this is possible though and how much effort it would be. |
When trying to analyze a parametric model with an unsupported formula the simplification throws an
UnexpectedException
here. It would be better to clearly indicate that the given formula is not supported. As I see it, we could eitherWhat would be the best way?
The text was updated successfully, but these errors were encountered: