3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-16 05:48:44 +00:00
z3/src/smt/theory_dummy.h
Nikolaj Bjorner b19f94ae5b make include paths uniformly use path relative to src. #534
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2017-07-31 13:24:11 -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:
virtual bool internalize_atom(app * atom, bool gate_ctx);
virtual bool internalize_term(app * term);
virtual void new_eq_eh(theory_var v1, theory_var v2);
virtual bool use_diseqs() const;
virtual void new_diseq_eh(theory_var v1, theory_var v2);
virtual void reset_eh();
virtual final_check_status final_check_eh();
virtual bool build_models() const {
return false;
}
virtual void display(std::ostream& out) const {}
public:
theory_dummy(family_id fid, char const * name);
virtual ~theory_dummy() {}
virtual theory * mk_fresh(context * new_ctx) { return alloc(theory_dummy, get_family_id(), m_name); }
virtual char const * get_name() const;
};
};
#endif /* THEORY_DUMMY_H_ */