mirror of
https://github.com/Z3Prover/z3
synced 2025-08-26 04:56:03 +00:00
generalize subsumption to non-univariate
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
058c5771b9
commit
8128ae8109
4 changed files with 93 additions and 69 deletions
|
@ -12,16 +12,29 @@ Author:
|
|||
--*/
|
||||
#pragma once
|
||||
#include "math/polysat/constraint.h"
|
||||
#include "math/polysat/forbidden_intervals.h"
|
||||
|
||||
namespace polysat {
|
||||
|
||||
class solver;
|
||||
|
||||
class simplify_clause {
|
||||
|
||||
struct subs_entry : fi_record {
|
||||
optional<pdd> var;
|
||||
bool subsumed = false;
|
||||
bool valid = false;
|
||||
};
|
||||
|
||||
solver& s;
|
||||
vector<subs_entry> m_entries;
|
||||
|
||||
bool try_unilinear_subsumption(clause& cl);
|
||||
|
||||
void prepare_subs_entry(subs_entry& entry, signed_constraint c);
|
||||
|
||||
pdd abstract(pdd const& p, pdd& v);
|
||||
|
||||
public:
|
||||
simplify_clause(solver& s);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue