3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-19 10:52:02 +00:00

testing bdd for elim-vars

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-10-18 17:37:38 -07:00
parent 6155362571
commit dc6ed64da1
9 changed files with 254 additions and 133 deletions

View file

@ -26,6 +26,7 @@ namespace sat{
elim_vars::elim_vars(simplifier& s) : simp(s), s(s.s), m(20) {
m_mark_lim = 0;
m_max_literals = 11;
m_miss = 0;
}
bool elim_vars::operator()(bool_var v) {
@ -57,10 +58,11 @@ namespace sat{
double sz1 = b1.cnf_size();
if (sz1 > 2*clause_size) {
return false;
}
}
if (sz1 <= clause_size) {
return elim_var(v, b1);
}
m_vars.reverse();
bdd b2 = elim_var(v);
double sz2 = b2.cnf_size();
@ -73,6 +75,11 @@ namespace sat{
if (sz3 <= clause_size) {
return elim_var(v, b3);
}
#if 0
m.try_cnf_reorder(b3);
sz3 = b3.cnf_size();
if (sz3 <= clause_size) ++m_miss;
#endif
return false;
}