mirror of
https://github.com/Z3Prover/z3
synced 2025-04-28 19:35:50 +00:00
refactoring nla_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
parent
7fa4371d96
commit
9e82e6965c
11 changed files with 1309 additions and 1067 deletions
|
@ -21,11 +21,12 @@
|
|||
#include "util/lp/monomial.h"
|
||||
#include "util/lp/rooted_mons.h"
|
||||
#include "util/lp/factorization.h"
|
||||
#include "util/lp/nla_common.h"
|
||||
|
||||
|
||||
namespace nla {
|
||||
struct core;
|
||||
struct basics {
|
||||
struct basics: common {
|
||||
core* m_core;
|
||||
core& c() { return *m_core; }
|
||||
const core& c() const { return *m_core; }
|
||||
|
@ -85,9 +86,6 @@ struct basics {
|
|||
void basic_lemma_for_mon(const rooted_mon& rm, bool derived);
|
||||
// use basic multiplication properties to create a lemma
|
||||
bool basic_lemma(bool derived);
|
||||
template <typename T> rational vvr(T const& t) const;
|
||||
rational vvr(lpvar) const;
|
||||
template <typename T> lpvar var(T const& t) const;
|
||||
void generate_sign_lemma(const monomial& m, const monomial& n, const rational& sign);
|
||||
void generate_zero_lemmas(const monomial& m);
|
||||
lpvar find_best_zero(const monomial& m, unsigned_vector & fixed_zeros) const;
|
||||
|
@ -97,14 +95,11 @@ struct basics {
|
|||
void generate_strict_case_zero_lemma(const monomial& m, unsigned zero_j, int sign_of_zj);
|
||||
|
||||
void add_fixed_zero_lemma(const monomial& m, lpvar j);
|
||||
void add_empty_lemma();
|
||||
void negate_strict_sign(lpvar j);
|
||||
bool done() const;
|
||||
// x != 0 or y = 0 => |xy| >= |y|
|
||||
void proportion_lemma_model_based(const rooted_mon& rm, const factorization& factorization);
|
||||
// x != 0 or y = 0 => |xy| >= |y|
|
||||
bool proportion_lemma_derived(const rooted_mon& rm, const factorization& factorization);
|
||||
template <typename T> void explain(const T&);
|
||||
// if there are no zero factors then |m| >= |m[factor_index]|
|
||||
void generate_pl_on_mon(const monomial& m, unsigned factor_index);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue