mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-30 19:22:28 +00:00 
			
		
		
		
	re-organize muz_qe into separate units
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									4597872be8
								
							
						
					
					
						commit
						0d56499e2d
					
				
					 131 changed files with 994 additions and 20069 deletions
				
			
		
							
								
								
									
										51
									
								
								src/muz/transforms/dl_mk_loop_counter.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								src/muz/transforms/dl_mk_loop_counter.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,51 @@ | |||
| /*++
 | ||||
| Copyright (c) 2013 Microsoft Corporation | ||||
| 
 | ||||
| Module Name: | ||||
| 
 | ||||
|     dl_mk_loop_counter.h | ||||
| 
 | ||||
| Abstract: | ||||
| 
 | ||||
|     Add loop counter argument to relations. | ||||
| 
 | ||||
| Author: | ||||
| 
 | ||||
|     Nikolaj Bjorner (nbjorner) 2013-03-31 | ||||
| 
 | ||||
| Revision History: | ||||
| 
 | ||||
| --*/ | ||||
| #ifndef _DL_MK_LOOP_COUNTER_H_ | ||||
| #define _DL_MK_LOOP_COUNTER_H_ | ||||
| 
 | ||||
| #include"dl_rule_transformer.h" | ||||
| #include"arith_decl_plugin.h" | ||||
| 
 | ||||
| namespace datalog { | ||||
| 
 | ||||
|     class mk_loop_counter : public rule_transformer::plugin { | ||||
|         ast_manager& m; | ||||
|         context&     m_ctx; | ||||
|         arith_util   a; | ||||
|         func_decl_ref_vector m_refs; | ||||
|         obj_map<func_decl, func_decl*> m_new2old; | ||||
|         obj_map<func_decl, func_decl*> m_old2new; | ||||
| 
 | ||||
|         app_ref add_arg(rule_set const& src, rule_set& dst, app* fn, unsigned idx);         | ||||
|         app_ref del_arg(app* fn);         | ||||
|     public: | ||||
|         mk_loop_counter(context & ctx, unsigned priority = 33000); | ||||
|         ~mk_loop_counter(); | ||||
|          | ||||
|         rule_set * operator()(rule_set const & source); | ||||
| 
 | ||||
|         func_decl* get_old(func_decl* f) const { return m_new2old.find(f); } | ||||
| 
 | ||||
|         rule_set * revert(rule_set const& source); | ||||
|     }; | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
| #endif /* _DL_MK_LOOP_COUNTER_H_ */ | ||||
| 
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue