diff options
author | ajreynol <andrew.j.reynolds@gmail.com> | 2015-05-25 10:34:26 +0200 |
---|---|---|
committer | ajreynol <andrew.j.reynolds@gmail.com> | 2015-05-25 10:34:26 +0200 |
commit | 1e22a9ebb7b1825cd8f35fe258e6ac345773a9e5 (patch) | |
tree | 3d3d314097811fab13233de034c8903c76d370a5 | |
parent | 520c5903a4c399b7c5beaa2d353bbf9324009ee7 (diff) |
Bug fix for CNF proofs (and/or case 1), thanks to Alain Mebsout for bug report.
-rw-r--r-- | src/proof/cnf_proof.cpp | 4 | ||||
-rw-r--r-- | test/regress/regress0/uf/Makefile.am | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/proof/cnf_proof.cpp b/src/proof/cnf_proof.cpp index 9634cb47b..b546fcf87 100644 --- a/src/proof/cnf_proof.cpp +++ b/src/proof/cnf_proof.cpp @@ -194,7 +194,7 @@ void LFSCCnfProof::printInputClauses(std::ostream& os, std::ostream& paren) { //Assert( child_pol==childPol[child_base] ); os_main << "(or_elim_1 _ _ "; prop::SatLiteral lit = (*clause)[itcic->second]; - if( childPol[child_base] ){ + if( childPol[child_base] && base_pol ){ os_main << ProofManager::getLitName(lit) << " "; }else{ os_main << "(not_not_intro _ " << ProofManager::getLitName(lit) << ") "; @@ -224,7 +224,7 @@ void LFSCCnfProof::printInputClauses(std::ostream& os, std::ostream& paren) { if( itcic!=childIndex.end() ){ os << "(contra _ "; prop::SatLiteral lit = (*clause)[itcic->second]; - if( childPol[child_base] ){ + if( childPol[child_base] && base_pol ){ os << os_main.str() << " " << ProofManager::getLitName(lit); }else{ os << ProofManager::getLitName(lit) << " " << os_main.str(); diff --git a/test/regress/regress0/uf/Makefile.am b/test/regress/regress0/uf/Makefile.am index a8e7b6a8e..50de00b61 100644 --- a/test/regress/regress0/uf/Makefile.am +++ b/test/regress/regress0/uf/Makefile.am @@ -48,7 +48,8 @@ TESTS = \ proof00.smt2 \ cnf-iff.smt2 \ cnf-iff-base.smt2 \ - cnf-ite.smt2 + cnf-ite.smt2 \ + cnf-and-neg.smt2 EXTRA_DIST = $(TESTS) \ mkpidgeon |