mirror of
https://github.com/Z3Prover/z3
synced 2025-05-05 23:05:46 +00:00
Polysat: constraint refactor cont'd, deduplicate constraints (#5520)
* Assign boolean variables only to long-lived constraints, and deduplicate constraints when they are created * scoped_signed_constraint * update other classes * fix * Don't use scoped_ptr<constraint> with dedup()
This commit is contained in:
parent
ebaea2159e
commit
0c1e44da77
16 changed files with 365 additions and 298 deletions
|
@ -12,6 +12,7 @@ Author:
|
|||
|
||||
--*/
|
||||
#pragma once
|
||||
#include "math/polysat/conflict_core.h"
|
||||
#include "math/polysat/constraint.h"
|
||||
#include "math/polysat/clause_builder.h"
|
||||
#include "math/polysat/interval.h"
|
||||
|
@ -43,13 +44,14 @@ namespace polysat {
|
|||
conflict_explainer(solver& s);
|
||||
|
||||
/** resolve conflict state against assignment to v */
|
||||
clause_ref resolve(pvar v, ptr_vector<constraint> const& cjust_v);
|
||||
void resolve(pvar v, ptr_vector<constraint> const& cjust_v);
|
||||
void resolve(sat::literal lit);
|
||||
|
||||
// TODO: move conflict resolution from solver into this class.
|
||||
// we have a single public method as entry point to conflict resolution.
|
||||
// what do we need to return?
|
||||
|
||||
/** conflict resolution */
|
||||
/** conflict resolution until first (relevant) decision */
|
||||
void resolve();
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue