public class AndElimination extends AbstractProofRule implements Proof.LinearRule
Responsible for breaking conjuncts down into their individual terms. This is
perhaps the most simple implementation of a Proof.Rule which is
also useful. For example, consider this simple assertion:
assert:
forall(int x):
if:
x > 0
then:
x >= 0
To prove this by contradiction, we invert the term and look for a
contradiction. Eventually, we will encounter the conjunct
(x > 0) && (x < 0) and, in order to proceed, this is broken down
(by this rule) into the atomic truths x > 0 and
x < 0. From there a separate rule shows the final contradiction.
simp, types| Constructor and Description |
|---|
AndElimination(Simplification simplify,
TypeSystem types) |
| Modifier and Type | Method and Description |
|---|---|
Proof.State |
apply(Proof.State head,
Formula truth) |
String |
getName()
Get the name of this rule
|
apply, extractDefinedTerms, findAllInstances, substituteclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitapplypublic AndElimination(Simplification simplify, TypeSystem types)
public String getName()
Proof.RulegetName in interface Proof.Rulepublic Proof.State apply(Proof.State head, Formula truth)
apply in class AbstractProofRuleCopyright © 2017. All rights reserved.