@@ -178,94 +178,80 @@ propt::resultt satcheck_minisat2_baset<T>::do_prop_solve()
178
178
{
179
179
log.status () << " SAT checker inconsistent: instance is UNSATISFIABLE"
180
180
<< messaget::eom;
181
+ status = statust::UNSAT;
182
+ return resultt::P_UNSATISFIABLE;
181
183
}
182
- else
183
- {
184
- // if assumptions contains false, we need this to be UNSAT
185
- bool has_false=false ;
186
-
187
- forall_literals (it, assumptions)
188
- {
189
- if (it->is_false ())
190
- {
191
- has_false = true ;
192
- break ;
193
- }
194
- }
195
184
196
- if (has_false)
185
+ // if assumptions contains false, we need this to be UNSAT
186
+ for (const auto &assumption : assumptions)
187
+ {
188
+ if (assumption.is_false ())
197
189
{
198
190
log.status () << " got FALSE as assumption: instance is UNSATISFIABLE"
199
191
<< messaget::eom;
192
+ status = statust::UNSAT;
193
+ return resultt::P_UNSATISFIABLE;
200
194
}
201
- else
202
- {
203
- Minisat::vec<Minisat::Lit> solver_assumptions;
204
- convert (assumptions, solver_assumptions);
195
+ }
196
+
197
+ Minisat::vec<Minisat::Lit> solver_assumptions;
198
+ convert (assumptions, solver_assumptions);
205
199
206
- using Minisat::lbool;
200
+ using Minisat::lbool;
207
201
208
202
#ifndef _WIN32
209
203
210
- void (*old_handler)(int )= SIG_ERR;
204
+ void (*old_handler)(int ) = SIG_ERR;
211
205
212
- if (time_limit_seconds!= 0 )
213
- {
214
- solver_to_interrupt= solver;
215
- old_handler= signal (SIGALRM, interrupt_solver);
216
- if (old_handler== SIG_ERR)
217
- log.warning () << " Failed to set solver time limit" << messaget::eom;
218
- else
219
- alarm (time_limit_seconds);
220
- }
206
+ if (time_limit_seconds != 0 )
207
+ {
208
+ solver_to_interrupt = solver;
209
+ old_handler = signal (SIGALRM, interrupt_solver);
210
+ if (old_handler == SIG_ERR)
211
+ log.warning () << " Failed to set solver time limit" << messaget::eom;
212
+ else
213
+ alarm (time_limit_seconds);
214
+ }
221
215
222
- lbool solver_result= solver->solveLimited (solver_assumptions);
216
+ lbool solver_result = solver->solveLimited (solver_assumptions);
223
217
224
- if (old_handler!= SIG_ERR)
225
- {
226
- alarm (0 );
227
- signal (SIGALRM, old_handler);
228
- solver_to_interrupt= solver;
229
- }
218
+ if (old_handler != SIG_ERR)
219
+ {
220
+ alarm (0 );
221
+ signal (SIGALRM, old_handler);
222
+ solver_to_interrupt = solver;
223
+ }
230
224
231
225
#else // _WIN32
232
226
233
- if (time_limit_seconds!= 0 )
234
- {
235
- log.warning () << " Time limit ignored (not supported on Win32 yet)"
236
- << messaget::eom;
237
- }
227
+ if (time_limit_seconds != 0 )
228
+ {
229
+ log.warning () << " Time limit ignored (not supported on Win32 yet)"
230
+ << messaget::eom;
231
+ }
238
232
239
- lbool solver_result=
240
- solver->solve (solver_assumptions) ? l_True : l_False;
233
+ lbool solver_result = solver->solve (solver_assumptions) ? l_True : l_False;
241
234
242
235
#endif
243
236
244
- if (solver_result==l_True)
245
- {
246
- log.status () << " SAT checker: instance is SATISFIABLE"
247
- << messaget::eom;
248
- CHECK_RETURN (solver->model .size ()>0 );
249
- status=statust::SAT;
250
- return resultt::P_SATISFIABLE;
251
- }
252
- else if (solver_result==l_False)
253
- {
254
- log.status () << " SAT checker: instance is UNSATISFIABLE"
255
- << messaget::eom;
256
- }
257
- else
258
- {
259
- log.status () << " SAT checker: timed out or other error"
260
- << messaget::eom;
261
- status=statust::ERROR;
262
- return resultt::P_ERROR;
263
- }
264
- }
237
+ if (solver_result == l_True)
238
+ {
239
+ log.status () << " SAT checker: instance is SATISFIABLE" << messaget::eom;
240
+ CHECK_RETURN (solver->model .size () > 0 );
241
+ status = statust::SAT;
242
+ return resultt::P_SATISFIABLE;
265
243
}
266
244
267
- status=statust::UNSAT;
268
- return resultt::P_UNSATISFIABLE;
245
+ if (solver_result == l_False)
246
+ {
247
+ log.status () << " SAT checker: instance is UNSATISFIABLE" << messaget::eom;
248
+ status = statust::UNSAT;
249
+ return resultt::P_UNSATISFIABLE;
250
+ }
251
+
252
+ log.status () << " SAT checker: timed out or other error" << messaget::eom;
253
+ status = statust::ERROR;
254
+ return resultt::P_ERROR;
269
255
}
270
256
catch (const Minisat::OutOfMemoryException &)
271
257
{
0 commit comments