3
0
Fork 0
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:
Nikolaj Bjorner 2022-08-22 10:46:49 -07:00
parent 058c5771b9
commit 8128ae8109
4 changed files with 93 additions and 69 deletions

View file

@ -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);