3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-28 16:29:50 +00:00
Commit graph

1400 commits

Author SHA1 Message Date
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
Nikolaj Bjorner
a15e4ad1e3 #7673
perf fix
2025-06-12 15:16:28 -07:00
Nikolaj Bjorner
e2cf4d99fb add better bit-blasting for rotation #7673 2025-06-06 12:30:00 +02:00
LeeYoungJoon
0a93ff515d
Centralize and document TRACE tags using X-macros (#7657)
* Introduce X-macro-based trace tag definition
- Created trace_tags.def to centralize TRACE tag definitions
- Each tag includes a symbolic name and description
- Set up enum class TraceTag for type-safe usage in TRACE macros

* Add script to generate Markdown documentation from trace_tags.def
- Python script parses trace_tags.def and outputs trace_tags.md

* Refactor TRACE_NEW to prepend TraceTag and pass enum to is_trace_enabled

* trace: improve trace tag handling system with hierarchical tagging

- Introduce hierarchical tag-class structure: enabling a tag class activates all child tags
- Unify TRACE, STRACE, SCTRACE, and CTRACE under enum TraceTag
- Implement initial version of trace_tag.def using X(tag, tag_class, description)
  (class names and descriptions to be refined in a future update)

* trace: replace all string-based TRACE tags with enum TraceTag
- Migrated all TRACE, STRACE, SCTRACE, and CTRACE macros to use enum TraceTag values instead of raw string literals

* trace : add cstring header

* trace : Add Markdown documentation generation from trace_tags.def via mk_api_doc.py

* trace : rename macro parameter 'class' to 'tag_class' and remove Unicode comment in trace_tags.h.

* trace : Add TODO comment for future implementation of tag_class activation

* trace : Disable code related to tag_class until implementation is ready (#7663).
2025-05-28 14:31:25 +01:00
Nikolaj Bjorner
b502126ebc fix #7634 2025-04-27 23:57:57 -07:00
Nikolaj Bjorner
e86a918ae7 turn on ite simplification by default 2025-03-26 11:30:08 -07:00
Nikolaj Bjorner
8368094618 fix indentation 2025-03-25 21:27:38 -07:00
Nikolaj Bjorner
4fd6ba442a replace costly ite reduction by disjointnes check 2025-03-25 21:15:03 -07:00
Nikolaj Bjorner
392bc166a3 optimize bool rewriter 2025-03-25 14:07:52 -07:00
Nikolaj Bjorner
29712503a0 add option to rewrite ite value trees 2025-03-25 11:09:56 -07:00
Nikolaj Bjorner
99ec42c0d7 additional simplifications to seq 2025-03-19 08:57:31 -10:00
Nikolaj Bjorner
80f00f191a fix #7572 and fix #7574
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-03-07 10:46:29 -08:00
Nikolaj Bjorner
3e5abef145 fix #7549 2025-02-18 21:38:06 -08:00
Nikolaj Bjorner
fb0eb029a8 use lifted bool 2025-01-21 09:13:38 -08:00
Clemens Eisenhofer
1553bae20c
Performance improvements for seq-sls (#7519)
* Improve length repair

* Fixed arguments

* Special case regex membership with constant string

* Trying hybrid eq-repair strategy

* Different heuristic

* Fixed stoi
2025-01-21 08:01:59 -08:00
Nikolaj Bjorner
648cf9602e fix uninitialized variable warnings 2025-01-14 13:54:05 -08:00
Nikolaj Bjorner
b780b54574 optimization of sls-arith and fix build warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-12 09:49:48 -08:00
Nikolaj Bjorner
c6f58c8bf7 updates to some_string_in_re per code review comments
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-11 17:47:27 -08:00
Clemens Eisenhofer
c572fc2e4f
Regex membership (#7506)
* Make finding a word in the regex iterative

* Fixed gc problem
2025-01-11 17:41:37 -08:00
Nikolaj Bjorner
c1a62d346c add missing return 2025-01-07 21:02:02 -08:00
Nikolaj Bjorner
1cb126f3dd remove assertion that doesn't build 2025-01-07 17:16:33 -08:00
Nikolaj Bjorner
2dd4faf598 sketch expr_inverter approach for eliminating unconstrained regex containment. 2025-01-07 16:53:57 -08:00
Nikolaj Bjorner
f67e1b8b8b only allow flip if it doesn't increase unsat score
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-01-02 08:39:43 -08:00
Nikolaj Bjorner
3433b14dfa separate fixed from bits to allow updates that break tabu
- range and fixed restrictions on terms are based on constraints and can be violated temporarily.
- bv_eval currently does not allow updating over fixed bits which leads to non-termination. TODO
- lookahead only considers tabu when setting values of variables.
2024-12-30 17:47:18 -08:00
Nikolaj Bjorner
6ea68310c9 fix stack overflow regression in bool_rewriter
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-12-28 18:21:59 -08:00
Nikolaj Bjorner
3526d03cca remove VERIFY output
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2024-12-28 18:01:32 -08:00
Nikolaj Bjorner
f41134d1b6 h
- avoid more platform specific behavior when using m_mk_extract,
- rename mk_eq in bool_rewriter to mk_eq_plain to distinguish it from mk_eq_rw
- rework bv_lookahead to be more closely based on sls_engine, which has much better heuristic behavior than attempt 1.
2024-12-28 17:40:25 -08:00
Nikolaj Bjorner
c9cae77304 update regex membership to be slightly better tuned 2024-12-25 10:56:16 -08:00
Nikolaj Bjorner
85d3041a80 avoid platform non-reproducibility due to argument evaluation ordering 2024-12-23 17:13:51 -08:00
Nikolaj Bjorner
23c4728d68 remove some platform specific behavior 2024-12-23 16:28:10 -08:00
Nikolaj Bjorner
3b2315d771 remove verbose output 2024-12-21 15:52:57 +01:00