3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-04 06:15:46 +00:00

start porting grobner basis functionality

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2019-09-07 11:54:36 -07:00
parent d0d7813b9b
commit 490672a5ba
11 changed files with 93 additions and 47 deletions

View file

@ -127,10 +127,48 @@ void nla_grobner::init() {
find_nl_cluster();
}
void nla_grobner::grobner_lemmas() {
c().lp_settings().st().m_grobner_calls++;
init();
void nla_grobner::compute_basis(){
compute_basis_init();
if (!compute_basis_loop()) {
set_gb_exhausted();
}
}
void nla_grobner::compute_basis_init(){
c().lp_settings().stats().m_grobner_basis_computatins++;
m_num_new_equations = 0;
}
bool nla_grobner::compute_basis_loop(){
SASSERT(false);
return false;
}
void nla_grobner::set_gb_exhausted(){ SASSERT(false); }
void nla_grobner::update_statistics(){
SASSERT(false);
}
bool nla_grobner::find_conflict(){ SASSERT(false);
return false;
}
bool nla_grobner::push_calculation_forward(){ SASSERT(false);
return false;
}
void nla_grobner::grobner_lemmas() {
c().lp_settings().stats().m_grobner_calls++;
init();
do {
TRACE("nla_gb", tout << "before:\n"; display(tout););
compute_basis();
update_statistics();
TRACE("nla_gb", tout << "after:\n"; display(tout););
if (find_conflict())
return;
}
while(push_calculation_forward());
}
} // end of nla namespace