AIMA.Core.Logic.FOL.Inference.Demodulation.apply C# (CSharp) Метод

apply() публичный Метод

public apply ( TermEquality assertion, AtomicSentence expression ) : AtomicSentence
assertion AIMA.Core.Logic.FOL.Parsing.AST.TermEquality
expression AtomicSentence
Результат AtomicSentence
        public AtomicSentence apply(TermEquality assertion,
                AtomicSentence expression)
        {
            AtomicSentence altExpression = null;

            IdentifyCandidateMatchingTerm icm = getMatchingSubstitution(assertion
                    .getTerm1(), expression);

            if (null != icm)
            {
                Term replaceWith = substVisitor.subst(
                        icm.getMatchingSubstitution(), assertion.getTerm2());
                // Want to ignore reflexivity axiom situation, i.e. x = x
                if (!icm.getMatchingTerm().Equals(replaceWith))
                {
                    ReplaceMatchingTerm rmt = new ReplaceMatchingTerm();

                    // Only apply demodulation at most once on each call.
                    altExpression = rmt.replace(expression, icm.getMatchingTerm(),
                            replaceWith);
                }
            }

            return altExpression;
        }

Same methods

Demodulation::apply ( TermEquality assertion, Clause clExpression ) : Clause