mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-31 19:52:29 +00:00 
			
		
		
		
	build test
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									4dfdabc80f
								
							
						
					
					
						commit
						20870c43ec
					
				
					 4 changed files with 13 additions and 20 deletions
				
			
		|  | @ -52,9 +52,9 @@ namespace q { | |||
|         m_qs(s), | ||||
|         m(ctx.get_manager()), | ||||
|         m_eval(ctx), | ||||
|         m_infer_patterns(m, ctx.get_config()), | ||||
|         m_qstat_gen(m, ctx.get_region()), | ||||
|         m_inst_queue(*this, ctx), | ||||
|         m_qstat_gen(m, ctx.get_region())         | ||||
|         m_infer_patterns(m, ctx.get_config())        | ||||
|     { | ||||
|         std::function<void(euf::enode*, euf::enode*)> _on_merge =  | ||||
|             [&](euf::enode* root, euf::enode* other) {  | ||||
|  | @ -229,10 +229,8 @@ namespace q { | |||
|         TRACE("q", tout << "on-binding " << mk_pp(q, m) << "\n";); | ||||
|         unsigned idx = m_q2clauses[q]; | ||||
|         clause& c = *m_clauses[idx]; | ||||
|         if (!propagate(_binding, max_generation, c)) { | ||||
|         if (!propagate(_binding, max_generation, c))  | ||||
|             add_binding(c, pat, _binding, max_generation, min_gen, max_gen); | ||||
|             insert_clause_in_queue(idx); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     bool ematch::propagate(euf::enode* const* binding, unsigned max_generation, clause& c) { | ||||
|  | @ -314,7 +312,6 @@ namespace q { | |||
| 
 | ||||
|     sat::literal ematch::instantiate(clause& c, euf::enode* const* binding, lit const& l) { | ||||
|         expr_ref_vector _binding(m); | ||||
|         quantifier* q = c.q(); | ||||
|         for (unsigned i = 0; i < c.num_decls(); ++i) | ||||
|             _binding.push_back(binding[i]->get_expr()); | ||||
|         var_subst subst(m); | ||||
|  | @ -349,7 +346,6 @@ namespace q { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     /**
 | ||||
|      * basic clausifier, assumes q has been normalized. | ||||
|      */ | ||||
|  |  | |||
|  | @ -14,7 +14,6 @@ Author: | |||
|     Nikolaj Bjorner (nbjorner) 2021-01-24 | ||||
| 
 | ||||
| --*/ | ||||
| #pragma once | ||||
| 
 | ||||
| #include "sat/smt/q_eval.h" | ||||
| #include "sat/smt/euf_solver.h" | ||||
|  |  | |||
|  | @ -86,11 +86,9 @@ namespace q { | |||
|         quantifier_stat * stat  = f.c->m_stat; | ||||
|         quantifier* q = f.q(); | ||||
|         app* pat = f.b->m_pattern; | ||||
|         unsigned min_top_generation = f.b->m_min_top_generation; | ||||
|         unsigned max_top_generation = f.b->m_max_top_generation; | ||||
|         m_vals[COST]               = cost; | ||||
|         m_vals[MIN_TOP_GENERATION] = static_cast<float>(min_top_generation); | ||||
|         m_vals[MAX_TOP_GENERATION] = static_cast<float>(max_top_generation); | ||||
|         m_vals[MIN_TOP_GENERATION] = static_cast<float>(f.b->m_min_top_generation); | ||||
|         m_vals[MAX_TOP_GENERATION] = static_cast<float>(f.b->m_max_top_generation); | ||||
|         m_vals[INSTANCES]          = static_cast<float>(stat->get_num_instances_curr_branch()); | ||||
|         m_vals[SIZE]               = static_cast<float>(stat->get_size()); | ||||
|         m_vals[DEPTH]              = static_cast<float>(stat->get_depth()); | ||||
|  | @ -138,18 +136,17 @@ namespace q { | |||
|         fingerprint & f          = *ent.m_qb; | ||||
|         quantifier * q           = f.q(); | ||||
|         unsigned num_bindings    = f.size(); | ||||
|         euf::enode * const * bindings = f.nodes(); | ||||
|         q::quantifier_stat * stat = f.c->m_stat; | ||||
|         quantifier_stat * stat   = f.c->m_stat; | ||||
| 
 | ||||
|         ent.m_instantiated = true; | ||||
|                  | ||||
|         unsigned gen = get_new_gen(f, ent.m_cost); | ||||
|         if (em.propagate(bindings, gen, *f.c)) | ||||
|         if (em.propagate(f.nodes(), gen, *f.c)) | ||||
|             return; | ||||
| 
 | ||||
|         auto* ebindings = m_subst(q, num_bindings); | ||||
|         for (unsigned i = 0; i < num_bindings; ++i) | ||||
|             ebindings[i] = bindings[i]->get_expr(); | ||||
|             ebindings[i] = f.nodes()[i]->get_expr(); | ||||
|         expr_ref instance = m_subst(); | ||||
|         ctx.get_rewriter()(instance); | ||||
|         if (m.is_true(instance)) { | ||||
|  | @ -176,7 +173,7 @@ namespace q { | |||
|             if (0 == since_last_check && ctx.resource_limits_exceeded())  | ||||
|                 break; | ||||
| 
 | ||||
|             fingerprint& f    = *curr.m_qb; | ||||
|             fingerprint& f = *curr.m_qb; | ||||
| 
 | ||||
|             if (curr.m_cost <= m_eager_cost_threshold)  | ||||
|                 instantiate(curr); | ||||
|  |  | |||
|  | @ -16,13 +16,14 @@ Author: | |||
| Revision History: | ||||
| 
 | ||||
| --*/ | ||||
| #include "parsers/util/cost_parser.h" | ||||
| #include "smt/cost_evaluator.h" | ||||
| #include "util/warning.h" | ||||
| #include "ast/arith_decl_plugin.h" | ||||
| #include "ast/ast_pp.h" | ||||
| #include "ast/well_sorted.h" | ||||
| #include "util/warning.h" | ||||
| #include "ast/cost_evaluator.h" | ||||
| #include "ast/reg_decl_plugins.h" | ||||
| #include "parsers/util/cost_parser.h" | ||||
| 
 | ||||
| 
 | ||||
| void tst_simple_parser() { | ||||
|     ast_manager    m; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue