3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-20 07:24:40 +00:00
Commit graph

1430 commits

Author SHA1 Message Date
Lev Nachmanson
4f93fc7b2a parameter eval order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-10-26 15:32:20 +01:00
Lev Nachmanson
5a3d33a615 parameter eval order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-10-26 15:32:20 +01:00
Lev Nachmanson
6146fe9ff8 parameter eval order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-10-26 15:32:20 +01:00
Lev Nachmanson
0a2328af1d parameter eval order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-10-26 15:32:20 +01:00
Lev Nachmanson
0fbf4010a5 param eval order 2025-10-26 15:32:20 +01:00
Lev Nachmanson
b22f4d8802 param eval 2025-10-26 15:32:20 +01:00
Lev Nachmanson
e113d39aa8 parameter evaluation order 2025-10-26 15:32:20 +01:00
Lev Nachmanson
28c625a170 parameter eval order 2025-10-26 15:32:19 +01:00
Lev Nachmanson
1aaf2f8448 param order evaluation 2025-10-26 15:32:19 +01:00
Lev Nachmanson
97bb035416 param order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-10-26 15:32:19 +01:00
Lev Nachmanson
74c28532f4 param order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-10-26 15:32:19 +01:00
Nikolaj Bjorner
f8b2268424 base implementation for cardinality constraints
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-26 10:35:37 +01:00
Nikolaj Bjorner
4068460a0f fix bogus axioms
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-24 13:35:41 +02:00
Nikolaj Bjorner
4c67a7271e extend proof logging
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-23 09:48:43 +02:00
Nikolaj Bjorner
b96624727d remove ad-hoc membership axioms, enable boundary point saturatino
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-23 09:42:25 +02:00
Nikolaj Bjorner
2e4402c8f3 add interpretations when there are ranges
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-20 23:21:30 +02:00
Nikolaj Bjorner
65f38eac16 fixup proof log annotations of rules
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-19 10:04:18 +02:00
Nikolaj Bjorner
6485808b49 adding proof hint output
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-18 19:26:19 +02:00
Copilot
eb10ab1633
Rename set.select to set.filter and OP_FINITE_SET_SELECT to OP_FINITE_SET_FILTER (#7989)
* Initial plan

* Rename set.select to set.filter and OP_FINITE_SET_SELECT to OP_FINITE_SET_FILTER

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>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-18 17:16:32 +02:00
Nikolaj Bjorner
7d585b5cfd fix build
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-18 13:30:46 +02:00
Nikolaj Bjorner
df62e5e9e6 add assume-eqs and extensionality
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-17 09:37:11 +02:00
Nikolaj Bjorner
b53e87dcba updated with immediate axioms
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-16 09:20:46 +02:00
Nikolaj Bjorner
f22ef75d3e update header
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-15 20:51:40 +02:00
Nikolaj Bjorner
ce60a8c5c5 fix merge issues
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-15 18:50:59 +02:00
Copilot
2e7f80f597
Add comprehensive algebraic rewrite rules to finite_set_rewriter (#7975)
* Initial plan

* Add comprehensive rewrite rules for finite set operations

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

* Add comprehensive unit tests for finite set rewrite rules

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

* Fix order of checks in mk_in to handle singleton same element case first

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>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-15 18:46:10 +02:00
kper
b24aec3c4c
Fixed tests by making methods public for finite sets (#7977) 2025-10-15 14:03:00 +02:00
Nikolaj Bjorner
f2260d959d test
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-14 18:01:41 +02:00
Nikolaj Bjorner
5dacb270f8 add to spec
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-14 17:33:19 +02:00
Copilot
75bac9c0ce
Implement finite_set_axioms.cpp and fix empty set constructor bug (#7973)
* Initial plan

* Add finite_set_axioms.cpp implementation and update CMakeLists.txt

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

* Fix finite_set_decl_plugin bug and complete implementation

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

* Use array select instead of function application for map and select axioms

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

* Simplify range assignment in finite_set_decl_plugin

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-14 17:16:29 +02:00
Copilot
c526c20cfc
Implement finite_set_rewriter with basic algebraic simplification rules (#7972)
* Initial plan

* Add finite_set_rewriter implementation with basic rewrite rules

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

* Fix finite_set_decl_plugin bug and complete implementation

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

* Revert finite_set_decl_plugin changes and disable difference rule

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

* Re-enable difference rule using set_sort directly

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

* Update finite_set_rewriter.h

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-14 17:13:18 +02:00
Lev Nachmanson
fc2c5c7f58 fix the order of parameter evaluation
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-10-13 21:01:22 +02:00
Lev Nachmanson
e1db3c0b17 fixing the order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-10-13 21:01:22 +02:00
Nikolaj Bjorner
7356b5ff88 outline finite_set theory solver
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-05 16:22:28 -07:00
Nikolaj Bjorner
97c8fb15fa update contract
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-05 14:15:08 -07:00
Nikolaj Bjorner
ad7b248956 add outline of axiomatization
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-05 14:04:51 -07:00
Nikolaj Bjorner
522be5d8c2 add stub for rewriter
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-10-04 18:14:43 -07:00
Lev Nachmanson
c43cb18e63 better rewriting
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-09-18 08:08:32 -07:00
Lev Nachmanson
37904b9e85 fix the parameter evaluation order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2025-09-18 07:52:13 -07:00
Nikolaj Bjorner
3c897b450f add rewrite rules for update-field under accessors and recognizers
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-09-14 06:14:42 -07:00
Nikolaj Bjorner
7005d04755 propagate mod over ite even if it hurts
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-09-02 18:39:29 -07:00
Nikolaj Bjorner
a382ddbd8a add rewrite for mod over negation, refine axioms for grobner quotients 2025-09-02 18:26:22 -07:00
Nikolaj Bjorner
6df8b39718 Update seq_rewriter.cpp 2025-08-14 14:40:26 -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
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
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