z3-z3-4.13.0.src.qe.mbp.mbp_tg_plugins.h Maven / Gradle / Ivy
The newest version!
/*++
Module Name:
mbp_tg_plugins.h
Abstract:
Model Based Projection for a theory
Author:
Hari Govind V K (hgvk94) 2022-07-12
Revision History:
--*/
#pragma once
#include "ast/ast.h"
#include "qe/mbp/mbp_qel_util.h"
#include "qe/mbp/mbp_term_graph.h"
#include "util/obj_hashtable.h"
class mbp_tg_plugin {
public:
// iterate through all terms in m_tg and apply all theory MBP rules once
// returns true if any rules were applied
virtual bool apply() { return false; };
virtual ~mbp_tg_plugin() = default;
virtual void use_model() { };
virtual void get_new_vars(app_ref_vector*&) { };
virtual family_id get_family_id() const { return null_family_id; };
};