mirror of
https://github.com/Z3Prover/z3
synced 2025-06-22 05:43:39 +00:00
Removed (some) dead parameters. Added doxygen documentation for the whole code base.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
66b02eb88d
commit
5e7436cb50
19 changed files with 1105 additions and 845 deletions
|
@ -22,16 +22,13 @@ Revision History:
|
|||
#include"ini_file.h"
|
||||
|
||||
struct bit_blaster_params {
|
||||
bool m_bb_eager;
|
||||
bool m_bb_ext_gates;
|
||||
bool m_bb_quantifiers;
|
||||
bit_blaster_params():
|
||||
m_bb_eager(false),
|
||||
m_bb_ext_gates(false),
|
||||
m_bb_quantifiers(false) {
|
||||
}
|
||||
void register_params(ini_params & p) {
|
||||
p.register_bool_param("BB_EAGER", m_bb_eager, "eager bit blasting");
|
||||
p.register_bool_param("BB_EXT_GATES", m_bb_ext_gates, "use extended gates during bit-blasting");
|
||||
p.register_bool_param("BB_QUANTIFIERS", m_bb_quantifiers, "convert bit-vectors to Booleans in quantifiers");
|
||||
}
|
||||
|
|
|
@ -21,12 +21,9 @@ Revision History:
|
|||
void front_end_params::register_params(ini_params & p) {
|
||||
p.register_param_vector(m_param_vector.get());
|
||||
preprocessor_params::register_params(p);
|
||||
spc_params::register_params(p);
|
||||
smt_params::register_params(p);
|
||||
parser_params::register_params(p);
|
||||
arith_simplifier_params::register_params(p);
|
||||
p.register_int_param("ENGINE", 0, 2, reinterpret_cast<int&>(m_engine), "0: SMT solver, 1: Superposition prover, 2: EPR solver, true");
|
||||
z3_solver_params::register_params(p);
|
||||
model_params::register_params(p);
|
||||
p.register_unsigned_param("MAX_COUNTEREXAMPLES", m_max_num_cex,
|
||||
"set the maximum number of counterexamples when using Simplify front end");
|
||||
|
@ -45,7 +42,6 @@ void front_end_params::register_params(ini_params & p) {
|
|||
p.register_int_param("PROOF_MODE", 0, 2, reinterpret_cast<int&>(m_proof_mode), "select proof generation mode: 0 - disabled, 1 - coarse grain, 2 - fine grain");
|
||||
p.register_bool_param("TRACE", m_trace, "enable tracing for the Axiom Profiler tool");
|
||||
p.register_string_param("TRACE_FILE_NAME", m_trace_file_name, "tracing file name");
|
||||
p.register_bool_param("IGNORE_SETPARAMETER", m_ignore_setparameter, "ignore (SETPARAMETER ...) commands in Simplify format input");
|
||||
p.register_bool_param("ASYNC_COMMANDS", m_async_commands, "enable/disable support for asynchronous commands in the Simplify front-end.");
|
||||
p.register_bool_param("DISPLAY_CONFIG", m_display_config, "display configuration used by Z3");
|
||||
|
||||
|
|
|
@ -22,25 +22,16 @@ Revision History:
|
|||
#include"ini_file.h"
|
||||
#include"ast.h"
|
||||
#include"preprocessor_params.h"
|
||||
#include"spc_params.h"
|
||||
#include"smt_params.h"
|
||||
#include"pp_params.h"
|
||||
#include"parser_params.h"
|
||||
#include"arith_simplifier_params.h"
|
||||
#include"z3_solver_params.h"
|
||||
#include"model_params.h"
|
||||
|
||||
enum engine {
|
||||
ENG_SMT,
|
||||
ENG_SPC,
|
||||
ENG_EPR
|
||||
};
|
||||
|
||||
struct front_end_params : public preprocessor_params, public spc_params, public smt_params, public parser_params,
|
||||
public arith_simplifier_params, public z3_solver_params, public model_params
|
||||
struct front_end_params : public preprocessor_params, public smt_params, public parser_params,
|
||||
public arith_simplifier_params, public model_params
|
||||
{
|
||||
ref<param_vector> m_param_vector;
|
||||
engine m_engine;
|
||||
unsigned m_max_num_cex; // maximum number of counterexamples
|
||||
bool m_at_labels_cex; // only use labels which contains the @ symbol when building multiple counterexamples.
|
||||
bool m_check_at_labels; // check that @ labels are inserted to generate unique counter-examples.
|
||||
|
@ -66,7 +57,6 @@ struct front_end_params : public preprocessor_params, public spc_params, public
|
|||
bool m_trace;
|
||||
std::string m_trace_file_name;
|
||||
std::fstream* m_trace_stream;
|
||||
bool m_ignore_setparameter;
|
||||
bool m_async_commands;
|
||||
bool m_display_config;
|
||||
bool m_user_theory_preprocess_axioms;
|
||||
|
@ -75,7 +65,6 @@ struct front_end_params : public preprocessor_params, public spc_params, public
|
|||
|
||||
front_end_params():
|
||||
m_param_vector(alloc(param_vector, this)),
|
||||
m_engine(ENG_SMT),
|
||||
m_max_num_cex(1),
|
||||
m_at_labels_cex(false),
|
||||
m_check_at_labels(false),
|
||||
|
@ -109,7 +98,6 @@ struct front_end_params : public preprocessor_params, public spc_params, public
|
|||
m_trace(false),
|
||||
m_trace_file_name("z3.log"),
|
||||
m_trace_stream(NULL),
|
||||
m_ignore_setparameter(false),
|
||||
m_async_commands(true),
|
||||
m_display_config(false),
|
||||
m_user_theory_preprocess_axioms(false),
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
/*++
|
||||
Copyright (c) 2006 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
order_params.cpp
|
||||
|
||||
Abstract:
|
||||
|
||||
Term ordering parameters.
|
||||
|
||||
Author:
|
||||
|
||||
Leonardo de Moura (leonardo) 2008-01-28.
|
||||
|
||||
Revision History:
|
||||
|
||||
--*/
|
||||
#include"order_params.h"
|
||||
|
||||
void order_params::register_params(ini_params & p) {
|
||||
p.register_symbol_list_param("PRECEDENCE", m_order_precedence, "describe a (partial) precedence for the term ordering used in the Superposition Calculus module. The precedence is lists of function symbols. Example: PRECEDENCE=\"(f, g, h)\"");
|
||||
p.register_symbol_list_param("PRECEDENCE_GEN", m_order_precedence_gen, "describe how a total precedence order is generated. The generator is a sequence of simple (partial) orders with an optional '-' (indicating the next (partial) order should be inverted). The available simple (partial) orders are: user (the order specified by precedence); arity; interpreted (interpreted function symbols are considered smaller); definition (defined function symbols are considered bigger); frequency; arbitrary (total arbitrary order generated by Z3). Example: PRECEDENCE_GEN=\"user interpreted - arity arbitraty\"");
|
||||
p.register_symbol_nat_list_param("ORDER_WEIGHTS", m_order_weights, "describe a (partial) assignment of weights to function symbols for term orderings (e.g., KBO). The assigment is a list of pairs of the form f:n where f is a string and n is a natural. Example: WEIGHTS=\"(f:1, g:2, h:3)\"");
|
||||
p.register_unsigned_param("ORDER_VAR_WEIGHT", m_order_var_weight, "weight of variables in term orderings (e.g., KBO)");
|
||||
p.register_int_param("ORDER", 0, 1, reinterpret_cast<int&>(m_order_kind), "Term ordering: 0 - KBO, 1 - LPO");
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
/*++
|
||||
Copyright (c) 2006 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
order_params.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Term ordering parameters.
|
||||
|
||||
Author:
|
||||
|
||||
Leonardo de Moura (leonardo) 2008-01-28.
|
||||
|
||||
Revision History:
|
||||
|
||||
--*/
|
||||
#ifndef _ORDER_PARAMS_H_
|
||||
#define _ORDER_PARAMS_H_
|
||||
|
||||
#include"ini_file.h"
|
||||
|
||||
enum order_kind {
|
||||
ORD_KBO,
|
||||
ORD_LPO
|
||||
};
|
||||
|
||||
struct order_params {
|
||||
svector<symbol> m_order_precedence;
|
||||
svector<symbol> m_order_precedence_gen;
|
||||
svector<symbol_nat_pair> m_order_weights;
|
||||
unsigned m_order_var_weight;
|
||||
order_kind m_order_kind;
|
||||
|
||||
order_params():
|
||||
m_order_var_weight(1),
|
||||
m_order_kind(ORD_KBO) {
|
||||
}
|
||||
|
||||
void register_params(ini_params & p);
|
||||
};
|
||||
|
||||
#endif /* _ORDER_PARAMS_H_ */
|
|
@ -1,37 +0,0 @@
|
|||
/*++
|
||||
Copyright (c) 2006 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
spc_params.cpp
|
||||
|
||||
Abstract:
|
||||
|
||||
<abstract>
|
||||
|
||||
Author:
|
||||
|
||||
Leonardo de Moura (leonardo) 2008-02-08.
|
||||
|
||||
Revision History:
|
||||
|
||||
--*/
|
||||
#include"spc_params.h"
|
||||
|
||||
void spc_params::register_params(ini_params & p) {
|
||||
order_params::register_params(p);
|
||||
p.register_unsigned_param("SPC_MIN_FUNC_FREQ_SUBSUMPTION_INDEX",m_min_func_freq_subsumption_index,
|
||||
"minimal number of occurrences (in clauses) for a function symbol to be considered for subsumption indexing.");
|
||||
p.register_unsigned_param("SPC_MAX_SUBSUMPTION_INDEX_FEATURES", m_max_subsumption_index_features,
|
||||
"maximum number of features to be used for subsumption index.");
|
||||
p.register_unsigned_param("SPC_INITIAL_SUBSUMPTION_INDEX_OPT", m_initial_subsumption_index_opt,
|
||||
"after how many processed clauses the subsumption index is optimized.");
|
||||
p.register_double_param("SPC_FACTOR_SUBSUMPTION_INDEX_OPT", m_factor_subsumption_index_opt,
|
||||
"after each optimization the threshold for optimization is increased by this factor. See INITIAL_SUBSUMPTION_INDEX_OPT.");
|
||||
p.register_bool_param("SPC_BS", m_backward_subsumption, "Enable/disable backward subsumption in the superposition engine");
|
||||
p.register_bool_param("SPC_ES", m_equality_subsumption, "Enable/disable equality resolution in the superposition engine");
|
||||
p.register_unsigned_param("SPC_NUM_ITERATIONS", m_spc_num_iterations);
|
||||
p.register_bool_param("SPC_TRACE", m_spc_trace);
|
||||
}
|
||||
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
/*++
|
||||
Copyright (c) 2006 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
spc_params.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Parameters for the Superposition Calculus Engine
|
||||
|
||||
Author:
|
||||
|
||||
Leonardo de Moura (leonardo) 2008-02-08.
|
||||
|
||||
Revision History:
|
||||
|
||||
--*/
|
||||
#ifndef _SPC_PARAMS_H_
|
||||
#define _SPC_PARAMS_H_
|
||||
|
||||
#include"order_params.h"
|
||||
|
||||
struct spc_params : public order_params {
|
||||
unsigned m_min_func_freq_subsumption_index;
|
||||
unsigned m_max_subsumption_index_features;
|
||||
unsigned m_initial_subsumption_index_opt;
|
||||
double m_factor_subsumption_index_opt;
|
||||
bool m_backward_subsumption;
|
||||
bool m_equality_subsumption;
|
||||
unsigned m_spc_num_iterations;
|
||||
bool m_spc_trace;
|
||||
|
||||
spc_params():
|
||||
m_min_func_freq_subsumption_index(100),
|
||||
m_max_subsumption_index_features(32),
|
||||
m_initial_subsumption_index_opt(1000),
|
||||
m_factor_subsumption_index_opt(1.5),
|
||||
m_backward_subsumption(true),
|
||||
m_equality_subsumption(true),
|
||||
m_spc_num_iterations(1000),
|
||||
m_spc_trace(false) {
|
||||
}
|
||||
|
||||
void register_params(ini_params & p);
|
||||
};
|
||||
|
||||
#endif /* _SPC_PARAMS_H_ */
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
/*++
|
||||
Copyright (c) 2006 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
z3_solver_params.cpp
|
||||
|
||||
Abstract:
|
||||
|
||||
<abstract>
|
||||
|
||||
Author:
|
||||
|
||||
Leonardo de Moura (leonardo) 2007-06-11.
|
||||
|
||||
Revision History:
|
||||
|
||||
--*/
|
||||
|
||||
#include"z3_solver_params.h"
|
||||
|
||||
void z3_solver_params::register_params(ini_params & p) {
|
||||
p.register_bool_param("Z3_SOLVER_LL_PP", m_ast_ll_pp, "pretty print asserted constraints using low-level printer (Z3 input format specific)");
|
||||
p.register_bool_param("Z3_SOLVER_SMT_PP", m_ast_smt_pp, "pretty print asserted constraints using SMT printer (Z3 input format specific)");
|
||||
p.register_bool_param("PRE_SIMPLIFY_EXPR", m_pre_simplify_expr, "pre-simplify expressions when created over the API (example: -x -> (* -1 x))");
|
||||
p.register_string_param("SMTLIB_TRACE_PATH", m_smtlib_trace_path, "path for converting Z3 formulas to SMTLIB benchmarks");
|
||||
p.register_string_param("SMTLIB_SOURCE_INFO", m_smtlib_source_info, "additional source info to add to SMTLIB benchmark");
|
||||
p.register_string_param("SMTLIB_CATEGORY", m_smtlib_category, "additional category info to add to SMTLIB benchmark");
|
||||
}
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
/*++
|
||||
Copyright (c) 2006 Microsoft Corporation
|
||||
|
||||
Module Name:
|
||||
|
||||
z3_solver_params.h
|
||||
|
||||
Abstract:
|
||||
|
||||
<abstract>
|
||||
|
||||
Author:
|
||||
|
||||
Leonardo de Moura (leonardo) 2007-06-11.
|
||||
|
||||
Revision History:
|
||||
|
||||
--*/
|
||||
#ifndef _Z3_SOLVER_PARAMS_H_
|
||||
#define _Z3_SOLVER_PARAMS_H_
|
||||
|
||||
#include"ini_file.h"
|
||||
|
||||
struct z3_solver_params {
|
||||
bool m_ast_ll_pp;
|
||||
bool m_ast_smt_pp;
|
||||
bool m_pre_simplify_expr;
|
||||
std::string m_smtlib_trace_path;
|
||||
std::string m_smtlib_source_info;
|
||||
std::string m_smtlib_category;
|
||||
|
||||
z3_solver_params():
|
||||
m_ast_ll_pp(false),
|
||||
m_ast_smt_pp(false),
|
||||
m_pre_simplify_expr(false),
|
||||
m_smtlib_trace_path(""),
|
||||
m_smtlib_source_info(""),
|
||||
m_smtlib_category("")
|
||||
{}
|
||||
void register_params(ini_params & p);
|
||||
};
|
||||
|
||||
#endif /* _Z3_SOLVER_PARAMS_H_ */
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue