CVCL::RefinedArithTheoremProducer Class Reference

#include <refined_arith_theorem_producer.h>

Inheritance diagram for CVCL::RefinedArithTheoremProducer:

Inheritance graph
[legend]
Collaboration diagram for CVCL::RefinedArithTheoremProducer:

Collaboration graph
[legend]
List of all members.

Public Member Functions

Private Member Functions

Private Attributes


Detailed Description

Definition at line 63 of file refined_arith_theorem_producer.h.


Constructor & Destructor Documentation

CVCL::RefinedArithTheoremProducer::RefinedArithTheoremProducer (  VCL *  vcl  )  [inline]
 

Definition at line 116 of file refined_arith_theorem_producer.h.

References core.


Member Function Documentation

Rational RefinedArithTheoremProducer::eval (  const Expr &  rational_expr  )  [private]
 

Definition at line 366 of file refined_arith_theorem_producer.cpp.

References CVCL::Expr::arity(), CVCL::DIVIDE, CVCL::Expr::getKind(), CVCL::Expr::getRational(), CVCL::MULT, CVCL::PLUS, CVCL::RATIONAL_EXPR, CVCL::Expr::toString(), and CVCL::UMINUS.

Referenced by arithmetic().

Theorem RefinedArithTheoremProducer::addAssoc (  const Expr &  x,
const Expr &  y,
const Expr &  z
)  [private]
 

Definition at line 102 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::TheoremManager::getEM(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::PLUS, and CVCL::TheoremProducer::withProof().

Referenced by cancelR(), multZeroL(), and uMinusToMult().

Theorem RefinedArithTheoremProducer::multAssoc (  const Expr &  x,
const Expr &  y,
const Expr &  z
)  [private]
 

Definition at line 124 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::TheoremManager::getEM(), CVCL::MULT, CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), and CVCL::TheoremProducer::withProof().

Theorem RefinedArithTheoremProducer::addSymm (  const Expr &  x,
const Expr &  y
)  [private]
 

Definition at line 145 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::TheoremManager::getEM(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::PLUS, and CVCL::TheoremProducer::withProof().

Referenced by addRID().

Theorem RefinedArithTheoremProducer::multSymm (  const Expr &  x,
const Expr &  y
)  [private]
 

Definition at line 164 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::TheoremManager::getEM(), CVCL::MULT, CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), and CVCL::TheoremProducer::withProof().

Referenced by distribR().

Theorem RefinedArithTheoremProducer::distribL (  const Expr &  x,
const Expr &  y,
const Expr &  z
)  [private]
 

Definition at line 184 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::TheoremManager::getEM(), CVCL::MULT, CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::PLUS, and CVCL::TheoremProducer::withProof().

Referenced by distribR().

Theorem RefinedArithTheoremProducer::addLID (  const Expr &  x  )  [private]
 

Definition at line 205 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::TheoremManager::getEM(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::PLUS, CVCL::TheoremProducer::withProof(), and zero.

Referenced by addRID(), and uMinusToMult().

Theorem RefinedArithTheoremProducer::multLID (  const Expr &  x  )  [private]
 

Definition at line 223 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::TheoremManager::getEM(), CVCL::MULT, CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), one, and CVCL::TheoremProducer::withProof().

Referenced by uMinusToMult().

Theorem RefinedArithTheoremProducer::addInvR (  const Expr &  x  )  [private]
 

Definition at line 241 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::TheoremManager::getEM(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::PLUS, CVCL::UMINUS, CVCL::TheoremProducer::withProof(), and zero.

Referenced by cancelR(), multZeroL(), and uMinusToMult().

Theorem RefinedArithTheoremProducer::multInvR (  const Expr &  x  )  [private]
 

Definition at line 260 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::DIVIDE, CVCL::TheoremManager::getEM(), CVCL::MULT, CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), one, and CVCL::TheoremProducer::withProof().

Theorem RefinedArithTheoremProducer::ltAddR (  const Expr &  x,
const Expr &  y,
const Expr &  z
) 
 

Definition at line 281 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::TheoremManager::getEM(), CVCL::IMPLIES, CVCL::LT, CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), CVCL::PLUS, and CVCL::TheoremProducer::withProof().

Theorem RefinedArithTheoremProducer::ltTrans (  const Expr &  x,
const Expr &  y,
const Expr &  z
) 
 

Definition at line 304 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::TheoremManager::getEM(), CVCL::IMPLIES, CVCL::LT, CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), and CVCL::TheoremProducer::withProof().

Theorem RefinedArithTheoremProducer::ltScale (  const Expr &  x,
const Expr &  y,
const Expr &  z
) 
 

Definition at line 327 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::TheoremManager::getEM(), CVCL::IMPLIES, CVCL::LT, CVCL::MULT, CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), CVCL::TheoremProducer::withProof(), and zero.

Theorem RefinedArithTheoremProducer::arithmetic (  const Expr &  lhs,
const Expr &  rhs
) 
 

Definition at line 352 of file refined_arith_theorem_producer.cpp.

References eval(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::Expr::toString(), and CVCL::TheoremProducer::withProof().

Referenced by multZeroL(), and uMinusToMult().

Theorem RefinedArithTheoremProducer::minusDef (  const Expr &  x,
const Expr &  y
) 
 

Definition at line 412 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::TheoremManager::getEM(), CVCL::MINUS, neg(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), plus(), and CVCL::TheoremProducer::withProof().

Referenced by minusToPlus().

Theorem RefinedArithTheoremProducer::divideDef (  const Expr &  x,
const Expr &  y
) 
 

Definition at line 430 of file refined_arith_theorem_producer.cpp.

References CVCL::TheoremProducer::d_tm, CVCL::DIVIDE, CVCL::TheoremManager::getEM(), neg(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), plus(), and CVCL::TheoremProducer::withProof().

Theorem RefinedArithTheoremProducer::distribR (  const Expr &  x,
const Expr &  y,
const Expr &  z
) 
 

Definition at line 488 of file refined_arith_theorem_producer.cpp.

References d_em, distribL(), multSymm(), CVCL::PLUS, subst(), and trans().

Referenced by multZeroL(), and uMinusToMult().

Theorem RefinedArithTheoremProducer::addR (  const Theorem &  xEy,
const Expr &  z
) 
 

Definition at line 509 of file refined_arith_theorem_producer.cpp.

References CVCL::PLUS, and subst().

Referenced by addRCancel(), multZeroL(), and uMinusToMult().

Theorem RefinedArithTheoremProducer::addRID (  const Expr &  x  ) 
 

Definition at line 530 of file refined_arith_theorem_producer.cpp.

References addLID(), addSymm(), trans(), and zero.

Referenced by cancelR(), multZeroL(), and uMinusToMult().

Theorem RefinedArithTheoremProducer::cancelR (  const Expr &  x,
const Expr &  y
) 
 

Definition at line 557 of file refined_arith_theorem_producer.cpp.

References addAssoc(), addInvR(), addRID(), neg(), CVCL::PLUS, subst(), and trans().

Referenced by addRCancel().

Theorem RefinedArithTheoremProducer::addRCancel (  const Theorem &  t  ) 
 

Definition at line 588 of file refined_arith_theorem_producer.cpp.

References addR(), cancelR(), CVCL::Theorem::getLHS(), CVCL::Theorem::getRHS(), neg(), symm(), and trans().

Theorem RefinedArithTheoremProducer::multZeroL (  const Expr &  e  ) 
 

Definition at line 629 of file refined_arith_theorem_producer.cpp.

References addAssoc(), addInvR(), addR(), addRID(), arithmetic(), CVCL::TheoremProducer::d_tm, distribR(), CVCL::TheoremManager::getEM(), CVCL::Theorem::getLHS(), CVCL::MULT, neg(), CVCL::PLUS, subst(), symm(), trans(), and zero.

Referenced by uMinusToMult().

Expr RefinedArithTheoremProducer::neg (  const Expr &  x  ) 
 

Definition at line 35 of file refined_arith_theorem_producer.cpp.

References d_em, and CVCL::UMINUS.

Referenced by addRCancel(), cancelR(), divideDef(), minusDef(), multZeroL(), and uMinusToMult().

Expr RefinedArithTheoremProducer::inv (  const Expr &  x  ) 
 

Definition at line 39 of file refined_arith_theorem_producer.cpp.

References d_em, CVCL::DIVIDE, and one.

Expr RefinedArithTheoremProducer::frac (  const Expr &  x,
const Expr &  y
) 
 

Definition at line 47 of file refined_arith_theorem_producer.cpp.

References d_em, and CVCL::DIVIDE.

Expr RefinedArithTheoremProducer::plus (  const Expr &  x,
const Expr &  y
) 
 

Definition at line 43 of file refined_arith_theorem_producer.cpp.

References d_em, and CVCL::PLUS.

Referenced by divideDef(), minusDef(), and uMinusToMult().

Theorem RefinedArithTheoremProducer::trans (  const Theorem &  t1,
const Theorem &  t2
) 
 

Definition at line 52 of file refined_arith_theorem_producer.cpp.

References core, and CVCL::Theory::transitivityRule().

Referenced by addRCancel(), addRID(), cancelR(), distribR(), minusToPlus(), multZeroL(), and uMinusToMult().

Theorem RefinedArithTheoremProducer::trans (  const Expr &  e  ) 
 

Definition at line 56 of file refined_arith_theorem_producer.cpp.

References core, and CVCL::Theory::reflexivityRule().

Theorem RefinedArithTheoremProducer::symm (  const Theorem &  t  ) 
 

Definition at line 60 of file refined_arith_theorem_producer.cpp.

References core, and CVCL::Theory::symmetryRule().

Referenced by addRCancel(), multZeroL(), and uMinusToMult().

Theorem RefinedArithTheoremProducer::subst (  Op  op,
const Expr &  x,
const Theorem &  t
) 
 

Definition at line 64 of file refined_arith_theorem_producer.cpp.

References core, CVCL::Theory::reflexivityRule(), and CVCL::Theory::substitutivityRule().

Referenced by addR(), cancelR(), distribR(), minusToPlus(), multZeroL(), and uMinusToMult().

Theorem RefinedArithTheoremProducer::subst (  Op  op,
const Theorem &  t,
const Expr &  x
) 
 

Definition at line 71 of file refined_arith_theorem_producer.cpp.

References core, CVCL::Theory::reflexivityRule(), and CVCL::Theory::substitutivityRule().

Theorem RefinedArithTheoremProducer::subst (  Op  op,
const Theorem &  t1,
const Theorem &  t2
) 
 

Definition at line 78 of file refined_arith_theorem_producer.cpp.

References core, and CVCL::Theory::substitutivityRule().

Expr CVCL::RefinedArithTheoremProducer::rat (  Rational  r  )  [inline]
 

Create Expr from Rational (for convenience).

Reimplemented from CVCL::ArithTheoremProducer.

Definition at line 122 of file refined_arith_theorem_producer.h.

References d_em.

Theorem RefinedArithTheoremProducer::uMinusToMult (  const Expr &  e  )  [virtual]
 

==> -(e) = (-1) * e

Reimplemented from CVCL::ArithTheoremProducer.

Definition at line 688 of file refined_arith_theorem_producer.cpp.

References addAssoc(), addInvR(), addLID(), addR(), addRID(), arithmetic(), distribR(), CVCL::Theorem::getRHS(), CVCL::MULT, multLID(), multZeroL(), neg(), one, CVCL::PLUS, plus(), subst(), symm(), trans(), and zero.

Referenced by minusToPlus().

Theorem RefinedArithTheoremProducer::minusToPlus (  const Expr &  x,
const Expr &  y
)  [virtual]
 

==> x - y = x + (-1) * y

Reimplemented from CVCL::ArithTheoremProducer.

Definition at line 731 of file refined_arith_theorem_producer.cpp.

References minusDef(), CVCL::PLUS, subst(), trans(), and uMinusToMult().

Theorem RefinedArithTheoremProducer::canonPlus (  const Expr &  e  )  [virtual]
 

Canonize (PLUS t1 ... tn).

Reimplemented from CVCL::ArithTheoremProducer.

Definition at line 22 of file refined_arith_theorem_producer.cpp.

References CVCL::ArithTheoremProducer::canonPlus(), and std::endl().


Member Data Documentation

ExprManager* CVCL::RefinedArithTheoremProducer::d_em [private]
 

Reimplemented from CVCL::TheoremProducer.

Definition at line 66 of file refined_arith_theorem_producer.h.

Referenced by distribR(), frac(), inv(), neg(), plus(), and rat().

TheoryCore* CVCL::RefinedArithTheoremProducer::core [private]
 

Definition at line 67 of file refined_arith_theorem_producer.h.

Referenced by RefinedArithTheoremProducer(), subst(), symm(), and trans().

VCL* CVCL::RefinedArithTheoremProducer::vcl [private]
 

Definition at line 68 of file refined_arith_theorem_producer.h.

const Expr CVCL::RefinedArithTheoremProducer::zero [private]
 

Definition at line 71 of file refined_arith_theorem_producer.h.

Referenced by addInvR(), addLID(), addRID(), ltScale(), multZeroL(), and uMinusToMult().

const Expr CVCL::RefinedArithTheoremProducer::one [private]
 

Definition at line 71 of file refined_arith_theorem_producer.h.

Referenced by inv(), multInvR(), multLID(), and uMinusToMult().


The documentation for this class was generated from the following files:
Generated on Thu Apr 13 16:57:46 2006 for CVC Lite by  doxygen 1.4.4