public abstract bool isValidMatch(Term toMatch, List<Variable> toMatchVariables, Term possibleMatch, Dictionary<Variable, Term> substitution);
public Object visitVariable(Variable variable, Object arg) { if (null != (substitution = abstractModulation.unifier.unify(toMatch, variable))) { if (abstractModulation.isValidMatch(toMatch, toMatchVariables, variable, substitution)) { matchingTerm = variable; } } return(variable); }