mirror of
https://github.com/Z3Prover/z3
synced 2025-08-15 07:15:26 +00:00
remove automata references
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
976e4c91b0
commit
6cfbda0f08
5 changed files with 12 additions and 350 deletions
|
@ -23,7 +23,6 @@ Revision History:
|
|||
#include "ast/ast_trail.h"
|
||||
#include "util/scoped_vector.h"
|
||||
#include "util/scoped_ptr_vector.h"
|
||||
#include "math/automata/automaton.h"
|
||||
#include "ast/rewriter/seq_rewriter.h"
|
||||
#include "util/union_find.h"
|
||||
#include "util/obj_ref_hashtable.h"
|
||||
|
@ -301,15 +300,6 @@ namespace smt {
|
|||
}
|
||||
};
|
||||
|
||||
struct s_in_re {
|
||||
literal m_lit;
|
||||
expr* m_s;
|
||||
expr* m_re;
|
||||
eautomaton* m_aut;
|
||||
bool m_active;
|
||||
s_in_re(literal l, expr*s, expr* re, eautomaton* aut):
|
||||
m_lit(l), m_s(s), m_re(re), m_aut(aut), m_active(true) {}
|
||||
};
|
||||
|
||||
void erase_index(unsigned idx, unsigned i);
|
||||
|
||||
|
@ -318,7 +308,6 @@ namespace smt {
|
|||
void reset() { memset(this, 0, sizeof(stats)); }
|
||||
unsigned m_num_splits;
|
||||
unsigned m_num_reductions;
|
||||
unsigned m_propagate_automata;
|
||||
unsigned m_check_length_coherence;
|
||||
unsigned m_branch_variable;
|
||||
unsigned m_branch_nqs;
|
||||
|
@ -376,19 +365,13 @@ namespace smt {
|
|||
expr_ref_vector m_ls, m_rs, m_lhs, m_rhs;
|
||||
expr_ref_pair_vector m_new_eqs;
|
||||
|
||||
// maintain automata with regular expressions.
|
||||
scoped_ptr_vector<eautomaton> m_automata;
|
||||
obj_map<expr, eautomaton*> m_re2aut;
|
||||
expr_ref_vector m_res;
|
||||
unsigned m_max_unfolding_depth;
|
||||
literal m_max_unfolding_lit;
|
||||
vector<s_in_re> m_s_in_re;
|
||||
|
||||
expr* m_unhandled_expr;
|
||||
bool m_has_seq;
|
||||
bool m_new_solution; // new solution added
|
||||
bool m_new_propagation; // new propagation to core
|
||||
re2automaton m_mk_aut;
|
||||
|
||||
obj_hashtable<expr> m_fixed; // string variables that are fixed length.
|
||||
obj_hashtable<expr> m_is_digit; // expressions that have been constrained to be digits
|
||||
|
@ -618,13 +601,6 @@ namespace smt {
|
|||
|
||||
void set_incomplete(app* term);
|
||||
|
||||
// automata utilities
|
||||
void propagate_in_re(expr* n, bool is_true);
|
||||
eautomaton* get_automaton(expr* e);
|
||||
literal mk_accept(expr* s, expr* idx, expr* re, expr* state);
|
||||
literal mk_accept(expr* s, expr* idx, expr* re, unsigned i) { return mk_accept(s, idx, re, m_autil.mk_int(i)); }
|
||||
bool is_accept(expr* acc) const { return m_sk.is_accept(acc); }
|
||||
bool is_accept(expr* acc, expr*& s, expr*& idx, expr*& re, unsigned& i, eautomaton*& aut);
|
||||
void propagate_not_prefix(expr* e);
|
||||
void propagate_not_suffix(expr* e);
|
||||
void ensure_nth(literal lit, expr* s, expr* idx);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue