public override bool Equals(Object o) { if (this == o) { return true; } if (!(o is Predicate)) { return false; } Predicate p = (Predicate)o; return p.getPredicateName().Equals(getPredicateName()) && p.getTerms().Equals(getTerms()); }