3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-03-18 02:53:46 +00:00

Implement IntBounds/VarBoundWatcher + Constraint.Shared; fix pre-existing build errors

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-03-10 23:26:55 +00:00
parent 07ee2f31ef
commit 47f9be0270
5 changed files with 710 additions and 23 deletions

View file

@ -29,6 +29,15 @@ Abstract:
#include <functional>
#include <chrono>
// Trivial solver that always returns sat and ignores all assertions.
class nseq_zipt_dummy_solver : public seq::simple_solver {
public:
void push() override {}
void pop(unsigned) override {}
void assert_expr(expr*) override {}
lbool check() override { return l_true; }
};
// -----------------------------------------------------------------------
// Helper: build a string snode from a notation string.
// Uppercase = fresh variable, lowercase/digit = concrete character.
@ -159,6 +168,7 @@ struct nseq_fixture {
ast_manager m;
euf::egraph eg;
euf::sgraph sg;
nseq_zipt_dummy_solver solver;
seq::nielsen_graph ng;
seq_util su;
str_builder sb;
@ -168,7 +178,7 @@ struct nseq_fixture {
static ast_manager& init(ast_manager& m) { reg_decl_plugins(m); return m; }
nseq_fixture()
: eg(init(m)), sg(m, eg), ng(sg), su(m), sb(sg), rb(m, su, sg)
: eg(init(m)), sg(m, eg), ng(sg, solver), su(m), sb(sg), rb(m, su, sg)
{}
euf::snode* S(const char* s) { return sb.parse(s); }