#include <search_theorem_producer.h>
Inheritance diagram for CVCL::SearchEngineTheoremProducer:
Definition at line 40 of file search_theorem_producer.h.
|
Definition at line 55 of file search_theorem_producer.cpp. |
|
Definition at line 55 of file search_theorem_producer.h. |
|
Definition at line 192 of file search_theorem_producer.cpp. References CVCL::Assumptions::begin(), CVCL::Assumptions::end(), and CVCL::Theorem::getAssumptions(). |
|
Definition at line 410 of file search_theorem_producer.cpp. References CVCL::Expr::begin(), CVCL::ExprMap< Data >::count(), CVCL::Expr::end(), CVCL::EXISTS, CVCL::FORALL, CVCL::Expr::getBody(), CVCL::Expr::getKind(), and CVCL::Expr::toString(). Referenced by checkSoundNoSkolems(), and eliminateSkolemAxioms(). |
|
Definition at line 428 of file search_theorem_producer.cpp. References CVCL::Assumptions::begin(), checkSoundNoSkolems(), CVCL::Assumptions::end(), CVCL::Theorem::getAssumptions(), CVCL::Theorem::getExpr(), CVCL::Theorem::isAssump(), CVCL::Theorem::isFlagged(), and CVCL::Theorem::setFlag(). |
|
Proof by contradiction:
. does not have to be present in the assumptions.
Implements CVCL::SearchEngineRules. Definition at line 67 of file search_theorem_producer.cpp. References CVCL::Theorem::getAssumptions(), CVCL::Theorem::getExpr(), CVCL::Theorem::getProof(), CVCL::Expr::isFalse(), CVCL::Proof::isNull(), CVCL::Theorem::isNull(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), CVCL::Theorem::toString(), CVCL::TheoremProducer::withAssumptions(), and CVCL::TheoremProducer::withProof(). |
|
Negation introduction:
.
Implements CVCL::SearchEngineRules. Definition at line 98 of file search_theorem_producer.cpp. References CVCL::Theorem::getAssumptions(), CVCL::Theorem::getExpr(), CVCL::Theorem::getProof(), CVCL::Expr::isFalse(), CVCL::Expr::isNot(), CVCL::Proof::isNull(), CVCL::Theorem::isNull(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), CVCL::Expr::toString(), CVCL::Theorem::toString(), CVCL::TheoremProducer::withAssumptions(), and CVCL::TheoremProducer::withProof(). |
|
Case split:
.
Implements CVCL::SearchEngineRules. Definition at line 131 of file search_theorem_producer.cpp. References CVCL::Assumptions::add(), CVCL::Theorem::getAssumptions(), CVCL::Theorem::getExpr(), CVCL::Theorem::getProof(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), CVCL::Expr::toString(), CVCL::TheoremProducer::withAssumptions(), and CVCL::TheoremProducer::withProof(). |
|
Eliminate skolem axioms: Gamma, Delta |- false => Gamma|- false where Delta is a set of skolem axioms {|-Exists(x) phi (x) => phi(c)} and gamma does not contain any of the skolem constants c. Implements CVCL::SearchEngineRules. Definition at line 453 of file search_theorem_producer.cpp. References CVCL::Expr::begin(), checkSoundNoSkolems(), CVCL::Theorem::clearAllFlags(), CVCL::TheoremProducer::d_em, CVCL::Theorem::getAssumptionsCopy(), CVCL::Theorem::getExpr(), CVCL::Theorem::getProof(), CVCL::Expr::getType(), CVCL::Expr::getVars(), CVCL::Type::isBool(), CVCL::Expr::isExists(), CVCL::Expr::isFalse(), CVCL::Expr::mkOp(), CVCL::ExprManager::newLeafExpr(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), CVCL::Expr::skolemExpr(), CVCL::TRACE, CVCL::TheoremProducer::withAssumptions(), and CVCL::TheoremProducer::withProof(). |
|
Conflict clause rule:
.
Implements CVCL::SearchEngineRules. |
|
Cut rule:
.
Implements CVCL::SearchEngineRules. |
|
Unit propagation rule:
.
Implements CVCL::SearchEngineRules. Definition at line 513 of file search_theorem_producer.cpp. References CVCL::Assumptions::add(), CVCL::Expr::arity(), CVCL::Theorem::getExpr(), CVCL::Theorem::getProof(), CVCL::int2string(), CVCL::Expr::isNot(), CVCL::Expr::isOr(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), CVCL::Expr::toString(), CVCL::Theorem::toString(), CVCL::TheoremProducer::withAssumptions(), and CVCL::TheoremProducer::withProof(). |
|
"Conflict" rule (all literals in a clause become FALSE)
Implements CVCL::SearchEngineRules. Definition at line 1138 of file search_theorem_producer.cpp. References CVCL::Assumptions::add(), CVCL::Expr::arity(), CVCL::TheoremProducer::d_em, CVCL::ExprManager::falseExpr(), CVCL::Theorem::getExpr(), CVCL::Theorem::getProof(), CVCL::int2string(), CVCL::Expr::isNot(), CVCL::Expr::isOr(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), CVCL::Expr::toString(), CVCL::Theorem::toString(), CVCL::TheoremProducer::withAssumptions(), and CVCL::TheoremProducer::withProof(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AND(x1,...,xn) <=> v |- CNF[AND(x1,...,xn) <=> v].
Implements CVCL::SearchEngineRules. Definition at line 1192 of file search_theorem_producer.cpp. References CVCL::AND, and opCNFRule(). |
|
OR(x1,...,xn) <=> v |- CNF[OR(x1,...,xn) <=> v].
Implements CVCL::SearchEngineRules. Definition at line 1197 of file search_theorem_producer.cpp. References opCNFRule(), and CVCL::OR. |
|
(x1 => x2) <=> v |- CNF[(x1 => x2) <=> v]
Implements CVCL::SearchEngineRules. Definition at line 1202 of file search_theorem_producer.cpp. References CVCL::IMPLIES, and opCNFRule(). |
|
(x1 <=> x2) <=> v |- CNF[(x1 <=> x2) <=> v]
Implements CVCL::SearchEngineRules. Definition at line 1207 of file search_theorem_producer.cpp. References CVCL::IFF, and opCNFRule(). |
|
ITE(c, x1, x2) <=> v |- CNF[ITE(c, x1, x2) <=> v].
Implements CVCL::SearchEngineRules. Definition at line 1212 of file search_theorem_producer.cpp. References CVCL::ITE, and opCNFRule(). |
|
ITE(c, f1, f2) |- (NOT c OR f1) AND (c OR f2).
Implements CVCL::SearchEngineRules. Definition at line 1218 of file search_theorem_producer.cpp. References CVCL::Theorem::getAssumptionsCopy(), CVCL::Theorem::getExpr(), CVCL::Theorem::getProof(), CVCL::Expr::getType(), CVCL::Type::isBool(), CVCL::Expr::isITE(), CVCL::Expr::negate(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), CVCL::Expr::toString(), CVCL::TheoremProducer::withAssumptions(), and CVCL::TheoremProducer::withProof(). |
|
e1 <=> e2 |- (NOT e1 OR e2) AND (e1 OR NOT e2)
Implements CVCL::SearchEngineRules. Definition at line 1240 of file search_theorem_producer.cpp. References CVCL::Theorem::getAssumptionsCopy(), CVCL::Theorem::getExpr(), CVCL::Theorem::getLHS(), CVCL::Theorem::getProof(), CVCL::Theorem::getRHS(), CVCL::Expr::getType(), CVCL::Type::isBool(), CVCL::Theorem::isRewrite(), CVCL::Expr::negate(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), CVCL::Expr::toString(), CVCL::TheoremProducer::withAssumptions(), and CVCL::TheoremProducer::withProof(). |
|
Referenced by andCNFRule(), iffCNFRule(), impCNFRule(), iteCNFRule(), and orCNFRule(). |
|
produces the CNF for the formula v <==> phi
Definition at line 1347 of file search_theorem_producer.cpp. References CVCL::AND, CVCL::andExpr(), CVCL::Expr::begin(), CVCL::Expr::end(), CVCL::Expr::getKind(), CVCL::IFF, CVCL::IMPLIES, CVCL::ITE, CVCL::Expr::negate(), CVCL::OR, CVCL::orExpr(), CVCL::Expr::orExpr(), and CVCL::Expr::toString(). |
|
checks if phi has v in local cache of opCNFRule, if so reuse v. similarly for ( ! ... ! (phi)) |
|
Definition at line 44 of file search_theorem_producer.h. |