public override bool Equals(Object o) { if (this == o) { return true; } if (!(o is Function)) { return false; } Function f = (Function)o; return f.getFunctionName().Equals(getFunctionName()) && f.getTerms().Equals(getTerms()); }