3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-12 20:18:18 +00:00

remove family id externals

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2021-01-27 06:48:24 -08:00
parent d3564f5b50
commit 909257f856
5 changed files with 14 additions and 23 deletions

View file

@ -26,7 +26,6 @@ Revision History:
seq_decl_plugin::seq_decl_plugin(): m_init(false), seq_decl_plugin::seq_decl_plugin(): m_init(false),
m_stringc_sym("String"), m_stringc_sym("String"),
m_charc_sym("Char"),
m_string(nullptr), m_string(nullptr),
m_char(nullptr), m_char(nullptr),
m_reglan(nullptr), m_reglan(nullptr),

View file

@ -128,7 +128,6 @@ class seq_decl_plugin : public decl_plugin {
ptr_vector<sort> m_binding; ptr_vector<sort> m_binding;
bool m_init; bool m_init;
symbol m_stringc_sym; symbol m_stringc_sym;
symbol m_charc_sym;
sort* m_string; sort* m_string;
sort* m_char; sort* m_char;
sort* m_reglan; sort* m_reglan;

View file

@ -934,14 +934,7 @@ namespace smt {
} }
void setup::setup_char() { void setup::setup_char() {
// temporary: enable only char theory if it is used in seq m_context.register_plugin(alloc(smt::theory_char, m_context));
seq_util seq(m_manager);
sort* ch = seq.mk_char_sort();
sort* s = seq.mk_string_sort();
family_id ch_fid = ch->get_family_id();
if (s->get_family_id() != ch_fid)
m_context.register_plugin(alloc(smt::theory_char, m_context, ch_fid));
} }
void setup::setup_special_relations() { void setup::setup_special_relations() {

View file

@ -22,8 +22,8 @@ Author:
namespace smt { namespace smt {
theory_char::theory_char(context& ctx, family_id fid): theory_char::theory_char(context& ctx):
theory(ctx, fid), theory(ctx, ctx.get_manager().mk_family_id("char")),
seq(m), seq(m),
m_bb(m, ctx.get_fparams()) m_bb(m, ctx.get_fparams())
{ {

View file

@ -64,11 +64,11 @@ namespace smt {
public: public:
theory_char(context& ctx, family_id fid); theory_char(context& ctx);
void new_eq_eh(theory_var v1, theory_var v2) override; void new_eq_eh(theory_var v1, theory_var v2) override;
void new_diseq_eh(theory_var v1, theory_var v2) override; void new_diseq_eh(theory_var v1, theory_var v2) override;
theory * mk_fresh(context * new_ctx) override { return alloc(theory_char, *new_ctx, get_family_id()); } theory * mk_fresh(context * new_ctx) override { return alloc(theory_char, *new_ctx); }
bool internalize_atom(app * atom, bool gate_ctx) override; bool internalize_atom(app * atom, bool gate_ctx) override;
bool internalize_term(app * term) override; bool internalize_term(app * term) override;
void display(std::ostream& out) const override {} void display(std::ostream& out) const override {}