mirror of
https://github.com/Z3Prover/z3
synced 2025-06-21 13:23:39 +00:00
52 lines
1.3 KiB
C++
52 lines
1.3 KiB
C++
|
|
/*++
|
|
Copyright (c) 2018 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
smt_arith_value.h
|
|
|
|
Abstract:
|
|
|
|
Utility to extract arithmetic values from context.
|
|
|
|
Author:
|
|
|
|
Nikolaj Bjorner (nbjorner) 2018-12-08.
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
#pragma once
|
|
|
|
#include "ast/arith_decl_plugin.h"
|
|
#include "smt/smt_context.h"
|
|
#include "smt/theory_lra.h"
|
|
#include "smt/theory_arith.h"
|
|
#include "smt/theory_bv.h"
|
|
|
|
namespace smt {
|
|
class arith_value {
|
|
context* m_ctx;
|
|
ast_manager& m;
|
|
arith_util a;
|
|
bv_util b;
|
|
theory_mi_arith* m_tha;
|
|
theory_i_arith* m_thi;
|
|
theory_lra* m_thr;
|
|
theory_bv* m_thb;
|
|
public:
|
|
arith_value(ast_manager& m);
|
|
void init(context* ctx);
|
|
bool get_lo_equiv(expr* e, rational& lo, bool& strict);
|
|
bool get_up_equiv(expr* e, rational& up, bool& strict);
|
|
bool get_value_equiv(expr* e, rational& value) const;
|
|
bool get_lo(expr* e, rational& lo, bool& strict) const;
|
|
bool get_up(expr* e, rational& up, bool& strict) const;
|
|
bool get_value(expr* e, rational& value) const;
|
|
expr_ref get_lo(expr* e) const;
|
|
expr_ref get_up(expr* e) const;
|
|
expr_ref get_fixed(expr* e) const;
|
|
final_check_status final_check();
|
|
};
|
|
};
|