mirror of
https://github.com/Z3Prover/z3
synced 2025-08-22 11:07:51 +00:00
remove plugin status to theory_seq
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
696b3c79b9
commit
8d8fe872ad
6 changed files with 29 additions and 73 deletions
|
@ -108,8 +108,6 @@ Outline:
|
|||
#include "smt/theory_lra.h"
|
||||
#include "smt/smt_kernel.h"
|
||||
|
||||
#define _USE_CHAR (false && m_char.enabled())
|
||||
|
||||
using namespace smt;
|
||||
|
||||
void theory_seq::solution_map::update(expr* e, expr* r, dependency* d) {
|
||||
|
@ -274,7 +272,6 @@ theory_seq::theory_seq(context& ctx):
|
|||
m_autil(m),
|
||||
m_sk(m, m_rewrite),
|
||||
m_ax(*this, m_rewrite),
|
||||
m_char(ctx, get_family_id(), this),
|
||||
m_regex(*this),
|
||||
m_arith_value(m),
|
||||
m_trail_stack(*this),
|
||||
|
@ -356,9 +353,6 @@ final_check_status theory_seq::final_check_eh() {
|
|||
TRACEFIN("zero_length");
|
||||
return FC_CONTINUE;
|
||||
}
|
||||
if (_USE_CHAR && !m_char.final_check()) {
|
||||
return FC_CONTINUE;
|
||||
}
|
||||
if (get_fparams().m_split_w_len && len_based_split()) {
|
||||
++m_stats.m_branch_variable;
|
||||
TRACEFIN("split_based_on_length");
|
||||
|
@ -1491,11 +1485,6 @@ bool theory_seq::internalize_term(app* term) {
|
|||
bool_var bv = ctx.mk_bool_var(term);
|
||||
ctx.set_var_theory(bv, get_id());
|
||||
ctx.mark_as_relevant(bv);
|
||||
if (m_util.is_char_le(term) && _USE_CHAR) {
|
||||
mk_var(ensure_enode(term->get_arg(0)));
|
||||
mk_var(ensure_enode(term->get_arg(1)));
|
||||
m_char.internalize_le(literal(bv, false), term);
|
||||
}
|
||||
}
|
||||
|
||||
enode* e = nullptr;
|
||||
|
@ -1510,9 +1499,6 @@ bool theory_seq::internalize_term(app* term) {
|
|||
relevant_eh(term);
|
||||
}
|
||||
|
||||
unsigned c = 0;
|
||||
if (_USE_CHAR && m_util.is_const_char(term, c))
|
||||
m_char.new_const_char(v, c);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -1771,7 +1757,6 @@ void theory_seq::collect_statistics(::statistics & st) const {
|
|||
st.update("seq extensionality", m_stats.m_extensionality);
|
||||
st.update("seq fixed length", m_stats.m_fixed_length);
|
||||
st.update("seq int.to.str", m_stats.m_int_string);
|
||||
m_char.collect_statistics(st);
|
||||
}
|
||||
|
||||
void theory_seq::init_search_eh() {
|
||||
|
@ -1994,12 +1979,6 @@ model_value_proc * theory_seq::mk_value(enode * n, model_generator & mg) {
|
|||
m_concat.shrink(start);
|
||||
return sv;
|
||||
}
|
||||
else if (_USE_CHAR && m_util.is_char(e)) {
|
||||
unsigned ch = m_char.get_char_value(n->get_th_var(get_id()));
|
||||
app* val = m_util.str.mk_char(ch);
|
||||
m_factory->add_trail(val);
|
||||
return alloc(expr_wrapper_proc, val);
|
||||
}
|
||||
else {
|
||||
return alloc(expr_wrapper_proc, mk_value(e));
|
||||
}
|
||||
|
@ -2304,7 +2283,7 @@ void theory_seq::validate_fmls(enode_pair_vector const& eqs, literal_vector cons
|
|||
theory_var theory_seq::mk_var(enode* n) {
|
||||
expr* o = n->get_owner();
|
||||
|
||||
if (!m_util.is_seq(o) && !m_util.is_re(o) && (!_USE_CHAR || !m_util.is_char(o)))
|
||||
if (!m_util.is_seq(o) && !m_util.is_re(o))
|
||||
return null_theory_var;
|
||||
|
||||
if (is_attached_to_var(n))
|
||||
|
@ -2963,9 +2942,6 @@ void theory_seq::assign_eh(bool_var v, bool is_true) {
|
|||
else if (m_util.str.is_nth_i(e) || m_util.str.is_nth_u(e)) {
|
||||
// no-op
|
||||
}
|
||||
else if (_USE_CHAR && m_util.is_char_le(e)) {
|
||||
// no-op
|
||||
}
|
||||
else if (m_util.is_skolem(e)) {
|
||||
|
||||
// no-op
|
||||
|
@ -2984,10 +2960,6 @@ void theory_seq::new_eq_eh(theory_var v1, theory_var v2) {
|
|||
enode* n2 = get_enode(v2);
|
||||
expr* o1 = n1->get_owner();
|
||||
expr* o2 = n2->get_owner();
|
||||
if (_USE_CHAR && m_util.is_char(o1)) {
|
||||
m_char.new_eq_eh(v1, v2);
|
||||
return;
|
||||
}
|
||||
if (!m_util.is_seq(o1) && !m_util.is_re(o1))
|
||||
return;
|
||||
if (m_util.is_re(o1)) {
|
||||
|
@ -3035,10 +3007,6 @@ void theory_seq::new_diseq_eh(theory_var v1, theory_var v2) {
|
|||
m_regex.propagate_ne(e1, e2);
|
||||
return;
|
||||
}
|
||||
if (_USE_CHAR && m_util.is_char(n1->get_owner())) {
|
||||
m_char.new_diseq_eh(v1, v2);
|
||||
return;
|
||||
}
|
||||
if (!m_util.is_seq(e1))
|
||||
return;
|
||||
m_exclude.update(e1, e2);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue