Joachim Klein
38617a9184
explicit: add support for CTL model checking
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11171 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
802abccbce
explicit.StateValues: add complement() method (for boolean vectors)
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11170 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
5310be6b55
refactor SimpleLTL DAG check, remove common/PlainObjectReference.java
There's actually JDK library functionality for a hash map that
uses object identity instead of .equals(), making PlainObjectReference
unnecessary. Use IdentityHashMap instead.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11169 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
45b837567b
explicit.CTMCModelChecker: fix handling of PCTL* subformulas
Previously, subformulas were computed by a DTMCModelChecker
in the embedded DTMC, yielding wrong results. Now, maximal
state subformulas are checked via the CTMCModelChecker and
replaced by labels before calling the LTL model checking
routine on the embedded DTMC.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11168 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
4dd6a008d4
explicit.StateModelChecker: handleMaximalStateFormulas by recursive checking and attaching labels to the model
The labels encode the satisfaction sets of the subformulas. This method can be
used to do the standard PCTL* recursion step, i.e., computing Sat(phi) and replacing
phi with an atomic proposition a_phi in the formula.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11167 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
2ea728c681
explicit.LTLModelChecker: accept any StateModelChecker (preparation for upcoming CTMC PCTL*-fix)
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11166 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
5cfe76d82a
visitor.ReplaceLabels: for replacing labels in an expression
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11165 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
650e519e2d
DTMCEmbeddedSimple: pass through label methods to underlying CTMC
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11164 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
19dd97cdd4
explicit: add ModelExplicit.addUniqueLabel() to help with attaching generated labels to a model
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11163 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
19a1111491
explicit: add Model.hasLabel() method
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11162 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
ed0a08b00f
explicit: Proper exception instead of null pointer exception for explicit with system definition
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11161 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
faa8e1e51f
ModulesFileModelGenerator: fix constant evaluation in explicit engine when built from GUI [with Steffen Maercker]
When building a model from the GUI with the explicit engine, constant were sometimes not
updated correctly:
(1) Open xprism, switch to explicit engine
(2) Load a model with undefined constants, e.g., brp.pm
(3) Build the model, setting constants (e.g., 2 and 3)
(4) Build the model again, setting *other* constants (e.g., 22 and 3)
In step (4), the log file reflects the changed constants,
but the generated model has the same number of states as
in step (3) and is fact built with the constants of step (3).
The cause:
If the PRISM file is not reloaded, then the currentModelGenerator
remains the same. In ModulesFileModelGenerator.initialise(), called
from setSomeUndefinedConstants() in step (3), the modulesFile is
overwritten with the modulesFile where the constants set in step (3)
have been replaced in the AST with the concrete values.
In step (4), there are no more AST-elements with undefined constants
and hence the modules file does not reflect the changed constants when
the constants in the constant list are changed.
The fix is to keep a copy of the original modules file in the
ModulesFileModelGenerator which is freshly deepCopyied and
processed in the subsequent calls to initialise().
Regression introduced in SVN r10996 when switching to the
ModulesFileModelGenerator infrastructure.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11159 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
e838330aae
reapply previous commit (prepare prism-auto for python3 compatibility)
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11158 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
e18c7362be
temporarily reverting previous commit (to figure out some Jenkins build stuff)
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11157 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
4b711fe98a
prism-auto: add parentheses for print call to make script compatible with python3
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11155 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
da3761dd5d
acceptance: add / cleanup complementation to AcceptanceGeneric
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11113 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
dc5f714c1f
AcceptanceRabin: fix name typo in complementation to Streett
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11112 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
3c564671f7
AcceptanceReach: Fix off-by-one bug in complementation to AcceptanceRabin
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11111 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
57258db7a2
typo: getListOfKeywords()
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11110 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
0cf8c8cbe0
GUI: Tweak double-click handling in property list
Now, double-clicking on a property will open the editor
for that property. Double-clicking on an empty area of the
property list will open the "new property" editor.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11109 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
9ea440f147
GUI: In property editor dialog, place initial focus on the property text field
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11108 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
9e805295cc
NBA: print(out, format) method, like for DA
This allows specification of the output format later on via the command line.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11106 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
f9b84efc89
NBA: DOT output (roughly similar to the ltl2dstar DOT output)
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11105 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
17440416ca
NBA: Fix HOA output (--END-- marker was emitted per state)
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11104 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
a89db49ecc
Bug fix for use of model generators in Prism: PTA digital clocks + explicit engine was broken.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11094 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
e2074832df
Switch from ModuleFile to ModelInfo in Values object.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11089 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
efbeda6faf
Switch from ModuleFile to ModelInfo in State object.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11088 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
8c26fba334
Code tidy.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11085 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
f78b3437d6
ModelInfo: provide getVarIndex() and getVarName()
Default implementation relies on the getVarNames() method
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11079 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
b6828a7045
Remove unused "techLog" from Prism object and other classes.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11078 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Vojtech Forejt
9b7737d1cc
Changing an undocumented feature (aka bug) where in the output Pareto curve, probabilistic properties came before reward properties. Now the output respects the order which user gave on input to multi(...)
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11077 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Vojtech Forejt
2d8194398b
Fixed a bug where the type of multi was not correctly determined if boolean arguments came before double arguments. Now we enforce doubles to be given first.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11076 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
934e3f24e0
Bug fix in new ModelGenerator usage: breaks on existence of system...endsystem.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11075 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Vojtech Forejt
f4961ba4ed
Added an exception for the case when -lp is used for multi-objective, and there is a finite step bound. Up until now no warning was given and the step bound was ignored (treated as infinite)
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11074 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
04d1c3efdc
StateModelChecker: remove mainLog field here, now stored in parent class PrismComponent
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11073 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
8d2199e0fe
prism.StateModelChecker: initialise PrismComponent from other StateModelChecker constructor as well...
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11072 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
5332421dff
Comment typo.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11071 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
9c1c80b2b0
prism.StateModelChecker: extends PrismComponent
This allows a (symbolic) model checker to serve as the parent PrismComponent
and provides access to the settings and log files whenever a ModelChecker
is available.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11070 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
6580cbdd79
PrismCL: Flush logfile on error
In errorAndExit, not flushing the logfile before exiting can result
in missing output when run in nailgun mode.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11069 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Vojtech Forejt
4562006bb0
fixed multiobjective lp bug where the reward objective function was not set if there were no PCTL targets.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11065 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Vojtech Forejt
bd73bc0857
Minor stdout cleanup
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11064 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Vojtech Forejt
5e935c3a35
Propagating bugfix from rev @11061 to Pareto curve generation
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11063 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
85e6a903ba
Bug fix: Value iteration multi-objective was removing self-loops in situations where it should not be.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11061 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
303213e77b
ProbModelChecker: Fix reference leak when doing steady-state computation (MTBDD)
We have to clear the StateValues vector of the initial distribution
to avoid a reference leak when using the MTBDD engine. E.g., when
doing
prism prism-examples/dice/dice.pm -ss -mtbdd
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11060 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Vojtech Forejt
f0b5b2ca0c
Bugfix for a case when the Pareto curve for minimising objectives contained (0,0) and the direction for a new hyperplane was not correctly computed
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11059 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Vojtech Forejt
efff3c629b
Removing superfluous debugging output
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11057 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Vojtech Forejt
563d0bd772
Added capability for testing Pareto curves (no tests added yet, and the Pareto curve generation itself is still buggy)
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11056 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
ccfaae3389
Add -exportmodeldotview switch (for now, hard-coded to use "dot" and "open" in path).
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11055 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
a025ae2e07
Add model checking of R[C] operator for CTMCs.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11041 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
ea537cc895
Expression.containsTemporalTimeBounds(): do not recurse into P/R/SS subformulas
Expressions such as
P=?[ X F P>0[F<=4 s=7] ]
were problematic before, as the LTL check for time bounds would recurse into the P-subformula
and complain without need.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11036 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago