mirror of
https://github.com/Z3Prover/z3
synced 2025-05-04 06:15:46 +00:00
add variable minimization
This commit is contained in:
parent
c82bbaad7d
commit
e6c413b249
6 changed files with 85 additions and 51 deletions
|
@ -21,11 +21,10 @@ namespace polysat {
|
|||
|
||||
class inference_engine {
|
||||
friend class conflict;
|
||||
solver* m_solver = nullptr;
|
||||
void set_solver(solver& s) { m_solver = &s; }
|
||||
protected:
|
||||
solver& s() { return *m_solver; }
|
||||
solver& s;
|
||||
public:
|
||||
inference_engine(solver& s) :s(s) {}
|
||||
virtual ~inference_engine() {}
|
||||
/** Try to apply an inference rule.
|
||||
* Derive new constraints from constraints containing the variable v (i.e., at least one premise must contain v).
|
||||
|
@ -91,7 +90,7 @@ namespace polysat {
|
|||
bool is_coeffxY(pdd const& coeff_x, pdd const& p, pdd& y);
|
||||
|
||||
public:
|
||||
|
||||
inf_saturate(solver& s) : inference_engine(s) {}
|
||||
bool perform(pvar v, conflict& core) override;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue