| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -63,26 +63,33 @@ namespace storm { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					             | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            for (auto const& variable : model.getGlobalVariables().getBooleanVariables()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (!variable.isTransient()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    booleanVariables.emplace_back(variable.getExpressionVariable(), totalBitOffset, true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    ++totalBitOffset; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            for (auto const& variable : model.getGlobalVariables().getBoundedIntegerVariables()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (!variable.isTransient()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    int_fast64_t lowerBound = variable.getLowerBound().evaluateAsInt(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    int_fast64_t upperBound = variable.getUpperBound().evaluateAsInt(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    uint_fast64_t bitwidth = static_cast<uint_fast64_t>(std::ceil(std::log2(upperBound - lowerBound + 1))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    integerVariables.emplace_back(variable.getExpressionVariable(), lowerBound, upperBound, totalBitOffset, bitwidth, true); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    totalBitOffset += bitwidth; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            for (auto const& automaton : model.getAutomata()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                uint_fast64_t bitwidth = static_cast<uint_fast64_t>(std::ceil(std::log2(automaton.getNumberOfLocations()))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                locationVariables.emplace_back(model.getManager().declareFreshIntegerVariable(false, "loc"), automaton.getNumberOfLocations() - 1, totalBitOffset, bitwidth); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                totalBitOffset += bitwidth; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                for (auto const& variable : automaton.getVariables().getBooleanVariables()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (!variable.isTransient()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        booleanVariables.emplace_back(variable.getExpressionVariable(), totalBitOffset); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        ++totalBitOffset; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                for (auto const& variable : automaton.getVariables().getBoundedIntegerVariables()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (!variable.isTransient()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        int_fast64_t lowerBound = variable.getLowerBound().evaluateAsInt(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        int_fast64_t upperBound = variable.getUpperBound().evaluateAsInt(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        uint_fast64_t bitwidth = static_cast<uint_fast64_t>(std::ceil(std::log2(upperBound - lowerBound + 1))); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -90,6 +97,7 @@ namespace storm { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        totalBitOffset += bitwidth; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					             | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            sortVariables(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |