|  | @ -639,7 +639,13 @@ namespace storm { | 
		
	
		
			
				|  |  |             template <storm::dd::DdType DdType, typename ValueType> |  |  |             template <storm::dd::DdType DdType, typename ValueType> | 
		
	
		
			
				|  |  |             BottomStateResult<DdType> EdgeAbstractor<DdType, ValueType>::getBottomStateTransitions(storm::dd::Bdd<DdType> const& reachableStates, uint_fast64_t numberOfPlayer2Variables, boost::optional<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& locationVariables) { |  |  |             BottomStateResult<DdType> EdgeAbstractor<DdType, ValueType>::getBottomStateTransitions(storm::dd::Bdd<DdType> const& reachableStates, uint_fast64_t numberOfPlayer2Variables, boost::optional<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& locationVariables) { | 
		
	
		
			
				|  |  |                 // Compute the reachable states that have this edge enabled.
 |  |  |                 // Compute the reachable states that have this edge enabled.
 | 
		
	
		
			
				|  |  |                 storm::dd::Bdd<DdType> reachableStatesWithEdge = (reachableStates && abstractGuard && this->getAbstractionInformation().encodeLocation(locationVariables.get().first, edge.get().getSourceLocationIndex())).existsAbstract(this->getAbstractionInformation().getSourceLocationVariables()); |  |  |  | 
		
	
		
			
				|  |  |  |  |  |                 storm::dd::Bdd<DdType> reachableStatesWithEdge; | 
		
	
		
			
				|  |  |  |  |  |                 if (locationVariables) { | 
		
	
		
			
				|  |  |  |  |  |                     reachableStatesWithEdge = (reachableStates && abstractGuard && this->getAbstractionInformation().encodeLocation(locationVariables.get().first, edge.get().getSourceLocationIndex())).existsAbstract(this->getAbstractionInformation().getSourceLocationVariables()); | 
		
	
		
			
				|  |  |  |  |  |                 } else { | 
		
	
		
			
				|  |  |  |  |  |                     reachableStatesWithEdge = (reachableStates && abstractGuard).existsAbstract(this->getAbstractionInformation().getSourceLocationVariables()); | 
		
	
		
			
				|  |  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |  |                  | 
		
	
		
			
				|  |  |                  |  |  |                  | 
		
	
		
			
				|  |  |                 STORM_LOG_TRACE("Computing bottom state transitions of edge with guard " << edge.get().getGuard()); |  |  |                 STORM_LOG_TRACE("Computing bottom state transitions of edge with guard " << edge.get().getGuard()); | 
		
	
		
			
				|  |  |                 BottomStateResult<DdType> result(this->getAbstractionInformation().getDdManager().getBddZero(), this->getAbstractionInformation().getDdManager().getBddZero()); |  |  |                 BottomStateResult<DdType> result(this->getAbstractionInformation().getDdManager().getBddZero(), this->getAbstractionInformation().getDdManager().getBddZero()); | 
		
	
	
		
			
				|  | @ -653,7 +659,11 @@ namespace storm { | 
		
	
		
			
				|  |  |                 // Use the state abstractor to compute the set of abstract states that has this edge enabled but still
 |  |  |                 // Use the state abstractor to compute the set of abstract states that has this edge enabled but still
 | 
		
	
		
			
				|  |  |                 // has a transition to a bottom state.
 |  |  |                 // has a transition to a bottom state.
 | 
		
	
		
			
				|  |  |                 bottomStateAbstractor.constrain(reachableStatesWithEdge); |  |  |                 bottomStateAbstractor.constrain(reachableStatesWithEdge); | 
		
	
		
			
				|  |  |  |  |  |                 if (locationVariables) { | 
		
	
		
			
				|  |  |                     result.states = bottomStateAbstractor.getAbstractStates() && reachableStatesWithEdge && this->getAbstractionInformation().encodeLocation(locationVariables.get().first, edge.get().getSourceLocationIndex()); |  |  |                     result.states = bottomStateAbstractor.getAbstractStates() && reachableStatesWithEdge && this->getAbstractionInformation().encodeLocation(locationVariables.get().first, edge.get().getSourceLocationIndex()); | 
		
	
		
			
				|  |  |  |  |  |                 } else { | 
		
	
		
			
				|  |  |  |  |  |                     result.states = bottomStateAbstractor.getAbstractStates() && reachableStatesWithEdge; | 
		
	
		
			
				|  |  |  |  |  |                 } | 
		
	
		
			
				|  |  |                  |  |  |                  | 
		
	
		
			
				|  |  |                 // If the result is empty one time, we can skip the bottom state computation from now on.
 |  |  |                 // If the result is empty one time, we can skip the bottom state computation from now on.
 | 
		
	
		
			
				|  |  |                 if (result.states.isZero()) { |  |  |                 if (result.states.isZero()) { | 
		
	
	
		
			
				|  | 
 |