mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 01:25:31 +00:00
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 >
This commit is contained in:
parent
934f87a336
commit
3852d4516d
11 changed files with 108 additions and 11 deletions
|
@ -654,10 +654,9 @@ void rewriter_tpl<Config>::cleanup() {
|
|||
|
||||
template<typename Config>
|
||||
void rewriter_tpl<Config>::display_bindings(std::ostream& out) {
|
||||
out << "bindings:\n";
|
||||
for (unsigned i = 0; i < m_bindings.size(); i++) {
|
||||
if (m_bindings[i])
|
||||
out << i << ": " << mk_ismt2_pp(m_bindings[i], m()) << "\n";
|
||||
out << i << ": " << mk_ismt2_pp(m_bindings[i], m()) << ";\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -674,6 +673,7 @@ void rewriter_tpl<Config>::set_bindings(unsigned num_bindings, expr * const * bi
|
|||
m_shifts.push_back(num_bindings);
|
||||
}
|
||||
TRACE("rewriter", display_bindings(tout););
|
||||
SCTRACE("bindings", is_trace_enabled("coming_from_quant"), display_bindings(tout););
|
||||
}
|
||||
|
||||
template<typename Config>
|
||||
|
@ -687,6 +687,7 @@ void rewriter_tpl<Config>::set_inv_bindings(unsigned num_bindings, expr * const
|
|||
m_shifts.push_back(num_bindings);
|
||||
}
|
||||
TRACE("rewriter", display_bindings(tout););
|
||||
SCTRACE("bindings", is_trace_enabled("coming_from_quant"), display_bindings(tout););
|
||||
}
|
||||
|
||||
template<typename Config>
|
||||
|
|
|
@ -27,6 +27,17 @@ expr_ref var_subst::operator()(expr * n, unsigned num_args, expr * const * args)
|
|||
expr_ref result(m_reducer.m());
|
||||
if (is_ground(n)) {
|
||||
result = n;
|
||||
//application does not have free variables or nested quantifiers.
|
||||
//There is no need to print the bindings here?
|
||||
SCTRACE("bindings", is_trace_enabled("coming_from_quant"),
|
||||
tout << "(ground)\n";
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
if (args[i]) {
|
||||
tout << i << ": " << mk_ismt2_pp(args[i], result.m()) << ";\n";
|
||||
}
|
||||
}
|
||||
tout.flush(););
|
||||
|
||||
return result;
|
||||
}
|
||||
SASSERT(is_well_sorted(result.m(), n));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue