#include <common_proof_rules.h>
Inheritance diagram for CVC3::CommonProofRules:
Definition at line 46 of file common_proof_rules.h.
virtual CVC3::CommonProofRules::~CommonProofRules | ( | ) | [inline, virtual] |
virtual Theorem3 CVC3::CommonProofRules::queryTCC | ( | const Theorem & | phi, | |
const Theorem & | D_phi | |||
) | [pure virtual] |
Convert 2-valued formula to 3-valued by discharging its TCC ():
.
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::VCL::query().
virtual Theorem3 CVC3::CommonProofRules::implIntro3 | ( | const Theorem3 & | phi, | |
const std::vector< Expr > & | assump, | |||
const std::vector< Theorem > & | tccs | |||
) | [pure virtual] |
3-valued implication introduction rule:
phi | is the formula | |
assump | is the vector of assumptions | |
tccs | is the vector of TCCs for assumptions |
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::VCL::deriveClosure().
virtual Theorem CVC3::CommonProofRules::assumpRule | ( | const Expr & | a, | |
int | scope = -1 | |||
) | [pure virtual] |
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchSat::assertLit(), CVC3::SearchSat::check(), CVC3::SearchImplBase::newIntAssumption(), CVC3::ExprTransform::newPPrec(), CVC3::SearchImplBase::newUserAssumption(), CVC3::SearchSat::newUserAssumptionInt(), and CVC3::CompleteInstPreProcessor::simplifyQuant().
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::CoreTheoremProducer::IffToIte(), CVC3::CoreTheoremProducer::ImpToIte(), CVC3::ExprTransform::newPP(), CVC3::ExprTransform::newPPrec(), CVC3::ExprTransform::preprocess(), CVC3::ExprTransform::pushNegation(), CVC3::ExprTransform::pushNegation1(), CVC3::ExprTransform::pushNegationRec(), CVC3::Theory::reflexivityRule(), CVC3::SearchImplBase::replaceITE(), SAT::CNF_Manager::replaceITErec(), CVC3::TheoryCore::rewrite(), CVC3::ExprTransform::simplifyWithCare(), CVC3::ExprTransform::specialSimplify(), CVC3::ExprTransform::substitute(), and SAT::CNF_Manager::translateExprRec().
==> (a == a) IFF TRUE
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::TheoryCore::rewriteCore(), and CVC3::TheoryCore::rewriteLitCore().
(same for IFF)
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchImplBase::applyCNFRules(), CVC3::SearchSimple::checkValidMain(), CVC3::SearchEngineFast::checkValidMain(), CVC3::SearchImplBase::enqueueCNFrec(), SAT::CNF_Manager::replaceITErec(), and CVC3::Theory::symmetryRule().
virtual Theorem CVC3::CommonProofRules::transitivityRule | ( | const Theorem & | a1_eq_a2, | |
const Theorem & | a2_eq_a3 | |||
) | [pure virtual] |
(same for IFF)
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchImplBase::applyCNFRules(), CVC3::SearchImplBase::enqueueCNFrec(), CVC3::SearchImplBase::findInCNFCache(), CVC3::ExprTransform::newPPrec(), CVC3::ExprTransform::preprocess(), CVC3::ExprTransform::pushNegation1(), CVC3::ExprTransform::pushNegationRec(), CVC3::SearchImplBase::replaceITE(), CVC3::ExprTransform::simplifyWithCare(), CVC3::ExprTransform::substitute(), and CVC3::Theory::transitivityRule().
virtual Theorem CVC3::CommonProofRules::substitutivityRule | ( | const Expr & | e, | |
const Theorem & | thm | |||
) | [pure virtual] |
Optimized case for expr with one child.
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchImplBase::applyCNFRules(), CVC3::TheoryArith3::assertFact(), CVC3::SearchImplBase::enqueueCNFrec(), CVC3::Theory::findReduce(), CVC3::ExprTransform::newPPrec(), CVC3::ExprTransform::pushNegation1(), CVC3::ExprTransform::pushNegationRec(), SAT::CNF_Manager::replaceITErec(), CVC3::TheoryCore::simplifyOp(), CVC3::Theory::simplifyOp(), CVC3::ExprTransform::specialSimplify(), CVC3::ExprTransform::substitute(), CVC3::Theory::substitutivityRule(), CVC3::TheoryCore::update(), and CVC3::Theory::updateHelper().
virtual Theorem CVC3::CommonProofRules::substitutivityRule | ( | const Expr & | e, | |
const std::vector< unsigned > & | changed, | |||
const std::vector< Theorem > & | thms | |||
) | [pure virtual] |
except that only those arguments are given that .
e | is the original expression . | |
changed | is the vector of indices of changed kids | |
thms | are the theorems for the changed kids. |
Implemented in CVC3::CommonTheoremProducer.
virtual Theorem CVC3::CommonProofRules::substitutivityRule | ( | const Expr & | e, | |
const int | changed, | |||
const Theorem & | thm | |||
) | [pure virtual] |
Implemented in CVC3::CommonTheoremProducer.
virtual Theorem CVC3::CommonProofRules::contradictionRule | ( | const Theorem & | e, | |
const Theorem & | not_e | |||
) | [pure virtual] |
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchEngineFast::addLiteralFact(), and CVC3::SearchEngineFast::recordFact().
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::TheoryCore::processUpdates(), CVC3::TheoryCore::registerAtom(), CVC3::SearchEngineFast::split(), and CVC3::TheoryCore::update().
e1 <=> e2 ==> ~e1 <=> ~e2
Where ~e is the inverse of e (that is, ~(!e') = e').
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchImplBase::addToCNFCache(), CVC3::SearchImplBase::applyCNFRules(), CVC3::SearchSimple::checkValidMain(), CVC3::SearchEngineFast::checkValidMain(), CVC3::SearchImplBase::findInCNFCache(), and CVC3::TheoryCore::rewriteLiteral().
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchImplBase::enqueueCNFrec(), and CVC3::SearchEngineFast::split().
virtual Theorem CVC3::CommonProofRules::iffMP | ( | const Theorem & | e1, | |
const Theorem & | e1_iff_e2 | |||
) | [pure virtual] |
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchSimple::checkValidMain(), CVC3::SearchEngineFast::checkValidMain(), CVC3::SearchSimple::checkValidRec(), CVC3::SearchImplBase::enqueueCNFrec(), CVC3::SearchEngineFast::fixConflict(), CVC3::Theory::iffMP(), CVC3::ExprTransform::preprocess(), CVC3::SearchImplBase::replaceITE(), and SAT::CNF_Manager::replaceITErec().
virtual Theorem CVC3::CommonProofRules::implMP | ( | const Theorem & | e1, | |
const Theorem & | e1_impl_e2 | |||
) | [pure virtual] |
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::TheoryArithOld::addToBuffer(), and CVC3::TheoryArithOld::registerAtom().
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchEngineFast::addNonLiteralFact(), CVC3::SearchImplBase::applyCNFRules(), CVC3::TheoryCore::assertEqualities(), CVC3::TheoryCore::assertFactCore(), CVC3::TheoryArithOld::checkAssertEqInvariant(), CVC3::TheoryArith3::checkAssertEqInvariant(), CVC3::TheoryCore::checkSolved(), CVC3::SearchImplBase::enqueueCNFrec(), CVC3::SearchSat::newUserAssumptionIntHelper(), CVC3::TheoryArithOld::processIntEq(), CVC3::TheoryArithNew::processIntEq(), CVC3::TheoryArith3::processIntEq(), CVC3::TheoryBitvector::rewriteBV(), and CVC3::TheoryBitvector::solve().
virtual Theorem CVC3::CommonProofRules::andIntro | ( | const Theorem & | e1, | |
const Theorem & | e2 | |||
) | [pure virtual] |
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchSimple::addNonLiteralFact(), CVC3::TheoryArithOld::processSimpleIntEq(), CVC3::TheoryArithNew::processSimpleIntEq(), CVC3::TheoryArith3::processSimpleIntEq(), CVC3::TheoryArithOld::solvedForm(), CVC3::TheoryArithNew::solvedForm(), and CVC3::TheoryArith3::solvedForm().
virtual Theorem CVC3::CommonProofRules::implIntro | ( | const Theorem & | phi, | |
const std::vector< Expr > & | assump | |||
) | [pure virtual] |
Implication introduction rule:
.
phi | is the formula | |
assump | is the vector of assumptions |
Implemented in CVC3::CommonTheoremProducer.
e1 => e2 ==> ~e2 => ~e1
Where ~e is the inverse of e (that is, ~(!e') = e').
Implemented in CVC3::CommonTheoremProducer.
==> ITE(TRUE, e1, e2) == e1
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::Theory::rewriteIte().
==> ITE(FALSE, e1, e2) == e2
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::Theory::rewriteIte().
==> ITE(c, e, e) == e
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::Theory::rewriteIte(), and CVC3::TheoryCore::simplifyOp().
==> (e1 <=> e2) <=> [simplified expr]
Rewrite formulas like FALSE/TRUE <=> e, e <=> NOT e, etc.
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::TheoryCore::rewrite(), and CVC3::TheoryBitvector::rewriteBoolean().
==> AND(e1,e2) IFF [simplified expr]
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::TheoryBitvector::computeTCC(), CVC3::Theory::computeTCC(), and CVC3::Theory::rewriteAnd().
==> OR(e1,...,en) IFF [simplified expr]
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchEngineFast::fixConflict(), and CVC3::Theory::rewriteOr().
==> NOT TRUE IFF FALSE
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::CoreTheoremProducer::NotToIte(), CVC3::ExprTransform::pushNegation1(), CVC3::ExprTransform::pushNegationRec(), CVC3::TheoryBitvector::rewriteBoolean(), and CVC3::TheoryCore::rewriteLitCore().
==> NOT FALSE IFF TRUE
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::CoreTheoremProducer::NotToIte(), CVC3::ExprTransform::pushNegation1(), CVC3::ExprTransform::pushNegationRec(), CVC3::TheoryBitvector::rewriteBoolean(), and CVC3::TheoryCore::rewriteLitCore().
==> NOT NOT e IFF e, takes !!e
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchImplBase::findInCNFCache(), CVC3::ExprTransform::pushNegation1(), CVC3::ExprTransform::pushNegationRec(), CVC3::TheoryBitvector::rewriteBoolean(), CVC3::TheoryCore::rewriteCore(), and CVC3::TheoryCore::rewriteLitCore().
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::TheoryCore::assertFormula(), CVC3::SearchEngineFast::bcp(), CVC3::CompleteInstPreProcessor::collectIndex(), CVC3::CompleteInstPreProcessor::isMacro(), CVC3::TheoryArithOld::processSimpleIntEq(), CVC3::TheoryArithNew::processSimpleIntEq(), CVC3::TheoryArith3::processSimpleIntEq(), CVC3::CompleteInstPreProcessor::recSkolemize(), CVC3::TheoryBitvector::rewriteBV(), and CVC3::TheoryBitvector::solve().
skolem rewrite rule: Introduces axiom |- Exists(x) phi(x) <=> phi(c) where c is a constant defined by the expression Exists(x) phi(x)
Implemented in CVC3::CommonTheoremProducer.
Special version of skolemizeRewrite for "EXISTS x. t = x".
Implemented in CVC3::CommonTheoremProducer.
|- EXISTS x. e = x
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::TheoryArithNew::getVariableIntroThm().
If thm is (EXISTS x: phi(x)), create the Skolemized version and add it to the database. Otherwise returns just thm.
thm | is the Theorem(EXISTS x: phi(x)) |
Implemented in CVC3::CommonTheoremProducer.
Retrun a theorem "|- e = v" for a new Skolem constant v.
This is equivalent to skolemize(d_core->varIntroRule(e)), only more efficient.
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchImplBase::applyCNFRules(), CVC3::TheoryArithOld::DifferenceLogicGraph::computeModel(), CVC3::SearchImplBase::enqueueCNFrec(), CVC3::TheoryArray::renameExpr(), CVC3::SearchImplBase::replaceITE(), SAT::CNF_Manager::replaceITErec(), and CVC3::TheoryArithOld::TheoryArithOld().
virtual Theorem CVC3::CommonProofRules::trueTheorem | ( | ) | [pure virtual] |
==> TRUE
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchSat::check(), CVC3::TheoryArithOld::doSolve(), CVC3::TheoryArith3::doSolve(), CVC3::VCL::query(), and CVC3::SearchSimple::SearchSimple().
virtual std::vector<Theorem>& CVC3::CommonProofRules::getSkolemAxioms | ( | ) | [pure virtual] |
virtual void CVC3::CommonProofRules::clearSkolemAxioms | ( | ) | [pure virtual] |
virtual Theorem CVC3::CommonProofRules::ackermann | ( | const Expr & | e1, | |
const Expr & | e2 | |||
) | [pure virtual] |
Implemented in CVC3::CommonTheoremProducer.
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::ExprTransform::newPPrec(), and CVC3::ExprTransform::simplifyWithCare().