#include <common_theorem_producer.h>
Inheritance diagram for CVCL::CommonTheoremProducer:
Definition at line 48 of file common_theorem_producer.h.
|
Definition at line 48 of file common_theorem_producer.cpp. |
|
Definition at line 65 of file common_theorem_producer.h. |
|
Implements CVCL::CommonProofRules. Definition at line 55 of file common_theorem_producer.cpp. References CVCL::TheoremProducer::newAssumption(), CVCL::TheoremProducer::newLabel(), CVCL::TRACE, and CVCL::TheoremProducer::withProof(). |
|
Implements CVCL::CommonProofRules. Definition at line 63 of file common_theorem_producer.cpp. References CVCL::Type::getExpr(), CVCL::Expr::getType(), CVCL::Type::isBool(), CVCL::Type::isNull(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newReflTheorem(), CVCL::Expr::toString(), and CVCL::TheoremProducer::withProof(). Referenced by rewriteIff(), rewriteUsingSymmetry(), symmetryRule(), transitivityRule(), and trueTheorem(). |
|
==> (a == a) IFF TRUE
Implements CVCL::CommonProofRules. Definition at line 78 of file common_theorem_producer.cpp. References CVCL::TheoremProducer::d_em, CVCL::Expr::isEq(), CVCL::Expr::isIff(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::Expr::toString(), CVCL::ExprManager::trueExpr(), and CVCL::TheoremProducer::withProof(). Referenced by rewriteIff(). |
|
|
Implements CVCL::CommonProofRules. Definition at line 134 of file common_theorem_producer.cpp. References CVCL::Expr::eqExpr(), CVCL::Type::getExpr(), CVCL::Expr::getType(), CVCL::Expr::iffExpr(), CVCL::Expr::isEq(), CVCL::Expr::isIff(), CVCL::Type::isNull(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), reflexivityRule(), CVCL::Expr::toString(), and CVCL::TheoremProducer::withProof(). Referenced by rewriteIff(). |
|
|
Implements CVCL::CommonProofRules. |
|
except that only those arguments are given that .
Implements CVCL::CommonProofRules. |
|
|
|
|
|
|
e1 <=> e2 ==> ~e1 <=> ~e2
Where ~e is the inverse of e (that is, ~(!e') = e'). Implements CVCL::CommonProofRules. Definition at line 423 of file common_theorem_producer.cpp. References CVCL::Assumptions::copy(), CVCL::Theorem::getAssumptions(), CVCL::Theorem::getExpr(), CVCL::Theorem::getLHS(), CVCL::Theorem::getProof(), CVCL::Theorem::getRHS(), CVCL::Expr::getType(), CVCL::Type::isBool(), CVCL::Theorem::isRewrite(), CVCL::Expr::negate(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::Theorem::toString(), CVCL::TheoremProducer::withAssumptions(), and CVCL::TheoremProducer::withProof(). |
|
|
Implements CVCL::CommonProofRules. Definition at line 453 of file common_theorem_producer.cpp. References CVCL::Theorem::getExpr(), CVCL::Theorem::getLHS(), CVCL::Theorem::getProof(), CVCL::Theorem::getRHS(), CVCL::Theorem::isRewrite(), CVCL::merge(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), CVCL::Theorem::toString(), CVCL::TheoremProducer::withAssumptions(), and CVCL::TheoremProducer::withProof(). Referenced by rewriteAnd(), rewriteOr(), skolemize(), and varIntroSkolem(). |
|
|
|
e1, e2 ==> AND(e1, e2)
Implements CVCL::CommonProofRules. Definition at line 524 of file common_theorem_producer.cpp. |
|
Implements CVCL::CommonProofRules. |
|
Implication introduction rule:
.
Implements CVCL::CommonProofRules. Definition at line 559 of file common_theorem_producer.cpp. References CVCL::andExpr(), CVCL::Theorem::getAssumptionsRef(), CVCL::Theorem::getExpr(), CVCL::Theorem::getProof(), CVCL::Expr::impExpr(), CVCL::int2string(), CVCL::Theorem::isAssump(), CVCL::Theorem::isNull(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), CVCL::Expr::toString(), CVCL::TheoremProducer::withAssumptions(), and CVCL::TheoremProducer::withProof(). |
|
e1 => e2 ==> ~e2 => ~e1
Where ~e is the inverse of e (that is, ~(!e') = e'). Implements CVCL::CommonProofRules. Definition at line 609 of file common_theorem_producer.cpp. References CVCL::Expr::arity(), CVCL::Theorem::getAssumptionsCopy(), CVCL::Theorem::getExpr(), CVCL::Theorem::getProof(), CVCL::Expr::isImpl(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), CVCL::Expr::toString(), CVCL::TheoremProducer::withAssumptions(), and CVCL::TheoremProducer::withProof(). |
|
|
==> (e1 <=> e2) <=> [simplified expr] Rewrite formulas like FALSE/TRUE <=> e, e <=> NOT e, etc. Implements CVCL::CommonProofRules. Definition at line 644 of file common_theorem_producer.cpp. References CVCL::TheoremProducer::d_em, CVCL::FALSE, CVCL::ExprManager::falseExpr(), CVCL::Expr::getKind(), CVCL::Expr::isIff(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::NOT, reflexivityRule(), rewriteReflexivity(), rewriteUsingSymmetry(), CVCL::TRUE, and CVCL::TheoremProducer::withProof(). |
|
==> AND(e1,e2) IFF [simplified expr]
Implements CVCL::CommonProofRules. Definition at line 693 of file common_theorem_producer.cpp. References CVCL::andExpr(), CVCL::ExprMap< Data >::begin(), CVCL::Expr::begin(), CVCL::ExprMap< Data >::count(), CVCL::TheoremProducer::d_em, CVCL::ExprMap< Data >::end(), CVCL::Expr::end(), CVCL::ExprManager::falseExpr(), CVCL::Expr::isAnd(), CVCL::Expr::isFalse(), CVCL::Expr::isTrue(), CVCL::Expr::negate(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::ExprMap< Data >::size(), CVCL::Expr::toString(), CVCL::ExprManager::trueExpr(), and CVCL::TheoremProducer::withProof(). Referenced by rewriteAnd(). |
|
==> OR(e1,...,en) IFF [simplified expr]
Implements CVCL::CommonProofRules. Definition at line 733 of file common_theorem_producer.cpp. References CVCL::ExprMap< Data >::begin(), CVCL::Expr::begin(), CVCL::ExprMap< Data >::count(), CVCL::TheoremProducer::d_em, CVCL::ExprMap< Data >::end(), CVCL::Expr::end(), CVCL::ExprManager::falseExpr(), CVCL::Expr::isFalse(), CVCL::Expr::isOr(), CVCL::Expr::isTrue(), CVCL::Expr::negate(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::orExpr(), CVCL::ExprMap< Data >::size(), CVCL::Expr::toString(), CVCL::ExprManager::trueExpr(), and CVCL::TheoremProducer::withProof(). Referenced by rewriteOr(). |
|
==> NOT TRUE IFF FALSE
Implements CVCL::CommonProofRules. Definition at line 772 of file common_theorem_producer.cpp. References CVCL::TheoremProducer::d_em, CVCL::ExprManager::falseExpr(), CVCL::Expr::isNot(), CVCL::Expr::isTrue(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), and CVCL::TheoremProducer::withProof(). |
|
==> NOT FALSE IFF TRUE
Implements CVCL::CommonProofRules. Definition at line 785 of file common_theorem_producer.cpp. References CVCL::TheoremProducer::d_em, CVCL::Expr::isFalse(), CVCL::Expr::isNot(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::ExprManager::trueExpr(), and CVCL::TheoremProducer::withProof(). |
|
==> NOT NOT e IFF e, takes !!e
Implements CVCL::CommonProofRules. Definition at line 798 of file common_theorem_producer.cpp. References CVCL::Expr::isNot(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), and CVCL::TheoremProducer::withProof(). |
|
==> NOT FORALL (vars): e IFF EXISTS (vars) NOT e
Implements CVCL::CommonProofRules. Definition at line 811 of file common_theorem_producer.cpp. References CVCL::TheoremProducer::d_em, CVCL::EXISTS, CVCL::Expr::getBody(), CVCL::Expr::getVars(), CVCL::Expr::isForall(), CVCL::Expr::isNot(), CVCL::ExprManager::newClosureExpr(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::Expr::toString(), and CVCL::TheoremProducer::withProof(). |
|
==> NOT EXISTS (vars): e IFF FORALL (vars) NOT e
Implements CVCL::CommonProofRules. Definition at line 827 of file common_theorem_producer.cpp. References CVCL::TheoremProducer::d_em, CVCL::FORALL, CVCL::Expr::getBody(), CVCL::Expr::getVars(), CVCL::Expr::isExists(), CVCL::Expr::isNot(), CVCL::ExprManager::newClosureExpr(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newRWTheorem(), CVCL::Expr::toString(), and CVCL::TheoremProducer::withProof(). |
|
Implements CVCL::CommonProofRules. Definition at line 842 of file common_theorem_producer.cpp. References CVCL::Expr::getBody(), CVCL::Expr::getVars(), CVCL::Expr::setType(), CVCL::Expr::skolemExpr(), and CVCL::Expr::substExpr(). Referenced by skolemizeRewrite(). |
|
skolem rewrite rule: Introduces axiom |- Exists(x) phi(x) <=> phi(c) where c is a constant defined by the expression Exists(x) phi(x) Implements CVCL::CommonProofRules. Definition at line 856 of file common_theorem_producer.cpp. References CVCL::Expr::iffExpr(), CVCL::Expr::isExists(), CVCL::TheoremProducer::newLabel(), CVCL::TheoremProducer::newRWTheorem(), skolemize(), CVCL::Expr::toString(), and CVCL::TheoremProducer::withProof(). Referenced by skolemize(). |
|
Special version of skolemizeRewrite for "EXISTS x. t = x".
Implements CVCL::CommonProofRules. Definition at line 874 of file common_theorem_producer.cpp. References CVCL::Expr::getBody(), CVCL::Expr::getOp(), CVCL::Expr::getVars(), CVCL::Expr::iffExpr(), CVCL::Expr::isEq(), CVCL::Expr::isExists(), CVCL::Expr::isIff(), CVCL::TheoremProducer::newLabel(), CVCL::TheoremProducer::newRWTheorem(), CVCL::Expr::setType(), CVCL::Expr::skolemExpr(), CVCL::Expr::subExprOf(), CVCL::Expr::toString(), and CVCL::TheoremProducer::withProof(). Referenced by varIntroSkolem(). |
|
|- EXISTS x. e = x
Implements CVCL::CommonProofRules. Definition at line 912 of file common_theorem_producer.cpp. References CVCL::TheoremProducer::d_em, CVCL::Expr::eqExpr(), CVCL::EXISTS, CVCL::Expr::getType(), CVCL::Expr::iffExpr(), CVCL::Type::isBool(), CVCL::ExprManager::newBoundVarExpr(), CVCL::ExprManager::newClosureExpr(), CVCL::TheoremProducer::newPf(), CVCL::TheoremProducer::newTheorem(), and CVCL::TheoremProducer::withProof(). Referenced by varIntroSkolem(). |
|
If thm is (EXISTS x: phi(x)), create the Skolemized version and add it to the database. Otherwise returns just thm.
Implements CVCL::CommonProofRules. Definition at line 933 of file common_theorem_producer.cpp. References d_skolem_axioms, d_skolemized_thms, CVCL::CDMap< Key, Data, HashFcn >::end(), CVCL::CDMap< Key, Data, HashFcn >::find(), CVCL::Theorem::getExpr(), CVCL::Expr::getVars(), iffMP(), CVCL::CDMap< Key, Data, HashFcn >::insert(), CVCL::Expr::isExists(), CVCL::Expr::setType(), CVCL::Expr::skolemExpr(), skolemizeRewrite(), and CVCL::TRACE. |
|
Retrun a theorem "|- e = v" for a new Skolem constant v. This is equivalent to skolemize(d_core->varIntroRule(e)), only more efficient. Implements CVCL::CommonProofRules. Definition at line 959 of file common_theorem_producer.cpp. References d_skolem_axioms, d_skolemized_thms, d_skolemVars, CVCL::CDMap< Key, Data, HashFcn >::end(), CVCL::CDMap< Key, Data, HashFcn >::find(), CVCL::Theorem::getExpr(), CVCL::Expr::getVars(), iffMP(), CVCL::CDMap< Key, Data, HashFcn >::insert(), CVCL::Expr::isExists(), skolemizeRewriteVar(), CVCL::Expr::toString(), and varIntroRule(). |
|
==> TRUE
Implements CVCL::CommonProofRules. Definition at line 989 of file common_theorem_producer.cpp. References CVCL::TheoremProducer::d_em, iffTrueElim(), reflexivityRule(), and CVCL::ExprManager::trueExpr(). |
|
AND(e1,e2) ==> [simplified expr].
Implements CVCL::CommonProofRules. Definition at line 995 of file common_theorem_producer.cpp. References CVCL::Theorem::getExpr(), iffMP(), and rewriteAnd(). |
|
OR(e1,...,en) ==> [simplified expr].
Implements CVCL::CommonProofRules. Definition at line 1001 of file common_theorem_producer.cpp. References CVCL::Theorem::getExpr(), iffMP(), and rewriteOr(). |
|
Implements CVCL::CommonProofRules. Definition at line 112 of file common_theorem_producer.h. References d_skolem_axioms. |
|
Implements CVCL::CommonProofRules. Definition at line 113 of file common_theorem_producer.h. References d_skolem_axioms. |
|
Definition at line 54 of file common_theorem_producer.h. Referenced by clearSkolemAxioms(), getSkolemAxioms(), skolemize(), and varIntroSkolem(). |
|
Definition at line 58 of file common_theorem_producer.h. Referenced by skolemize(), and varIntroSkolem(). |
|
Mapping of e to "|- e = v" for fresh Skolem vars v.
Definition at line 61 of file common_theorem_producer.h. Referenced by varIntroSkolem(). |