package models.terms;
import models.algebra.Symbol;
public abstract class EvaluatableTerm extends RDLTerm{
protected EvaluatableTerm(int order, int size) {
super(order, size);
}
public abstract boolean isLinearRightNormalized();
public LinearRightNormalizedType getLinearRightNormalizedType() {
if (isLinearRightNormalized()) {
return LinearRightNormalizedType.LINEAR_RIGHT_NORMALIZED;
}
return LinearRightNormalizedType.NOT_LINEAR_RIGHT_NORMALIZED;
}
public abstract EvaluatableTerm linearRightNormalize();
public abstract void selfLinearRightNormalize();
}