@Override public boolean isVar2VarEquality() { return getFunctionSymbol().equals(EQ) && getTerms().size() == 2 && getTerms().stream().allMatch(t -> t instanceof Variable); } }
@Override public ImmutableExpression getImmutableExpression(Expression expression) { if (GroundTermTools.isGroundTerm(expression)) { return new GroundExpressionImpl(expression); } else { return new NonGroundExpressionImpl(expression); } }
@Override public ImmutableExpression getImmutableExpression(OperationPredicate functor, ImmutableList<? extends ImmutableTerm> arguments) { if (GroundTermTools.areGroundTerms(arguments)) { return new GroundExpressionImpl(functor, (ImmutableList<GroundTerm>)arguments); } else { return new NonGroundExpressionImpl(functor, arguments); } }
@Override public boolean isVar2VarEquality() { return getFunctionSymbol().equals(EQ) && getTerms().size() == 2 && getTerms().stream().allMatch(t -> t instanceof Variable); } }
@Override public ImmutableExpression getImmutableExpression(OperationPredicate functor, ImmutableList<? extends ImmutableTerm> arguments) { if (GroundTermTools.areGroundTerms(arguments)) { return new GroundExpressionImpl(functor, (ImmutableList<GroundTerm>)arguments); } else { return new NonGroundExpressionImpl(functor, arguments); } }
@Override public ImmutableExpression getImmutableExpression(Expression expression) { if (GroundTermTools.isGroundTerm(expression)) { return new GroundExpressionImpl(expression.getFunctionSymbol(), (ImmutableList<? extends GroundTerm>)(ImmutableList<?>)convertTerms(expression)); } else { return new NonGroundExpressionImpl(expression.getFunctionSymbol(), convertTerms(expression)); } }