public override bool isValidMatch(Term toMatch,
List<Variable> toMatchVariables, Term possibleMatch,
Dictionary<Variable, Term> substitution)
{
if (possibleMatch != null && substitution != null)
{
// Note:
// [Brand 1975] showed that paramodulation into
// variables is unnecessary.
if (!(possibleMatch is Variable))
{
// TODO: Find out whether the following statement from:
// http://www.cs.miami.edu/~geoff/Courses/CSC648-07F/Content/
// Paramodulation.shtml
// is actually the case, as it was not positive but
// intuitively makes sense:
// "Similarly, depending on how paramodulation is used, it is
// often unnecessary to paramodulate from variables."
// if (!(toMatch is Variable)) {
return true;
// }
}
}
return false;
}
}