#include <core_proof_rules.h>
Inheritance diagram for CVC3::CoreProofRules:
Definition at line 34 of file core_proof_rules.h.
virtual CVC3::CoreProofRules::~CoreProofRules | ( | ) | [inline, virtual] |
e: T ==> |- typePred_T(e) [deriving the type predicate of e]
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::TheoryCore::setupTerm(), and CVC3::TheoryCore::typePred().
Replace LETDECL with its definition.
Used only in TheoryCore
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::ExprTransform::pushNegation1(), CVC3::ExprTransform::pushNegationRec(), and CVC3::TheoryCore::rewrite().
==> NOT (AND e1 ... en) IFF (OR !e1 ... !en), takes (AND ...)
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::ExprTransform::pushNegation1(), and CVC3::ExprTransform::pushNegationRec().
==> NOT (OR e1 ... en) IFF (AND !e1 ... !en), takes (OR ...)
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::ExprTransform::pushNegation1(), and CVC3::ExprTransform::pushNegationRec().
==> NOT ITE(a,b,c) IFF ITE(a,NOT b,NOT c)
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::ExprTransform::pushNegation1(), and CVC3::ExprTransform::pushNegationRec().
virtual Theorem CVC3::CoreProofRules::rewriteIteThen | ( | const Expr & | e, | |
const Theorem & | thenThm | |||
) | [pure virtual] |
a |- b == d ==> ITE(a, b, c) == ITE(a, d, c)
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::ExprTransform::newPPrec().
virtual Theorem CVC3::CoreProofRules::rewriteIteElse | ( | const Expr & | e, | |
const Theorem & | elseThm | |||
) | [pure virtual] |
!a |- c == d ==> ITE(a, b, c) == ITE(a, b, d)
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::ExprTransform::newPPrec().
|= (A & B1) | (A & B2) | ... | (A & bn) <=> A & (B1 | B2 | ...| Bn)
Implemented in CVC3::CoreTheoremProducer.
|= (A | B1) & (A | B2) & ... & (A | bn) <=> A | (B1 & B2 & ...& Bn)
Implemented in CVC3::CoreTheoremProducer.
==> IMPLIES(e1,e2) IFF OR(!e1, e2)
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::ExprTransform::pushNegation1(), CVC3::ExprTransform::pushNegationRec(), CVC3::TheoryCore::rewrite(), and CVC3::TheoryCore::simplifyOp().
==> DISTINCT(e1,...,en) IFF AND 1 <= i < j <= n (e[i] /= e[j])
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::TheoryCore::rewrite().
==> ITE(e, FALSE, TRUE) IFF NOT(e)
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::TheoryCore::rewrite().
==> ITE(a, TRUE, b) IFF OR(a, b)
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::TheoryCore::rewrite().
==> ITE(a, b, FALSE) IFF AND(a, b)
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::TheoryCore::rewrite().
==> ITE(a, b, !b) IFF IFF(a, b)
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::TheoryCore::rewrite().
==> ITE(a, b, TRUE) IFF IMPLIES(a, b)
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::TheoryCore::rewrite().
==> ITE(a, b(a), c(a)) IFF ITE(a, b(TRUE), c(FALSE))
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::TheoryCore::rewrite(), and CVC3::ExprTransform::simplifyWithCare().
((a|b)<=>(a|c))<=>(a|(b<=>c)); takes ((a|b)<=>(a|c)) as 'iff'
Implemented in CVC3::CoreTheoremProducer.
((a&b)<=>(a&c))<=>(!a|(b<=>c)); takes ((a&b)<=>(a&c)) as 'iff'
Implemented in CVC3::CoreTheoremProducer.
(a & b) <=> a & b[a/true]; takes the index of a
and rewrites all the other conjuncts.
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::TheoryCore::rewrite().
(a | b) <=> a | b[a/false]; takes the index of a
and rewrites all the other disjuncts.
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::TheoryCore::rewrite().
Temporary cheat for building theorems.
Implemented in CVC3::CoreTheoremProducer.
Referenced by CVC3::ExprTransform::dobryant(), and CVC3::ExprTransform::simplifyWithCare().