3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-05-27 04:16:23 +00:00

prepare for lambda unfolding in ho-matcher and selectively enable ho matching

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2026-05-22 13:24:19 -07:00
parent f40e4759e4
commit 19166bd0b5
7 changed files with 75 additions and 5 deletions

View file

@ -27,6 +27,7 @@ void smt_params::updt_local_params(params_ref const & _p) {
m_random_seed = p.random_seed();
m_relevancy_lvl = p.relevancy();
m_ematching = p.ematching();
m_ho_matching = p.ho_matching();
m_induction = p.induction();
m_clause_proof = p.clause_proof();
m_phase_selection = static_cast<phase_selection>(p.phase_selection());

View file

@ -109,6 +109,7 @@ struct smt_params : public preprocessor_params,
bool m_display_features = false;
bool m_new_core2th_eq = true;
bool m_ematching = true;
bool m_ho_matching = false;
bool m_induction = false;
bool m_clause_proof = false;
symbol m_proof_log;

View file

@ -10,6 +10,7 @@ def_module_params(module_name='smt',
('quasi_macros', BOOL, False, 'try to find universally quantified formulas that are quasi-macros'),
('restricted_quasi_macros', BOOL, False, 'try to find universally quantified formulas that are restricted quasi-macros'),
('ematching', BOOL, True, 'E-Matching based quantifier instantiation'),
('ho_matching', BOOL, False, 'higher-order matching for quantifier instantiation'),
('phase_selection', UINT, 3, 'phase selection heuristic: 0 - always false, 1 - always true, 2 - phase caching, 3 - phase caching conservative, 4 - phase caching conservative 2, 5 - random, 6 - number of occurrences, 7 - theory'),
('phase_caching_on', UINT, 400, 'number of conflicts while phase caching is on'),
('phase_caching_off', UINT, 100, 'number of conflicts while phase caching is off'),