3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-25 04:26:00 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2021-12-14 12:34:34 -08:00
parent 8c2735e68b
commit 934564882c
4 changed files with 46 additions and 12 deletions

View file

@ -205,7 +205,8 @@ namespace polysat {
void report_unsat();
void learn_lemma(clause& lemma);
void backjump(unsigned new_level);
void add_lemma(clause& lemma);
void add_clause(clause& lemma);
void add_clause(signed_constraint c1, signed_constraint c2, bool is_redundant);
signed_constraint lit2cnstr(sat::literal lit) const { return m_constraints.lookup(lit); }
@ -236,11 +237,9 @@ namespace polysat {
* Returns l_undef if the search cannot proceed.
* Possible reasons:
* - Resource limits are exhausted.
* - A disjunctive lemma should be learned. The disjunction needs to be handled externally.
*/
lbool check_sat();
/**
* retrieve unsat core dependencies
*/
@ -256,6 +255,18 @@ namespace polysat {
*/
pdd var(pvar v) { return m_vars[v]; }
/**
* Create terms for unsigned quot-rem
*
* Return tuple (quot, rem)
*
* The following properties are enforced:
* b*quot + rem = a
* ~ovfl(b*quot)
* rem < b or b = 0
*/
std::tuple<pdd, pdd> quot_rem(pdd const& a, pdd const& b);
/**
* Create polynomial constant.
*/