aima.core.logic.fol.inference.proof.ProofStepClauseParamodulation Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aima-core Show documentation
Show all versions of aima-core Show documentation
AIMA-Java Core Algorithms from the book Artificial Intelligence a Modern Approach 3rd Ed.
The newest version!
package aima.core.logic.fol.inference.proof;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import aima.core.logic.fol.kb.data.Clause;
import aima.core.logic.fol.parsing.ast.TermEquality;
/**
* @author Ciaran O'Reilly
*
*/
public class ProofStepClauseParamodulation extends AbstractProofStep {
private List predecessors = new ArrayList();
private Clause paramodulated = null;
private Clause topClause = null;
private Clause equalityClause = null;
private TermEquality assertion = null;
public ProofStepClauseParamodulation(Clause paramodulated,
Clause topClause, Clause equalityClause, TermEquality assertion) {
this.paramodulated = paramodulated;
this.topClause = topClause;
this.equalityClause = equalityClause;
this.assertion = assertion;
this.predecessors.add(topClause.getProofStep());
this.predecessors.add(equalityClause.getProofStep());
}
//
// START-ProofStep
@Override
public List getPredecessorSteps() {
return Collections.unmodifiableList(predecessors);
}
@Override
public String getProof() {
return paramodulated.toString();
}
@Override
public String getJustification() {
return "Paramodulation: " + topClause.getProofStep().getStepNumber()
+ ", " + equalityClause.getProofStep().getStepNumber() + ", ["
+ assertion + "]";
}
// END-ProofStep
//
}