3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-18 09:12:16 +00:00
Commit graph

3452 commits

Author SHA1 Message Date
Nikolaj Bjorner
6df8b39718 Update seq_rewriter.cpp 2025-08-14 14:40:26 -07:00
Nikolaj Bjorner
237891c901 updates to euf completion 2025-08-13 10:24:46 -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
d4a4dd6cc7 add arithemtic saturation 2025-08-06 21:11:54 -07:00
Nikolaj Bjorner
b9b3e0d337 Update euf_completion.cpp
try out restricting scope of equalities added by instantation
2025-08-03 14:17:00 -07:00
Nikolaj Bjorner
d8fafd8731 Update euf_ac_plugin.cpp
include reduction rules in forward simplification
2025-08-03 14:17:00 -07:00
Nikolaj Bjorner
f77123c13c enable passive, add check for bloom up-to-date 2025-07-27 17:18:23 -07:00
Nikolaj Bjorner
67695b4cd6 updates to ac-plugin
fix incrementality bugs by allowing destructive updates during saturation at the cost of redoing saturation after a pop.
2025-07-27 13:38:37 -07:00
Nikolaj Bjorner
e3139d4e03 #7750
add pre-processing simplification
2025-07-27 13:38:36 -07:00
Nikolaj Bjorner
ad2934f8cf fix unsound len(substr) axiom
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-07-26 15:38:25 -07:00
Nikolaj Bjorner
1f8b08108c #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.
2025-07-26 14:02:34 -07:00
Nikolaj Bjorner
8e1a528796 ensure atomic constraints are processed by arithmetic solver 2025-07-26 12:52:48 -07:00
Nikolaj Bjorner
0528c86905 fix #7745
axioms for len(substr(...)) escaped due to nested rewriting
2025-07-26 12:30:42 -07:00
Nikolaj Bjorner
95be0cf9ba remove verbose output
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-07-25 20:22:52 -07:00
Nikolaj Bjorner
e54928679f add option to selectively disable variable solving for only ground expressions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-07-25 19:15:20 -07:00
Nikolaj Bjorner
01633f7ce2 respect smt configuration parameter in elim_unconstrained simplifier
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-07-24 16:22:08 -07:00
Nikolaj Bjorner
a6c51df144 ensure solve_eqs is fully disabled when smt.solve_eqs=false, #7743
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-07-24 14:54:15 -07:00
Nikolaj Bjorner
a2f17420ff moving to active/passive division
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-07-23 15:22:16 -07:00
Nikolaj Bjorner
fc51067207 compile warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-07-21 16:20:08 -07:00
Nikolaj Bjorner
1d1a01c6cc update logging 2025-07-21 16:14:14 -07:00
Nikolaj Bjorner
dbcbc6c3ac revamp ac plugin and plugin propagation 2025-07-21 07:35:06 -07:00
Nikolaj Bjorner
b983524afc add diagnostics instrumentation to mam 2025-07-12 17:52:06 -07:00
Nikolaj Bjorner
383f4db14c update pretty printer to show lambdas 2025-07-12 17:51:37 -07:00
Nikolaj Bjorner
47a2376172 bugfix to ac-plugin
use list for "shared" should be indices into an array of shared expressions, not the monomial index.
2025-07-12 17:51:19 -07:00
Nikolaj Bjorner
0995928f6e wip - throttle AC completion, enable congruences over bound bodies
- AC completion which is exposed as an option to the new congruence closure core used roots of E-Graph which gets ordering of monomials out of sync.
- Added injective function handling to AC completion
- Move to model where all equations, also unit to unit are in completion
- throw in first level bound bodies into the E-graph to enable canonization on them.
2025-07-11 12:48:27 +02:00
Nikolaj Bjorner
35b1d09425 working on ho-matcher 2025-07-08 04:50:43 +02:00
Nikolaj Bjorner
195f3c9110 update build dependencies 2025-07-07 16:50:35 +02:00
Nikolaj Bjorner
0c5b0c3724 turn on ho-matcher for completion 2025-07-07 14:08:51 +02:00
Nikolaj Bjorner
1b3c3c2716 initial pattern abstraction and move matching to src 2025-07-06 00:53:46 -07:00
Nikolaj Bjorner
2d1a42d53f fixes to ho-matcher 2025-07-05 16:24:45 -07:00
Nikolaj Bjorner
bb100a40d5 c is non-null 2025-07-02 10:57:54 -07:00
Copilot
75678fc2c2
Fix O(n²) performance issue in CLI datatype declaration processing (#7712)
* Initial plan

* Implement batch initialization fix for O(n²) datatype performance issue

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

* Fix the real O(n²) bottleneck with lazy hash table for constructor name lookups

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

* Optimize get_constructor_by_name: use func_decl* parameter, add linear search optimization for small datatypes, and ensure non-null postcondition

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-07-02 09:54:36 -07:00
Nikolaj Bjorner
8de80e666b #7710
partial fix
2025-07-01 14:23:23 -07:00
Nikolaj Bjorner
a73e244db4 nits 2025-06-30 08:37:39 -07:00
Nikolaj Bjorner
98043873d0 add -> as another array sort constructor
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-06-22 21:35:23 -07:00
Nikolaj Bjorner
b2f01706be euf_completion with AC: add first cut of AC matching for top-level, add plugins and fix shared expression rewriting in ac-plugin 2025-06-16 11:46:03 -07:00
Nikolaj Bjorner
bc312768c8 remove dependency on pattern inference
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-06-15 14:07:50 -07:00
Nikolaj Bjorner
cb22cdc98f remove dependency on pattern inference
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-06-15 14:00:19 -07:00
Nikolaj Bjorner
20ddfc7795 sketch possible AC functionality 2025-06-15 13:49:19 -07:00
Nikolaj Bjorner
f932d480a0 use propagation queues and hash-tables to schedule bindings 2025-06-15 13:49:18 -07:00
Nikolaj Bjorner
93d5e3f28e use mk_ite utility instead of custom local function
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-06-12 16:10:08 -07:00
Nikolaj Bjorner
a2ad90cba1 Update bit_blaster_tpl_def.h 2025-06-12 16:07:28 -07:00
Nikolaj Bjorner
a15e4ad1e3 #7673
perf fix
2025-06-12 15:16:28 -07:00
Nikolaj Bjorner
e018b024c5 adding proofs to euf-completion 2025-06-12 11:31:55 -07:00
Nikolaj Bjorner
423930dbad missing files 2025-06-10 16:31:13 -07:00
Nikolaj Bjorner
b665c99d06 add missing dependencies
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-06-09 13:05:09 -07:00
Nikolaj Bjorner
c387b20ac6 move smt params to params directory, update release.yml 2025-06-09 10:47:22 -07:00
Nikolaj Bjorner
9d35a8c702 updates to euf-completion to 2025-06-07 15:39:31 -07:00
Nikolaj Bjorner
1cd162203d make rule processing fully incremental 2025-06-06 20:45:54 +02:00
Nikolaj Bjorner
d33d6ebe83 handle build warnings 2025-06-06 15:13:31 +02:00