mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-31 03:32:28 +00:00 
			
		
		
		
	na
This commit is contained in:
		
							parent
							
								
									3bcd98b653
								
							
						
					
					
						commit
						4146e938e8
					
				
					 2 changed files with 12 additions and 8 deletions
				
			
		|  | @ -640,13 +640,6 @@ namespace bv { | |||
|         if (e->get_family_id() == bv.get_family_id() && try_repair_bv(e, i)) { | ||||
|             commit_eval(to_app(e->get_arg(i)));      | ||||
|             ctx.new_value_eh(e->get_arg(i)); | ||||
|             if (bv.is_bv(e)) { | ||||
|                 auto& val = eval(e); | ||||
|                 if (val.eval != val.bits()) { | ||||
|                     commit_eval(e); | ||||
|                     ctx.new_value_eh(e); | ||||
|                 } | ||||
|             } | ||||
|             return true; | ||||
|         } | ||||
|         return false; | ||||
|  | @ -852,6 +845,7 @@ namespace bv { | |||
|         } | ||||
|         else { | ||||
|             bool try_above = m_rand(2) == 0; | ||||
|             m_tmp.set_bw(a.bw); | ||||
|             if (try_above) { | ||||
|                 a.set_add(m_tmp, b.bits(), m_one); | ||||
|                 if (!a.is_zero(m_tmp) && a.set_random_at_least(m_tmp,  m_rand)) | ||||
|  | @ -1249,6 +1243,7 @@ namespace bv { | |||
|         } | ||||
|         else { | ||||
|             // a > t
 | ||||
|             m_tmp.set_bw(a.bw); | ||||
|             a.set_add(m_tmp, b.bits(), m_one); | ||||
|             if (a.is_zero(m_tmp)) | ||||
|                 return false;    | ||||
|  | @ -1263,6 +1258,7 @@ namespace bv { | |||
|         } | ||||
|         else { | ||||
|             // a < t
 | ||||
|             m_tmp.set_bw(a.bw); | ||||
|             if (b.is_zero()) | ||||
|                 return false; | ||||
|             a.set_sub(m_tmp, b.bits(), m_one); | ||||
|  | @ -1895,6 +1891,9 @@ namespace bv { | |||
|     void sls_eval::commit_eval(app* e) { | ||||
|         if (!bv.is_bv(e)) | ||||
|             return; | ||||
|         //verbose_stream() << mk_bounded_pp(e, m) << " " << wval(e) << "\n";
 | ||||
|         //
 | ||||
|         // SASSERT(wval(e).commit_eval());
 | ||||
|         VERIFY(wval(e).commit_eval()); | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -140,7 +140,12 @@ namespace sls { | |||
|                 verbose_stream() << "incorrect eval #" << e->get_id() << " " << mk_bounded_pp(e, m) << "\n"; | ||||
|             } | ||||
|             SASSERT(m_eval.eval_is_correct(e)); | ||||
|             ctx.new_value_eh(e); | ||||
|             if (m.is_bool(e)) { | ||||
|                 if (ctx.is_true(e) != m_eval.bval1(e)) | ||||
|                     ctx.flip(ctx.atom2bool_var(e)); | ||||
|             } | ||||
|             else | ||||
|                 ctx.new_value_eh(e); | ||||
|         } | ||||
|         else if (bv.is_bv(e)) { | ||||
|             IF_VERBOSE(2, verbose_stream() << "repair-up "; trace_repair(true, e));              | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue