3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-03-15 17:49:59 +00:00
Commit graph

21985 commits

Author SHA1 Message Date
Copilot
9256dd66e6
Switch memory-safety workflow from push to weekly Monday schedule (#9001)
* Initial plan

* Replace push trigger with weekly Monday schedule in memory-safety.yml

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>
2026-03-15 10:26:10 -07:00
Angelica Moreira
db46d52056
fix memory-safety-report to download artifacts via MCP tools (#8979)
gh CLI is not available inside AWF so the agent could not download
artifacts. Switch to GitHub MCP actions toolset for artifact URLs
and add helper scripts for download and parsing.
2026-03-15 10:12:49 -07:00
Lev Nachmanson
6fb68ac010
Nl2lin - integrate a linear under approximation of a CAD cell by Valentin Promies. (#8982)
* outline of signature for assignment based conflict generation

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* outline of interface contract

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* remove confusing construction

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* add material in nra-solver to interface

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* add marshaling from nlsat lemmas into core solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* tidy

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* add call to check-assignment

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* Nl2lin (#7795)

* add linearized projection in nlsat

* implement nlsat check for given assignment

* add some comments

* fixup loop

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* updates

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fixes

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* debug nl2lin

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* Nl2lin (#7827)

* fix linear projection

* fix linear projection

* use an explicit cell description in check_assignment

* clean up (#7844)

* Simplify no effect checks in nla_core.cpp

Move up linear nlsat call to replace bounded nlsat.

* t

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* t

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* detangle mess

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* remove the too early return

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* do not set use_nra_model to true

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* remove a comment

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* add a hook to add new multiplication definitions in nla_core

* add internalization routine that uses macro-expanded polynomial representation

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* add internalization routine that uses macro-expanded polynomial representation

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fixup backtranslation to not use roots

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* call setup_assignment_solver instead of setup_solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* debug the setup, still not working

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* updated clang format

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* simplify

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* create polynomials with integer coefficients, use the hook to create new monomials

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* integrating changes from master related to work with polynomials

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* add forgotten files

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* Update nlsat_explain.cpp

Remove a duplicate call

* fix

* move linear cell construction to levelwise

* fix

* fix

* Port throttle and soundness fixes from master

- Fix soundness: pop incomplete lemma from m_lemmas on add_lemma failure
- Gracefully handle root atoms in add_lemma
- Throttle check_assignment with failure counter (decrement on success)
- Add arith.nl.nra_check_assignment parameter

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add arith.nl.nra_check_assignment_max_fail parameter

Replace hardcoded failure threshold with configurable parameter (default 10).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add cha_abort_on_fail parameter to control failure counter decrement

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* abort nla check_assignment after a set number of allowed failures

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* Add missing AST query methods to Java API (#8977)

* add Expr.isGround() to Java API

Expose Z3_is_ground as a public method on Expr. Returns true when the
expression contains no free variables.

* add Expr.isLambda() to Java API

Expose Z3_is_lambda as a public method on Expr. Returns true when the
expression is a lambda quantifier.

* add AST.getDepth() to Java API

Expose Z3_get_depth as a public method on AST. Returns the maximum
number of nodes on any path from root to leaf.

* add ArraySort.getArity() to Java API

Expose Z3_get_array_arity as a public method on ArraySort. Returns
the number of dimensions of a multi-dimensional array sort.

* add DatatypeSort.isRecursive() to Java API

Expose Z3_is_recursive_datatype_sort as a public method on
DatatypeSort. Returns true when the datatype refers to itself.

* add FPExpr.isNumeral() to Java API

Expose Z3_fpa_is_numeral as a public method on FPExpr. Returns true
when the expression is a concrete floating-point value.

* add isGroundExample test to JavaExample

Test Expr.isGround() on constants, variables, and compound
expressions.

* add astDepthExample test to JavaExample

Test AST.getDepth() on leaf nodes and nested expressions to verify
the depth computation.

* add arrayArityExample test to JavaExample

Test ArraySort.getArity() on single-domain and multi-domain array
sorts.

* add recursiveDatatypeExample test to JavaExample

Test DatatypeSort.isRecursive() on a recursive list datatype and a
non-recursive pair datatype.

* add fpNumeralExample test to JavaExample

Test FPExpr.isNumeral() on a floating point constant and a symbolic
variable.

* add isLambdaExample test to JavaExample

Test Expr.isLambda() on a lambda expression and a plain variable.

* change the default number of failures in check_assignment to 7

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* Fix high and medium priority API coherence issues (Go, Java, C++, TypeScript) (#8983)

* Initial plan

* Add missing API functions to Go, Java, C++, and TypeScript bindings

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>

* qf-s-benchmark: debug build + seq tracing + seq-fast/nseq-slow trace analysis (#8988)

* Initial plan

* Update qf-s-benchmark: debug build, seq tracing, trace analysis

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>

* disable linear approximation by default to check the merge

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* set check_assignment to true

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* fix restore_x by recalulating new column values

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* fix restore_x by recalulating new column values

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

* fix a memory leak

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

---------

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Co-authored-by: ValentinPromies <44966217+ValentinPromies@users.noreply.github.com>
Co-authored-by: Valentin Promies <valentin.promies@rwth-aachen.de>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Angelica Moreira <48168649+angelica-moreira@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-15 06:13:04 -10:00
Copilot
cb13fa2325
fix: create missing agentics/qf-s-benchmark.md agent prompt (#8989)
* Initial plan

* fix: create missing agentics/qf-s-benchmark.md agent prompt

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>
2026-03-14 12:42:11 -07:00
Copilot
b8ac856bd3
qf-s-benchmark: debug build + seq tracing + seq-fast/nseq-slow trace analysis (#8988)
* Initial plan

* Update qf-s-benchmark: debug build, seq tracing, trace analysis

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>
2026-03-14 12:21:42 -07:00
Copilot
21bfb115ea
Fix high and medium priority API coherence issues (Go, Java, C++, TypeScript) (#8983)
* Initial plan

* Add missing API functions to Go, Java, C++, and TypeScript bindings

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>
2026-03-14 10:46:03 -07:00
Angelica Moreira
b8e15f2121
Add missing AST query methods to Java API (#8977)
* add Expr.isGround() to Java API

Expose Z3_is_ground as a public method on Expr. Returns true when the
expression contains no free variables.

* add Expr.isLambda() to Java API

Expose Z3_is_lambda as a public method on Expr. Returns true when the
expression is a lambda quantifier.

* add AST.getDepth() to Java API

Expose Z3_get_depth as a public method on AST. Returns the maximum
number of nodes on any path from root to leaf.

* add ArraySort.getArity() to Java API

Expose Z3_get_array_arity as a public method on ArraySort. Returns
the number of dimensions of a multi-dimensional array sort.

* add DatatypeSort.isRecursive() to Java API

Expose Z3_is_recursive_datatype_sort as a public method on
DatatypeSort. Returns true when the datatype refers to itself.

* add FPExpr.isNumeral() to Java API

Expose Z3_fpa_is_numeral as a public method on FPExpr. Returns true
when the expression is a concrete floating-point value.

* add isGroundExample test to JavaExample

Test Expr.isGround() on constants, variables, and compound
expressions.

* add astDepthExample test to JavaExample

Test AST.getDepth() on leaf nodes and nested expressions to verify
the depth computation.

* add arrayArityExample test to JavaExample

Test ArraySort.getArity() on single-domain and multi-domain array
sorts.

* add recursiveDatatypeExample test to JavaExample

Test DatatypeSort.isRecursive() on a recursive list datatype and a
non-recursive pair datatype.

* add fpNumeralExample test to JavaExample

Test FPExpr.isNumeral() on a floating point constant and a symbolic
variable.

* add isLambdaExample test to JavaExample

Test Expr.isLambda() on a lambda expression and a plain variable.
2026-03-14 10:13:42 -07:00
Nikolaj Bjorner
6e5971641f
Merge pull request #8955 from Z3Prover/copilot/convert-injectivity-to-simplifier
Convert `injectivity` tactic to a dependent_expr_simplifier
2026-03-12 17:07:19 -07:00
Nikolaj Bjorner
ca9992c751
Merge pull request #8954 from Z3Prover/copilot/convert-special-relations-tactic
Convert `special-relations` tactic to a `dependent_expr_simplifier`
2026-03-12 17:07:02 -07:00
Nikolaj Bjorner
225b3c1f30
Merge pull request #8972 from Z3Prover/copilot/fix-deep-api-bugs
Fix input validation and null-safety bugs in Z3 C API
2026-03-12 17:03:55 -07:00
copilot-swe-agent[bot]
682fa3f815 Fix indentation: use spaces instead of tabs in api_model.cpp CHECK_NON_NULL
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 23:00:07 +00:00
copilot-swe-agent[bot]
f413a24408 Fix API bugs exercised by test/deep_api_bugs.cpp
- api_fpa.cpp: add RETURN_Z3(nullptr) after SET_ERROR_CODE in Z3_mk_fpa_sort to prevent fall-through to mk_float_sort with invalid params
- api_seq.cpp: add null check for str in Z3_mk_string; add null check for str when sz>0 in Z3_mk_lstring; add lo<=hi validation in Z3_mk_re_loop
- api_array.cpp: add explicit n==0 validation in Z3_mk_array_sort_n
- api_solver.cpp: rename local variable 'c' to avoid shadowing Z3_context param in Z3_solver_propagate_created/decide/on_binding; move init_solver call inside file-exists branches of Z3_solver_from_file
- api_ast.cpp: add null check for target in Z3_translate; add null check for _from/_to arrays when num_exprs>0 in Z3_substitute
- api_model.cpp: add CHECK_NON_NULL(m) in Z3_add_func_interp; add CHECK_NON_NULL(a) in Z3_model_get_const_interp; add null check for target in Z3_model_translate
- api_opt.cpp: add null check for weight string in Z3_optimize_assert_soft
- api_quant.cpp: add num_patterns==0 validation in Z3_mk_pattern

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 22:58:53 +00:00
copilot-swe-agent[bot]
e6c082e6e8 Initial plan 2026-03-12 22:19:41 +00:00
Nikolaj Bjorner
397e3d404a add bugs
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-12 15:18:38 -07:00
Nikolaj Bjorner
d3626fee64 fixup release-notes-updater
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-12 14:11:02 -07:00
Nikolaj Bjorner
8ba5fb6698 compile updated workflows
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-12 13:33:37 -07:00
Nikolaj Bjorner
d772503b25
Merge pull request #8968 from Z3Prover/copilot/aw-no-op-runs-tracking
Suppress no-op agentic workflow runs from posting to tracking issue
2026-03-12 13:32:31 -07:00
copilot-swe-agent[bot]
3bc7623f03 Add noop report-as-issue: false to all agentic workflow frontmatter
Prevents no-op workflow runs from posting comments to the [aw] No-Op
Runs tracking issue by setting safe-outputs.noop.report-as-issue: false
in all 13 agentic workflow .md files.

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 20:01:30 +00:00
copilot-swe-agent[bot]
30afc4ab5a Initial plan 2026-03-12 19:58:18 +00:00
Nikolaj Bjorner
1e7f3e2a5f
Merge pull request #8967 from Z3Prover/copilot/fix-mark-prs-ready-review
Fix "Mark PRs Ready for Review" workflow: use PAT instead of GITHUB_TOKEN for GraphQL mutation
2026-03-12 12:55:38 -07:00
copilot-swe-agent[bot]
56c88022e2 Fix build: use unquoted TRACE tag identifier instead of string literal
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 18:27:36 +00:00
copilot-swe-agent[bot]
f8a8d62587 Fix mark-prs-ready-for-review workflow: use GH_AW_GITHUB_TOKEN for GraphQL mutation
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 18:18:45 +00:00
copilot-swe-agent[bot]
036047f725 Initial plan 2026-03-12 18:12:34 +00:00
copilot-swe-agent[bot]
646016742b Fix Python build: move special_relations_simplifier.h to tactic/core to resolve expr_pattern_match.h dependency
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 18:02:43 +00:00
Nikolaj Bjorner
97e652156a
Merge pull request #8963 from Z3Prover/copilot/add-zipt-solver-to-benchmark
Add ZIPT solver to QF_S benchmark workflow
2026-03-12 10:39:39 -07:00
copilot-swe-agent[bot]
d4d72767d9 add ZIPT solver to QF_S benchmark workflow
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 17:36:48 +00:00
Nikolaj Bjorner
588b07f5ad
Merge pull request #8959 from Z3Prover/copilot/create-workflow-mark-prs-ready
Add workflow to mark all draft PRs ready for review
2026-03-12 10:30:56 -07:00
copilot-swe-agent[bot]
248800c3e4 Initial plan 2026-03-12 17:29:12 +00:00
copilot-swe-agent[bot]
f461876e8a Add pull_request trigger to mark-prs-ready-for-review workflow
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 16:30:09 +00:00
copilot-swe-agent[bot]
7692dfc7d6 Delete injectivity_tactic.cpp (deprecated, replaced by injectivity_simplifier.h)
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 16:25:04 +00:00
Lev Nachmanson
11309424b3
Merge pull request #8944 from Z3Prover/feas
Fix the regression in maximize of theory_lra.
2026-03-12 06:10:26 -10:00
copilot-swe-agent[bot]
995e0e1f14 Deprecate injectivity_tactic.cpp: forward mk_injectivity_tactic to simplifier-based impl
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 05:32:32 +00:00
copilot-swe-agent[bot]
ec9fee969d Remove old special_relations_tactic class, use simplifier-based tactic as the sole special-relations tactic
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 05:30:57 +00:00
Lev Nachmanson
3176151cc2 rename bhn_opt to max_reg
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-03-11 19:18:45 -10:00
Nikolaj Bjorner
664c8ca73a compiled workflows
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-03-11 21:39:28 -07:00
copilot-swe-agent[bot]
fb31b689ea Add special_relations_simplifier: new simplifier and tactic registration
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 04:39:05 +00:00
copilot-swe-agent[bot]
c303b56f04 Add injectivity_simplifier and register injectivity2 tactic + injectivity simplifier
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 04:37:17 +00:00
Lev Nachmanson
b8d6952e9e Enable som (sum of monomials) in optimizer simplification
The optimizer's simplification pass did not expand products of sums
into sum-of-monomials form. This caused mathematically equivalent
expressions like (5-x)^2 vs (x-5)^2 to simplify into different
internal forms, where the former produced nested multiplies
(+ 5.0 (* -1.0 x)) that led to harder purification constraints
and solver timeouts.

Enabling som=true in the first simplification tactic normalizes
polynomial objectives into canonical monomial form, making the
optimizer robust to operand ordering.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-11 18:28:40 -10:00
copilot-swe-agent[bot]
a1af82ee63 Initial plan 2026-03-12 04:16:04 +00:00
Lev Nachmanson
ce7c7f458e Add max_rev test: BNH with reversed argument order in f1/f2
Same as test_bnh_optimize but constructs f1 and f2 with reversed
parameter order in mk_add, mk_mul, mk_sub calls. Exposes optimizer
sensitivity to expression structure.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-11 18:15:57 -10:00
copilot-swe-agent[bot]
7a00cb4e01 Initial plan 2026-03-12 04:15:56 +00:00
copilot-swe-agent[bot]
0060608d73 Add workflow to mark all draft pull requests ready for review
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-03-12 02:27:32 +00:00
copilot-swe-agent[bot]
4364b9865e Initial plan 2026-03-12 02:25:22 +00:00
Nikolaj Bjorner
9c2d34ce43
Merge pull request #8948 from angelica-moreira/z3-skill-exploration
Add Copilot skills and agent for Z3
2026-03-11 19:20:31 -07:00
Nikolaj Bjorner
faf888d35c
Merge pull request #8945 from Z3Prover/vect_fix
Fixed the assertion violation in `mpz.cpp:602` when running with `-tr…
2026-03-11 17:52:27 -07:00
Angelica Moreira
f120cc6903 add per-skill @z3 usage examples to agent readme 2026-03-12 00:16:06 +00:00
Angelica Moreira
68ea8d3a43 move agent readme to repo root as Z3-AGENT.md 2026-03-12 00:11:28 +00:00
Lev Nachmanson
610527ec1a
Merge pull request #8946 from Z3Prover/copilot/sub-pr-8945
[WIP] [WIP] Address feedback on assertion violation fix in mpz.cpp
2026-03-11 13:58:40 -10:00
copilot-swe-agent[bot]
01f9709ff6 Add vector::resize tests including vector<rational>
Co-authored-by: levnach <5377127+levnach@users.noreply.github.com>
2026-03-11 23:54:01 +00:00
copilot-swe-agent[bot]
385b11f55b Initial plan 2026-03-11 23:18:26 +00:00