Joachim Klein
881ecfef2f
imported patch predecessor-LTLMC-use-backward.patch
7 years ago
Joachim Klein
3757da3fa0
imported patch rewardcounter-TemporalOperatorBounds-use.patch
7 years ago
Joachim Klein
04a1a9b735
imported patch common-REVERT-prodStatesList-explicit-LTLMC.patch
7 years ago
Joachim Klein
d978661832
(HOA path) Add support in LTLModelCheckers (ex/sym) to support HOA path specifications
Additionally, protect multi-objective model checking and checkRewardCoSafeLTL against HOA path specifications.
Later on, we can add handling for that.
7 years ago
Joachim Klein
46d8ec3d8b
explicit.LTLModelChecker: protect against int overflow if product state space can not be indexed by int
The state information of the model-automaton product are stored as an int array, with one
entry for every combination of model state index and automaton state index. Thus, |S|*|A| has to be
less than INT_MAX, even if the reachable state space could be index with an int.
Thus, we use Math.multiplyExact to catch the case that the product of the two numbers of states overflows
the int range and throw an Exception.
8 years ago
Joachim Klein
97074f5d58
Refactor explicit SCC computation, splitting SCCConsumer from SCCComputer.
To obtain the previous behaviour, change
SCCComputer sccs = SCCComputer.createSCCComputer(parent, model);
sccs.computeSCCs();
... = sccs.getSCCs();
to
SCCConsumerStore sccs = new SCCConsumerStore();
SCCComputer sccComp = SCCComputer.createSCCComputer(parent, model, sccs);
sccComp.computeSCCs();
... = sccs.getSCCs();
This additional flexibility in how SCCs can be consumed can be used
in the future for example to handle SCCs on-the-fly, without
having to store all of them at the same time.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@12110 bbc10eb1-c90d-0410-af57-cb519fbb1720
9 years ago
Joachim Klein
9ef03e0c11
LTLModelCheckers: constructDFAForCosafetyRewardLTL
This method constructs a DFA for a co-safe LTL formula
with appropriate semantics for co-safe LTL reward computations.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@12064 bbc10eb1-c90d-0410-af57-cb519fbb1720
9 years ago
Joachim Klein
1071b362e7
explicit LTL, DTMC/MDP product: report product construction time, product statistics
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@12046 bbc10eb1-c90d-0410-af57-cb519fbb1720
9 years ago
Joachim Klein
204f972abb
LTLModelChecker: add support for EC computations against Büchi acceptance
For symbolic, including support for fairness.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11272 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
e0bd1c22cb
Cleanup DA-based simple path formula with bounds handling
The routines in LTL2RabinLibrary for generating DA for
simple path formulas with time bounds have been adapted
to deal with negated labels. This makes the special
preprocessing for such formulas unnecessary and we remove it.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11199 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
9db978a12a
switch to new way of obtaining acceptance type name
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11193 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
8af847bed5
explicit.LTLModelChecker: remove exception on constructor (never thrown) [Steffen Märcker]
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11190 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
5d33639dd7
explicit.LTLModelChecker: Comment whitespace
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10578 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Joachim Klein
298266c1cd
explicit.LTLModelChecker: construct a VarList for the Model-DA product if the model had a varlist
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10576 bbc10eb1-c90d-0410-af57-cb519fbb1720
10 years ago
Dave Parker
ad238d314c
Allow -exportpropaut to export DA in HOA format, e.g.: prism dice.pm -pf "P=?[X X d=6]" -exportpropaut:hoa da.hoa
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10537 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
590ae94e9f
Refactor explicit engine product construction.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10398 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
80c8dcd09d
Refactor explicit engine product construction.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10393 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
9e434ad9ea
Merge in explicit engine detection of end components for Streett acceptance. [from Joachim Klein]
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10325 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Joachim Klein
fe95ece342
Deterministic automata: Better checking of atomic propositions
- Loosen check in LTL2DA for external automata, as the automata
having less APs than expected is fine
- Add generic checking in automata.DA, will catch problems no
matter the source of the automaton (jltl2dstar, HOA, LTL2RabinLibrary...)
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10286 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Joachim Klein
83ad513dc4
explicit.LTLModelChecker: catch missing edges in the DA for increased robustness
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10264 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
4bb807cb8e
Code rearrange: move automata stuff to a separate "automata" package.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10234 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
22bb6dea1c
Merge prism-hoaf branch back into trunk.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10231 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
0984820760
Add support for -exportprodtrans and -exportprodstates switches to explicit engine.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10104 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
b4f05f3cd0
Add possibility to specify type to -exportpropaut switch (dot or txt), e.g. -exportpropaut:dot dra.dot.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10018 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
98dcb3c803
Code tidy
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10008 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
7352ad17b3
Small optimisation in LTL model checking: reduce number of propositions used in deterministic automaton by checking for negations.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10002 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
Dave Parker
6e1cf75a8e
Some re-factoring of LTL model checking in the explicit engine.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9921 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
5e92fabe95
Comment typo.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9919 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
c5b40f44d8
Code tidy.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9913 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
32ad9bbaae
Code tidy.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9912 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
3e990e89e3
Some tidying/fixing in EC generation, including proper support in the explicit engine version for finding ECs that intersect with "accept".
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9906 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
b6f3b2dce3
Adapt (explicit) LTLModelChecker to support generic acceptance types. [Joachim Klein]
Adapt product constructions (rename dra to da, generic lifting of acceptance)
Generic findAcceptingBSCCs() and findAcceptingECStates()
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9604 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
f644011ba2
Refactor LTL-to-deterministic automaton generation, introduce LTL2DA and use LTL2RabinLibrary only for hard-coded and specially crafted DRA. [Joachim Klein]
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9603 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
15a48d4fff
LTLModelChecker.isSupportedLTLFormula(), for checking whether a path formula can be handled. [Joachim Klein]
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9600 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
9ad8e8165e
LTL2RabinLibrary and model checkers: support automata based constructions for temporal bounds for simple path formulas. Now, the constantValues from the model checker have to be passed to LTL2RabinLibrary to allow resolving constants in the bounds. [Joachim Klein]
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9598 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
a18d74e5b6
provide LTLModelChecker.constructProductMDP(MDP mdp, Expression ltl), encapsulating DA generation and product construction. [Joachim Klein]
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9594 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
e3ce1e85ee
provide LTLModelChecker.constructProductMC(DTMC dtmc, Expression ltl), encapsulating DA generation and product construction. [Joachim Klein]
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9593 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
ab81007716
Lift stored labels and statelist to the product model. [Joachim Klein]
This is a big step towards making the product model a "normal" model, supporting model checking on the product model.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9592 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
36991a899a
Refactor LTL product construction in explicit engine. [Joachim Klein]
LTLModelChecker: add LTLProduct, translation between product and model / automaton states.
Refactor explicit.DTMCModelChecker to use Product for DRA product
Refactor explicit.MDPModelChecker to use Product for DRA product
Switch to using AcceptanceRabin in the Product instead of passing DRA to the findAcceptingBSCC etc routines
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9591 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
c00ffea7d8
Refactor: switch from prism.DRA<BitSet> to prism.DA<BitSet, AcceptanceRabin>. Changes access to the Rabin pairs. [Joachim Klein]
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9578 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
7e6f8e8cf6
Revert recent DFA optimizations to allow for acceptance type refactoring. Functionality will be later readded using AcceptanceReach. [Joachim Klein]
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9575 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
0b8223c685
Explicit engine: Add BitSet statesOfInterest parameter to the various checkExpression... methods [Joachim Klein].
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9551 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
797f9494b2
Explicit engine: Add BitSet statesOfInterest parameter to the various checkExpression... methods [Joachim Klein].
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9545 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
9f4a6dba5f
LTL explicit engine bug fix (from Joachim Klein).
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9501 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
1f0382a0b6
LTL model checking optimisation - skip BSCC/EC detection if DRA is (syntactically) a DFA.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9431 bbc10eb1-c90d-0410-af57-cb519fbb1720
11 years ago
Dave Parker
7f10ec8b60
Bug in explicit engine LTL model checking (happens when there are multiple APs in the formula and ordering is different in the DRA). Reported by Manfred Jaeger.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@9091 bbc10eb1-c90d-0410-af57-cb519fbb1720
12 years ago
Dave Parker
3ddadc504e
Comment typo
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@7621 bbc10eb1-c90d-0410-af57-cb519fbb1720
12 years ago
Dave Parker
99a9c85a96
Fixes/tidies of explicit LTL model checking (mostly from Joachim Klein): DRA products correctly include all initial states, and probabilities are ampped back correctly.
git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@7619 bbc10eb1-c90d-0410-af57-cb519fbb1720
12 years ago