509{
510 unsigned i, cref;
513 struct clause **cl_to_remove;
514
515
517 assert(solver_dlevel(s) == 0);
520 return;
521 }
523
525 cl_to_remove[i] = clause_fetch(s, cref);
527 cl_to_remove[n_originals + i] = clause_fetch(s, cref);
528 for (i = 0; i < n_originals + n_learnts; i++) {
529 clause_unwatch(s, cdb_cref(s->all_clauses, (unsigned *)cl_to_remove[i]));
530 cl_to_remove[i]->
f_mark = 1;
531 }
533 vec_uint_shrink(s->originals, s->book_cl_orig);
534 vec_uint_shrink(s->learnts, s->book_cl_lrnt);
535
536 for (i = s->book_vars; i < 2 * vec_char_size(s->assigns); i++) {
537 vec_wl_at(s->watches, i)->size = 0;
538 vec_wl_at(s->watches, i)->n_bin = 0;
539 }
540
541 s->watches->size = s->book_vars;
543 vec_uint_shrink(s->levels, s->book_vars);
544 vec_uint_shrink(s->reasons, s->book_vars);
545 vec_uint_shrink(s->stamps, s->book_vars);
546 vec_char_shrink(s->assigns, s->book_vars);
547 vec_char_shrink(s->seen, s->book_vars);
548 vec_char_shrink(s->polarity, s->book_vars);
549 solver_rebuild_order(s);
550
552 vec_uint_shrink(s->trail, s->book_trail);
553 if (s->book_cdb)
554 s->all_clauses->size = s->book_cdb;
555 s->book_cl_orig = 0;
556 s->book_cl_lrnt = 0;
557 s->book_vars = 0;
558 s->book_trail = 0;
559
560}
#define satoko_alloc(type, n_elements)
void satoko_reset(satoko_t *s)
for(p=first;p->value< newval;p=p->next)
#define vec_act_shrink(vec, size)
#define vec_uint_foreach_start(vec, entry, i, start)