mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-03 21:09:11 +00:00 
			
		
		
		
	Logging facility for spacer plus minor improvements (#3368)
* [spacer] logging solver events New option fp.spacer.trace_file='file.log' enables logging solving events into a file. These events are useful for debugging the solver, but also for visualizing the solving process in a variety of ways * [spacer] allow setting logic for solvers used by spacer * [spacer] option to set arithmetic solver explicitly * [spacer] improve of dumping solver_pool state for debugging * fix propagate_ineqs to handle strict inequality Co-authored-by: Nham Van Le <nv3le@precious3.eng.uwaterloo.ca>
This commit is contained in:
		
							parent
							
								
									f06deca7e0
								
							
						
					
					
						commit
						6180a5276d
					
				
					 5 changed files with 143 additions and 58 deletions
				
			
		| 
						 | 
				
			
			@ -24,6 +24,8 @@ Notes:
 | 
			
		|||
#define _SPACER_CONTEXT_H_
 | 
			
		||||
 | 
			
		||||
#include <queue>
 | 
			
		||||
#include <fstream>
 | 
			
		||||
 | 
			
		||||
#include "util/scoped_ptr_vector.h"
 | 
			
		||||
#include "muz/spacer/spacer_manager.h"
 | 
			
		||||
#include "muz/spacer/spacer_prop_solver.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -899,7 +901,7 @@ enum spacer_children_order {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
class context {
 | 
			
		||||
 | 
			
		||||
    friend class pred_transformer;
 | 
			
		||||
    struct stats {
 | 
			
		||||
        unsigned m_num_queries;
 | 
			
		||||
        unsigned m_num_reuse_reach;
 | 
			
		||||
| 
						 | 
				
			
			@ -982,6 +984,7 @@ class context {
 | 
			
		|||
    unsigned             m_blast_term_ite_inflation;
 | 
			
		||||
    scoped_ptr_vector<spacer_callback> m_callbacks;
 | 
			
		||||
    json_marshaller      m_json_marshaller;
 | 
			
		||||
    std::fstream*        m_trace_stream;
 | 
			
		||||
 | 
			
		||||
    // Solve using gpdr strategy
 | 
			
		||||
    lbool gpdr_solve_core();
 | 
			
		||||
| 
						 | 
				
			
			@ -991,6 +994,12 @@ class context {
 | 
			
		|||
                                    model &mdl,
 | 
			
		||||
                                    pob_ref_buffer &out);
 | 
			
		||||
 | 
			
		||||
    // progress logging
 | 
			
		||||
    void log_enter_level(unsigned lvl);
 | 
			
		||||
    void log_propagate();
 | 
			
		||||
    void log_expand_pob(pob &);
 | 
			
		||||
    void log_add_lemma(pred_transformer &, lemma&);
 | 
			
		||||
 | 
			
		||||
    // Functions used by search.
 | 
			
		||||
    lbool solve_core(unsigned from_lvl = 0);
 | 
			
		||||
    bool is_requeue(pob &n);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue