mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-31 11:42:28 +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;
 | |
| };
 | |
| 
 |