3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 01:25:31 +00:00

sort muxes

This commit is contained in:
Nikolaj Bjorner 2022-04-13 18:00:02 +02:00
parent 7d47e45c6b
commit a634876180
2 changed files with 9 additions and 5 deletions

View file

@ -4192,17 +4192,19 @@ namespace sat {
m_ext->find_mutexes(_lits, mutexes);
}
unsigned_vector ps;
for (literal lit : _lits) {
for (literal lit : _lits)
ps.push_back(lit.index());
}
mc.cliques(ps, _mutexes);
vector<vector<literal_vector>> sorted;
for (auto const& mux : _mutexes) {
literal_vector clique;
for (auto const& idx : mux) {
sorted.reserve(mux.size() + 1);
for (auto const& idx : mux)
clique.push_back(to_literal(idx));
}
mutexes.push_back(clique);
sorted[mux.size()].push_back(clique);
}
for (unsigned i = sorted.size(); i-- > 0; )
mutexes.append(sorted[i]);
return l_true;
}