mirror of
https://github.com/Z3Prover/z3
synced 2026-05-22 01:49:36 +00:00
theory_nseq: remove seq_state, embed tracked entries directly in prop_queue (#9045)
* Remove seq_state: embed tracked_str_eq/tracked_str_mem directly in prop_queue Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> * theory_nseq: use type aliases for eq_item/mem_item instead of wrapper structs Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> * seq_model: validate_regex takes single tracked_str_mem, caller loops 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:
parent
8795bf06fb
commit
59bc9b17ea
5 changed files with 114 additions and 168 deletions
|
|
@ -32,6 +32,7 @@ Author:
|
|||
#include "ast/rewriter/seq_rewriter.h"
|
||||
#include "ast/euf/euf_sgraph.h"
|
||||
#include "smt/seq/seq_nielsen.h"
|
||||
#include "smt/seq/seq_state.h" // tracked_str_mem
|
||||
#include "model/seq_factory.h"
|
||||
|
||||
class proto_model;
|
||||
|
|
@ -40,7 +41,7 @@ namespace smt {
|
|||
|
||||
class enode;
|
||||
class model_generator;
|
||||
class seq_state;
|
||||
struct tracked_str_mem;
|
||||
class model_value_proc;
|
||||
|
||||
class seq_model {
|
||||
|
|
@ -87,7 +88,7 @@ namespace smt {
|
|||
// Validate that model assignments satisfy all regex membership
|
||||
// constraints from the state. Checks positive and negative
|
||||
// memberships. Returns true if all constraints pass.
|
||||
bool validate_regex(seq_state const& state, ::proto_model& mdl);
|
||||
bool validate_regex(tracked_str_mem const& mem, ::proto_model& mdl);
|
||||
|
||||
private:
|
||||
// extract variable assignments from the sat path (root-to-leaf edges).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue