mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-31 03:32:28 +00:00 
			
		
		
		
	Add merge_level
This commit is contained in:
		
							parent
							
								
									70785a095e
								
							
						
					
					
						commit
						5e545c8f86
					
				
					 2 changed files with 10 additions and 0 deletions
				
			
		|  | @ -23,6 +23,15 @@ Author: | |||
| 
 | ||||
| namespace polysat { | ||||
| 
 | ||||
|     unsigned solver::merge_level(euf::enode* a, euf::enode* b) { | ||||
|         sat::literal_vector r; | ||||
|         ctx.get_eq_antecedents(a, b, r); | ||||
|         unsigned level = 0; | ||||
|         for (sat::literal lit : r) | ||||
|             level = std::max(level, s().lvl(lit)); | ||||
|         return level; | ||||
|     } | ||||
| 
 | ||||
|     // walk the egraph starting with pvar for suffix overlaps.
 | ||||
|     void solver::get_bitvector_suffixes(pvar pv, offset_slices& out) {        | ||||
|         uint_set seen; | ||||
|  |  | |||
|  | @ -111,6 +111,7 @@ namespace polysat { | |||
| 
 | ||||
|         sat::check_result intblast(); | ||||
| 
 | ||||
|         unsigned merge_level(euf::enode* a, euf::enode* b); | ||||
|         void explain_slice(pvar v, pvar w, unsigned offset, std::function<void(euf::enode*, euf::enode*)> const& consume); | ||||
|         void explain_fixed(pvar v, fixed_slice const& s, std::function<void(euf::enode*, euf::enode*)> const& consume_eq); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue