3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-27 02:45:51 +00:00

added API to monitor clause inferences

See RELEASE_NOTES for more information
examples pending.
This commit is contained in:
Nikolaj Bjorner 2022-10-19 08:34:55 -07:00
parent 77cbd89420
commit 07dd1065db
34 changed files with 505 additions and 122 deletions

View file

@ -323,7 +323,13 @@ public:
user_propagator::eq_eh_t m_diseq_eh;
user_propagator::created_eh_t m_created_eh;
user_propagator::decide_eh_t m_decide_eh;
void* m_on_clause_ctx = nullptr;
user_propagator::on_clause_eh_t m_on_clause_eh;
void on_clause_delay_init() {
if (m_on_clause_eh)
m_ctx->register_on_clause(m_on_clause_ctx, m_on_clause_eh);
}
void user_propagate_delay_init() {
if (!m_user_ctx)
@ -349,6 +355,13 @@ public:
m_diseq_eh = nullptr;
m_created_eh = nullptr;
m_decide_eh = nullptr;
m_on_clause_eh = nullptr;
m_on_clause_ctx = nullptr;
}
void register_on_clause(void* ctx, user_propagator::on_clause_eh_t& on_clause) override {
m_on_clause_ctx = ctx;
m_on_clause_eh = on_clause;
}
void user_propagate_init(