3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-17 00:32:16 +00:00
z3/src/api
Ilana Shapiro aa5d833b38
Parallel solving (#7758)
* very basic setup

* ensure solve_eqs is fully disabled when smt.solve_eqs=false, #7743

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

* respect smt configuration parameter in elim_unconstrained simplifier

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

* indentation

* add bash files for test runs

* add option to selectively disable variable solving for only ground expressions

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

* remove verbose output

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

* fix #7745

axioms for len(substr(...)) escaped due to nested rewriting

* ensure atomic constraints are processed by arithmetic solver

* #7739 optimization

add simplification rule for at(x, offset) = ""

Introducing j just postpones some rewrites that prevent useful simplifications. Z3 already uses common sub-expressions.
The example highlights some opportunities for simplification, noteworthy at(..) = "".
The example is solved in both versions after adding this simplification.

* fix unsound len(substr) axiom

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

* FreshConst is_sort (#7748)

* #7750

add pre-processing simplification

* Add parameter validation for selected API functions

* updates to ac-plugin

fix incrementality bugs by allowing destructive updates during saturation at the cost of redoing saturation after a pop.

* enable passive, add check for bloom up-to-date

* add top-k fixed-sized min-heap priority queue for top scoring literals

* set up worker thread batch manager for multithreaded batch cubes paradigm, need to debug as I am getting segfault still

* fix bug in parallel solving batch setup

* fix bug

* allow for internalize implies

* disable pre-processing during cubing

* debugging

* remove default constructor

* remove a bunch of string copies

* Update euf_ac_plugin.cpp

include reduction rules in forward simplification

* Update euf_completion.cpp

try out restricting scope of equalities added by instantation

* Update smt_parallel.cpp

Drop non-relevant units from shared structures.

* process cubes as lists of individual lits

* merge

* Add support for Algebraic Datatypes in JavaScript/TypeScript bindings (#7734)

* Initial plan

* Add datatype type definitions to types.ts (work in progress)

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

* Complete datatype type definitions with working TypeScript compilation

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

* Implement core datatype functionality with TypeScript compilation success

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

* Complete datatype implementation with full Context integration and tests

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>

* chipping away at the new code structure

---------

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Co-authored-by: humnrdble <83878671+humnrdble@users.noreply.github.com>
Co-authored-by: Nuno Lopes <nuno.lopes@tecnico.ulisboa.pt>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
2025-08-05 09:06:36 -07:00
..
c++ Fixed bug in UP (#7545) 2025-02-04 08:41:28 -08:00
dll Tabs, formatting. 2017-09-17 14:54:09 +01:00
dotnet Add assert_and_track support to Optimize class in .NET binding (#7437) 2024-10-26 01:33:09 -07:00
java spacing 2025-04-09 20:24:09 -07:00
js Parallel solving (#7758) 2025-08-05 09:06:36 -07:00
julia C API now used by Julia. (#7387) 2024-09-24 15:17:00 +01:00
mcp remove non-working ts mcp server, settle with python variant 2025-04-18 10:10:12 -07:00
ml Update on building OCaml binding with CMake (#7698) 2025-06-27 17:55:58 -07:00
python fixed-size min-heap for tracking top-k literals (#7752) 2025-07-28 19:54:01 -07:00
api_algebraic.cpp Use nullptr consistently instead of 0 or NULL. 2022-08-01 14:24:32 +03:00
api_arith.cpp add abs function to API 2024-05-09 20:54:39 -07:00
api_array.cpp Add Z3_get_array_arity (#7598) 2025-03-28 14:42:51 -07:00
api_ast.cpp fixed-size min-heap for tracking top-k literals (#7752) 2025-07-28 19:54:01 -07:00
api_ast_map.cpp remove a few string copies 2023-12-20 16:55:09 +00:00
api_ast_map.h booyah 2020-07-04 15:56:30 -07:00
api_ast_vector.cpp remove '#include <iostream>' from headers and from unneeded places 2022-06-17 14:10:19 +01:00
api_ast_vector.h Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01:00
api_bv.cpp fix #7572 and fix #7574 2025-03-07 10:46:29 -08:00
api_config_params.cpp fix #7622 2025-04-17 11:05:49 -07:00
api_context.cpp Fix build when Z3_API macro is non-empty (#7553) 2025-02-13 08:46:08 -08:00
api_context.h fixed-size min-heap for tracking top-k literals (#7752) 2025-07-28 19:54:01 -07:00
api_datalog.cpp api: avoid some string copies when using mk_external_string 2024-12-28 09:42:54 +00:00
api_datalog.h move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
api_datatype.cpp Add Z3_is_recursive_datatype_sort to the API (#7615) 2025-04-08 14:36:57 -07:00
api_fpa.cpp remove a few string copies 2023-12-20 16:55:09 +00:00
api_goal.cpp fix #7609 2025-04-04 18:40:15 -07:00
api_goal.h Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01:00
api_log.cpp api: avoid some string copies when using mk_external_string 2024-12-28 09:42:54 +00:00
api_model.cpp Remove vestiges of old ml api (#7597) 2025-03-27 16:41:31 -07:00
api_model.h Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01:00
api_numeral.cpp Note that Z3_get_numeral_small is essentially redundant (#7599) 2025-03-29 10:02:32 -07:00
api_opt.cpp api: avoid some string copies when using mk_external_string 2024-12-28 09:42:54 +00:00
api_params.cpp api: avoid some string copies when using mk_external_string 2024-12-28 09:42:54 +00:00
api_parsers.cpp 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
api_pb.cpp call it data instead of c_ptr for approaching C++11 std::vector convention. 2021-04-13 18:17:35 -07:00
api_polynomial.cpp remove virtual destructor from api::pmanager 2018-07-09 10:37:26 +01:00
api_polynomial.h remove a hundred implicit constructors/destructors 2021-05-23 14:25:01 +01:00
api_qe.cpp filter out terms that are not solved 2025-04-30 09:40:45 -07:00
api_quant.cpp Fix build when Z3_API macro is non-empty (#7553) 2025-02-13 08:46:08 -08:00
api_rcf.cpp api: avoid some string copies when using mk_external_string 2024-12-28 09:42:54 +00:00
api_seq.cpp initial warppers for seq-map/seq-fold 2024-05-09 14:52:49 -07:00
api_solver.cpp filter out terms that are not solved 2025-04-30 09:40:45 -07:00
api_solver.h add API for creating and attaching simplifiers 2023-01-31 17:06:03 -08:00
api_special_relations.cpp remove '#include <iostream>' from headers and from unneeded places 2022-06-17 14:10:19 +01:00
api_stats.cpp fix infinite loop in internalize 2022-09-14 11:50:53 +01:00
api_stats.h Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01:00
api_tactic.cpp api: avoid some string copies when using mk_external_string 2024-12-28 09:42:54 +00:00
api_tactic.h add API for creating and attaching simplifiers 2023-01-31 17:06:03 -08:00
api_util.h fixed-size min-heap for tracking top-k literals (#7752) 2025-07-28 19:54:01 -07:00
CMakeLists.txt list euf dependency in api cmakefile 2025-05-07 15:47:03 -07:00
z3.h z3.h: Don't include stdio.h (#7014) 2023-11-24 16:46:32 +01:00
z3_algebraic.h fix grouping for latest doxygen (#5626) 2021-10-27 23:46:31 +02:00
z3_api.h #7667 - add API documentation 2025-05-30 11:05:51 +01:00
z3_ast_containers.h fix grouping for latest doxygen (#5626) 2021-10-27 23:46:31 +02:00
z3_fixedpoint.h Added function to select the next variable to split on (User-Propagator) (#6096) 2022-06-19 10:49:25 -07:00
z3_fpa.h docs: More intra-doc linking, bit of formatting. (#6963) 2023-10-25 10:07:03 -07:00
z3_logger.h Make sure all headers do #pragma once. (#6188) 2022-07-23 10:41:14 -07:00
z3_macros.h Make sure all headers do #pragma once. (#6188) 2022-07-23 10:41:14 -07:00
z3_optimization.h Add initial value setting API for solver and optimize contexts and update related function signatures 2024-09-18 16:18:47 +03:00
z3_polynomial.h fix grouping for latest doxygen (#5626) 2021-10-27 23:46:31 +02:00
z3_private.h remove '#include <iostream>' from headers and from unneeded places 2022-06-17 14:10:19 +01:00
z3_rcf.h Add accessors for RCF numeral internals (#7013) 2023-11-23 17:54:23 +01:00
z3_replayer.cpp Centralize and document TRACE tags using X-macros (#7657) 2025-05-28 14:31:25 +01:00
z3_replayer.h remove '#include <iostream>' from headers and from unneeded places 2022-06-17 14:10:19 +01:00
z3_spacer.h add projection with witnesses 2024-11-27 10:26:34 -08:00
z3_v1.h booyah 2020-07-04 15:56:30 -07:00