3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-02 09:20:22 +00:00
Commit graph

72 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
Jonáš Fiala
2050fc3b35
Preserve fingerprint in trace (#7534) 2025-01-27 13:09:48 -08:00
Nikolaj Bjorner
23c4728d68 remove some platform specific behavior 2024-12-23 16:28:10 -08:00
Nikolaj Bjorner
554191885e remove platform dependent print 2024-12-23 16:13:36 -08:00
Nikolaj Bjorner
87f7a20e14 Add (updated and general) solve_for functionality for arithmetic, add congruence_explain to API to retrieve explanation for why two terms are congruent Tweak handling of smt.qi.max_instantations
Add API solve_for(vars).
It takes a list of variables and returns a triangular solved form for the variables.
Currently for arithmetic. The solved form is a list with elements of the form (var, term, guard).
Variables solved in the tail of the list do not occur before in the list.
For example it can return a solution [(x, z, True), (y, x + z, True)] because first x was solved to be z,
then y was solved to be x + z which is the same as 2z.

Add congruent_explain that retuns an explanation for congruent terms.
Terms congruent in the final state after calling SimpleSolver().check() can be queried for
an explanation, i.e., a list of literals that collectively entail the equality under congruence closure.
The literals are asserted in the final state of search.

Adjust smt_context cancellation for the smt.qi.max_instantiations parameter.
It gets checked when qi-queue elements are consumed.
Prior it was checked on insertion time, which didn't allow for processing as many
instantations as there were in the queue. Moreover, it would not cancel the solver.
So it would keep adding instantations to the queue when it was full / depleted the
configuration limit.
2024-12-19 23:27:57 +01:00
Bruce Mitchener
5d0dea05aa
Remove empty leaf destructors. (#6211) 2022-07-30 10:07:03 +01:00
Nikolaj Bjorner
026065ff71 streamline pb solver interface and naming after removal of xor 2021-02-28 12:32:04 -08:00
Nikolaj Bjorner
a152bb1e80 remove template Context dependency in every trail object 2021-02-08 15:41:57 -08:00
Nikolaj Bjorner
e3d634807b move common routines for quantifiers
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2021-01-28 13:23:40 -08:00
Nikolaj Bjorner
ae7d76767b updated logging 2020-10-06 18:02:20 -07:00
Nikolaj Bjorner
e46ad45968 na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-24 02:20:30 -07:00
Nikolaj Bjorner
f0308436b5 use lazy scopes to avoid push/pop overhead
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-08-17 08:07:06 -07:00
Rocco Salvia
3852d4516d
modular Axiom Profiler (#4619)
* Rocco first commit

* Rocco: clean the log

* Rocco: version 0.1 beta of the causality graph

* Rocco: minimal fix to separate lines

* Rocco: fix the enodes

* Rocco: our trace has to reflect same behaviour of the native trace for what concern used_enodes

* Rocco: disable trace when dummy instantiations

* Rocco: fix to enodes

* Update README.md

* Rocco: remove causality details and add the pattern (trigger)

* Rocco: add ; at the end of the bindings

* Rocco: add triggers as separate trace

* Rocco README file

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Rocco: bug in tout flush

* Update README.md

* Update README.md

* Rocco: clean code

* Ready for pull request

* Remove commented line bindings

* Add space between // and first char

* Substitute or with || for compatibility; Add space around >
2020-08-08 12:09:24 -07:00
Nikolaj Bjorner
8dde1bf86d compiler warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-04-28 16:02:32 -07:00
Nikolaj Bjorner
f9193809ea add recfun rewriting, remove quantifier based recfun 2020-04-26 12:59:51 -07:00
Nikolaj Bjorner
44104a5cce fix #3198
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-03-08 14:03:46 +01:00
Nikolaj Bjorner
559c3ca012 fix #3035
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-02-18 10:46:25 -10:00
Nikolaj Bjorner
2d59b81353 delay evaluation of model, throttle propagation, introduce LUT results into cutset
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2020-02-05 12:33:42 -08:00
Nuno Lopes
6a0c409b0f move a few strings instead of copying 2019-02-28 10:53:27 +00:00
nilsbecker
6ee3941523 more cleanup 2019-02-23 12:08:08 +01:00
nilsbecker
ec76efedbe synchronizing with main repository 2019-02-22 00:19:43 +01:00
nilsbecker
28c03ed1de logging support for theory axioms 2019-02-21 19:29:35 +01:00
Nuno Lopes
904bc34139 remove some debug leftover 2019-02-05 10:02:58 +00:00
Nikolaj Bjorner
f2e636c598 record simplified input clauses as lemmas
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-01-16 16:37:21 -08:00
nilsbecker
bfb554c0b8 logging sorts of quantified variables
logging proof objects seperately form regular terms
renaming inst-possible -> inst-discovered
2019-01-14 21:28:06 +01:00
nilsbecker
3620dfee5e logging names of quantified variables and updating inst-possible line 2019-01-08 22:09:32 +01:00
nilsbecker
58def55796 mbqi support 2019-01-05 14:44:06 +01:00
Nils Becker
0870760eb5 logging meaning of theory specific constants 2018-12-03 22:41:59 +01:00
nilsbecker
988e8afc2e support for logging congruence closure equality explanations when commutativity is used 2018-12-03 13:50:48 +01:00
Nikolaj Bjorner
503bedbc7a fix #1967:
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-26 21:12:47 -08:00
Nikolaj Bjorner
e026f96ed4 code review updates for #1963
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-25 14:30:30 -08:00
nilsbecker
b57a483a6c using obj_hashtable instead of unordered_set as suggested by Nikolaj 2018-11-25 22:50:14 +01:00
nilsbecker
547fbd4764 avoid rechecking whether equality explanations are already logged 2018-10-09 16:42:10 +02:00
nilsbecker
820c14ed06 synchronize fork 2018-07-06 16:19:13 +02:00
nilsbecker
a405742037 Adding comments 2018-07-06 12:43:46 +02:00
Nikolaj Bjorner
520ce9a5ee integrate lambda expressions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-26 07:23:04 -07:00
nilsbecker
3c464071f7 adding comments 2018-06-06 19:24:29 +02:00
nilsbecker
f3a627b026 making theory explantions easier to parse 2018-05-27 15:29:57 +02:00
nilsbecker
1aeffa2e01 fixing issue where argument equalities for congruence explanations were not updated
explaining equalities added by theories
2018-05-24 19:25:59 +02:00
nilsbecker
9bc7d5de0f making sure equality explanations for bound terms are logged 2018-04-29 16:39:32 +02:00
nilsbecker
b3aed5987c Merge branch 'master' of https://github.com/Nils-Becker/z3 2018-04-08 18:27:21 +02:00
Nils Becker
7585f28dec Improved quantifier instantiation logging 2018-04-08 18:18:02 +02:00
Nikolaj Bjorner
b572639fcd fix #1545
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-03-17 17:49:33 -07:00
Bruce Mitchener
76eb7b9ede Use nullptr. 2018-02-12 14:05:55 +07:00
Bruce Mitchener
7167fda1dc Use override rather than virtual. 2018-02-10 09:56:33 +07:00
Nikolaj Bjorner
357b4b20fd fix #1365. Filter MBQI instantiations for as-array terms that lead the array theory to return unknown and therefore block further instantiations. as-array terms are at this point almost always created from internal model values so quantifier instantiations with these have little value, other than instantiations of other paraameters that may indepdendently help
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-11-23 11:17:41 -08:00
Nikolaj Bjorner
009e94d188 update to theory_seq following examples from PJLJ
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-08-30 14:00:01 -07:00
Nikolaj Bjorner
bcf229dcfd removing dependencies on simplifier
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-08-26 11:23:41 -07:00
Nikolaj Bjorner
e2b46257d6 reducing dependencies on simplifier
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-08-22 15:09:34 -07:00
Nikolaj Bjorner
b19f94ae5b make include paths uniformly use path relative to src. #534
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-07-31 13:24:11 -07:00