3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-06 07:53:59 +00:00

More finders.

This commit is contained in:
Mathias Soeken 2020-02-26 09:44:15 +01:00 committed by Nikolaj Bjorner
parent ec3f4929cf
commit f3c8cae730
2 changed files with 136 additions and 39 deletions

View file

@ -40,7 +40,9 @@ namespace sat {
on_function_t m_on_maj;
on_function_t m_on_orand;
on_function_t m_on_andxor;
on_function_t m_on_xorand;
on_function_t m_on_gamble;
on_function_t m_on_onehot;
typedef svector<std::pair<literal, clause*>> use_list_t;
scoped_ptr_vector<use_list_t> m_use_lists;
@ -100,7 +102,9 @@ namespace sat {
void find_maj(clause_vector& clauses);
void find_orand(clause_vector& clauses);
void find_andxor(clause_vector& clauses);
void find_xorand(clause_vector& clauses);
void find_gamble(clause_vector& clauses);
void find_onehot(clause_vector& clauses);
void validate_clause(literal x, literal y, literal z, vector<literal_vector> const& clauses);
void validate_clause(literal_vector const& clause, vector<literal_vector> const& clauses);
@ -112,7 +116,9 @@ namespace sat {
void set_on_maj(std::function<void(literal head, literal a, literal b, literal c)> const& f) { m_on_maj = f; }
void set_on_orand(std::function<void(literal head, literal a, literal b, literal c)> const& f) { m_on_orand = f; }
void set_on_andxor(std::function<void(literal head, literal a, literal b, literal c)> const& f) { m_on_andxor = f; }
void set_on_xorand(std::function<void(literal head, literal a, literal b, literal c)> const& f) { m_on_xorand = f; }
void set_on_gamble(std::function<void(literal head, literal a, literal b, literal c)> const& f) { m_on_gamble = f; }
void set_on_onehot(std::function<void(literal head, literal a, literal b, literal c)> const& f) { m_on_onehot = f; }
void operator()(clause_vector& clauses);
};
}