Joachim Klein
750923dfbf
(param/exact) fix handling of != in parametric/exact engine (with Linda Leuschner)
Missing case for NE operator in BoxRegion.cmpOp. This affects the check routines
for the != operator in the parametric/exact engines, e.g., for state formulas
such as s!=t
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11976 bbc10eb1-c90d-0410-af57-cb519fbb1720
9 years ago
Dave Parker
002257286d
Align parametric model construction with the non-parametric a little more.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11801 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
28f66c6c69
BigRational: extend static BigRational from(Object value) to accept String value
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11799 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
8b569b9e4e
BigRational: Make the static final constants (ONE, INF, NAN, etc) public
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11798 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
1f9fb4d505
BigRational: When canceling, preserve NaN instead of converting to ZERO
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11797 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
7e51a56157
Code tidy
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11795 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
19ec2f0a76
Refactor parametric model construction to use an extension of ModelGenerator instead of reading specifically from a ModulesFile. Needs further refactoring.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11793 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
5c68cf3c2b
param.BigRational: fix BigRational.MONE definition
MONE is not used in the current code base.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11750 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
e1b22b5a9d
param/exact: warn if some probability/rate is zero in an update
The transitions are explored twice during model construction, once
to find the reachable states and the second time to actually build
the transition structure of the model. We suppress the warning
in the first pass so that it does not appear twice.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11656 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
c20ce96c98
param/exact: filter zero probability updates so that they don't appear in the model
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11654 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
cc9585aa25
param: convert expressions to functions earlier in model building
Already convert the expression to a function for ChoiceListFlexi,
as this will allow filtering zero probability updates (next commit)
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11653 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
777af75ee8
param.Dag: handle special functions (+/-inf, NaN) in fromBigRational and asBigRational
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11650 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
030aa4d0d8
ParamModel: support DOT output
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11649 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
ccdb02c5f2
ParamModel: provide getTransitionsIterator
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11648 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
f4ca1fbeb1
param.JasFunction.isConstant: actually return true for 0
The jas library returns false for the zero function...
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11647 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
6f4c9bf1e2
param/exact mode: Error if probabilities don't sum to 1 for some command (DTMC, MDP)
If we can can not guarantee that the probabilties for a command sum to 1 in a DTMC or
MDP then we report an error. This is similar to what happens for the explicit and
symbolic engines and fixes issue prismmodelchecker/prism#6 .
This error check can be switched off using the -noprobchecks option.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11644 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
ba83b581b6
param.Function: add isConstant() method
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11643 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
e36324ce54
ParamModelChecker: use evaluateExact to determine the P/R operator bounds
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11640 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
b030d707eb
param: Wrap result as ParamResult, support testing (for single region result)
We wrap the RegionValues returned by ParamModelChecker in a ParamResult
object, which stores additional meta-information that allow for the
result to be tested.
In test mode, if there is only a single region, tests against the given
expected RESULT expression.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11639 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
b48a81827a
param.ModelBuilder: add getParameterNames() method
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11638 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
5f17dfed2e
param: Output size information for the constructed model
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11616 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
7b8d489ee2
param/exact: support for ITE and functions in probability expressions
If-then-else expressions:
The if-expression can not refer to a parametric constant.
Other functions (min, max, floor, ...):
Arguments can not refer to parametric constants and evaluating
the function exactly has to be supported.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11615 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
d4d87c9ea3
ParamModelChecker: Use standard log handling
ParamModelChecker already has a mainLog by being a PrismComponent,
inheriting the log from the parent component.
In particular, this allows redirection of the log output via the
-mainlog parameter (as used by prism-auto).
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11600 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
bf6858ee7c
param.BigRational: fix isInteger()
We have to compare the denominator to BigInteger.ONE instead of
BigRational.ONE...
Introduced in SVN 11554.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11596 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
6598fbcfa0
Tidying + refactoring in param.SymbolicEngine for alignment with simulator.Updater, on which it is based.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11578 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
70e9e56a73
BigRational: add toInt() and toBoolean() methods
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11555 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
427844cfd1
BigRational: add isInteger method
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11554 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
f3d7e01c71
BigRational: add floor() and ceil()
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11553 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
48299632a1
BigRational: add from(other) static constructor
Currently, supports int, long, double, boolean and other BigRational
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11552 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
eca03981a0
param.BigRational: fix comment typo
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11551 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
4c13267ded
Add test methods for special cases in ExpressionLabels.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11028 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
031a14e778
Small optimisation when model checking filters: Reduce set of filter states to the first state if filter is "first". [from Steffen Marcker]
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11009 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
66ea7475a7
Optimisation when dealing with filters: perform cardinality check for "state" filters earlier. [from Steffen Marcker]
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11008 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
eda5876325
Minor refactoring, ahead of upcoming patches. [from Steffen Marcker]
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11007 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
a76b3c73bd
Remove (most) usage of R_F in temporal operators.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10344 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
c27598a84f
Add support for negation of simple path formulae to parametric engine.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10211 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
69d0e44ed4
Parametric model checking error message.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10209 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
937978da0b
Parametric model checking error message.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10208 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
5238c76c4c
Optimisation in the simulator for models with very large numbers of actions (from Marcus Daum + Joachim Klein).
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10057 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
b12953b937
Make use of the new PrismNotSupportedException.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9999 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Ernst Moritz Hahn
892ecc31e4
fix for dtmcs with overlapping commands
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9516 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Ernst Moritz Hahn
363b6c0442
added forgotten deep copy
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9515 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Ernst Moritz Hahn
ac7b9d7f80
removed warning
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9514 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Ernst Moritz Hahn
2e0463c231
corrected choice of order in which states were eliminated. The previous approach lead to states always being eliminated in ascending state number order.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9513 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
f699af97bc
Move printout of result for parametric result to allow reuse in exact model checking.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9387 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
c99655eda9
Catch some divide-by-zero errors in JasFunction.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9385 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
f0db2c26f9
Improve handling of constants in parametric model checking - avoid conversion of fractional constants such as 1/3 to doubles and the resulting loss of precision.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9346 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
3ddbf6e3a0
Bug fix in parametric model checking (spotted by dbanisimov): some missing Expression.deepCopy() calls were resulting in rewards (and probably other things) being evaulated incorrectly.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9205 bbc10eb1-c90d-0410-af57-cb519fbb1720
12 years ago
Dave Parker
390344d02f
Undo accidental part of last commit
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9005 bbc10eb1-c90d-0410-af57-cb519fbb1720
12 years ago
Dave Parker
06c914a476
Change visibility of some classes/methods in the param package to allow use from outside the package (and fix broken build).
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9004 bbc10eb1-c90d-0410-af57-cb519fbb1720
12 years ago