mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-03 21:09:11 +00:00 
			
		
		
		
	
							parent
							
								
									0ca5f59e35
								
							
						
					
					
						commit
						8a961a5ce9
					
				
					 5 changed files with 8 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -3353,7 +3353,6 @@ proof * ast_manager::mk_redundant_del(expr* e) {
 | 
			
		|||
proof * ast_manager::mk_clause_trail(unsigned n, proof* const* ps) {    
 | 
			
		||||
    ptr_buffer<expr> args;
 | 
			
		||||
    args.append(n, (expr**) ps);
 | 
			
		||||
    args.push_back(mk_false());
 | 
			
		||||
    return mk_app(m_basic_family_id, PR_CLAUSE_TRAIL, 0, nullptr, args.size(), args.c_ptr());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -114,7 +114,7 @@ namespace smt {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    proof_ref clause_proof::get_proof() {
 | 
			
		||||
    proof_ref clause_proof::get_proof(bool inconsistent) {
 | 
			
		||||
        TRACE("context", tout << "get-proof " << ctx.get_fparams().m_clause_proof << "\n";);
 | 
			
		||||
        if (!ctx.get_fparams().m_clause_proof) {
 | 
			
		||||
            return proof_ref(m);
 | 
			
		||||
| 
						 | 
				
			
			@ -141,8 +141,8 @@ namespace smt {
 | 
			
		|||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        proof_ref result(m.mk_clause_trail(ps.size(), ps.c_ptr()), m);
 | 
			
		||||
        return result;
 | 
			
		||||
        ps.push_back(m.mk_bool_val(!inconsistent));
 | 
			
		||||
        return proof_ref(m.mk_clause_trail(ps.size(), ps.c_ptr()), m);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    std::ostream& operator<<(std::ostream& out, clause_proof::status st) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,7 +67,7 @@ namespace smt {
 | 
			
		|||
        void add(clause& c);
 | 
			
		||||
        void add(unsigned n, literal const* lits, clause_kind k, justification* j);
 | 
			
		||||
        void del(clause& c);
 | 
			
		||||
        proof_ref get_proof();
 | 
			
		||||
        proof_ref get_proof(bool inconsistent);
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    std::ostream& operator<<(std::ostream& out, clause_proof::status st);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4173,7 +4173,7 @@ namespace smt {
 | 
			
		|||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
        else if (m_fparams.m_clause_proof && !m.proofs_enabled()) {
 | 
			
		||||
            m_unsat_proof = m_clause_proof.get_proof();
 | 
			
		||||
            m_unsat_proof = m_clause_proof.get_proof(inconsistent());
 | 
			
		||||
        }
 | 
			
		||||
        else if (m.proofs_enabled()) {
 | 
			
		||||
            m_unsat_proof = m_conflict_resolution->get_lemma_proof();
 | 
			
		||||
| 
						 | 
				
			
			@ -4500,7 +4500,7 @@ namespace smt {
 | 
			
		|||
 | 
			
		||||
    proof * context::get_proof() {        
 | 
			
		||||
        if (!m_unsat_proof) {
 | 
			
		||||
            m_unsat_proof = m_clause_proof.get_proof();
 | 
			
		||||
            m_unsat_proof = m_clause_proof.get_proof(inconsistent());
 | 
			
		||||
        }
 | 
			
		||||
        TRACE("context", tout << m_unsat_proof << "\n";);
 | 
			
		||||
        return m_unsat_proof;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -208,7 +208,7 @@ public:
 | 
			
		|||
            }
 | 
			
		||||
            SASSERT(m_ctx);
 | 
			
		||||
            m_ctx->collect_statistics(m_stats);
 | 
			
		||||
            proof * pr = m_ctx->get_proof();
 | 
			
		||||
            proof_ref pr(m_ctx->get_proof(), m);
 | 
			
		||||
            TRACE("smt_tactic", tout << r << " " << pr << "\n";);
 | 
			
		||||
            switch (r) {
 | 
			
		||||
            case l_true: {
 | 
			
		||||
| 
						 | 
				
			
			@ -267,7 +267,7 @@ public:
 | 
			
		|||
                result.push_back(in.get());
 | 
			
		||||
                if (pr) {
 | 
			
		||||
                    in->reset();
 | 
			
		||||
                    in->assert_expr(m.mk_const(symbol("trail"), m.mk_bool_sort()), pr, nullptr);
 | 
			
		||||
                    in->assert_expr(m.get_fact(pr), pr, nullptr);
 | 
			
		||||
                }
 | 
			
		||||
                if (m_candidate_models) {
 | 
			
		||||
                    switch (m_ctx->last_failure()) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue