@ -31,6 +31,7 @@ 
			
		
	
		
			
				
					# include  "src/modelchecker/prctl/SparseDtmcPrctlModelChecker.h" 
  
			
		
	
		
			
				
					# include  "src/modelchecker/prctl/SparseMdpPrctlModelChecker.h" 
  
			
		
	
		
			
				
					# include  "src/solver/GmmxxLinearEquationSolver.h" 
  
			
		
	
		
			
				
					# include  "src/solver/NativeLinearEquationSolver.h" 
  
			
		
	
		
			
				
					# include  "src/solver/GmmxxNondeterministicLinearEquationSolver.h" 
  
			
		
	
		
			
				
					# include  "src/solver/GurobiLpSolver.h" 
  
			
		
	
		
			
				
					# include  "src/counterexamples/MILPMinimalLabelSetGenerator.h" 
  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -252,10 +253,12 @@ void cleanUp() { 
			
		
	
		
			
				
					storm : : modelchecker : : prctl : : AbstractModelChecker < double > *  createPrctlModelChecker ( storm : : models : : Dtmc < double >  const  &  dtmc )  {  
			
		
	
		
			
				
					    // Create the appropriate model checker.
  
			
		
	
		
			
				
						storm : : settings : : Settings *  s  =  storm : : settings : : Settings : : getInstance ( ) ;  
			
		
	
		
			
				
						std : : string  const  chosenMatrixLibrary   =  s - > getOptionByLongName ( " matrixLibrary " ) . getArgument ( 0 ) . getValueAsString ( ) ;  
			
		
	
		
			
				
						if  ( chosenMatrixLibrary = =  " gmm++ " )  {  
			
		
	
		
			
				
						std : : string  const &  linsolver =  s - > getOptionByLongName ( " linsolver " ) . getArgument ( 0 ) . getValueAsString ( ) ;  
			
		
	
		
			
				
						if  ( linsolver = =  " gmm++ " )  {  
			
		
	
		
			
				
							return  new  storm : : modelchecker : : prctl : : SparseDtmcPrctlModelChecker < double > ( dtmc ,  new  storm : : solver : : GmmxxLinearEquationSolver < double > ( ) ) ;  
			
		
	
		
			
				
						}  
			
		
	
		
			
				
						}  else  if  ( linsolver  = =  " native " )  {  
			
		
	
		
			
				
							return  new  storm : : modelchecker : : prctl : : SparseDtmcPrctlModelChecker < double > ( dtmc ,  new  storm : : solver : : NativeLinearEquationSolver < double > ( ) ) ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					     
			
		
	
		
			
				
						// The control flow should never reach this point, as there is a default setting for matrixlib.
  
			
		
	
		
			
				
						std : : string  message  =  " No matrix library suitable for DTMC model checking has been set. " ;  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -493,9 +496,6 @@ int main(const int argc, const char* argv[]) { 
			
		
	
		
			
				
									std : : chrono : : high_resolution_clock : : time_point  counterexampleEnd  =  std : : chrono : : high_resolution_clock : : now ( ) ;  
			
		
	
		
			
				
									std : : cout  < <  " Generating the counterexample took  "  < <  std : : chrono : : duration_cast < std : : chrono : : milliseconds > ( counterexampleEnd  -  counterexampleStart ) . count ( )  < <  "  milliseconds. "  < <  std : : endl ;  
			
		
	
		
			
				
								}  else  {  
			
		
	
		
			
				
									// Determine which engine is to be used to choose the right model checker.
  
			
		
	
		
			
				
									LOG4CPLUS_DEBUG ( logger ,  s - > getOptionByLongName ( " matrixLibrary " ) . getArgument ( 0 ) . getValueAsString ( ) ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
									// Depending on the model type, the appropriate model checking procedure is chosen.
  
			
		
	
		
			
				
									storm : : modelchecker : : prctl : : AbstractModelChecker < double > *  modelchecker  =  nullptr ;  
			
		
	
		
			
				
									model - > printModelInformationToStream ( std : : cout ) ;  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -598,9 +598,6 @@ int main(const int argc, const char* argv[]) { 
			
		
	
		
			
				
									std : : chrono : : high_resolution_clock : : time_point  minCmdEnd  =  std : : chrono : : high_resolution_clock : : now ( ) ;  
			
		
	
		
			
				
									std : : cout  < <  " Minimal command Counterexample generation took  "  < <  std : : chrono : : duration_cast < std : : chrono : : milliseconds > ( minCmdStart  -  minCmdEnd ) . count ( )  < <  "  milliseconds. "  < <  std : : endl ;  
			
		
	
		
			
				
					            }  else  if  ( s - > isSet ( " prctl " ) )  {  
			
		
	
		
			
				
					                // Determine which engine is to be used to choose the right model checker.
  
			
		
	
		
			
				
									LOG4CPLUS_DEBUG ( logger ,  s - > getOptionByLongName ( " matrixLibrary " ) . getArgument ( 0 ) . getValueAsString ( ) ) ;  
			
		
	
		
			
				
					                 
			
		
	
		
			
				
									// Depending on the model type, the appropriate model checking procedure is chosen.
  
			
		
	
		
			
				
									storm : : modelchecker : : prctl : : AbstractModelChecker < double > *  modelchecker  =  nullptr ;