@ -39,10 +39,10 @@ namespace storm { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                        this - > addLabel ( label ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                        this - > addExpression ( model . getExpression ( label ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    for  ( auto  const &  rewardModel  :  model . getRewardModels ( ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                        this - > addRewardModel ( rewardModel . first ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                }  else  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    std : : set < std : : string >  labels ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    std : : set < storm : : expressions : : Expression >  expressions ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                     
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    for  ( auto  const &  formula  :  formulas )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                        for  ( auto  const &  expressionFormula  :  formula - > getAtomicExpressionFormulas ( ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                            this - > addExpression ( expressionFormula - > getExpression ( ) ) ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -53,11 +53,18 @@ namespace storm { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                            STORM_LOG_THROW ( model . hasLabel ( label ) ,  storm : : exceptions : : InvalidPropertyException ,  " Property refers to illegal label ' "  < <  label  < <  " '. " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                            this - > addExpression ( model . getExpression ( label ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                        for  ( auto  const &  rewardModel  :  formula - > getReferencedRewardModels ( ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                            if  ( rewardModel  = =  " " )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                                if  ( model . hasRewardModel ( " " ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                                    this - > addRewardModel ( rewardModel ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                                }  else  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                                    STORM_LOG_THROW ( model . hasUniqueRewardModel ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Property refers to the default reward model, but it does not exist or is not unique. " ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                                    this - > addRewardModel ( model . getUniqueRewardModelName ( ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                            }  else  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                                this - > addRewardModel ( rewardModel ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                     
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    std : : vector < storm : : expressions : : Expression >  expressionVector ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    for  ( auto  const &  expression  :  expressions )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                        expressionVector . emplace_back ( expression ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -72,6 +79,11 @@ namespace storm { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                expressions . insert ( expression ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            template  < storm : : dd : : DdType  DdType ,  typename  ValueType >  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            void  PreservationInformation < DdType ,  ValueType > : : addRewardModel ( std : : string  const &  name )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                rewardModelNames . insert ( name ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            template  < storm : : dd : : DdType  DdType ,  typename  ValueType >  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            std : : set < std : : string >  const &  PreservationInformation < DdType ,  ValueType > : : getLabels ( )  const  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                return  labels ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -82,6 +94,11 @@ namespace storm { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                return  expressions ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            template  < storm : : dd : : DdType  DdType ,  typename  ValueType >  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            std : : set < std : : string >  const &  PreservationInformation < DdType ,  ValueType > : : getRewardModelNames ( )  const  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					                return  rewardModelNames ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            template  class  PreservationInformation < storm : : dd : : DdType : : CUDD ,  double > ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					             
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					            template  class  PreservationInformation < storm : : dd : : DdType : : Sylvan ,  double > ;