mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-03 21:09:11 +00:00 
			
		
		
		
	include more qsat features
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									f175f864ec
								
							
						
					
					
						commit
						c4472ce717
					
				
					 15 changed files with 2197 additions and 190 deletions
				
			
		| 
						 | 
				
			
			@ -32,6 +32,7 @@ Revision History:
 | 
			
		|||
#include "nlarith_util.h"
 | 
			
		||||
#include "model_evaluator.h"
 | 
			
		||||
#include "smt_kernel.h"
 | 
			
		||||
#include "qe_arith.h"
 | 
			
		||||
 | 
			
		||||
namespace qe {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -266,23 +267,8 @@ namespace qe {
 | 
			
		|||
        // 
 | 
			
		||||
        // match 0 == p mod k, p mod k == 0
 | 
			
		||||
        //
 | 
			
		||||
        bool is_divides(app* e, numeral& k, expr_ref& p) {
 | 
			
		||||
            expr* e1, *e2;
 | 
			
		||||
            if (!m.is_eq(e, e1, e2)) {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
            return is_divides(e1, e2, k, p) || is_divides(e2, e1, k, p);
 | 
			
		||||
        }
 | 
			
		||||
    
 | 
			
		||||
        bool is_divides(expr* e1, expr* e2, numeral& k, expr_ref& p) {  
 | 
			
		||||
            if (m_arith.is_mod(e2) && 
 | 
			
		||||
                m_arith.is_numeral(e1, k) && 
 | 
			
		||||
                k.is_zero() &&
 | 
			
		||||
                m_arith.is_numeral(to_app(e2)->get_arg(1), k)) {
 | 
			
		||||
                p = to_app(e2)->get_arg(0);
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        bool is_divides(expr* e, numeral& k, expr_ref& p) {
 | 
			
		||||
            return qe::is_divides(m_arith, e, k, p);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        bool is_not_divides(app* e, app_ref& n, numeral& k, expr_ref& p) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue