3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 11:55:51 +00:00

theory_str parameters

This commit is contained in:
Murphy Berzish 2016-12-13 17:20:58 -05:00
parent f5bc17b864
commit bced5828f7
5 changed files with 26 additions and 22 deletions

View file

@ -62,5 +62,7 @@ def_module_params(module_name='smt',
('dack.gc_inv_decay', DOUBLE, 0.8, 'Dynamic ackermannization garbage collection decay'),
('dack.threshold', UINT, 10, ' number of times the congruence rule must be used before Leibniz\'s axiom is expanded'),
('core.validate', BOOL, False, 'validate unsat core produced by SMT context'),
('str.strong_arrangements', BOOL, True, 'assert equivalences instead of implications when generating string arrangement axioms')
('str.strong_arrangements', BOOL, True, 'assert equivalences instead of implications when generating string arrangement axioms'),
('str.aggressive_length_testing', BOOL, False, 'prioritize testing concrete length values over generating more options'),
('str.aggressive_value_testing', BOOL, False, 'prioritize testing concrete string constant values over generating more options')
))

View file

@ -21,4 +21,6 @@ Revision History:
void theory_str_params::updt_params(params_ref const & _p) {
smt_params_helper p(_p);
m_AssertStrongerArrangements = p.str_strong_arrangements();
m_AggressiveLengthTesting = p.str_aggressive_length_testing();
m_AggressiveValueTesting = p.str_aggressive_value_testing();
}

View file

@ -30,8 +30,22 @@ struct theory_str_params {
*/
bool m_AssertStrongerArrangements;
/*
* If AggressiveLengthTesting is true, we manipulate the phase of length tester equalities
* to prioritize trying concrete length options over choosing the "more" option.
*/
bool m_AggressiveLengthTesting;
/*
* Similarly, if AggressiveValueTesting is true, we manipulate the phase of value tester equalities
* to prioritize trying concrete value options over choosing the "more" option.
*/
bool m_AggressiveValueTesting;
theory_str_params(params_ref const & p = params_ref()):
m_AssertStrongerArrangements(true)
m_AssertStrongerArrangements(true),
m_AggressiveLengthTesting(false),
m_AggressiveValueTesting(false)
{
updt_params(p);
}