mirror of
https://github.com/Z3Prover/z3
synced 2025-06-29 01:18:45 +00:00
State graph dgml update and fixes in condition simplifier (#5721)
* improved generated dgml graph * fixed simplification of negated ranges and did some code cleanup * do not make loops with lower=upper=0, this is epsilon * do not add loops with lower=upper=1 * bug fix in normalization: forgotten eps case
This commit is contained in:
parent
bee742111a
commit
a7b1db611c
5 changed files with 168 additions and 220 deletions
|
@ -252,6 +252,12 @@ public:
|
|||
unsigned max_char() const { return seq.max_char(); }
|
||||
unsigned num_bits() const { return seq.num_bits(); }
|
||||
|
||||
/*
|
||||
e has a form that is equivalent to l <= x <= u (then negated = false)
|
||||
or e is equivalent to !(l <= x <= u) (then negated = true)
|
||||
*/
|
||||
bool is_char_const_range(expr const* x, expr * e, unsigned& l, unsigned& u, bool& negated) const;
|
||||
|
||||
app* mk_skolem(symbol const& name, unsigned n, expr* const* args, sort* range);
|
||||
bool is_skolem(expr const* e) const { return is_app_of(e, m_fid, _OP_SEQ_SKOLEM); }
|
||||
|
||||
|
@ -498,6 +504,7 @@ public:
|
|||
app* mk_opt(expr* r) { return m.mk_app(m_fid, OP_RE_OPTION, r); }
|
||||
app* mk_loop(expr* r, unsigned lo);
|
||||
app* mk_loop(expr* r, unsigned lo, unsigned hi);
|
||||
expr* mk_loop_proper(expr* r, unsigned lo, unsigned hi);
|
||||
app* mk_loop(expr* r, expr* lo);
|
||||
app* mk_loop(expr* r, expr* lo, expr* hi);
|
||||
app* mk_full_char(sort* s);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue