mirror of
https://github.com/Z3Prover/z3
synced 2025-06-15 02:16:16 +00:00
67 lines
1.8 KiB
C++
67 lines
1.8 KiB
C++
/*++
|
|
Copyright (c) 2006 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
preprocessor_params.h
|
|
|
|
Abstract:
|
|
|
|
Preprocess AST before adding them to the logical context
|
|
|
|
Author:
|
|
|
|
Leonardo de Moura (leonardo) 2008-01-17.
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
#pragma once
|
|
|
|
#include "params/pattern_inference_params.h"
|
|
#include "params/bit_blaster_params.h"
|
|
|
|
enum class lift_ite_kind {
|
|
LI_NONE,
|
|
LI_CONSERVATIVE,
|
|
LI_FULL
|
|
};
|
|
|
|
struct preprocessor_params : public pattern_inference_params,
|
|
public bit_blaster_params {
|
|
lift_ite_kind m_lift_ite;
|
|
lift_ite_kind m_ng_lift_ite; // lift ite for non ground terms
|
|
bool m_pull_cheap_ite = false;
|
|
bool m_pull_nested_quantifiers = false;
|
|
bool m_eliminate_term_ite = false;
|
|
bool m_macro_finder = false;
|
|
bool m_propagate_values = true;
|
|
bool m_elim_unconstrained = true;
|
|
bool m_solve_eqs = true;
|
|
bool m_refine_inj_axiom = true;
|
|
bool m_eliminate_bounds = false;
|
|
bool m_simplify_bit2int = false;
|
|
bool m_nnf_cnf = true;
|
|
bool m_distribute_forall = false;
|
|
bool m_reduce_args = false;
|
|
bool m_quasi_macros = false;
|
|
bool m_restricted_quasi_macros = false;
|
|
bool m_max_bv_sharing = true;
|
|
bool m_pre_simplifier = true;
|
|
bool m_nlquant_elim = false;
|
|
bool m_bound_simplifier = true;
|
|
|
|
public:
|
|
preprocessor_params(params_ref const & p = params_ref()):
|
|
m_lift_ite(lift_ite_kind::LI_NONE),
|
|
m_ng_lift_ite(lift_ite_kind::LI_NONE) {
|
|
updt_local_params(p);
|
|
}
|
|
|
|
void updt_local_params(params_ref const & p);
|
|
|
|
void updt_params(params_ref const & p);
|
|
|
|
void display(std::ostream & out) const;
|
|
};
|
|
|