mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-31 11:42:28 +00:00 
			
		
		
		
	fix nla_monotone lemmas again
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									3147be66fe
								
							
						
					
					
						commit
						b2bfb1faea
					
				
					 1 changed files with 6 additions and 1 deletions
				
			
		|  | @ -49,7 +49,7 @@ void monotone::monotonicity_lemma(monic const& m) { | |||
| 
 | ||||
|     Example: | ||||
| 
 | ||||
|     x <= -2 & y >= 3 => x*y <= -6 | ||||
|     0 >= x >= -2 & 0 <= y <= 3 => x*y >= -6 | ||||
| 
 | ||||
| */ | ||||
| void monotone::monotonicity_lemma_gt(const monic& m) { | ||||
|  | @ -58,6 +58,7 @@ void monotone::monotonicity_lemma_gt(const monic& m) { | |||
|     for (lpvar j : m.vars()) { | ||||
|         auto v = c().val(j); | ||||
|         lemma |= ineq(j, v.is_neg() ? llc::LT : llc::GT, v); | ||||
|         lemma |= ineq(j, v.is_neg() ? llc::GT : llc::LT, 0); | ||||
|         product *= v; | ||||
|     } | ||||
|     lemma |= ineq(m.var(), product.is_neg() ? llc::GE : llc::LE, product); | ||||
|  | @ -68,6 +69,10 @@ void monotone::monotonicity_lemma_gt(const monic& m) { | |||
|     /\_i |m[i]| >= |val(m[i])| => |m| >= |product_i val(m[i])| | ||||
|     <=> | ||||
|     \/_i |m[i]| < |val(m[i])| or |m| >= |product_i val(m[i])| | ||||
| 
 | ||||
|     Example: | ||||
| 
 | ||||
|     x <= -2 & y >= 3 => x*y <= -6 | ||||
| */ | ||||
| void monotone::monotonicity_lemma_lt(const monic& m) { | ||||
|     new_lemma lemma(c(), __FUNCTION__); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue