mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-30 11:12:28 +00:00 
			
		
		
		
	move the content of nla_params.pyg to smt_params_helper.pyg
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
		
							parent
							
								
									e2514a2b19
								
							
						
					
					
						commit
						514c3d7a3b
					
				
					 4 changed files with 33 additions and 43 deletions
				
			
		|  | @ -53,7 +53,6 @@ z3_add_component(lp | |||
|     nlsat | ||||
|   PYG_FILES | ||||
|   	lp_params.pyg | ||||
|   	nla_params.pyg | ||||
| ) | ||||
| 
 | ||||
| include_directories(${src_SOURCE_DIR}) | ||||
|  |  | |||
|  | @ -1,22 +0,0 @@ | |||
| def_module_params('nla',  | ||||
|                   export=True, | ||||
|                   description='Parameters for non-linear arithmetic solving', | ||||
|                   params=( | ||||
|                    ('order', BOOL, True, 'run order lemmas'), | ||||
|                    ('tangents', BOOL, True, 'run tangent lemmas'), | ||||
|                    ('horner', BOOL, True, 'run horner\'s heuristic'), | ||||
|                    ('horner_subs_fixed', UINT, 2, '0 - no subs, 1 - substitute, 2 - substitute fixed zeros only'), | ||||
|                    ('horner_frequency', UINT, 4, 'horner\'s call frequency'), | ||||
|                    ('horner_row_length_limit', UINT, 10, 'row is disregarded by the heuristic if its length is longer than the value'), | ||||
|                    ('grobner', BOOL, True, 'run grobner\'s basis heuristic'), | ||||
|                    ('grobner_eqs_growth', UINT, 10, 'grobner\'s number of equalities growth '), | ||||
|                    ('grobner_expr_size_growth', UINT, 2, 'grobner\'s maximum expr size growth'), | ||||
|                    ('grobner_expr_degree_growth', UINT, 2, 'grobner\'s maximum expr degree growth'), | ||||
|                    ('grobner_max_simplified', UINT, 10000, 'grobner\'s maximum number of simplifications'), | ||||
|                    ('grobner_cnfl_to_report', UINT, 1, 'grobner\'s maximum number of conflicts to report'), | ||||
|                    ('gr_q', UINT, 10, 'grobner\'s quota'), | ||||
|                    ('grobner_subs_fixed', UINT, 2, '0 - no subs, 1 - substitute, 2 - substitute fixed zeros only') | ||||
|                           ))            | ||||
| 
 | ||||
| 
 | ||||
|      | ||||
|  | @ -41,10 +41,24 @@ def_module_params(module_name='smt', | |||
|                           ('bv.enable_int2bv', BOOL, True, 'enable support for int2bv and bv2int operators'), | ||||
|                           ('arith.random_initial_value', BOOL, False, 'use random initial values in the simplex-based procedure for linear arithmetic'), | ||||
|                           ('arith.solver', UINT, 6, 'arithmetic solver: 0 - no solver, 1 - bellman-ford based solver (diff. logic only), 2 - simplex based solver, 3 - floyd-warshall based solver (diff. logic only) and no theory combination 4 - utvpi, 5 - infinitary lra, 6 - lra solver'), | ||||
|                           ('arith.nl', BOOL, True, '(incomplete) nonlinear arithmetic support based on Groebner basis and interval propagation'), | ||||
|                           ('arith.nl.gb', BOOL, True, 'groebner Basis computation, this option is ignored when arith.nl=false'), | ||||
|                           ('arith.nl.branching', BOOL, True, 'branching on integer variables in non linear clusters'), | ||||
|                           ('arith.nl.rounds', UINT, 1024, 'threshold for number of (nested) final checks for non linear arithmetic'), | ||||
|                           ('arith.nl', BOOL, True, '(incomplete) nonlinear arithmetic support based on Groebner basis and interval propagation, relevant only if smt.arith.solver=2'), | ||||
|                           ('arith.nl.gb', BOOL, True, 'groebner Basis computation, this option is ignored when arith.nl=false, relevant only if smt.arith.solver=2'), | ||||
|                           ('arith.nl.branching', BOOL, True, 'branching on integer variables in non linear clusters, relevant only if smt.arith.solver=2'), | ||||
|                           ('arith.nl.rounds', UINT, 1024, 'threshold for number of (nested) final checks for non linear arithmetic, relevant only if smt.arith.solver=2'), | ||||
|                           ('arith.nl.order', BOOL, True, 'run order lemmas'), | ||||
|                           ('arith.nl.tangents', BOOL, True, 'run tangent lemmas'), | ||||
|                           ('arith.nl.horner', BOOL, True, 'run horner\'s heuristic'), | ||||
|                           ('arith.nl.horner_subs_fixed', UINT, 2, '0 - no subs, 1 - substitute, 2 - substitute fixed zeros only'), | ||||
|                           ('arith.nl.horner_frequency', UINT, 4, 'horner\'s call frequency'), | ||||
|                           ('arith.nl.horner_row_length_limit', UINT, 10, 'row is disregarded by the heuristic if its length is longer than the value'), | ||||
|                           ('arith.nl.grobner', BOOL, True, 'run grobner\'s basis heuristic'), | ||||
|                           ('arith.nl.grobner_eqs_growth', UINT, 10, 'grobner\'s number of equalities growth '), | ||||
|                           ('arith.nl.grobner_expr_size_growth', UINT, 2, 'grobner\'s maximum expr size growth'), | ||||
|                           ('arith.nl.grobner_expr_degree_growth', UINT, 2, 'grobner\'s maximum expr degree growth'), | ||||
|                           ('arith.nl.grobner_max_simplified', UINT, 10000, 'grobner\'s maximum number of simplifications'), | ||||
|                           ('arith.nl.grobner_cnfl_to_report', UINT, 1, 'grobner\'s maximum number of conflicts to report'), | ||||
|                           ('arith.nl.gr_q', UINT, 10, 'grobner\'s quota'), | ||||
|                           ('arith.nl.grobner_subs_fixed', UINT, 2, '0 - no subs, 1 - substitute, 2 - substitute fixed zeros only'),                           | ||||
|                           ('arith.euclidean_solver', BOOL, False, 'eucliean solver for linear integer arithmetic'), | ||||
|                           ('arith.propagate_eqs', BOOL, True, 'propagate (cheap) equalities'), | ||||
|                           ('arith.propagation_mode', UINT, 2, '0 - no propagation, 1 - propagate existing literals, 2 - refine bounds'), | ||||
|  |  | |||
|  | @ -456,23 +456,22 @@ class theory_lra::imp { | |||
|                 (void)_s; | ||||
|                 m_nla->push(); | ||||
|             } | ||||
|             nla_params nla(ctx().get_params()); | ||||
|             m_nla->get_core()->m_nla_settings.run_order() = nla.order(); | ||||
|             m_nla->get_core()->m_nla_settings.run_tangents() = nla.tangents(); | ||||
|             m_nla->get_core()->m_nla_settings.run_horner() = nla.horner(); | ||||
|             m_nla->get_core()->m_nla_settings.horner_subs_fixed() = nla.horner_subs_fixed(); | ||||
|              | ||||
|             m_nla->get_core()->m_nla_settings.horner_frequency() = nla.horner_frequency(); | ||||
|             m_nla->get_core()->m_nla_settings.horner_row_length_limit() = nla.horner_row_length_limit(); | ||||
|             m_nla->get_core()->m_nla_settings.run_grobner() = nla.grobner(); | ||||
|             m_nla->get_core()->m_nla_settings.grobner_subs_fixed() = nla.grobner_subs_fixed(); | ||||
|             m_nla->get_core()->m_nla_settings.grobner_eqs_growth() =  nla.grobner_eqs_growth(); | ||||
|             m_nla->get_core()->m_nla_settings.grobner_expr_size_growth() =  nla.grobner_expr_size_growth(); | ||||
|             m_nla->get_core()->m_nla_settings.grobner_expr_degree_growth() =  nla.grobner_expr_degree_growth(); | ||||
|             m_nla->get_core()->m_nla_settings.grobner_max_simplified() =      nla.grobner_max_simplified(); | ||||
|             m_nla->get_core()->m_nla_settings.grobner_number_of_conflicts_to_report() =      nla.grobner_cnfl_to_report(); | ||||
|             m_nla->get_core()->m_grobner_quota = nla.gr_q(); | ||||
|             smt_params_helper prms(ctx().get_params()); | ||||
|             m_nla->get_core()->m_nla_settings.run_order() = prms.arith_nl_order(); | ||||
|             m_nla->get_core()->m_nla_settings.run_tangents() = prms.arith_nl_tangents(); | ||||
|             m_nla->get_core()->m_nla_settings.run_horner() = prms.arith_nl_horner(); | ||||
|             m_nla->get_core()->m_nla_settings.horner_subs_fixed() = prms.arith_nl_horner_subs_fixed(); | ||||
|              | ||||
|             m_nla->get_core()->m_nla_settings.horner_frequency() = prms.arith_nl_horner_frequency(); | ||||
|             m_nla->get_core()->m_nla_settings.horner_row_length_limit() = prms.arith_nl_horner_row_length_limit(); | ||||
|             m_nla->get_core()->m_nla_settings.run_grobner() = prms.arith_nl_grobner(); | ||||
|             m_nla->get_core()->m_nla_settings.grobner_subs_fixed() = prms.arith_nl_grobner_subs_fixed(); | ||||
|             m_nla->get_core()->m_nla_settings.grobner_eqs_growth() =  prms.arith_nl_grobner_eqs_growth(); | ||||
|             m_nla->get_core()->m_nla_settings.grobner_expr_size_growth() =  prms.arith_nl_grobner_expr_size_growth(); | ||||
|             m_nla->get_core()->m_nla_settings.grobner_expr_degree_growth() =  prms.arith_nl_grobner_expr_degree_growth(); | ||||
|             m_nla->get_core()->m_nla_settings.grobner_max_simplified() =      prms.arith_nl_grobner_max_simplified(); | ||||
|             m_nla->get_core()->m_nla_settings.grobner_number_of_conflicts_to_report() =      prms.arith_nl_grobner_cnfl_to_report(); | ||||
|             m_nla->get_core()->m_grobner_quota = prms.arith_nl_gr_q(); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue