mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-03 21:09:11 +00:00 
			
		
		
		
	Merge branch 'unstable' of https://github.com/Z3Prover/z3 into unstable
This commit is contained in:
		
						commit
						42c7277ea8
					
				
					 4 changed files with 11 additions and 4 deletions
				
			
		| 
						 | 
					@ -247,6 +247,7 @@ public:
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        m_lower = m_upper;
 | 
				
			||||||
        trace();
 | 
					        trace();
 | 
				
			||||||
        return l_true;
 | 
					        return l_true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -468,6 +469,9 @@ public:
 | 
				
			||||||
        fml = mk_not(m, mk_and(m, m_B.size(), m_B.c_ptr()));
 | 
					        fml = mk_not(m, mk_and(m, m_B.size(), m_B.c_ptr()));
 | 
				
			||||||
        s().assert_expr(fml);
 | 
					        s().assert_expr(fml);
 | 
				
			||||||
        m_lower += w;
 | 
					        m_lower += w;
 | 
				
			||||||
 | 
					        if (m_st == s_primal_dual) {
 | 
				
			||||||
 | 
					            m_lower = std::min(m_lower, m_upper);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        trace();
 | 
					        trace();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -959,11 +959,13 @@ namespace sat {
 | 
				
			||||||
                assign(lit, justification());
 | 
					                assign(lit, justification());
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case l_false: {
 | 
					            case l_false: {
 | 
				
			||||||
 | 
					                m_assumptions.push_back(lit);       
 | 
				
			||||||
                SASSERT(!inconsistent());
 | 
					                SASSERT(!inconsistent());
 | 
				
			||||||
                set_conflict(justification(), ~lit);
 | 
					                set_conflict(justification(), ~lit);
 | 
				
			||||||
                flet<bool> _min1(m_config.m_minimize_core, false);
 | 
					                flet<bool> _min1(m_config.m_minimize_core, false);
 | 
				
			||||||
                flet<bool> _min2(m_config.m_minimize_core_partial, false);
 | 
					                flet<bool> _min2(m_config.m_minimize_core_partial, false);
 | 
				
			||||||
                resolve_conflict_for_unsat_core();
 | 
					                resolve_conflict_for_unsat_core();
 | 
				
			||||||
 | 
					                m_assumptions.pop_back();
 | 
				
			||||||
                weight += weights[i];
 | 
					                weight += weights[i];
 | 
				
			||||||
                blocker.push_back(lit);
 | 
					                blocker.push_back(lit);
 | 
				
			||||||
                TRACE("sat", tout << "core: " << m_core << "\nassumptions: " << m_assumptions << "\n";);
 | 
					                TRACE("sat", tout << "core: " << m_core << "\nassumptions: " << m_assumptions << "\n";);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -106,7 +106,11 @@ public:
 | 
				
			||||||
        dep2asm_t dep2asm;
 | 
					        dep2asm_t dep2asm;
 | 
				
			||||||
        VERIFY(l_true == internalize_formulas());
 | 
					        VERIFY(l_true == internalize_formulas());
 | 
				
			||||||
        VERIFY(l_true == internalize_assumptions(sz, assumptions, dep2asm));
 | 
					        VERIFY(l_true == internalize_assumptions(sz, assumptions, dep2asm));
 | 
				
			||||||
        m_solver.display_wcnf(out, sz, m_asms.c_ptr(), weights);
 | 
					        svector<unsigned> nweights;
 | 
				
			||||||
 | 
					        for (unsigned i = 0; i < m_asms.size(); ++i) {
 | 
				
			||||||
 | 
					            nweights.push_back((unsigned) m_weights[i]);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        m_solver.display_wcnf(out, m_asms.size(), m_asms.c_ptr(), nweights.c_ptr());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
    lbool check_sat(unsigned sz, expr * const * assumptions, double const* weights, double max_weight) {       
 | 
					    lbool check_sat(unsigned sz, expr * const * assumptions, double const* weights, double max_weight) {       
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -65,9 +65,6 @@ struct simplify_tactic::imp {
 | 
				
			||||||
                proof * pr = g.pr(idx);
 | 
					                proof * pr = g.pr(idx);
 | 
				
			||||||
                new_pr     = m().mk_modus_ponens(pr, new_pr);
 | 
					                new_pr     = m().mk_modus_ponens(pr, new_pr);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (m_manager.is_false(new_curr)) {
 | 
					 | 
				
			||||||
                std::cout << mk_pp(curr, m_manager) << " => " << new_curr << "\n";
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            g.update(idx, new_curr, new_pr, g.dep(idx));
 | 
					            g.update(idx, new_curr, new_pr, g.dep(idx));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        TRACE("after_simplifier_bug", g.display(tout););
 | 
					        TRACE("after_simplifier_bug", g.display(tout););
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue