Copilot
46c76d89e0
Make dep_mgr private in seq_nielsen; expose conflict sources vector ( #9129 )
...
* make dep_mgr private in seq_nielsen, expose conflict_sources vector
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/998d8021-4808-4feb-afc5-b2447c6a64e5
* move deps_to_lits to seq namespace in seq_nielsen
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/8d736478-8f9b-4451-8d1f-539ce72525c7
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-25 08:05:00 -07:00
Copilot
49f2eb0e49
seq_nielsen: use arith binary match overloads in get_const_power_diff ( #9125 )
...
* refactor get_const_power_diff to use is_add/is_sub binary overloads
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/1d71a642-bb8f-43ca-88fd-9dc48f5aab24
* fix build: remove unnecessary arith_solver.h include from seq_nielsen.cpp
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/bb09a786-4445-4645-9930-e80494d96dbf
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-25 06:51:51 -07:00
Nikolaj Bjorner
8eaa9d9e6b
add back cur_path as a local variable
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-25 06:30:52 -07:00
Nikolaj Bjorner
9893a09fad
na
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-25 06:11:08 -07:00
CEisenhofer
c91b485fcf
Int Bounds where not updated properly
2026-03-25 12:47:52 +01:00
CEisenhofer
178d7439f2
Fixed to_dot for integer constraints
2026-03-25 11:25:07 +01:00
Copilot
e3e235aa7f
Refactor: replace int_constraint with constraint struct, promote cur_path to member, expose path leaf side constraints ( #9124 )
...
* chore: update plan with cur_path and side constraints requirements
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/1523cf0a-b7a4-41a6-b792-7cd41b4dcd3b
* Refactor: rename int_constraint to constraint, remove int_constraint_kind enum
- Rename int_constraint struct to constraint with fields fml/dep
- Remove int_constraint_kind enum; pre-build formula expressions instead
- nielsen_edge: add_side_int/side_int() -> add_side_constraint/side_constraints()
- nielsen_node: add_int_constraint/int_constraints() -> add_constraint/constraints()
- nielsen_graph: mk_int_constraint(lhs,rhs,kind,dep) -> mk_constraint(fml,dep)
- Remove int_constraint_to_expr (no longer needed)
- search_dfs/simplify_and_init/check_int_feasibility/check_lp_le: drop cur_path param
- Add m_cur_path member to nielsen_graph; m_cur_path.reset() in solve()
- Add get_path_leaf_side_constraints() implementation
- Update seq_parikh.h/cpp and seq_nielsen_pp.cpp to use new constraint API
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* refactor: constraint struct, promote cur_path, expose path leaf side constraints
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/1523cf0a-b7a4-41a6-b792-7cd41b4dcd3b
* fix: remove spurious includes from seq_nielsen.cpp
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/aa283d79-cd42-4b87-aaf0-4273a8327b76
* fix: update test files to use renamed constraint API and fix inverted root guard
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/b09bbc56-9617-4277-8e0c-27fa7e588037
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-24 22:18:30 -07:00
Nikolaj Bjorner
9f6eb4f455
remove unused fields
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-24 19:57:43 -07:00
Nikolaj Bjorner
6a6f9b1892
Merge remote-tracking branch 'origin/master' into c3
...
# Conflicts:
# .github/workflows/qf-s-benchmark.lock.yml
# .github/workflows/qf-s-benchmark.md
# .github/workflows/zipt-code-reviewer.lock.yml
# .github/workflows/zipt-code-reviewer.md
# .gitignore
# src/ast/rewriter/seq_rewriter.cpp
# src/test/main.cpp
2026-03-24 17:44:48 -07:00
Nikolaj Bjorner
bc5818e12d
fix bogus decompose_ite
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-24 14:43:56 -07:00
Nikolaj Bjorner
a5c0ecafda
fixes to model generation
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-24 13:27:28 -07:00
Nikolaj Bjorner
5803c6f202
fix bug in non-emptiness witness extraction
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-24 13:27:28 -07:00
Lev Nachmanson
456b99ced2
Fix nightly-validation: NuGet macOS ARM64 failure + add build script tests
...
- Remove .csproj overwrite in macOS x64 and ARM64 NuGet jobs that
replaced the versioned PackageReference with Version="*", causing
FileNotFoundException for Microsoft.Z3 assembly
- Add validate-build-script-tests job to run scripts/tests/test_*.py,
ensuring JNI arch flag tests from PR #8896 are exercised nightly
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-24 06:28:05 -10:00
Lev Nachmanson
44e84dc5d0
refactor try_bivar_hensel_lift and outline the algorithm
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-03-24 06:25:29 -10:00
Lev Nachmanson
117da362f0
add checkpoints() in upolinomial
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-03-24 06:25:29 -10:00
Lev Nachmanson
31c6c3ee79
make the new multivariate factorization more resilient
...
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-03-24 06:25:29 -10:00
Lev Nachmanson
09339c82ab
Fix crashes: avoid re-entering factor_sqf_pp from factor_n_sqf_pp
...
Calling factor_sqf_pp recursively on Hensel-lifted factors corrupts
shared mutable state in the polynomial manager, m_m2pos, m_som_buffer,
m_cheap_som_buffer, m_tmp1, etc., causing assertion violations:
- polynomial.cpp:473 id < m_m2pos.size()
- upolynomial.cpp:2624 sign_a == -sign_b
Use factor_1_sqf_pp/factor_2_sqf_pp for small degrees, push directly
for larger degrees. These don't conflict with the outer call's buffers.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-24 06:25:29 -10:00
Lev Nachmanson
5bae864d6e
Address review comments on multivariate factorization
...
- Fix memory leaks: use scoped_numeral instead of raw numeral for
evaluation points, ensuring cleanup on exceptions
- Precompute lc_inv before the Hensel lifting loop instead of
recomputing each iteration
- Use scoped_numeral_vector for eval_vals for consistency with codebase
- Move eval_values and candidate_primes to static constexpr class-level
- Document limitations: single-prime Hensel lifting, contiguous factor
splits only, pseudo-division lc-power caveat
- Condense Bezout derivation comment to 4-line summary
- Fix README to say Hensel lifting instead of GCD recovery
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-24 06:25:29 -10:00
Lev Nachmanson
3e5e9026d8
Implement multivariate polynomial factorization via Hensel lifting
...
Replace the stub factor_n_sqf_pp (TODO: invoke Dejan's procedure) with a
working implementation using bivariate Hensel lifting:
- Evaluate away extra variables to reduce to bivariate
- Factor the univariate specialization
- Lift univariate factors to bivariate via linear Hensel lifting in Zp[x]
- Verify lifted factors multiply to original over Z[x,y]
- For >2 variables, check bivariate factors divide the original polynomial
Tests: (x0+x1)(x0+2x1)(x0+3x1) now correctly factors into 3 linear factors.
All 89 unit tests pass in both release and debug builds.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-24 06:25:29 -10:00
Nikolaj Bjorner
a00ac9be84
udpated wf
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-24 09:15:08 -07:00
CEisenhofer
da9d8c8694
Asserting character constraints
2026-03-24 16:51:01 +01:00
CEisenhofer
48273ca0ed
Fixed unit substitution
2026-03-24 16:24:28 +01:00
CEisenhofer
aab96dbd29
Rule for unwinding powers in membership constraints
2026-03-24 14:58:10 +01:00
CEisenhofer
538fbc1b8d
Added unit (not char) case in apply_const_nielsen
2026-03-24 13:34:39 +01:00
CEisenhofer
b74f0bbb00
Signature splits
...
Fixed dot printing errorfor Skolems
2026-03-24 13:20:30 +01:00
dependabot[bot]
81a86c2102
Bump actions/checkout from 5.0.1 to 6.0.2 ( #9111 )
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 5.0.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases )
- [Commits](https://github.com/actions/checkout/compare/v5.0.1...v6.0.2 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.2
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 16:33:40 -07:00
dependabot[bot]
fd91695b91
Bump microsoft/setup-msbuild from 2 to 3 ( #9109 )
...
Bumps [microsoft/setup-msbuild](https://github.com/microsoft/setup-msbuild ) from 2 to 3.
- [Release notes](https://github.com/microsoft/setup-msbuild/releases )
- [Commits](https://github.com/microsoft/setup-msbuild/compare/v2...v3 )
---
updated-dependencies:
- dependency-name: microsoft/setup-msbuild
dependency-version: '3'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 16:33:25 -07:00
dependabot[bot]
01e0cf8e2c
Bump github/gh-aw from 0.57.2 to 0.62.5 ( #9110 )
...
Bumps [github/gh-aw](https://github.com/github/gh-aw ) from 0.57.2 to 0.62.5.
- [Release notes](https://github.com/github/gh-aw/releases )
- [Commits](https://github.com/github/gh-aw/compare/v0.57.2...v0.62.5 )
---
updated-dependencies:
- dependency-name: github/gh-aw
dependency-version: 0.62.5
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 16:33:13 -07:00
dependabot[bot]
c6dbe003ad
Bump actions/cache from 5.0.3 to 5.0.4 ( #9112 )
...
Bumps [actions/cache](https://github.com/actions/cache ) from 5.0.3 to 5.0.4.
- [Release notes](https://github.com/actions/cache/releases )
- [Commits](https://github.com/actions/cache/compare/v5.0.3...v5.0.4 )
---
updated-dependencies:
- dependency-name: actions/cache
dependency-version: 5.0.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 16:33:01 -07:00
dependabot[bot]
ae90696e50
Bump actions/download-artifact from 8.0.0 to 8.0.1 ( #9113 )
...
Bumps [actions/download-artifact](https://github.com/actions/download-artifact ) from 8.0.0 to 8.0.1.
- [Release notes](https://github.com/actions/download-artifact/releases )
- [Commits](https://github.com/actions/download-artifact/compare/v8...v8.0.1 )
---
updated-dependencies:
- dependency-name: actions/download-artifact
dependency-version: 8.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 16:32:49 -07:00
Copilot
1c24c835c9
Fix three assertion violations in nseq string solver ( #9106 )
...
- seq_model.cpp: skip trivial memberships in collect_var_regex_constraints;
SAT leaf nodes can have "" in nullable_regex (trivial) in addition to
primitive (single-variable) memberships after Brzozowski derivative
consumption reduces a concrete string membership to empty.
- seq_nielsen.cpp: fix SASSERT(!var) typo in var_ub(); should be SASSERT(var)
matching the pattern in var_lb().
- seq_regex.cpp: replace VERIFY(re_expr) with null guard in
minterm_to_char_set(); nullptr means no regex constraint and should
return the full alphabet, as the test test_minterm_nullptr_is_full expects.
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/31db5346-9b60-4a20-a101-beca9fc9e4f8
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-23 13:20:06 -07:00
Nikolaj Bjorner
dbdccbff97
use recursive function for not-contains
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-23 13:18:34 -07:00
Nikolaj Bjorner
4258768d77
reduce number of benchmarks to 200
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-23 03:03:59 -07:00
Copilot
ced7952a7b
Implement not_contains_axiom in seq_axioms.cpp ( #9098 )
...
* Implement not_contains_axiom in seq_axioms.cpp
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/2df315a7-6f41-4d22-9e77-1e778d97fdb8
* Rewrite not_contains_axiom using recfun recursive function instead of skolem predicate
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/28c9f40f-e66f-41b6-bec0-efff6bc9f902
* Use structural decomposition a = unit(nth(a,0)) ++ tail(a) in not_contains_axiom else-branch
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/e35f6eaa-4c4a-4629-bce2-c6a2a96e2ace
* Refactor tail_s initialization in seq_axioms.cpp
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-22 21:34:45 -07:00
Nikolaj Bjorner
19827a8599
remove stale aw files
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-22 20:04:18 -07:00
Copilot
a320a98489
ZIPT benchmark: scale to 500 files, fix seq timeout to 5s ( #9099 )
...
* Update ZIPT benchmark: 500 benchmarks, fix seq timeout description to 5s
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/4df0700d-bb5b-4bd6-85a4-34ed56c8f40c
* Update qf-s-benchmark.md
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-22 19:58:23 -07:00
Copilot
8db175447b
Handle unit-unit prefix/suffix splits in simplify_and_init ( #9097 )
...
When both leading (or trailing) tokens of a string equality are
is_char_or_unit(), split the equality:
unit(a) ++ rest1 == unit(b) ++ rest2 -> unit(a)==unit(b), rest1==rest2
unit(a) ++ rest1 == unit(b) -> unit(a)==unit(b), rest1==empty
unit(a) == unit(b) ++ rest2 -> unit(a)==unit(b), empty==rest2
(symmetric suffix case handled too)
Add three unit tests covering prefix split, prefix split with empty
rest, and suffix split.
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/565287e9-a121-4bae-8aa4-6c2ec93e660f
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-22 19:39:33 -07:00
Copilot
ad94dd1b7a
implement replace_all_axiom using recursive predicate ra(s,p,t,r) ( #9095 )
...
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/c550da78-28c6-4ab4-9bfb-7403ecc3320b
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-22 18:44:29 -07:00
Nikolaj Bjorner
d1d050f69f
not-contains placeholder
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-22 18:40:08 -07:00
Nikolaj Bjorner
7b27866310
simplify solution conditions
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-22 18:30:52 -07:00
Copilot
e0ca916e23
refactor: move nielsen graph display/to_dot routines into seq_nielsen_pp.cpp ( #9090 )
...
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/c2457bcf-85f0-4ad7-9ff1-d394f4315698
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-22 17:44:22 -07:00
Nikolaj Bjorner
00aac9a6a4
replace NYI by exceptions
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-22 16:07:48 -07:00
Copilot
40485e69be
Simplify extract_var_bound via operator normalization ( #9062 )
...
* Initial plan
* simplify extract_var_bound in qe_lite_tactic.cpp via operator normalization
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
* Add defensive check for integer type in lhs
Added a defensive check for integer type in lhs before proceeding with inequality checks.
* Update qe_lite_tactic.cpp
* Fix utility function call for integer check
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-22 16:01:12 -07:00
Nikolaj Bjorner
1863290b71
add deterministic solving for unit equations
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-22 15:34:16 -07:00
Copilot
6b5401ef68
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>
2026-03-22 12:05:24 -07:00
CEisenhofer
63830085b6
Delete unsupported testcases
2026-03-22 13:11:08 +01:00
Copilot
acd5a4cd59
Update README.md status badges: remove disabled specbot/deeptest, add new active workflows ( #9081 )
...
Agent-Logs-Url: https://github.com/Z3Prover/z3/sessions/77922efd-7471-4264-bf14-5fe5e643618d
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-21 15:20:35 -07:00
Nikolaj Bjorner
aa210882c5
add review
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-21 10:14:34 -07:00
Nikolaj Bjorner
a39ff701c7
remove include of nielsen in sgraph
...
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-21 09:48:34 -07:00
Lev Nachmanson
c2a17dac0b
Update .github/workflows/ci.yml
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-21 06:16:46 -10:00