mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	move parameter checking to API
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									28fb266d8c
								
							
						
					
					
						commit
						adb9117a9e
					
				
					 6 changed files with 10 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -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);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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.")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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), 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;                
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue