mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-03 21:09:11 +00:00 
			
		
		
		
	fix #4493, use standard model evaluation for variables that have not been regiestered with solver (e.g., they are non-shared and unconstrained)
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									48f07932f7
								
							
						
					
					
						commit
						29ce22cfb1
					
				
					 1 changed files with 2 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -3389,7 +3389,7 @@ public:
 | 
			
		|||
        if (t.is_term()) {
 | 
			
		||||
 | 
			
		||||
            m_todo_terms.push_back(std::make_pair(t, rational::one()));
 | 
			
		||||
            TRACE("nl_value", tout << t.to_string() << "\n";);
 | 
			
		||||
            TRACE("nl_value", tout << "v" << v << " " << t.to_string() << "\n";);
 | 
			
		||||
            TRACE("nl_value", tout << "v" << v << " := w" << t.to_string() << "\n";
 | 
			
		||||
                  lp().print_term(lp().get_term(t), tout) << "\n";);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -3427,7 +3427,7 @@ public:
 | 
			
		|||
    model_value_proc * mk_value(enode * n, model_generator & mg) {
 | 
			
		||||
        theory_var v = n->get_th_var(get_id());
 | 
			
		||||
        expr* o = n->get_owner();
 | 
			
		||||
        if (use_nra_model()) {
 | 
			
		||||
        if (use_nra_model() && lp().external_to_local(v) != lp::null_lpvar) {
 | 
			
		||||
            anum const& an = nl_value(v, *m_a1);
 | 
			
		||||
            if (a.is_int(o) && !m_nla->am().is_int(an)) {
 | 
			
		||||
                return alloc(expr_wrapper_proc, a.mk_numeral(rational::zero(), a.is_int(o)));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue