mirror of
https://github.com/Z3Prover/z3
synced 2025-05-06 15:25:46 +00:00
revive polynomial superposition (wip)
This commit is contained in:
parent
155b746e03
commit
dcd6c01a90
5 changed files with 105 additions and 56 deletions
|
@ -1,15 +1,14 @@
|
|||
#if 0
|
||||
/*++
|
||||
Copyright (c) 2021 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
Conflict explanation
|
||||
Conflict explanation by polynomial superposition
|
||||
|
||||
Author:
|
||||
|
||||
Nikolaj Bjorner (nbjorner) 2021-03-19
|
||||
Jakob Rath 2021-04-6
|
||||
Jakob Rath 2021-04-06
|
||||
|
||||
--*/
|
||||
#pragma once
|
||||
|
@ -22,27 +21,18 @@ namespace polysat {
|
|||
|
||||
class solver;
|
||||
|
||||
class explainer {
|
||||
friend class conflict;
|
||||
protected:
|
||||
class ex_polynomial_superposition {
|
||||
solver& s;
|
||||
public:
|
||||
explainer(solver& s) :s(s) {}
|
||||
virtual ~explainer() {}
|
||||
virtual bool try_explain(pvar v, conflict& core) = 0;
|
||||
};
|
||||
|
||||
class ex_polynomial_superposition : public explainer {
|
||||
private:
|
||||
signed_constraint resolve1(pvar v, signed_constraint c1, signed_constraint c2);
|
||||
lbool find_replacement(signed_constraint c2, pvar v, conflict& core);
|
||||
void reduce_by(pvar v, conflict& core);
|
||||
bool reduce_by(pvar, signed_constraint c, conflict& core);
|
||||
lbool try_explain1(pvar v, conflict& core);
|
||||
|
||||
public:
|
||||
ex_polynomial_superposition(solver& s) : explainer(s) {}
|
||||
bool try_explain(pvar v, conflict& core) override;
|
||||
ex_polynomial_superposition(solver& s) : s(s) {}
|
||||
bool perform(pvar v, conflict& core);
|
||||
};
|
||||
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue