mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	fix sign for binary propagation hints
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									bffa7ff2f6
								
							
						
					
					
						commit
						cb279fba2b
					
				
					 3 changed files with 8 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -946,6 +946,11 @@ namespace sat {
 | 
			
		|||
                s += 6;
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
            if (0 == strncmp(s, "cut", 3)) {
 | 
			
		||||
                h.m_ty = hint_type::cut_h;
 | 
			
		||||
                s += 3;
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
            return false;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -999,7 +1004,6 @@ namespace sat {
 | 
			
		|||
                return;
 | 
			
		||||
            ws();            
 | 
			
		||||
        }
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -238,8 +238,8 @@ namespace arith {
 | 
			
		|||
            sat::proof_hint* bound_params = nullptr;
 | 
			
		||||
            if (ctx.use_drat()) {
 | 
			
		||||
                bound_params = &m_farkas2;
 | 
			
		||||
                m_farkas2.m_literals[0] = std::make_pair(rational(1), l1);
 | 
			
		||||
                m_farkas2.m_literals[1] = std::make_pair(rational(1), l2);
 | 
			
		||||
                m_farkas2.m_literals[0] = std::make_pair(rational(1), ~l1);
 | 
			
		||||
                m_farkas2.m_literals[1] = std::make_pair(rational(1), ~l2);
 | 
			
		||||
            }
 | 
			
		||||
            add_clause(l1, l2, bound_params);            
 | 
			
		||||
        };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -201,7 +201,7 @@ namespace arith {
 | 
			
		|||
        if (ctx.use_drat()) {
 | 
			
		||||
            ph = &m_farkas2;
 | 
			
		||||
            m_farkas2.m_literals[0] = std::make_pair(rational(1), lit1);
 | 
			
		||||
            m_farkas2.m_literals[1] = std::make_pair(rational(1), lit2);
 | 
			
		||||
            m_farkas2.m_literals[1] = std::make_pair(rational(1), ~lit2);
 | 
			
		||||
        }
 | 
			
		||||
        assign(lit2, m_core, m_eqs, ph); 
 | 
			
		||||
        ++m_stats.m_bounds_propagations;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue