3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-05-21 09:29:35 +00:00
z3/src/ast/sls/sls_bv_fixed.h
2025-04-14 10:34:09 -07:00

50 lines
1.1 KiB
C++

/*++
Copyright (c) 2024 Microsoft Corporation
Module Name:
bv_sls_fixed.h
Abstract:
Initialize fixed information.
Author:
Nikolaj Bjorner (nbjorner) 2024-02-07
--*/
#pragma once
#include "ast/ast.h"
#include "ast/sls/sls_bv_valuation.h"
#include "ast/sls/sls_context.h"
#include "ast/bv_decl_plugin.h"
namespace sls {
class bv_terms;
class bv_eval;
class bv_fixed {
bv_eval& ev;
ast_manager& m;
bv_util& bv;
sls::context& ctx;
bool init_range(app* e, bool sign);
void propagate_range_up(expr* e);
bool init_range(expr* x, rational const& a, expr* y, rational const& b, bool sign);
void get_offset(expr* e, expr*& x, rational& offset);
bool init_eq(expr* e, rational const& v, bool sign);
bool add_range(expr* e, rational lo, rational hi, bool sign);
bool is_fixed1(app* e) const;
void set_fixed(expr* e);
public:
bv_fixed(bv_eval& ev, bv_terms& terms, sls::context& ctx);
void init();
};
}