3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-25 09:41:19 +00:00
Commit graph

17762 commits

Author SHA1 Message Date
Lev Nachmanson
50d8a8049a t
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 20:55:58 -08:00
Lev Nachmanson
37a5df8d95 t
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 20:55:58 -08:00
Lev Nachmanson
602e7e906b t
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 20:55:58 -08:00
Lev Nachmanson
235c9b5d5a t
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 20:55:58 -08:00
Lev Nachmanson
5bb0bf94c9 t
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 20:55:58 -08:00
Lev Nachmanson
a9c84c7950 t
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 20:55:58 -08:00
Lev Nachmanson
b4850019f2 t
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 20:55:58 -08:00
Lev Nachmanson
4e38c440bd t
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 20:55:58 -08:00
Lev Nachmanson
b2a1293fe2 better state
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 20:55:58 -08:00
Lev Nachmanson
d93caa9c7f unsound lemma
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 20:55:58 -08:00
Nikolaj Bjorner
9fcede1285 check cancelation in invariant checker
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-02-18 20:55:57 -08:00
Nikolaj Bjorner
64439a8134 factor out coi, use polynomial elaboration for nlsat solver (#8039)
* factor out coi, use polynomial elaboration for nlsat solver

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

* remove unused functionality

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

---------

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-02-18 20:55:57 -08:00
Nikolaj Bjorner
0d11ec4d51 fix #8024
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-02-18 20:55:57 -08:00
Nikolaj Bjorner
f26b408cec strengthen filter for unknown by checking relevancy of parents #8022
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-02-18 20:55:57 -08:00
Nikolaj Bjorner
5e3b63d751 update package lock
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-02-18 20:55:57 -08:00
Nikolaj Bjorner
b443e90e24 add back statistics to smt-parallel
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-02-18 20:55:57 -08:00
Josh Berdine
2a785bf291 Make rcf is_rational and is_rational_function operations handle zero (#8025)
The representation of the zero rcf numeral is nullptr, and the is_rational
and is_rational_function operations are not expecting to be called with
nullptr. But there isn't a way to test for that in the API, other than
checking if Z3_rcf_num_to_string returns "0".

This patch adds a couple conditions so that is_rational and
is_rational_function operations handle zero. Maybe this isn't the desired
change. For instance, the is_zero operation could instead be exposed in the
API and preconditions added to the relevant operations.

Signed-off-by: Josh Berdine <josh@berdine.net>
2026-02-18 20:55:56 -08:00
Josh Berdine
8c0af7eb37 Add Z3_fpa_is_numeral to the API (#8026)
This is analogous to Z3_fpa_is_numeral_nan, Z3_fpa_is_numeral_inf, etc. and
can be needed to check that inputs are valid before calling those functions.

Signed-off-by: Josh Berdine <josh@berdine.net>
2026-02-18 20:55:56 -08:00
Josh Berdine
a74121a905 Add check that argument of Z3_is_algebraic_number is_expr (#8027)
To make sure that the `to_expr` cast is safe.

Signed-off-by: Josh Berdine <josh@berdine.net>
2026-02-18 20:55:56 -08:00
Nikolaj Bjorner
01362bf055 fix infinite loop in update function
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-02-18 20:55:56 -08:00
Nikolaj Bjorner
eecfb47330 comment out parameter check
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2026-02-18 20:55:56 -08:00
Nikolaj Bjorner
385dcb6de0 check propagate ineqs setting before applying simplifier 2026-02-18 20:55:56 -08:00
Copilot
0f12eb1ab3 Add missing string replace operations to Java API (#8011)
* Initial plan

* Add C API and Java bindings for str.replace_all, str.replace_re, str.replace_all_re

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

* Add test for new Java string replace operations

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

* Remove author field from test file header

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

* Delete examples/java/StringReplaceTest.java

---------

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-02-18 20:55:56 -08:00
Lev Nachmanson
1bd95a3453 add tests showing shortcomings of factorization
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 20:55:55 -08:00
Lev Nachmanson
07501f7c1f change logic NRA->ALL in log_lemma
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 20:55:55 -08:00
Nikolaj Bjorner
e38869e776 Revert "Add finite_set_value_factory for creating finite set values in model …" (#7985)
This reverts commit 05ffc0a77b.
2026-02-18 20:55:23 -08:00
Copilot
ef5dced019 Add finite_set_value_factory for creating finite set values in model generation (#7981)
* Initial plan

* Add finite_set_value_factory implementation

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

* Remove unused dl_decl_plugin variable and include

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

* Update copyright and add TODOs in finite_set_value_factory

Updated copyright information and added TODO comments for handling in finite_set_value_factory methods.

* Update copyright information in finite_set_value_factory.h

Updated copyright year from 2006 to 2025.

* Implement finite_set_value_factory using array_util to create singleton sets

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

* Simplify empty set creation in finite_set_value_factory

Refactor finite_set_value_factory to simplify empty set handling and remove array-specific logic.

* Change family ID for finite_set_value_factory

* Fix build error by restoring array_decl_plugin include and implementation

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

* Update finite_set_value_factory.h

* Add SASSERT for finite set check in factory

Added assertion to check if the sort is a finite set.

* Rename member variable from m_util to u

* Refactor finite_set_value_factory for value handling

* Use register_value instead of direct set insertion

Replaced direct insertion into set with register_value calls.

* Update finite_set_value_factory.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-02-18 20:53:44 -08:00
Lev Nachmanson
1e985ea96e enable optional failure in levelwise
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 13:14:59 -10:00
Lev Nachmanson
aff0a82914 disable control over what added in handle_nullified_poly
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 12:47:42 -10:00
copilot-swe-agent[bot]
366b197c2b Fix OCaml build error in solver_get_levels
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-02-18 22:21:58 +00:00
Lev Nachmanson
d1461de8a7 fix nlsat.cpp and enable control over what added in handle_nullified_poly
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 12:02:56 -10:00
Lev Nachmanson
799fc9e8c4 hook up a test
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 10:59:41 -10:00
Lev Nachmanson
d8f2b5ca01 add new polynomials from handle_nullified to m_todo
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 10:54:39 -10:00
Lev Nachmanson
df419c137d fix the test
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 07:47:16 -10:00
copilot-swe-agent[bot]
ac10af417a Add missing API methods to Go and OCaml bindings
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-02-18 17:28:12 +00:00
Lev Nachmanson
b60e0e0dd3 keep literals alive
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 07:23:22 -10:00
Lev Nachmanson
138828259a add a test with compute_conflict_explanation call
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 07:08:56 -10:00
Lev Nachmanson
05029c6f03 work on nl testing
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-18 06:33:52 -10:00
Lev Nachmanson
7aa1ba1905 a bug fix in levelwise with the section case, where a discriminant was not added, and adding new tests for levelwise
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-17 20:00:53 -10:00
Lev Nachmanson
af6d461b5e add tests for levelwise
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-17 14:46:21 -10:00
copilot-swe-agent[bot]
064122a123 Improve documentation for RatVal division by zero handling
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-02-18 00:44:40 +00:00
copilot-swe-agent[bot]
ae328dc006 Fix Priority 1 ASSERT_FAIL bugs - replace assertions with proper error handling
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-02-18 00:42:55 +00:00
Lev Nachmanson
269dba0525 add all coeffs ot a nullified polynomial to the projection
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-17 14:20:58 -10:00
Lev Nachmanson
a781f9c0a0 remove an obsolete m_fail and related from levelwise
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-17 14:11:16 -10:00
Lev Nachmanson
2d8e866e19 try replace fail with a adding partial derivatives
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-17 13:20:50 -10:00
Lev Nachmanson
9ef99f57e8 remove irrelevant order-sign invariance tracking from levelwise
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2026-02-17 11:28:26 -10:00
Nuno Lopes
282834f90f delete dead code 2026-02-17 21:18:48 +00:00
copilot-swe-agent[bot]
87812a99c0 Add safety comment and improve test documentation
- Add comment about safety of &levels[0] after n > 0 check
- Improve test documentation about SimpleSolver limitations
- Clarify that Units/NonUnits are more reliable for general use

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-02-17 16:43:12 +00:00
copilot-swe-agent[bot]
b799238fe8 Improve documentation clarity for new APIs
- Add notes to Trail/TrailLevels about SimpleSolver requirement
- Clarify congruence closure API documentation
- Update test example with more detailed comments
- Make it clear when these functions may not work

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-02-17 16:41:44 +00:00
copilot-swe-agent[bot]
4ccc28cc71 Optimize TrailLevels and improve documentation
- Fix NonUnits documentation for clarity
- Optimize TrailLevels to avoid double trail retrieval
- Use trail vector directly instead of rebuilding it
- Reduces memory allocations and reference counting overhead

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2026-02-17 16:40:09 +00:00