mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-03 21:09:11 +00:00 
			
		
		
		
	na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									ca9fbcf6f4
								
							
						
					
					
						commit
						ed9c0b84f6
					
				
					 2 changed files with 9 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -33,7 +33,7 @@ namespace polysat {
 | 
			
		|||
        for (auto c1 : core) {
 | 
			
		||||
            if (!c1->is_ule())
 | 
			
		||||
                continue;
 | 
			
		||||
            if (!c1.is_currently_false(s))
 | 
			
		||||
            if (c1.is_currently_true(s))
 | 
			
		||||
                continue;
 | 
			
		||||
            auto c = c1.as_inequality();
 | 
			
		||||
            if (try_ugt_x(v, core, c))
 | 
			
		||||
| 
						 | 
				
			
			@ -70,7 +70,7 @@ namespace polysat {
 | 
			
		|||
        SASSERT(!crit1.is_currently_true(s));
 | 
			
		||||
 | 
			
		||||
        LOG("critical " << m_rule << " " << crit1);
 | 
			
		||||
        LOG("consequent " << c << " value: " << c.bvalue(s) << " " << c.is_currently_false(s) << " " << core.contains(~c));
 | 
			
		||||
        LOG("consequent " << c << " value: " << c.bvalue(s) << " is-false: " << c.is_currently_false(s) << " " << core.contains(~c));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // ensure new core is a conflict
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -469,12 +469,15 @@ namespace polysat {
 | 
			
		|||
        ++m_stats.m_num_conflicts;
 | 
			
		||||
 | 
			
		||||
        SASSERT(is_conflict());
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
        if (m_conflict.conflict_var() != null_var) {
 | 
			
		||||
            pvar v = m_conflict.conflict_var();
 | 
			
		||||
            // This case corresponds to a propagation of conflict_var, except it's not explicitly on the stack.
 | 
			
		||||
            VERIFY(m_viable.resolve(m_conflict.conflict_var(), m_conflict));
 | 
			
		||||
            // TBD: make sure last value decision is blocked by this conflict.
 | 
			
		||||
            // A conflict in test_l5 reverts v1 = 2 more than once.
 | 
			
		||||
            VERIFY(m_viable.resolve(v, m_conflict));
 | 
			
		||||
            // TBD: saturate resulting conflict to get better lemmas.
 | 
			
		||||
            LOG("try-saturate");
 | 
			
		||||
            m_conflict.try_saturate(v);
 | 
			
		||||
            LOG("end-try-saturate");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        search_iterator search_it(m_search);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue