mirror of
https://github.com/Z3Prover/z3
synced 2025-06-22 05:43:39 +00:00
start porting grobner basis functionality
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
parent
06dbc623c7
commit
26b4294bce
3 changed files with 2244 additions and 2213 deletions
|
@ -80,9 +80,6 @@ void nla_grobner::prepare_rows_and_active_vars() {
|
||||||
|
|
||||||
void nla_grobner::grobner_lemmas() {
|
void nla_grobner::grobner_lemmas() {
|
||||||
c().lp_settings().st().m_grobner_calls++;
|
c().lp_settings().st().m_grobner_calls++;
|
||||||
if (c().lp_settings().st().m_grobner_calls == 2)
|
|
||||||
SASSERT(false);
|
|
||||||
|
|
||||||
|
|
||||||
find_rows();
|
find_rows();
|
||||||
|
|
||||||
|
@ -96,9 +93,10 @@ void nla_grobner::grobner_lemmas() {
|
||||||
tout << "the matrix =\n";
|
tout << "the matrix =\n";
|
||||||
|
|
||||||
for (const auto & r : matrix.m_rows) {
|
for (const auto & r : matrix.m_rows) {
|
||||||
c().print_term(r, tout) << "\n";
|
c().print_term(r, tout) << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
SASSERT(false);
|
||||||
}
|
}
|
||||||
} // end of nla namespace
|
} // end of nla namespace
|
||||||
|
|
|
@ -1039,6 +1039,11 @@ namespace smt {
|
||||||
bool internalize_gb_eq(grobner::equation const * eq);
|
bool internalize_gb_eq(grobner::equation const * eq);
|
||||||
enum gb_result { GB_PROGRESS, GB_NEW_EQ, GB_FAIL };
|
enum gb_result { GB_PROGRESS, GB_NEW_EQ, GB_FAIL };
|
||||||
gb_result compute_grobner(svector<theory_var> const & nl_cluster);
|
gb_result compute_grobner(svector<theory_var> const & nl_cluster);
|
||||||
|
void update_statistics(grobner&);
|
||||||
|
void set_gb_exhausted(bool r);
|
||||||
|
bool pass_over_gb_eqs_for_conflict(ptr_vector<grobner::equation>& eqs, grobner&);
|
||||||
|
gb_result scan_for_linear(ptr_vector<grobner::equation>& eqs, grobner&);
|
||||||
|
bool try_to_modify_eqs(ptr_vector<grobner::equation>& eqs, grobner&, unsigned &);
|
||||||
bool max_min_nl_vars();
|
bool max_min_nl_vars();
|
||||||
final_check_status process_non_linear();
|
final_check_status process_non_linear();
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue