mirror of
https://github.com/Z3Prover/z3
synced 2025-11-15 18:35:44 +00:00
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).
This commit is contained in:
parent
d766292dab
commit
0a93ff515d
583 changed files with 8698 additions and 7299 deletions
|
|
@ -131,7 +131,7 @@ void lemma_bool_inductive_generalizer::operator()(lemma_ref &lemma) {
|
|||
}
|
||||
|
||||
if (dirty) {
|
||||
TRACE("spacer",
|
||||
TRACE(spacer,
|
||||
tout << "Generalized from:\n" << mk_and(lemma->get_cube())
|
||||
<< "\ninto\n" << mk_and(cube) << "\n";);
|
||||
|
||||
|
|
@ -164,10 +164,10 @@ void unsat_core_generalizer::operator()(lemma_ref &lemma)
|
|||
expr_ref_vector core(m);
|
||||
VERIFY(pt.is_invariant(lemma->level(), lemma.get(), uses_level, &core));
|
||||
|
||||
CTRACE("spacer", old_sz > core.size(),
|
||||
CTRACE(spacer, old_sz > core.size(),
|
||||
tout << "unsat core reduced lemma from: "
|
||||
<< old_sz << " to " << core.size() << "\n";);
|
||||
CTRACE("spacer", old_level < uses_level,
|
||||
CTRACE(spacer, old_level < uses_level,
|
||||
tout << "unsat core moved lemma up from: "
|
||||
<< old_level << " to " << uses_level << "\n";);
|
||||
if (old_sz > core.size()) {
|
||||
|
|
@ -233,7 +233,7 @@ void lemma_array_eq_generalizer::operator() (lemma_ref &lemma)
|
|||
v = mk_and(core);
|
||||
for_each_expr(cap, v);
|
||||
|
||||
CTRACE("core_array_eq", symb.size() > 1 && symb.size() <= 8,
|
||||
CTRACE(core_array_eq, symb.size() > 1 && symb.size() <= 8,
|
||||
tout << "found " << symb.size() << " array variables in: \n"
|
||||
<< v << "\n";);
|
||||
|
||||
|
|
@ -276,7 +276,7 @@ void lemma_array_eq_generalizer::operator() (lemma_ref &lemma)
|
|||
lbool res = sol->check_sat(0, nullptr);
|
||||
|
||||
if (res == l_false) {
|
||||
TRACE("core_array_eq",
|
||||
TRACE(core_array_eq,
|
||||
tout << "strengthened " << mk_pp(lits.get(i), m)
|
||||
<< " with " << mk_pp(mk_not(m, e), m) << "\n";);
|
||||
lits[i] = mk_not(m, e);
|
||||
|
|
@ -289,7 +289,7 @@ void lemma_array_eq_generalizer::operator() (lemma_ref &lemma)
|
|||
// nothing changed
|
||||
if (!dirty) return;
|
||||
|
||||
TRACE("core_array_eq",
|
||||
TRACE(core_array_eq,
|
||||
tout << "new possible core " << mk_and(lits) << "\n";);
|
||||
|
||||
|
||||
|
|
@ -297,16 +297,16 @@ void lemma_array_eq_generalizer::operator() (lemma_ref &lemma)
|
|||
// -- check if the generalized result is consistent with trans
|
||||
unsigned uses_level1;
|
||||
if (pt.check_inductive(lemma->level(), lits, uses_level1, lemma->weakness())) {
|
||||
TRACE("core_array_eq", tout << "Inductive!\n";);
|
||||
TRACE(core_array_eq, tout << "Inductive!\n";);
|
||||
lemma->update_cube(lemma->get_pob(), lits);
|
||||
lemma->set_level(uses_level1);
|
||||
}
|
||||
else
|
||||
{TRACE("core_array_eq", tout << "Not-Inductive!\n";);}
|
||||
{TRACE(core_array_eq, tout << "Not-Inductive!\n";);}
|
||||
}
|
||||
|
||||
void lemma_eq_generalizer::operator() (lemma_ref &lemma) {
|
||||
TRACE("core_eq", tout << "Transforming equivalence classes\n";);
|
||||
TRACE(core_eq, tout << "Transforming equivalence classes\n";);
|
||||
|
||||
if (lemma->get_cube().empty()) return;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue