3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-15 13:28:47 +00:00

add randomness when generating model based sign lemma

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2019-03-06 12:46:11 +14:00
parent afc9c902f8
commit dd235be4d2

View file

@ -947,14 +947,20 @@ struct solver::imp {
init_abs_val_table();
std::unordered_map<unsigned_vector, unsigned, hash_svector> key_mons =
create_relevant_abs_keys();
for (unsigned i = 0; i < m_monomials.size(); i++) {
unsigned i = random() % m_monomials.size();
unsigned ii = i;
do {
unsigned_vector key = get_abs_key(m_monomials[i]);
auto it = key_mons.find(key);
if (it == key_mons.end() || it->second == i)
continue;
if (basic_sign_lemma_on_two_mons_model_based(m_monomials[it->second], m_monomials[i]))
if (
!(it == key_mons.end() || it->second == i)
&&
basic_sign_lemma_on_two_mons_model_based(m_monomials[it->second], m_monomials[i]))
return true;
}
i++;
if (i == m_monomials.size())
i = 0;
} while (i != ii);
return false;
}