Browse Source
			
			
			Merge branch 'mtbddIntegration' of https://sselab.de/lab9/private/git/storm into mtbddIntegration
			
				
		Merge branch 'mtbddIntegration' of https://sselab.de/lab9/private/git/storm into mtbddIntegration
	
		
	
			
				Former-commit-id: 115d7a6c3b
			
			
				main
			
			
		
				 16 changed files with 315 additions and 131 deletions
			
			
		- 
					1src/logic/Formula.h
- 
					19src/modelchecker/AbstractModelChecker.cpp
- 
					67src/modelchecker/results/CheckResult.cpp
- 
					43src/modelchecker/results/CheckResult.h
- 
					61src/modelchecker/results/ExplicitQualitativeCheckResult.cpp
- 
					9src/modelchecker/results/ExplicitQualitativeCheckResult.h
- 
					47src/modelchecker/results/ExplicitQuantitativeCheckResult.cpp
- 
					5src/modelchecker/results/ExplicitQuantitativeCheckResult.h
- 
					15src/modelchecker/results/QualitativeCheckResult.cpp
- 
					4src/modelchecker/results/QualitativeCheckResult.h
- 
					13src/modelchecker/results/QuantitativeCheckResult.cpp
- 
					3src/modelchecker/results/QuantitativeCheckResult.h
- 
					55src/modelchecker/results/SymbolicQualitativeCheckResult.cpp
- 
					45src/modelchecker/results/SymbolicQualitativeCheckResult.h
- 
					0src/modelchecker/results/SymbolicQuantitativeCheckResult.cpp
- 
					43src/modelchecker/results/SymbolicQuantitativeCheckResult.h
| @ -1,7 +1,22 @@ | |||||
| #include "src/modelchecker/results/QualitativeCheckResult.h"
 | #include "src/modelchecker/results/QualitativeCheckResult.h"
 | ||||
| 
 | 
 | ||||
|  | #include "src/utility/macros.h"
 | ||||
|  | #include "src/exceptions/InvalidOperationException.h"
 | ||||
|  | 
 | ||||
| namespace storm { | namespace storm { | ||||
|     namespace modelchecker { |     namespace modelchecker { | ||||
|  |         QualitativeCheckResult& QualitativeCheckResult::operator&=(QualitativeCheckResult const& other) { | ||||
|  |             STORM_LOG_THROW(false, storm::exceptions::InvalidOperationException, "Unable to perform logical 'and' on the two check results."); | ||||
|  |         } | ||||
|  |          | ||||
|  |         QualitativeCheckResult& QualitativeCheckResult::operator|=(QualitativeCheckResult const& other) { | ||||
|  |             STORM_LOG_THROW(false, storm::exceptions::InvalidOperationException, "Unable to perform logical 'or' on the two check results."); | ||||
|  |         } | ||||
|  |          | ||||
|  |         void QualitativeCheckResult::complement() { | ||||
|  |             STORM_LOG_THROW(false, storm::exceptions::InvalidOperationException, "Unable to perform logical 'not' on the check result."); | ||||
|  |         } | ||||
|  |          | ||||
|         bool QualitativeCheckResult::isQualitative() const { |         bool QualitativeCheckResult::isQualitative() const { | ||||
|             return true; |             return true; | ||||
|         } |         } | ||||
|  | |||||
| @ -0,0 +1,55 @@ | |||||
|  | #include "src/modelcheckers/result/SymbolicQualitativeCheckResult.h"
 | ||||
|  | 
 | ||||
|  | namespace storm { | ||||
|  |     namespace modelcheckers { | ||||
|  |         template <storm::dd::DdType Type> | ||||
|  |         SymbolicQualitativeCheckResult(storm::dd::Dd<Type> const& values) { | ||||
|  |              | ||||
|  |         } | ||||
|  |          | ||||
|  |         template <storm::dd::DdType Type> | ||||
|  |         bool isSymbolic() const { | ||||
|  |              | ||||
|  |         } | ||||
|  | 
 | ||||
|  |         template <storm::dd::DdType Type> | ||||
|  |         bool isResultForAllStates() const { | ||||
|  |              | ||||
|  |         } | ||||
|  |          | ||||
|  |         template <storm::dd::DdType Type> | ||||
|  |         bool isSymbolicQualitativeCheckResult() const { | ||||
|  |              | ||||
|  |         } | ||||
|  |          | ||||
|  |         template <storm::dd::DdType Type> | ||||
|  |         QualitativeCheckResult& operator&=(QualitativeCheckResult const& other) { | ||||
|  |              | ||||
|  |         } | ||||
|  | 
 | ||||
|  |         template <storm::dd::DdType Type> | ||||
|  |         QualitativeCheckResult& operator|=(QualitativeCheckResult const& other) { | ||||
|  |              | ||||
|  |         } | ||||
|  | 
 | ||||
|  |         template <storm::dd::DdType Type> | ||||
|  |         void complement() { | ||||
|  |              | ||||
|  |         } | ||||
|  |          | ||||
|  |         template <storm::dd::DdType Type> | ||||
|  |         storm::dd::Dd<Type> const& getTruthValuesVector() const { | ||||
|  |              | ||||
|  |         } | ||||
|  |          | ||||
|  |         template <storm::dd::DdType Type> | ||||
|  |         std::ostream& writeToStream(std::ostream& out) const { | ||||
|  |              | ||||
|  |         } | ||||
|  |          | ||||
|  |         template <storm::dd::DdType Type> | ||||
|  |         void filter(QualitativeCheckResult const& filter) { | ||||
|  |              | ||||
|  |         } | ||||
|  |     } | ||||
|  | } | ||||
| @ -0,0 +1,45 @@ | |||||
|  | #ifndef STORM_MODELCHECKER_SYMBOLICQUALITATIVECHECKRESULT_H_ | ||||
|  | #define STORM_MODELCHECKER_SYMBOLICQUALITATIVECHECKRESULT_H_ | ||||
|  | 
 | ||||
|  | #include "src/storage/dd/DdType.h" | ||||
|  | #include "src/modelchecker/results/QualitativeCheckResult.h" | ||||
|  | #include "src/utility/OsDetection.h" | ||||
|  | 
 | ||||
|  | namespace storm { | ||||
|  |     namespace modelchecker { | ||||
|  |         template <storm::dd::DdType Type> | ||||
|  |         class SymbolicQualitativeCheckResult : public QualitativeCheckResult { | ||||
|  |         public: | ||||
|  |             SymbolicQualitativeCheckResult() = default; | ||||
|  |             SymbolicQualitativeCheckResult(storm::dd::Dd<Type> const& values); | ||||
|  |              | ||||
|  |             SymbolicQualitativeCheckResult(SymbolicQualitativeCheckResult const& other) = default; | ||||
|  |             SymbolicQualitativeCheckResult& operator=(SymbolicQualitativeCheckResult const& other) = default; | ||||
|  | #ifndef WINDOWS | ||||
|  |             SymbolicQualitativeCheckResult(SymbolicQualitativeCheckResult&& other) = default; | ||||
|  |             SymbolicQualitativeCheckResult& operator=(SymbolicQualitativeCheckResult&& other) = default; | ||||
|  | #endif | ||||
|  |              | ||||
|  |             virtual bool isSymbolic() const override; | ||||
|  |             virtual bool isResultForAllStates() const override; | ||||
|  |              | ||||
|  |             virtual bool isSymbolicQualitativeCheckResult() const override; | ||||
|  |              | ||||
|  |             virtual QualitativeCheckResult& operator&=(QualitativeCheckResult const& other) override; | ||||
|  |             virtual QualitativeCheckResult& operator|=(QualitativeCheckResult const& other) override; | ||||
|  |             virtual void complement() override; | ||||
|  |              | ||||
|  |             storm::dd::Dd<Type> const& getTruthValuesVector() const; | ||||
|  |              | ||||
|  |             virtual std::ostream& writeToStream(std::ostream& out) const override; | ||||
|  |              | ||||
|  |             virtual void filter(QualitativeCheckResult const& filter) override; | ||||
|  |              | ||||
|  |         private: | ||||
|  |             // The values of the qualitative check result. | ||||
|  |             storm::dd::Dd<Type> truthValues; | ||||
|  |         }; | ||||
|  |     } | ||||
|  | } | ||||
|  | 
 | ||||
|  | #endif /* STORM_MODELCHECKER_SYMBOLICQUALITATIVECHECKRESULT_H_ */ | ||||
| @ -0,0 +1,43 @@ | |||||
|  | #ifndef STORM_MODELCHECKER_SYMBOLICQUANTITATIVECHECKRESULT_H_ | ||||
|  | #define STORM_MODELCHECKER_SYMBOLICQUANTITATIVECHECKRESULT_H_ | ||||
|  | 
 | ||||
|  | #include "src/storage/dd/DdType.h" | ||||
|  | #include "src/modelchecker/results/QuantitativeCheckResult.h" | ||||
|  | #include "src/utility/OsDetection.h" | ||||
|  | 
 | ||||
|  | namespace storm { | ||||
|  |     namespace modelchecker { | ||||
|  |         template<storm::dd::DdType Type> | ||||
|  |         class SymbolicQuantitativeCheckResult : public QuantitativeCheckResult { | ||||
|  |         public: | ||||
|  |             SymbolicQuantitativeCheckResult(); | ||||
|  |             SymbolicQuantitativeCheckResult(storm::dd::Dd<Type> const& values); | ||||
|  |              | ||||
|  |             SymbolicQuantitativeCheckResult(SymbolicQuantitativeCheckResult const& other) = default; | ||||
|  |             SymbolicQuantitativeCheckResult& operator=(SymbolicQuantitativeCheckResult const& other) = default; | ||||
|  | #ifndef WINDOWS | ||||
|  |             SymbolicQuantitativeCheckResult(SymbolicQuantitativeCheckResult&& other) = default; | ||||
|  |             SymbolicQuantitativeCheckResult& operator=(SymbolicQuantitativeCheckResult&& other) = default; | ||||
|  | #endif | ||||
|  |              | ||||
|  |             virtual std::unique_ptr<CheckResult> compareAgainstBound(storm::logic::ComparisonType comparisonType, double bound) const override; | ||||
|  |              | ||||
|  |             virtual bool isSymbolic() const override; | ||||
|  |             virtual bool isResultForAllStates() const override; | ||||
|  |              | ||||
|  |             virtual bool isSymbolicQuantitativeCheckResult() const override; | ||||
|  |              | ||||
|  |             storm::dd::Dd<Type> const& getValueVector() const; | ||||
|  |              | ||||
|  |             virtual std::ostream& writeToStream(std::ostream& out) const override; | ||||
|  |              | ||||
|  |             virtual void filter(QualitativeCheckResult const& filter) override; | ||||
|  |              | ||||
|  |         private: | ||||
|  |             // The values of the quantitative check result. | ||||
|  |             storm::dd::Dd<Type> values; | ||||
|  |         }; | ||||
|  |     } | ||||
|  | } | ||||
|  | 
 | ||||
|  | #endif /* STORM_MODELCHECKER_SYMBOLICQUANTITATIVECHECKRESULT_H_ */ | ||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue