CVC3::CommonProofRules Class Reference

#include <common_proof_rules.h>

Inheritance diagram for CVC3::CommonProofRules:

Inheritance graph
[legend]

List of all members.

Public Member Functions


Detailed Description

Definition at line 46 of file common_proof_rules.h.


Constructor & Destructor Documentation

virtual CVC3::CommonProofRules::~CommonProofRules (  )  [inline, virtual]

Destructor.

Definition at line 49 of file common_proof_rules.h.


Member Function Documentation

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 ($D_\phi$):

\[\frac{\Gamma_1\vdash_2 \phi\quad \Gamma_2\vdash_2 D_{\phi}} {\Gamma_1,\,\Gamma_2\vdash_3\phi}\]

.

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:

\[\frac{\Gamma_0,\,\alpha_1\,\ldots,\,\alpha_n\vdash_3\phi\quad (\Gamma_i\vdash D_{\alpha_i})_{i\in[1..n]}} {\Gamma_0,\,\Gamma_1, \ldots, \Gamma_n\vdash_3 (\bigwedge_{i=1}^n\alpha_i)\to\phi}\]

Parameters:
phi is the formula $\phi$
assump is the vector of assumptions $\alpha_1\ldots\alpha_n$
tccs is the vector of TCCs for assumptions $D_{\alpha_1}\ldots D_{\alpha_n}$

Implemented in CVC3::CommonTheoremProducer.

Referenced by CVC3::VCL::deriveClosure().

virtual Theorem CVC3::CommonProofRules::assumpRule ( const Expr a,
int  scope = -1 
) [pure virtual]

virtual Theorem CVC3::CommonProofRules::reflexivityRule ( const Expr a  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::rewriteReflexivity ( const Expr a_eq_a  )  [pure virtual]

==> (a == a) IFF TRUE

Implemented in CVC3::CommonTheoremProducer.

Referenced by CVC3::TheoryCore::rewriteCore(), and CVC3::TheoryCore::rewriteLitCore().

virtual Theorem CVC3::CommonProofRules::symmetryRule ( const Theorem a1_eq_a2  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::rewriteUsingSymmetry ( const Expr a1_eq_a2  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::transitivityRule ( const Theorem a1_eq_a2,
const Theorem a2_eq_a3 
) [pure virtual]

virtual Theorem CVC3::CommonProofRules::substitutivityRule ( const Expr e,
const Theorem thm 
) [pure virtual]

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]

\[\frac{(c_1=d_1)\wedge\ldots\wedge(c_n=d_n)} {op(c_1,\ldots,c_n)=op(d_1,\ldots,d_n)}\]

Implemented in CVC3::CommonTheoremProducer.

virtual Theorem CVC3::CommonProofRules::substitutivityRule ( const Expr e,
const std::vector< unsigned > &  changed,
const std::vector< Theorem > &  thms 
) [pure virtual]

\[\frac{(c_1=d_1)\wedge\ldots\wedge(c_n=d_n)} {op(c_1,\ldots,c_n)=op(d_1,\ldots,d_n)}\]

except that only those arguments are given that $c_i\not=d_i$.

Parameters:
e is the original expression $op(c_1,\ldots,c_n)$.
changed is the vector of indices of changed kids
thms are the theorems $c_i=d_i$ 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]

virtual Theorem CVC3::CommonProofRules::excludedMiddle ( const Expr e  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::iffTrue ( const Theorem e  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::iffNotFalse ( const Theorem e  )  [pure virtual]

\[\frac{\Gamma\vdash e}{\Gamma\vdash\neg e\Leftrightarrow\mathrm{FALSE}}\]

Implemented in CVC3::CommonTheoremProducer.

virtual Theorem CVC3::CommonProofRules::iffTrueElim ( const Theorem e  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::iffFalseElim ( const Theorem e  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::iffContrapositive ( const Theorem thm  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::notNotElim ( const Theorem not_not_e  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::iffMP ( const Theorem e1,
const Theorem e1_iff_e2 
) [pure virtual]

virtual Theorem CVC3::CommonProofRules::implMP ( const Theorem e1,
const Theorem e1_impl_e2 
) [pure virtual]

virtual Theorem CVC3::CommonProofRules::andElim ( const Theorem e,
int  i 
) [pure virtual]

virtual Theorem CVC3::CommonProofRules::andIntro ( const Theorem e1,
const Theorem e2 
) [pure virtual]

virtual Theorem CVC3::CommonProofRules::andIntro ( const std::vector< Theorem > &  es  )  [pure virtual]

\[\frac{\Gamma_1\vdash e_1\quad \cdots \quad\Gamma_n\vdash e_n} {\bigcup_{i=1}^n\Gamma_i\vdash \bigwedge_{i=1}^n e_i} \]

Implemented in CVC3::CommonTheoremProducer.

virtual Theorem CVC3::CommonProofRules::implIntro ( const Theorem phi,
const std::vector< Expr > &  assump 
) [pure virtual]

Implication introduction rule:

\[\frac{\Gamma,\,\alpha_1\,\ldots,\,\alpha_n\vdash\phi} {\Gamma\vdash(\bigwedge_{i=1}^n\alpha_i)\to\phi}\]

.

Parameters:
phi is the formula $\phi$
assump is the vector of assumptions $\alpha_1\ldots\alpha_n$

Implemented in CVC3::CommonTheoremProducer.

virtual Theorem CVC3::CommonProofRules::implContrapositive ( const Theorem thm  )  [pure virtual]

e1 => e2 ==> ~e2 => ~e1

\[\frac{\Gamma\vdash e_1\Rightarrow e_2} {\Gamma\vdash\sim e_2\Rightarrow\sim e_1}\]

Where ~e is the inverse of e (that is, ~(!e') = e').

Implemented in CVC3::CommonTheoremProducer.

virtual Theorem CVC3::CommonProofRules::rewriteIteTrue ( const Expr e  )  [pure virtual]

==> ITE(TRUE, e1, e2) == e1

Implemented in CVC3::CommonTheoremProducer.

Referenced by CVC3::Theory::rewriteIte().

virtual Theorem CVC3::CommonProofRules::rewriteIteFalse ( const Expr e  )  [pure virtual]

==> ITE(FALSE, e1, e2) == e2

Implemented in CVC3::CommonTheoremProducer.

Referenced by CVC3::Theory::rewriteIte().

virtual Theorem CVC3::CommonProofRules::rewriteIteSame ( const Expr e  )  [pure virtual]

==> ITE(c, e, e) == e

Implemented in CVC3::CommonTheoremProducer.

Referenced by CVC3::Theory::rewriteIte(), and CVC3::TheoryCore::simplifyOp().

virtual Theorem CVC3::CommonProofRules::notToIff ( const Theorem not_e  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::xorToIff ( const Expr e  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::rewriteIff ( const Expr e  )  [pure virtual]

==> (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().

virtual Theorem CVC3::CommonProofRules::rewriteAnd ( const Expr e  )  [pure virtual]

==> AND(e1,e2) IFF [simplified expr]

Implemented in CVC3::CommonTheoremProducer.

Referenced by CVC3::TheoryBitvector::computeTCC(), CVC3::Theory::computeTCC(), and CVC3::Theory::rewriteAnd().

virtual Theorem CVC3::CommonProofRules::rewriteOr ( const Expr e  )  [pure virtual]

==> OR(e1,...,en) IFF [simplified expr]

Implemented in CVC3::CommonTheoremProducer.

Referenced by CVC3::SearchEngineFast::fixConflict(), and CVC3::Theory::rewriteOr().

virtual Theorem CVC3::CommonProofRules::rewriteNotTrue ( const Expr e  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::rewriteNotFalse ( const Expr e  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::rewriteNotNot ( const Expr e  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::rewriteNotForall ( const Expr forallExpr  )  [pure virtual]

==> NOT FORALL (vars): e IFF EXISTS (vars) NOT e

Implemented in CVC3::CommonTheoremProducer.

virtual Theorem CVC3::CommonProofRules::rewriteNotExists ( const Expr existsExpr  )  [pure virtual]

==> NOT EXISTS (vars): e IFF FORALL (vars) NOT e

Implemented in CVC3::CommonTheoremProducer.

virtual Expr CVC3::CommonProofRules::skolemize ( const Expr e  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::skolemizeRewrite ( const Expr e  )  [pure virtual]

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().

virtual Theorem CVC3::CommonProofRules::skolemizeRewriteVar ( const Expr e  )  [pure virtual]

Special version of skolemizeRewrite for "EXISTS x. t = x".

Implemented in CVC3::CommonTheoremProducer.

virtual Theorem CVC3::CommonProofRules::varIntroRule ( const Expr e  )  [pure virtual]

|- EXISTS x. e = x

Implemented in CVC3::CommonTheoremProducer.

Referenced by CVC3::TheoryArithNew::getVariableIntroThm().

virtual Theorem CVC3::CommonProofRules::skolemize ( const Theorem thm  )  [pure virtual]

If thm is (EXISTS x: phi(x)), create the Skolemized version and add it to the database. Otherwise returns just thm.

Parameters:
thm is the Theorem(EXISTS x: phi(x))

Implemented in CVC3::CommonTheoremProducer.

virtual Theorem CVC3::CommonProofRules::varIntroSkolem ( const Expr e  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::trueTheorem (  )  [pure virtual]

virtual Theorem CVC3::CommonProofRules::rewriteAnd ( const Theorem e  )  [pure virtual]

AND(e1,e2) ==> [simplified expr].

Implemented in CVC3::CommonTheoremProducer.

virtual Theorem CVC3::CommonProofRules::rewriteOr ( const Theorem e  )  [pure virtual]

OR(e1,...,en) ==> [simplified expr].

Implemented in CVC3::CommonTheoremProducer.

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.

virtual Theorem CVC3::CommonProofRules::liftOneITE ( const Expr e  )  [pure virtual]


The documentation for this class was generated from the following file:

Generated on Thu Oct 15 22:18:11 2009 for CVC3 by  doxygen 1.5.8