3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-09-06 09:51:09 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2024-07-14 15:38:56 -07:00
parent 8357ac1cfc
commit 586343ce64
24 changed files with 708 additions and 513 deletions

View file

@ -16,7 +16,7 @@ Author:
--*/
#pragma once
#include "ast/sls/sls_smt.h"
#include "ast/sls/sls_context.h"
#include "ast/sls/sls_arith_base.h"
namespace sls {
@ -25,23 +25,28 @@ namespace sls {
scoped_ptr<arith_base<checked_int64<true>>> m_arith64;
scoped_ptr<arith_base<rational>> m_arith;
expr_ref_vector m_shared;
void init_backup();
public:
arith_plugin(context& ctx) :
plugin(ctx), m_shared(ctx.get_manager()) {
m_arith64 = alloc(arith_base<checked_int64<true>>,ctx);
m_fid = m_arith64->fid();
}
~arith_plugin() override {}
void init_bool_var(sat::bool_var v) override;
void register_term(expr* e) override;
expr_ref get_value(expr* e) override;
lbool check() override;
void initialize() override;
void propagate_literal(sat::literal lit) override;
bool propagate() override;
void repair_down(app* e) override;
void repair_up(app* e) override;
bool is_sat() override;
void on_rescale() override;
void on_restart() override;
std::ostream& display(std::ostream& out) const override;
void mk_model(model& mdl) override;
void set_shared(expr* e) override;
void set_value(expr* e, expr* v) override;
};