Skip to content

Pedantic mode #801

@Philipp15b

Description

@Philipp15b

Hello Team Storm!

Because this conversation keeps coming up internally (brought up by me 😂), I'd like to suggest a new --pedantic flag to Storm which enables...

  • a sound algorithm to compute results (not standard value iteration)
  • either rational arithmetic or sound rounding or sound checking (via certificates?) of floating-computed values
  • explicit overflow checks (under what circumstances does model exploration have undefined behavior w.r.t. over-/underflow/other arithmetic?)
    • Both for explicitly bounded integers, as well as "unbounded" integers (which seem to have a default precision of 32 bits?)
  • I have also heard that building in DEBUG mode enables additional checks. Are these potentially valuable as well?

If valuable checks are only available in DEBUG mode, then --pedantic should always crash with an error in RELEASE mode.
Similarly, if some specific problem could only be tackled by an implementation which cannot give sound results, Storm should exit with an error.

In short, I'd like the pedantic flag to enable as pedantic computations as possible. Maybe there are more choices you can come up with?
To be clear, the pedantic flag should only guarantee pedantic soundness modulo Storm bugs.
To enable all of the additional checks for debugging, there could be another --paranoid flag? :)

More on some individual flags I found:

  • --exact also, as I understood, switches the solver to an equation solver instead of e.g. (sound?) value iteration in addition to switching to rational arithmetic.

    • I often just want sound approximations and do not need actually exact results.
  • --[build:]nofixdl (ndl) ............................................. If the model contains deadlock states, they need to be fixed by setting this option.

    The name suggests otherwise, but according to the description one needs to set this flag to properly handle deadlocks?

  • --[build:]explchecks (ec) ........................................... If set, additional checks (if available) are performed during model exploration to debug the model

    What are these additional checks?

  • --[build:]build-out-of-bounds-state ................................. If set, a state for out-of-bounds valuations is added

    This seems to be the option for out of bounds checks?

  • --[debug:]additional-checks ......................................... If set, additional sanity checks are performed during execution.

    Are these just for debugging Storm internally or are these additional checks on the model that might affect soundness?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions