3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 02:15:19 +00:00

remove passing suffixes into pdr_sym_mux, trying to isolate cause of issue #420

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2016-02-12 19:25:52 +00:00
parent 660eff0b9e
commit 94be6fc776
4 changed files with 10 additions and 10 deletions

View file

@ -164,12 +164,11 @@ namespace pdr {
m(manager),
m_fparams(fparams),
m_brwr(m),
m_mux(m, m_state_suffixes),
m_mux(m),
m_background(m.mk_true(), m),
m_contexts(fparams, max_num_contexts, m),
m_next_unique_num(0)
{
m_state_suffixes.push_back("_n");
}

View file

@ -80,8 +80,7 @@ namespace pdr {
smt_params& m_fparams;
mutable bool_rewriter m_brwr;
vector<std::string> m_state_suffixes;
sym_mux m_mux;
expr_ref m_background;
decl_vector m_o0_preds;

View file

@ -28,9 +28,10 @@ Revision History:
using namespace pdr;
sym_mux::sym_mux(ast_manager & m, vector<std::string> & suffixes)
: m(m), m_ref_holder(m), m_next_sym_suffix_idx(0), m_suffixes(suffixes)
{
sym_mux::sym_mux(ast_manager & m)
: m(m), m_ref_holder(m),
m_next_sym_suffix_idx(0) {
m_suffixes.push_back("_n");
unsigned suf_sz = m_suffixes.size();
for(unsigned i = 0; i < suf_sz; ++i) {
symbol suff_sym = symbol(m_suffixes[i].c_str());
@ -53,7 +54,8 @@ std::string sym_mux::get_suffix(unsigned i) {
m_used_suffixes.insert(new_syffix_sym);
m_suffixes.push_back(new_suffix);
}
return m_suffixes[i];
std::string result = m_suffixes[i];
return result;
}
void sym_mux::create_tuple(func_decl* prefix, unsigned arity, sort * const * domain, sort * range,

View file

@ -46,7 +46,7 @@ private:
mutable unsigned m_next_sym_suffix_idx;
mutable symbols m_used_suffixes;
/** Here we have default suffixes for each of the variants */
vector<std::string> m_suffixes;
vector<std::string> m_suffixes;
/**
@ -94,7 +94,7 @@ private:
expr_ref isolate_o_idx(expr* e, unsigned idx) const;
public:
sym_mux(ast_manager & m, vector<std::string> & suffixes);
sym_mux(ast_manager & m);
ast_manager & get_manager() const { return m; }