78 changed files with 1939 additions and 506 deletions
-
4.gitignore
-
4examples/mdp/csma/csma3_4.nm
-
4examples/mdp/csma/csma4_4.nm
-
4examples/mdp/csma/csma4_6.nm
-
16examples/pdtmc/tiny/tiny.pm
-
3src/builder/ExplicitPrismModelBuilder.cpp
-
2src/cli/cli.cpp
-
22src/cli/entrypoints.h
-
12src/logic/Formula.cpp
-
5src/logic/Formula.h
-
1src/logic/Formulas.h
-
21src/logic/LongRunAverageRewardFormula.cpp
-
29src/logic/LongRunAverageRewardFormula.h
-
16src/modelchecker/AbstractModelChecker.cpp
-
3src/modelchecker/AbstractModelChecker.h
-
4src/modelchecker/csl/HybridCtmcCslModelChecker.cpp
-
2src/modelchecker/csl/HybridCtmcCslModelChecker.h
-
4src/modelchecker/csl/SparseCtmcCslModelChecker.cpp
-
2src/modelchecker/csl/SparseCtmcCslModelChecker.h
-
4src/modelchecker/csl/SparseMarkovAutomatonCslModelChecker.cpp
-
2src/modelchecker/csl/SparseMarkovAutomatonCslModelChecker.h
-
4src/modelchecker/csl/helper/HybridCtmcCslHelper.cpp
-
2src/modelchecker/csl/helper/HybridCtmcCslHelper.h
-
2src/modelchecker/csl/helper/SparseCtmcCslHelper.cpp
-
2src/modelchecker/csl/helper/SparseCtmcCslHelper.h
-
2src/modelchecker/csl/helper/SparseMarkovAutomatonCslHelper.cpp
-
2src/modelchecker/csl/helper/SparseMarkovAutomatonCslHelper.h
-
11src/modelchecker/prctl/HybridDtmcPrctlModelChecker.cpp
-
3src/modelchecker/prctl/HybridDtmcPrctlModelChecker.h
-
19src/modelchecker/prctl/HybridMdpPrctlModelChecker.cpp
-
1src/modelchecker/prctl/HybridMdpPrctlModelChecker.h
-
45src/modelchecker/prctl/SparseDtmcPrctlModelChecker.cpp
-
4src/modelchecker/prctl/SparseDtmcPrctlModelChecker.h
-
45src/modelchecker/prctl/SparseMdpPrctlModelChecker.cpp
-
4src/modelchecker/prctl/SparseMdpPrctlModelChecker.h
-
19src/modelchecker/prctl/SymbolicDtmcPrctlModelChecker.cpp
-
1src/modelchecker/prctl/SymbolicDtmcPrctlModelChecker.h
-
19src/modelchecker/prctl/SymbolicMdpPrctlModelChecker.cpp
-
1src/modelchecker/prctl/SymbolicMdpPrctlModelChecker.h
-
37src/modelchecker/prctl/helper/HybridDtmcPrctlHelper.cpp
-
16src/modelchecker/prctl/helper/HybridDtmcPrctlHelper.h
-
7src/modelchecker/prctl/helper/HybridMdpPrctlHelper.cpp
-
2src/modelchecker/prctl/helper/HybridMdpPrctlHelper.h
-
123src/modelchecker/prctl/helper/SparseDtmcPrctlHelper.cpp
-
8src/modelchecker/prctl/helper/SparseDtmcPrctlHelper.h
-
142src/modelchecker/prctl/helper/SparseMdpPrctlHelper.cpp
-
8src/modelchecker/prctl/helper/SparseMdpPrctlHelper.h
-
7src/modelchecker/prctl/helper/SymbolicDtmcPrctlHelper.cpp
-
2src/modelchecker/prctl/helper/SymbolicDtmcPrctlHelper.h
-
7src/modelchecker/prctl/helper/SymbolicMdpPrctlHelper.cpp
-
2src/modelchecker/prctl/helper/SymbolicMdpPrctlHelper.h
-
1322src/modelchecker/reachability/SparseDtmcEliminationModelChecker.cpp
-
105src/modelchecker/reachability/SparseDtmcEliminationModelChecker.h
-
13src/modelchecker/results/ExplicitQuantitativeCheckResult.cpp
-
2src/modelchecker/results/ExplicitQuantitativeCheckResult.h
-
11src/modelchecker/results/HybridQuantitativeCheckResult.cpp
-
2src/modelchecker/results/HybridQuantitativeCheckResult.h
-
3src/modelchecker/results/QuantitativeCheckResult.h
-
6src/modelchecker/results/SymbolicQuantitativeCheckResult.cpp
-
2src/modelchecker/results/SymbolicQuantitativeCheckResult.h
-
8src/parser/ExpressionParser.cpp
-
23src/parser/FormulaParser.cpp
-
2src/parser/SpiritErrorHandler.h
-
12src/settings/modules/SparseDtmcEliminationModelCheckerSettings.cpp
-
2src/settings/modules/SparseDtmcEliminationModelCheckerSettings.h
-
2src/solver/MathsatSmtSolver.cpp
-
15src/storage/BitVector.cpp
-
7src/storage/BitVector.h
-
12src/storage/ModelProgramPair.h
-
39src/storage/SparseMatrix.cpp
-
7src/storage/SparseMatrix.h
-
11src/storage/bisimulation/BisimulationDecomposition.cpp
-
4src/utility/constants.cpp
-
99src/utility/graph.cpp
-
7src/utility/graph.h
-
1src/utility/storm.cpp
-
13src/utility/storm.h
-
4test/functional/modelchecker/SparseDtmcEliminationModelCheckerTest.cpp
@ -0,0 +1,16 @@ |
|||
dtmc |
|||
|
|||
module tiny |
|||
s : [0 .. 3] init 0; |
|||
|
|||
[] s = 0 -> 1/3 : (s'=1) + 1/3 : (s'=2) + 1/3 : (s'=3); |
|||
[] s = 1 -> 1 : (s'=2); |
|||
[] s = 2 -> 1/2 : (s'=2) + 1/2 : (s'=1); |
|||
[] s = 3 -> 1 : (s'=3); |
|||
|
|||
endmodule |
|||
|
|||
rewards |
|||
s=1 : 10; |
|||
s=3 : 5; |
|||
endrewards |
@ -0,0 +1,21 @@ |
|||
#include "src/logic/LongRunAverageRewardFormula.h"
|
|||
|
|||
namespace storm { |
|||
namespace logic { |
|||
LongRunAverageRewardFormula::LongRunAverageRewardFormula() { |
|||
// Intentionally left empty.
|
|||
} |
|||
|
|||
bool LongRunAverageRewardFormula::isLongRunAverageRewardFormula() const { |
|||
return true; |
|||
} |
|||
|
|||
std::shared_ptr<Formula> LongRunAverageRewardFormula::substitute(std::map<storm::expressions::Variable, storm::expressions::Expression> const& substitution) const { |
|||
return std::shared_ptr<Formula>(new LongRunAverageRewardFormula()); |
|||
} |
|||
|
|||
std::ostream& LongRunAverageRewardFormula::writeToStream(std::ostream& out) const { |
|||
return out << "LRA"; |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,29 @@ |
|||
#ifndef STORM_LOGIC_LONGRUNAVERAGEREWARDFORMULA_H_ |
|||
#define STORM_LOGIC_LONGRUNAVERAGEREWARDFORMULA_H_ |
|||
|
|||
#include <memory> |
|||
|
|||
#include "src/logic/RewardPathFormula.h" |
|||
|
|||
|
|||
namespace storm { |
|||
namespace logic { |
|||
class LongRunAverageRewardFormula : public RewardPathFormula { |
|||
public: |
|||
LongRunAverageRewardFormula(); |
|||
|
|||
virtual ~LongRunAverageRewardFormula() { |
|||
// Intentionally left empty. |
|||
} |
|||
|
|||
virtual bool isLongRunAverageRewardFormula() const override; |
|||
|
|||
virtual std::shared_ptr<Formula> substitute(std::map<storm::expressions::Variable, storm::expressions::Expression> const& substitution) const override; |
|||
|
|||
virtual std::ostream& writeToStream(std::ostream& out) const override; |
|||
|
|||
}; |
|||
} |
|||
} |
|||
|
|||
#endif /* STORM_LOGIC_LONGRUNAVERAGEREWARDFORMULA_H_ */ |
1322
src/modelchecker/reachability/SparseDtmcEliminationModelChecker.cpp
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,12 @@ |
|||
#include "../models/ModelBase.h" |
|||
#include "prism/Program.h" |
|||
|
|||
|
|||
namespace storm { |
|||
namespace storage { |
|||
struct ModelProgramPair { |
|||
std::shared_ptr<storm::models::ModelBase> model; |
|||
storm::prism::Program program; |
|||
}; |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue