3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-09 17:31:57 +00:00
Commit graph

61 commits

Author SHA1 Message Date
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
c6cd25c822 mico-tuning 2024-10-08 09:24:52 -07:00
Nuno Lopes
3586b613f7 remove default destructors 2024-10-02 22:20:12 +01:00
Nuno Lopes
737c2208fa delete more default constructors
reduces code size by 0.1%
2024-09-23 12:59:04 +01:00
Nuno Lopes
a62fede64b remove a few default constructors 2024-09-23 08:17:58 +01:00
Nikolaj Bjorner
ef86f5fcc2 add partial evaluation cases for algebraic data-types for recursive functions. 2024-06-16 16:07:16 -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
Bruce Mitchener
50e0fd3ba6
Use noexcept more. (#7058) 2023-12-16 12:14:53 +00:00
Nikolaj Bjorner
f17691715b make default argument to ensure_def and mk_def explicit
- insert also macro definitions into models
2023-05-02 12:18:31 -07:00
Nikolaj Bjorner
21362c0b98 make case-def and recfun-num-rounds re-parsable for logging 2023-01-04 15:00:25 -08:00
Nikolaj Bjorner
5073959ae0 add macro attribute 2022-12-04 03:53:29 -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
8ff1e44a95 add discriminator to whether context contains recursive functions to avoid enabling recursive function solver when there are just macros 2022-11-06 11:58:21 -08:00
Nikolaj Bjorner
36d76a5bb2 fix #6304
Conditionals are used to guard unfolding of recursive functions.
This is, as shown in #6304, incompatible with the case where recursive functions are used inside if-then-else guards.
We address this by disabling if-conditions as guards if they contain a recursive definition.
The approach is simplistic: if a recursive function, defined prior (not mutually recursive) is used in a guard it should be fine and the condition can guard the current recursive unfolding.
2022-08-30 09:50:58 -07:00
Nikolaj Bjorner
0353fc38ff fix #6127 again
this time adding inheritance to the recfun plugin so it properly contains the recursive definitions from the source.
2022-07-04 12:42:11 -07:00
Nikolaj Bjorner
5393f1d98f #5980 2022-04-19 11:10:37 +01:00
Nikolaj Bjorner
a180254c1a fix #5980 2022-04-19 11:10:20 +01:00
Nikolaj Bjorner
03ff3201b9 block recursive definitions with lambdas until they are properly supported #5813 2022-02-06 08:57:58 +02:00
Nikolaj Bjorner
5b0389615b #5780 2022-01-19 10:10:36 +01:00
Nikolaj Bjorner
6f31d83633 fix #5541 2021-09-20 10:10:28 -07:00
Nikolaj Bjorner
b8a437bd8a #5429
relevancy propagation applies to quantifier unfolding.
2021-07-29 15:05:06 -07:00
Nikolaj Bjorner
703659a3a8 fix #5439 2021-07-28 17:16:17 -07:00
Nikolaj Bjorner
0ba518b0c0 avoid perf abyss for macros
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-07-20 20:07:06 -07:00
Nikolaj Bjorner
b1606487f0 fix #5289 2021-05-30 10:32:30 -07:00
Nikolaj Bjorner
4a6083836a call it data instead of c_ptr for approaching C++11 std::vector convention. 2021-04-13 18:17:35 -07:00
Nikolaj Bjorner
c387863da1 fix #5032, reset substitution during fold transformation 2021-02-15 14:14:25 -08: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
3ae4c6e9de refactor get_sort 2021-02-02 04:45:54 -08:00
Nuno Lopes
e844aef896 remove a few more copy constructors, though still not enough to enable the assertion in vector
I give up for now; there are too many copies left for little return..
2020-06-03 20:32:13 +01:00
Nikolaj Bjorner
fca44ff3f2 fix #4394
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-05-19 13:40:03 -07:00
Nikolaj Bjorner
a884201d62 remove using insert_if_not_there2
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-25 15:08:51 -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
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
1dcfe583e7 fix definition expression
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-02-27 16:18:26 -08:00
Nikolaj Bjorner
15f5444b8c enable auxiliary recursive function definitions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-02-27 16:12:32 -08:00
Nikolaj Bjorner
764b991468 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-02-27 14:34:44 -08:00
Nikolaj Bjorner
3afb78416f fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-02-27 14:34:44 -08:00
Nikolaj Bjorner
5a357f9998 fixup build of example
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-02-27 14:34:44 -08:00
Nikolaj Bjorner
88eb527b96 avoid const in ml
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-02-27 10:40:10 -08:00
Nikolaj Bjorner
a65efb682b avoid const in ml
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-02-27 10:40:10 -08:00
Nikolaj Bjorner
6616b6a366 only case expand for cases that contain defs. fixes #2601
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-10-01 18:41:11 -07:00
Nikolaj Bjorner
6fee9b90cb fix model generation for tc/po
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-04-11 11:39:27 -07:00
Nikolaj Bjorner
551d72b294 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-04-11 04:11:23 +02:00
Nikolaj Bjorner
4fb867a49c na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-04-01 11:57:07 -07:00
Bruce Mitchener
64ac929301 Use 'override' in new code. 2018-11-27 22:07:14 +07:00
Nikolaj Bjorner
b02fec91cc fixing python build errors
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-01 09:34:42 -05: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
51a0022450 add recfun to API
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-10-27 11:41:18 -05:00