#include <core_proof_rules.h>
Inheritance diagram for CVCL::CoreProofRules:
Definition at line 42 of file core_proof_rules.h.
|
Destructor.
Definition at line 45 of file core_proof_rules.h. |
|
Convert 2-valued formula to 3-valued by discharging its TCC ( ):
.
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::queryTCC(). |
|
3-valued implication introduction rule:
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::implIntro3(). |
|
e: T ==> |- typePred_T(e) [deriving the type predicate of e]
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::setupTerm(), TheoryCore::subtypePredicate(), and TheoryCore::typePred(). |
|
Replace LETDECL with its definition. Used only in TheoryCore Implemented in CVCL::CoreTheoremProducer. Referenced by CVCL::ExprTransform::pushNegation1(), CVCL::ExprTransform::pushNegationRec(), and TheoryCore::rewrite(). |
|
Replace CONSTDEF with its definition. Used only in TheoryCore Implemented in CVCL::CoreTheoremProducer. Referenced by CVCL::ExprTransform::pushNegation1(), CVCL::ExprTransform::pushNegationRec(), and TheoryCore::rewrite(). |
|
==> NOT (AND e1 ... en) IFF (OR !e1 ... !en), takes (AND ...)
Implemented in CVCL::CoreTheoremProducer. Referenced by CVCL::ExprTransform::pushNegation1(), and CVCL::ExprTransform::pushNegationRec(). |
|
==> NOT (OR e1 ... en) IFF (AND !e1 ... !en), takes (OR ...)
Implemented in CVCL::CoreTheoremProducer. Referenced by CVCL::ExprTransform::pushNegation1(), and CVCL::ExprTransform::pushNegationRec(). |
|
==> NOT IFF(e1,e2) IFF IFF(e1,NOT e2)
Implemented in CVCL::CoreTheoremProducer. |
|
==> NOT ITE(a,b,c) IFF ITE(a,NOT b,NOT c)
Implemented in CVCL::CoreTheoremProducer. Referenced by CVCL::ExprTransform::pushNegation1(), and CVCL::ExprTransform::pushNegationRec(). |
|
==> ITE(TRUE, e1, e2) == e1
Implemented in CVCL::CoreTheoremProducer. Referenced by CVCL::ExprTransform::ite_simplify(), TheoryCore::rewrite(), and TheoryCore::rewriteIte(). |
|
==> ITE(FALSE, e1, e2) == e2
Implemented in CVCL::CoreTheoremProducer. Referenced by CVCL::ExprTransform::ite_simplify(), TheoryCore::rewrite(), and TheoryCore::rewriteIte(). |
|
==> ITE(c, e, e) == e
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::rewrite(), TheoryCore::rewriteIte(), and TheoryCore::simplifyOp(). |
|
a |- b == d ==> ITE(a, b, c) == ITE(a, d, c)
Implemented in CVCL::CoreTheoremProducer. |
|
!a |- c == d ==> ITE(a, b, c) == ITE(a, b, d)
Implemented in CVCL::CoreTheoremProducer. |
|
==> ITE(c, e1, e2) <=> (c => e1) AND (!c => e2)
Implemented in CVCL::CoreTheoremProducer. |
|
|= (A & B1) | (A & B2) | ... | (A & bn) <=> A & (B1 | B2 | ...| Bn)
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::rewrite(). |
|
|= (A | B1) & (A | B2) & ... & (A | bn) <=> A | (B1 & B2 & ...& Bn)
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::rewrite(). |
|
==> IMPLIES(e1,e2) IFF OR(!e1, e2)
Implemented in CVCL::CoreTheoremProducer. Referenced by CVCL::ExprTransform::pushNegation1(), CVCL::ExprTransform::pushNegationRec(), TheoryCore::rewrite(), and TheoryCore::simplifyOp(). |
|
==> NOT(e) == ITE(e, FALSE, TRUE)
Implemented in CVCL::CoreTheoremProducer. Referenced by CVCL::ExprTransform::ite_convert(). |
|
==> Or(e) == ITE(e[1], TRUE, e[0])
Implemented in CVCL::CoreTheoremProducer. Referenced by CVCL::ExprTransform::ite_convert(). |
|
==> And(e) == ITE(e[1], e[0], FALSE)
Implemented in CVCL::CoreTheoremProducer. Referenced by CVCL::ExprTransform::ite_convert(). |
|
==> IFF(a,b) == ITE(a, b, !b)
Implemented in CVCL::CoreTheoremProducer. Referenced by CVCL::ExprTransform::ite_convert(). |
|
==> IMPLIES(a,b) == ITE(a, b, TRUE)
Implemented in CVCL::CoreTheoremProducer. Referenced by CVCL::ExprTransform::ite_convert(). |
|
==> ITE(e, FALSE, TRUE) IFF NOT(e)
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::rewrite(). |
|
==> ITE(a, TRUE, b) IFF OR(a, b)
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::rewrite(). |
|
==> ITE(a, b, FALSE) IFF AND(a, b)
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::rewrite(). |
|
==> ITE(a, b, !b) IFF IFF(a, b)
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::rewrite(). |
|
==> ITE(a, b, TRUE) IFF IMPLIES(a, b)
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::rewrite(). |
|
==> ITE(a, b(a), c(a)) IFF ITE(a, b(TRUE), c(FALSE))
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::rewrite(). |
|
|- op(ITE(cond,a,b)) =/<=> ITE(cond,op(a),op(b))
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::simplifyOp(). |
|
((a|b)<=>(a|c))<=>(a|(b<=>c)); takes ((a|b)<=>(a|c)) as 'iff'
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::rewrite(). |
|
((a&b)<=>(a&c))<=>(!a|(b<=>c)); takes ((a&b)<=>(a&c)) as 'iff'
Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::rewrite(). |
|
(a & b) <=> a & b[a/true]; takes the index of a and rewrites all the other conjuncts. Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::rewrite(). |
|
(a | b) <=> a | b[a/false]; takes the index of a and rewrites all the other disjuncts. Implemented in CVCL::CoreTheoremProducer. Referenced by TheoryCore::rewrite(). |