protected override TrsTermBase ApplySubstitution(Execution.Substitution substitution) { return(new TrsAcTerm(Name, OnfArguments.Select(rankedPair => new TrsOnfAcTermArgument { Term = rankedPair.Term.ApplySubstitutions(new [] { substitution }), Cardinality = rankedPair.Cardinality }))); }
public override TrsTermBase CreateCopyAndReplaceSubTerm(TrsTermBase termToReplace, TrsTermBase replacementTerm) { if (termToReplace != null && this.Equals(termToReplace)) { return((TrsTermBase)replacementTerm.CreateCopy()); } else { return(new TrsAcTerm(Name, OnfArguments.Select(rankedPair => new TrsOnfAcTermArgument { Term = (TrsTermBase)(rankedPair.Term.Equals(termToReplace) ? replacementTerm.CreateCopy() : rankedPair.Term.CreateCopy()), Cardinality = rankedPair.Cardinality }))); } }