From adb9117a9eeb08d1c16a62de85c51e1a222909be Mon Sep 17 00:00:00 2001 From: Nikolaj Bjorner Date: Wed, 8 Oct 2014 13:32:25 -0700 Subject: [PATCH] move parameter checking to API Signed-off-by: Nikolaj Bjorner --- src/api/api_tactic.cpp | 3 +++ src/api/python/z3.py | 2 +- src/tactic/smtlogics/nra_tactic.cpp | 4 ++-- src/tactic/smtlogics/qfnra_tactic.cpp | 4 ++-- src/tactic/tactical.cpp | 3 --- src/util/params.cpp | 3 ++- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/api/api_tactic.cpp b/src/api/api_tactic.cpp index 911360047..7dce33971 100644 --- a/src/api/api_tactic.cpp +++ b/src/api/api_tactic.cpp @@ -222,6 +222,9 @@ extern "C" { Z3_TRY; LOG_Z3_tactic_using_params(c, t, p); RESET_ERROR_CODE(); + param_descrs r; + to_tactic_ref(t)->collect_param_descrs(r); + to_param_ref(p).validate(r); tactic * new_t = using_params(to_tactic_ref(t), to_param_ref(p)); RETURN_TACTIC(new_t); Z3_CATCH_RETURN(0); diff --git a/src/api/python/z3.py b/src/api/python/z3.py index afd61dba1..5a1a6c36d 100644 --- a/src/api/python/z3.py +++ b/src/api/python/z3.py @@ -4467,7 +4467,7 @@ def args2params(arguments, keywords, ctx=None): A ':' is added to the keywords, and '_' is replaced with '-' >>> args2params(['model', True, 'relevancy', 2], {'elim_and' : True}) - (params model 1 relevancy 2 elim_and 1) + (params model true relevancy 2 elim_and true) """ if __debug__: _z3_assert(len(arguments) % 2 == 0, "Argument list must have an even number of elements.") diff --git a/src/tactic/smtlogics/nra_tactic.cpp b/src/tactic/smtlogics/nra_tactic.cpp index 845b6bfec..619664a74 100644 --- a/src/tactic/smtlogics/nra_tactic.cpp +++ b/src/tactic/smtlogics/nra_tactic.cpp @@ -27,10 +27,10 @@ Notes: tactic * mk_nra_tactic(ast_manager & m, params_ref const& p) { params_ref p1 = p; - p1.set_uint("seed", 11); + p1.set_uint("random_seed", 11); p1.set_bool("factor", false); params_ref p2 = p; - p2.set_uint("seed", 13); + p2.set_uint("random_seed", 13); p2.set_bool("factor", false); return and_then(mk_simplify_tactic(m, p), diff --git a/src/tactic/smtlogics/qfnra_tactic.cpp b/src/tactic/smtlogics/qfnra_tactic.cpp index 716b4868b..c2053fcd3 100644 --- a/src/tactic/smtlogics/qfnra_tactic.cpp +++ b/src/tactic/smtlogics/qfnra_tactic.cpp @@ -34,10 +34,10 @@ static tactic * mk_qfnra_sat_solver(ast_manager& m, params_ref const& p, unsigne tactic * mk_qfnra_tactic(ast_manager & m, params_ref const& p) { params_ref p1 = p; - p1.set_uint("seed", 11); + p1.set_uint("random_seed", 11); p1.set_bool("factor", false); params_ref p2 = p; - p2.set_uint("seed", 13); + p2.set_uint("random_seed", 13); p2.set_bool("factor", false); return and_then(mk_simplify_tactic(m, p), diff --git a/src/tactic/tactical.cpp b/src/tactic/tactical.cpp index 87974ea60..cfb4ec194 100644 --- a/src/tactic/tactical.cpp +++ b/src/tactic/tactical.cpp @@ -1229,9 +1229,6 @@ class using_params_tactical : public unary_tactical { params_ref m_params; public: using_params_tactical(tactic * t, params_ref const & p):unary_tactical(t), m_params(p) { - param_descrs r; - collect_param_descrs(r); - p.validate(r); t->updt_params(p); } diff --git a/src/util/params.cpp b/src/util/params.cpp index 130b18cc9..a2609f840 100644 --- a/src/util/params.cpp +++ b/src/util/params.cpp @@ -309,7 +309,8 @@ public: p.display(strm, 2, false, false); throw default_exception(strm.str()); } - if (it->second.m_kind != expected) { + if (it->second.m_kind != expected && + !(it->second.m_kind == CPK_UINT && expected == CPK_NUMERAL)) { std::stringstream strm; strm << "Parameter " << it->first.str() << " was given argument of type "; strm << it->second.m_kind << ", expected " << expected;