| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -14,7 +14,7 @@ namespace storm { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    namespace abstraction { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        template<storm::dd::DdType DdType> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        AbstractionInformation<DdType>::AbstractionInformation(storm::expressions::ExpressionManager& expressionManager, std::set<storm::expressions::Variable> const& abstractedVariables, std::unique_ptr<storm::solver::SmtSolver>&& smtSolver, std::shared_ptr<storm::dd::DdManager<DdType>> ddManager) : expressionManager(expressionManager), equivalenceChecker(std::move(smtSolver)), abstractedVariables(abstractedVariables), ddManager(ddManager), allPredicateIdentities(ddManager->getBddOne()), expressionToBddMap() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        AbstractionInformation<DdType>::AbstractionInformation(storm::expressions::ExpressionManager& expressionManager, std::set<storm::expressions::Variable> const& abstractedVariables, std::unique_ptr<storm::solver::SmtSolver>&& smtSolver, std::shared_ptr<storm::dd::DdManager<DdType>> ddManager) : expressionManager(expressionManager), equivalenceChecker(std::move(smtSolver)), abstractedVariables(abstractedVariables), ddManager(ddManager), allPredicateIdentities(ddManager->getBddOne()), allLocationIdentities(ddManager->getBddOne()), expressionToBddMap() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            // Intentionally left empty.
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -292,6 +292,10 @@ namespace storm { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        storm::dd::Bdd<DdType> const& AbstractionInformation<DdType>::getAllPredicateIdentities() const { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return allPredicateIdentities; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        template<storm::dd::DdType DdType> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        storm::dd::Bdd<DdType> const& AbstractionInformation<DdType>::getAllLocationIdentities() const { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return allLocationIdentities; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        template<storm::dd::DdType DdType> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        std::size_t AbstractionInformation<DdType>::getPlayer1VariableCount() const { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -483,12 +487,15 @@ namespace storm { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        template <storm::dd::DdType DdType> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        std::pair<std::pair<storm::expressions::Variable, storm::expressions::Variable>, uint64_t> AbstractionInformation<DdType>::addLocationVariables(uint64_t highestLocationIndex) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            locationVariablePairs.emplace_back(ddManager->addMetaVariable("loc_" + std::to_string(locationVariablePairs.size()), 0, highestLocationIndex)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            allSourceLocationVariables.insert(locationVariablePairs.back().first); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            sourceVariables.insert(locationVariablePairs.back().first); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            allSuccessorLocationVariables.insert(locationVariablePairs.back().second); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            successorVariables.insert(locationVariablePairs.back().second); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            extendedPredicateDdVariables.emplace_back(locationVariablePairs.back()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            auto newMetaVariable = ddManager->addMetaVariable("loc_" + std::to_string(locationVariablePairs.size()), 0, highestLocationIndex); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					             | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            locationVariablePairs.emplace_back(newMetaVariable); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            allSourceLocationVariables.insert(newMetaVariable.first); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            sourceVariables.insert(newMetaVariable.first); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            allSuccessorLocationVariables.insert(newMetaVariable.second); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            successorVariables.insert(newMetaVariable.second); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            extendedPredicateDdVariables.emplace_back(newMetaVariable); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            allLocationIdentities &= ddManager->template getIdentity<uint64_t>(newMetaVariable.first).equals(ddManager->template getIdentity<uint64_t>(newMetaVariable.second)) && ddManager->getRange(newMetaVariable.first) && ddManager->getRange(newMetaVariable.second); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return std::make_pair(locationVariablePairs.back(), locationVariablePairs.size() - 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |