mirror of
https://github.com/Z3Prover/z3
synced 2025-10-17 21:10:26 +00:00
Some bugfixes and unit-tests for variable elimination
This commit is contained in:
parent
dc95179ae5
commit
71211f3134
4 changed files with 266 additions and 32 deletions
|
@ -21,7 +21,11 @@ namespace polysat {
|
|||
class conflict;
|
||||
|
||||
class free_variable_elimination {
|
||||
|
||||
|
||||
enum get_multiple_result {
|
||||
is_multiple, can_multiple, cannot_multiple
|
||||
};
|
||||
|
||||
solver& s;
|
||||
unsigned_vector m_has_validation_of_range; // TODO: Find a better name
|
||||
unsigned_vector m_pv_constants;
|
||||
|
@ -42,7 +46,7 @@ namespace polysat {
|
|||
void find_lemma(pvar v, signed_constraint c, conflict& core);
|
||||
pdd eval(pdd const& p, conflict& core, substitution& out_sub);
|
||||
bool inv(pdd const& p, pdd& out_p_inv);
|
||||
bool is_multiple(const pdd& p1, const pdd& p2, pdd &out);
|
||||
get_multiple_result get_multiple(const pdd& p1, const pdd& p2, pdd &out);
|
||||
public:
|
||||
free_variable_elimination(solver& s): s(s) {}
|
||||
void find_lemma(conflict& core);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue