3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-18 22:59:02 +00:00
Commit graph

16217 commits

Author SHA1 Message Date
Nikolaj Bjorner decaee83f3 move from justified_expr to dependent_expr by aligning datatypes 2025-01-22 11:46:10 -08:00
Michał Górny fc9ff946b7
use cmake from PyPI only when system executable is not available (#7514)
Rather than pulling `cmake` from PyPI unconditionally, add it to build
dependencies only if the system `cmake` executable cannot be found.
This eliminates an unnecessary dependency on systems featuring CMake,
and ensures that whenever possible, a downstream patched CMake version
is used that is more compatible with the system in question.
2025-01-21 14:39:19 -08:00
Nikolaj Bjorner d944779e18 move away from sets and into vectors for data associated with Boolean variables 2025-01-21 14:30:11 -08:00
Nikolaj Bjorner 92ad285951 use vector instead of indexed uint set for Boolean var occurrences
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-21 13:35:48 -08:00
Nikolaj Bjorner eebff13f8b don't store full use list of clauses to avoid space overhead
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-21 13:23:13 -08:00
Nikolaj Bjorner fb0eb029a8 use lifted bool 2025-01-21 09:13:38 -08:00
Clemens Eisenhofer 1553bae20c
Performance improvements for seq-sls (#7519)
* Improve length repair

* Fixed arguments

* Special case regex membership with constant string

* Trying hybrid eq-repair strategy

* Different heuristic

* Fixed stoi
2025-01-21 08:01:59 -08:00
Nikolaj Bjorner 3cdcd831b1 fix build breaks 2025-01-20 20:36:26 -08:00
Nikolaj Bjorner a3f7541719 fix #7517 2025-01-20 19:04:36 -08:00
Nikolaj Bjorner fb5834268e fix unit tests, add subsampling mode for false literals 2025-01-20 17:34:59 -08:00
Nikolaj Bjorner 22e4054674 add clausal lookahead to arithmetic solver as part of portfolio
have legacy qfbv-sls solver use nnf pre-processing. It relies on it for correctness of the score updates.
2025-01-20 16:16:46 -08:00
Nikolaj Bjorner a941f5ae84 reset m_conflict indicator on sls model 2025-01-15 20:56:44 -08:00
Nikolaj Bjorner 557c01a0e5 fix #7499 - add another way to avoid adding user-defined functions to models if user don't want it
- you can already do model.user_functions=false
- now you can also specify smtlib2_compliant (globally) and get smtlib2 behavior
2025-01-15 19:52:04 -08:00
Nikolaj Bjorner a5e1e7f5d2 set lookahead mode to default
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-15 19:10:25 -08:00
Nikolaj Bjorner 158dea575b add case for ite
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-15 19:07:18 -08:00
Nikolaj Bjorner eed3fa6d49 add case for ite
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-15 18:54:50 -08:00
Nikolaj Bjorner f422e26b3c add case for ite
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-15 18:53:26 -08:00
Nikolaj Bjorner 5365952796 fix #7510 2025-01-15 13:12:20 -08:00
Nikolaj Bjorner a84130e844 prepare update stack for Boolean lookaheads
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-15 12:33:31 -08:00
Nikolaj Bjorner 498c9a686b throw exceptions where sls lacks support
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-15 11:20:03 -08:00
Nikolaj Bjorner 5fec07a57e fix unit test
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-15 08:38:14 -08:00
Nikolaj Bjorner 878fd48819 fix compiler warning 2025-01-14 16:38:22 -08:00
Nikolaj Bjorner 11909cfdff allow a plateau mode 2025-01-14 16:38:12 -08:00
Nikolaj Bjorner 076d3dbf13 fix assertion violation in the code path where the simplifier throws a memout exception 2025-01-14 16:37:53 -08:00
Nikolaj Bjorner 31d4ba0009 re-introduce option to dump arithmetic lemmas to std-out 2025-01-14 13:54:56 -08:00
Nikolaj Bjorner 8515cebd19 add plateau option 2025-01-14 13:54:20 -08:00
Nikolaj Bjorner 648cf9602e fix uninitialized variable warnings 2025-01-14 13:54:05 -08:00
Lev Nachmanson 27cc928631 try m_fixed_var_eh
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-01-14 07:11:53 -10:00
Nikolaj Bjorner 8c5abdf818 Can's fix to relevancy propagation 2025-01-14 08:14:53 -08:00
Nikolaj Bjorner 89ed4d6c8b use monomial variable, not the fixed variable 2025-01-14 07:27:59 -08:00
Nikolaj Bjorner a08a3ee32b align reslimit with ddfw 2025-01-13 18:19:35 -08:00
Nikolaj Bjorner 3c5b8bd03d Update parray.h
deal with compiler warnings by initializing m_elem
2025-01-13 18:19:12 -08:00
Nikolaj Bjorner c01336553e move fixed variable propagation to nla_core/monomial_bounds 2025-01-13 18:18:53 -08:00
Nikolaj Bjorner f3e7c8c9df include QF_SNIA 2025-01-13 08:13:39 -08:00
Nikolaj Bjorner 943d881340 fixes to hybrid mode 2025-01-12 16:59:27 -08:00
Nikolaj Bjorner 9770c00592 adjust heuristic in random-inc-dec for finite domains
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-12 14:23:18 -08:00
Nikolaj Bjorner 97acf71d2d fixup registration with new terms during internalization
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-12 14:12:02 -08:00
Nikolaj Bjorner d3183fafc7 remove binspr experiment 2025-01-12 13:39:26 -08:00
Nikolaj Bjorner 8d2b9b41fd fix compiler warnings 2025-01-12 13:39:13 -08:00
Nikolaj Bjorner 85356c5548 enable propagation when there are changed columns
- to fix bug reported by Nikhil Swamy/F*
- deal with some compiler warnings by adding annotations
2025-01-12 13:30:31 -08:00
Nikolaj Bjorner 558758fcf1 another stab at fixing substring interval extraction combinatorics
- i is the offset into val_other. The valid offsets are 0... |val_other|-1.
- j is the length of the substring. It only makes sense to extract strings of length 1,... |val_other|-i
2025-01-12 11:14:17 -08:00
Nikolaj Bjorner fa22b646aa address some build warnings. 2025-01-12 10:18:11 -08:00
Nikolaj Bjorner b780b54574 optimization of sls-arith and fix build warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-12 09:49:48 -08:00
Nikolaj Bjorner 49dba337f7 fix ubuntu clang build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-11 20:02:31 -08:00
Nikolaj Bjorner c6f58c8bf7 updates to some_string_in_re per code review comments
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-11 17:47:27 -08:00
Clemens Eisenhofer c572fc2e4f
Regex membership (#7506)
* Make finding a word in the regex iterative

* Fixed gc problem
2025-01-11 17:41:37 -08:00
Nikolaj Bjorner 9a237d55ca fix misc build warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-11 17:41:24 -08:00
Nikolaj Bjorner d97bd48669 adding lookahead mode to arithmetic sls solver 2025-01-11 15:47:17 -08:00
Nikolaj Bjorner 847278fba8 adding global lookahead variant to sls arith solver 2025-01-09 16:47:33 -08:00
Nikolaj Bjorner f9ce41bd2b Update theory_lra.cpp 2025-01-08 15:41:08 -08:00
Nikolaj Bjorner 270c127407 sketch fixed variable callback mechanism 2025-01-08 12:50:46 -08:00
Nikolaj Bjorner c1a62d346c add missing return 2025-01-07 21:02:02 -08:00
Nikolaj Bjorner 1cb126f3dd remove assertion that doesn't build 2025-01-07 17:16:33 -08:00
Nikolaj Bjorner 2dd4faf598 sketch expr_inverter approach for eliminating unconstrained regex containment. 2025-01-07 16:53:57 -08:00
Nikolaj Bjorner ab9ea4e6e7 Add outline of elimination for regex membership constraints 2025-01-07 14:17:28 -08:00
Clemens Eisenhofer 5c60c6662c
Small seq-sls fixes (#7503)
* Calculation based on wrong update list

* Fixed regex problem
2025-01-07 09:26:00 -08:00
Nikolaj Bjorner e133a297ba change score for comparisons to use hamming distance
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-07 03:58:44 -08:00
Nikolaj Bjorner f77f259542 fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-06 18:12:12 -08:00
Nikolaj Bjorner b6f45bcd9f limit lookahead count to 20
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-06 18:06:00 -08:00
Nikolaj Bjorner aed0ad3505 limit lookahead count to 10
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-06 17:40:17 -08:00
Nikolaj Bjorner 59fad2b10a shave off bv test
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-06 17:25:30 -08:00
Nikolaj Bjorner e3e650a249 optimzie
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-06 15:36:20 -08:00
Nikolaj Bjorner 6787d87623 hoist update stack creation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-06 13:16:07 -08:00
Nikolaj Bjorner 5a5570ef4e remove type check in insert_update
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-06 11:12:08 -08:00
Nikolaj Bjorner 67827bfe56 restore nyi trace
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-06 08:37:14 -08:00
Nikolaj Bjorner a8b88b1850 fish for nyi
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-06 07:30:16 -08:00
Nikolaj Bjorner e45f186e67 make ite evaluation sensitive to using temporary Boolean assignment 2025-01-05 20:59:14 -08:00
Nikolaj Bjorner be5a16cc4d fixup scoring function for sle and ule
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-05 19:05:33 -08:00
Nikolaj Bjorner b3e410b5e4 fixup tabu checks to revised representation 2025-01-05 14:24:41 -08:00
Nikolaj Bjorner 71a4801c1d add shortcuts to convert to python objects in cases of numerals and strings 2025-01-05 12:17:38 -08:00
Nikolaj Bjorner cd41b21fa2 fix #7501 2025-01-05 11:59:59 -08:00
Nikolaj Bjorner f6e3c5ae79 re-enable fixed tabu
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-05 11:49:12 -08:00
Nikolaj Bjorner 6b17862886 bug-fixes to root-literal sls 2025-01-05 11:31:12 -08:00
Nikolaj Bjorner bed085934f bugfixes to bv-sls
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-04 20:57:17 -08:00
Nikolaj Bjorner 710f757495 fixup parameter handling for enabling bv-lookahead
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-04 15:57:02 -08:00
Nikolaj Bjorner 05f166f736 add py_value to selected classes in python bindings, add mode for input-assertion based lookahead solving 2025-01-04 13:40:49 -08:00
Nikolaj Bjorner 7e4681d836 enable rotation
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-03 11:49:39 -08:00
Nikolaj Bjorner 5a57636cd8 use native sdiv
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-03 10:56:15 -08:00
Nikolaj Bjorner bfcd75595e update test file
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-02 21:03:50 -08:00
Nikolaj Bjorner 1131d8dbe6 update test file
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-02 20:59:40 -08:00
Nikolaj Bjorner e9c656701d throttle costly flips by reset and random
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-02 20:39:41 -08:00
Nikolaj Bjorner 70f7feabc8 flip tabu on predicate being repaired, add model rotation code 2025-01-02 14:39:36 -08:00
Nikolaj Bjorner f67e1b8b8b only allow flip if it doesn't increase unsat score
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-02 08:39:43 -08:00
Nikolaj Bjorner 814d7f4d0a block flips to units 2025-01-01 16:01:58 -08:00
Nikolaj Bjorner cb61af0496 fix restart counters
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-01 14:34:09 -08:00
Nikolaj Bjorner 0128a1e067 check for bit-vector 2025-01-01 13:04:15 -08:00
Nikolaj Bjorner b12e72eaad extend lookhaead to work over nested terms with predicates 2025-01-01 12:37:39 -08:00
Nikolaj Bjorner 234bd402d3 take 1 on flip conditions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-12-31 12:16:54 -08:00
Nikolaj Bjorner b415b82625 take 1 on flip conditions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-12-31 11:44:38 -08:00
Nikolaj Bjorner a511b8bcf0 disable unit tests relying on changed functionality 2024-12-31 09:24:41 -08:00
Nikolaj Bjorner 3433b14dfa separate fixed from bits to allow updates that break tabu
- range and fixed restrictions on terms are based on constraints and can be violated temporarily.
- bv_eval currently does not allow updating over fixed bits which leads to non-termination. TODO
- lookahead only considers tabu when setting values of variables.
2024-12-30 17:47:18 -08:00
Nikolaj Bjorner 983763213b temper verbose output on tabu updates
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-12-30 12:36:47 -08:00
Nikolaj Bjorner 81678923a1 take into account for empty vars
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-12-30 12:15:27 -08:00
Clemens Eisenhofer 27cb81e7e6
Several changes to make sls terminate more often with length/extract operations (#7498)
* Fixed range regex

* Fix sls for str.at

* Added case for str.at

* Pad/Truncate string in sls extract/length to fit length constraints

* Guarded index check

* Added missing progressing cases in extraction

* Add padding if required

* Commented out debug output
2024-12-30 10:53:27 -08:00
Nikolaj Bjorner 4773bec975 check for null before debug assertions 2024-12-30 09:44:23 -08:00
Nikolaj Bjorner d8741b4aec have apply-update check can_set instead of caller 2024-12-30 08:56:09 -08:00
Nikolaj Bjorner bcf66f214f code cleanup, add comments 2024-12-30 08:51:49 -08:00
Nuno Lopes 322dcec531
Add 2 new API functions to get depth & groundness of exprs (#7479)
* Update api_ast.cpp

* Update z3_api.h
2024-12-30 08:49:43 -08:00
Dmitri f99e1ee581
Support BitVectors in the TypeScript Optimize API (#7480)
This is just a change in type declarations to allow calling minimize/maximize with BitVectors.
2024-12-30 08:49:30 -08:00
Clemens Eisenhofer 19c95f8561
Add new string repair heuristic (#7496)
* Fixed spurious counterexamples in seq-sls. Updates might not be identity mapping

* Removed debug code

* One check was missing

* Trying different update generation function

* Renamed function

* Added parameter to select string update function
2024-12-30 08:49:07 -08:00