| 
					
					
					
				 | 
				@ -1,5 +1,5 @@ | 
			
		
		
	
		
			
				 | 
				 | 
				*************** | 
				 | 
				 | 
				*************** | 
			
		
		
	
		
			
				 | 
				 | 
				Building Models | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				Analysis | 
			
		
		
	
		
			
				 | 
				 | 
				*************** | 
				 | 
				 | 
				*************** | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				Background | 
				 | 
				 | 
				Background | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -7,14 +7,43 @@ Background | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				Storm supports various model checking approaches that we consider in this section on analysis. | 
				 | 
				 | 
				Storm supports various model checking approaches that we consider in this section on analysis. | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				As always:: | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    >>>	import stormpy | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    >>> import stormpy.examples | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					>>> import stormpy.examples.files | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				Qualitative Analysis | 
				 | 
				 | 
				Qualitative Analysis | 
			
		
		
	
		
			
				 | 
				 | 
				====================== | 
				 | 
				 | 
				====================== | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				More to come... | 
				 | 
				 | 
				More to come... | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				Model checking algorithms | 
				 | 
				 | 
				Model checking algorithms | 
			
		
		
	
		
			
				 | 
				 | 
				========================= | 
				 | 
				 | 
				========================= | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				.. seealso:: `02-analysis.py <https://github.com/moves-rwth/stormpy/blob/master/examples/analysis/02-analysis.py>`_ | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				We can also vary the model checking algorithm. | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				Reconsider the model checking example from the getting started guide:: | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					>>> path = stormpy.examples.files.prism_dtmc_die | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					>>> prism_program = stormpy.parse_prism_program(path) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    >>> properties = stormpy.parse_properties(formula_str, prism_program) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    >>> model = stormpy.build_model(prism_program, properties) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    >>> result = stormpy.model_checking(model, properties[0]) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				We can also vary the model checking algorithm:: | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    >>> env = stormpy.Environment() | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    >>> env.solver_environment.set_linear_equation_solver_type(stormpy.EquationSolverType.native) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    >>> env.solver_environment.native_solver_environment.method = stormpy.NativeLinearEquationSolverMethod.power_iteration | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    >>> result = stormpy.model_checking(model, properties[0], environment=env) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				Finally, we allow to change some parameters of the algorithms. E.g., in iterative approaches, | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				we allow to change the number of iterations:: | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    >>> env.solver_environment.maximum_iterations = 3 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    >>> result = stormpy.model_checking(model, properties[0]) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				Notice that by setting such parameters, the result may be off from the actual model checking algorithm. | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				More to come... | 
				 | 
				 | 
				 |