@ -34,13 +34,13 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				        }  
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				         
				 
				 
				         
			
		 
		
	
		
			
				 
				 
				        template < typename  SparseDtmcModelType >  
				 
				 
				        template < typename  SparseDtmcModelType >  
			
		 
		
	
		
			
				 
				 
				        bool  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : canHandle ( CheckTask < storm : : logic : : Formula >  const &  checkTask )  const  {  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        bool  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : canHandle ( CheckTask < storm : : logic : : Formula ,  ValueType >  const &  checkTask )  const  {  
			
		 
		
	
		
			
				 
				 
				            storm : : logic : : Formula  const &  formula  =  checkTask . getFormula ( ) ;  
				 
				 
				            storm : : logic : : Formula  const &  formula  =  checkTask . getFormula ( ) ;  
			
		 
		
	
		
			
				 
				 
				            return  formula . isInFragment ( storm : : logic : : prctl ( ) . setLongRunAverageRewardFormulasAllowed ( false ) . setLongRunAverageProbabilitiesAllowed ( true ) . setConditionalProbabilityFormulasAllowed ( true ) . setConditionalRewardFormulasAllowed ( true ) . setOnlyEventuallyFormuluasInConditionalFormulasAllowed ( true ) ) ;  
				 
				 
				            return  formula . isInFragment ( storm : : logic : : prctl ( ) . setLongRunAverageRewardFormulasAllowed ( false ) . setLongRunAverageProbabilitiesAllowed ( true ) . setConditionalProbabilityFormulasAllowed ( true ) . setConditionalRewardFormulasAllowed ( true ) . setOnlyEventuallyFormuluasInConditionalFormulasAllowed ( true ) ) ;  
			
		 
		
	
		
			
				 
				 
				        }  
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				         
				 
				 
				         
			
		 
		
	
		
			
				 
				 
				        template < typename  SparseDtmcModelType >  
				 
				 
				        template < typename  SparseDtmcModelType >  
			
		 
		
	
		
			
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeBoundedUntilProbabilities ( CheckTask < storm : : logic : : BoundedUntilFormula >  const &  checkTask )  {  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeBoundedUntilProbabilities ( CheckTask < storm : : logic : : BoundedUntilFormula ,  ValueType >  const &  checkTask )  {  
			
		 
		
	
		
			
				 
				 
				            storm : : logic : : BoundedUntilFormula  const &  pathFormula  =  checkTask . getFormula ( ) ;  
				 
				 
				            storm : : logic : : BoundedUntilFormula  const &  pathFormula  =  checkTask . getFormula ( ) ;  
			
		 
		
	
		
			
				 
				 
				            STORM_LOG_THROW ( pathFormula . hasDiscreteTimeBound ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Formula needs to have a discrete time bound. " ) ;  
				 
				 
				            STORM_LOG_THROW ( pathFormula . hasDiscreteTimeBound ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Formula needs to have a discrete time bound. " ) ;  
			
		 
		
	
		
			
				 
				 
				            std : : unique_ptr < CheckResult >  leftResultPointer  =  this - > check ( pathFormula . getLeftSubformula ( ) ) ;  
				 
				 
				            std : : unique_ptr < CheckResult >  leftResultPointer  =  this - > check ( pathFormula . getLeftSubformula ( ) ) ;  
			
		 
		
	
	
		
			
				
					
					
					
						
							 
						 
					
				 
				@ -53,7 +53,7 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				        }  
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				         
				 
				 
				         
			
		 
		
	
		
			
				 
				 
				        template < typename  SparseDtmcModelType >  
				 
				 
				        template < typename  SparseDtmcModelType >  
			
		 
		
	
		
			
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeNextProbabilities ( CheckTask < storm : : logic : : NextFormula >  const &  checkTask )  {  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeNextProbabilities ( CheckTask < storm : : logic : : NextFormula ,  ValueType >  const &  checkTask )  {  
			
		 
		
	
		
			
				 
				 
				            storm : : logic : : NextFormula  const &  pathFormula  =  checkTask . getFormula ( ) ;  
				 
				 
				            storm : : logic : : NextFormula  const &  pathFormula  =  checkTask . getFormula ( ) ;  
			
		 
		
	
		
			
				 
				 
				            std : : unique_ptr < CheckResult >  subResultPointer  =  this - > check ( pathFormula . getSubformula ( ) ) ;  
				 
				 
				            std : : unique_ptr < CheckResult >  subResultPointer  =  this - > check ( pathFormula . getSubformula ( ) ) ;  
			
		 
		
	
		
			
				 
				 
				            ExplicitQualitativeCheckResult  const &  subResult  =  subResultPointer - > asExplicitQualitativeCheckResult ( ) ;  
				 
				 
				            ExplicitQualitativeCheckResult  const &  subResult  =  subResultPointer - > asExplicitQualitativeCheckResult ( ) ;  
			
		 
		
	
	
		
			
				
					
					
					
						
							 
						 
					
				 
				@ -62,7 +62,7 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				        }  
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				         
				 
				 
				         
			
		 
		
	
		
			
				 
				 
				        template < typename  SparseDtmcModelType >  
				 
				 
				        template < typename  SparseDtmcModelType >  
			
		 
		
	
		
			
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeUntilProbabilities ( CheckTask < storm : : logic : : UntilFormula >  const &  checkTask )  {  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeUntilProbabilities ( CheckTask < storm : : logic : : UntilFormula ,  ValueType >  const &  checkTask )  {  
			
		 
		
	
		
			
				 
				 
				            storm : : logic : : UntilFormula  const &  pathFormula  =  checkTask . getFormula ( ) ;  
				 
				 
				            storm : : logic : : UntilFormula  const &  pathFormula  =  checkTask . getFormula ( ) ;  
			
		 
		
	
		
			
				 
				 
				            std : : unique_ptr < CheckResult >  leftResultPointer  =  this - > check ( pathFormula . getLeftSubformula ( ) ) ;  
				 
				 
				            std : : unique_ptr < CheckResult >  leftResultPointer  =  this - > check ( pathFormula . getLeftSubformula ( ) ) ;  
			
		 
		
	
		
			
				 
				 
				            std : : unique_ptr < CheckResult >  rightResultPointer  =  this - > check ( pathFormula . getRightSubformula ( ) ) ;  
				 
				 
				            std : : unique_ptr < CheckResult >  rightResultPointer  =  this - > check ( pathFormula . getRightSubformula ( ) ) ;  
			
		 
		
	
	
		
			
				
					
					
					
						
							 
						 
					
				 
				@ -73,7 +73,7 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				        }  
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				         
				 
				 
				         
			
		 
		
	
		
			
				 
				 
				        template < typename  SparseDtmcModelType >  
				 
				 
				        template < typename  SparseDtmcModelType >  
			
		 
		
	
		
			
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeGloballyProbabilities ( CheckTask < storm : : logic : : GloballyFormula >  const &  checkTask )  {  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeGloballyProbabilities ( CheckTask < storm : : logic : : GloballyFormula ,  ValueType >  const &  checkTask )  {  
			
		 
		
	
		
			
				 
				 
				            storm : : logic : : GloballyFormula  const &  pathFormula  =  checkTask . getFormula ( ) ;  
				 
				 
				            storm : : logic : : GloballyFormula  const &  pathFormula  =  checkTask . getFormula ( ) ;  
			
		 
		
	
		
			
				 
				 
				            std : : unique_ptr < CheckResult >  subResultPointer  =  this - > check ( pathFormula . getSubformula ( ) ) ;  
				 
				 
				            std : : unique_ptr < CheckResult >  subResultPointer  =  this - > check ( pathFormula . getSubformula ( ) ) ;  
			
		 
		
	
		
			
				 
				 
				            ExplicitQualitativeCheckResult  const &  subResult  =  subResultPointer - > asExplicitQualitativeCheckResult ( ) ;  
				 
				 
				            ExplicitQualitativeCheckResult  const &  subResult  =  subResultPointer - > asExplicitQualitativeCheckResult ( ) ;  
			
		 
		
	
	
		
			
				
					
					
					
						
							 
						 
					
				 
				@ -82,7 +82,7 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				        }  
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				         
				 
				 
				         
			
		 
		
	
		
			
				 
				 
				        template < typename  SparseDtmcModelType >  
				 
				 
				        template < typename  SparseDtmcModelType >  
			
		 
		
	
		
			
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeCumulativeRewards ( storm : : logic : : RewardMeasureType  rewardMeasureType ,  CheckTask < storm : : logic : : CumulativeRewardFormula >  const &  checkTask )  {  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeCumulativeRewards ( storm : : logic : : RewardMeasureType  rewardMeasureType ,  CheckTask < storm : : logic : : CumulativeRewardFormula ,  ValueType >  const &  checkTask )  {  
			
		 
		
	
		
			
				 
				 
				            storm : : logic : : CumulativeRewardFormula  const &  rewardPathFormula  =  checkTask . getFormula ( ) ;  
				 
				 
				            storm : : logic : : CumulativeRewardFormula  const &  rewardPathFormula  =  checkTask . getFormula ( ) ;  
			
		 
		
	
		
			
				 
				 
				            STORM_LOG_THROW ( rewardPathFormula . hasDiscreteTimeBound ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Formula needs to have a discrete time bound. " ) ;  
				 
				 
				            STORM_LOG_THROW ( rewardPathFormula . hasDiscreteTimeBound ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Formula needs to have a discrete time bound. " ) ;  
			
		 
		
	
		
			
				 
				 
				            std : : vector < ValueType >  numericResult  =  storm : : modelchecker : : helper : : SparseDtmcPrctlHelper < ValueType > : : computeCumulativeRewards ( this - > getModel ( ) . getTransitionMatrix ( ) ,  checkTask . isRewardModelSet ( )  ?  this - > getModel ( ) . getRewardModel ( checkTask . getRewardModel ( ) )  :  this - > getModel ( ) . getRewardModel ( " " ) ,  rewardPathFormula . getDiscreteTimeBound ( ) ,  * linearEquationSolverFactory ) ;  
				 
				 
				            std : : vector < ValueType >  numericResult  =  storm : : modelchecker : : helper : : SparseDtmcPrctlHelper < ValueType > : : computeCumulativeRewards ( this - > getModel ( ) . getTransitionMatrix ( ) ,  checkTask . isRewardModelSet ( )  ?  this - > getModel ( ) . getRewardModel ( checkTask . getRewardModel ( ) )  :  this - > getModel ( ) . getRewardModel ( " " ) ,  rewardPathFormula . getDiscreteTimeBound ( ) ,  * linearEquationSolverFactory ) ;  
			
		 
		
	
	
		
			
				
					
					
					
						
							 
						 
					
				 
				@ -90,7 +90,7 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				        }  
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				         
				 
				 
				         
			
		 
		
	
		
			
				 
				 
				        template < typename  SparseDtmcModelType >  
				 
				 
				        template < typename  SparseDtmcModelType >  
			
		 
		
	
		
			
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeInstantaneousRewards ( storm : : logic : : RewardMeasureType  rewardMeasureType ,  CheckTask < storm : : logic : : InstantaneousRewardFormula >  const &  checkTask )  {  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeInstantaneousRewards ( storm : : logic : : RewardMeasureType  rewardMeasureType ,  CheckTask < storm : : logic : : InstantaneousRewardFormula ,  ValueType >  const &  checkTask )  {  
			
		 
		
	
		
			
				 
				 
				            storm : : logic : : InstantaneousRewardFormula  const &  rewardPathFormula  =  checkTask . getFormula ( ) ;  
				 
				 
				            storm : : logic : : InstantaneousRewardFormula  const &  rewardPathFormula  =  checkTask . getFormula ( ) ;  
			
		 
		
	
		
			
				 
				 
				            STORM_LOG_THROW ( rewardPathFormula . hasDiscreteTimeBound ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Formula needs to have a discrete time bound. " ) ;  
				 
				 
				            STORM_LOG_THROW ( rewardPathFormula . hasDiscreteTimeBound ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Formula needs to have a discrete time bound. " ) ;  
			
		 
		
	
		
			
				 
				 
				            std : : vector < ValueType >  numericResult  =  storm : : modelchecker : : helper : : SparseDtmcPrctlHelper < ValueType > : : computeInstantaneousRewards ( this - > getModel ( ) . getTransitionMatrix ( ) ,  checkTask . isRewardModelSet ( )  ?  this - > getModel ( ) . getRewardModel ( checkTask . getRewardModel ( ) )  :  this - > getModel ( ) . getRewardModel ( " " ) ,  rewardPathFormula . getDiscreteTimeBound ( ) ,  * linearEquationSolverFactory ) ;  
				 
				 
				            std : : vector < ValueType >  numericResult  =  storm : : modelchecker : : helper : : SparseDtmcPrctlHelper < ValueType > : : computeInstantaneousRewards ( this - > getModel ( ) . getTransitionMatrix ( ) ,  checkTask . isRewardModelSet ( )  ?  this - > getModel ( ) . getRewardModel ( checkTask . getRewardModel ( ) )  :  this - > getModel ( ) . getRewardModel ( " " ) ,  rewardPathFormula . getDiscreteTimeBound ( ) ,  * linearEquationSolverFactory ) ;  
			
		 
		
	
	
		
			
				
					
					
					
						
							 
						 
					
				 
				@ -98,7 +98,7 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				        }  
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				         
				 
				 
				         
			
		 
		
	
		
			
				 
				 
				        template < typename  SparseDtmcModelType >  
				 
				 
				        template < typename  SparseDtmcModelType >  
			
		 
		
	
		
			
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeReachabilityRewards ( storm : : logic : : RewardMeasureType  rewardMeasureType ,  CheckTask < storm : : logic : : EventuallyFormula >  const &  checkTask )  {  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeReachabilityRewards ( storm : : logic : : RewardMeasureType  rewardMeasureType ,  CheckTask < storm : : logic : : EventuallyFormula ,  ValueType >  const &  checkTask )  {  
			
		 
		
	
		
			
				 
				 
				            storm : : logic : : EventuallyFormula  const &  eventuallyFormula  =  checkTask . getFormula ( ) ;  
				 
				 
				            storm : : logic : : EventuallyFormula  const &  eventuallyFormula  =  checkTask . getFormula ( ) ;  
			
		 
		
	
		
			
				 
				 
				            std : : unique_ptr < CheckResult >  subResultPointer  =  this - > check ( eventuallyFormula . getSubformula ( ) ) ;  
				 
				 
				            std : : unique_ptr < CheckResult >  subResultPointer  =  this - > check ( eventuallyFormula . getSubformula ( ) ) ;  
			
		 
		
	
		
			
				 
				 
				            ExplicitQualitativeCheckResult  const &  subResult  =  subResultPointer - > asExplicitQualitativeCheckResult ( ) ;  
				 
				 
				            ExplicitQualitativeCheckResult  const &  subResult  =  subResultPointer - > asExplicitQualitativeCheckResult ( ) ;  
			
		 
		
	
	
		
			
				
					
					
					
						
							 
						 
					
				 
				@ -107,7 +107,7 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				        }  
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				
 
				 
				 
				
 
			
		 
		
	
		
			
				 
				 
				        template < typename  SparseDtmcModelType >  
				 
				 
				        template < typename  SparseDtmcModelType >  
			
		 
		
	
		
			
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeLongRunAverageProbabilities ( CheckTask < storm : : logic : : StateFormula >  const &  checkTask )  {  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeLongRunAverageProbabilities ( CheckTask < storm : : logic : : StateFormula ,  ValueType >  const &  checkTask )  {  
			
		 
		
	
		
			
				 
				 
				            storm : : logic : : StateFormula  const &  stateFormula  =  checkTask . getFormula ( ) ;  
				 
				 
				            storm : : logic : : StateFormula  const &  stateFormula  =  checkTask . getFormula ( ) ;  
			
		 
		
	
		
			
				 
				 
				            std : : unique_ptr < CheckResult >  subResultPointer  =  this - > check ( stateFormula ) ;  
				 
				 
				            std : : unique_ptr < CheckResult >  subResultPointer  =  this - > check ( stateFormula ) ;  
			
		 
		
	
		
			
				 
				 
				            ExplicitQualitativeCheckResult  const &  subResult  =  subResultPointer - > asExplicitQualitativeCheckResult ( ) ;  
				 
				 
				            ExplicitQualitativeCheckResult  const &  subResult  =  subResultPointer - > asExplicitQualitativeCheckResult ( ) ;  
			
		 
		
	
	
		
			
				
					
					
					
						
							 
						 
					
				 
				@ -116,7 +116,7 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				        }  
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				         
				 
				 
				         
			
		 
		
	
		
			
				 
				 
				        template < typename  SparseDtmcModelType >  
				 
				 
				        template < typename  SparseDtmcModelType >  
			
		 
		
	
		
			
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeConditionalProbabilities ( CheckTask < storm : : logic : : ConditionalFormula >  const &  checkTask )  {  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeConditionalProbabilities ( CheckTask < storm : : logic : : ConditionalFormula ,  ValueType >  const &  checkTask )  {  
			
		 
		
	
		
			
				 
				 
				            storm : : logic : : ConditionalFormula  const &  conditionalFormula  =  checkTask . getFormula ( ) ;  
				 
				 
				            storm : : logic : : ConditionalFormula  const &  conditionalFormula  =  checkTask . getFormula ( ) ;  
			
		 
		
	
		
			
				 
				 
				            STORM_LOG_THROW ( conditionalFormula . getSubformula ( ) . isEventuallyFormula ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Illegal conditional probability formula. " ) ;  
				 
				 
				            STORM_LOG_THROW ( conditionalFormula . getSubformula ( ) . isEventuallyFormula ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Illegal conditional probability formula. " ) ;  
			
		 
		
	
		
			
				 
				 
				            STORM_LOG_THROW ( conditionalFormula . getConditionFormula ( ) . isEventuallyFormula ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Illegal conditional probability formula. " ) ;  
				 
				 
				            STORM_LOG_THROW ( conditionalFormula . getConditionFormula ( ) . isEventuallyFormula ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Illegal conditional probability formula. " ) ;  
			
		 
		
	
	
		
			
				
					
					
					
						
							 
						 
					
				 
				@ -131,7 +131,7 @@ namespace storm { 
			
		 
		
	
		
			
				 
				 
				        }  
				 
				 
				        }  
			
		 
		
	
		
			
				 
				 
				         
				 
				 
				         
			
		 
		
	
		
			
				 
				 
				        template < typename  SparseDtmcModelType >  
				 
				 
				        template < typename  SparseDtmcModelType >  
			
		 
		
	
		
			
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeConditionalRewards ( storm : : logic : : RewardMeasureType  rewardMeasureType ,  CheckTask < storm : : logic : : ConditionalFormula >  const &  checkTask )  {  
				 
				 
				 
			
		 
		
	
		
			
				 
				 
				 
				 
				 
				        std : : unique_ptr < CheckResult >  SparseDtmcPrctlModelChecker < SparseDtmcModelType > : : computeConditionalRewards ( storm : : logic : : RewardMeasureType  rewardMeasureType ,  CheckTask < storm : : logic : : ConditionalFormula ,  ValueType >  const &  checkTask )  {  
			
		 
		
	
		
			
				 
				 
				            storm : : logic : : ConditionalFormula  const &  conditionalFormula  =  checkTask . getFormula ( ) ;  
				 
				 
				            storm : : logic : : ConditionalFormula  const &  conditionalFormula  =  checkTask . getFormula ( ) ;  
			
		 
		
	
		
			
				 
				 
				            STORM_LOG_THROW ( conditionalFormula . getSubformula ( ) . isReachabilityRewardFormula ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Illegal conditional probability formula. " ) ;  
				 
				 
				            STORM_LOG_THROW ( conditionalFormula . getSubformula ( ) . isReachabilityRewardFormula ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Illegal conditional probability formula. " ) ;  
			
		 
		
	
		
			
				 
				 
				            STORM_LOG_THROW ( conditionalFormula . getConditionFormula ( ) . isEventuallyFormula ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Illegal conditional probability formula. " ) ;  
				 
				 
				            STORM_LOG_THROW ( conditionalFormula . getConditionFormula ( ) . isEventuallyFormula ( ) ,  storm : : exceptions : : InvalidPropertyException ,  " Illegal conditional probability formula. " ) ;