mirror of
https://github.com/Z3Prover/z3
synced 2026-06-08 10:00:56 +00:00
Remove s_other from snode_kind; unify under s_var and is_var() (#9087)
* remove s_other, use s_var and is_var() instead Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/d56594ed-7f7e-436a-a4b2-e6dc986b18a8 * fix build: add reset() override to test dummy solver stubs Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/d437376d-55d8-4087-baf1-e89451d2d597 --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
parent
63830085b6
commit
6b5401ef68
9 changed files with 16 additions and 12 deletions
|
|
@ -2666,7 +2666,7 @@ namespace seq {
|
|||
// Variables and powers have symbolic/unknown length.
|
||||
if (tok->is_var() || tok->is_power())
|
||||
return true;
|
||||
// For s_other: check if it's a string literal (known constant length).
|
||||
// For s_var string literals: check if it's a string literal (known constant length).
|
||||
if (tok->get_expr()) {
|
||||
seq_util& seq = m_sg.get_seq_util();
|
||||
zstring s;
|
||||
|
|
|
|||
|
|
@ -685,7 +685,7 @@ namespace seq {
|
|||
// true if all str_eqs are trivial and there are no str_mems
|
||||
bool is_satisfied() const;
|
||||
|
||||
// true if any constraint has opaque (s_other) terms that
|
||||
// true if any constraint has opaque (s_var) terms that
|
||||
// the Nielsen graph cannot decompose
|
||||
bool has_opaque_terms() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -517,11 +517,11 @@ namespace seq {
|
|||
// Only handle ground regexes; non-ground can't be fully explored
|
||||
if (!re->is_ground())
|
||||
return l_undef;
|
||||
// s_other snodes (unrecognized regex kinds, e.g. re.+) cannot be
|
||||
// s_var snodes (unrecognized regex kinds, e.g. re.+) cannot be
|
||||
// efficiently explored: the alphabet partition is trivially {∅} and
|
||||
// derivative computations may be slow. Report l_undef and let the
|
||||
// caller fall back to a more capable procedure.
|
||||
if (re->kind() == euf::snode_kind::s_other)
|
||||
if (re->is_var())
|
||||
return l_undef;
|
||||
|
||||
// BFS over the Brzozowski derivative automaton.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue