3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-07 08:21:56 +00:00
Commit graph

20073 commits

Author SHA1 Message Date
Ilana Shapiro
8493c309ab resolve bug about not translating managers correctly for the second phase of the greedy cubing, and the frugal fallback 2025-08-10 19:33:19 -07:00
Nikolaj Bjorner
b7d5add9c4 Update RELEASE_NOTES.md 2025-08-10 14:24:15 -07:00
Ilana Shapiro
2169364b6d
Parallel solving (#7769)
* 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

* merge

* resolve bad bug about l2g and g2l translators using wrong global context. add some debug prints

* initial attempt at dynamically switching from greedy to frugal splitting strategy in return_cubes. need to test. also there is some bug where the threads take forever to cancel?

---------

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-10 13:32:40 -07:00
Ilana Shapiro
a9228f418a initial attempt at dynamically switching from greedy to frugal splitting strategy in return_cubes. need to test. also there is some bug where the threads take forever to cancel? 2025-08-08 19:40:28 -07:00
Ilana Shapiro
72757c471b resolve bad bug about l2g and g2l translators using wrong global context. add some debug prints 2025-08-08 14:48:43 -07:00
Lev Nachmanson
8598a74cca rename add_lcs to add_lc
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-08-08 11:02:30 -07:00
Lev Nachmanson
88293bf45b get the finest factorizations before project
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-08-08 11:02:30 -07:00
Nikolaj Bjorner
efb0bda885 remove ref to theory_str
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-07 21:21:35 -07:00
Nikolaj Bjorner
baa0588fbe remove automata from python build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-07 21:07:52 -07:00
Nikolaj Bjorner
fcd3a70c92 remove theory_str and classes that are only used by it 2025-08-07 21:05:12 -07:00
Nikolaj Bjorner
2ac1b24121 avoid interferring side-effects in function calls
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-07 14:40:07 -07:00
Nikolaj Bjorner
7ba967e136 fix java build for java bindings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-07 14:37:29 -07:00
Nikolaj Bjorner
0cefc926b0 register on_binding attribute
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-07 13:46:07 -07:00
Nikolaj Bjorner
d57dd6ef73 use jboolean in Native interface
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-07 13:11:11 -07:00
Nikolaj Bjorner
fa3d341b18 add on_binding callbacks across APIs
update release notes,
add to Java, .Net, C++
2025-08-07 12:55:50 -07:00
Lev Nachmanson
30830aae75 rename a Python file
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-08-07 08:33:04 -07:00
Lev Nachmanson
f5016b4433 remove a printout
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-08-07 08:33:04 -07:00
Lev Nachmanson
3eda3867d3 precalc parameters to define the eval order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-08-07 08:33:04 -07:00
Lev Nachmanson
eeb1c18aa4 more untangle params
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-08-07 08:33:04 -07:00
Lev Nachmanson
efa63db691 debug under defined calls
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-08-07 08:33:04 -07:00
Lev Nachmanson
d218e87f76 add python file
Signed-off-by: Lev Nachmanson <levnach@Levs-MacBook-Pro.local>
2025-08-07 08:33:04 -07:00
Nikolaj Bjorner
31a30370ac add Z3_solver_propagate_on_binding to ml callback declarations
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-07 05:53:59 -07:00
Nikolaj Bjorner
aad511d40b missing new closure
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-06 21:22:23 -07:00
Nikolaj Bjorner
b33f444545 add an option to register callback on quantifier instantiation
Suppose a user propagator encodes axioms using quantifiers and uses E-matching for instantiation. If it wants to implement a custom priority scheme or drop some instances based on internal checks it can register a callback with quantifier instantiation
2025-08-06 21:11:55 -07:00
Nikolaj Bjorner
d4a4dd6cc7 add arithemtic saturation 2025-08-06 21:11:54 -07:00
Nuno Lopes
b1ab695eb6
fix #7603: race condition in Ctrl-C handling (#7755)
* fix #7603: race condition in Ctrl-C handling

* fix race in cancel_eh

* fix build
2025-08-06 14:27:28 -07:00
Ilana Shapiro
870729b2bd merge 2025-08-06 13:27:23 -07:00
Ilana Shapiro
445339d2d4 merge 2025-08-06 12:22:38 -07:00
Nikolaj Bjorner
4bb139435a simplify output
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-06 10:51:45 -07:00
Nikolaj Bjorner
9dd8221f2c updates
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-06 10:05:38 -07:00
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
Ilana Shapiro
58e312190d 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 2025-08-05 22:27:25 -07:00
Ilana Shapiro
723de8d2a4 debug infinite recursion and split cubes on existing split atoms that aren't in the cube 2025-08-05 18:45:09 -07:00
Ilana Shapiro
d0bf7119a2 Merge branch 'parallel-solving' of github.com:ilanashapiro/z3 into parallel-solving 2025-08-05 10:17:38 -07:00
Ilana Shapiro
cdcc89ac7c merge 2025-08-05 10:17:34 -07:00
Ilana Shapiro
2fce048c61 comments 2025-08-05 10:15:06 -07:00
Nikolaj Bjorner
9b060cace3 updates
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-05 10:05:22 -07:00
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
Ilana Shapiro
0b21376d61
Merge branch 'Z3Prover:master' into parallel-solving 2025-08-05 09:05:40 -07:00
Ilana Shapiro
3982b291a3 chipping away at the new code structure 2025-08-04 22:56:38 -07:00
Copilot
7a8ba4b474
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>
2025-08-04 20:58:42 -07:00
Ilana Shapiro
e520a42a05 merge 2025-08-04 15:10:43 -07:00
Ilana Shapiro
cc8bc84f78 Merge branch 'parallel-solving' of github.com:ilanashapiro/z3 into parallel-solving 2025-08-04 11:55:00 -07:00
Ilana Shapiro
7df95c0f61 merge 2025-08-04 11:54:58 -07:00
Ilana Shapiro
c9c3548c46
Merge branch 'Z3Prover:master' into parallel-solving 2025-08-04 11:54:34 -07:00
Nikolaj Bjorner
0ac6abf3a8 pair programming
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-04 11:46:28 -07:00
Nikolaj Bjorner
03f2e6775c pair programming
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-04 11:45:56 -07:00
Nikolaj Bjorner
d190c83984 snapshot
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-04 09:50:53 -07:00
Ilana Shapiro
d593bb89f3
Parallel solving (#7756)
* 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

* process cubes as lists of individual lits

---------

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>
2025-08-04 09:48:10 -07:00
Nikolaj Bjorner
a0a06704dc
Merge branch 'ilana' into parallel-solving 2025-08-04 09:47:53 -07:00