CVC3
|
#include <common_proof_rules.h>
Inherited by CVC3::CommonTheoremProducer.
Definition at line 46 of file common_proof_rules.h.
virtual CVC3::CommonProofRules::~CommonProofRules | ( | ) | [inline, virtual] |
Destructor.
Definition at line 49 of file common_proof_rules.h.
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.
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.
Implemented in CVC3::CommonTheoremProducer.
Referenced by SAT::CNF_Manager::concreteThm(), 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.
(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::rewriteUsingSymmetry | ( | const Expr & | a1_eq_a2 | ) | [pure virtual] |
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::TheoryArray::rewrite(), CVC3::TheoryArithOld::rewrite(), CVC3::TheoryArith3::rewrite(), and CVC3::TheoryCore::update().
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 Theorem & | thm1, | ||
const Theorem & | thm2 | ||
) | [pure virtual] |
Optimized case for expr with two children.
Implemented in CVC3::CommonTheoremProducer.
virtual Theorem CVC3::CommonProofRules::substitutivityRule | ( | const Op & | op, |
const std::vector< Theorem > & | thms | ||
) | [pure virtual] |
Implemented in CVC3::CommonTheoremProducer.
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.
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::TheoryArithOld::rewrite(), CVC3::TheoryArith3::rewrite(), and CVC3::TheoryCore::simplifyOp().
Implemented in CVC3::CommonTheoremProducer.
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::TheoryCore::registerAtom(), CVC3::SearchEngineFast::split(), CVC3::TheoryUF::update(), and CVC3::TheoryCore::update().
Implemented in CVC3::CommonTheoremProducer.
Referenced by 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::SearchImplBase::enqueueCNFrec(), CVC3::SearchEngineFast::fixConflict(), CVC3::TheoryArithNew::getVariableIntroThm(), 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.
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchEngineFast::addNonLiteralFact(), CVC3::SearchImplBase::applyCNFRules(), CVC3::TheoryCore::assertEqualities(), CVC3::TheoryArithOld::checkAssertEqInvariant(), CVC3::TheoryArith3::checkAssertEqInvariant(), CVC3::TheoryCore::checkSolved(), CVC3::SearchImplBase::enqueueCNFrec(), CVC3::SearchSat::newUserAssumptionIntHelper(), and CVC3::TheoryBitvector::solve().
virtual Theorem CVC3::CommonProofRules::andIntro | ( | const std::vector< Theorem > & | es | ) | [pure virtual] |
Implemented in CVC3::CommonTheoremProducer.
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().
Implemented in CVC3::CommonTheoremProducer.
==> (e1 <=> e2) <=> [simplified expr]
Rewrite formulas like FALSE/TRUE <=> e, e <=> NOT e, etc.
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::TheoryCore::rewrite().
==> 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::ExprTransform::pushNegation1(), and CVC3::ExprTransform::pushNegationRec().
==> NOT FALSE IFF TRUE
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::ExprTransform::pushNegation1(), and CVC3::ExprTransform::pushNegationRec().
==> NOT NOT e IFF e, takes !!e
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchImplBase::findInCNFCache(), CVC3::ExprTransform::pushNegation1(), and CVC3::ExprTransform::pushNegationRec().
==> NOT FORALL (vars): e IFF EXISTS (vars) NOT e
Implemented in CVC3::CommonTheoremProducer.
==> NOT EXISTS (vars): e IFF FORALL (vars) NOT e
Implemented in CVC3::CommonTheoremProducer.
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.
Referenced by CVC3::TheoryArithNew::getVariableIntroThm().
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::SearchImplBase::enqueueCNFrec(), CVC3::Theory::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::SearchSimple::SearchSimple().
AND(e1,e2) ==> [simplified expr].
Implemented in CVC3::CommonTheoremProducer.
OR(e1,...,en) ==> [simplified expr].
Implemented in CVC3::CommonTheoremProducer.
virtual std::vector<Theorem>& CVC3::CommonProofRules::getSkolemAxioms | ( | ) | [pure virtual] |
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchImplBase::processResult().
virtual void CVC3::CommonProofRules::clearSkolemAxioms | ( | ) | [pure virtual] |
Implemented in CVC3::CommonTheoremProducer.
Referenced by CVC3::SearchImplBase::checkValid().
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().