STORM_LOG_ASSERT(lowerChoiceUpdateToSuccessorMapping.size()==upperChoiceUpdateToSuccessorMapping.size(),"Mismatching sizes after decode ("<<lowerChoiceUpdateToSuccessorMapping.size()<<" vs. "<<upperChoiceUpdateToSuccessorMapping.size()<<").");
STORM_LOG_DEBUG("Obtained quantitative bounds ["<<minResult.initialStateValue<<", "<<maxResult.initialStateValue<<"] on the actual value for the initial states in "<<std::chrono::duration_cast<std::chrono::milliseconds>(quantitativeEnd-quantitativeStart).count()<<"ms.");
// (9) Check whether the lower and upper bounds are close enough to terminate with an answer.
// If we arrived at this point, it means that we have all qualitative and quantitative information
// about the game, but we could not yet answer the query. In this case, we need to refine.
// Make sure that all strategies are still valid strategies.
STORM_LOG_ASSERT(minResult.player1Strategy.templatetoAdd<ValueType>().sumAbstract(game.getPlayer1Variables()).getMax()<=1,"Player 1 strategy for min is illegal.");
STORM_LOG_ASSERT(maxResult.player1Strategy.templatetoAdd<ValueType>().sumAbstract(game.getPlayer1Variables()).getMax()<=1,"Player 1 strategy for max is illegal.");
STORM_LOG_ASSERT(minResult.player2Strategy.templatetoAdd<ValueType>().sumAbstract(game.getPlayer2Variables()).getMax()<=1,"Player 2 strategy for min is illegal.");
STORM_LOG_ASSERT(maxResult.player2Strategy.templatetoAdd<ValueType>().sumAbstract(game.getPlayer2Variables()).getMax()<=1,"Player 2 strategy for max is illegal.");
#ifdef LOCAL_DEBUG
// Check whether the strategies coincide over the reachable parts.
STORM_LOG_ASSERT(result.hasPlayer1Strategy()&&(result.getPlayer1States().isZero()||!result.getPlayer1Strategy().isZero()),"Unable to proceed without strategy.");
if(prob0){
STORM_LOG_ASSERT(result.hasPlayer1Strategy()&&(result.getPlayer1States().isZero()||!result.getPlayer1Strategy().isZero()),"Unable to proceed without strategy.");
}else{
STORM_LOG_ASSERT(result.hasPlayer1Strategy()&&((result.getPlayer1States()&&!targetStates).isZero()||!result.getPlayer1Strategy().isZero()),"Unable to proceed without strategy.");
}
STORM_LOG_ASSERT(result.hasPlayer2Strategy()&&(result.getPlayer2States().isZero()||!result.getPlayer2Strategy().isZero()),"Unable to proceed without strategy.");
STORM_LOG_TRACE("Computed states with probability "<<(prob0?"0":"1")<<" (player 1: "<<player1Direction<<", player 2: "<<player2Direction<<"): "<<result.getPlayer1States().getNonZeroCount()<<" '"<<(prob0?"no":"yes")<<"' states.");