mirror of
https://github.com/Z3Prover/z3
synced 2025-04-15 05:18:44 +00:00
Z3str3: refactor regex automata to subroutine, use arith_value
This commit is contained in:
parent
5bbe0508e4
commit
7e419137b1
|
@ -96,4 +96,10 @@ namespace smt {
|
|||
while (next != n);
|
||||
return false;
|
||||
}
|
||||
|
||||
final_check_status arith_value::final_check() {
|
||||
family_id afid = a.get_family_id();
|
||||
theory * th = m_ctx.get_theory(afid);
|
||||
return th->final_check_eh();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -33,5 +33,6 @@ namespace smt {
|
|||
bool get_lo(expr* e, rational& lo, bool& strict);
|
||||
bool get_up(expr* e, rational& up, bool& strict);
|
||||
bool get_value(expr* e, rational& value);
|
||||
final_check_status final_check();
|
||||
};
|
||||
};
|
||||
|
|
|
@ -36,6 +36,7 @@ namespace smt {
|
|||
unsigned_vector m_var2enode_lim;
|
||||
|
||||
friend class context;
|
||||
friend class arith_value;
|
||||
protected:
|
||||
virtual void init(context * ctx);
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -30,6 +30,7 @@
|
|||
#include "smt/params/theory_str_params.h"
|
||||
#include "smt/proto_model/value_factory.h"
|
||||
#include "smt/smt_model_generator.h"
|
||||
#include "smt/smt_arith_value.h"
|
||||
#include<set>
|
||||
#include<stack>
|
||||
#include<vector>
|
||||
|
@ -546,6 +547,7 @@ protected:
|
|||
void process_concat_eq_unroll(expr * concat, expr * unroll);
|
||||
|
||||
// regex automata and length-aware regex
|
||||
void solve_regex_automata();
|
||||
unsigned estimate_regex_complexity(expr * re);
|
||||
unsigned estimate_regex_complexity_under_complement(expr * re);
|
||||
unsigned estimate_automata_intersection_difficulty(eautomaton * aut1, eautomaton * aut2);
|
||||
|
|
Loading…
Reference in a new issue