mirror of
https://github.com/Z3Prover/z3
synced 2025-08-13 22:41:15 +00:00
More experimental FPA theory code
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
This commit is contained in:
parent
a8b65ebb36
commit
baee61a2e4
2 changed files with 263 additions and 14 deletions
|
@ -25,20 +25,37 @@ Revision History:
|
|||
|
||||
namespace smt {
|
||||
class theory_fpa : public theory {
|
||||
typedef trail_stack<theory_fpa> th_trail_stack;
|
||||
|
||||
fpa2bv_converter m_converter;
|
||||
fpa2bv_rewriter m_rw;
|
||||
expr_map m_trans_map;
|
||||
th_trail_stack m_trail_stack;
|
||||
|
||||
virtual final_check_status final_check_eh() { return FC_DONE; }
|
||||
virtual bool internalize_atom(app * a, bool);
|
||||
virtual bool internalize_term(app * a) { return internalize_atom(a, false); }
|
||||
virtual bool internalize_atom(app * atom, bool gate_ctx);
|
||||
virtual bool internalize_term(app * term);
|
||||
virtual void apply_sort_cnstr(enode * n, sort * s);
|
||||
virtual void new_eq_eh(theory_var, theory_var);
|
||||
virtual void new_diseq_eh(theory_var, theory_var);
|
||||
virtual void push_scope_eh();
|
||||
virtual void pop_scope_eh(unsigned num_scopes);
|
||||
virtual theory* mk_fresh(context*) { return alloc(theory_fpa, get_manager()); }
|
||||
virtual char const * get_name() const { return "fpa"; }
|
||||
virtual char const * get_name() const { return "fpa"; }
|
||||
|
||||
virtual model_value_proc * mk_value(enode * n, model_generator & mg);
|
||||
|
||||
public:
|
||||
theory_fpa(ast_manager& m);
|
||||
|
||||
protected:
|
||||
void split_triple(expr * e, expr * & sgn, expr * & sig, expr * & exp) const {
|
||||
SASSERT(is_app_of(e, get_family_id(), OP_TO_FLOAT));
|
||||
SASSERT(to_app(e)->get_num_args() == 3);
|
||||
sgn = to_app(e)->get_arg(0);
|
||||
sig = to_app(e)->get_arg(1);
|
||||
exp = to_app(e)->get_arg(2);
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue