| 
					
					
					
				 | 
				@ -1,36 +1,50 @@ | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-pars/transformer/SparseParametricMdpSimplifier.h"
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-pars/transformer/SparseParametricDtmcSimplifier.h"
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm-cli-utilities/cli.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm-cli-utilities/model-handling.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm-pars/analysis/Lattice.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-pars/api/storm-pars.h"
 | 
				 | 
				 | 
				#include "storm-pars/api/storm-pars.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm-pars/api/region.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm-pars/modelchecker/instantiation/SparseCtmcInstantiationModelChecker.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm-pars/modelchecker/region/SparseParameterLiftingModelChecker.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm-pars/modelchecker/region/SparseDtmcParameterLiftingModelChecker.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-pars/settings/ParsSettings.h"
 | 
				 | 
				 | 
				#include "storm-pars/settings/ParsSettings.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-pars/settings/modules/ParametricSettings.h"
 | 
				 | 
				 | 
				#include "storm-pars/settings/modules/ParametricSettings.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-pars/settings/modules/RegionSettings.h"
 | 
				 | 
				 | 
				#include "storm-pars/settings/modules/RegionSettings.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-pars/analysis/Lattice.h"
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/settings/SettingsManager.h"
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm-pars/transformer/SparseParametricMdpSimplifier.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm-pars/transformer/SparseParametricDtmcSimplifier.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/api/storm.h"
 | 
				 | 
				 | 
				#include "storm/api/storm.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-cli-utilities/cli.h"
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-cli-utilities/model-handling.h"
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm/exceptions/BaseException.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm/exceptions/InvalidSettingsException.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm/exceptions/InvalidSettingsException.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm/exceptions/NotSupportedException.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/models/ModelBase.h"
 | 
				 | 
				 | 
				#include "storm/models/ModelBase.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm/settings/SettingsManager.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm/solver/stateelimination/PrioritizedStateEliminator.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm/storage/StronglyConnectedComponentDecomposition.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/storage/SymbolicModelDescription.h"
 | 
				 | 
				 | 
				#include "storm/storage/SymbolicModelDescription.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/utility/file.h"
 | 
				 | 
				 | 
				#include "storm/utility/file.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/utility/initialize.h"
 | 
				 | 
				 | 
				#include "storm/utility/initialize.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/utility/Stopwatch.h"
 | 
				 | 
				 | 
				#include "storm/utility/Stopwatch.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/utility/macros.h"
 | 
				 | 
				 | 
				#include "storm/utility/macros.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-pars/api/region.h"
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-pars/modelchecker/instantiation/SparseCtmcInstantiationModelChecker.h"
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-pars/modelchecker/region/SparseParameterLiftingModelChecker.h"
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-pars/modelchecker/region/SparseDtmcParameterLiftingModelChecker.h"
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/settings/modules/GeneralSettings.h"
 | 
				 | 
				 | 
				#include "storm/settings/modules/GeneralSettings.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/settings/modules/CoreSettings.h"
 | 
				 | 
				 | 
				#include "storm/settings/modules/CoreSettings.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/settings/modules/IOSettings.h"
 | 
				 | 
				 | 
				#include "storm/settings/modules/IOSettings.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/settings/modules/BisimulationSettings.h"
 | 
				 | 
				 | 
				#include "storm/settings/modules/BisimulationSettings.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/exceptions/BaseException.h"
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/exceptions/InvalidSettingsException.h"
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/exceptions/NotSupportedException.h"
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				namespace storm { | 
				 | 
				 | 
				namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				    namespace pars { | 
				 | 
				 | 
				    namespace pars { | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -592,20 +606,24 @@ namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				            if (parSettings.isMonotonicityAnalysisSet()) { | 
				 | 
				 | 
				            if (parSettings.isMonotonicityAnalysisSet()) { | 
			
		
		
	
		
			
				 | 
				 | 
				                std::cout << "Hello, Jip2" << std::endl; | 
				 | 
				 | 
				                std::cout << "Hello, Jip2" << std::endl; | 
			
		
		
	
		
			
				 | 
				 | 
				                storm::utility::Stopwatch latticeWatch(true); | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				                std::vector<std::shared_ptr<storm::logic::Formula const>> formulas = storm::api::extractFormulasFromProperties(input.properties); | 
				 | 
				 | 
				                std::vector<std::shared_ptr<storm::logic::Formula const>> formulas = storm::api::extractFormulasFromProperties(input.properties); | 
			
		
		
	
		
			
				 | 
				 | 
				                std::shared_ptr<storm::models::sparse::Model<ValueType>> sparseModel = model->as<storm::models::sparse::Model<ValueType>>(); | 
				 | 
				 | 
				                std::shared_ptr<storm::models::sparse::Model<ValueType>> sparseModel = model->as<storm::models::sparse::Model<ValueType>>(); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				                // Transform to Lattice
 | 
				 | 
				 | 
				                // Transform to Lattice
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                storm::utility::Stopwatch latticeWatch(true); | 
			
		
		
	
		
			
				 | 
				 | 
				                storm::analysis::Lattice* lattice = storm::analysis::Lattice::toLattice<ValueType>(sparseModel, formulas); | 
				 | 
				 | 
				                storm::analysis::Lattice* lattice = storm::analysis::Lattice::toLattice<ValueType>(sparseModel, formulas); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				                latticeWatch.stop(); | 
				 | 
				 | 
				                latticeWatch.stop(); | 
			
		
		
	
		
			
				 | 
				 | 
				                STORM_PRINT(std::endl << "Time for lattice creation: " << latticeWatch << "." << std::endl << std::endl); | 
				 | 
				 | 
				                STORM_PRINT(std::endl << "Time for lattice creation: " << latticeWatch << "." << std::endl << std::endl); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                ofstream myfile; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                myfile.open ("lattice.dot"); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                lattice->toDotFile(myfile); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                myfile.close(); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				                // CriticalStates
 | 
				 | 
				 | 
				                // CriticalStates
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                //TODO: what if states not found in lattice/cyclic thingie
 | 
			
		
		
	
		
			
				 | 
				 | 
				                storm::storage::SparseMatrix<ValueType> matrix = sparseModel.get()->getTransitionMatrix(); | 
				 | 
				 | 
				                storm::storage::SparseMatrix<ValueType> matrix = sparseModel.get()->getTransitionMatrix(); | 
			
		
		
	
		
			
				 | 
				 | 
				                //TODO: seperate class
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                //TODO: separate class
 | 
			
		
		
	
		
			
				 | 
				 | 
				                storm::utility::Stopwatch criticalStatesWatch(true); | 
				 | 
				 | 
				                storm::utility::Stopwatch criticalStatesWatch(true); | 
			
		
		
	
		
			
				 | 
				 | 
				                storm::storage::BitVector criticalStates = storm::storage::BitVector(sparseModel.get()->getNumberOfStates()); | 
				 | 
				 | 
				                storm::storage::BitVector criticalStates = storm::storage::BitVector(sparseModel.get()->getNumberOfStates()); | 
			
		
		
	
		
			
				 | 
				 | 
				                for (uint_fast64_t i = 0; i < sparseModel.get()->getNumberOfStates(); ++i) { | 
				 | 
				 | 
				                for (uint_fast64_t i = 0; i < sparseModel.get()->getNumberOfStates(); ++i) { | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -704,7 +722,6 @@ namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				                                                                     lattice->getNode(i), | 
				 | 
				 | 
				                                                                     lattice->getNode(i), | 
			
		
		
	
		
			
				 | 
				 | 
				                                                                     lattice->getNode(first.getColumn())); | 
				 | 
				 | 
				                                                                     lattice->getNode(first.getColumn())); | 
			
		
		
	
		
			
				 | 
				 | 
				                                            } | 
				 | 
				 | 
				                                            } | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				                                        } | 
				 | 
				 | 
				                                        } | 
			
		
		
	
		
			
				 | 
				 | 
				                                    } | 
				 | 
				 | 
				                                    } | 
			
		
		
	
		
			
				 | 
				 | 
				                                } | 
				 | 
				 | 
				                                } | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -716,11 +733,11 @@ namespace storm { | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				                criticalStatesWatch.stop(); | 
				 | 
				 | 
				                criticalStatesWatch.stop(); | 
			
		
		
	
		
			
				 | 
				 | 
				                STORM_PRINT(std::endl << "Time for critical states checking: " << criticalStatesWatch << "." << std::endl << std::endl); | 
				 | 
				 | 
				                STORM_PRINT(std::endl << "Time for critical states checking: " << criticalStatesWatch << "." << std::endl << std::endl); | 
			
		
		
	
		
			
				 | 
				 | 
				                ofstream myfile; | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				                myfile.open ("lattice.dot"); | 
				 | 
				 | 
				                myfile.open ("lattice.dot"); | 
			
		
		
	
		
			
				 | 
				 | 
				                lattice->toDotFile(myfile); | 
				 | 
				 | 
				                lattice->toDotFile(myfile); | 
			
		
		
	
		
			
				 | 
				 | 
				                myfile.close(); | 
				 | 
				 | 
				                myfile.close(); | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				                // Monotonicity?
 | 
				 | 
				 | 
				                // Monotonicity?
 | 
			
		
		
	
		
			
				 | 
				 | 
				                storm::utility::Stopwatch monotonicityWatch(true); | 
				 | 
				 | 
				                storm::utility::Stopwatch monotonicityWatch(true); | 
			
		
		
	
		
			
				 | 
				 | 
				                std::map<carl::Variable, std::pair<bool, bool>> varsMonotone = analyseMonotonicity<ValueType>(lattice, matrix); | 
				 | 
				 | 
				                std::map<carl::Variable, std::pair<bool, bool>> varsMonotone = analyseMonotonicity<ValueType>(lattice, matrix); | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
					
				 | 
				
  |