3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-10 19:27:06 +00:00
z3/src/smt/theory_dummy.h
2018-02-10 09:56:33 +07:00

60 lines
1.4 KiB
C++

/*++
Copyright (c) 2006 Microsoft Corporation
Module Name:
theory_no_arith.h
Abstract:
<abstract>
Author:
Leonardo de Moura (leonardo) 2008-12-30.
Revision History:
--*/
#ifndef THEORY_DUMMY_H_
#define THEORY_DUMMY_H_
#include "smt/smt_theory.h"
namespace smt {
/**
\brief Do nothing theory. Tracks whether theory expressions were internalized.
When theory expressions were internalized, it returns FC_GIVEUP in the final_check_eh.
*/
class theory_dummy : public theory {
bool m_theory_exprs;
char const * m_name;
void found_theory_expr();
protected:
bool internalize_atom(app * atom, bool gate_ctx) override;
bool internalize_term(app * term) override;
void new_eq_eh(theory_var v1, theory_var v2) override;
bool use_diseqs() const override;
void new_diseq_eh(theory_var v1, theory_var v2) override;
void reset_eh() override;
final_check_status final_check_eh() override;
bool build_models() const override {
return false;
}
void display(std::ostream& out) const override {}
public:
theory_dummy(family_id fid, char const * name);
~theory_dummy() override {}
theory * mk_fresh(context * new_ctx) override { return alloc(theory_dummy, get_family_id(), m_name); }
char const * get_name() const override;
};
};
#endif /* THEORY_DUMMY_H_ */