#include <stdbool.h>
#include "global.h"
Go to the source code of this file.
◆ kissat_congruence()
Definition at line 4591 of file congruence.c.
4591 {
4592 if (
solver->inconsistent)
4593 return false;
4599 return false;
4602 return false;
4604 return false;
4606 return false;
4608 return false;
4614 bool reset = false;
4620 size_t propagated = propagate_units_and_equivalences (&
closure);
4621 if (!
solver->inconsistent && propagated &&
4623 forward_subsume_matching_clauses (&
closure);
4624 reset = true;
4625 }
4626 }
4627 }
4628 }
4629 if (!reset)
4631 unsigned equivalent = reset_repr (&
closure);
4633 "merged %u equivalent variables %.2f%%", equivalent,
4634 kissat_percent (equivalent,
solver->active));
4636#ifndef KISSAT_QUIET
4637 solver->active -= equivalent;
4638 REPORT (!equivalent,
'c');
4639 if (!
solver->inconsistent)
4640 solver->active += equivalent;
4641#endif
4642 if (kissat_average (equivalent,
solver->active) < 0.001)
4644 else
4648 return equivalent;
4649}
#define REDUCE_DELAY(NAME)
#define KISSAT_assert(ignore)
#define kissat_phase(...)
#define kissat_check_statistics(...)
#define congruence_terminated_10
#define congruence_terminated_12
#define congruence_terminated_8
#define congruence_terminated_9
#define congruence_terminated_11