3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-12-25 05:26:51 +00:00
Commit graph

20229 commits

Author SHA1 Message Date
Lev Nachmanson
543a473993
Update nlsat_explain.cpp
Remove a duplicate call
2025-12-16 17:55:26 -10:00
Lev Nachmanson
a6f44f8c88 Merge branch 'master' into nl2lin
# Conflicts:
#	src/math/lp/nla_coi.cpp
#	src/math/lp/nla_coi.h
#	src/math/lp/nla_core.cpp
#	src/math/lp/nla_grobner.cpp
#	src/math/lp/nla_grobner.h
#	src/math/lp/nla_pp.cpp
#	src/math/lp/nra_solver.cpp
#	src/nlsat/nlsat_explain.h
#	src/smt/theory_lra.cpp
2025-12-16 11:47:13 -10:00
h-vetinari
429771e5b7
BLD: Add CMake option to build Python bindings without rebuilding libz3 (redux) (#8088)
* Add CMake option to build only Python bindings without rebuilding libz3

Introduce Z3_BUILD_LIBZ3_CORE option (default ON) to control whether libz3 is built.
When set to OFF with Z3_BUILD_PYTHON_BINDINGS=ON, only Python bindings are built
using a pre-installed libz3 library. This is useful for package managers like
conda-forge to avoid rebuilding libz3 for each Python version.

Changes:
- Add Z3_BUILD_LIBZ3_CORE option in src/CMakeLists.txt
- When OFF, find and use pre-installed libz3 as imported target
- Update Python bindings CMakeLists.txt to handle both built and imported libz3
- Add documentation in README-CMake.md with usage examples

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

* Fix CMake export issues when building only Python bindings

Conditionally export Z3_EXPORTED_TARGETS only when Z3_BUILD_LIBZ3_CORE=ON
to avoid errors when building Python bindings without building libz3.

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

* Disable executable and test builds when not building libz3 core

When Z3_BUILD_LIBZ3_CORE=OFF, automatically disable Z3_BUILD_EXECUTABLE
and Z3_BUILD_TEST_EXECUTABLES to avoid build/install errors.

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

* only build src/ folder if Z3_BUILD_LIBZ3_CORE is TRUE

* move z3 python bindings to main CMake

* move more logic to main CMakeLists.txt

* move Z3_API_HEADER_FILES_TO_SCAN to main CMakeLists.txt

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2025-12-16 17:50:37 +00:00
Nikolaj Bjorner
9f7e304ee8
Update docs.yml 2025-12-16 17:36:42 +00:00
Nikolaj Bjorner
818afaf4b5
Add defaults for job run working directory 2025-12-16 17:16:21 +00:00
Nikolaj Bjorner
b82287dc25
Update docs.yml 2025-12-16 16:49:05 +00:00
Nikolaj Bjorner
6b6e1e017b
Update docs.yml 2025-12-16 15:31:18 +00:00
Nikolaj Bjorner
8407bfc8a3 build the ts bindings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-12-15 20:02:21 -08:00
Nikolaj Bjorner
d7f6f0d2a7 build the ts bindings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-12-15 20:01:28 -08:00
dependabot[bot]
7cbd4423ee
Bump actions/upload-artifact from 5 to 6 (#8083)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  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>
2025-12-16 03:42:10 +00:00
Copilot
8cda0fc69d
Build native Z3 for x64 before generating docs (#8086)
* Initial plan

* Build Z3 for ubuntu x64 and invoke JS build scripts in docs workflow

- Modified docs.yml to build Z3 natively for ubuntu-latest x64 before documentation generation
- Removed default working directory to allow explicit working-directory per step
- Added step to build Z3 using python scripts/mk_make.py
- Kept emscripten setup as required for wasm build
- Modified mk_api_doc.py to invoke npm run build:ts and npm run build:wasm as described in src/api/js/README.md
- mk_api_doc.py now runs the full build process (TypeScript + wasm) before generating documentation

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

* Source emsdk environment before generating documentation

- Added source command to ensure emscripten tools are in PATH when mk_api_doc.py runs npm scripts
- This ensures emcc and other emscripten tools are available for npm run build:wasm

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

* Revert changes to mk_api_doc.py

- Removed npm run build:ts and npm run build:wasm calls from mk_api_doc.py
- Reverted to only calling npm run docs as before

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>
2025-12-16 03:41:27 +00:00
dependabot[bot]
dd15a279fd
Bump actions/download-artifact from 6 to 7 (#8082)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '7'
  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>
2025-12-16 02:06:22 +00:00
dependabot[bot]
17f231c287
Bump actions/cache from 4 to 5 (#8081)
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  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>
2025-12-16 02:04:48 +00:00
Copilot
042b6d92b1
Add GitHub Actions workflow to publish JavaScript/TypeScript API documentation (#8084)
* Initial plan

* Add GitHub Actions workflow to build and publish documentation

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

* Refine documentation workflow to use mk_api_doc.py and install doxygen

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

* Clarify documentation generation step name

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>
2025-12-15 22:57:46 +00:00
Copilot
901a1c3601
Fix DEL character (0x7F) not being escaped in string literals (#8080)
* Initial plan

* Fix DEL character encoding in string literals

Change condition from `ch >= 128` to `ch >= 127` to include the DEL
character (U+007F, 127) in escaped output. This ensures that the
non-printable DEL control character is properly escaped as \u{7f}
instead of being printed directly.

Also add test cases for DEL and other control characters.

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>
2025-12-15 22:23:49 +00:00
Chris Cowan
ebe8b5dea5
Typescript typedef and doc fixes take 2 (#8078)
* Fix Typescript typedef to allow `new Context`

* fix init() tsdoc example using nonexistent sat import
2025-12-15 20:31:20 +00:00
Nikolaj Bjorner
77cb70a082
Revert "Typescript typedef and doc fixes (#8073)" (#8077)
This reverts commit 6cfbcd19df.
2025-12-15 17:38:04 +00:00
Chris Cowan
6cfbcd19df
Typescript typedef and doc fixes (#8073)
* Fix Typescript typedef to allow `new Context`

* fix init() tsdoc example using nonexistent sat import
2025-12-15 17:03:41 +00:00
Ilana Shapiro
0076e3bf97
Search tree core resolution optimization (#8066)
* Add cube tree optimization about resolving cores recursively up the path, to prune. Also integrate asms into the tree so they're not tracked separately (#7960)

* draft attempt at optimizing cube tree with resolvents. have not tested/ran yet

* adding comments

* fix bug about needing to bubble resolvent upwards to highest ancestor

* fix bug where we need to cover the whole resolvent in the path when bubbling up

* clean up comments

* close entire tree when sibling resolvent is empty

* integrate asms directly into cube tree, remove separate tracking

* try to fix bug about redundant resolutions, merging close and try_resolve_upwards into once function

* separate the logic again to avoid mutual recursion

* Refactor search tree closure and resolution logic

Refactor close_with_core to simplify logic and remove unnecessary parameters. Update sibling resolvent computation and try_resolve_upwards for clarity.

* apply formatting

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

* Refactor close_with_core to use current node in lambda

* Fix formatting issues in search_tree.h

* fix build issues

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

* Update smt_parallel.cpp

* Change loop variable type in unsat core processing

* Change method to retrieve unsat core from root

---------

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-12-13 12:06:56 +00:00
Copilot
313be1ca1b
Implement Z3_optimize_translate for context translation (#8072)
* Initial plan

* Implement Z3_optimize_translate functionality

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

* Fix compilation errors and add tests for optimize translate

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

* Revert changes to opt_solver.cpp as requested

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>
2025-12-13 05:12:08 +00:00
Nikolaj Bjorner
f917005ee1 remove stale experimental code #8063
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-12-12 05:49:05 +00:00
Nikolaj Bjorner
175625f43c don't unfold recursive defs if there is an uninterpreted subterm, #7671
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-12-10 00:26:21 -08:00
Nikolaj Bjorner
c7f6cead9b disable preprocessing only after formulas are internalized 2025-12-08 18:40:57 -08:00
Nikolaj Bjorner
20d1357c17 allow parsing declared arrays without requiring explicit select
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-12-06 18:02:15 -08:00
Lev Nachmanson
52949f2d79 fix the build
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-12-03 06:49:00 -10:00
Copilot
595513611e
Disable C++98 compatibility warnings for Clang builds (#8060)
* Initial plan

* Disable C++98 compatibility warnings for Clang to fix vcpkg build freeze

Add -Wno-c++98-compat and -Wno-c++98-compat-pedantic flags to prevent
excessive warning output when building with clang-cl or when -Weverything
is enabled. These warnings are not useful for Z3 since it requires C++20.

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>
2025-12-03 08:27:25 -08:00
Lev Nachmanson
7de648ff81 remove unused *_signed_project() methods
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-12-02 18:46:16 -10:00
Nikolaj Bjorner
a5488cf6e7 fix #8054
inherit denominators when evaluating polynomials
2025-11-30 07:51:06 -08:00
Nikolaj Bjorner
3712d1e0f1 fix #8055 2025-11-29 15:39:50 -08:00
Nikolaj Bjorner
ab227c83b2 remove deprecated set_has_size
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-27 15:11:59 -08:00
Nikolaj Bjorner
8ba77dfc6b remove deprecated set_has_size
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-27 15:10:20 -08:00
Nikolaj Bjorner
682865df24 remove deprecated set_has_size
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-27 15:07:27 -08:00
Nikolaj Bjorner
449ce1a012 remove deprecated set_has_size
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-27 15:04:40 -08:00
Josh Berdine
aecf10b3ac
Fix _in vs _out def_API param for Z3_solver_get_levels (#8050)
Signed-off-by: Josh Berdine <josh@berdine.net>
2025-11-27 15:00:38 -08:00
Nikolaj Bjorner
f98fd2a137 refine givup conditions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-27 14:59:48 -08:00
Nikolaj Bjorner
482fa7dadf insert theory only once
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-27 10:34:01 -08:00
Nikolaj Bjorner
62b3668beb remove set cardinality operators from array theory. Make final-check use priority levels
Issue #7502 shows that running nlsat eagerly during final check can block quantifier instantiation.
To give space for quantifier instances we introduce two levels for final check such that nlsat is only applied in the second and final level.
2025-11-26 15:35:19 -08:00
Nikolaj Bjorner
28dc71c75e fix second byref to bool 2025-11-26 14:40:11 -08:00
Nikolaj Bjorner
ed8b92411e remove references to set_has_size 2025-11-26 13:57:24 -08:00
Nikolaj Bjorner
fab414a7ab use c_bool instead of c_int for sign 2025-11-26 13:55:06 -08:00
Nikolaj Bjorner
233184944c fix build warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-26 09:43:52 -08:00
Nikolaj Bjorner
8298302358 python type fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-26 09:35:07 -08:00
Nikolaj Bjorner
55fc9cb9e1 fix dotnet build errors
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-26 09:29:59 -08:00
Nikolaj Bjorner
d1272defeb fix warnings in nla_pp
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-25 21:48:23 -08:00
Nikolaj Bjorner
324fb2194b fix warnings in nra_solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-25 21:46:51 -08:00
Nikolaj Bjorner
1c3fb49878 port dotnet to use bool sorts from API
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-25 21:44:41 -08:00
Nikolaj Bjorner
15274cdf53 fix type for BoolPtr
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-25 21:15:51 -08:00
Nikolaj Bjorner
eecd052730 port to BoolPtr
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-25 21:08:43 -08:00
Nikolaj Bjorner
39e427a229 remove unused
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-25 21:06:11 -08:00
Nikolaj Bjorner
e178b9fc62 update java API code to work with boolean pointers
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-11-25 20:54:49 -08:00