mirror of
https://github.com/Z3Prover/z3
synced 2026-07-02 05:16:08 +00:00
adding dt-solver (#4739)
* adding dt-solver Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * dt Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * move mbp to self-contained module Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * files Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * Create CMakeLists.txt * dt Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * rename to bool_var2expr to indicate type class * mbp * na
This commit is contained in:
parent
b77c57451f
commit
2f756da294
62 changed files with 2309 additions and 1257 deletions
|
|
@ -1,54 +0,0 @@
|
|||
/**
|
||||
Copyright (c) 2018 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
qe_solve.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Light-weight variable solving plugin model for qe-lite and term_graph.
|
||||
|
||||
Author:
|
||||
|
||||
Nikolaj Bjorner (nbjorner), Arie Gurfinkel 2018-6-8
|
||||
|
||||
Revision History:
|
||||
|
||||
|
||||
--*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ast/ast.h"
|
||||
#include "util/plugin_manager.h"
|
||||
#include "qe/qe_vartest.h"
|
||||
|
||||
namespace qe {
|
||||
|
||||
class solve_plugin {
|
||||
protected:
|
||||
ast_manager& m;
|
||||
family_id m_id;
|
||||
is_variable_proc& m_is_var;
|
||||
|
||||
virtual expr_ref solve(expr* atom, bool is_pos) = 0;
|
||||
bool is_variable(expr* e) const { return m_is_var(e); }
|
||||
public:
|
||||
solve_plugin(ast_manager& m, family_id fid, is_variable_proc& is_var) : m(m), m_id(fid), m_is_var(is_var) {}
|
||||
virtual ~solve_plugin() {}
|
||||
family_id get_family_id() const { return m_id; }
|
||||
/// Process (and potentially augment) a literal
|
||||
expr_ref operator() (expr *lit);
|
||||
};
|
||||
|
||||
solve_plugin* mk_basic_solve_plugin(ast_manager& m, is_variable_proc& is_var);
|
||||
|
||||
solve_plugin* mk_arith_solve_plugin(ast_manager& m, is_variable_proc& is_var);
|
||||
|
||||
solve_plugin* mk_dt_solve_plugin(ast_manager& m, is_variable_proc& is_var);
|
||||
|
||||
solve_plugin* mk_bv_solve_plugin(ast_manager& m, is_variable_proc& is_var);
|
||||
|
||||
// solve_plugin* mk_array_solve_plugin(ast_manager& m, is_variable_proc& is_var);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue