|
@ -1220,10 +1220,6 @@ namespace storm { |
|
|
// try with an increased bound. |
|
|
// try with an increased bound. |
|
|
while (solver.checkWithAssumptions({assumption}) == storm::solver::SmtSolver::CheckResult::Unsat) { |
|
|
while (solver.checkWithAssumptions({assumption}) == storm::solver::SmtSolver::CheckResult::Unsat) { |
|
|
STORM_LOG_DEBUG("Constraint system is unsatisfiable with at most " << currentBound << " taken commands; increasing bound."); |
|
|
STORM_LOG_DEBUG("Constraint system is unsatisfiable with at most " << currentBound << " taken commands; increasing bound."); |
|
|
#ifndef NDEBUG |
|
|
|
|
|
STORM_LOG_DEBUG("Sanity check to see whether constraint system is still satisfiable."); |
|
|
|
|
|
STORM_LOG_ASSERT(solver.check() == storm::solver::SmtSolver::CheckResult::Sat, "Constraint system is not satisfiable anymore."); |
|
|
|
|
|
#endif |
|
|
|
|
|
solver.add(variableInformation.auxiliaryVariables.back()); |
|
|
solver.add(variableInformation.auxiliaryVariables.back()); |
|
|
variableInformation.auxiliaryVariables.push_back(assertLessOrEqualKRelaxed(solver, variableInformation, ++currentBound)); |
|
|
variableInformation.auxiliaryVariables.push_back(assertLessOrEqualKRelaxed(solver, variableInformation, ++currentBound)); |
|
|
assumption = !variableInformation.auxiliaryVariables.back(); |
|
|
assumption = !variableInformation.auxiliaryVariables.back(); |
|
@ -1755,6 +1751,10 @@ namespace storm { |
|
|
if (result.size() > 0 && iterations > firstCounterexampleFound + options.maximumExtraIterations) { |
|
|
if (result.size() > 0 && iterations > firstCounterexampleFound + options.maximumExtraIterations) { |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
|
|
|
if (result.size() == 0) { |
|
|
|
|
|
STORM_LOG_DEBUG("Sanity check to see whether constraint system is still satisfiable."); |
|
|
|
|
|
STORM_LOG_ASSERT(solver->check() == storm::solver::SmtSolver::CheckResult::Sat, "Constraint system is not satisfiable anymore."); |
|
|
|
|
|
} |
|
|
STORM_LOG_DEBUG("Computing minimal command set."); |
|
|
STORM_LOG_DEBUG("Computing minimal command set."); |
|
|
solverClock = std::chrono::high_resolution_clock::now(); |
|
|
solverClock = std::chrono::high_resolution_clock::now(); |
|
|
boost::optional<storm::storage::FlatSet<uint_fast64_t>> smallest = findSmallestCommandSet(*solver, variableInformation, currentBound); |
|
|
boost::optional<storm::storage::FlatSet<uint_fast64_t>> smallest = findSmallestCommandSet(*solver, variableInformation, currentBound); |
|
|