3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-06-12 03:45:38 +00:00

seq_model: address NSB review comments (#8995)

* Initial plan

* Address NSB review comments in seq_model.cpp

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Address code review feedback: improve null-sort handling in seq_model and some_seq_in_re

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

---------

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:
Copilot 2026-03-14 21:55:32 -07:00 committed by GitHub
parent 6947698d65
commit 2212f59704
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 53 additions and 91 deletions

View file

@ -36,10 +36,6 @@ Author:
class proto_model;
namespace seq {
class seq_regex;
}
namespace smt {
class enode;
@ -52,7 +48,6 @@ namespace smt {
seq_util& m_seq;
seq_rewriter& m_rewriter;
euf::sgraph& m_sg;
seq::seq_regex& m_regex;
// factory for generating fresh string/regex values
seq_factory* m_factory = nullptr;
@ -74,7 +69,7 @@ namespace smt {
public:
seq_model(ast_manager& m, seq_util& seq,
seq_rewriter& rw, euf::sgraph& sg, seq::seq_regex& regex);
seq_rewriter& rw, euf::sgraph& sg);
// Phase 1: initialize model construction.
// Allocates seq_factory, registers it with mg, collects
@ -103,11 +98,6 @@ namespace smt {
// Returns a concrete Z3 expression.
expr_ref snode_to_value(euf::snode* n);
// generate a concrete witness string for a regex.
// Uses nullable check and first-char collection to build
// a minimal satisfying string. depth bounds recursion.
expr_ref generate_regex_witness(euf::snode* regex, unsigned depth = 0);
// register all string literals appearing in the constraint store
// with the factory to avoid collisions with fresh values.
void register_existing_values(seq::nielsen_graph& nielsen);