summaryrefslogtreecommitdiff
path: root/src/proof/cnf_proof.h
diff options
context:
space:
mode:
authorLiana Hadarean <lianahady@gmail.com>2013-10-07 22:49:45 -0400
committerLiana Hadarean <lianahady@gmail.com>2013-10-07 22:54:01 -0400
commit867e79e0823c689889224078dfaebec03aee9730 (patch)
treeb4c8281beda8f5263e32145e22dc58c7b1b8209a /src/proof/cnf_proof.h
parent1a56238b7ed75c6127293cb7c52d5b6b85245c64 (diff)
first draft implementation of uf proofs with holes
Diffstat (limited to 'src/proof/cnf_proof.h')
-rw-r--r--src/proof/cnf_proof.h42
1 files changed, 40 insertions, 2 deletions
diff --git a/src/proof/cnf_proof.h b/src/proof/cnf_proof.h
index 984dc76c6..8acb7a50f 100644
--- a/src/proof/cnf_proof.h
+++ b/src/proof/cnf_proof.h
@@ -16,20 +16,58 @@
**
**/
-#include "cvc4_private.h"
-#include "util/proof.h"
#ifndef __CVC4__CNF_PROOF_H
#define __CVC4__CNF_PROOF_H
+#include "cvc4_private.h"
+#include "util/proof.h"
+#include "proof/sat_proof.h"
+
+#include <ext/hash_set>
+#include <ext/hash_map>
#include <iostream>
+
namespace CVC4 {
namespace prop {
class CnfStream;
}
+
+typedef __gnu_cxx::hash_map < ClauseId, ::Minisat::Clause > IdToClause;
+typedef __gnu_cxx::hash_set<unsigned > VarSet;
+
+class TheoryProof;
+
class CnfProof {
+protected:
CVC4::prop::CnfStream* d_cnfStream;
+ IdToClause d_inputClauses;
+ IdToClause d_theoryLemmas;
+ VarSet d_propVars;
+ TheoryProof* d_theoryProof;
+ TheoryProof* getTheoryProof();
+
+ Expr getAtom(unsigned var);
public:
CnfProof(CVC4::prop::CnfStream* cnfStream);
+ void addInputClause(ClauseId id, const ::Minisat::Clause& clause);
+ void addTheoryLemma(ClauseId id, const ::Minisat::Clause& clause);
+ void addVariable(unsigned var);
+ void setTheoryProof(TheoryProof* theory_proof);
+ virtual void printAtomMapping(std::ostream& os, std::ostream& paren) = 0;
+ virtual void printClauses(std::ostream& os, std::ostream& paren) = 0;
+
+};
+
+class LFSCCnfProof: public CnfProof {
+ void printInputClauses(std::ostream& os, std::ostream& paren);
+ void printTheoryLemmas(std::ostream& os, std::ostream& paren);
+ void printClause(const Minisat::Clause& clause, std::ostream& os, std::ostream& paren);
+public:
+ LFSCCnfProof(CVC4::prop::CnfStream* cnfStream)
+ : CnfProof(cnfStream)
+ {}
+ virtual void printAtomMapping(std::ostream& os, std::ostream& paren);
+ virtual void printClauses(std::ostream& os, std::ostream& paren);
};
} /* CVC4 namespace */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback