package inference;
import java.util.List;
import com.google.common.base.Objects;
import lombok.Getter;
import models.formulas.Formula;
@Getter
public class InferenceHistoryNode {
private final List<Formula> assumptions;
private final Formula conclusion;
private final InferenceRule usedRule;
public InferenceHistoryNode(List<Formula> assumptions, InferenceRule usedRule, Formula conclusion) {
this.assumptions = assumptions;
this.usedRule = usedRule;
this.conclusion = conclusion;
}
@Override
public boolean equals(Object another) {
if (another instanceof InferenceHistoryNode node) {
return Objects.equal(node.assumptions, this.assumptions) && Objects.equal(node.usedRule, this.usedRule) && Objects.equal(this.conclusion, node.conclusion);
}
return false;
}
@Override
public int hashCode() {
return Objects.hashCode(assumptions, conclusion, usedRule);
}
@Override
public String toString() {
return assumptions + "---(" + usedRule.getName() + ")--->" + conclusion;
}
}