mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 09:05:31 +00:00
merge LRA
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
085d31dca2
commit
911b24784a
120 changed files with 23069 additions and 15 deletions
|
@ -20,6 +20,7 @@ Revision History:
|
|||
#include"smt_setup.h"
|
||||
#include"static_features.h"
|
||||
#include"theory_arith.h"
|
||||
#include"theory_lra.h"
|
||||
#include"theory_dense_diff_logic.h"
|
||||
#include"theory_diff_logic.h"
|
||||
#include"theory_utvpi.h"
|
||||
|
@ -442,7 +443,7 @@ namespace smt {
|
|||
m_params.m_arith_propagate_eqs = false;
|
||||
m_params.m_eliminate_term_ite = true;
|
||||
m_params.m_nnf_cnf = false;
|
||||
setup_mi_arith();
|
||||
setup_r_arith();
|
||||
}
|
||||
|
||||
void setup::setup_QF_LRA(static_features const & st) {
|
||||
|
@ -467,7 +468,7 @@ namespace smt {
|
|||
m_params.m_restart_adaptive = false;
|
||||
}
|
||||
m_params.m_arith_small_lemma_size = 32;
|
||||
setup_mi_arith();
|
||||
setup_r_arith();
|
||||
}
|
||||
|
||||
void setup::setup_QF_LIA() {
|
||||
|
@ -539,7 +540,7 @@ namespace smt {
|
|||
m_params.m_relevancy_lvl = 0;
|
||||
m_params.m_arith_reflect = false;
|
||||
m_params.m_nnf_cnf = false;
|
||||
setup_mi_arith();
|
||||
setup_r_arith();
|
||||
}
|
||||
|
||||
void setup::setup_QF_BV() {
|
||||
|
@ -718,6 +719,10 @@ namespace smt {
|
|||
m_context.register_plugin(alloc(smt::theory_i_arith, m_manager, m_params));
|
||||
}
|
||||
|
||||
void setup::setup_r_arith() {
|
||||
m_context.register_plugin(alloc(smt::theory_lra, m_manager, m_params));
|
||||
}
|
||||
|
||||
void setup::setup_mi_arith() {
|
||||
if (m_params.m_arith_mode == AS_OPTINF) {
|
||||
m_context.register_plugin(alloc(smt::theory_inf_arith, m_manager, m_params));
|
||||
|
|
|
@ -99,6 +99,7 @@ namespace smt {
|
|||
void setup_card();
|
||||
void setup_i_arith();
|
||||
void setup_mi_arith();
|
||||
void setup_r_arith();
|
||||
void setup_fpa();
|
||||
void setup_str();
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ namespace smt {
|
|||
}
|
||||
}
|
||||
|
||||
void theory::display_app(std::ostream & out, app * n) const {
|
||||
std::ostream& theory::display_app(std::ostream & out, app * n) const {
|
||||
func_decl * d = n->get_decl();
|
||||
if (n->get_num_args() == 0) {
|
||||
out << d->get_name();
|
||||
|
@ -73,9 +73,10 @@ namespace smt {
|
|||
else {
|
||||
out << "#" << n->get_id();
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
void theory::display_flat_app(std::ostream & out, app * n) const {
|
||||
std::ostream& theory::display_flat_app(std::ostream & out, app * n) const {
|
||||
func_decl * d = n->get_decl();
|
||||
if (n->get_num_args() == 0) {
|
||||
out << d->get_name();
|
||||
|
@ -106,6 +107,7 @@ namespace smt {
|
|||
else {
|
||||
out << "#" << n->get_id();
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
bool theory::is_relevant_and_shared(enode * n) const {
|
||||
|
|
|
@ -337,14 +337,14 @@ namespace smt {
|
|||
|
||||
virtual void collect_statistics(::statistics & st) const {
|
||||
}
|
||||
|
||||
void display_app(std::ostream & out, app * n) const;
|
||||
|
||||
void display_flat_app(std::ostream & out, app * n) const;
|
||||
|
||||
void display_var_def(std::ostream & out, theory_var v) const { return display_app(out, get_enode(v)->get_owner()); }
|
||||
std::ostream& display_app(std::ostream & out, app * n) const;
|
||||
|
||||
void display_var_flat_def(std::ostream & out, theory_var v) const { return display_flat_app(out, get_enode(v)->get_owner()); }
|
||||
std::ostream& display_flat_app(std::ostream & out, app * n) const;
|
||||
|
||||
std::ostream& display_var_def(std::ostream & out, theory_var v) const { return display_app(out, get_enode(v)->get_owner()); }
|
||||
|
||||
std::ostream& display_var_flat_def(std::ostream & out, theory_var v) const { return display_flat_app(out, get_enode(v)->get_owner()); }
|
||||
|
||||
/**
|
||||
\brief Assume eqs between variable that are equal with respect to the given table.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue