/*++ Copyright (c) 2006 Microsoft Corporation Module Name: pattern_inference_params.h Abstract: Author: Leonardo de Moura (leonardo) 2008-03-24. Revision History: --*/ #ifndef _PATTERN_INFERENCE_PARAMS_H_ #define _PATTERN_INFERENCE_PARAMS_H_ #include"ini_file.h" enum arith_pattern_inference_kind { AP_NO, // do not infer patterns with arithmetic terms AP_CONSERVATIVE, // only infer patterns with arithmetic terms if there is no other option AP_FULL // always use patterns with arithmetic terms }; struct pattern_inference_params { unsigned m_pi_max_multi_patterns; bool m_pi_block_loop_patterns; arith_pattern_inference_kind m_pi_arith; bool m_pi_use_database; unsigned m_pi_arith_weight; unsigned m_pi_non_nested_arith_weight; bool m_pi_pull_quantifiers; int m_pi_nopat_weight; bool m_pi_avoid_skolems; bool m_pi_warnings; pattern_inference_params(): m_pi_max_multi_patterns(0), m_pi_block_loop_patterns(true), m_pi_arith(AP_CONSERVATIVE), m_pi_use_database(false), m_pi_arith_weight(5), m_pi_non_nested_arith_weight(10), m_pi_pull_quantifiers(true), m_pi_nopat_weight(-1), m_pi_avoid_skolems(true), m_pi_warnings(false) { } void register_params(ini_params & p); }; #endif /* _PATTERN_INFERENCE_PARAMS_H_ */