3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-16 16:27:11 +00:00
z3/src
Ilana Shapiro 5700e3dfe4
Parallel solving (#7759)
* 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

* comments

* debug infinite recursion and split cubes on existing split atoms that aren't in the cube

* share lemmas, learn from unsat core, try to debug a couple of things, there was a subtle bug that i have a hard time repro'ing

---------

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-06 01:27:54 -07:00
..
ackermannization Centralize and document TRACE tags using X-macros (#7657) 2025-05-28 14:31:25 +01:00
api Parallel solving (#7758) 2025-08-05 09:06:36 -07:00
ast Parallel solving (#7758) 2025-08-05 09:06:36 -07:00
cmd_context Centralize and document TRACE tags using X-macros (#7657) 2025-05-28 14:31:25 +01:00
math fixed-size min-heap for tracking top-k literals (#7752) 2025-07-28 19:54:01 -07:00
model Centralize and document TRACE tags using X-macros (#7657) 2025-05-28 14:31:25 +01:00
muz move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
nlsat use usize to suppress the data loss warnings 2025-07-02 14:42:55 -07:00
opt move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
params fixed-size min-heap for tracking top-k literals (#7752) 2025-07-28 19:54:01 -07:00
parsers Centralize and document TRACE tags using X-macros (#7657) 2025-05-28 14:31:25 +01:00
qe move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
sat revamp ac plugin and plugin propagation 2025-07-21 07:35:06 -07:00
shell move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
smt Parallel solving (#7759) 2025-08-06 01:27:54 -07:00
solver Parallel solving (#7758) 2025-08-05 09:06:36 -07:00
tactic fix #7725 - proofs are only possible if context was created with proofs enabled 2025-07-12 09:14:23 +02:00
test turn on ho-matcher for completion 2025-07-07 14:08:51 +02:00
util Parallel solving (#7758) 2025-08-05 09:06:36 -07:00
CMakeLists.txt move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00