CVC3
Public Member Functions | Private Attributes

CVC3::CoreTheoremProducer Class Reference

#include <core_theorem_producer.h>

Inherits CVC3::CoreProofRules, and CVC3::TheoremProducer.

Collaboration diagram for CVC3::CoreTheoremProducer:
Collaboration graph
[legend]

List of all members.

Public Member Functions

Private Attributes


Detailed Description

Definition at line 40 of file core_theorem_producer.h.


Constructor & Destructor Documentation

CVC3::CoreTheoremProducer::CoreTheoremProducer ( TheoremManager tm,
TheoryCore core 
) [inline]

Definition at line 46 of file core_theorem_producer.h.

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

Definition at line 48 of file core_theorem_producer.h.


Member Function Documentation

Theorem CoreTheoremProducer::typePred ( const Expr e) [virtual]

e: T ==> |- typePred_T(e) [deriving the type predicate of e]

Implements CVC3::CoreProofRules.

Definition at line 52 of file core_theorem_producer.cpp.

References CVC3::Assumptions::emptyAssump(), and CVC3::Expr::getType().

Theorem CoreTheoremProducer::rewriteLetDecl ( const Expr e) [virtual]

Replace LETDECL with its definition.

Used only in TheoryCore

Implements CVC3::CoreProofRules.

Definition at line 64 of file core_theorem_producer.cpp.

References CHECK_PROOFS, CHECK_SOUND, CVC3::Assumptions::emptyAssump(), CVC3::Expr::getKind(), LETDECL, and CVC3::Expr::toString().

Theorem CoreTheoremProducer::rewriteNotAnd ( const Expr e) [virtual]

==> NOT (AND e1 ... en) IFF (OR !e1 ... !en), takes (AND ...)

Implements CVC3::CoreProofRules.

Definition at line 75 of file core_theorem_producer.cpp.

References CHECK_PROOFS, CHECK_SOUND, CVC3::Assumptions::emptyAssump(), CVC3::Expr::end(), CVC3::Expr::isAnd(), CVC3::Expr::isNot(), CVC3::orExpr(), and CVC3::Expr::toString().

Theorem CoreTheoremProducer::rewriteNotOr ( const Expr e) [virtual]

==> NOT (OR e1 ... en) IFF (AND !e1 ... !en), takes (OR ...)

Implements CVC3::CoreProofRules.

Definition at line 93 of file core_theorem_producer.cpp.

References CVC3::andExpr(), CHECK_PROOFS, CHECK_SOUND, CVC3::Assumptions::emptyAssump(), CVC3::Expr::end(), CVC3::Expr::isNot(), CVC3::Expr::isOr(), and CVC3::Expr::toString().

Theorem CoreTheoremProducer::rewriteNotIff ( const Expr e) [virtual]

==> NOT IFF(e1,e2) IFF IFF(e1,NOT e2)

Implements CVC3::CoreProofRules.

Definition at line 110 of file core_theorem_producer.cpp.

References CHECK_PROOFS, CHECK_SOUND, CVC3::Assumptions::emptyAssump(), CVC3::Expr::isIff(), and CVC3::Expr::isNot().

Theorem CoreTheoremProducer::rewriteNotIte ( const Expr e) [virtual]

==> NOT ITE(a,b,c) IFF ITE(a,NOT b,NOT c)

Implements CVC3::CoreProofRules.

Definition at line 123 of file core_theorem_producer.cpp.

References CHECK_PROOFS, CHECK_SOUND, CVC3::Assumptions::emptyAssump(), CVC3::Expr::isITE(), and CVC3::Expr::isNot().

Theorem CoreTheoremProducer::rewriteIteThen ( const Expr e,
const Theorem thenThm 
) [virtual]
Theorem CoreTheoremProducer::rewriteIteElse ( const Expr e,
const Theorem elseThm 
) [virtual]
Theorem CoreTheoremProducer::rewriteIteBool ( const Expr c,
const Expr e1,
const Expr e2 
) [virtual]
Theorem CoreTheoremProducer::orDistributivityRule ( const Expr e) [virtual]
Theorem CoreTheoremProducer::andDistributivityRule ( const Expr e) [virtual]
Theorem CoreTheoremProducer::rewriteImplies ( const Expr e) [virtual]

==> IMPLIES(e1,e2) IFF OR(!e1, e2)

Implements CVC3::CoreProofRules.

Definition at line 285 of file core_theorem_producer.cpp.

References CHECK_PROOFS, CHECK_SOUND, CVC3::Assumptions::emptyAssump(), and CVC3::Expr::isImpl().

Theorem CoreTheoremProducer::rewriteDistinct ( const Expr e) [virtual]
Theorem CoreTheoremProducer::NotToIte ( const Expr not_e) [virtual]
Theorem CoreTheoremProducer::OrToIte ( const Expr e) [virtual]
Theorem CoreTheoremProducer::AndToIte ( const Expr e) [virtual]
Theorem CoreTheoremProducer::IffToIte ( const Expr e) [virtual]
Theorem CoreTheoremProducer::ImpToIte ( const Expr e) [virtual]
Theorem CoreTheoremProducer::rewriteIteToNot ( const Expr e) [virtual]
Theorem CoreTheoremProducer::rewriteIteToOr ( const Expr e) [virtual]
Theorem CoreTheoremProducer::rewriteIteToAnd ( const Expr e) [virtual]
Theorem CoreTheoremProducer::rewriteIteToIff ( const Expr e) [virtual]
Theorem CoreTheoremProducer::rewriteIteToImp ( const Expr e) [virtual]
Theorem CoreTheoremProducer::rewriteIteCond ( const Expr e) [virtual]

==> ITE(a, b(a), c(a)) IFF ITE(a, b(TRUE), c(FALSE))

Implements CVC3::CoreProofRules.

Definition at line 516 of file core_theorem_producer.cpp.

References CVC3::Expr::arity(), CHECK_PROOFS, CHECK_SOUND, CVC3::Assumptions::emptyAssump(), CVC3::Expr::isITE(), and CVC3::Expr::toString().

Theorem CoreTheoremProducer::ifLiftUnaryRule ( const Expr e) [virtual]
Theorem CoreTheoremProducer::iffOrDistrib ( const Expr iff) [virtual]

((a|b)<=>(a|c))<=>(a|(b<=>c)); takes ((a|b)<=>(a|c)) as 'iff'

Implements CVC3::CoreProofRules.

Definition at line 543 of file core_theorem_producer.cpp.

References CVC3::Expr::arity(), CHECK_PROOFS, CHECK_SOUND, CVC3::Assumptions::emptyAssump(), CVC3::Expr::iffExpr(), CVC3::Expr::isIff(), and CVC3::Expr::toString().

Theorem CoreTheoremProducer::iffAndDistrib ( const Expr iff) [virtual]

((a&b)<=>(a&c))<=>(!a|(b<=>c)); takes ((a&b)<=>(a&c)) as 'iff'

Implements CVC3::CoreProofRules.

Definition at line 565 of file core_theorem_producer.cpp.

References CVC3::Expr::arity(), CHECK_PROOFS, CHECK_SOUND, CVC3::Assumptions::emptyAssump(), CVC3::Expr::iffExpr(), CVC3::Expr::isIff(), and CVC3::Expr::toString().

Theorem CoreTheoremProducer::rewriteAndSubterms ( const Expr e,
int  idx 
) [virtual]

(a & b) <=> a & b[a/true]; takes the index of a

and rewrites all the other conjuncts.

Implements CVC3::CoreProofRules.

Definition at line 621 of file core_theorem_producer.cpp.

References CVC3::Expr::arity(), CHECK_PROOFS, CHECK_SOUND, CVC3::Assumptions::emptyAssump(), CVC3::Expr::getOp(), CVC3::ExprHashMap< Data >::insert(), CVC3::int2string(), CVC3::Expr::isAnd(), and CVC3::Expr::toString().

Theorem CoreTheoremProducer::rewriteOrSubterms ( const Expr e,
int  idx 
) [virtual]

(a | b) <=> a | b[a/false]; takes the index of a

and rewrites all the other disjuncts.

Implements CVC3::CoreProofRules.

Definition at line 647 of file core_theorem_producer.cpp.

References CVC3::Expr::arity(), CHECK_PROOFS, CHECK_SOUND, CVC3::Assumptions::emptyAssump(), CVC3::Expr::getOp(), CVC3::ExprHashMap< Data >::insert(), CVC3::int2string(), CVC3::Expr::isOr(), and CVC3::Expr::toString().

Theorem CoreTheoremProducer::dummyTheorem ( const Expr e) [virtual]

Temporary cheat for building theorems.

Implements CVC3::CoreProofRules.

Definition at line 670 of file core_theorem_producer.cpp.

References CVC3::Assumptions::emptyAssump().


Member Data Documentation

pointer to theory core

Definition at line 43 of file core_theorem_producer.h.


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