3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-14 12:51:48 +00:00
Commit graph

65 commits

Author SHA1 Message Date
Copilot
295dbc601d Eliminate unnecessary copies with std::move for ref-counted types (#8591) 2026-02-13 12:18:25 +00:00
Nikolaj Bjorner
62b3668beb remove set cardinality operators from array theory. Make final-check use priority levels
Issue #7502 shows that running nlsat eagerly during final check can block quantifier instantiation.
To give space for quantifier instances we introduce two levels for final check such that nlsat is only applied in the second and final level.
2025-11-26 15:35:19 -08: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
26ab0de8fc rename function 2025-04-04 18:40:15 -07:00
Nikolaj Bjorner
81ebd52f61 #7207
the utility that computes case analysis is brittle when the body of a function contains ite expressions that are not relevant to recursive unfolding.
The fold-rec occurrences that get inserted to harness large case splits work against throttling case generation: they get treated as recursive functions that have to be guarded.
2024-06-16 15:04:42 -07:00
Nikolaj Bjorner
fe8034731d fix #6501 2022-12-19 21:02:55 -08:00
Nikolaj Bjorner
cbc5b1f4f6 have theory_recfun use recursive function discriminator to control when it is enabled 2022-11-06 12:09:45 -08:00
Nikolaj Bjorner
6ed2b444b5 probably won't fix #6127
recfun decl plugin does not get copied so recursive functions are lost when cloning.
Fix is risky and use case is limited to threads + recursive definitions
2022-07-03 18:10:52 -07:00
Nikolaj Bjorner
637120ced5 Treat arguments to recursive functions as beta redexes
An argument to a recursive function would escape the scope of the function application when the recursive function definitions are unfolded. Therefore, such argument occurrences need not be considered for extensional equality / equality sharing.

This filter is mostly relevant for recursive functions that take a lambda expression as argument. Lambda expressions / arrays that occur in shared occurrences are checked for extensionality.
2022-06-14 09:51:06 -07:00
Nikolaj Bjorner
d09abdf58e fix #5771
Missing congruence closure enforcement on auxiliary guard predicates.
It diverges but is sound.
2022-01-14 15:46:40 -08:00
Nikolaj Bjorner
af2cc460a9 #5646 2021-11-03 08:53:48 -07:00
Nikolaj Bjorner
13da6a02a6 add handling of quantifiers #5612 2021-10-20 12:27:56 -04:00
Nikolaj Bjorner
2a8d00d815 fix #5378
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-07-06 00:04:16 +02:00
Nikolaj Bjorner
18143d8932 fix #5102 2021-03-15 01:01:33 -07:00
Nikolaj Bjorner
083d09aa81 fix #5016 2021-02-14 13:52:10 -08:00
Nikolaj Bjorner
83f4a006c6 wreckfun 2021-02-12 19:46:47 -08:00
Nikolaj Bjorner
657ed4db7a fix relevancy bug for recfun
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-30 07:19:57 -08:00
Nikolaj Bjorner
558233dd8e build fixes, add lazy push/pop state to avoid overhead on unused theories
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-17 00:13:46 -07:00
Nikolaj Bjorner
becf423c77
remove level of indirection for context and ast_manager in smt_theory (#4253)
* remove level of indirection for context and ast_manager in smt_theory

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* add request by #4252

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* move to def

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* int

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-08 16:46:03 -07:00
Nikolaj Bjorner
799b6131f2 avoid repeated internalization of lambda #4169
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-30 13:24:26 -07:00
Nikolaj Bjorner
c5550e4385 build 2020-04-28 13:18:16 -07:00
Nikolaj Bjorner
e3f712b3cf build 2020-04-28 13:00:56 -07:00
Nikolaj Bjorner
d37ebb8309 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-26 21:04:28 -07:00
Nikolaj Bjorner
c2e0491456 fix #4113
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-26 21:04:28 -07:00
Nikolaj Bjorner
95a78b2450
updates to seq and bug fixes (#4056)
* na

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fix #4037

* nicer output for skolem functions

* more overhaul of seq, some bug fixes

* na

* added offset_eq file

* na

* fix #4044

* fix #4040

* fix #4045

* updated ignore

* new rewrites for indexof based on #4036

* add shortcuts

* updated ne solver for seq, fix #4025

* use pair vectors for equalities that are reduced by seq_rewriter

* use erase_and_swap

* remove unit-walk

* na

* add check for #3200

* nits

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* name a type

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* remove fp check

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* remove unsound axiom instantiation for non-contains

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fix rewrites

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fix #4053

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fix #4052

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-22 13:18:55 -07:00
Nikolaj Bjorner
dde0c514fa warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-15 17:14:25 -07:00
Nikolaj Bjorner
f67077b7ff warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-15 17:13:02 -07:00
Nikolaj Bjorner
387964f508 fix #3960 fix #3959
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-14 06:30:54 -07:00
Nikolaj Bjorner
0f697830fc spelling
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-13 19:08:05 -07:00
Nikolaj Bjorner
fe7146d93b fix #3913 - change assumption tracking to be granular based on disabled guards
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-13 19:06:12 -07:00
Nikolaj Bjorner
db9d6d12fc fix #3836 remove unused and buggy hoist_cmul
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-11 15:27:18 -07:00
Nikolaj Bjorner
3b16f129bb fix #2803 2019-12-29 21:30:59 -08:00
Nikolaj Bjorner
cfb4d289b8 fix #2325
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-07-11 10:34:35 +01:00
Nikolaj Bjorner
4fb867a49c na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-04-01 11:57:07 -07:00
nilsbecker
17adecff68 fixing ci issues
fixing if condition
2019-02-25 19:10:47 +01:00
nilsbecker
6ee3941523 more cleanup 2019-02-23 12:08:08 +01:00
nilsbecker
28c03ed1de logging support for theory axioms 2019-02-21 19:29:35 +01:00
Nikolaj Bjorner
7016d94d59 fix #1956
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-20 11:30:44 -08:00
Nikolaj Bjorner
0f0287d129 prepare release notes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-28 17:42:16 -05:00
Nikolaj Bjorner
80acf8ed79 add recfuns to model
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-27 13:26:32 -05:00
Nikolaj Bjorner
c5cbf985ca na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-26 10:11:03 -05:00
Nikolaj Bjorner
67077d960e working with incremental depth
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-23 14:16:07 -07:00
Nikolaj Bjorner
aa6e1badf2 recfun
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-23 08:16:26 -07:00
Nikolaj Bjorner
66f2a7636b depth
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-22 04:59:51 -07:00
Nikolaj Bjorner
cd9c752834 guard
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-21 20:46:12 -07:00
Nikolaj Bjorner
b5676413e4 recfun
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-21 18:25:27 -07:00
Nikolaj Bjorner
6e41b853f7 remove case-pred and depth-limit classes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-21 12:25:57 -07:00
Nikolaj Bjorner
eb15f8249a fix backtrack
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-19 21:01:25 -07:00
Nikolaj Bjorner
2d4a5e0a5e n/a
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-18 18:07:04 -07:00
Nikolaj Bjorner
c0556b2f64 iterative deepening per recursive function
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-18 17:53:11 -07:00