mirror of
https://github.com/Z3Prover/z3
synced 2025-04-29 20:05:51 +00:00
user propagator
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
5e5ef50dbc
commit
96f10b8c1c
15 changed files with 219 additions and 127 deletions
|
@ -24,19 +24,6 @@ Notes:
|
|||
#include "solver/solver.h"
|
||||
|
||||
context_params::context_params() {
|
||||
m_unsat_core = false;
|
||||
m_model = true;
|
||||
m_model_validate = false;
|
||||
m_dump_models = false;
|
||||
m_auto_config = true;
|
||||
m_proof = false;
|
||||
m_trace = false;
|
||||
m_debug_ref_count = false;
|
||||
m_smtlib2_compliant = false;
|
||||
m_well_sorted_check = false;
|
||||
m_timeout = UINT_MAX;
|
||||
m_rlimit = 0;
|
||||
m_statistics = false;
|
||||
updt_params();
|
||||
}
|
||||
|
||||
|
@ -204,6 +191,8 @@ void context_params::get_solver_params(ast_manager const & m, params_ref & p, bo
|
|||
}
|
||||
|
||||
ast_manager * context_params::mk_ast_manager() {
|
||||
if (m_manager)
|
||||
return m_manager;
|
||||
ast_manager * r = alloc(ast_manager,
|
||||
m_proof ? PGM_ENABLED : PGM_DISABLED,
|
||||
m_trace ? m_trace_file_name.c_str() : nullptr);
|
||||
|
|
|
@ -26,24 +26,24 @@ class context_params {
|
|||
void set_bool(bool & opt, char const * param, char const * value);
|
||||
void set_uint(unsigned & opt, char const * param, char const * value);
|
||||
|
||||
unsigned m_rlimit;
|
||||
unsigned m_rlimit { 0 };
|
||||
ast_manager* m_manager { nullptr };
|
||||
|
||||
public:
|
||||
bool m_auto_config;
|
||||
bool m_proof;
|
||||
bool m_auto_config { true };
|
||||
bool m_proof { false };
|
||||
std::string m_dot_proof_file;
|
||||
bool m_interpolants;
|
||||
bool m_debug_ref_count;
|
||||
bool m_trace;
|
||||
bool m_debug_ref_count { false };
|
||||
bool m_trace { false };
|
||||
std::string m_trace_file_name;
|
||||
bool m_well_sorted_check;
|
||||
bool m_model;
|
||||
bool m_model_validate;
|
||||
bool m_dump_models;
|
||||
bool m_unsat_core;
|
||||
bool m_smtlib2_compliant; // it must be here because it enable/disable the use of coercions in the ast_manager.
|
||||
unsigned m_timeout;
|
||||
bool m_statistics;
|
||||
bool m_well_sorted_check { false };
|
||||
bool m_model { true };
|
||||
bool m_model_validate { false };
|
||||
bool m_dump_models { false };
|
||||
bool m_unsat_core { false };
|
||||
bool m_smtlib2_compliant { false }; // it must be here because it enable/disable the use of coercions in the ast_manager.
|
||||
unsigned m_timeout { UINT_MAX } ;
|
||||
bool m_statistics { false };
|
||||
|
||||
unsigned rlimit() const { return m_rlimit; }
|
||||
context_params();
|
||||
|
@ -74,6 +74,9 @@ public:
|
|||
\brief Create an AST manager using this configuration.
|
||||
*/
|
||||
ast_manager * mk_ast_manager();
|
||||
|
||||
void set_foreign_manager(ast_manager* m) { m_manager = m; }
|
||||
bool owns_manager() const { return m_manager != nullptr; }
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue