mirror of
https://github.com/Z3Prover/z3
synced 2025-08-27 13:39:49 +00:00
euf model
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
e6e635b2e8
commit
4ab35a9bb5
8 changed files with 123 additions and 10 deletions
|
@ -4,5 +4,6 @@ z3_add_component(sat_smt
|
|||
COMPONENT_DEPENDENCIES
|
||||
sat
|
||||
ast
|
||||
euf
|
||||
)
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@ Author:
|
|||
|
||||
|
||||
#pragma once
|
||||
#include "sat/sat_solver.h"
|
||||
#include "ast/ast.h"
|
||||
#include "ast/euf/euf_egraph.h"
|
||||
#include "sat/sat_solver.h"
|
||||
|
||||
namespace sat {
|
||||
|
||||
|
@ -52,6 +53,29 @@ namespace sat {
|
|||
virtual ~th_internalizer() {}
|
||||
};
|
||||
|
||||
class th_dependencies {
|
||||
public:
|
||||
th_dependencies() {}
|
||||
euf::enode * const* begin() const { return nullptr; }
|
||||
euf::enode * const* end() const { return nullptr; }
|
||||
};
|
||||
|
||||
|
||||
class th_model_builder {
|
||||
public:
|
||||
/**
|
||||
\brief compute the value for enode \c n and store the value in \c values
|
||||
for the root of the class of \c n.
|
||||
*/
|
||||
virtual void add_value(euf::enode* n, expr_ref_vector& values) = 0;
|
||||
|
||||
/**
|
||||
\brief compute dependencies for node n
|
||||
*/
|
||||
virtual void add_dep(euf::enode* n, th_dependencies& dep) = 0;
|
||||
};
|
||||
|
||||
|
||||
class index_base {
|
||||
extension* ex;
|
||||
public:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue