| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -443,3 +443,25 @@ def construct_submodel(model, states, actions, keep_unreachable_states=True, opt | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return core._construct_subsystem_double(model, states, actions, keep_unreachable_states, options) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    else: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        raise NotImplementedError() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					def parse_properties(properties, context = None, filters = None): | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    """ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    :param properties: A string with the pctl properties | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    :param context: A symbolic model that gives meaning to variables and constants. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    :param filters: filters, if applicable. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    :return: A list of properties | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    """ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if context is None: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return core.parse_properties_without_context(properties, filters) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    elif type(context) == core.SymbolicModelDescription: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if context.is_prism_program(): | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return core.parse_properties_for_prism_program(properties, context.as_prism_program(), filters) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        else: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            core.parse_properties_for_prism_program(properties, context.as_jani_model(), filters) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    elif type(context) == storage.PrismProgram: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return core.parse_properties_for_prism_program(properties, context, filters) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    elif type(context) == storage.JaniModel: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        core.parse_properties_for_jani_model(properties, context, filters) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    else: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        raise StormError("Unclear context. Please pass a symbolic model description") |