mirror of
https://github.com/Z3Prover/z3
synced 2026-02-27 02:25:38 +00:00
* factor out coi, use polynomial elaboration for nlsat solver Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * remove unused functionality Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> --------- Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
43 lines
No EOL
1 KiB
C++
43 lines
No EOL
1 KiB
C++
|
|
/*++
|
|
Copyright (c) 2025 Microsoft Corporation
|
|
|
|
Abstract:
|
|
Class for computing the cone of influence for NL constraints.
|
|
It includes variables that come from monomials that have incorrect evaluation and
|
|
transitively all constraints and variables that are connected.
|
|
|
|
Author:
|
|
Lev Nachmanson (levnach)
|
|
Nikolaj Bjorner (nbjorner)
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
namespace nla {
|
|
|
|
class core;
|
|
|
|
class coi {
|
|
core& c;
|
|
indexed_uint_set m_mon_set, m_constraint_set;
|
|
indexed_uint_set m_term_set, m_var_set;
|
|
|
|
struct occurs {
|
|
unsigned_vector constraints;
|
|
unsigned_vector monics;
|
|
unsigned_vector terms;
|
|
};
|
|
|
|
public:
|
|
coi(core& c) : c(c) {}
|
|
|
|
void init();
|
|
|
|
indexed_uint_set const& mons() const { return m_mon_set; }
|
|
indexed_uint_set const& constraints() const { return m_constraint_set; }
|
|
indexed_uint_set& terms() { return m_term_set; }
|
|
indexed_uint_set const &vars() { return m_var_set; }
|
|
|
|
};
|
|
} |