mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-30 19:22:28 +00:00 
			
		
		
		
	user propagator
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									5e5ef50dbc
								
							
						
					
					
						commit
						96f10b8c1c
					
				
					 15 changed files with 219 additions and 127 deletions
				
			
		|  | @ -24,19 +24,6 @@ Notes: | |||
| #include "solver/solver.h" | ||||
| 
 | ||||
| context_params::context_params() { | ||||
|     m_unsat_core     = false; | ||||
|     m_model          = true; | ||||
|     m_model_validate = false; | ||||
|     m_dump_models    = false; | ||||
|     m_auto_config    = true; | ||||
|     m_proof          = false; | ||||
|     m_trace          = false; | ||||
|     m_debug_ref_count = false; | ||||
|     m_smtlib2_compliant = false; | ||||
|     m_well_sorted_check = false; | ||||
|     m_timeout = UINT_MAX; | ||||
|     m_rlimit  = 0; | ||||
|     m_statistics = false; | ||||
|     updt_params(); | ||||
| } | ||||
| 
 | ||||
|  | @ -204,6 +191,8 @@ void context_params::get_solver_params(ast_manager const & m, params_ref & p, bo | |||
| } | ||||
| 
 | ||||
| ast_manager * context_params::mk_ast_manager() { | ||||
|     if (m_manager) | ||||
|         return m_manager; | ||||
|     ast_manager * r = alloc(ast_manager, | ||||
|                             m_proof ? PGM_ENABLED : PGM_DISABLED, | ||||
|                             m_trace ? m_trace_file_name.c_str() : nullptr); | ||||
|  |  | |||
|  | @ -26,24 +26,24 @@ class context_params { | |||
|     void set_bool(bool & opt, char const * param, char const * value); | ||||
|     void set_uint(unsigned & opt, char const * param, char const * value); | ||||
| 
 | ||||
|     unsigned    m_rlimit; | ||||
|     unsigned    m_rlimit { 0 }; | ||||
|     ast_manager* m_manager { nullptr }; | ||||
| 
 | ||||
| public: | ||||
|     bool        m_auto_config; | ||||
|     bool        m_proof; | ||||
|     bool        m_auto_config { true }; | ||||
|     bool        m_proof { false }; | ||||
|     std::string m_dot_proof_file; | ||||
|     bool        m_interpolants; | ||||
|     bool        m_debug_ref_count; | ||||
|     bool        m_trace; | ||||
|     bool        m_debug_ref_count { false }; | ||||
|     bool        m_trace { false }; | ||||
|     std::string m_trace_file_name; | ||||
|     bool        m_well_sorted_check; | ||||
|     bool        m_model; | ||||
|     bool        m_model_validate; | ||||
|     bool        m_dump_models; | ||||
|     bool        m_unsat_core; | ||||
|     bool        m_smtlib2_compliant; // it must be here because it enable/disable the use of coercions in the ast_manager.
 | ||||
|     unsigned    m_timeout; | ||||
|     bool        m_statistics; | ||||
|     bool        m_well_sorted_check { false }; | ||||
|     bool        m_model { true }; | ||||
|     bool        m_model_validate { false }; | ||||
|     bool        m_dump_models { false }; | ||||
|     bool        m_unsat_core { false }; | ||||
|     bool        m_smtlib2_compliant { false }; // it must be here because it enable/disable the use of coercions in the ast_manager.
 | ||||
|     unsigned    m_timeout { UINT_MAX } ; | ||||
|     bool        m_statistics { false }; | ||||
| 
 | ||||
|     unsigned rlimit() const { return m_rlimit; } | ||||
|     context_params(); | ||||
|  | @ -74,6 +74,9 @@ public: | |||
|        \brief Create an AST manager using this configuration. | ||||
|     */ | ||||
|     ast_manager * mk_ast_manager(); | ||||
| 
 | ||||
|     void set_foreign_manager(ast_manager* m) { m_manager = m; } | ||||
|     bool owns_manager() const { return m_manager != nullptr; } | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue